blob: 201236994a5cba8b0c3d9df134e6d1f5f5938e3e [file] [edit]
# RUN: llc -mtriple=aarch64-unknown-fuchsia -run-pass=prolog-epilog %s -o - | FileCheck %s
# This test ensures that constant registers like XZR are not considered live
# even if they are in the liveins list. This prevents the stack probe from
# incorrectly thinking it needs to preserve XZR if it's used as a temporary
# register.
--- |
define void @func() #0 {
ret void
}
attributes #0 = { "probe-stack"="inline-asm" "stack-probe-size"="4096" }
...
---
name: func
tracksRegLiveness: true
frameInfo:
stackSize: 4096
maxAlignment: 8
localFrameSize: 4096
stack:
- { id: 0, size: 4096, alignment: 8 }
- { id: 1, type: variable-sized }
body: |
bb.0:
liveins: $xzr
; CHECK-LABEL: name: func
; CHECK: $xzr = frame-setup LDRXui $sp, 0
$x0 = COPY $xzr
RET_ReallyLR