Index: lib/Target/AMDGPU/SIISelLowering.cpp =================================================================== --- lib/Target/AMDGPU/SIISelLowering.cpp +++ lib/Target/AMDGPU/SIISelLowering.cpp @@ -1123,8 +1123,7 @@ static bool isFlatGlobalAddrSpace(unsigned AS) { return AS == AMDGPUAS::GLOBAL_ADDRESS || AS == AMDGPUAS::FLAT_ADDRESS || - AS == AMDGPUAS::CONSTANT_ADDRESS || - AS == AMDGPUAS::CONSTANT_ADDRESS_32BIT; + AS == AMDGPUAS::CONSTANT_ADDRESS; } bool SITargetLowering::isNoopAddrSpaceCast(unsigned SrcAS, Index: test/CodeGen/AMDGPU/invalid-addrspacecast.ll =================================================================== --- test/CodeGen/AMDGPU/invalid-addrspacecast.ll +++ test/CodeGen/AMDGPU/invalid-addrspacecast.ll @@ -6,3 +6,10 @@ store volatile i32 0, i32 addrspace(1)* %stof ret void } + +; ERROR: error: :0:0: in function use_constant32bit_to_flat_addrspacecast void (i32 addrspace(6)*): invalid addrspacecast +define amdgpu_kernel void @use_constant32bit_to_flat_addrspacecast(i32 addrspace(6)* %ptr) #0 { + %stof = addrspacecast i32 addrspace(6)* %ptr to i32* + store volatile i32 7, i32* %stof + ret void +}