Dan Gohman | 0a06310 | 2009-09-08 23:54:48 +0000 | [diff] [blame] | 1 | ; RUN: llc < %s -march=x86 -tailcallopt=false | grep ret | not grep 4 |
Evan Cheng | a9d15b9 | 2008-09-10 18:25:29 +0000 | [diff] [blame] | 2 | |
| 3 | %struct.foo = type { [4 x i32] } |
| 4 | |
| 5 | define fastcc void @bar(%struct.foo* noalias sret %agg.result) nounwind { |
| 6 | entry: |
| 7 | %tmp1 = getelementptr %struct.foo* %agg.result, i32 0, i32 0 |
| 8 | %tmp3 = getelementptr [4 x i32]* %tmp1, i32 0, i32 0 |
| 9 | store i32 1, i32* %tmp3, align 8 |
| 10 | ret void |
| 11 | } |
| 12 | |
| 13 | @dst = external global i32 |
| 14 | |
| 15 | define void @foo() nounwind { |
| 16 | %memtmp = alloca %struct.foo, align 4 |
| 17 | call fastcc void @bar( %struct.foo* sret %memtmp ) nounwind |
| 18 | %tmp4 = getelementptr %struct.foo* %memtmp, i32 0, i32 0 |
| 19 | %tmp5 = getelementptr [4 x i32]* %tmp4, i32 0, i32 0 |
| 20 | %tmp6 = load i32* %tmp5 |
| 21 | store i32 %tmp6, i32* @dst |
| 22 | ret void |
| 23 | } |