public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/94396] New: [8/9/10 Regression] fp16 feature bits not passed on to assembler from Armv8.4-a and up.
@ 2020-03-30  7:04 tnfchris at gcc dot gnu.org
  2020-03-30  8:29 ` [Bug target/94396] " rguenth at gcc dot gnu.org
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: tnfchris at gcc dot gnu.org @ 2020-03-30  7:04 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 94396
           Summary: [8/9/10 Regression] fp16 feature bits not passed on to
                    assembler from Armv8.4-a and up.
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: tnfchris at gcc dot gnu.org
          Reporter: tnfchris at gcc dot gnu.org
  Target Milestone: ---
            Target: aarch64-*

At Arm8.2-a using `+fp16fml` enables both `+fp` and `+fp16` as such the
smallest canonical option to use is `armv8.2-a+fp16fml`.

For `Armv8.4-a` and up `+fp16fml` is mandatory if `+fp16` but optional
otherwise. This requirement confuses the canonization.

This confusion makes `armv8.4-a+fp16` canonicalize to `armv8.4-a` which is
incorrect and so it's impossible to use `fp16` and `fp16fml` at `armv8.4-a` and
higher.

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

* [Bug target/94396] [8/9/10 Regression] fp16 feature bits not passed on to assembler from Armv8.4-a and up.
  2020-03-30  7:04 [Bug target/94396] New: [8/9/10 Regression] fp16 feature bits not passed on to assembler from Armv8.4-a and up tnfchris at gcc dot gnu.org
@ 2020-03-30  8:29 ` rguenth at gcc dot gnu.org
  2020-04-01  8:59 ` rguenth at gcc dot gnu.org
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: rguenth at gcc dot gnu.org @ 2020-03-30  8:29 UTC (permalink / raw)
  To: gcc-bugs

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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |8.5

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

* [Bug target/94396] [8/9/10 Regression] fp16 feature bits not passed on to assembler from Armv8.4-a and up.
  2020-03-30  7:04 [Bug target/94396] New: [8/9/10 Regression] fp16 feature bits not passed on to assembler from Armv8.4-a and up tnfchris at gcc dot gnu.org
  2020-03-30  8:29 ` [Bug target/94396] " rguenth at gcc dot gnu.org
@ 2020-04-01  8:59 ` rguenth at gcc dot gnu.org
  2020-04-03 14:20 ` cvs-commit at gcc dot gnu.org
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: rguenth at gcc dot gnu.org @ 2020-04-01  8:59 UTC (permalink / raw)
  To: gcc-bugs

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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P2

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

* [Bug target/94396] [8/9/10 Regression] fp16 feature bits not passed on to assembler from Armv8.4-a and up.
  2020-03-30  7:04 [Bug target/94396] New: [8/9/10 Regression] fp16 feature bits not passed on to assembler from Armv8.4-a and up tnfchris at gcc dot gnu.org
  2020-03-30  8:29 ` [Bug target/94396] " rguenth at gcc dot gnu.org
  2020-04-01  8:59 ` rguenth at gcc dot gnu.org
@ 2020-04-03 14:20 ` cvs-commit at gcc dot gnu.org
  2020-04-18 17:01 ` law at redhat dot com
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2020-04-03 14:20 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #1 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Tamar Christina <tnfchris@gcc.gnu.org>:

https://gcc.gnu.org/g:53161358180fdc2c2c21c8f46bbdd339a1fbb8ae

commit r10-7537-g53161358180fdc2c2c21c8f46bbdd339a1fbb8ae
Author: Tamar Christina <tamar.christina@arm.com>
Date:   Fri Apr 3 15:18:35 2020 +0100

    AArch64: Fix options canonicalization for assembler

    It is currently impossible to use fp16 on any architecture higher than
Armv8.3-a
    due to a bug in options canonization.  This bug results in the fp16 flag
not
    being emitted in the assembly when it should have been.

    This is caused by a complicated architectural requirement at Armv8.4-a.  On
    Armv8.2-a and Armv8.3-a fp16fml is an optional extension and turning it on
turns
    on both fp and fp16.  However starting with Armv8.4-a fp16fml is mandatory
if
    fp16 is available, otherwise it's optional.

    In short this means that to enable fp16fml the smallest option that needs
to
    passed to the assembler is Armv8.4-a+fp16.

    The fix in this patch takes into account that an option may be on by
default in
    an architecture, but that not all the bits required to use it are on by
