Add folding and remove expanders for x86 *pcmp{et,gt}* builtins [PR target/98911]
authorliuhongt <hongtao.liu@intel.com>
Tue, 23 Feb 2021 03:17:40 +0000 (11:17 +0800)
committerliuhongt <hongtao.liu@intel.com>
Sun, 25 Apr 2021 01:18:08 +0000 (09:18 +0800)
commitc54a9f7259fce1a221270f21d8076c960c7d0163
tree2c3a1f7c893804506acadc66255dcc8e25409381
parent502ef97c4f442777e5f61c506d17f8776a69b207
Add folding and remove expanders for x86 *pcmp{et,gt}* builtins [PR target/98911]

gcc/ChangeLog:

PR target/98911
* config/i386/i386-builtin.def (BDESC): Change the icode of
the following builtins to CODE_FOR_nothing.
* config/i386/i386.c (ix86_gimple_fold_builtin): Fold
IX86_BUILTIN_PCMPEQB128, IX86_BUILTIN_PCMPEQW128,
IX86_BUILTIN_PCMPEQD128, IX86_BUILTIN_PCMPEQQ,
IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
IX86_BUILTIN_PCMPGTB128, IX86_BUILTIN_PCMPGTW128,
IX86_BUILTIN_PCMPGTD128, IX86_BUILTIN_PCMPGTQ,
IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256.
* config/i386/sse.md (avx2_eq<mode>3): Deleted.
(sse2_eq<mode>3): Ditto.
(sse4_1_eqv2di3): Ditto.
(sse2_gt<mode>3): Rename to ..
(*sse2_gt<mode>3): .. this.

gcc/testsuite/ChangeLog:

PR target/98911
* gcc.target/i386/pr98911.c: New test.
* gcc.target/i386/funcspec-8.c: Replace __builtin_ia32_pcmpgtq
with __builtin_ia32_pcmpistrm128 since it has been folded.
gcc/config/i386/i386-builtin.def
gcc/config/i386/i386.c
gcc/config/i386/sse.md
gcc/testsuite/gcc.target/i386/funcspec-8.c
gcc/testsuite/gcc.target/i386/pr98911.c [new file with mode: 0644]