@@ -17,7 +17,7 @@ define void @test(i32 signext %n, i1 %arg) {
1717; CHECK: if.then2:
1818; CHECK-NEXT: unreachable
1919; CHECK: if.end4:
20- ; CHECK-NEXT: switch i32 undef , label [[IF_ELSE14:%.*]] [
20+ ; CHECK-NEXT: switch i32 [[N]] , label [[IF_ELSE14:%.*]] [
2121; CHECK-NEXT: i32 0, label [[IF_THEN9:%.*]]
2222; CHECK-NEXT: i32 1, label [[IF_THEN12:%.*]]
2323; CHECK-NEXT: ]
@@ -26,13 +26,16 @@ define void @test(i32 signext %n, i1 %arg) {
2626; CHECK: if.then12:
2727; CHECK-NEXT: unreachable
2828; CHECK: if.else14:
29- ; CHECK-NEXT: unreachable
29+ ; CHECK-NEXT: br label [[DO_BODY:%.*]]
3030; CHECK: do.body:
31- ; CHECK-NEXT: unreachable
31+ ; CHECK-NEXT: [[SCALE_0:%.*]] = phi ppc_fp128 [ 0xM3FF00000000000000000000000000000, [[IF_ELSE14]] ], [ [[SCALE_0]], [[DO_BODY]] ]
32+ ; CHECK-NEXT: br i1 [[ARG]], label [[DO_BODY]], label [[IF_THEN33:%.*]]
3233; CHECK: if.then33:
33- ; CHECK-NEXT: unreachable
34+ ; CHECK-NEXT: br i1 [[ARG]], label [[_ZN5BOOST4MATH4SIGNIGEEIRKT__EXIT30:%.*]], label [[COND_FALSE_I28:%.*]]
3435; CHECK: cond.false.i28:
35- ; CHECK-NEXT: unreachable
36+ ; CHECK-NEXT: [[TMP0:%.*]] = bitcast ppc_fp128 [[SCALE_0]] to i128
37+ ; CHECK-NEXT: [[TOBOOL_I26:%.*]] = icmp slt i128 [[TMP0]], 0
38+ ; CHECK-NEXT: br label [[_ZN5BOOST4MATH4SIGNIGEEIRKT__EXIT30]]
3639; CHECK: _ZN5boost4math4signIgEEiRKT_.exit30:
3740; CHECK-NEXT: unreachable
3841;
@@ -50,8 +53,7 @@ if.then2: ; preds = %if.end
5053 unreachable
5154
5255if.end4: ; preds = %if.end
53- %sub.n = select i1 undef , i32 undef , i32 %n
54- switch i32 %sub.n , label %if.else14 [
56+ switch i32 %n , label %if.else14 [
5557 i32 0 , label %if.then9
5658 i32 1 , label %if.then12
5759 ]
0 commit comments