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