xref: /aosp_15_r20/external/llvm/test/Transforms/IPConstantProp/fp-bc-icmp-const-fold.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: opt -S -ipsccp < %s | FileCheck %s
2*9880d681SAndroid Build Coastguard Workertarget datalayout = "E-m:e-i64:64-n32:64"
3*9880d681SAndroid Build Coastguard Workertarget triple = "powerpc64-bgq-linux"
4*9880d681SAndroid Build Coastguard Worker
5*9880d681SAndroid Build Coastguard Workerdefine void @test(i32 signext %n) {
6*9880d681SAndroid Build Coastguard Worker
7*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test
8*9880d681SAndroid Build Coastguard Worker
9*9880d681SAndroid Build Coastguard Workerentry:
10*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %if.then, label %if.end
11*9880d681SAndroid Build Coastguard Worker
12*9880d681SAndroid Build Coastguard Workerif.then:                                          ; preds = %entry
13*9880d681SAndroid Build Coastguard Worker  ret void
14*9880d681SAndroid Build Coastguard Worker
15*9880d681SAndroid Build Coastguard Workerif.end:                                           ; preds = %entry
16*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %if.then2, label %if.end4
17*9880d681SAndroid Build Coastguard Worker
18*9880d681SAndroid Build Coastguard Workerif.then2:                                         ; preds = %if.end
19*9880d681SAndroid Build Coastguard Worker  unreachable
20*9880d681SAndroid Build Coastguard Worker
21*9880d681SAndroid Build Coastguard Workerif.end4:                                          ; preds = %if.end
22*9880d681SAndroid Build Coastguard Worker  %sub.n = select i1 undef, i32 undef, i32 %n
23*9880d681SAndroid Build Coastguard Worker  switch i32 %sub.n, label %if.else14 [
24*9880d681SAndroid Build Coastguard Worker    i32 0, label %if.then9
25*9880d681SAndroid Build Coastguard Worker    i32 1, label %if.then12
26*9880d681SAndroid Build Coastguard Worker  ]
27*9880d681SAndroid Build Coastguard Worker
28*9880d681SAndroid Build Coastguard Workerif.then9:                                         ; preds = %if.end4
29*9880d681SAndroid Build Coastguard Worker  unreachable
30*9880d681SAndroid Build Coastguard Worker
31*9880d681SAndroid Build Coastguard Workerif.then12:                                        ; preds = %if.end4
32*9880d681SAndroid Build Coastguard Worker  unreachable
33*9880d681SAndroid Build Coastguard Worker
34*9880d681SAndroid Build Coastguard Workerif.else14:                                        ; preds = %if.end4
35*9880d681SAndroid Build Coastguard Worker  br label %do.body
36*9880d681SAndroid Build Coastguard Worker
37*9880d681SAndroid Build Coastguard Workerdo.body:                                          ; preds = %do.body, %if.else14
38*9880d681SAndroid Build Coastguard Worker  %scale.0 = phi ppc_fp128 [ 0xM3FF00000000000000000000000000000, %if.else14 ], [ %scale.0, %do.body ]
39*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %do.body, label %if.then33
40*9880d681SAndroid Build Coastguard Worker
41*9880d681SAndroid Build Coastguard Workerif.then33:                                        ; preds = %do.body
42*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %_ZN5boost4math4signIgEEiRKT_.exit30, label %cond.false.i28
43*9880d681SAndroid Build Coastguard Worker
44*9880d681SAndroid Build Coastguard Workercond.false.i28:                                   ; preds = %if.then33
45*9880d681SAndroid Build Coastguard Worker  %0 = bitcast ppc_fp128 %scale.0 to i128
46*9880d681SAndroid Build Coastguard Worker  %tobool.i26 = icmp slt i128 %0, 0
47*9880d681SAndroid Build Coastguard Worker  br label %_ZN5boost4math4signIgEEiRKT_.exit30
48*9880d681SAndroid Build Coastguard Worker
49*9880d681SAndroid Build Coastguard Worker_ZN5boost4math4signIgEEiRKT_.exit30:              ; preds = %cond.false.i28, %if.then33
50*9880d681SAndroid Build Coastguard Worker  unreachable
51*9880d681SAndroid Build Coastguard Worker}
52*9880d681SAndroid Build Coastguard Worker
53