1; RUN: opt %loadPolly -polly-stmt-granularity=bb -polly-simplify -analyze < %s | FileCheck %s -match-full-lines
2; RUN: opt %loadPolly -polly-stmt-granularity=bb "-passes=scop(print<polly-simplify>)" -disable-output -aa-pipeline=basic-aa < %s | FileCheck %s -match-full-lines
3;
4; Remove a dead instruction
5; (an instruction whose result is not used anywhere)
6;
7; for (int j = 0; j < n; j += 1) {
8;   double val = 21.0 + 21.0;
9;   A[0] = 42.0;
10; }
11;
12define void @func(i32 %n, double* noalias nonnull %A) {
13entry:
14  br label %for
15
16for:
17  %j = phi i32 [0, %entry], [%j.inc, %inc]
18  %j.cmp = icmp slt i32 %j, %n
19  br i1 %j.cmp, label %body, label %exit
20
21    body:
22      %val = fadd double 21.0, 21.0
23      store double 42.0, double* %A
24      br label %inc
25
26inc:
27  %j.inc = add nuw nsw i32 %j, 1
28  br label %for
29
30exit:
31  br label %return
32
33return:
34  ret void
35}
36
37
38; CHECK: Statistics {
39; CHECK:     Dead instructions removed: 1
40; CHECK: }
41