aco: create mads when signed zeros should be preserved
This check was added because I thought v_mad_f32 didn't preserve the signess of zero, but I can't reproduce that and this isn't mentioned anywhere in LLVM. No fossil-db changes. Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5245>
This commit is contained in:
@@ -2414,7 +2414,7 @@ void combine_instruction(opt_ctx &ctx, Block& block, aco_ptr<Instruction>& instr
|
||||
else if ((instr->opcode == aco_opcode::v_add_f32 ||
|
||||
instr->opcode == aco_opcode::v_sub_f32 ||
|
||||
instr->opcode == aco_opcode::v_subrev_f32) &&
|
||||
block.fp_mode.denorm32 == 0 && !block.fp_mode.preserve_signed_zero_inf_nan32) {
|
||||
block.fp_mode.denorm32 == 0) {
|
||||
//TODO: we could use fma instead when denormals are enabled if the NIR isn't marked as precise
|
||||
|
||||
uint32_t uses_src0 = UINT32_MAX;
|
||||
|
||||
Reference in New Issue
Block a user