On Fri, Apr 23, 2021 at 8:36 AM Hongtao Liu <crazy...@gmail.com> wrote: > > Hi: > The patch is a follow-up to > https://gcc.gnu.org/pipermail/gcc-patches/2021-January/564320.html. > Bootstrapped and regtested on x86-64_iinux-gnu{-m32,}. > Ok for trunk? > 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. > (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: Remove __builtin_ia32_pcmpgtq > since it has been folded.
-(define_expand "sse2_eq<mode>3" - [(set (match_operand:VI124_128 0 "register_operand") - (eq:VI124_128 - (match_operand:VI124_128 1 "vector_operand") - (match_operand:VI124_128 2 "vector_operand")))] - "TARGET_SSE2 && !TARGET_XOP " - "ix86_fixup_binary_operands_no_copy (EQ, <MODE>mode, operands);") - (define_expand "sse4_1_eqv2di3" [(set (match_operand:V2DI 0 "register_operand") (eq:V2DI You can also remove sse4_1_eqv2di3 expander. -#ifdef __SSE4_2__ -#error "-msse4.2 should not be set for this test" -#endif - -__m128i sse4_2_pcmpgtq (__m128i a, __m128i b) __attribute__((__target__("sse4.2"))); -__m128i generic_pcmpgtq (__m128i ab, __m128i b); - -__m128i -sse4_2_pcmpgtq (__m128i a, __m128i b) -{ - return __builtin_ia32_pcmpgtq (a, b); -} - -__m128i -generic_pcmpgtq (__m128i a, __m128i b) -{ - return __builtin_ia32_pcmpgtq (a, b); /* { dg-error "needs isa option" } */ -} Why remove the above? It is testing isa options, it has nothing to do with improved folding. Uros.