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

>
> Uros.



-- 
BR,
Hongtao

Reply via email to