xref: /aosp_15_r20/external/llvm/test/Assembler/aggregate-constant-values.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llvm-as < %s | llvm-dis | llvm-as | llvm-dis | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker; RUN: verify-uselistorder %s
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Worker; CHECK: @foo
5*9880d681SAndroid Build Coastguard Worker; CHECK: store { i32, i32 } { i32 7, i32 9 }, { i32, i32 }* %x
6*9880d681SAndroid Build Coastguard Worker; CHECK: ret
7*9880d681SAndroid Build Coastguard Workerdefine void @foo({i32, i32}* %x) nounwind {
8*9880d681SAndroid Build Coastguard Worker  store {i32, i32}{i32 7, i32 9}, {i32, i32}* %x
9*9880d681SAndroid Build Coastguard Worker  ret void
10*9880d681SAndroid Build Coastguard Worker}
11*9880d681SAndroid Build Coastguard Worker
12*9880d681SAndroid Build Coastguard Worker; CHECK: @foo_empty
13*9880d681SAndroid Build Coastguard Worker; CHECK: store {} zeroinitializer, {}* %x
14*9880d681SAndroid Build Coastguard Worker; CHECK: ret
15*9880d681SAndroid Build Coastguard Workerdefine void @foo_empty({}* %x) nounwind {
16*9880d681SAndroid Build Coastguard Worker  store {}{}, {}* %x
17*9880d681SAndroid Build Coastguard Worker  ret void
18*9880d681SAndroid Build Coastguard Worker}
19*9880d681SAndroid Build Coastguard Worker
20*9880d681SAndroid Build Coastguard Worker; CHECK: @bar
21*9880d681SAndroid Build Coastguard Worker; CHECK: store [2 x i32] [i32 7, i32 9], [2 x i32]* %x
22*9880d681SAndroid Build Coastguard Worker; CHECK: ret
23*9880d681SAndroid Build Coastguard Workerdefine void @bar([2 x i32]* %x) nounwind {
24*9880d681SAndroid Build Coastguard Worker  store [2 x i32][i32 7, i32 9], [2 x i32]* %x
25*9880d681SAndroid Build Coastguard Worker  ret void
26*9880d681SAndroid Build Coastguard Worker}
27*9880d681SAndroid Build Coastguard Worker
28*9880d681SAndroid Build Coastguard Worker; CHECK: @bar_empty
29*9880d681SAndroid Build Coastguard Worker; CHECK: store [0 x i32] undef, [0 x i32]* %x
30*9880d681SAndroid Build Coastguard Worker; CHECK: ret
31*9880d681SAndroid Build Coastguard Workerdefine void @bar_empty([0 x i32]* %x) nounwind {
32*9880d681SAndroid Build Coastguard Worker  store [0 x i32][], [0 x i32]* %x
33*9880d681SAndroid Build Coastguard Worker  ret void
34*9880d681SAndroid Build Coastguard Worker}
35*9880d681SAndroid Build Coastguard Worker
36*9880d681SAndroid Build Coastguard Worker; CHECK: @qux
37*9880d681SAndroid Build Coastguard Worker; CHECK: store <{ i32, i32 }> <{ i32 7, i32 9 }>, <{ i32, i32 }>* %x
38*9880d681SAndroid Build Coastguard Worker; CHECK: ret
39*9880d681SAndroid Build Coastguard Workerdefine void @qux(<{i32, i32}>* %x) nounwind {
40*9880d681SAndroid Build Coastguard Worker  store <{i32, i32}><{i32 7, i32 9}>, <{i32, i32}>* %x
41*9880d681SAndroid Build Coastguard Worker  ret void
42*9880d681SAndroid Build Coastguard Worker}
43*9880d681SAndroid Build Coastguard Worker
44*9880d681SAndroid Build Coastguard Worker; CHECK: @qux_empty
45*9880d681SAndroid Build Coastguard Worker; CHECK: store <{}> zeroinitializer, <{}>* %x
46*9880d681SAndroid Build Coastguard Worker; CHECK: ret
47*9880d681SAndroid Build Coastguard Workerdefine void @qux_empty(<{}>* %x) nounwind {
48*9880d681SAndroid Build Coastguard Worker  store <{}><{}>, <{}>* %x
49*9880d681SAndroid Build Coastguard Worker  ret void
50*9880d681SAndroid Build Coastguard Worker}
51*9880d681SAndroid Build Coastguard Worker
52