[AMDGPU] Update test to match comment. NFC (#187273)
The comment says there shouldn't be any free registers, so update the inline assembly to clobber all non-preserved SGPRs.
This commit is contained in:
parent
bb86440c60
commit
0d6185e9eb
@ -1,6 +1,6 @@
|
||||
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
|
||||
; RUN: llc -mtriple=amdgcn -mcpu=hawaii < %s | FileCheck -enable-var-scope -check-prefixes=GCN,MUBUF %s
|
||||
; RUN: llc -mtriple=amdgcn -mcpu=gfx900 < %s | FileCheck -enable-var-scope -check-prefixes=GCN,MUBUF %s
|
||||
; RUN: llc -mtriple=amdgcn -mcpu=hawaii < %s | FileCheck -enable-var-scope -check-prefixes=GCN,MUBUF,HAWAII %s
|
||||
; RUN: llc -mtriple=amdgcn -mcpu=gfx900 < %s | FileCheck -enable-var-scope -check-prefixes=GCN,MUBUF,GFX9 %s
|
||||
; RUN: llc -mtriple=amdgcn -mcpu=gfx900 -mattr=+enable-flat-scratch < %s | FileCheck -enable-var-scope -check-prefixes=GCN,FLATSCR %s
|
||||
|
||||
define void @callee_no_stack() #0 {
|
||||
@ -1265,37 +1265,87 @@ define void @ipra_call_with_stack() #0 {
|
||||
|
||||
; With no free registers, we must spill the FP to memory.
|
||||
define void @callee_need_to_spill_fp_to_memory() #3 {
|
||||
; MUBUF-LABEL: callee_need_to_spill_fp_to_memory:
|
||||
; MUBUF: ; %bb.0:
|
||||
; MUBUF-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
|
||||
; MUBUF-NEXT: s_mov_b32 s40, s33
|
||||
; MUBUF-NEXT: s_mov_b32 s33, s32
|
||||
; MUBUF-NEXT: ;;#ASMSTART
|
||||
; MUBUF-NEXT: ; clobber nonpreserved SGPRs
|
||||
; MUBUF-NEXT: ;;#ASMEND
|
||||
; MUBUF-NEXT: ;;#ASMSTART
|
||||
; MUBUF-NEXT: ; clobber all VGPRs
|
||||
; MUBUF-NEXT: ;;#ASMEND
|
||||
; MUBUF-NEXT: s_mov_b32 s33, s40
|
||||
; MUBUF-NEXT: s_setpc_b64 s[30:31]
|
||||
; HAWAII-LABEL: callee_need_to_spill_fp_to_memory:
|
||||
; HAWAII: ; %bb.0:
|
||||
; HAWAII-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
|
||||
; HAWAII-NEXT: s_mov_b32 s4, s33
|
||||
; HAWAII-NEXT: s_mov_b32 s33, s32
|
||||
; HAWAII-NEXT: v_mov_b32_e32 v0, s4
|
||||
; HAWAII-NEXT: buffer_store_dword v0, off, s[0:3], s33 offset:8 ; 4-byte Folded Spill
|
||||
; HAWAII-NEXT: v_mov_b32_e32 v0, s76
|
||||
; HAWAII-NEXT: buffer_store_dword v0, off, s[0:3], s33 ; 4-byte Folded Spill
|
||||
; HAWAII-NEXT: v_mov_b32_e32 v0, s77
|
||||
; HAWAII-NEXT: buffer_store_dword v0, off, s[0:3], s33 offset:4 ; 4-byte Folded Spill
|
||||
; HAWAII-NEXT: ;;#ASMSTART
|
||||
; HAWAII-NEXT: ; clobber nonpreserved SGPRs
|
||||
; HAWAII-NEXT: ;;#ASMEND
|
||||
; HAWAII-NEXT: ;;#ASMSTART
|
||||
; HAWAII-NEXT: ; clobber all VGPRs
|
||||
; HAWAII-NEXT: ;;#ASMEND
|
||||
; HAWAII-NEXT: buffer_load_dword v0, off, s[0:3], s33 offset:8 ; 4-byte Folded Reload
|
||||
; HAWAII-NEXT: s_addk_i32 s32, 0x400
|
||||
; HAWAII-NEXT: s_mov_b32 s32, s33
|
||||
; HAWAII-NEXT: s_waitcnt vmcnt(0)
|
||||
; HAWAII-NEXT: v_readfirstlane_b32 s4, v0
|
||||
; HAWAII-NEXT: buffer_load_dword v0, off, s[0:3], s33 ; 4-byte Folded Reload
|
||||
; HAWAII-NEXT: s_waitcnt vmcnt(0)
|
||||
; HAWAII-NEXT: v_readfirstlane_b32 s76, v0
|
||||
; HAWAII-NEXT: buffer_load_dword v0, off, s[0:3], s33 offset:4 ; 4-byte Folded Reload
|
||||
; HAWAII-NEXT: s_mov_b32 s33, s4
|
||||
; HAWAII-NEXT: s_waitcnt vmcnt(0)
|
||||
; HAWAII-NEXT: v_readfirstlane_b32 s77, v0
|
||||
; HAWAII-NEXT: s_setpc_b64 s[30:31]
|
||||
;
|
||||
; GFX9-LABEL: callee_need_to_spill_fp_to_memory:
|
||||
; GFX9: ; %bb.0:
|
||||
; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
|
||||
; GFX9-NEXT: s_mov_b32 s4, s33
|
||||
; GFX9-NEXT: s_mov_b32 s33, s32
|
||||
; GFX9-NEXT: v_mov_b32_e32 v0, s4
|
||||
; GFX9-NEXT: buffer_store_dword v0, off, s[0:3], s33 ; 4-byte Folded Spill
|
||||
; GFX9-NEXT: ;;#ASMSTART
|
||||
; GFX9-NEXT: ; clobber nonpreserved SGPRs
|
||||
; GFX9-NEXT: ;;#ASMEND
|
||||
; GFX9-NEXT: ;;#ASMSTART
|
||||
; GFX9-NEXT: ; clobber all VGPRs
|
||||
; GFX9-NEXT: ;;#ASMEND
|
||||
; GFX9-NEXT: buffer_load_dword v0, off, s[0:3], s33 ; 4-byte Folded Reload
|
||||
; GFX9-NEXT: s_addk_i32 s32, 0x200
|
||||
; GFX9-NEXT: s_mov_b32 s32, s33
|
||||
; GFX9-NEXT: s_waitcnt vmcnt(0)
|
||||
; GFX9-NEXT: v_readfirstlane_b32 s4, v0
|
||||
; GFX9-NEXT: s_mov_b32 s33, s4
|
||||
; GFX9-NEXT: s_setpc_b64 s[30:31]
|
||||
;
|
||||
; FLATSCR-LABEL: callee_need_to_spill_fp_to_memory:
|
||||
; FLATSCR: ; %bb.0:
|
||||
; FLATSCR-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
|
||||
; FLATSCR-NEXT: s_mov_b32 s0, s33
|
||||
; FLATSCR-NEXT: s_mov_b32 s33, s32
|
||||
; FLATSCR-NEXT: v_mov_b32_e32 v0, s0
|
||||
; FLATSCR-NEXT: scratch_store_dword off, v0, s33 ; 4-byte Folded Spill
|
||||
; FLATSCR-NEXT: ;;#ASMSTART
|
||||
; FLATSCR-NEXT: ; clobber nonpreserved SGPRs
|
||||
; FLATSCR-NEXT: ;;#ASMEND
|
||||
; FLATSCR-NEXT: ;;#ASMSTART
|
||||
; FLATSCR-NEXT: ; clobber all VGPRs
|
||||
; FLATSCR-NEXT: ;;#ASMEND
|
||||
; FLATSCR-NEXT: scratch_load_dword v0, off, s33 ; 4-byte Folded Reload
|
||||
; FLATSCR-NEXT: s_add_i32 s32, s32, 8
|
||||
; FLATSCR-NEXT: s_mov_b32 s32, s33
|
||||
; FLATSCR-NEXT: s_waitcnt vmcnt(0)
|
||||
; FLATSCR-NEXT: v_readfirstlane_b32 s0, v0
|
||||
; FLATSCR-NEXT: s_mov_b32 s33, s0
|
||||
; FLATSCR-NEXT: s_setpc_b64 s[30:31]
|
||||
call void asm sideeffect "; clobber nonpreserved SGPRs",
|
||||
"~{s4},~{s5},~{s6},~{s7},~{s8},~{s9}
|
||||
,~{s10},~{s11},~{s12},~{s13},~{s14},~{s15},~{s16},~{s17},~{s18},~{s19}
|
||||
,~{s20},~{s21},~{s22},~{s23},~{s24},~{s25},~{s26},~{s27},~{s28},~{s29}
|
||||
"~{s0},~{s1},~{s2},~{s3},~{s4},~{s5},~{s6},~{s7}
|
||||
,~{s8},~{s9},~{s10},~{s11},~{s12},~{s13},~{s14},~{s15}
|
||||
,~{s16},~{s17},~{s18},~{s19},~{s20},~{s21},~{s22},~{s23}
|
||||
,~{s24},~{s25},~{s26},~{s27},~{s28},~{s29}
|
||||
,~{s40},~{s41},~{s42},~{s43},~{s44},~{s45},~{s46},~{s47}
|
||||
,~{s56},~{s57},~{s58},~{s59},~{s60},~{s61},~{s62},~{s63}
|
||||
,~{s72},~{s73},~{s74},~{s75},~{s76},~{s77},~{s78},~{s79}
|
||||
,~{s88},~{s89},~{s90},~{s91},~{s92},~{s93},~{s94},~{s95}
|
||||
,~{vcc}"()
|
||||
|
||||
call void asm sideeffect "; clobber all VGPRs",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user