gnu /
gcc /
185a8bae0f2ce46c65ec6a541c2fe7299df6d7f4 tree-optimization/121049 - avoid loop masking with even/odd reduction
The following disables loop masking when we are using an even/odd
widening operation in a reduction because the loop mask then aligns
to the wrong elements.
PR tree-optimization/121049
* internal-fn.h (widening_evenodd_fn_p): Declare.
* internal-fn.cc (widening_evenodd_fn_p): New function.
* tree-vect-stmts.cc (vectorizable_conversion): When using
an even/odd widening function disable loop masking.
* gcc.dg/vect/pr121049.c: New testcase.
(cherry picked from commit bc5570f7ef796fa7f5ab89b34ed9de2be5299f0e)
4 files changed