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

--- Comment #16 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(In reply to Richard Earnshaw from comment #15)
> It seems perverse to me that you have a standard named pattern in the x86
> backend that is enabled, but then you somehow expect the generic parts of
> the compiler to know that it shouldn't be used.

They should be used, but only if the user code asks for it explicitly.
So, say a 32-byte generic vector in user code, or the <x86intrin.h> intrinsics
that need 32-byte vectors are just fine.
The option just asks that the compiler tries hard not to introduce those on its
own (e.g. vectorization but this string ops expansion is similar to that).

With those selected ISAs, such instructions are available, but on some CPUs use
of those is not really performance beneficial and using smaller vectors might
get better results.

Reply via email to