Updated data prefetch in TRSM, ASUM, DOT functions
Signed-off-by: kaustubh <kaustubh.raste@imgtec.com>
This commit is contained in:
parent
9db451acd0
commit
5f93aa5f87
|
@ -115,25 +115,25 @@ OPENBLAS_COMPLEX_FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLA
|
|||
dot0 += (vx0r * vy0r);
|
||||
vx5 = LD_SP(x); x += 4;
|
||||
vx1i = (v4f32) __msa_pckod_w((v4i32) vx3, (v4i32) vx2);
|
||||
dot1 += (vx0i * vy0r);
|
||||
dot1 OP2 (vx0i * vy0r);
|
||||
vy4 = LD_SP(y); y += 4;
|
||||
vy1r = (v4f32) __msa_pckev_w((v4i32) vy3, (v4i32) vy2);
|
||||
dot2 += (vx1r * vy1r);
|
||||
vy5 = LD_SP(y); y += 4;
|
||||
vy1i = (v4f32) __msa_pckod_w((v4i32) vy3, (v4i32) vy2);
|
||||
dot3 += (vx1i * vy1r);
|
||||
dot3 OP2 (vx1i * vy1r);
|
||||
vx6 = LD_SP(x); x += 4;
|
||||
vx7 = LD_SP(x); x += 4;
|
||||
vy6 = LD_SP(y); y += 4;
|
||||
vy7 = LD_SP(y); y += 4;
|
||||
vx8 = LD_SP(x); x += 4;
|
||||
dot0 -= (vx0i * vy0i);
|
||||
dot0 OP1 (vx0i * vy0i);
|
||||
vx9 = LD_SP(x); x += 4;
|
||||
vx2r = (v4f32) __msa_pckev_w((v4i32) vx5, (v4i32) vx4);
|
||||
dot1 += (vx0r * vy0i);
|
||||
vy8 = LD_SP(y); y += 4;
|
||||
vx2i = (v4f32) __msa_pckod_w((v4i32) vx5, (v4i32) vx4);
|
||||
dot2 -= (vx1i * vy1i);
|
||||
dot2 OP1 (vx1i * vy1i);
|
||||
vy9 = LD_SP(y); y += 4;
|
||||
vy2r = (v4f32) __msa_pckev_w((v4i32) vy5, (v4i32) vy4);
|
||||
dot3 += (vx1r * vy1i);
|
||||
|
@ -144,23 +144,23 @@ OPENBLAS_COMPLEX_FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLA
|
|||
dot4 += (vx2r * vy2r);
|
||||
vy10 = LD_SP(y); y += 4;
|
||||
vx3i = (v4f32) __msa_pckod_w((v4i32) vx7, (v4i32) vx6);
|
||||
dot5 += (vx2i * vy2r);
|
||||
dot5 OP2 (vx2i * vy2r);
|
||||
vy11 = LD_SP(y); y += 4;
|
||||
vy3r = (v4f32) __msa_pckev_w((v4i32) vy7, (v4i32) vy6);
|
||||
vy3i = (v4f32) __msa_pckod_w((v4i32) vy7, (v4i32) vy6);
|
||||
dot6 += (vx3r * vy3r);
|
||||
vx0r = (v4f32) __msa_pckev_w((v4i32) vx9, (v4i32) vx8);
|
||||
dot7 += (vx3i * vy3r);
|
||||
dot7 OP2 (vx3i * vy3r);
|
||||
vx0i = (v4f32) __msa_pckod_w((v4i32) vx9, (v4i32) vx8);
|
||||
vy0r = (v4f32) __msa_pckev_w((v4i32) vy9, (v4i32) vy8);
|
||||
vx2 = vx10;
|
||||
vy0i = (v4f32) __msa_pckod_w((v4i32) vy9, (v4i32) vy8);
|
||||
vx3 = vx11;
|
||||
dot4 -= (vx2i * vy2i);
|
||||
dot4 OP1 (vx2i * vy2i);
|
||||
vy2 = vy10;
|
||||
dot5 += (vx2r * vy2i);
|
||||
vy3 = vy11;
|
||||
dot6 -= (vx3i * vy3i);
|
||||
dot6 OP1 (vx3i * vy3i);
|
||||
dot7 += (vx3r * vy3i);
|
||||
}
|
||||
|
||||
|
@ -169,36 +169,36 @@ OPENBLAS_COMPLEX_FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLA
|
|||
dot0 += (vx0r * vy0r);
|
||||
vx5 = LD_SP(x); x += 4;
|
||||
vx1i = (v4f32) __msa_pckod_w((v4i32) vx3, (v4i32) vx2);
|
||||
dot1 += (vx0i * vy0r);
|
||||
dot1 OP2 (vx0i * vy0r);
|
||||
vy4 = LD_SP(y); y += 4;
|
||||
vy1r = (v4f32) __msa_pckev_w((v4i32) vy3, (v4i32) vy2);
|
||||
dot2 += (vx1r * vy1r);
|
||||
vy5 = LD_SP(y); y += 4;
|
||||
vy1i = (v4f32) __msa_pckod_w((v4i32) vy3, (v4i32) vy2);
|
||||
dot3 += (vx1i * vy1r);
|
||||
dot3 OP2 (vx1i * vy1r);
|
||||
vx6 = LD_SP(x); x += 4;
|
||||
vx7 = LD_SP(x); x += 4;
|
||||
vy6 = LD_SP(y); y += 4;
|
||||
vy7 = LD_SP(y); y += 4;
|
||||
dot0 -= (vx0i * vy0i);
|
||||
dot0 OP1 (vx0i * vy0i);
|
||||
vx2r = (v4f32) __msa_pckev_w((v4i32) vx5, (v4i32) vx4);
|
||||
dot1 += (vx0r * vy0i);
|
||||
vx2i = (v4f32) __msa_pckod_w((v4i32) vx5, (v4i32) vx4);
|
||||
dot2 -= (vx1i * vy1i);
|
||||
dot2 OP1 (vx1i * vy1i);
|
||||
vy2r = (v4f32) __msa_pckev_w((v4i32) vy5, (v4i32) vy4);
|
||||
dot3 += (vx1r * vy1i);
|
||||
vy2i = (v4f32) __msa_pckod_w((v4i32) vy5, (v4i32) vy4);
|
||||
vx3r = (v4f32) __msa_pckev_w((v4i32) vx7, (v4i32) vx6);
|
||||
dot4 += (vx2r * vy2r);
|
||||
vx3i = (v4f32) __msa_pckod_w((v4i32) vx7, (v4i32) vx6);
|
||||
dot5 += (vx2i * vy2r);
|
||||
dot5 OP2 (vx2i * vy2r);
|
||||
vy3r = (v4f32) __msa_pckev_w((v4i32) vy7, (v4i32) vy6);
|
||||
vy3i = (v4f32) __msa_pckod_w((v4i32) vy7, (v4i32) vy6);
|
||||
dot6 += (vx3r * vy3r);
|
||||
dot7 += (vx3i * vy3r);
|
||||
dot4 -= (vx2i * vy2i);
|
||||
dot7 OP2 (vx3i * vy3r);
|
||||
dot4 OP1 (vx2i * vy2i);
|
||||
dot5 += (vx2r * vy2i);
|
||||
dot6 -= (vx3i * vy3i);
|
||||
dot6 OP1 (vx3i * vy3i);
|
||||
dot7 += (vx3r * vy3i);
|
||||
}
|
||||
|
||||
|
|
|
@ -118,25 +118,25 @@ OPENBLAS_COMPLEX_FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLA
|
|||
dot0 += (vx0r * vy0r);
|
||||
vx5 = LD_DP(x); x += 2;
|
||||
vx1i = (v2f64) __msa_pckod_d((v2i64) vx3, (v2i64) vx2);
|
||||
dot1 += (vx0i * vy0r);
|
||||
dot1 OP2 (vx0i * vy0r);
|
||||
vy4 = LD_DP(y); y += 2;
|
||||
vy1r = (v2f64) __msa_pckev_d((v2i64) vy3, (v2i64) vy2);
|
||||
dot2 += (vx1r * vy1r);
|
||||
vy5 = LD_DP(y); y += 2;
|
||||
vy1i = (v2f64) __msa_pckod_d((v2i64) vy3, (v2i64) vy2);
|
||||
dot3 += (vx1i * vy1r);
|
||||
dot3 OP2 (vx1i * vy1r);
|
||||
vx6 = LD_DP(x); x += 2;
|
||||
vx7 = LD_DP(x); x += 2;
|
||||
vy6 = LD_DP(y); y += 2;
|
||||
vy7 = LD_DP(y); y += 2;
|
||||
vx8 = LD_DP(x); x += 2;
|
||||
dot0 -= (vx0i * vy0i);
|
||||
dot0 OP1 (vx0i * vy0i);
|
||||
vx9 = LD_DP(x); x += 2;
|
||||
vx2r = (v2f64) __msa_pckev_d((v2i64) vx5, (v2i64) vx4);
|
||||
dot1 += (vx0r * vy0i);
|
||||
vy8 = LD_DP(y); y += 2;
|
||||
vx2i = (v2f64) __msa_pckod_d((v2i64) vx5, (v2i64) vx4);
|
||||
dot2 -= (vx1i * vy1i);
|
||||
dot2 OP1 (vx1i * vy1i);
|
||||
vy9 = LD_DP(y); y += 2;
|
||||
vy2r = (v2f64) __msa_pckev_d((v2i64) vy5, (v2i64) vy4);
|
||||
dot3 += (vx1r * vy1i);
|
||||
|
@ -147,23 +147,23 @@ OPENBLAS_COMPLEX_FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLA
|
|||
dot4 += (vx2r * vy2r);
|
||||
vy10 = LD_DP(y); y += 2;
|
||||
vx3i = (v2f64) __msa_pckod_d((v2i64) vx7, (v2i64) vx6);
|
||||
dot5 += (vx2i * vy2r);
|
||||
dot5 OP2 (vx2i * vy2r);
|
||||
vy11 = LD_DP(y); y += 2;
|
||||
vy3r = (v2f64) __msa_pckev_d((v2i64) vy7, (v2i64) vy6);
|
||||
vy3i = (v2f64) __msa_pckod_d((v2i64) vy7, (v2i64) vy6);
|
||||
dot6 += (vx3r * vy3r);
|
||||
vx0r = (v2f64) __msa_pckev_d((v2i64) vx9, (v2i64) vx8);
|
||||
dot7 += (vx3i * vy3r);
|
||||
dot7 OP2 (vx3i * vy3r);
|
||||
vx0i = (v2f64) __msa_pckod_d((v2i64) vx9, (v2i64) vx8);
|
||||
vy0r = (v2f64) __msa_pckev_d((v2i64) vy9, (v2i64) vy8);
|
||||
vx2 = vx10;
|
||||
vy0i = (v2f64) __msa_pckod_d((v2i64) vy9, (v2i64) vy8);
|
||||
vx3 = vx11;
|
||||
dot4 -= (vx2i * vy2i);
|
||||
dot4 OP1 (vx2i * vy2i);
|
||||
vy2 = vy10;
|
||||
dot5 += (vx2r * vy2i);
|
||||
vy3 = vy11;
|
||||
dot6 -= (vx3i * vy3i);
|
||||
dot6 OP1 (vx3i * vy3i);
|
||||
dot7 += (vx3r * vy3i);
|
||||
}
|
||||
|
||||
|
@ -172,36 +172,36 @@ OPENBLAS_COMPLEX_FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLA
|
|||
dot0 += (vx0r * vy0r);
|
||||
vx5 = LD_DP(x); x += 2;
|
||||
vx1i = (v2f64) __msa_pckod_d((v2i64) vx3, (v2i64) vx2);
|
||||
dot1 += (vx0i * vy0r);
|
||||
dot1 OP2 (vx0i * vy0r);
|
||||
vy4 = LD_DP(y); y += 2;
|
||||
vy1r = (v2f64) __msa_pckev_d((v2i64) vy3, (v2i64) vy2);
|
||||
dot2 += (vx1r * vy1r);
|
||||
vy5 = LD_DP(y); y += 2;
|
||||
vy1i = (v2f64) __msa_pckod_d((v2i64) vy3, (v2i64) vy2);
|
||||
dot3 += (vx1i * vy1r);
|
||||
dot3 OP2 (vx1i * vy1r);
|
||||
vx6 = LD_DP(x); x += 2;
|
||||
vx7 = LD_DP(x); x += 2;
|
||||
vy6 = LD_DP(y); y += 2;
|
||||
vy7 = LD_DP(y); y += 2;
|
||||
dot0 -= (vx0i * vy0i);
|
||||
dot0 OP1 (vx0i * vy0i);
|
||||
vx2r = (v2f64) __msa_pckev_d((v2i64) vx5, (v2i64) vx4);
|
||||
dot1 += (vx0r * vy0i);
|
||||
vx2i = (v2f64) __msa_pckod_d((v2i64) vx5, (v2i64) vx4);
|
||||
dot2 -= (vx1i * vy1i);
|
||||
dot2 OP1 (vx1i * vy1i);
|
||||
vy2r = (v2f64) __msa_pckev_d((v2i64) vy5, (v2i64) vy4);
|
||||
dot3 += (vx1r * vy1i);
|
||||
vy2i = (v2f64) __msa_pckod_d((v2i64) vy5, (v2i64) vy4);
|
||||
vx3r = (v2f64) __msa_pckev_d((v2i64) vx7, (v2i64) vx6);
|
||||
dot4 += (vx2r * vy2r);
|
||||
vx3i = (v2f64) __msa_pckod_d((v2i64) vx7, (v2i64) vx6);
|
||||
dot5 += (vx2i * vy2r);
|
||||
dot5 OP2 (vx2i * vy2r);
|
||||
vy3r = (v2f64) __msa_pckev_d((v2i64) vy7, (v2i64) vy6);
|
||||
vy3i = (v2f64) __msa_pckod_d((v2i64) vy7, (v2i64) vy6);
|
||||
dot6 += (vx3r * vy3r);
|
||||
dot7 += (vx3i * vy3r);
|
||||
dot4 -= (vx2i * vy2i);
|
||||
dot7 OP2 (vx3i * vy3r);
|
||||
dot4 OP1 (vx2i * vy2i);
|
||||
dot5 += (vx2r * vy2i);
|
||||
dot6 -= (vx3i * vy3i);
|
||||
dot6 OP1 (vx3i * vy3i);
|
||||
dot7 += (vx3r * vy3i);
|
||||
}
|
||||
}
|
||||
|
@ -220,25 +220,25 @@ OPENBLAS_COMPLEX_FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLA
|
|||
dot0 += (vx0r * vy0r);
|
||||
vx5 = LD_DP(x); x += inc_x2;
|
||||
vx1i = (v2f64) __msa_pckod_d((v2i64) vx3, (v2i64) vx2);
|
||||
dot1 += (vx0i * vy0r);
|
||||
dot1 OP2 (vx0i * vy0r);
|
||||
vy4 = LD_DP(y); y += inc_y2;
|
||||
vy1r = (v2f64) __msa_pckev_d((v2i64) vy3, (v2i64) vy2);
|
||||
dot2 += (vx1r * vy1r);
|
||||
vy5 = LD_DP(y); y += inc_y2;
|
||||
vy1i = (v2f64) __msa_pckod_d((v2i64) vy3, (v2i64) vy2);
|
||||
dot3 += (vx1i * vy1r);
|
||||
dot3 OP2 (vx1i * vy1r);
|
||||
vx6 = LD_DP(x); x += inc_x2;
|
||||
vx7 = LD_DP(x); x += inc_x2;
|
||||
vy6 = LD_DP(y); y += inc_y2;
|
||||
vy7 = LD_DP(y); y += inc_y2;
|
||||
vx8 = LD_DP(x); x += inc_x2;
|
||||
dot0 -= (vx0i * vy0i);
|
||||
dot0 OP1 (vx0i * vy0i);
|
||||
vx9 = LD_DP(x); x += inc_x2;
|
||||
vx2r = (v2f64) __msa_pckev_d((v2i64) vx5, (v2i64) vx4);
|
||||
dot1 += (vx0r * vy0i);
|
||||
vy8 = LD_DP(y); y += inc_y2;
|
||||
vx2i = (v2f64) __msa_pckod_d((v2i64) vx5, (v2i64) vx4);
|
||||
dot2 -= (vx1i * vy1i);
|
||||
dot2 OP1 (vx1i * vy1i);
|
||||
vy9 = LD_DP(y); y += inc_y2;
|
||||
vy2r = (v2f64) __msa_pckev_d((v2i64) vy5, (v2i64) vy4);
|
||||
dot3 += (vx1r * vy1i);
|
||||
|
@ -249,23 +249,23 @@ OPENBLAS_COMPLEX_FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLA
|
|||
dot4 += (vx2r * vy2r);
|
||||
vy10 = LD_DP(y); y += inc_y2;
|
||||
vx3i = (v2f64) __msa_pckod_d((v2i64) vx7, (v2i64) vx6);
|
||||
dot5 += (vx2i * vy2r);
|
||||
dot5 OP2 (vx2i * vy2r);
|
||||
vy11 = LD_DP(y); y += inc_y2;
|
||||
vy3r = (v2f64) __msa_pckev_d((v2i64) vy7, (v2i64) vy6);
|
||||
vy3i = (v2f64) __msa_pckod_d((v2i64) vy7, (v2i64) vy6);
|
||||
dot6 += (vx3r * vy3r);
|
||||
vx0r = (v2f64) __msa_pckev_d((v2i64) vx9, (v2i64) vx8);
|
||||
dot7 += (vx3i * vy3r);
|
||||
dot7 OP2 (vx3i * vy3r);
|
||||
vx0i = (v2f64) __msa_pckod_d((v2i64) vx9, (v2i64) vx8);
|
||||
vy0r = (v2f64) __msa_pckev_d((v2i64) vy9, (v2i64) vy8);
|
||||
vx2 = vx10;
|
||||
vy0i = (v2f64) __msa_pckod_d((v2i64) vy9, (v2i64) vy8);
|
||||
vx3 = vx11;
|
||||
dot4 -= (vx2i * vy2i);
|
||||
dot4 OP1 (vx2i * vy2i);
|
||||
vy2 = vy10;
|
||||
dot5 += (vx2r * vy2i);
|
||||
vy3 = vy11;
|
||||
dot6 -= (vx3i * vy3i);
|
||||
dot6 OP1 (vx3i * vy3i);
|
||||
dot7 += (vx3r * vy3i);
|
||||
}
|
||||
|
||||
|
@ -274,36 +274,36 @@ OPENBLAS_COMPLEX_FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLA
|
|||
dot0 += (vx0r * vy0r);
|
||||
vx5 = LD_DP(x); x += inc_x2;
|
||||
vx1i = (v2f64) __msa_pckod_d((v2i64) vx3, (v2i64) vx2);
|
||||
dot1 += (vx0i * vy0r);
|
||||
dot1 OP2 (vx0i * vy0r);
|
||||
vy4 = LD_DP(y); y += inc_y2;
|
||||
vy1r = (v2f64) __msa_pckev_d((v2i64) vy3, (v2i64) vy2);
|
||||
dot2 += (vx1r * vy1r);
|
||||
vy5 = LD_DP(y); y += inc_y2;
|
||||
vy1i = (v2f64) __msa_pckod_d((v2i64) vy3, (v2i64) vy2);
|
||||
dot3 += (vx1i * vy1r);
|
||||
dot3 OP2 (vx1i * vy1r);
|
||||
vx6 = LD_DP(x); x += inc_x2;
|
||||
vx7 = LD_DP(x); x += inc_x2;
|
||||
vy6 = LD_DP(y); y += inc_y2;
|
||||
vy7 = LD_DP(y); y += inc_y2;
|
||||
dot0 -= (vx0i * vy0i);
|
||||
dot0 OP1 (vx0i * vy0i);
|
||||
vx2r = (v2f64) __msa_pckev_d((v2i64) vx5, (v2i64) vx4);
|
||||
dot1 += (vx0r * vy0i);
|
||||
vx2i = (v2f64) __msa_pckod_d((v2i64) vx5, (v2i64) vx4);
|
||||
dot2 -= (vx1i * vy1i);
|
||||
dot2 OP1 (vx1i * vy1i);
|
||||
vy2r = (v2f64) __msa_pckev_d((v2i64) vy5, (v2i64) vy4);
|
||||
dot3 += (vx1r * vy1i);
|
||||
vy2i = (v2f64) __msa_pckod_d((v2i64) vy5, (v2i64) vy4);
|
||||
vx3r = (v2f64) __msa_pckev_d((v2i64) vx7, (v2i64) vx6);
|
||||
dot4 += (vx2r * vy2r);
|
||||
vx3i = (v2f64) __msa_pckod_d((v2i64) vx7, (v2i64) vx6);
|
||||
dot5 += (vx2i * vy2r);
|
||||
dot5 OP2 (vx2i * vy2r);
|
||||
vy3r = (v2f64) __msa_pckev_d((v2i64) vy7, (v2i64) vy6);
|
||||
vy3i = (v2f64) __msa_pckod_d((v2i64) vy7, (v2i64) vy6);
|
||||
dot6 += (vx3r * vy3r);
|
||||
dot7 += (vx3i * vy3r);
|
||||
dot4 -= (vx2i * vy2i);
|
||||
dot7 OP2 (vx3i * vy3r);
|
||||
dot4 OP1 (vx2i * vy2i);
|
||||
dot5 += (vx2r * vy2i);
|
||||
dot6 -= (vx3i * vy3i);
|
||||
dot6 OP1 (vx3i * vy3i);
|
||||
dot7 += (vx3r * vy3i);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue