mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-02-21 14:20:29 +01:00
broadcom/vc5: Stop lowering negates to subs.
In the case of fneg(0.0), we were getting back 0.0 instead of -0.0. We were also needing an immediate 0 value for ineg, when there's an opcode to do the job properly. Fixes fs-floatBitsToInt-neg.shader_test.
This commit is contained in:
parent
a797f0eb63
commit
4d2619a6b3
1 changed files with 8 additions and 1 deletions
|
|
@ -806,6 +806,14 @@ ntq_emit_alu(struct v3d_compile *c, nir_alu_instr *instr)
|
|||
case nir_op_imov:
|
||||
result = vir_MOV(c, src[0]);
|
||||
break;
|
||||
|
||||
case nir_op_fneg:
|
||||
result = vir_XOR(c, src[0], vir_uniform_ui(c, 1 << 31));
|
||||
break;
|
||||
case nir_op_ineg:
|
||||
result = vir_NEG(c, src[0]);
|
||||
break;
|
||||
|
||||
case nir_op_fmul:
|
||||
result = vir_FMUL(c, src[0], src[1]);
|
||||
break;
|
||||
|
|
@ -1984,7 +1992,6 @@ const nir_shader_compiler_options v3d_nir_options = {
|
|||
.lower_fpow = true,
|
||||
.lower_fsat = true,
|
||||
.lower_fsqrt = true,
|
||||
.lower_negate = true,
|
||||
.native_integers = true,
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue