Aleksandar Beserminji | 1435729 | 2017-10-20 14:35:41 +0000 | [diff] [blame] | 1 | ; RUN: llc -march=mipsel -relocation-model=pic < %s | FileCheck %s -check-prefix=32 |
| 2 | ; RUN: llc -march=mips64el -mcpu=mips4 -target-abi=n64 -relocation-model=pic < %s | \ |
| 3 | ; RUN: FileCheck %s -check-prefix=64 |
| 4 | ; RUN: llc -march=mips64el -mcpu=mips64 -target-abi=n64 -relocation-model=pic < %s | \ |
| 5 | ; RUN: FileCheck %s -check-prefix=64 |
Dan Gohman | 3767be9ae | 2011-09-01 23:07:08 +0000 | [diff] [blame] | 6 | |
Akira Hatanaka | 2486729 | 2011-05-24 21:28:18 +0000 | [diff] [blame] | 7 | %struct.S1 = type { [65536 x i8] } |
| 8 | |
| 9 | @s1 = external global %struct.S1 |
| 10 | |
| 11 | define void @f() nounwind { |
| 12 | entry: |
Simon Dardis | 878c0b1 | 2016-06-14 13:39:43 +0000 | [diff] [blame] | 13 | ; 32: lui $[[R0:[0-9]+]], 1 |
| 14 | ; 32: addiu $[[R0]], $[[R0]], 24 |
| 15 | ; 32: subu $sp, $sp, $[[R0]] |
| 16 | ; 32: lui $[[R1:[0-9]+]], 1 |
| 17 | ; 32: addu $[[R1]], $sp, $[[R1]] |
| 18 | ; 32: sw $ra, 20($[[R1]]) |
| 19 | |
| 20 | ; 64: lui $[[R0:[0-9]+]], 1 |
| 21 | ; 64: daddiu $[[R0]], $[[R0]], 32 |
| 22 | ; 64: dsubu $sp, $sp, $[[R0]] |
| 23 | ; 64: lui $[[R1:[0-9]+]], 1 |
| 24 | ; 64: daddu $[[R1]], $sp, $[[R1]] |
| 25 | ; 64: sd $ra, 24($[[R1]]) |
Akira Hatanaka | 2486729 | 2011-05-24 21:28:18 +0000 | [diff] [blame] | 26 | |
| 27 | %agg.tmp = alloca %struct.S1, align 1 |
David Blaikie | 79e6c74 | 2015-02-27 19:29:02 +0000 | [diff] [blame] | 28 | %tmp = getelementptr inbounds %struct.S1, %struct.S1* %agg.tmp, i32 0, i32 0, i32 0 |
Daniel Neilson | 1e68724 | 2018-01-19 17:13:12 +0000 | [diff] [blame] | 29 | call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %tmp, i8* align 1 getelementptr inbounds (%struct.S1, %struct.S1* @s1, i32 0, i32 0, i32 0), i32 65536, i1 false) |
Akira Hatanaka | 2486729 | 2011-05-24 21:28:18 +0000 | [diff] [blame] | 30 | call void @f2(%struct.S1* byval %agg.tmp) nounwind |
| 31 | ret void |
| 32 | } |
| 33 | |
| 34 | declare void @f2(%struct.S1* byval) |
| 35 | |
Daniel Neilson | 1e68724 | 2018-01-19 17:13:12 +0000 | [diff] [blame] | 36 | declare void @llvm.memcpy.p0i8.p0i8.i32(i8* nocapture, i8* nocapture, i32, i1) nounwind |