freedreno/ir3: Add cat4 mediump opcodes

v2: Reworked to assign half-opcodes in ir3_ra.c (krh).

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3737>
This commit is contained in:
Hyunjun Ko 2019-11-01 08:34:54 +00:00 committed by Kristian H. Kristensen
parent 3eca6d9ce1
commit d70192e697
2 changed files with 18 additions and 0 deletions

View file

@ -1463,8 +1463,11 @@ INSTR3(SAD_S32)
/* cat4 instructions: */
INSTR1(RCP)
INSTR1(RSQ)
INSTR1(HRSQ)
INSTR1(LOG2)
INSTR1(HLOG2)
INSTR1(EXP2)
INSTR1(HEXP2)
INSTR1(SIN)
INSTR1(COS)
INSTR1(SQRT)

View file

@ -1110,6 +1110,21 @@ static void fixup_half_instr_dst(struct ir3_instruction *instr)
break;
}
break;
case 4:
switch (instr->opc) {
case OPC_RSQ:
instr->opc = OPC_HRSQ;
break;
case OPC_LOG2:
instr->opc = OPC_HLOG2;
break;
case OPC_EXP2:
instr->opc = OPC_HEXP2;
break;
default:
break;
}
break;
case 5:
instr->cat5.type = half_type(instr->cat5.type);
break;