1 ; RUN: llc < %s -mtriple=armv7-apple-ios6.0 | FileCheck %s
4 %struct.SmallStruct = type { i32, [8 x i32], [37 x i8] }
5 %struct.LargeStruct = type { i32, [1001 x i8], [300 x i32] }
7 define i32 @f() nounwind ssp {
13 %st = alloca %struct.SmallStruct, align 4
14 %call = call i32 @e1(%struct.SmallStruct* byval %st)
18 ; Generate a loop for large struct byval
19 define i32 @g() nounwind ssp {
26 %st = alloca %struct.LargeStruct, align 4
27 %call = call i32 @e2(%struct.LargeStruct* byval %st)
31 ; Generate a loop using NEON instructions
32 define i32 @h() nounwind ssp {
39 %st = alloca %struct.LargeStruct, align 16
40 %call = call i32 @e3(%struct.LargeStruct* byval align 16 %st)
44 declare i32 @e1(%struct.SmallStruct* nocapture byval %in) nounwind
45 declare i32 @e2(%struct.LargeStruct* nocapture byval %in) nounwind
46 declare i32 @e3(%struct.LargeStruct* nocapture byval align 16 %in) nounwind