]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Support cbranchm for Vector HI/QImode.
authorliuhongt <hongtao.liu@intel.com>
Fri, 17 Nov 2023 02:18:33 +0000 (10:18 +0800)
committerliuhongt <hongtao.liu@intel.com>
Wed, 22 Nov 2023 06:01:10 +0000 (14:01 +0800)
gcc/ChangeLog:

* config/i386/sse.md (cbranch<mode>4): Extend to Vector
HI/QImode.

gcc/config/i386/sse.md

index f94a77d0b6d40e6d1ef84ad9396e6af0e46a8732..4f511693e3ff5d4ff449998c70f6eb4186f931be 100644 (file)
    (V16SI "TARGET_AVX512F && TARGET_EVEX512") (V8SI "TARGET_AVX2") V4SI
    (V8DI "TARGET_AVX512F && TARGET_EVEX512") (V4DI "TARGET_AVX2") V2DI])
 
+(define_mode_iterator VI_AVX_AVX512F
+  [(V64QI "TARGET_AVX512F && TARGET_EVEX512") (V32QI "TARGET_AVX") V16QI
+   (V32HI "TARGET_AVX512F && TARGET_EVEX512") (V16HI "TARGET_AVX") V8HI
+   (V16SI "TARGET_AVX512F && TARGET_EVEX512") (V8SI "TARGET_AVX") V4SI
+   (V8DI "TARGET_AVX512F && TARGET_EVEX512") (V4DI "TARGET_AVX") V2DI])
+
 ;; All QImode vector integer modes
 (define_mode_iterator VI1
   [(V32QI "TARGET_AVX") V16QI])
 
 (define_expand "cbranch<mode>4"
   [(set (reg:CC FLAGS_REG)
-       (compare:CC (match_operand:VI48_AVX_AVX512F 1 "register_operand")
-                   (match_operand:VI48_AVX_AVX512F 2 "nonimmediate_operand")))
+       (compare:CC (match_operand:VI_AVX_AVX512F 1 "register_operand")
+                   (match_operand:VI_AVX_AVX512F 2 "nonimmediate_operand")))
    (set (pc) (if_then_else
               (match_operator 0 "bt_comparison_operator"
                [(reg:CC FLAGS_REG) (const_int 0)])