[Bug tree-optimization/85232] gcc fails to vectorize a nested simd function call
rguenther at suse dot de
gcc-bugzilla@gcc.gnu.org
Fri Apr 6 10:21:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85232
--- Comment #3 from rguenther at suse dot de <rguenther at suse dot de> ---
On Fri, 6 Apr 2018, jakub at gcc dot gnu.org wrote:
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85232
>
> --- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
> if-conversion is attempted, but fails.
> I can get it to work (as in, use the simd clones) if fun1 is
> __attribute__((const)); and when using -ffast-math.
> const attribute is needed to prove no side-effects.
>
> Now, not really sure why we require all data refs in the loop to be analyzable;
> perhaps if find_data_references_in_loop fails, we should just remember it and
> if-convert only if the blocks have no data references at all (that is the case
> here)?
we don't need data references to be analyzable for if-conversion, all not
analyzable refs can be simply "skipped" AFAIK. So I'd just open-code
find_data_references_in_loop like other passes do and ignore the
non-analyzable refs.
More information about the Gcc-bugs
mailing list