1 ; RUN: llvm-as < %s | llvm-dis | llvm-as | llvm-dis | FileCheck %s 2 3 ; CHECK: @foo 4 ; CHECK: store { i32, i32 } { i32 7, i32 9 }, { i32, i32 }* %x 5 ; CHECK: ret 6 define void @foo({i32, i32}* %x) nounwind { 7 store {i32, i32}{i32 7, i32 9}, {i32, i32}* %x 8 ret void 9 } 10 11 ; CHECK: @foo_empty 12 ; CHECK: store {} zeroinitializer, {}* %x 13 ; CHECK: ret 14 define void @foo_empty({}* %x) nounwind { 15 store {}{}, {}* %x 16 ret void 17 } 18 19 ; CHECK: @bar 20 ; CHECK: store [2 x i32] [i32 7, i32 9], [2 x i32]* %x 21 ; CHECK: ret 22 define void @bar([2 x i32]* %x) nounwind { 23 store [2 x i32][i32 7, i32 9], [2 x i32]* %x 24 ret void 25 } 26 27 ; CHECK: @bar_empty 28 ; CHECK: store [0 x i32] undef, [0 x i32]* %x 29 ; CHECK: ret 30 define void @bar_empty([0 x i32]* %x) nounwind { 31 store [0 x i32][], [0 x i32]* %x 32 ret void 33 } 34 35 ; CHECK: @qux 36 ; CHECK: store <{ i32, i32 }> <{ i32 7, i32 9 }>, <{ i32, i32 }>* %x 37 ; CHECK: ret 38 define void @qux(<{i32, i32}>* %x) nounwind { 39 store <{i32, i32}><{i32 7, i32 9}>, <{i32, i32}>* %x 40 ret void 41 } 42 43 ; CHECK: @qux_empty 44 ; CHECK: store <{}> zeroinitializer, <{}>* %x 45 ; CHECK: ret 46 define void @qux_empty(<{}>* %x) nounwind { 47 store <{}><{}>, <{}>* %x 48 ret void 49 } 50 51