Files
clang-p2996/llvm/test/CodeGen/Hexagon/stack-alloca2.ll
Krzysztof Parzyszek 44bd807512 [Hexagon] Adjust handling of stack with variable-size and extra alignment
Make the stack alignment register (AP) reserved in the given function. This
will make it available everywhere in the function, and allow aligned access
to vector register spill slots.
2022-11-15 06:48:53 -08:00

24 lines
536 B
LLVM

; RUN: llc -O0 -march=hexagon < %s | FileCheck %s
; CHECK: r[[AP:[0-9]+]] = and(r30,#-32)
; CHECK: sub(r29,r[[SP:[0-9]+]])
; CHECK: r29 = r[[SP]]
; CHECK: r1 = r[[AP]]
; CHECK: r1 = add(r1,#-32)
target triple = "hexagon-unknown-unknown"
; Function Attrs: nounwind uwtable
define void @foo(i32 %n) #0 {
entry:
%x = alloca i32, i32 %n
%y = alloca i32, align 32
%0 = bitcast i32* %x to i8*
%1 = bitcast i32* %y to i8*
call void @bar(i8* %0, i8* %1)
ret void
}
declare void @bar(i8*, i8* %y) #0
attributes #0 = { nounwind }