https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123149

Hongtao Liu <liuhongt at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |liuhongt at gcc dot gnu.org

--- Comment #6 from Hongtao Liu <liuhongt at gcc dot gnu.org> ---
the backend support the patterns.

17954(define_insn "<avx512>_<rotate>v<mode><mask_name>"
17955  [(set (match_operand:VI48_AVX512VL 0 "register_operand" "=v")
17956        (any_rotate:VI48_AVX512VL
17957          (match_operand:VI48_AVX512VL 1 "register_operand" "v")
17958          (match_operand:VI48_AVX512VL 2 "nonimmediate_operand" "vm")))]
17959  "TARGET_AVX512F"
17960  "vp<rotate>v<ssemodesuffix>\t{%2, %1,
%0<mask_operand3>|%0<mask_operand3>, %1, %2}"
17961  [(set_attr "prefix" "evex")
17962   (set_attr "mode" "<sseinsnmode>")])
17963
17964(define_insn "<avx512>_<rotate><mode><mask_name>"
17965  [(set (match_operand:VI48_AVX512VL 0 "register_operand" "=v")
17966        (any_rotate:VI48_AVX512VL
17967          (match_operand:VI48_AVX512VL 1 "nonimmediate_operand" "vm")
17968          (match_operand:SI 2 "const_0_to_255_operand")))]
17969  "TARGET_AVX512F"
17970  "vp<rotate><ssemodesuffix>\t{%2, %1,
%0<mask_operand3>|%0<mask_operand3>, %1, %2}"
17971  [(set_attr "prefix" "evex")
17972   (set_attr "mode" "<sseinsnmode>")])

The second pattern should match

(set (reg:V2DI 108 [ _3 ])
    (rotate:V2DI (reg/v:V2DI 104 [ v ])
        (const_int 5 [0x5])))

Reply via email to