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.

Reply via email to