1; RUN: not llc -march=amdgcn < %s 2>&1 | FileCheck -check-prefix=ERR %s 2; RUN: not llc -march=amdgcn < %s | FileCheck -check-prefix=GCN %s 3 4; ERR: error: <unknown>:0:0: in function illegal_vgpr_to_sgpr_copy_i32 void (): illegal SGPR to VGPR copy 5; GCN: ; illegal copy v1 to s9 6 7define amdgpu_kernel void @illegal_vgpr_to_sgpr_copy_i32() #0 { 8 %vgpr = call i32 asm sideeffect "; def $0", "=${v1}"() 9 call void asm sideeffect "; use $0", "${s9}"(i32 %vgpr) 10 ret void 11} 12 13; ERR: error: <unknown>:0:0: in function illegal_vgpr_to_sgpr_copy_v2i32 void (): illegal SGPR to VGPR copy 14; GCN: ; illegal copy v[0:1] to s[10:11] 15define amdgpu_kernel void @illegal_vgpr_to_sgpr_copy_v2i32() #0 { 16 %vgpr = call <2 x i32> asm sideeffect "; def $0", "=${v[0:1]}"() 17 call void asm sideeffect "; use $0", "${s[10:11]}"(<2 x i32> %vgpr) 18 ret void 19} 20 21; ERR: error: <unknown>:0:0: in function illegal_vgpr_to_sgpr_copy_v4i32 void (): illegal SGPR to VGPR copy 22; GCN: ; illegal copy v[0:3] to s[8:11] 23define amdgpu_kernel void @illegal_vgpr_to_sgpr_copy_v4i32() #0 { 24 %vgpr = call <4 x i32> asm sideeffect "; def $0", "=${v[0:3]}"() 25 call void asm sideeffect "; use $0", "${s[8:11]}"(<4 x i32> %vgpr) 26 ret void 27} 28 29; ERR: error: <unknown>:0:0: in function illegal_vgpr_to_sgpr_copy_v8i32 void (): illegal SGPR to VGPR copy 30; GCN: ; illegal copy v[0:7] to s[8:15] 31define amdgpu_kernel void @illegal_vgpr_to_sgpr_copy_v8i32() #0 { 32 %vgpr = call <8 x i32> asm sideeffect "; def $0", "=${v[0:7]}"() 33 call void asm sideeffect "; use $0", "${s[8:15]}"(<8 x i32> %vgpr) 34 ret void 35} 36 37; ERR error: <unknown>:0:0: in function illegal_vgpr_to_sgpr_copy_v16i32 void (): illegal SGPR to VGPR copy 38; GCN: ; illegal copy v[0:15] to s[16:31] 39define amdgpu_kernel void @illegal_vgpr_to_sgpr_copy_v16i32() #0 { 40 %vgpr = call <16 x i32> asm sideeffect "; def $0", "=${v[0:15]}"() 41 call void asm sideeffect "; use $0", "${s[16:31]}"(<16 x i32> %vgpr) 42 ret void 43} 44 45attributes #0 = { nounwind } 46