nir/opt_algebraic: lower 64-bit fmin3/fmax3/fmed3
This unconditionally lowers 64-bit fmin3/fmax3/fmed3 because AMD hardware doesn't have native instructions, and no drivers except RADV uses these instructions. Fixes dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.*.f64.* with ACO. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4570>
This commit is contained in:

committed by
Marge Bot

parent
eed0ace466
commit
59427b6d1d
@@ -1076,6 +1076,10 @@ optimizations.extend([
|
||||
|
||||
(('bcsel', ('ine', a, -1), ('ifind_msb', a), -1), ('ifind_msb', a)),
|
||||
|
||||
(('fmin3@64', a, b, c), ('fmin@64', a, ('fmin@64', b, c))),
|
||||
(('fmax3@64', a, b, c), ('fmax@64', a, ('fmax@64', b, c))),
|
||||
(('fmed3@64', a, b, c), ('fmax@64', ('fmin@64', ('fmax@64', a, b), c), ('fmin@64', a, b))),
|
||||
|
||||
# Misc. lowering
|
||||
(('fmod', a, b), ('fsub', a, ('fmul', b, ('ffloor', ('fdiv', a, b)))), 'options->lower_fmod'),
|
||||
(('frem', a, b), ('fsub', a, ('fmul', b, ('ftrunc', ('fdiv', a, b)))), 'options->lower_fmod'),
|
||||
|
Reference in New Issue
Block a user