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.

Reply via email to