radeon/llvm: Handle loads from the constants address space.
Reading from constant memory is not supported yet, so constant reads use global memory.
This commit is contained in:
@@ -166,6 +166,7 @@ void R600MCCodeEmitter::EncodeInstruction(const MCInst &MI, raw_ostream &OS,
|
||||
Emit(inst, OS);
|
||||
break;
|
||||
}
|
||||
case AMDGPU::CONSTANT_LOAD_eg:
|
||||
case AMDGPU::VTX_READ_PARAM_i32_eg:
|
||||
case AMDGPU::VTX_READ_PARAM_f32_eg:
|
||||
case AMDGPU::VTX_READ_GLOBAL_i8_eg:
|
||||
|
||||
@@ -1161,6 +1161,15 @@ class VTX_READ_GLOBAL_128_eg <ValueType vt> : VTX_READ_128_eg <1,
|
||||
def VTX_READ_GLOBAL_v4i32_eg : VTX_READ_GLOBAL_128_eg<v4i32>;
|
||||
def VTX_READ_GLOBAL_v4f32_eg : VTX_READ_GLOBAL_128_eg<v4f32>;
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Constant Loads
|
||||
// XXX: We are currently storing all constants in the global address space.
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
def CONSTANT_LOAD_eg : VTX_READ_32_eg <1,
|
||||
[(set (f32 R600_TReg32_X:$dst), (constant_load ADDRVTX_READ:$ptr))]
|
||||
>;
|
||||
|
||||
}
|
||||
|
||||
let Predicates = [isCayman] in {
|
||||
|
||||
Reference in New Issue
Block a user