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:
Tom Stellard
2012-09-13 15:21:42 +00:00
parent 3882d7b5e4
commit 438b1da7e5
2 changed files with 10 additions and 0 deletions
@@ -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 {