https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127705
--- Comment #3 from David Binderman <dcb314 at hotmail dot com> ---
After 3 hours of cvise, I have:
enum blas_order_type BLAS_zsymv2_z_c_x_n;
int BLAS_zsymv2_z_c_x_prec;
void * BLAS_zsymv2_z_c_x_y;
enum blas_order_type {
blas_prec_extra }BLAS_zsymv2_z_c_x( void)
{
switch (BLAS_zsymv2_z_c_x_prec) {
case blas_prec_extra:
int i;
int yi;
double *y_i = BLAS_zsymv2_z_c_x_y;
double tail_sum1[2], tail_tmp2[1];
double head_sum1_1;
double head_sum1_0;
double head_tmp3[2];
for (; i < BLAS_zsymv2_z_c_x_n; i++) {
double head_t, tail_t;
double head_a, tail_a;
double head_b, tail_b;
tail_a = tail_sum1[0]; double bv;
double s1, s2, t1, t2;
s1 = head_sum1_0 + head_b;
t1 = tail_a + tail_b; s2 += t1;
t1 = s1 + s2; t2 += s2;
head_t = t1 + t2;
tail_t = t2 - (head_t - t1);
head_sum1_0 = head_t;
tail_sum1[0] = tail_t;
head_a = head_sum1_1;
tail_a = tail_sum1[1];
s2 = 0 + (head_sum1_1 - bv);
t1 = tail_a + tail_b;
t2 = 0;
s2 += t1;
t1 = s1 + s2;
t2 += s2;
head_t = t1 + t2;
tail_t = t2 ;
head_sum1_1 = head_t;
tail_sum1[1] = t2;
double tail_t1 ;
bv = t1 - tail_t1;
s2 = y_i[yi ];
{
tail_b = tail_tmp2[0];
double s2;
t1 = s1 ;
head_tmp3[0] = head_t;
s2 += s1;
t1 = s1 + s2;
t2 += s2;
head_t = t1 + s2;
head_tmp3[1] = head_t;
}
y_i[yi] = head_tmp3[0];
y_i = head_tmp3;
}
}
}