default
    in an architecture.  In such cases the difference between the two are still
    emitted to the assembler.

    gcc/ChangeLog:

            PR target/94396
            * common/config/aarch64/aarch64-common.c
            (aarch64_get_extension_string_for_isa_flags): Handle default flags.

    gcc/testsuite/ChangeLog:

            PR target/94396
            * gcc.target/aarch64/options_set_11.c: New test.
            * gcc.target/aarch64/options_set_12.c: New test.
            * gcc.target/aarch64/options_set_13.c: New test.
            * gcc.target/aarch64/options_set_14.c: New test.
            * gcc.target/aarch64/options_set_15.c: New test.
            * gcc.target/aarch64/options_set_16.c: New test.
            * gcc.target/aarch64/options_set_17.c: New test.
            * gcc.target/aarch64/options_set_18.c: New test.
            * gcc.target/aarch64/options_set_19.c: New test.
            * gcc.target/aarch64/options_set_20.c: New test.
            * gcc.target/aarch64/options_set_21.c: New test.
            * gcc.target/aarch64/options_set_22.c: New test.
            * gcc.target/aarch64/options_set_23.c: New test.
            * gcc.target/aarch64/options_set_24.c: New test.
            * gcc.target/aarch64/options_set_25.c: New test.
            * gcc.target/aarch64/options_set_26.c: New test.

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

* [Bug target/94396] [8/9/10 Regression] fp16 feature bits not passed on to assembler from Armv8.4-a and up.
  2020-03-30  7:04 [Bug target/94396] New: [8/9/10 Regression] fp16 feature bits not passed on to assembler from Armv8.4-a and up tnfchris at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2020-04-03 14:20 ` cvs-commit at gcc dot gnu.org
@ 2020-04-18 17:01 ` law at redhat dot com
  2020-04-20 10:45 ` cvs-commit at gcc dot gnu.org
  2020-04-20 10:48 ` cvs-commit at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: law at redhat dot com @ 2020-04-18 17:01 UTC (permalink / raw)
  To: gcc-bugs

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

Jeffrey A. Law <law at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |law at redhat dot com
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|---                         |FIXED

--- Comment #2 from Jeffrey A. Law <law at redhat dot com> ---
Should be fixed by the commit referenced in c#1.

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

* [Bug target/94396] [8/9/10 Regression] fp16 feature bits not passed on to assembler from Armv8.4-a and up.
  2020-03-30  7:04 [Bug target/94396] New: [8/9/10 Regression] fp16 feature bits not passed on to assembler from Armv8.4-a and up tnfchris at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2020-04-18 17:01 ` law at redhat dot com
@ 2020-04-20 10:45 ` cvs-commit at gcc dot gnu.org
  2020-04-20 10:48 ` cvs-commit at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2020-04-20 10:45 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #3 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-9 branch has been updated by Tamar Christina
<tnfchris@gcc.gnu.org>:

https://gcc.gnu.org/g:910c610dcc220ed04123e4da59296457254d85d4

commit r9-8514-g910c610dcc220ed04123e4da59296457254d85d4
Author: Tamar Christina <tamar.christina@arm.com>
Date:   Mon Apr 20 11:43:43 2020 +0100

    AArch64: Fix options canonicanization for assembler

    It is currently impossible to use fp16 on any architecture higher than
Armv8.3-a
    due to a bug in options canonization.  This bug results in the fp16 flag
not
    being emitted in the assembly when it should have been.

    This is caused by a complicated architectural requirement at Armv8.4-a.  On
    Armv8.2-a and Armv8.3-a fp16fml is an optional extension and turning it on
turns
    on both fp and fp16.  However starting with Armv8.4-a fp16fml is mandatory
if
    fp16 is available, otherwise it's optional.

    In short this means that to enable fp16fml the smallest option that needs
to
    passed to the assembler is Armv8.4-a+fp16.

    The fix in this patch takes into account that an option may be on by
default in
    an architecture, but that not all the bits required to use it are on by
default
    in an architecture.  In such cases the difference between the two are still
    emitted to the assembler.

    gcc/ChangeLog:

            PR target/94396
            * common/config/aarch64/aarch64-common.c
            (aarch64_get_extension_string_for_isa_flags): Handle default flags.

    gcc/testsuite/ChangeLog:

            PR target/94396
            * gcc.target/aarch64/options_set_11.c: New test.
            * gcc.target/aarch64/options_set_12.c: New test.
            * gcc.target/aarch64/options_set_13.c: New test.
            * gcc.target/aarch64/options_set_14.c: New test.
            * gcc.target/aarch64/options_set_15.c: New test.
            * gcc.target/aarch64/options_set_16.c: New test.
            * gcc.target/aarch64/options_set_17.c: New test.
            * gcc.target/aarch64/options_set_18.c: New test.
            * gcc.target/aarch64/options_set_19.c: New test.
            * gcc.target/aarch64/options_set_20.c: New test.
            * gcc.target/aarch64/options_set_21.c: New test.
            * gcc.target/aarch64/options_set_22.c: New test.
            * gcc.target/aarch64/options_set_23.c: New test.
            * gcc.target/aarch64/options_set_24.c: New test.
            * gcc.target/aarch64/options_set_25.c: New test.
            * gcc.target/aarch64/options_set_26.c: New test.

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

* [Bug target/94396] [8/9/10 Regression] fp16 feature bits not passed on to assembler from Armv8.4-a and up.
  2020-03-30  7:04 [Bug target/94396] New: [8/9/10 Regression] fp16 feature bits not passed on to assembler from Armv8.4-a and up tnfchris at gcc dot gnu.org
                   ` (4 preceding siblings ...)
  2020-04-20 10:45 ` cvs-commit at gcc dot gnu.org
@ 2020-04-20 10:48 ` cvs-commit at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2020-04-20 10:48 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-8 branch has been updated by Tamar Christina
<tnfchris@gcc.gnu.org>:

https://gcc.gnu.org/g:b262ef0ed1628d88aa7a899fb3f93bcf3e51998e

commit r8-10191-gb262ef0ed1628d88aa7a899fb3f93bcf3e51998e
Author: Tamar Christina <tamar.christina@arm.com>
Date:   Mon Apr 20 11:46:38 2020 +0100

    AArch64: Fix options canonicanization for assembler

    It is currently impossible to use fp16 on any architecture higher than
Armv8.3-a
    due to a bug in options canonization.  This bug results in the fp16 flag
not
    being emitted in the assembly when it should have been.

    This is caused by a complicated architectural requirement at Armv8.4-a.  On
    Armv8.2-a and Armv8.3-a fp16fml is an optional extension and turning it on
turns
    on both fp and fp16.  However starting with Armv8.4-a fp16fml is mandatory
if
    fp16 is available, otherwise it's optional.

    In short this means that to enable fp16fml the smallest option that needs
to
    passed to the assembler is Armv8.4-a+fp16.

    The fix in this patch takes into account that an option may be on by
default in
    an architecture, but that not all the bits required to use it are on by
default
    in an architecture.  In such cases the difference between the two are still
    emitted to the assembler.

    gcc/ChangeLog:

            PR target/94396
            * common/config/aarch64/aarch64-common.c
            (aarch64_get_extension_string_for_isa_flags): Handle default flags.

    gcc/testsuite/ChangeLog:

            PR target/94396
            * gcc.target/aarch64/options_set_11.c: New test.
            * gcc.target/aarch64/options_set_12.c: New test.
            * gcc.target/aarch64/options_set_13.c: New test.
            * gcc.target/aarch64/options_set_14.c: New test.
            * gcc.target/aarch64/options_set_15.c: New test.
            * gcc.target/aarch64/options_set_16.c: New test.
            * gcc.target/aarch64/options_set_17.c: New test.
            * gcc.target/aarch64/options_set_18.c: New test.
            * gcc.target/aarch64/options_set_19.c: New test.
            * gcc.target/aarch64/options_set_20.c: New test.
            * gcc.target/aarch64/options_set_21.c: New test.
            * gcc.target/aarch64/options_set_22.c: New test.
            * gcc.target/aarch64/options_set_23.c: New test.
            * gcc.target/aarch64/options_set_24.c: New test.
            * gcc.target/aarch64/options_set_25.c: New test.
            * gcc.target/aarch64/options_set_26.c: New test.

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

end of thread, other threads:[~2020-04-20 10:48 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-30  7:04 [Bug target/94396] New: [8/9/10 Regression] fp16 feature bits not passed on to assembler from Armv8.4-a and up tnfchris at gcc dot gnu.org
2020-03-30  8:29 ` [Bug target/94396] " rguenth at gcc dot gnu.org
2020-04-01  8:59 ` rguenth at gcc dot gnu.org
2020-04-03 14:20 ` cvs-commit at gcc dot gnu.org
2020-04-18 17:01 ` law at redhat dot com
2020-04-20 10:45 ` cvs-commit at gcc dot gnu.org
2020-04-20 10:48 ` cvs-commit 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).