diff options
-rw-r--r-- | src/intel/compiler/brw_vec4_nir.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/intel/compiler/brw_vec4_nir.cpp b/src/intel/compiler/brw_vec4_nir.cpp index eaf1754b006..5ccfd1f8940 100644 --- a/src/intel/compiler/brw_vec4_nir.cpp +++ b/src/intel/compiler/brw_vec4_nir.cpp @@ -1586,7 +1586,12 @@ vec4_visitor::nir_emit_alu(nir_alu_instr *instr) case nir_op_b2i: case nir_op_b2f: - emit(MOV(dst, negate(op[0]))); + if (nir_dest_bit_size(instr->dest.dest) > 32) { + assert(dst.type == BRW_REGISTER_TYPE_DF); + emit_conversion_to_double(dst, negate(op[0]), false); + } else { + emit(MOV(dst, negate(op[0]))); + } break; case nir_op_f2b: |