diff --git a/src/intel/compiler/brw_vec4.h b/src/intel/compiler/brw_vec4.h index 12e58fd9bba..1b568176b19 100644 --- a/src/intel/compiler/brw_vec4.h +++ b/src/intel/compiler/brw_vec4.h @@ -214,6 +214,7 @@ public: EMIT1(FBH) EMIT1(FBL) EMIT1(CBIT) + EMIT1(LZD) EMIT3(MAD) EMIT2(ADDC) EMIT2(SUBB) diff --git a/src/intel/compiler/brw_vec4_nir.cpp b/src/intel/compiler/brw_vec4_nir.cpp index 32b0a3af5d5..c94331f3126 100644 --- a/src/intel/compiler/brw_vec4_nir.cpp +++ b/src/intel/compiler/brw_vec4_nir.cpp @@ -1636,6 +1636,12 @@ vec4_visitor::nir_emit_alu(nir_alu_instr *instr) break; } + case nir_op_uclz: + assert(nir_dest_bit_size(instr->dest.dest) == 32); + assert(nir_src_bit_size(instr->src[0].src) == 32); + emit(LZD(dst, op[0])); + break; + case nir_op_find_lsb: assert(nir_dest_bit_size(instr->dest.dest) == 32); assert(nir_src_bit_size(instr->src[0].src) == 32); diff --git a/src/intel/compiler/brw_vec4_visitor.cpp b/src/intel/compiler/brw_vec4_visitor.cpp index f205baa7847..82076cd1c8a 100644 --- a/src/intel/compiler/brw_vec4_visitor.cpp +++ b/src/intel/compiler/brw_vec4_visitor.cpp @@ -183,6 +183,7 @@ ALU3(BFI2) ALU1(FBH) ALU1(FBL) ALU1(CBIT) +ALU1(LZD) ALU3(MAD) ALU2_ACC(ADDC) ALU2_ACC(SUBB)