rendered paste bodyclass R300VSInstruction<bits<6> opcode, dag ool, dag iol> : Instruction {
let Namespace = "R300VS";
bits<6> Opcode = opcode;
dag OutOperandList = ool;
dag InOperandList = iol;
}
class VectInst<bits<6> opcode, dag ool, dag iol>
: R300VSInstruction<opcode, ool, iol> {
}
class MathInst<bits<6> opcode, dag ool, dag iol>
: R300VSInstruction<opcode, ool, iol> {
}
def VECTOR_NO_OP : VectInst<0x00, (outs), (ins)>;
def VE_DOT_PRODUCT : VectInst<0x01, (outs v4f32), (ins v4f32, v4f32)>;
def VE_MULTIPLY : VectInst<0x02, (outs v4f32), (ins v4f32, v4f32)>;
def VE_ADD : VectInst<0x03, (outs v4f32), (ins v4f32, v4f32)>;
def VE_MULTIPLY_ADD : VectInst<0x04, (outs v4f32), (ins v4f32, v4f32, v4f32)>;
def VE_DISTANCE_VECTOR : VectInst<0x05, (outs v4f32), (ins v4f32, v4f32)>;
def VE_FRACTION : VectInst<0x06, (outs v4f32), (ins v4f32)>;
def VE_MAXIMUM : VectInst<0x07, (outs v4f32), (ins v4f32, v4f32)>;
def VE_MINIMUM : VectInst<0x08, (outs v4f32), (ins v4f32, v4f32)>;
def VE_SET_GREATER_THAN_EQUAL : VectInst<0x09, (outs v4f32), (ins v4f32, v4f32)>;
def VE_SET_LESS_THAN : VectInst<0x0A, (outs v4f32), (ins v4f32, v4f32)>;
def VE_MULTIPLYX2_ADD : VectInst<0x0B, (outs v4f32), (ins v4f32, v4f32)>;
def VE_MULTIPLY_CLAMP : VectInst<0x0C, (outs v4f32), (ins v4f32, v4f32)>;
def VE_FLT2FIX_DX : VectInst<0x0D, (outs v4f32), (ins v4f32)>;
def VE_FLT2FIX_DX_RND : VectInst<0x0E>, (outs v4f32), (ins v4f32);
/*def VE_PRED_SET_EQ_PUSH : VectInst<0x0F>;
def VE_PRED_SET_GT_PUSH : VectInst<0x10>;
def VE_PRED_SET_GTE_PUSH : VectInst<0x11>;
def VE_PRED_SET_NEQ_PUSH : VectInst<0x12>;
def VE_COND_WRITE_EQ4 : VectInst<0x13>;
def VE_COND_WRITE_GT4 : VectInst<0x14>;
def VE_COND_WRITE_GTE4 : VectInst<0x15>;
def VE_COND_WRITE_NEQ4 : VectInst<0x16>;
def VE_COND_MUX_EQ4 : VectInst<0x17>;
def VE_COND_MUX_GT4 : VectInst<0x18>;
def VE_COND_MUX_GTE4 : VectInst<0x19>;
def VE_SET_GREATER_THAN : VectInst<0x1A>;
def VE_SET_EQUAL : VectInst<0x1B>;
def VE_SET_NOT_EQUAL : VectInst<0x1C>;
def MATH_NO_OP : MathInst<0x00>;
def ME_EXP_BASE2_DX : MathInst<0x00>;
def ME_LOG_BASE2_DX : MathInst<0x01>;
def ME_EXP_BASEE_FF : MathInst<0x02>;
def ME_LIGHT_COEFF_DX : MathInst<0x03>;
def ME_POWER_FUNC_FF : MathInst<0x04>;
def ME_RECIP_DX : MathInst<0x05>;
def ME_RECIP_FF : MathInst<0x06>;
def ME_RECIP_SQRT_DX : MathInst<0x07>;
def ME_RECIP_SQRT_FF : MathInst<0x08>;
def ME_MULTIPLY : MathInst<0x0A>;
def ME_EXP_BASE2 : MathInst<0x0B>;
def ME_LOG_BASE2 : MathInst<0x0C>;
def ME_POWER_FUNC_FF_CLAMP_B : MathInst<0x0D>;
def ME_POWER_FUNC_FF_CLAMP_B1 : MathInst<0x0E>;
def ME_POWER_FUNC_FF_CLAMP_01 : MathInst<0x0F>;
def ME_SIN : MathInst<0x10>;
def ME_COS : MathInst<0x11>;
def ME_LOG_BASE2_IEEE : MathInst<0x12>;
def ME_RECIP_IEEE : MathInst<0x13>;
def ME_RECIP_SQRT_IEEE : MathInst<0x14>;
def ME_PRED_SET_EQ : MathInst<0x15>;
def ME_PRED_SET_GT : MathInst<0x16>;
def ME_PRED_SET_GTE : MathInst<0x17>;
def ME_PRED_SET_NEQ : MathInst<0x18>;
def ME_PRED_SET_CLR : MathInst<0x19>;
def ME_PRED_SET_INV : MathInst<0x1A>;
def ME_PRED_SET_POP : MathInst<0x1B>;
def ME_PRED_SET_RESTORE : MathInst<0x1C>;*/