xref: /aosp_15_r20/external/llvm/test/CodeGen/PowerPC/split-index-tc.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc -mcpu=pwr7 < %s | FileCheck %s
2*9880d681SAndroid Build Coastguard Workertarget datalayout = "E-m:e-i64:64-n32:64"
3*9880d681SAndroid Build Coastguard Workertarget triple = "powerpc64-unknown-linux-gnu"
4*9880d681SAndroid Build Coastguard Worker
5*9880d681SAndroid Build Coastguard Worker%"class.llvm::MachineOperand" = type { i8, [3 x i8], i64, i64*, i64 }
6*9880d681SAndroid Build Coastguard Worker
7*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind
8*9880d681SAndroid Build Coastguard Workerdefine void @_ZN4llvm17ScheduleDAGInstrs14addPhysRegDepsEPNS_5SUnitEj() #0 align 2 {
9*9880d681SAndroid Build Coastguard Worker
10*9880d681SAndroid Build Coastguard Worker; If we were able to split out the indexing, the load with update should be
11*9880d681SAndroid Build Coastguard Worker; removed (resulting in a nearly-empty output).
12*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @_ZN4llvm17ScheduleDAGInstrs14addPhysRegDepsEPNS_5SUnitEj
13*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: lhzu
14*9880d681SAndroid Build Coastguard Worker
15*9880d681SAndroid Build Coastguard Workerentry:
16*9880d681SAndroid Build Coastguard Worker  %0 = load %"class.llvm::MachineOperand"*, %"class.llvm::MachineOperand"** undef, align 8
17*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %_ZNK4llvm14MachineOperand6getRegEv.exit, label %cond.false.i123
18*9880d681SAndroid Build Coastguard Worker
19*9880d681SAndroid Build Coastguard Workercond.false.i123:                                  ; preds = %_ZN4llvm12MachineInstr10getOperandEj.exit
20*9880d681SAndroid Build Coastguard Worker  unreachable
21*9880d681SAndroid Build Coastguard Worker
22*9880d681SAndroid Build Coastguard Worker_ZNK4llvm14MachineOperand6getRegEv.exit:          ; preds = %_ZN4llvm12MachineInstr10getOperandEj.exit
23*9880d681SAndroid Build Coastguard Worker  %IsDef.i = getelementptr inbounds %"class.llvm::MachineOperand", %"class.llvm::MachineOperand"* %0, i64 undef, i32 1
24*9880d681SAndroid Build Coastguard Worker  %1 = bitcast [3 x i8]* %IsDef.i to i24*
25*9880d681SAndroid Build Coastguard Worker  %bf.load.i = load i24, i24* %1, align 1
26*9880d681SAndroid Build Coastguard Worker  %2 = and i24 %bf.load.i, 128
27*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %for.cond.cleanup, label %for.body.lr.ph
28*9880d681SAndroid Build Coastguard Worker
29*9880d681SAndroid Build Coastguard Workerfor.body.lr.ph:                                   ; preds = %_ZNK4llvm14MachineOperand6getRegEv.exit
30*9880d681SAndroid Build Coastguard Worker  %3 = zext i24 %2 to i32
31*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %cond.false.i134, label %_ZNK4llvm18MCRegAliasIteratordeEv.exit
32*9880d681SAndroid Build Coastguard Worker
33*9880d681SAndroid Build Coastguard Workerfor.cond.cleanup:                                 ; preds = %_ZNK4llvm14MachineOperand6getRegEv.exit
34*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %_ZNK4llvm14MachineOperand5isDefEv.exit, label %cond.false.i129
35*9880d681SAndroid Build Coastguard Worker
36*9880d681SAndroid Build Coastguard Workercond.false.i129:                                  ; preds = %for.cond.cleanup
37*9880d681SAndroid Build Coastguard Worker  unreachable
38*9880d681SAndroid Build Coastguard Worker
39*9880d681SAndroid Build Coastguard Worker_ZNK4llvm14MachineOperand5isDefEv.exit:           ; preds = %for.cond.cleanup
40*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %_ZNK4llvm14MachineOperand6getRegEv.exit247, label %cond.false.i244
41*9880d681SAndroid Build Coastguard Worker
42*9880d681SAndroid Build Coastguard Workercond.false.i134:                                  ; preds = %for.body.lr.ph
43*9880d681SAndroid Build Coastguard Worker  unreachable
44*9880d681SAndroid Build Coastguard Worker
45*9880d681SAndroid Build Coastguard Worker_ZNK4llvm18MCRegAliasIteratordeEv.exit:           ; preds = %for.body.lr.ph
46*9880d681SAndroid Build Coastguard Worker  unreachable
47*9880d681SAndroid Build Coastguard Worker
48*9880d681SAndroid Build Coastguard Workercond.false.i244:                                  ; preds = %_ZNK4llvm14MachineOperand5isDefEv.exit
49*9880d681SAndroid Build Coastguard Worker  unreachable
50*9880d681SAndroid Build Coastguard Worker
51*9880d681SAndroid Build Coastguard Worker_ZNK4llvm14MachineOperand6getRegEv.exit247:       ; preds = %_ZNK4llvm14MachineOperand5isDefEv.exit
52*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %if.then53, label %if.end55
53*9880d681SAndroid Build Coastguard Worker
54*9880d681SAndroid Build Coastguard Workerif.then53:                                        ; preds = %_ZNK4llvm14MachineOperand6getRegEv.exit247
55*9880d681SAndroid Build Coastguard Worker  unreachable
56*9880d681SAndroid Build Coastguard Worker
57*9880d681SAndroid Build Coastguard Workerif.end55:                                         ; preds = %_ZNK4llvm14MachineOperand6getRegEv.exit247
58*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %_ZNK4llvm14MachineOperand6isDeadEv.exit262, label %cond.false.i257
59*9880d681SAndroid Build Coastguard Worker
60*9880d681SAndroid Build Coastguard Workercond.false.i257:                                  ; preds = %if.end55
61*9880d681SAndroid Build Coastguard Worker  unreachable
62*9880d681SAndroid Build Coastguard Worker
63*9880d681SAndroid Build Coastguard Worker_ZNK4llvm14MachineOperand6isDeadEv.exit262:       ; preds = %if.end55
64*9880d681SAndroid Build Coastguard Worker  %bf.load.i259 = load i24, i24* %1, align 1
65*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %if.then57, label %if.else59
66*9880d681SAndroid Build Coastguard Worker
67*9880d681SAndroid Build Coastguard Workerif.then57:                                        ; preds = %_ZNK4llvm14MachineOperand6isDeadEv.exit262
68*9880d681SAndroid Build Coastguard Worker  unreachable
69*9880d681SAndroid Build Coastguard Worker
70*9880d681SAndroid Build Coastguard Workerif.else59:                                        ; preds = %_ZNK4llvm14MachineOperand6isDeadEv.exit262
71*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %if.end89, label %if.then62
72*9880d681SAndroid Build Coastguard Worker
73*9880d681SAndroid Build Coastguard Workerif.then62:                                        ; preds = %if.else59
74*9880d681SAndroid Build Coastguard Worker  unreachable
75*9880d681SAndroid Build Coastguard Worker
76*9880d681SAndroid Build Coastguard Workerif.end89:                                         ; preds = %if.else59
77*9880d681SAndroid Build Coastguard Worker  unreachable
78*9880d681SAndroid Build Coastguard Worker}
79*9880d681SAndroid Build Coastguard Worker
80*9880d681SAndroid Build Coastguard Workerattributes #0 = { nounwind }
81*9880d681SAndroid Build Coastguard Worker
82*9880d681SAndroid Build Coastguard Worker
83