[Bug target/115342] [14/15 Regression] AArch64: Function multiversioning initialization incorrect

2024-06-21 Thread wilco at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115342

Wilco  changed:

   What|Removed |Added

 Resolution|--- |FIXED
 Status|ASSIGNED|RESOLVED

--- Comment #5 from Wilco  ---
Fixed on trunk and gcc-14 branch.

[Bug target/115342] [14/15 Regression] AArch64: Function multiversioning initialization incorrect

2024-06-21 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115342

--- Comment #4 from GCC Commits  ---
The releases/gcc-14 branch has been updated by Wilco Dijkstra
:

https://gcc.gnu.org/g:9421f02916676d27e24fcda918f85e359329ac69

commit r14-10338-g9421f02916676d27e24fcda918f85e359329ac69
Author: Wilco Dijkstra 
Date:   Wed Jun 5 14:04:33 2024 +0100

AArch64: Fix cpu features initialization [PR115342]

The CPU features initialization code uses CPUID registers (rather than
HWCAP).  The equality comparisons it uses are incorrect: for example
FEAT_SVE
is not set if SVE2 is available.  Using HWCAPs for these is both simpler
and
correct.  The initialization must also be done atomically to avoid multiple
threads causing corruption due to non-atomic RMW accesses to the global.

libgcc:
PR target/115342
* config/aarch64/cpuinfo.c (__init_cpu_features_constructor):
Use HWCAP where possible.  Use atomic write for initialization.
Fix FEAT_PREDRES comparison.
(__init_cpu_features_resolver): Use atomic load for correct
initialization.
(__init_cpu_features): Likewise.
(cherry picked from commit d7cbcfe7c33645eaf95f175f19884d443817857b)

[Bug target/115342] [14/15 Regression] AArch64: Function multiversioning initialization incorrect

2024-06-20 Thread wilco at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115342

Wilco  changed:

   What|Removed |Added

 Status|NEW |ASSIGNED

--- Comment #3 from Wilco  ---
(In reply to Ramana Radhakrishnan from comment #2)
> Confirmed ?

And fixed on trunk. Will do the backport later.

[Bug target/115342] [14/15 Regression] AArch64: Function multiversioning initialization incorrect

2024-06-19 Thread ramana at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115342

Ramana Radhakrishnan  changed:

   What|Removed |Added

 CC||ramana at gcc dot gnu.org
 Ever confirmed|0   |1
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2024-06-20

--- Comment #2 from Ramana Radhakrishnan  ---
Confirmed ?

[Bug target/115342] [14/15 Regression] AArch64: Function multiversioning initialization incorrect

2024-06-05 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115342

--- Comment #1 from GCC Commits  ---
The master branch has been updated by Wilco Dijkstra :

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

commit r15-1036-gd7cbcfe7c33645eaf95f175f19884d443817857b
Author: Wilco Dijkstra 
Date:   Wed Jun 5 14:04:33 2024 +0100

AArch64: Fix cpu features initialization [PR115342]

The CPU features initialization code uses CPUID registers (rather than
HWCAP).  The equality comparisons it uses are incorrect: for example
FEAT_SVE
is not set if SVE2 is available.  Using HWCAPs for these is both simpler
and
correct.  The initialization must also be done atomically to avoid multiple
threads causing corruption due to non-atomic RMW accesses to the global.

libgcc:
PR target/115342
* config/aarch64/cpuinfo.c (__init_cpu_features_constructor):
Use HWCAP where possible.  Use atomic write for initialization.
Fix FEAT_PREDRES comparison.
(__init_cpu_features_resolver): Use atomic load for correct
initialization.
(__init_cpu_features): Likewise.

[Bug target/115342] [14/15 Regression] AArch64: Function multiversioning initialization incorrect

2024-06-04 Thread rguenth at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115342

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|--- |14.2