+
/* Does the native fdot instruction replicate its result for four
* components? If so, then opt_algebraic_late will turn all fdotN
* instructions into fdot_replicatedN instructions.
diff --git a/src/compiler/nir/nir_opt_algebraic.py
b/src/compiler/nir/nir_opt_algebraic.py
index 909ea3daf4..1d67e2d88c 100644
--- a/src/compiler/nir/nir_opt_algebraic.py
+++ b/src/compiler/nir/nir_opt_algebraic.py
@@ -224,6 +224,14 @@ optimizations = [
(('imax', a, a), a),
(('umin', a, a), a),
(('umax', a, a), a),
+
+ (('fmin', ('fmin', a, b), c), ('fmin3', a, b, c), 'options->lower_minmax3'),
+ (('imin', ('imin', a, b), c), ('imin3', a, b, c), 'options->lower_minmax3'),
+ (('umin', ('umin', a, b), c), ('umin3', a, b, c), 'options->lower_minmax3'),
+ (('fmax', ('fmax', a, b), c), ('fmax3', a, b, c), 'options->lower_minmax3'),
+ (('imax', ('imax', a, b), c), ('imax3', a, b, c), 'options->lower_minmax3'),
+ (('umax', ('umax', a, b), c), ('umax3', a, b, c), 'options->lower_minmax3'),
+
(('fmin', a, ('fneg', a)), ('fneg', ('fabs', a))),
(('imin', a, ('ineg', a)), ('ineg', ('iabs', a))),
(('fmin', a, ('fneg', ('fabs', a))), ('fneg', ('fabs', a))),