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).