https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104104
--- Comment #2 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Jakub Jelinek <ja...@gcc.gnu.org>: https://gcc.gnu.org/g:ddce00dba244d889d688490517fb106169a72f01 commit r12-6715-gddce00dba244d889d688490517fb106169a72f01 Author: Jakub Jelinek <ja...@redhat.com> Date: Wed Jan 19 02:24:06 2022 +0100 i386: Fix GLC tuning with -masm=intel [PR104104] > > On Sat, Jan 15, 2022 at 5:39 PM Hongyu Wang <wwwhhhyyy...@gmail.com> wrote: > > > Thanks for the suggestion, here is the updated patch that survived > > > bootstrap/regtest. Unfortunately the patch results in assembler failures with -masm=intel. > > > > + if (TARGET_DEST_FALSE_DEPENDENCY > > > > + && get_attr_dest_false_dep (insn) == > > > > + DEST_FALSE_DEP_TRUE) > > > > + output_asm_insn ("vxorps\t{%x0, %x0, %x0}", operands); All the vxorps insns were emitted like the above, which means for -masm=sysv it looks like vxorps %xmm3, %xmm3, %xmm3 but for -masm=intel like: vxorps We want obviously vxorps xmm3, xmm3, xmm3 so the following patch just drops the errorneous {}s. 2022-01-19 Jakub Jelinek <ja...@redhat.com> PR target/104104 * config/i386/sse.md (<avx512>_<complexopname>_<mode><maskc_name><round_name>, avx512fp16_<complexopname>sh_v8hf<mask_scalarc_name><round_scalarcz_name>, avx512dq_mul<mode>3<mask_name>, <avx2_avx512>_permvar<mode><mask_name>, avx2_perm<mode>_1<mask_name>, avx512f_perm<mode>_1<mask_name>, avx512dq_rangep<mode><mask_name><round_saeonly_name>, avx512dq_ranges<mode><mask_scalar_name><round_saeonly_scalar_name>, <avx512>_getmant<mode><mask_name><round_saeonly_name>, avx512f_vgetmant<mode><mask_scalar_name><round_saeonly_scalar_name>): Use vxorps\t%x0, %x0, %x0 instead of vxorps\t{%x0, %x0, %x0}. * gcc.target/i386/pr104104.c: New test.