| ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py | |
| ; RUN: llc -mtriple=amdgpu9.08 < %s | FileCheck -enable-var-scope -check-prefixes=GFX908 %s | |
| ; Make sure there are no v_accvgpr_read_b32 copying back and forth | |
| ; between AGPR and VGPR. | |
| define amdgpu_kernel void @remat_constant_voids_spill(ptr addrspace(1) %p) #1 { | |
| ; GFX908-LABEL: remat_constant_voids_spill: | |
| ; GFX908: ; %bb.0: | |
| ; GFX908-NEXT: v_accvgpr_write_b32 a0, 1 | |
| ; GFX908-NEXT: v_accvgpr_write_b32 a1, 2 | |
| ; GFX908-NEXT: v_accvgpr_write_b32 a2, 3 | |
| ; GFX908-NEXT: v_accvgpr_write_b32 a3, 4 | |
| ; GFX908-NEXT: ;;#ASMSTART | |
| ; GFX908-NEXT: ;;#ASMEND | |
| ; GFX908-NEXT: v_accvgpr_write_b32 a0, 5 | |
| ; GFX908-NEXT: v_accvgpr_write_b32 a1, 6 | |
| ; GFX908-NEXT: v_accvgpr_write_b32 a2, 7 | |
| ; GFX908-NEXT: v_accvgpr_write_b32 a3, 8 | |
| ; GFX908-NEXT: v_accvgpr_write_b32 a4, 9 | |
| ; GFX908-NEXT: ;;#ASMSTART | |
| ; GFX908-NEXT: ;;#ASMEND | |
| ; GFX908-NEXT: s_endpgm | |
| call void asm sideeffect "", "a,a,a,a"(i32 1, i32 2, i32 3, i32 4) | |
| call void asm sideeffect "", "a,a,a,a,a"(i32 5, i32 6, i32 7, i32 8, i32 9) | |
| ret void | |
| } | |
| define void @remat_regcopy_avoids_spill(i32 %v0, i32 %v1, i32 %v2, i32 %v3, i32 %v4, i32 %v5, i32 %v6, i32 %v7, i32 %v8, i32 %v9, i32 %v10) #1 { | |
| ; GFX908-LABEL: remat_regcopy_avoids_spill: | |
| ; GFX908: ; %bb.0: | |
| ; GFX908-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) | |
| ; GFX908-NEXT: v_accvgpr_write_b32 a2, v0 | |
| ; GFX908-NEXT: v_accvgpr_write_b32 a3, v1 | |
| ; GFX908-NEXT: v_accvgpr_write_b32 a4, v2 | |
| ; GFX908-NEXT: v_accvgpr_write_b32 a0, v7 | |
| ; GFX908-NEXT: v_accvgpr_write_b32 a1, v8 | |
| ; GFX908-NEXT: v_accvgpr_write_b32 a5, v3 | |
| ; GFX908-NEXT: ;;#ASMSTART | |
| ; GFX908-NEXT: ;;#ASMEND | |
| ; GFX908-NEXT: v_accvgpr_write_b32 a2, v4 | |
| ; GFX908-NEXT: v_accvgpr_write_b32 a3, v5 | |
| ; GFX908-NEXT: v_accvgpr_write_b32 a4, v6 | |
| ; GFX908-NEXT: ;;#ASMSTART | |
| ; GFX908-NEXT: ;;#ASMEND | |
| ; GFX908-NEXT: s_setpc_b64 s[30:31] | |
| call void asm sideeffect "", "a,a,a,a"(i32 %v0, i32 %v1, i32 %v2, i32 %v3) | |
| call void asm sideeffect "", "a,a,a,a,a"(i32 %v4, i32 %v5, i32 %v6, i32 %v7, i32 %v8) | |
| ret void | |
| } | |
| attributes #1 = { nounwind "amdgpu-num-vgpr"="8" } |