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

--- Comment #16 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Alexander Monakov from comment #15)
> (In reply to Richard Biener from comment #14)
> > I can't
> > seem to reproduce any vectorization for your smaller example though.
> 
> My small C samples omit some detail as they were meant to illustrate what
> happened in the IR. Is that a problem?

Not a Problem - it would have made life easier of course ;)

> By the way, I noticed that tree-ssa-math-opts incorrectly handles
> -ffp-contract:
> 
>   if (FLOAT_TYPE_P (type)
>       && flag_fp_contract_mode == FP_CONTRACT_OFF)
>     return false;
> 
> It should be 'flag_fp_contract_mode != FP_CONTRACT_FAST' instead (the pass
> doesn't have any idea about expression boundaries). It dates back to
> g:1694907238eb

Ah - feel free to fix that (I think such change would be obvious, even better
when accompanied by a comment).  I do think that since the only way to
preserve expression boundaries is by PAREN_EXPR that the middle-end
shouldn't care about FAST vs. ON (well, it cannot), but the language
frontends need to ensure to emit PAREN_EXPRs for =ON and omit them for
=FAST.

Since we don't implement ON the above check should indeed be changed until
that's fixed.

Reply via email to