[InstCombine] Signed saturation tests. NFC
[llvm-core.git] / test / Transforms / IPConstantProp / fp-bc-icmp-const-fold.ll
blob8f97225ca446b74a428170b234dac86e2a7ee473
1 ; RUN: opt -S -ipsccp < %s | FileCheck %s
2 target datalayout = "E-m:e-i64:64-n32:64"
3 target triple = "powerpc64-bgq-linux"
5 define void @test(i32 signext %n) {
7 ; CHECK-LABEL: @test
9 entry:
10   br i1 undef, label %if.then, label %if.end
12 if.then:                                          ; preds = %entry
13   ret void
15 if.end:                                           ; preds = %entry
16   br i1 undef, label %if.then2, label %if.end4
18 if.then2:                                         ; preds = %if.end
19   unreachable
21 if.end4:                                          ; preds = %if.end
22   %sub.n = select i1 undef, i32 undef, i32 %n
23   switch i32 %sub.n, label %if.else14 [
24     i32 0, label %if.then9
25     i32 1, label %if.then12
26   ]
28 if.then9:                                         ; preds = %if.end4
29   unreachable
31 if.then12:                                        ; preds = %if.end4
32   unreachable
34 if.else14:                                        ; preds = %if.end4
35   br label %do.body
37 do.body:                                          ; preds = %do.body, %if.else14
38   %scale.0 = phi ppc_fp128 [ 0xM3FF00000000000000000000000000000, %if.else14 ], [ %scale.0, %do.body ]
39   br i1 undef, label %do.body, label %if.then33
41 if.then33:                                        ; preds = %do.body
42   br i1 undef, label %_ZN5boost4math4signIgEEiRKT_.exit30, label %cond.false.i28
44 cond.false.i28:                                   ; preds = %if.then33
45   %0 = bitcast ppc_fp128 %scale.0 to i128
46   %tobool.i26 = icmp slt i128 %0, 0
47   br label %_ZN5boost4math4signIgEEiRKT_.exit30
49 _ZN5boost4math4signIgEEiRKT_.exit30:              ; preds = %cond.false.i28, %if.then33
50   unreachable