[WebAssembly] Don't perform the returned-argument optimization on constants.
[oota-llvm.git] / test / CodeGen / ARM / 2013-06-03-ByVal-2Kbytes.ll
1 ; RUN: llc < %s -mcpu=cortex-a15 | FileCheck %s
2 ; ModuleID = 'attri_16.c'
3 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:64:128-a0:0:64-n32-S64"
4 target triple = "armv4t--linux-gnueabihf"
5
6 %big_struct0 = type { [517 x i32] }
7 %big_struct1 = type { [516 x i32] }
8
9 ;CHECK-LABEL: f:
10 define void @f(%big_struct0* %p0, %big_struct1* %p1) {
11
12 ;CHECK: sub sp, sp, #8
13 ;CHECK: sub sp, sp, #2048
14 ;CHECK: bl callme0
15   call void @callme0(%big_struct0* byval %p0)
16
17 ;CHECK: add sp, sp, #8
18 ;CHECK: add sp, sp, #2048
19 ;CHECK: sub sp, sp, #2048
20 ;CHECK: bl callme1
21   call void @callme1(%big_struct1* byval %p1)
22
23 ;CHECK: add sp, sp, #2048
24
25   ret void
26 }
27
28 declare void @callme0(%big_struct0* byval)
29 declare void @callme1(%big_struct1* byval)
30