1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
3 ;; Test target-specific stack cookie location.
5 ; RUN: llc -mtriple=riscv64-fuchsia < %s | FileCheck --check-prefix=FUCHSIA-RISCV64 %s
7 define void @func() sspreq nounwind {
8 ; FUCHSIA-RISCV64-LABEL: func:
9 ; FUCHSIA-RISCV64: # %bb.0:
10 ; FUCHSIA-RISCV64-NEXT: addi sp, sp, -32
11 ; FUCHSIA-RISCV64-NEXT: sd ra, 24(sp) # 8-byte Folded Spill
12 ; FUCHSIA-RISCV64-NEXT: ld a0, -16(tp)
13 ; FUCHSIA-RISCV64-NEXT: sd a0, 16(sp)
14 ; FUCHSIA-RISCV64-NEXT: addi a0, sp, 12
15 ; FUCHSIA-RISCV64-NEXT: call capture
16 ; FUCHSIA-RISCV64-NEXT: ld a0, -16(tp)
17 ; FUCHSIA-RISCV64-NEXT: ld a1, 16(sp)
18 ; FUCHSIA-RISCV64-NEXT: bne a0, a1, .LBB0_2
19 ; FUCHSIA-RISCV64-NEXT: # %bb.1: # %SP_return
20 ; FUCHSIA-RISCV64-NEXT: ld ra, 24(sp) # 8-byte Folded Reload
21 ; FUCHSIA-RISCV64-NEXT: addi sp, sp, 32
22 ; FUCHSIA-RISCV64-NEXT: ret
23 ; FUCHSIA-RISCV64-NEXT: .LBB0_2: # %CallStackCheckFailBlk
24 ; FUCHSIA-RISCV64-NEXT: call __stack_chk_fail
25 %1 = alloca i32, align 4
26 call void @capture(ptr %1)
30 declare void @capture(ptr)