brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · 05fa568 Raw
85 lines · plain
1; RUN: llc < %s2; PR99003 4; NVPTX does not support zero sized type arg5; UNSUPPORTED: target=nvptx{{.*}}6 7%zero = type [0 x i8]8%foobar = type { i32, %zero }9 10define void @f(%foobar %arg) {11  %arg1 = extractvalue %foobar %arg, 012  %arg2 = extractvalue %foobar %arg, 113  call i32 @f2(%zero %arg2, i32 5, i32 42)14  ret void15}16 17define i32 @f2(%zero %x, i32 %y, i32 %z) {18  ret i32 %y19}20 21define void @f3(%zero %x, i32 %y) {22  call i32 @f2(%zero %x, i32 5, i32 %y)23  ret void24}25 26define void @f4(%zero %z) {27  insertvalue %foobar undef, %zero %z, 128  ret void29}30 31define void @f5(%foobar %x) {32allocas:33  %y = extractvalue %foobar %x, 134  br  label %b135 36b1:37  %insert120 = insertvalue %foobar undef, %zero %y, 138  ret void39}40 41define void @f6(%zero %x, %zero %y) {42b1:43  br i1 undef, label %end, label %b244 45b2:46  br label %end47 48end:49  %z = phi %zero [ %y, %b1 ], [ %x, %b2 ]50  call void @f4(%zero %z)51  ret void52}53 54%zero2 = type {}55 56define i32 @g1(%zero2 %x, i32 %y, i32 %z) {57  ret i32 %y58}59 60define void @g2(%zero2 %x, i32 %y) {61  call i32 @g1(%zero2 %x, i32 5, i32 %y)62  ret void63}64 65%zero2r = type {%zero2}66 67define i32 @h1(%zero2r %x, i32 %y, i32 %z) {68  ret i32 %y69}70 71define void @h2(%zero2r %x, i32 %y) {72  call i32 @h1(%zero2r %x, i32 5, i32 %y)73  ret void74}75 76%foobar2 = type { i32, %zero2r }77 78define void @h3(%foobar2 %arg) {79  %arg1 = extractvalue %foobar2 %arg, 080  %arg2 = extractvalue %foobar2 %arg, 181  %arg21 = extractvalue %zero2r %arg2, 082  call void @g2(%zero2 %arg21, i32 5)83  ret void84}85