1 ; RUN: opt < %s -sccp -S | FileCheck %s
3 define i1 @float.1(i1 %cmp) {
4 ; CHECK-LABEL: define i1 @float.1(i1 %cmp) {
7 ; CHECK-NEXT: ret i1 true
10 br i1 %cmp, label %if.true, label %end
16 %p = phi float [ 1.0, %entry ], [ 1.0, %if.true]
17 %c = fcmp ueq float %p, 1.0
21 define i1 @float.2(i1 %cmp) {
22 ; CHECK-LABEL: define i1 @float.2(i1 %cmp) {
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
30 br i1 %cmp, label %if.true, label %end
36 %p = phi float [ 1.0, %entry ], [ 2.0, %if.true]
37 %c = fcmp ueq float %p, 1.0
41 define i1 @float.3(float %f, i1 %cmp) {
42 ; CHECK-LABEL: define i1 @float.3(float %f, i1 %cmp)
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
50 br i1 %cmp, label %if.true, label %end
56 %p = phi float [ 1.0, %entry ], [ %f, %if.true]
57 %c = fcmp ueq float %p, 1.0
62 define i1 @float.4_unreachable(float %f, i1 %cmp) {
63 ; CHECK-LABEL: define i1 @float.4_unreachable(float %f, i1 %cmp)
66 ; CHECK-NEXT: ret i1 false
69 br i1 %cmp, label %if.true, label %end
78 %p = phi float [ 1.0, %entry ], [ 1.0, %if.true], [ %f, %dead ]
79 %c = fcmp une float %p, 1.0