blob: db985d7a202208ec33d692757ba8b37d81780e08 [file] [log] [blame]
Daniel Dunbar98303b92009-09-13 08:03:58 +00001// RUX: iphone-llvm-gcc -arch armv7 -flto -S -o - %s | FileCheck %s
Daniel Dunbar018ba5a2009-09-14 00:35:03 +00002// RUN: clang-cc -triple armv7-apple-darwin9 -target-abi=apcs-gnu -emit-llvm -w -o - %s | FileCheck %s
Daniel Dunbar5e7bace2009-09-12 01:00:39 +00003
4// CHECK: define arm_apcscc signext i8 @f0()
5char f0(void) {
6 return 0;
7}
Daniel Dunbar98303b92009-09-13 08:03:58 +00008
9// CHECK: define arm_apcscc i8 @f1()
10struct s1 { char f0; };
11struct s1 f1(void) {}
12
13// CHECK: define arm_apcscc i16 @f2()
14struct s2 { short f0; };
15struct s2 f2(void) {}
16
17// CHECK: define arm_apcscc i32 @f3()
18struct s3 { int f0; };
19struct s3 f3(void) {}
20
21// CHECK: define arm_apcscc i32 @f4()
22struct s4 { struct s4_0 { int f0; } f0; };
23struct s4 f4(void) {}
24
25// CHECK: define arm_apcscc void @f5(
26// CHECK: struct.s5* noalias sret
27struct s5 { struct { } f0; int f1; };
28struct s5 f5(void) {}
29
30// CHECK: define arm_apcscc void @f6(
31// CHECK: struct.s6* noalias sret
32struct s6 { int f0[1]; };
33struct s6 f6(void) {}
34
35// CHECK: define arm_apcscc void @f7()
36struct s7 { struct { int : 0; } f0; };
37struct s7 f7(void) {}
38
39// CHECK: define arm_apcscc void @f8(
40// CHECK: struct.s8* noalias sret
41struct s8 { struct { int : 0; } f0[1]; };
42struct s8 f8(void) {}
43
44// CHECK: define arm_apcscc i32 @f9()
45struct s9 { int f0; int : 0; };
46struct s9 f9(void) {}
47
48// CHECK: define arm_apcscc i32 @f10()
49struct s10 { int f0; int : 0; int : 0; };
50struct s10 f10(void) {}
51
52// CHECK: define arm_apcscc void @f11(
53// CHECK: struct.s10* noalias sret
54struct s11 { int : 0; int f0; };
55struct s11 f11(void) {}
56
57// CHECK: define arm_apcscc i32 @f12()
58union u12 { char f0; short f1; int f2; };
59union u12 f12(void) {}