On Fri, Apr 23, 2021 at 9:15 AM Hongtao Liu <crazy...@gmail.com> wrote:
>
> On Fri, Apr 23, 2021 at 2:50 PM Uros Bizjak <ubiz...@gmail.com> wrote:
> >
> > 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.
>
> Oh, yes.
>
> >
> > -#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.
>
> If the backend does not support the corresponding instruction, the
> vector operation will be automatically lowered to scalar, so no error
> will be reported

I see. It would be nice to change the test to use some other SSE4.2
builtin (there are plenty of packed compares) and not remove it
altogether.

Uros.

Reply via email to