]> git.ipfire.org Git - thirdparty/gcc.git/commit
Support logic shift left/right for avx512 mask type.
authorliuhongt <hongtao.liu@intel.com>
Tue, 20 Jul 2021 10:32:35 +0000 (18:32 +0800)
committerliuhongt <hongtao.liu@intel.com>
Thu, 22 Jul 2021 02:40:16 +0000 (10:40 +0800)
commita56c251898ea70b46798d7893a871bcfe318529b
treec377234035d48b0c85d7ca7ac75c3e29612093ff
parent419c6c68e60adc8801b44dab72ebcd680cfe1d97
Support logic shift left/right for avx512 mask type.

gcc/ChangeLog:

* config/i386/constraints.md (Wb): New constraint.
(Ww): Ditto.
* config/i386/i386.md (*ashlhi3_1): Extend to avx512 mask
shift.
(*ashlqi3_1): Ditto.
(*<insn><mode>3_1): Split to ..
(*ashr<mode>3_1): this, ...
(*lshr<mode>3_1): and this, also extend this pattern to avx512
mask registers.
(*<insn><mode>3_1): Split to ..
(*ashr<mode>3_1): this, ...
(*lshrqi3_1): and this, also extend this pattern to avx512
mask registers.
(*lshrhi3_1): And this, also extend this pattern to avx512
mask registers.
* config/i386/sse.md (k<code><mode>): New define_split after
it to convert generic shift pattern to mask shift ones.

gcc/testsuite/ChangeLog:

* gcc.target/i386/mask-shift.c: New test.
gcc/config/i386/constraints.md
gcc/config/i386/i386.md
gcc/config/i386/sse.md
gcc/testsuite/gcc.target/i386/mask-shift.c [new file with mode: 0644]