intel/compiler: Initial bits for SRND instruction
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36529>
This commit is contained in:
committed by
Marge Bot
parent
e2b0dee91f
commit
51f4a2572a
@@ -641,6 +641,7 @@ static const struct opcode_desc opcode_descs[] = {
|
||||
{ BRW_OPCODE_SUBB, 79, "subb", 2, 1, GFX_ALL },
|
||||
{ BRW_OPCODE_ADD3, 82, "add3", 3, 1, GFX_GE(GFX125) },
|
||||
{ BRW_OPCODE_DP4, 84, "dp4", 2, 1, GFX_LT(GFX11) },
|
||||
{ BRW_OPCODE_SRND, 84, "srnd", 2, 1, GFX_GE(XE2) },
|
||||
{ BRW_OPCODE_DPH, 85, "dph", 2, 1, GFX_LT(GFX11) },
|
||||
{ BRW_OPCODE_DP3, 86, "dp3", 2, 1, GFX_LT(GFX11) },
|
||||
{ BRW_OPCODE_DP2, 87, "dp2", 2, 1, GFX_LT(GFX11) },
|
||||
|
||||
@@ -1539,6 +1539,9 @@ brw_eu_inst *brw_DPAS(struct brw_codegen *p, enum gfx12_systolic_depth sdepth,
|
||||
unsigned rcount, struct brw_reg dest, struct brw_reg src0,
|
||||
struct brw_reg src1, struct brw_reg src2);
|
||||
|
||||
brw_eu_inst *brw_SRND(struct brw_codegen *p, struct brw_reg dest,
|
||||
struct brw_reg src0, struct brw_reg src1);
|
||||
|
||||
void
|
||||
brw_broadcast(struct brw_codegen *p,
|
||||
struct brw_reg dst,
|
||||
|
||||
@@ -218,6 +218,7 @@ enum ENUM_PACKED opcode {
|
||||
BRW_OPCODE_SUBB,
|
||||
BRW_OPCODE_ADD3, /* Gen12+ only */
|
||||
BRW_OPCODE_DP4,
|
||||
BRW_OPCODE_SRND, /* Xe2+ only */
|
||||
BRW_OPCODE_DPH,
|
||||
BRW_OPCODE_DP3,
|
||||
BRW_OPCODE_DP2,
|
||||
|
||||
@@ -1020,6 +1020,15 @@ brw_DPAS(struct brw_codegen *p, enum gfx12_systolic_depth sdepth,
|
||||
src1, src2);
|
||||
}
|
||||
|
||||
brw_eu_inst *
|
||||
brw_SRND(struct brw_codegen *p, struct brw_reg dest,
|
||||
struct brw_reg src0, struct brw_reg src1)
|
||||
{
|
||||
assert(dest.type == BRW_TYPE_HF);
|
||||
assert(src0.type == BRW_TYPE_F);
|
||||
return brw_alu2(p, BRW_OPCODE_SRND, dest, src0, src1);
|
||||
}
|
||||
|
||||
void brw_NOP(struct brw_codegen *p)
|
||||
{
|
||||
brw_eu_inst *insn = next_insn(p, BRW_OPCODE_NOP);
|
||||
|
||||
@@ -922,6 +922,11 @@ brw_generator::generate_code(const brw_shader &s,
|
||||
brw_DP4A(p, dst, src[0], src[1], src[2]);
|
||||
break;
|
||||
|
||||
case BRW_OPCODE_SRND:
|
||||
assert(devinfo->ver >= 20);
|
||||
brw_SRND(p, dst, src[0], src[1]);
|
||||
break;
|
||||
|
||||
case BRW_OPCODE_LINE:
|
||||
brw_LINE(p, dst, src[0], src[1]);
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user