mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-04 15:40:11 +01:00
radeon/llvm: Add support for i8 reads on R600
This commit is contained in:
parent
b282c9611e
commit
e866dbd1b5
3 changed files with 25 additions and 0 deletions
|
|
@ -74,6 +74,14 @@ def COND_LE : PatLeaf <
|
|||
case ISD::SETLE: return true;}}}]
|
||||
>;
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Load/Store Pattern Fragments
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
def zextloadi8_global : PatFrag<(ops node:$ptr), (zextloadi8 node:$ptr), [{
|
||||
return isGlobalLoad(dyn_cast<LoadSDNode>(N));
|
||||
}]>;
|
||||
|
||||
class Constants {
|
||||
int TWO_PI = 0x40c90fdb;
|
||||
int PI = 0x40490fdb;
|
||||
|
|
|
|||
|
|
@ -167,6 +167,7 @@ void R600MCCodeEmitter::EncodeInstruction(const MCInst &MI, raw_ostream &OS,
|
|||
}
|
||||
case AMDGPU::VTX_READ_PARAM_i32_eg:
|
||||
case AMDGPU::VTX_READ_PARAM_f32_eg:
|
||||
case AMDGPU::VTX_READ_GLOBAL_i8_eg:
|
||||
case AMDGPU::VTX_READ_GLOBAL_i32_eg:
|
||||
case AMDGPU::VTX_READ_GLOBAL_f32_eg:
|
||||
case AMDGPU::VTX_READ_GLOBAL_v4i32_eg:
|
||||
|
|
|
|||
|
|
@ -1059,6 +1059,17 @@ class VTX_READ_eg <bits<8> buffer_id, dag outs, list<dag> pattern>
|
|||
// Inst{127-96} = 0;
|
||||
}
|
||||
|
||||
class VTX_READ_8_eg <bits<8> buffer_id, list<dag> pattern>
|
||||
: VTX_READ_eg <buffer_id, (outs R600_TReg32_X:$dst), pattern> {
|
||||
|
||||
let MEGA_FETCH_COUNT = 1;
|
||||
let DST_SEL_X = 0;
|
||||
let DST_SEL_Y = 7; // Masked
|
||||
let DST_SEL_Z = 7; // Masked
|
||||
let DST_SEL_W = 7; // Masked
|
||||
let DATA_FORMAT = 1; // FMT_8
|
||||
}
|
||||
|
||||
class VTX_READ_32_eg <bits<8> buffer_id, list<dag> pattern>
|
||||
: VTX_READ_eg <buffer_id, (outs R600_TReg32_X:$dst), pattern> {
|
||||
|
||||
|
|
@ -1111,6 +1122,11 @@ def VTX_READ_PARAM_f32_eg : VTX_READ_PARAM_32_eg<f32>;
|
|||
// VTX Read from global memory space
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// 8-bit reads
|
||||
def VTX_READ_GLOBAL_i8_eg : VTX_READ_8_eg <1,
|
||||
[(set (i32 R600_TReg32_X:$dst), (zextloadi8_global ADDRVTX_READ:$ptr))]
|
||||
>;
|
||||
|
||||
// 32-bit reads
|
||||
|
||||
class VTX_READ_GLOBAL_eg <ValueType vt> : VTX_READ_32_eg <1,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue