arm: Auto-vectorization for MVE clean condition for vand and vorr expanders
authorChristophe Lyon <christophe.lyon@linaro.org>
Fri, 11 Dec 2020 16:46:26 +0000 (16:46 +0000)
committerChristophe Lyon <christophe.lyon@linaro.org>
Fri, 11 Dec 2020 16:48:20 +0000 (16:48 +0000)
The patch restores the unconditional definition of the VDQ iterator,
and changes the conditions of the vand and vorr expanders to use
ARM_HAVE_<MODE>_ARITH.

2020-12-11  Christophe Lyon  <christophe.lyon@linaro.org>

gcc/
* config/arm/iterators.md (VDQ): Remove TARGET_HAVE_MVE
conditions.
* config/arm/vec-common.md (and<mode>3): Use
ARM_HAVE_<MODE>_ARITH.
(ior<mode>3): Likewise.

gcc/config/arm/iterators.md
gcc/config/arm/vec-common.md

index f0e1d605cd0386c2b1ff81828c7a2f124af4bba2..5fcb7afe5657b6d373d7ea314f53206cdde93c8d 100644 (file)
 (define_mode_iterator VN [V8HI V4SI V2DI])
 
 ;; All supported vector modes (except singleton DImode).
-(define_mode_iterator VDQ [(V8QI "!TARGET_HAVE_MVE") V16QI
-                          (V4HI "!TARGET_HAVE_MVE") V8HI
-                          (V2SI "!TARGET_HAVE_MVE") V4SI
-                          (V4HF "!TARGET_HAVE_MVE") V8HF
-                          (V2SF "!TARGET_HAVE_MVE") V4SF
-                          (V2DI "!TARGET_HAVE_MVE")])
+(define_mode_iterator VDQ [V8QI V16QI V4HI V8HI V2SI V4SI V4HF V8HF V2SF V4SF V2DI])
 
 ;; All supported floating-point vector modes (except V2DF).
 (define_mode_iterator VF [(V4HF "TARGET_NEON_FP16INST")
index df0a6cda3d543a17e600fcda517cea24c85e9730..8d9c89c5b2bca2779c6920c46a34f2dcc2f66e54 100644 (file)
   [(set (match_operand:VDQ 0 "s_register_operand" "")
        (and:VDQ (match_operand:VDQ 1 "s_register_operand" "")
                 (match_operand:VDQ 2 "neon_inv_logic_op2" "")))]
-  "TARGET_NEON
-   || TARGET_HAVE_MVE"
+  "ARM_HAVE_<MODE>_ARITH"
 )
 
 (define_expand "ior<mode>3"
   [(set (match_operand:VDQ 0 "s_register_operand" "")
        (ior:VDQ (match_operand:VDQ 1 "s_register_operand" "")
                 (match_operand:VDQ 2 "neon_logic_op2" "")))]
-  "TARGET_NEON
-   || TARGET_HAVE_MVE"
+  "ARM_HAVE_<MODE>_ARITH"
 )