xref: /aosp_15_r20/external/llvm/test/CodeGen/PowerPC/combine-to-pre-index-store-crash.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: TestFoo:
4*9880d681SAndroid Build Coastguard Worker; CHECK: std
5*9880d681SAndroid Build Coastguard Worker; CHECK: bl TestBar
6*9880d681SAndroid Build Coastguard Worker; CHECK: stbu
7*9880d681SAndroid Build Coastguard Worker; CHECK: std
8*9880d681SAndroid Build Coastguard Worker; CHECK: blr
9*9880d681SAndroid Build Coastguard Worker
10*9880d681SAndroid Build Coastguard Worker%StructA = type <{ i64, { i64, i64 }, { i64, i64 } }>
11*9880d681SAndroid Build Coastguard Worker
12*9880d681SAndroid Build Coastguard Workerdefine void @TestFoo(%StructA* %this) {
13*9880d681SAndroid Build Coastguard Worker  %tmp = getelementptr inbounds %StructA, %StructA* %this, i64 0, i32 1
14*9880d681SAndroid Build Coastguard Worker  %tmp11 = getelementptr inbounds %StructA, %StructA* %this, i64 0, i32 1, i32 1
15*9880d681SAndroid Build Coastguard Worker  %tmp12 = bitcast { i64, i64 }* %tmp to i64**
16*9880d681SAndroid Build Coastguard Worker  store i64* %tmp11, i64** %tmp12
17*9880d681SAndroid Build Coastguard Worker  call void @TestBar()
18*9880d681SAndroid Build Coastguard Worker  %tmp13 = getelementptr inbounds %StructA, %StructA* %this, i64 0, i32 2, i32 1
19*9880d681SAndroid Build Coastguard Worker  store i64* %tmp13, i64** undef
20*9880d681SAndroid Build Coastguard Worker  %.cast.i.i.i = bitcast i64* %tmp13 to i8*
21*9880d681SAndroid Build Coastguard Worker  store i8 0, i8* %.cast.i.i.i
22*9880d681SAndroid Build Coastguard Worker  ret void
23*9880d681SAndroid Build Coastguard Worker}
24*9880d681SAndroid Build Coastguard Worker
25*9880d681SAndroid Build Coastguard Workerdeclare void @TestBar()
26