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); break; default: gcc_unreachable (); ? Jakub