mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-26 05:32:25 +00:00
8f637adbd3
Aside from the question of whether we report a warning or an error when we can't satisfy a requested stack object alignment, the current implementation of this is not good. We're not providing any source location in the diagnostics and the current warning is not connected to any warning group so you can't control it. We could improve the source location somewhat, but we can do a much better job if this check is implemented in the front-end, so let's do that instead. <rdar://problem/13127907> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174741 91177308-0d34-0410-b5e6-96231b3b80d8
49 lines
1.6 KiB
LLVM
49 lines
1.6 KiB
LLVM
; RUN: llc < %s -mtriple=armv7-apple-ios -O0 -realign-stack=0 | FileCheck %s -check-prefix=NO-REALIGN
|
|
; RUN: llc < %s -mtriple=armv7-apple-ios -O0 | FileCheck %s
|
|
|
|
; rdar://12713765
|
|
; When realign-stack is set to false, make sure we are not creating stack
|
|
; objects that are assumed to be 64-byte aligned.
|
|
@T3_retval = common global <16 x float> zeroinitializer, align 16
|
|
|
|
define void @test(<16 x float>* noalias sret %agg.result) nounwind ssp {
|
|
entry:
|
|
; CHECK: test
|
|
; CHECK: bic sp, sp, #63
|
|
; CHECK: orr [[R2:r[0-9]+]], [[R1:r[0-9]+]], #48
|
|
; CHECK: vst1.64
|
|
; CHECK: orr [[R2:r[0-9]+]], [[R1:r[0-9]+]], #32
|
|
; CHECK: vst1.64
|
|
; CHECK: orr [[R2:r[0-9]+]], [[R1:r[0-9]+]], #16
|
|
; CHECK: vst1.64
|
|
; CHECK: vst1.64
|
|
; CHECK: add [[R2:r[0-9]+]], [[R1:r[0-9]+]], #48
|
|
; CHECK: vst1.64
|
|
; CHECK: add [[R2:r[0-9]+]], [[R1:r[0-9]+]], #32
|
|
; CHECK: vst1.64
|
|
; CHECK: add [[R2:r[0-9]+]], [[R1:r[0-9]+]], #16
|
|
; CHECK: vst1.64
|
|
; CHECK: vst1.64
|
|
; NO-REALIGN: test
|
|
; NO-REALIGN: add [[R2:r[0-9]+]], [[R1:r[0-9]+]], #48
|
|
; NO-REALIGN: vst1.64
|
|
; NO-REALIGN: add [[R2:r[0-9]+]], [[R1:r[0-9]+]], #32
|
|
; NO-REALIGN: vst1.64
|
|
; NO-REALIGN: add [[R2:r[0-9]+]], [[R1:r[0-9]+]], #16
|
|
; NO-REALIGN: vst1.64
|
|
; NO-REALIGN: vst1.64
|
|
; NO-REALIGN: add [[R2:r[0-9]+]], [[R1:r[0-9]+]], #48
|
|
; NO-REALIGN: vst1.64
|
|
; NO-REALIGN: add [[R2:r[0-9]+]], [[R1:r[0-9]+]], #32
|
|
; NO-REALIGN: vst1.64
|
|
; NO-REALIGN: add [[R2:r[0-9]+]], [[R1:r[0-9]+]], #16
|
|
; NO-REALIGN: vst1.64
|
|
; NO-REALIGN: vst1.64
|
|
%retval = alloca <16 x float>, align 16
|
|
%0 = load <16 x float>* @T3_retval, align 16
|
|
store <16 x float> %0, <16 x float>* %retval
|
|
%1 = load <16 x float>* %retval
|
|
store <16 x float> %1, <16 x float>* %agg.result, align 16
|
|
ret void
|
|
}
|