[Bug target/92534] [10 regression] gcc.dg/vect/bb-slp-42.c fails after r278262
linkw at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Nov 20 10:18:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92534
Kewen Lin <linkw at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
--- Comment #4 from Kewen Lin <linkw at gcc dot gnu.org> ---
This is related to the realign vector load. It only fail with
-mno-allow-movmisalign (which is disabled from Power8), I can't see the abort
if I specified the option explicitly on Power8.
The generated IR below is incorrect:
vectp.43_73 = &MEM[(int *)b_17(D) + 4B];
vect__160.44_21 = __builtin_altivec_mask_for_load (vectp.43_73);
==> Here we use the vectp.43_73 (b+4), this is unexpected.
vectp.46_20 = &MEM[(int *)b_17(D) + 4B];
vectp.46_19 = vectp.46_20 + 18446744073709551612;
==> Here we use the vectp.46_19 (b)
vectp.46_18 = vectp.46_19 & -16B;
vect__160.47_206 = MEM <vector(4) int> [(int *)vectp.46_18];
vectp.46_207 = vectp.46_19 + 15;
==> Here we use the vectp.46_19 (b) + 15
vectp.46_208 = vectp.46_207 & -16B;
vect__160.48_209 = MEM <vector(4) int> [(int *)vectp.46_208];
vect__160.49_210 = REALIGN_LOAD <vect__160.47_206, vect__160.48_209,
vect__160.44_21>;
vect__144.50_211 = VEC_PERM_EXPR <vect__160.49_210, vect__160.49_210, { 1, 1,
1, 1 }>;
If I adjusted it as the below code, it can pass.
msq = vect_setup_realignment (first_stmt_info_for_drptr && !slp_perm
? first_stmt_info_for_drptr
: first_stmt_info, gsi, &realignment_token,
alignment_support_scheme, NULL_TREE,
&at_loop);
Need more time to figure out it's reasonable.
More information about the Gcc-bugs
mailing list