On Sat, Sep 18, 2021 at 3:31 PM Jakub Jelinek <ja...@redhat.com> wrote:
>
> On Sat, Sep 18, 2021 at 11:09:32AM +0800, liuhongt wrote:
> > Besides conversion instructions, pass_rpad also handles scalar
> > sqrt/rsqrt/rcp/round instructions, while r12-3614 should only want to
> > handle conversion instructions, so fix it.
> >
> >   Bootstrapped and regtest on x86_64-linux-gnu{-m32,} w/ configure
> > --enable-checking=yes,rtl,extra, failed tests are fixed.
> >   Ok for trunk?
> >
> > New tests that PASS (8 tests):
> >
> > gcc.target/i386/avx512f-vscalefpd-2.c execution test
> > gcc.target/i386/avx512f-vscalefps-2.c execution test
> > gcc.target/i386/avx512f-vscalefss-2.c execution test
> > gcc.target/i386/avx512fp16-vscalefph-1b.c execution test
> > gcc.target/i386/avx512fp16-vscalefsh-1b.c execution test
> > gcc.target/i386/avx512fp16vl-vscalefph-1b.c execution test
> > gcc.target/i386/avx512vl-vscalefpd-2.c execution test
> > gcc.target/i386/avx512vl-vscalefps-2.c execution test
> >
> > Old tests that failed, that have disappeared (8 tests): (Eeek!)
> >
> > gcc.target/i386/avx512f-vscalefpd-2.c (internal compiler error)
> > gcc.target/i386/avx512f-vscalefps-2.c (internal compiler error)
> > gcc.target/i386/avx512f-vscalefss-2.c (internal compiler error)
> > gcc.target/i386/avx512fp16-vscalefph-1b.c (internal compiler error)
> > gcc.target/i386/avx512fp16-vscalefsh-1b.c (internal compiler error)
> > gcc.target/i386/avx512fp16vl-vscalefph-1b.c (internal compiler error)
> > gcc.target/i386/avx512vl-vscalefpd-2.c (internal compiler error)
> > gcc.target/i386/avx512vl-vscalefps-2.c (internal compiler error)
> >
> > gcc/ChangeLog:
> >
> >       * config/i386/i386-features.c (remove_partial_avx_dependency):
> >       Restrict TARGET_USE_VECTOR_FP_CONVERTS and
> >       TARGET_USE_VECTOR_CONVERTS to conversion instructions only.
>
> Ok, with a minor nit:
>
> > @@ -2233,6 +2247,7 @@ remove_partial_avx_dependency (void)
> >               continue;
> >             break;
> >           default:
> > +           gcc_assert (src_mode == E_VOIDmode);
> >             break;
> >           }
>
> Wouldn't it be better to do:
>           E_VOIDmode:
>             gcc_assert (convert_p);
!convert_p, Must be typo :)

>             break;
>           default:
>             gcc_unreachable ();
> ?
Sure.
>
>         Jakub
>


-- 
BR,
Hongtao

Reply via email to