Combine vpcmpuw + zero_extend to vpcmpuw.
authorliuhongt <hongtao.liu@intel.com>
Wed, 22 Dec 2021 08:48:54 +0000 (16:48 +0800)
committerliuhongt <hongtao.liu@intel.com>
Thu, 23 Dec 2021 05:42:55 +0000 (13:42 +0800)
commit1a7ce8570997eb1596c803443d20687b43fa2e47
tree56edd779c97e42887a8a67b7163bd96341dcb22a
parent9f9bc0bf0d6b043192df5fc9d03b71ff2a36ddc5
Combine vpcmpuw + zero_extend to vpcmpuw.

vcmp{ps,ph,pd} and vpcmp{,u}{b,w,d,q} implicitly clear the upper bits
of dest.

gcc/ChangeLog:

PR target/103750
* config/i386/sse.md
(*<avx512>_cmp<V48H_AVX512VL:mode>3_zero_extend<SWI248x:mode>):
New pre_reload define_insn_and_split.
(*<avx512>_cmp<VI12_AVX512VL:mode>3_zero_extend<SWI248x:mode>):
Ditto.
(*<avx512>_ucmp<VI12_AVX512VL:mode>3_zero_extend<SWI248x:mode>):
Ditto.
(*<avx512>_ucmp<VI48_AVX512VL:mode>3_zero_extend<SWI248x:mode>):
Ditto.
(*<avx512>_cmp<V48H_AVX512VL:mode>3_zero_extend<SWI248x:mode>_2):
Ditto.
(*<avx512>_cmp<VI12_AVX512VL:mode>3_zero_extend<SWI248x:mode>_2):
Ditto.
(*<avx512>_ucmp<VI12_AVX512VL:mode>3_zero_extend<SWI248x:mode>_2):
Ditto.
(*<avx512>_ucmp<VI48_AVX512VL:mode>3_zero_extend<SWI248x:mode>_2):
Ditto.

gcc/testsuite/ChangeLog:

* gcc.target/i386/avx512bw-pr103750-1.c: New test.
* gcc.target/i386/avx512bw-pr103750-2.c: New test.
* gcc.target/i386/avx512f-pr103750-1.c: New test.
* gcc.target/i386/avx512f-pr103750-2.c: New test.
* gcc.target/i386/avx512fp16-pr103750-1.c: New test.
* gcc.target/i386/avx512fp16-pr103750-2.c: New test.
gcc/config/i386/sse.md
gcc/testsuite/gcc.target/i386/avx512bw-pr103750-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512bw-pr103750-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512f-pr103750-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512f-pr103750-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512fp16-pr103750-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512fp16-pr103750-2.c [new file with mode: 0644]