Hi:
  Basically i "copy" this optimization from clang i386 backend, Refer
to pr95524 for details.
  Bootstrap is ok, regression test on i386/x86-64 backend is ok.

gcc/ChangeLog:
        PR target/95524
        * gcc/config/i386/i386-expand.c
        (ix86_expand_vec_shift_qihi_constant): New function.
        * gcc/config/i386/i386-protos.h: Declare.
        * gcc/config/i386/sse.md: Optimize shift V*QImode by constant.

gcc/testsuite/ChangeLog:
        * gcc.target/i386/avx2-shiftqihi-constant-1.c: New test.
        * gcc.target/i386/avx2-shiftqihi-constant-2.c: Ditto.
        * gcc.target/i386/avx512bw-shiftqihi-constant-1.c: Ditto.
        * gcc.target/i386/avx512bw-shiftqihi-constant-2.c: Ditto.
        * gcc.target/i386/sse2-shiftqihi-constant-1.c: Ditto.
        * gcc.target/i386/sse2-shiftqihi-constant-2.c: Ditto.

-- 
BR,
Hongtao

Attachment: 0001-Optimize-V16QI-V32QI-V64QI-shift-by-constant.patch
Description: Binary data

Reply via email to