nvir/nir: implement nir_op_extract_i8
v2: - use getSSA() instead of getScratch() v3: - fix whitespace Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Reviewed-by: Karol Herbst <kherbst@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5377>
This commit is contained in:
@@ -2818,6 +2818,14 @@ Converter::visit(nir_alu_instr *insn)
|
|||||||
mkOp3(OP_PERMT, TYPE_U32, newDefs[0], getSrc(&insn->src[0]), prmt, loadImm(NULL, 0));
|
mkOp3(OP_PERMT, TYPE_U32, newDefs[0], getSrc(&insn->src[0]), prmt, loadImm(NULL, 0));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case nir_op_extract_i8: {
|
||||||
|
DEFAULT_CHECKS;
|
||||||
|
LValues &newDefs = convert(&insn->dest);
|
||||||
|
Value *prmt = getSSA();
|
||||||
|
mkOp3(OP_MAD, TYPE_U32, prmt, getSrc(&insn->src[1]), loadImm(NULL, 0x1111), loadImm(NULL, 0x8880));
|
||||||
|
mkOp3(OP_PERMT, TYPE_U32, newDefs[0], getSrc(&insn->src[0]), prmt, loadImm(NULL, 0));
|
||||||
|
break;
|
||||||
|
}
|
||||||
// boolean conversions
|
// boolean conversions
|
||||||
case nir_op_b2f32: {
|
case nir_op_b2f32: {
|
||||||
DEFAULT_CHECKS;
|
DEFAULT_CHECKS;
|
||||||
|
Reference in New Issue
Block a user