public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/107025] New: gas doesn't accept code produced by -mcpu=thunderx3t110
@ 2022-09-24  8:41 rsandifo at gcc dot gnu.org
  2022-09-24 13:57 ` [Bug target/107025] " pinskia at gcc dot gnu.org
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: rsandifo at gcc dot gnu.org @ 2022-09-24  8:41 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107025

            Bug ID: 107025
           Summary: gas doesn't accept code produced by
                    -mcpu=thunderx3t110
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: rsandifo at gcc dot gnu.org
                CC: ktkachov at gcc dot gnu.org, pinskia at gcc dot gnu.org,
                    rearnsha at gcc dot gnu.org
  Target Milestone: ---
            Target: aarch64*-*-*

Compiling:

void foo (_Atomic int *ptr) { ptr[1] = 1; }

with -O2 -mcpu=thunderx3t110 produces:

Error: selected processor does not support `stlur w1,[x0,4]'

This is because thunderx3t110 is listed as an Armv8.3-A core,
but includes the Armv8.4-A RCPC extension:

AARCH64_CORE("thunderx3t110",  thunderx3t110,  thunderx3t110, V8_3A, 
AARCH64_F\
L_CRYPTO | AARCH64_FL_RCPC | AARCH64_FL_SM4 | AARCH64_FL_SHA3 |
AARCH64_FL_F16F\
ML | AARCH64_FL_RCPC8_4, thunderx3t110, 0x43, 0x0b8, 0x0a)

This extension doesn't have its own separate feature flag in
gcc, gas, or clang.  I guess the options are to add one or
to remove the AARCH64_FL_RCPC8_4 entry.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Bug target/107025] gas doesn't accept code produced by -mcpu=thunderx3t110
  2022-09-24  8:41 [Bug target/107025] New: gas doesn't accept code produced by -mcpu=thunderx3t110 rsandifo at gcc dot gnu.org
@ 2022-09-24 13:57 ` pinskia at gcc dot gnu.org
  2022-09-26  9:34 ` ktkachov at gcc dot gnu.org
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: pinskia at gcc dot gnu.org @ 2022-09-24 13:57 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107025

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
I think thunderx3t110 can just be removed from gcc really. ThunderX3 never made
it outside of Marvell and it has not been supported by us for a few years now
too.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Bug target/107025] gas doesn't accept code produced by -mcpu=thunderx3t110
  2022-09-24  8:41 [Bug target/107025] New: gas doesn't accept code produced by -mcpu=thunderx3t110 rsandifo at gcc dot gnu.org
  2022-09-24 13:57 ` [Bug target/107025] " pinskia at gcc dot gnu.org
@ 2022-09-26  9:34 ` ktkachov at gcc dot gnu.org
  2022-09-29 10:34 ` cvs-commit at gcc dot gnu.org
  2022-09-30 10:35 ` rsandifo at gcc dot gnu.org
  3 siblings, 0 replies; 5+ messages in thread
From: ktkachov at gcc dot gnu.org @ 2022-09-26  9:34 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107025

ktkachov at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Last reconfirmed|                            |2022-09-26
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |NEW

--- Comment #2 from ktkachov at gcc dot gnu.org ---
In the Arm architecture this is FEAT_LRCPC2. LLVM does have an MC (essentially
assembler-level) feature string for it called "rcpc-immo", so if we wanted to
support this I guess we'd want to be compatible.
That said, it may be cleaner to just remove support for thunderx3t110 if we
think it's the right time.

Unfortunately we do still have some cases where our features aren't
fine-grained enough and are tied to architecture levels that some CPUs don't
claim to support:
https://godbolt.org/z/axbnd4c5o

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Bug target/107025] gas doesn't accept code produced by -mcpu=thunderx3t110
  2022-09-24  8:41 [Bug target/107025] New: gas doesn't accept code produced by -mcpu=thunderx3t110 rsandifo at gcc dot gnu.org
  2022-09-24 13:57 ` [Bug target/107025] " pinskia at gcc dot gnu.org
  2022-09-26  9:34 ` ktkachov at gcc dot gnu.org
@ 2022-09-29 10:34 ` cvs-commit at gcc dot gnu.org
  2022-09-30 10:35 ` rsandifo at gcc dot gnu.org
  3 siblings, 0 replies; 5+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2022-09-29 10:34 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107025

--- Comment #3 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The trunk branch has been updated by Richard Sandiford <rsandifo@gcc.gnu.org>:

https://gcc.gnu.org/g:0f244d848cffeda68f0eb4c5bb9c7e629bf2e957

commit r13-2940-g0f244d848cffeda68f0eb4c5bb9c7e629bf2e957
Author: Richard Sandiford <richard.sandiford@arm.com>
Date:   Thu Sep 29 11:32:53 2022 +0100

    aarch64: Remove AARCH64_FL_RCPC8_4 [PR107025]

    AARCH64_FL_RCPC8_4 is an odd-one-out in that it has no associated
    entry in aarch64-option-extensions.def.  This means that, although
    it is internally separated from AARCH64_FL_V8_4A, there is no
    mechanism for turning it on and off individually, independently
    of armv8.4-a.

    The only place that the flag was used independently was in the
    entry for thunderx3t110, which enabled it alongside V8_3A.
    As noted in PR107025, this means that any use of the extension
    will fail to assemble.

    In the PR trail, Andrew suggested removing the core entry.
    That might be best long-term, but since the barrier for removing
    command-line options without a deprecation period is very high,
    this patch instead just drops the flag from the core entry.
    We'll still produce correct code.

    gcc/
            PR target/107025
            * config/aarch64/aarch64.h (oAARCH64_FL_RCPC8_4): Delete.
            (AARCH64_FL_FOR_V8_4A): Update accordingly.
            (AARCH64_ISA_RCPC8_4): Use AARCH64_FL_V8_4A directly.
            * config/aarch64/aarch64-cores.def (thunderx3t110): Remove
            AARCH64_FL_RCPC8_4.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Bug target/107025] gas doesn't accept code produced by -mcpu=thunderx3t110
  2022-09-24  8:41 [Bug target/107025] New: gas doesn't accept code produced by -mcpu=thunderx3t110 rsandifo at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2022-09-29 10:34 ` cvs-commit at gcc dot gnu.org
@ 2022-09-30 10:35 ` rsandifo at gcc dot gnu.org
  3 siblings, 0 replies; 5+ messages in thread
From: rsandifo at gcc dot gnu.org @ 2022-09-30 10:35 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107025

rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--- Comment #4 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> ---
Fixed on trunk, not worth a backport.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-09-30 10:35 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-24  8:41 [Bug target/107025] New: gas doesn't accept code produced by -mcpu=thunderx3t110 rsandifo at gcc dot gnu.org
2022-09-24 13:57 ` [Bug target/107025] " pinskia at gcc dot gnu.org
2022-09-26  9:34 ` ktkachov at gcc dot gnu.org
2022-09-29 10:34 ` cvs-commit at gcc dot gnu.org
2022-09-30 10:35 ` rsandifo at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).