[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / Transforms / Mem2Reg / undef-order.ll
blob09687518c87240b0ae515d54236f66b19b9d2938
1 ;RUN: opt -mem2reg -S < %s | FileCheck %s
3 declare i1 @cond()
5 define i32 @foo() {
6 Entry:
7     %val = alloca i32
8     %c1 = call i1 @cond()
9     br i1 %c1, label %Store1, label %Store2
10 Block1:
11     br label %Join
12 Block2:
13     br label %Join
14 Block3:
15     br label %Join
16 Block4:
17     br label %Join
18 Block5:
19     br label %Join
20 Store1:
21     store i32 1, i32* %val
22     br label %Join
23 Block6:
24     br label %Join
25 Block7:
26     br label %Join
27 Block8:
28     br label %Join
29 Block9:
30     br label %Join
31 Block10:
32     br label %Join
33 Store2:
34     store i32 2, i32* %val
35     br label %Join
36 Block11:
37     br label %Join
38 Block12:
39     br label %Join
40 Block13:
41     br label %Join
42 Block14:
43     br label %Join
44 Block15:
45     br label %Join
46 Block16:
47     br label %Join
48 Join:
49 ; Phi inserted here should have operands appended deterministically
50 ; CHECK: %val.0 = phi i32 [ 1, %Store1 ], [ 2, %Store2 ], [ undef, %Block1 ], [ undef, %Block2 ], [ undef, %Block3 ], [ undef, %Block4 ], [ undef, %Block5 ], [ undef, %Block6 ], [ undef, %Block7 ], [ undef, %Block8 ], [ undef, %Block9 ], [ undef, %Block10 ], [ undef, %Block11 ], [ undef, %Block12 ], [ undef, %Block13 ], [ undef, %Block14 ], [ undef, %Block15 ], [ undef, %Block16 ]
51     %result = load i32, i32* %val
52     ret i32 %result