Fix the order of the operands in the llvm.fma intrinsic patterns for ARM,
[oota-llvm.git] / test / Analysis / ScalarEvolution / pr3909.ll
1 ; RUN: opt < %s -indvars -disable-output
2 ; PR 3909
3
4
5         %0 = type { i32, %1* }          ; type %0
6         %1 = type { i32, i8* }          ; type %1
7
8 define x86_stdcallcc i32 @_Dmain(%0 %unnamed) {
9 entry:
10         br label %whilebody
11
12 whilebody:              ; preds = %endwhile5, %entry
13         %i.0 = phi i64 [ 0, %entry ], [ %tmp11, %endwhile5 ]            ; <i64> [#uses=1]
14         %m.0 = phi i64 [ 0, %entry ], [ %tmp11, %endwhile5 ]            ; <i64> [#uses=2]
15         %tmp2 = mul i64 %m.0, %m.0              ; <i64> [#uses=1]
16         br label %whilecond3
17
18 whilecond3:             ; preds = %whilebody4, %whilebody
19         %j.0 = phi i64 [ %tmp2, %whilebody ], [ %tmp9, %whilebody4 ]            ; <i64> [#uses=2]
20         %tmp7 = icmp ne i64 %j.0, 0             ; <i1> [#uses=1]
21         br i1 %tmp7, label %whilebody4, label %endwhile5
22
23 whilebody4:             ; preds = %whilecond3
24         %tmp9 = add i64 %j.0, 1         ; <i64> [#uses=1]
25         br label %whilecond3
26
27 endwhile5:              ; preds = %whilecond3
28         %tmp11 = add i64 %i.0, 1                ; <i64> [#uses=2]
29         br label %whilebody
30 }