[ORC] Add std::tuple support to SimplePackedSerialization.
[llvm-project.git] / llvm / test / Transforms / SCCP / phis.ll
blobdac8273ab2d1d51abff2a0fb471df7fe6778c62e
1 ; RUN: opt < %s -sccp -S | FileCheck %s
3 define i1 @float.1(i1 %cmp) {
4 ; CHECK-LABEL: define i1 @float.1(i1 %cmp) {
6 ; CHECK-LABEL: end:
7 ; CHECK-NEXT:    ret i1 true
9 entry:
10   br i1 %cmp, label %if.true, label %end
12 if.true:
13   br label %end
15 end:
16   %p = phi float [ 1.0, %entry ], [ 1.0, %if.true]
17   %c = fcmp ueq float %p, 1.0
18   ret i1 %c
21 define i1 @float.2(i1 %cmp) {
22 ; CHECK-LABEL: define i1 @float.2(i1 %cmp) {
24 ; CHECK-LABEL: end:
25 ; CHECK-NEXT:    %p = phi float [ 1.000000e+00, %entry ], [ 2.000000e+00, %if.true ]
26 ; CHECK-NEXT:    %c = fcmp ueq float %p, 1.000000e+00
27 ; CHECK-NEXT:    ret i1 %c
29 entry:
30   br i1 %cmp, label %if.true, label %end
32 if.true:
33   br label %end
35 end:
36   %p = phi float [ 1.0, %entry ], [ 2.0, %if.true]
37   %c = fcmp ueq float %p, 1.0
38   ret i1 %c
41 define i1 @float.3(float %f, i1 %cmp) {
42 ; CHECK-LABEL: define i1 @float.3(float %f, i1 %cmp)
44 ; CHECK-LABEL: end:
45 ; CHECK-NEXT:    %p = phi float [ 1.000000e+00, %entry ], [ %f, %if.true ]
46 ; CHECK-NEXT:    %c = fcmp ueq float %p, 1.000000e+00
47 ; CHECK-NEXT:    ret i1 %c
49 entry:
50   br i1 %cmp, label %if.true, label %end
52 if.true:
53   br label %end
55 end:
56   %p = phi float [ 1.0, %entry ], [ %f, %if.true]
57   %c = fcmp ueq float %p, 1.0
58   ret i1 %c
62 define i1 @float.4_unreachable(float %f, i1 %cmp) {
63 ; CHECK-LABEL: define i1 @float.4_unreachable(float %f, i1 %cmp)
65 ; CHECK-LABEL: end:
66 ; CHECK-NEXT:    ret i1 false
68 entry:
69   br i1 %cmp, label %if.true, label %end
71 if.true:
72   br label %end
74 dead:
75   br label %end
77 end:
78   %p = phi float [ 1.0, %entry ], [ 1.0, %if.true], [ %f, %dead ]
79   %c = fcmp une float %p, 1.0
80   ret i1 %c