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

ktkachov at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ktkachov at gcc dot gnu.org
   Last reconfirmed|2024-02-22 00:00:00         |2024-8-28

--- Comment #2 from ktkachov at gcc dot gnu.org ---
I looked into this a bit. A couple things are preventing this currently:
The check_war_ptrs expander in aarch64-sve2.md requires that the accesses
length is exactly the size of an SVE vector.
In the -march=armv9-a case that's a poly-int [16, 16] and is accepted by
aarch64_bytes_per_sve_vector_operand.
For -mcpu=neoverse-v2 this is a const_int 32 and thus rejected.
It is 32 because of the use of Advanced SIMD and 2x unrolling.
If we compile the testcase with --param=aarch64-vect-unroll-limit=1
-msve-vector-bits=128 then the whilewr is generated even with an Advanced SIMD
main loop

Reply via email to