[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