blob: 7b4032b2eba9a76c665b2e6da246a5a7c29d8723 [file] [log] [blame]
Dan Gohman3c7d3082009-09-11 18:01:28 +00001; RUN: opt < %s -indvars -S | grep icmp | count 4
Devang Patel7ca23c92008-11-03 18:32:19 +00002define void @bar() nounwind {
3entry:
4 br label %bb
5
6bb: ; preds = %bb, %entry
7 %x.0.reg2mem.0 = phi double [ 0.000000e+00, %entry ], [ %1, %bb ] ; <double> [#uses=2]
8 %0 = tail call i32 @foo(double %x.0.reg2mem.0) nounwind ; <i32> [#uses=0]
Dan Gohman7ce405e2009-06-04 22:49:04 +00009 %1 = fadd double %x.0.reg2mem.0, 1.000000e+00 ; <double> [#uses=2]
Devang Patel7ca23c92008-11-03 18:32:19 +000010 %2 = fcmp olt double %1, 1.000000e+04 ; <i1> [#uses=1]
11 br i1 %2, label %bb, label %return
12
13return: ; preds = %bb
14 ret void
15}
16
17declare i32 @foo(double)
Devang Patele2ba01d2008-11-17 23:27:13 +000018
19define void @bar2() nounwind {
20entry:
21 br label %bb
22
23bb: ; preds = %bb, %entry
24 %x.0.reg2mem.0 = phi double [ -10.000000e+00, %entry ], [ %1, %bb ] ; <double> [#uses=2]
25 %0 = tail call i32 @foo(double %x.0.reg2mem.0) nounwind ; <i32> [#uses=0]
Dan Gohman7ce405e2009-06-04 22:49:04 +000026 %1 = fadd double %x.0.reg2mem.0, 2.000000e+00 ; <double> [#uses=2]
Devang Patele2ba01d2008-11-17 23:27:13 +000027 %2 = fcmp olt double %1, -1.000000e+00 ; <i1> [#uses=1]
28 br i1 %2, label %bb, label %return
29
30return: ; preds = %bb
31 ret void
32}
33
34
35define void @bar3() nounwind {
36entry:
37 br label %bb
38
39bb: ; preds = %bb, %entry
40 %x.0.reg2mem.0 = phi double [ 0.000000e+00, %entry ], [ %1, %bb ] ; <double> [#uses=2]
41 %0 = tail call i32 @foo(double %x.0.reg2mem.0) nounwind ; <i32> [#uses=0]
Dan Gohman7ce405e2009-06-04 22:49:04 +000042 %1 = fadd double %x.0.reg2mem.0, 1.000000e+00 ; <double> [#uses=2]
Devang Patele2ba01d2008-11-17 23:27:13 +000043 %2 = fcmp olt double %1, -1.000000e+00 ; <i1> [#uses=1]
44 br i1 %2, label %bb, label %return
45
46return: ; preds = %bb
47 ret void
48}
49
50define void @bar4() nounwind {
51entry:
52 br label %bb
53
54bb: ; preds = %bb, %entry
55 %x.0.reg2mem.0 = phi double [ 40.000000e+00, %entry ], [ %1, %bb ] ; <double> [#uses=2]
56 %0 = tail call i32 @foo(double %x.0.reg2mem.0) nounwind ; <i32> [#uses=0]
Dan Gohman7ce405e2009-06-04 22:49:04 +000057 %1 = fadd double %x.0.reg2mem.0, -1.000000e+00 ; <double> [#uses=2]
Devang Patele2ba01d2008-11-17 23:27:13 +000058 %2 = fcmp olt double %1, 1.000000e+00 ; <i1> [#uses=1]
59 br i1 %2, label %bb, label %return
60
61return: ; preds = %bb
62 ret void
63}
64
65