[Bug middle-end/78261] vect pass only vectorizes half of the array in gcc.c-torture/execute/pr68532.c
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Nov 9 09:13:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78261
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution|--- |INVALID
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
Well, the testcase sums in[0] + in[8] + in[16] + ... and is vectorized using
interleaving which means the last vector iteration would load from outside of
the array. So we apply peeling for gaps.
Now the question is why IPA-CP doesn't propagate alignment here (it doesn't
even for -O3):
callsite main/2 -> test/1 :
param 0: CONST: 0
value: 0x0, mask: 0x0
Unknown VR
param 1: CONST: &in
value: 0x0, mask: 0x0fffffffffffffff0
VR ~[0, 0]
param 2: CONST: 1
value: 0x1, mask: 0x0
Unknown VR
Not considering test for cloning; no hot calls.
Marking all lattices of test/1 as BOTTOM
ah. Because it's called from main.
Well, so everything works as intended. You likely see unaligned loads being
performed as well.
More information about the Gcc-bugs
mailing list