diff options
Diffstat (limited to 'src/intel/compiler/brw_vec4_nir.cpp')
-rw-r--r-- | src/intel/compiler/brw_vec4_nir.cpp | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/src/intel/compiler/brw_vec4_nir.cpp b/src/intel/compiler/brw_vec4_nir.cpp index 124714b59de..eaf1754b006 100644 --- a/src/intel/compiler/brw_vec4_nir.cpp +++ b/src/intel/compiler/brw_vec4_nir.cpp @@ -1818,6 +1818,7 @@ vec4_visitor::nir_emit_alu(nir_alu_instr *instr) unreachable("not reached: should have been lowered"); case nir_op_fsign: + assert(!instr->dest.saturate); if (op[0].abs) { /* Straightforward since the source can be assumed to be either * strictly >= 0 or strictly <= 0 depending on the setting of the @@ -1830,10 +1831,6 @@ vec4_visitor::nir_emit_alu(nir_alu_instr *instr) ? emit(MOV(dst, brw_imm_f(-1.0f))) : emit(MOV(dst, brw_imm_f(1.0f))); inst->predicate = BRW_PREDICATE_NORMAL; - - if (instr->dest.saturate) - inst->saturate = true; - } else if (type_sz(op[0].type) < 8) { /* AND(val, 0x80000000) gives the sign bit. * @@ -1849,11 +1846,6 @@ vec4_visitor::nir_emit_alu(nir_alu_instr *instr) inst = emit(OR(dst, src_reg(dst), brw_imm_ud(0x3f800000u))); inst->predicate = BRW_PREDICATE_NORMAL; dst.type = BRW_REGISTER_TYPE_F; - - if (instr->dest.saturate) { - inst = emit(MOV(dst, src_reg(dst))); - inst->saturate = true; - } } else { /* For doubles we do the same but we need to consider: * @@ -1886,7 +1878,7 @@ vec4_visitor::nir_emit_alu(nir_alu_instr *instr) /* Now convert the result from float to double */ emit_conversion_to_double(dst, retype(src_reg(tmp), BRW_REGISTER_TYPE_F), - instr->dest.saturate); + false); } break; |