This patch adds the missing expanders for smax/smin for v*hf modes.
2022-09-08 Christophe Lyon <[email protected]>
gcc/
* config/arm/vec-common.md (smin<mode>3): New.
(smax<mode>3): New.
---
gcc/config/arm/vec-common.md | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/gcc/config/arm/vec-common.md b/gcc/config/arm/vec-common.md
index b5fc86fdf28..1f9b7992da4 100644
--- a/gcc/config/arm/vec-common.md
+++ b/gcc/config/arm/vec-common.md
@@ -116,6 +116,13 @@ (define_expand "smin<mode>3"
"ARM_HAVE_<MODE>_ARITH"
)
+(define_expand "smin<mode>3"
+ [(set (match_operand:VH 0 "s_register_operand")
+ (smin:VH (match_operand:VH 1 "s_register_operand")
+ (match_operand:VH 2 "s_register_operand")))]
+ "ARM_HAVE_<MODE>_ARITH"
+)
+
(define_expand "umin<mode>3"
[(set (match_operand:VINTW 0 "s_register_operand")
(umin:VINTW (match_operand:VINTW 1 "s_register_operand")
@@ -130,6 +137,13 @@ (define_expand "smax<mode>3"
"ARM_HAVE_<MODE>_ARITH"
)
+(define_expand "smax<mode>3"
+ [(set (match_operand:VH 0 "s_register_operand")
+ (smax:VH (match_operand:VH 1 "s_register_operand")
+ (match_operand:VH 2 "s_register_operand")))]
+ "ARM_HAVE_<MODE>_ARITH"
+)
+
(define_expand "umax<mode>3"
[(set (match_operand:VINTW 0 "s_register_operand")
(umax:VINTW (match_operand:VINTW 1 "s_register_operand")
--
2.34.1