Akira Hatanaka | 2ef5bd3 | 2012-10-24 02:10:54 +0000 | [diff] [blame] | 1 | ; RUN: llc -march=mips64el -mcpu=mips64r2 -mattr=n64 -O3 < %s | FileCheck %s |
Akira Hatanaka | 30580ce | 2012-10-19 22:11:40 +0000 | [diff] [blame] | 2 | |
| 3 | %struct.S = type { [8 x i32] } |
| 4 | |
| 5 | @g = common global %struct.S zeroinitializer, align 4 |
| 6 | |
| 7 | define void @f(%struct.S* noalias sret %agg.result) nounwind { |
| 8 | entry: |
Akira Hatanaka | 1ae08e0 | 2013-03-04 22:25:01 +0000 | [diff] [blame] | 9 | ; CHECK: move $2, $4 |
Akira Hatanaka | 2ef5bd3 | 2012-10-24 02:10:54 +0000 | [diff] [blame] | 10 | |
Akira Hatanaka | 30580ce | 2012-10-19 22:11:40 +0000 | [diff] [blame] | 11 | %0 = bitcast %struct.S* %agg.result to i8* |
| 12 | call void @llvm.memcpy.p0i8.p0i8.i64(i8* %0, i8* bitcast (%struct.S* @g to i8*), i64 32, i32 4, i1 false) |
| 13 | ret void |
| 14 | } |
| 15 | |
| 16 | declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture, i64, i32, i1) nounwind |