53 lines · plain
1; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -filetype=null 2>&1 %s | FileCheck -check-prefix=ERR %s2 3; ERR: warning: inline asm clobber list contains reserved registers: v424; ERR: note: Reserved registers on the clobber list may not be preserved across the asm statement, and clobbering them may lead to undefined behaviour.5define amdgpu_kernel void @clobber_occupancy_limited_vgpr() #0 {6entry:7 call void asm sideeffect "; clobber $0", "~{v42}"()8 ret void9}10 11; ERR: warning: inline asm clobber list contains reserved registers: v[42:43]12; ERR: note: Reserved registers on the clobber list may not be preserved across the asm statement, and clobbering them may lead to undefined behaviour.13define amdgpu_kernel void @clobber_occupancy_limited_vgpr64() #0 {14entry:15 call void asm sideeffect "; clobber $0", "~{v[42:43]}"()16 ret void17}18 19; ERR: warning: inline asm clobber list contains reserved registers: m020; ERR: note: Reserved registers on the clobber list may not be preserved across the asm statement, and clobbering them may lead to undefined behaviour.21define amdgpu_kernel void @clobber_m0() {22entry:23 call void asm sideeffect "; clobber $0", "~{m0}"()24 ret void25}26 27; ERR: warning: inline asm clobber list contains reserved registers: exec28; ERR: note: Reserved registers on the clobber list may not be preserved across the asm statement, and clobbering them may lead to undefined behaviour.29define amdgpu_kernel void @clobber_exec() {30entry:31 call void asm sideeffect "; clobber $0", "~{exec}"()32 ret void33}34 35; ERR: warning: inline asm clobber list contains reserved registers: exec_lo36; ERR: note: Reserved registers on the clobber list may not be preserved across the asm statement, and clobbering them may lead to undefined behaviour.37define amdgpu_kernel void @clobber_exec_lo() {38entry:39 call void asm sideeffect "; clobber $0", "~{exec_lo}"()40 ret void41}42 43; FIXME: This should warn too44; ERR-NOT: warning: inline asm clobber list contains reserved registers45define amdgpu_kernel void @def_exec(ptr addrspace(1) %ptr) {46entry:47 %exec = call i64 asm sideeffect "; def $0", "={exec}"()48 store i64 %exec, ptr addrspace(1) %ptr49 ret void50}51 52attributes #0 = { "amdgpu-waves-per-eu"="10,10" }53