134b21e81SRoland McGrath; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 234b21e81SRoland McGrath 334b21e81SRoland McGrath;; Test target-specific stack cookie location. 434b21e81SRoland McGrath; 560535229SPaul Kirth; RUN: llc -mtriple=riscv64-linux < %s | FileCheck --check-prefix=LINUX-RISCV64 %s 634b21e81SRoland McGrath; RUN: llc -mtriple=riscv64-fuchsia < %s | FileCheck --check-prefix=FUCHSIA-RISCV64 %s 760535229SPaul Kirth; RUN: llc -mtriple=riscv64-android < %s | FileCheck --check-prefix=ANDROID-RISCV64 %s 834b21e81SRoland McGrath 92406f3beSRoland McGrathdefine void @func() sspreq nounwind { 1060535229SPaul Kirth; LINUX-RISCV64-LABEL: func: 1160535229SPaul Kirth; LINUX-RISCV64: # %bb.0: 1260535229SPaul Kirth; LINUX-RISCV64-NEXT: addi sp, sp, -32 1360535229SPaul Kirth; LINUX-RISCV64-NEXT: sd ra, 24(sp) # 8-byte Folded Spill 1460535229SPaul Kirth; LINUX-RISCV64-NEXT: sd s0, 16(sp) # 8-byte Folded Spill 1560535229SPaul Kirth; LINUX-RISCV64-NEXT: lui s0, %hi(__stack_chk_guard) 1660535229SPaul Kirth; LINUX-RISCV64-NEXT: ld a0, %lo(__stack_chk_guard)(s0) 1760535229SPaul Kirth; LINUX-RISCV64-NEXT: sd a0, 8(sp) 1860535229SPaul Kirth; LINUX-RISCV64-NEXT: addi a0, sp, 4 1960535229SPaul Kirth; LINUX-RISCV64-NEXT: call capture 2060535229SPaul Kirth; LINUX-RISCV64-NEXT: ld a0, %lo(__stack_chk_guard)(s0) 2160535229SPaul Kirth; LINUX-RISCV64-NEXT: ld a1, 8(sp) 2260535229SPaul Kirth; LINUX-RISCV64-NEXT: bne a0, a1, .LBB0_2 2360535229SPaul Kirth; LINUX-RISCV64-NEXT: # %bb.1: 2460535229SPaul Kirth; LINUX-RISCV64-NEXT: ld ra, 24(sp) # 8-byte Folded Reload 2560535229SPaul Kirth; LINUX-RISCV64-NEXT: ld s0, 16(sp) # 8-byte Folded Reload 2660535229SPaul Kirth; LINUX-RISCV64-NEXT: addi sp, sp, 32 2760535229SPaul Kirth; LINUX-RISCV64-NEXT: ret 2860535229SPaul Kirth; LINUX-RISCV64-NEXT: .LBB0_2: 2960535229SPaul Kirth; LINUX-RISCV64-NEXT: call __stack_chk_fail 3060535229SPaul Kirth; 3134b21e81SRoland McGrath; FUCHSIA-RISCV64-LABEL: func: 3234b21e81SRoland McGrath; FUCHSIA-RISCV64: # %bb.0: 3334b21e81SRoland McGrath; FUCHSIA-RISCV64-NEXT: addi sp, sp, -32 3434b21e81SRoland McGrath; FUCHSIA-RISCV64-NEXT: sd ra, 24(sp) # 8-byte Folded Spill 3534b21e81SRoland McGrath; FUCHSIA-RISCV64-NEXT: ld a0, -16(tp) 3634b21e81SRoland McGrath; FUCHSIA-RISCV64-NEXT: sd a0, 16(sp) 3734b21e81SRoland McGrath; FUCHSIA-RISCV64-NEXT: addi a0, sp, 12 38eabaee0cSFangrui Song; FUCHSIA-RISCV64-NEXT: call capture 3934b21e81SRoland McGrath; FUCHSIA-RISCV64-NEXT: ld a0, -16(tp) 4034b21e81SRoland McGrath; FUCHSIA-RISCV64-NEXT: ld a1, 16(sp) 4134b21e81SRoland McGrath; FUCHSIA-RISCV64-NEXT: bne a0, a1, .LBB0_2 4234b21e81SRoland McGrath; FUCHSIA-RISCV64-NEXT: # %bb.1: # %SP_return 4334b21e81SRoland McGrath; FUCHSIA-RISCV64-NEXT: ld ra, 24(sp) # 8-byte Folded Reload 4434b21e81SRoland McGrath; FUCHSIA-RISCV64-NEXT: addi sp, sp, 32 4534b21e81SRoland McGrath; FUCHSIA-RISCV64-NEXT: ret 4634b21e81SRoland McGrath; FUCHSIA-RISCV64-NEXT: .LBB0_2: # %CallStackCheckFailBlk 47eabaee0cSFangrui Song; FUCHSIA-RISCV64-NEXT: call __stack_chk_fail 4860535229SPaul Kirth; 4960535229SPaul Kirth; ANDROID-RISCV64-LABEL: func: 5060535229SPaul Kirth; ANDROID-RISCV64: # %bb.0: 5160535229SPaul Kirth; ANDROID-RISCV64-NEXT: addi sp, sp, -32 5260535229SPaul Kirth; ANDROID-RISCV64-NEXT: sd ra, 24(sp) # 8-byte Folded Spill 53*d95f7c9cSPaul Kirth; ANDROID-RISCV64-NEXT: ld a0, -24(tp) 54*d95f7c9cSPaul Kirth; ANDROID-RISCV64-NEXT: sd a0, 16(sp) 55*d95f7c9cSPaul Kirth; ANDROID-RISCV64-NEXT: addi a0, sp, 12 5660535229SPaul Kirth; ANDROID-RISCV64-NEXT: call capture 57*d95f7c9cSPaul Kirth; ANDROID-RISCV64-NEXT: ld a0, -24(tp) 58*d95f7c9cSPaul Kirth; ANDROID-RISCV64-NEXT: ld a1, 16(sp) 5960535229SPaul Kirth; ANDROID-RISCV64-NEXT: bne a0, a1, .LBB0_2 60*d95f7c9cSPaul Kirth; ANDROID-RISCV64-NEXT: # %bb.1: # %SP_return 6160535229SPaul Kirth; ANDROID-RISCV64-NEXT: ld ra, 24(sp) # 8-byte Folded Reload 6260535229SPaul Kirth; ANDROID-RISCV64-NEXT: addi sp, sp, 32 6360535229SPaul Kirth; ANDROID-RISCV64-NEXT: ret 64*d95f7c9cSPaul Kirth; ANDROID-RISCV64-NEXT: .LBB0_2: # %CallStackCheckFailBlk 6560535229SPaul Kirth; ANDROID-RISCV64-NEXT: call __stack_chk_fail 6634b21e81SRoland McGrath %1 = alloca i32, align 4 672406f3beSRoland McGrath call void @capture(ptr %1) 6834b21e81SRoland McGrath ret void 6934b21e81SRoland McGrath} 7034b21e81SRoland McGrath 7134b21e81SRoland McGrathdeclare void @capture(ptr) 72