]> git.ipfire.org Git - thirdparty/gcc.git/commit
target: [PR103750] Also handle avx512 kmask & immediate 15 or 3 when VF is 4/2.
authorliuhongt <hongtao.liu@intel.com>
Tue, 8 Apr 2025 06:50:53 +0000 (23:50 -0700)
committerliuhongt <hongtao.liu@intel.com>
Thu, 24 Apr 2025 06:49:33 +0000 (23:49 -0700)
commit599bca27dc37b3f7979bd6af30a357104f2b90c1
treefa17924eccde5990f11f6e9833a8c48873809486
parente9a81addd5b7d018e173fa8d59aafc2f84e41d8b
target: [PR103750] Also handle avx512 kmask & immediate 15 or 3 when VF is 4/2.

Since the upper bits are already cleared by the comparison
instructions.

gcc/ChangeLog:
PR target/103750
* config/i386/sse.md (*<avx512>_cmp<mode>3_and15): New define_insn.
(*<avx512>_ucmp<mode>3_and15): Ditto.
(*<avx512>_cmp<mode>3_and3): Ditto.
(*avx512vl_ucmpv2di3_and3): Ditto.
(*<avx512>_cmp<V48H_AVX512VL:mode>3_zero_extend<SWI248x:mode>):
Change operands[3] predicate to <cmp_imm_predicate>.
(*<avx512>_cmp<V48H_AVX512VL:mode>3_zero_extend<SWI248x:mode>_2):
Ditto.
(*<avx512>_cmp<mode>3): Add GET_MODE_NUNITS (<MODE>mode) >= 8
to the condition.
(*<avx512>_ucmp<mode>3): Ditto.
(V48_AVX512VL_4): New mode iterator.
(VI48_AVX512VL_4): Ditto.
(V8_AVX512VL_2): Ditto.

gcc/testsuite/ChangeLog:

* gcc.target/i386/avx512vl-pr103750-1.c: New test.
* gcc.target/i386/avx512f-pr96891-3.c: Adjust testcase.
* gcc.target/i386/avx512f-vpcmpgtuq-1.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpeqq-1.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpequq-1.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpgeq-1.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpgeuq-1.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpgtq-1.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpgtuq-1.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpleq-1.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpleuq-1.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpltq-1.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpltuq-1.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpneqq-1.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpnequq-1.c: Ditto.
16 files changed:
gcc/config/i386/sse.md
gcc/testsuite/gcc.target/i386/avx512f-pr96891-3.c
gcc/testsuite/gcc.target/i386/avx512f-vpcmpgtuq-1.c
gcc/testsuite/gcc.target/i386/avx512vl-pr103750-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512vl-vpcmpeqq-1.c
gcc/testsuite/gcc.target/i386/avx512vl-vpcmpequq-1.c
gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgeq-1.c
gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgeuq-1.c
gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgtq-1.c
gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgtuq-1.c
gcc/testsuite/gcc.target/i386/avx512vl-vpcmpleq-1.c
gcc/testsuite/gcc.target/i386/avx512vl-vpcmpleuq-1.c
gcc/testsuite/gcc.target/i386/avx512vl-vpcmpltq-1.c
gcc/testsuite/gcc.target/i386/avx512vl-vpcmpltuq-1.c
gcc/testsuite/gcc.target/i386/avx512vl-vpcmpneqq-1.c
gcc/testsuite/gcc.target/i386/avx512vl-vpcmpnequq-1.c