https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119234
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |INVALID Status|UNCONFIRMED |RESOLVED --- Comment #6 from Richard Biener <rguenth at gcc dot gnu.org> --- OK, so the sources have __attribute__((altivec(vector__))) float *va0, *va1, *va2, *va3, *va4, *va5, *va6, *va7, *v_x; ... va0 = (__attribute__((altivec(vector__))) float*) a0; va1 = (__attribute__((altivec(vector__))) float*) a1; va2 = (__attribute__((altivec(vector__))) float*) a2; va3 = (__attribute__((altivec(vector__))) float*) a3; va4 = (__attribute__((altivec(vector__))) float*) a4; va5 = (__attribute__((altivec(vector__))) float*) a5; va6 = (__attribute__((altivec(vector__))) float*) a6; va7 = (__attribute__((altivec(vector__))) float*) a7; v_x = (__attribute__((altivec(vector__))) float*) x; for (i = 0; i < n/4; i ++) { temp0 += v_x[i] * va0[i]; temp1 += v_x[i] * va1[i]; temp2 += v_x[i] * va2[i]; temp3 += v_x[i] * va3[i]; temp4 += v_x[i] * va4[i]; temp5 += v_x[i] * va5[i]; temp6 += v_x[i] * va6[i]; temp7 += v_x[i] * va7[i]; } so GCC rightfully assumes that va?[i] and v_x[i] are aligned. The standard blas sgem kernels impose no such restrictions on the data arguments, so sgemv_t_POWER8 should, but I don't see any such thing. -> blas bug.