1; RUN: llc -march=amdgcn -mcpu=gfx908 -verify-machineinstrs < %s | FileCheck -check-prefixes=GCN,GFX908 %s 2; RUN: llc -march=amdgcn -mcpu=gfx900 -verify-machineinstrs < %s | FileCheck -check-prefixes=GCN,GFX900 %s 3 4define void @foo() { 5bb: 6 ret void 7} 8 9; FIXME: We spill v40 into AGPR, but still save and restore FP 10; which is not needed in this case. 11 12; GCN-LABEL: {{^}}caller: 13 14; GFX900: s_mov_b32 [[SAVED_FP:s[0-9]+]], s33 15; GFX900: s_mov_b32 s33, s32 16; GFX908-NOT: s_mov_b32 s33, s32 17; GFX900: buffer_store_dword 18; GFX908-DAG: s_mov_b32 [[SAVED_FP:s[0-9]+]], s33 19; GFX908-DAG: v_accvgpr_write_b32 20; GCN: s_swappc_b64 21; GFX900: buffer_load_dword 22; GFX908: v_accvgpr_read_b32 23; GCN: s_mov_b32 s33, [[SAVED_FP]] 24define i64 @caller() { 25bb: 26 call void asm sideeffect "", "~{v40}" () 27 tail call void @foo() 28 ret i64 0 29} 30