AIX changes for Power8

This commit is contained in:
Kavana Bhat
2019-08-20 06:51:35 -05:00
parent 2a43062de7
commit 3dc6b26eff
48 changed files with 9263 additions and 996 deletions

View File

@@ -46,7 +46,7 @@ static void dgemv_kernel_4x4 (long n, double *ap, long lda, double *x, double *y
(
"lxvd2x 34, 0, %10 \n\t" // x0, x1
"lxvd2x 35, %11, %10 \n\t" // x2, x3
"xxspltd 32, %x9, 0 \n\t" // alpha, alpha
XXSPLTD_S(32,%x9,0) // alpha, alpha
"sldi %6, %13, 3 \n\t" // lda * sizeof (double)
@@ -56,10 +56,10 @@ static void dgemv_kernel_4x4 (long n, double *ap, long lda, double *x, double *y
"add %4, %3, %6 \n\t" // a0 = ap, a1 = a0 + lda
"add %6, %6, %6 \n\t" // 2 * lda
"xxspltd 32, 34, 0 \n\t" // x0 * alpha, x0 * alpha
"xxspltd 33, 34, 1 \n\t" // x1 * alpha, x1 * alpha
"xxspltd 34, 35, 0 \n\t" // x2 * alpha, x2 * alpha
"xxspltd 35, 35, 1 \n\t" // x3 * alpha, x3 * alpha
XXSPLTD_S(32,34,0) // x0 * alpha, x0 * alpha
XXSPLTD_S(33,34,1) // x1 * alpha, x1 * alpha
XXSPLTD_S(34,35,0) // x2 * alpha, x2 * alpha
XXSPLTD_S(35,35,1) // x3 * alpha, x3 * alpha
"add %5, %3, %6 \n\t" // a2 = a0 + 2 * lda
"add %6, %4, %6 \n\t" // a3 = a1 + 2 * lda
@@ -89,10 +89,10 @@ static void dgemv_kernel_4x4 (long n, double *ap, long lda, double *x, double *y
"addi %6, %6, 32 \n\t"
"addic. %1, %1, -4 \n\t"
"ble 2f \n\t"
"ble two%= \n\t"
".p2align 5 \n"
"1: \n\t"
".align 5 \n"
"one%=: \n\t"
"lxvd2x 36, 0, %2 \n\t" // y0, y1
"lxvd2x 37, %11, %2 \n\t" // y2, y3
@@ -131,7 +131,7 @@ static void dgemv_kernel_4x4 (long n, double *ap, long lda, double *x, double *y
"addi %2, %2, 32 \n\t"
"addic. %1, %1, -4 \n\t"
"ble 2f \n\t"
"ble two%= \n\t"
"lxvd2x 36, 0, %2 \n\t" // y0, y1
@@ -171,7 +171,7 @@ static void dgemv_kernel_4x4 (long n, double *ap, long lda, double *x, double *y
"addi %2, %2, 32 \n\t"
"addic. %1, %1, -4 \n\t"
"ble 2f \n\t"
"ble two%= \n\t"
"lxvd2x 36, 0, %2 \n\t" // y0, y1
@@ -211,7 +211,7 @@ static void dgemv_kernel_4x4 (long n, double *ap, long lda, double *x, double *y
"addi %2, %2, 32 \n\t"
"addic. %1, %1, -4 \n\t"
"ble 2f \n\t"
"ble two%= \n\t"
"lxvd2x 36, 0, %2 \n\t" // y0, y1
@@ -251,9 +251,9 @@ static void dgemv_kernel_4x4 (long n, double *ap, long lda, double *x, double *y
"addi %2, %2, 32 \n\t"
"addic. %1, %1, -4 \n\t"
"bgt 1b \n"
"bgt one%= \n"
"2: \n\t"
"two%=: \n\t"
"lxvd2x 36, 0, %2 \n\t" // y0, y1
"lxvd2x 37, %11, %2 \n\t" // y2, y3