https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98348
--- Comment #24 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The releases/gcc-11 branch has been updated by hongtao Liu <liuho...@gcc.gnu.org>: https://gcc.gnu.org/g:d5e7b9fd184c22464d8724ff748e1f7ce0cd6bce commit r11-9455-gd5e7b9fd184c22464d8724ff748e1f7ce0cd6bce Author: liuhongt <hongtao....@intel.com> Date: Mon Aug 30 15:05:14 2021 +0800 Unify UNSPEC_MASKED_EQ/GT to the form of UNSPEC_PCMP. Currently for evex vpcmpeqb instruction, we have two forms of rtl template representation, one is (unspec [op1 op2] UNSPEC_MASK_EQ), the other is (unspec [op1, op2, const_int 0] UNSPEC_PCMP), which increases the maintenance burden, such as optimization (not: vpcmpeqb) to (vpcmpneqb) requires two define_insn_and_split to match the two forms respectively, this patch removes UNSPEC_MASK_EQ/GT, unifying them into the form of UNSPEC_PCMP. gcc/ChangeLog: PR target/98348 * config/i386/sse.md (*<avx512>_ucmp<mode>3_1): Change from define_split to define_insn_and_split. (*avx2_eq<mode>3): Removed. (<avx512>_eq<mode>3<mask_scalar_merge_name>): Adjust pattern (<avx512>_eq<mode>3<mask_scalar_merge_name>_1): Rename to .. (*<avx512>_eq<mode>3<mask_scalar_merge_name>_1): .. this, and adjust pattern. (*avx2_gt<mode>3): Removed. (<avx512>_gt<mode>3<mask_scalar_merge_name>): Change from define_insn to define_expand, and adjust pattern. (UNSPEC_MASKED_EQ, UNSPEC_MASKED_GT): Removed. gcc/testsuite/ChangeLog: PR target/98348 * gcc.target/i386/avx512bw-vpcmpeqb-1.c: Adjust testcase. * gcc.target/i386/avx512bw-vpcmpeqw-1.c: Ditto. * gcc.target/i386/avx512bw-vpcmpgtb-1.c: Ditto. * gcc.target/i386/avx512bw-vpcmpgtw-1.c: Ditto. * gcc.target/i386/avx512f-vpcmpeqd-1.c: Ditto. * gcc.target/i386/avx512f-vpcmpeqq-1.c: Ditto. * gcc.target/i386/avx512f-vpcmpgtd-1.c: Ditto. * gcc.target/i386/avx512f-vpcmpgtq-1.c: Ditto. * gcc.target/i386/avx512vl-vpcmpeqd-1.c: Ditto. * gcc.target/i386/avx512vl-vpcmpeqq-1.c: Ditto. * gcc.target/i386/avx512vl-vpcmpgtd-1.c: Ditto. * gcc.target/i386/avx512vl-vpcmpgtq-1.c: Ditto. * gcc.target/i386/bitwise_mask_op-1.c: Ditto. * gcc.target/i386/bitwise_mask_op-2.c: Ditto.