blob: 273041dee34e08b4b3665b1b94e930f2938142c5 [file] [log] [blame]
Manman Renf5639412012-12-04 00:52:33 +00001; RUN: llc < %s -mtriple=armv7-apple-ios -O0 -realign-stack=0 | FileCheck %s -check-prefix=NO-REALIGN
2; RUN: llc < %s -mtriple=armv7-apple-ios -O0 | FileCheck %s
3
4; rdar://12713765
5; When realign-stack is set to false, make sure we are not creating stack
6; objects that are assumed to be 64-byte aligned.
7@T3_retval = common global <16 x float> zeroinitializer, align 16
8
9define void @test(<16 x float>* noalias sret %agg.result) nounwind ssp {
10entry:
11; CHECK: test
12; CHECK: bic sp, sp, #63
13; CHECK: orr [[R2:r[0-9]+]], [[R1:r[0-9]+]], #48
14; CHECK: vst1.64
15; CHECK: orr [[R2:r[0-9]+]], [[R1:r[0-9]+]], #32
16; CHECK: vst1.64
17; CHECK: orr [[R2:r[0-9]+]], [[R1:r[0-9]+]], #16
18; CHECK: vst1.64
19; CHECK: vst1.64
20; CHECK: add [[R2:r[0-9]+]], [[R1:r[0-9]+]], #48
21; CHECK: vst1.64
22; CHECK: add [[R2:r[0-9]+]], [[R1:r[0-9]+]], #32
23; CHECK: vst1.64
24; CHECK: add [[R2:r[0-9]+]], [[R1:r[0-9]+]], #16
25; CHECK: vst1.64
26; CHECK: vst1.64
27; NO-REALIGN: test
28; NO-REALIGN: add [[R2:r[0-9]+]], [[R1:r[0-9]+]], #48
29; NO-REALIGN: vst1.64
30; NO-REALIGN: add [[R2:r[0-9]+]], [[R1:r[0-9]+]], #32
31; NO-REALIGN: vst1.64
32; NO-REALIGN: add [[R2:r[0-9]+]], [[R1:r[0-9]+]], #16
33; NO-REALIGN: vst1.64
34; NO-REALIGN: vst1.64
35; NO-REALIGN: add [[R2:r[0-9]+]], [[R1:r[0-9]+]], #48
36; NO-REALIGN: vst1.64
37; NO-REALIGN: add [[R2:r[0-9]+]], [[R1:r[0-9]+]], #32
38; NO-REALIGN: vst1.64
39; NO-REALIGN: add [[R2:r[0-9]+]], [[R1:r[0-9]+]], #16
40; NO-REALIGN: vst1.64
41; NO-REALIGN: vst1.64
Bob Wilson67bbf3a2013-02-08 20:35:15 +000042 %retval = alloca <16 x float>, align 16
Manman Renf5639412012-12-04 00:52:33 +000043 %0 = load <16 x float>* @T3_retval, align 16
44 store <16 x float> %0, <16 x float>* %retval
45 %1 = load <16 x float>* %retval
46 store <16 x float> %1, <16 x float>* %agg.result, align 16
47 ret void
48}