diff --git a/kernel/power/casum_microk_power8.c b/kernel/power/casum_microk_power8.c index 91d53ffc37..78b382bb52 100644 --- a/kernel/power/casum_microk_power8.c +++ b/kernel/power/casum_microk_power8.c @@ -159,7 +159,7 @@ static float casum_kernel_16 (long n, float *x) "=wa" (t2), // 5 "=wa" (t3) // 6 : - "m" (*x), + "m" (*(const float (*)[n * 2]) x), "b" (16), // 8 "b" (32), // 9 "b" (48), // 10 diff --git a/kernel/power/caxpy_microk_power10.c b/kernel/power/caxpy_microk_power10.c index 902eba82c3..a0d4a46540 100644 --- a/kernel/power/caxpy_microk_power10.c +++ b/kernel/power/caxpy_microk_power10.c @@ -199,14 +199,14 @@ static void caxpy_kernel_8 (long n, float *x, float *y, "#n=%1 x=%5=%2 y=%0=%3 alpha=(%7,%8) mvecp=%6=%9 ytmp=%4\n" : - "+m" (*y), + "+m" (*(float (*)[n * 2]) y), "+r" (n), // 1 "+b" (x), // 2 "+b" (y), // 3 "=b" (ytmp) // 4 : - "m" (*x), - "m" (*mvecp), + "m" (*(const float (*)[n * 2]) x), + "m" (*(const float (*)[2]) mvecp), "d" (alpha_r), // 7 "d" (alpha_i), // 8 "4" (mvecp), // 9 diff --git a/kernel/power/ccopy_microk_power8.c b/kernel/power/ccopy_microk_power8.c index 6a7886e6f3..a2c7ee5533 100644 --- a/kernel/power/ccopy_microk_power8.c +++ b/kernel/power/ccopy_microk_power8.c @@ -134,12 +134,12 @@ static void ccopy_kernel_32 (long n, float *x, float *y) "#n=%1 x=%4=%2 y=%0=%3 o16=%5 o32=%6 o48=%7 o64=%8 o80=%9 o96=%10 o112=%11" : - "=m" (*y), + "=m" (*(float (*)[n * 2]) y), "+r" (n), // 1 "+b" (x), // 2 "+b" (y) // 3 : - "m" (*x), + "m" (*(const float (*)[n * 2]) x), "b" (16), // 5 "b" (32), // 6 "b" (48), // 7 diff --git a/kernel/power/cdot_microk_power10.c b/kernel/power/cdot_microk_power10.c index 9d42559c9a..6031bc5d0f 100644 --- a/kernel/power/cdot_microk_power10.c +++ b/kernel/power/cdot_microk_power10.c @@ -166,13 +166,13 @@ static void cdot_kernel_8 (long n, float *x, float *y, float *dot) "#n=%1 x=%4=%2 y=%5=%3 dot=%0=%6" : - "=m" (*dot), + "=m" (*(float (*)[4]) dot), "+r" (n), // 1 "+b" (x), // 2 "+b" (y) // 3 : - "m" (*x), - "m" (*y), + "m" (*(float (*)[n * 2]) x), + "m" (*(float (*)[n * 2]) y), "b" (dot), // 6 "wa" (mask) : diff --git a/kernel/power/copy_microk_power10.c b/kernel/power/copy_microk_power10.c index 8c1c3b0739..c486ab0203 100644 --- a/kernel/power/copy_microk_power10.c +++ b/kernel/power/copy_microk_power10.c @@ -241,12 +241,12 @@ static void copy_kernel (BLASLONG n, FLOAT *x, FLOAT *y) "#n=%1 x=%4=%2 y=%0=%3" : - "=m" (*y), + "=m" (*(FLOAT (*)[n]) y), "+r" (n), // 1 "+b" (x), // 2 "+b" (y) // 3 : - "m" (*x) + "m" (*(FLOAT (*)[n]) x) : "cr0", "vs32","vs33","vs34","vs35","vs36","vs37","vs38","vs39", diff --git a/kernel/power/cscal_microk_power10.c b/kernel/power/cscal_microk_power10.c index 1f4ea288c5..3c0b8ac1c8 100644 --- a/kernel/power/cscal_microk_power10.c +++ b/kernel/power/cscal_microk_power10.c @@ -204,7 +204,7 @@ static void zscal_kernel_8 (long n, float *x, float alpha_r, float alpha_i) "#n=%1 x=%0=%2 alpha=(%3,%4)\n" : - "+m" (*x), + "+m" (*(float (*)[n * 2]) x), "+r" (n), // 1 "+b" (x) // 2 : diff --git a/kernel/power/cswap_microk_power10.c b/kernel/power/cswap_microk_power10.c index f71b6f98c4..00e8d7a555 100644 --- a/kernel/power/cswap_microk_power10.c +++ b/kernel/power/cswap_microk_power10.c @@ -155,8 +155,8 @@ static void cswap_kernel_32 (long n, float *x, float *y) "#n=%2 x=%0=%3 y=%1=%4" : - "+m" (*x), - "+m" (*y), + "+m" (*(FLOAT (*)[n * 2]) x), + "+m" (*(FLOAT (*)[n * 2]) y), "+r" (n), // 2 "+b" (x), // 3 "+b" (y) // 4 diff --git a/kernel/power/cswap_microk_power8.c b/kernel/power/cswap_microk_power8.c index 829800230b..c01e29552f 100644 --- a/kernel/power/cswap_microk_power8.c +++ b/kernel/power/cswap_microk_power8.c @@ -135,8 +135,8 @@ static void cswap_kernel_32 (long n, float *x, float *y) "#n=%2 x=%0=%3 y=%1=%4 o16=%5 o32=%6 o48=%7 o64=%8 o80=%9 o96=%10 o112=%11" : - "+m" (*x), - "+m" (*y), + "+m" (*(float (*)[n * 2]) x), + "+m" (*(float (*)[n * 2]) y), "+r" (n), // 2 "+b" (x), // 3 "+b" (y) // 4 diff --git a/kernel/power/dasum_microk_power10.c b/kernel/power/dasum_microk_power10.c index 110627fa4e..7a79c55ab8 100644 --- a/kernel/power/dasum_microk_power10.c +++ b/kernel/power/dasum_microk_power10.c @@ -225,7 +225,7 @@ static double dasum_kernel_16 (long n, double *x) "=wa" (a6), // 17 "=wa" (a7) // 18 : - "m" (*x) + "m" (*(const double (*)[n]) x) : "cr0", "vs32","vs33","vs34","vs35","vs36","vs37","vs38","vs39", diff --git a/kernel/power/dasum_microk_power8.c b/kernel/power/dasum_microk_power8.c index 4652fc57c9..d86f6699d3 100644 --- a/kernel/power/dasum_microk_power8.c +++ b/kernel/power/dasum_microk_power8.c @@ -154,7 +154,7 @@ static double dasum_kernel_16 (long n, double *x) "=wa" (t2), // 5 "=wa" (t3) // 6 : - "m" (*x), + "m" (*(const double (*)[n]) x), "b" (16), // 8 "b" (32), // 9 "b" (48), // 10 diff --git a/kernel/power/daxpy_microk_power10.c b/kernel/power/daxpy_microk_power10.c index f92ea5dda5..c857b0b9dc 100644 --- a/kernel/power/daxpy_microk_power10.c +++ b/kernel/power/daxpy_microk_power10.c @@ -150,13 +150,13 @@ static void daxpy_kernel_8 (long n, double *x, double *y, double alpha) "#n=%1 x=%5=%2 y=%0=%3 alpha=%6 t0=%x4\n" : - "+m" (*y), + "+m" (*(double (*)[n]) y), "+r" (n), // 1 "+b" (x), // 2 "+b" (y), // 3 "=wa" (t0) // 4 : - "m" (*x), + "m" (*(const double (*)[n]) x), "d" (alpha) // 6 : "cr0", diff --git a/kernel/power/daxpy_microk_power8.c b/kernel/power/daxpy_microk_power8.c index a92026e83a..568fc42541 100644 --- a/kernel/power/daxpy_microk_power8.c +++ b/kernel/power/daxpy_microk_power8.c @@ -181,7 +181,7 @@ static void daxpy_kernel_8 (long n, double *x, double *y, double alpha) "#n=%1 x=%21=%2 y=%0=%3 alpha=%22 o16=%23 o32=%24 o48=%25\n" "#t0=%x4 t1=%x5 t2=%x6 t3=%x7 t4=%x8 t5=%x9 t6=%x10 t7=%x11 t8=%x12 t9=%x13 t10=%x14 t11=%x15 t12=%x16 t13=%x17 t14=%x18 t15=%x19 t16=%x20" : - "+m" (*y), + "+m" (*(double (*)[n]) y), "+r" (n), // 1 "+b" (x), // 2 "+b" (y), // 3 @@ -203,7 +203,7 @@ static void daxpy_kernel_8 (long n, double *x, double *y, double alpha) "=wa" (t15), // 19 "=wa" (t16) // 20 : - "m" (*x), + "m" (*(const double (*)[n]) x), "d" (alpha), // 22 "b" (16), // 23 "b" (32), // 24 diff --git a/kernel/power/dcopy_microk_power8.c b/kernel/power/dcopy_microk_power8.c index b51a21d08d..cb42d6e2de 100644 --- a/kernel/power/dcopy_microk_power8.c +++ b/kernel/power/dcopy_microk_power8.c @@ -134,12 +134,12 @@ static void dcopy_kernel_32 (long n, double *x, double *y) "#n=%1 x=%4=%2 y=%0=%3 o16=%5 o32=%6 o48=%7 o64=%8 o80=%9 o96=%10 o112=%11" : - "=m" (*y), + "=m" (*(double (*)[n]) y), "+r" (n), // 1 "+b" (x), // 2 "+b" (y) // 3 : - "m" (*x), + "m" (*(const double (*)[n]) x), "b" (16), // 5 "b" (32), // 6 "b" (48), // 7 diff --git a/kernel/power/ddot_microk_power10.c b/kernel/power/ddot_microk_power10.c index 3a9865cc0e..96a857db21 100644 --- a/kernel/power/ddot_microk_power10.c +++ b/kernel/power/ddot_microk_power10.c @@ -118,8 +118,8 @@ static double ddot_kernel_8 (long n, double *x, double *y) "+b" (x), // 2 "+b" (y) // 3 : - "m" (*x), - "m" (*y) + "m" (*(const double (*)[n]) x), + "m" (*(const double (*)[n]) y), : "cr0", "vs32","vs33","vs34","vs35","vs36","vs37","vs38","vs39", diff --git a/kernel/power/ddot_microk_power8.c b/kernel/power/ddot_microk_power8.c index d2518ef7e0..8ea0076b16 100644 --- a/kernel/power/ddot_microk_power8.c +++ b/kernel/power/ddot_microk_power8.c @@ -151,8 +151,8 @@ static double ddot_kernel_8 (long n, double *x, double *y) "=wa" (t2), // 6 "=wa" (t3) // 7 : - "m" (*x), - "m" (*y), + "m" (*(const double (*)[n]) x), + "m" (*(const double (*)[n]) y), "b" (16), // 10 "b" (32), // 11 "b" (48), // 12 diff --git a/kernel/power/dgemv_n_microk_power10.c b/kernel/power/dgemv_n_microk_power10.c index 65743731ea..5a67c3648e 100644 --- a/kernel/power/dgemv_n_microk_power10.c +++ b/kernel/power/dgemv_n_microk_power10.c @@ -246,7 +246,7 @@ static void dgemv_kernel_4x4 (long n, double *ap, long lda, double *x, double *y "#n=%1 ap=%8=%12 lda=%13 x=%7=%10 y=%0=%2 alpha=%9 o16=%11\n" "#a0=%3 a1=%4 a2=%5 a3=%6" : - "+m" (*y), + "+m" (*(double (*)[n]) y), "+r" (n), // 1 "+b" (y), // 2 "=b" (a0), // 3 @@ -254,8 +254,8 @@ static void dgemv_kernel_4x4 (long n, double *ap, long lda, double *x, double *y "=&b" (a2), // 5 "=&b" (a3) // 6 : - "m" (*x), - "m" (*ap), + "m" (*(double (*)[4]) x), + "m" (*(double (*)[4*n]) ap), "d" (alpha), // 9 "r" (x), // 10 "b" (16), // 11 @@ -452,7 +452,7 @@ static void dgemv_kernel_4x8 (long n, double *ap, long lda, double *x, double *y "stxvp 36, 0( %2) \n\t" // y0, y1 : - "+m" (*y), + "+m" (*(double (*)[n]) y), "+r" (n), // 1 "+b" (y), // 2 "=b" (a0), // 3 @@ -465,8 +465,8 @@ static void dgemv_kernel_4x8 (long n, double *ap, long lda, double *x, double *y "=&b" (a7), // 10 "=b" (tmp) : - "m" (*x), - "m" (*ap), + "m" (*(double (*)[4]) x), + "m" (*(double (*)[]) ap), "d" (alpha), // 14 "r" (x), // 15 "3" (ap), // 16 diff --git a/kernel/power/dgemv_n_microk_power8.c b/kernel/power/dgemv_n_microk_power8.c index c2eb3968c0..3ceef7fe3d 100644 --- a/kernel/power/dgemv_n_microk_power8.c +++ b/kernel/power/dgemv_n_microk_power8.c @@ -276,7 +276,7 @@ static void dgemv_kernel_4x4 (long n, double *ap, long lda, double *x, double *y "#n=%1 ap=%8=%12 lda=%13 x=%7=%10 y=%0=%2 alpha=%9 o16=%11\n" "#a0=%3 a1=%4 a2=%5 a3=%6" : - "+m" (*y), + "+m" (*(double (*)[n]) y), "+r" (n), // 1 "+b" (y), // 2 "=b" (a0), // 3 @@ -284,8 +284,8 @@ static void dgemv_kernel_4x4 (long n, double *ap, long lda, double *x, double *y "=&b" (a2), // 5 "=&b" (a3) // 6 : - "m" (*x), - "m" (*ap), + "m" (*(double (*)[4]) x), + "m" (*(double (*)[4*n]) ap), "d" (alpha), // 9 "r" (x), // 10 "b" (16), // 11 diff --git a/kernel/power/drot_microk_power10.c b/kernel/power/drot_microk_power10.c index e34e745c76..d81575116f 100644 --- a/kernel/power/drot_microk_power10.c +++ b/kernel/power/drot_microk_power10.c @@ -130,8 +130,8 @@ static void drot_kernel_16 (long n, double *x, double *y, double c, double s) "#n=%2 x=%0=%3 y=%1=%4 c=%5 s=%6\n" : - "+m" (*x), - "+m" (*y), + "+m" (*(double (*)[n]) x), + "+m" (*(double (*)[n]) y), "+r" (n), // 2 "+b" (x), // 3 "+b" (y) // 4 diff --git a/kernel/power/drot_microk_power8.c b/kernel/power/drot_microk_power8.c index 259c081878..ab6bf91b23 100644 --- a/kernel/power/drot_microk_power8.c +++ b/kernel/power/drot_microk_power8.c @@ -185,8 +185,8 @@ static void drot_kernel_16 (long n, double *x, double *y, double c, double s) "#n=%2 x=%0=%3 y=%1=%4 c=%13 s=%14 o16=%15 o32=%16 o48=%17\n" "#t0=%x5 t1=%x6 t2=%x7 t3=%x8 t4=%x9 t5=%x10 t6=%x11 t7=%x12" : - "+m" (*x), - "+m" (*y), + "+m" (*(double (*)[n]) x), + "+m" (*(double (*)[n]) y), "+r" (n), // 2 "+b" (x), // 3 "+b" (y), // 4 diff --git a/kernel/power/dscal_microk_power10.c b/kernel/power/dscal_microk_power10.c index a788640b5f..6a053a76ec 100644 --- a/kernel/power/dscal_microk_power10.c +++ b/kernel/power/dscal_microk_power10.c @@ -118,7 +118,7 @@ static void dscal_kernel_8 (long n, double *x, double alpha) "#n=%1 alpha=%3 x=%0=%2" : - "+m" (*x), + "+m" (*(double (*)[n]) x), "+r" (n), // 1 "+b" (x) // 2 : @@ -158,7 +158,7 @@ static void dscal_kernel_8_zero (long n, double *x) "#n=%1 x=%0=%2 " : - "=m" (*x), + "=m" (*(double (*)[n]) x), "+r" (n), // 1 "+b" (x) // 2 : diff --git a/kernel/power/dscal_microk_power8.c b/kernel/power/dscal_microk_power8.c index e9bacd05af..0a1d4b2283 100644 --- a/kernel/power/dscal_microk_power8.c +++ b/kernel/power/dscal_microk_power8.c @@ -118,7 +118,7 @@ static void dscal_kernel_8 (long n, double *x, double alpha) "#n=%1 alpha=%3 x=%0=%2 o16=%4 o32=%5 o48=%6 o64=%7 o80=%8 o96=%9 o112=%10" : - "+m" (*x), + "+m" (*(double (*)[n]) x), "+r" (n), // 1 "+b" (x) // 2 : @@ -165,7 +165,7 @@ static void dscal_kernel_8_zero (long n, double *x) "#n=%1 x=%0=%2 t0=%x3 o16=%4 o32=%5 o48=%6 o64=%7 o80=%8 o96=%9 o112=%10" : - "=m" (*x), + "=m" (*(double (*)[n]) x), "+r" (n), // 1 "+b" (x), // 2 "=wa" (t0) // 3 diff --git a/kernel/power/dswap_microk_power8.c b/kernel/power/dswap_microk_power8.c index ecfd5c9f99..7d95119130 100644 --- a/kernel/power/dswap_microk_power8.c +++ b/kernel/power/dswap_microk_power8.c @@ -135,8 +135,8 @@ static void dswap_kernel_32 (long n, double *x, double *y) "#n=%2 x=%0=%3 y=%1=%4 o16=%5 o32=%6 o48=%7 o64=%8 o80=%9 o96=%10 o112=%11" : - "+m" (*x), - "+m" (*y), + "+m" (*(double (*)[n]) x), + "+m" (*(double (*)[n]) y), "+r" (n), // 2 "+b" (x), // 3 "+b" (y) // 4 diff --git a/kernel/power/sasum_microk_power10.c b/kernel/power/sasum_microk_power10.c index ea12a4264b..e05529675d 100644 --- a/kernel/power/sasum_microk_power10.c +++ b/kernel/power/sasum_microk_power10.c @@ -141,7 +141,7 @@ static float sasum_kernel_32 (long n, float *x) "=wa" (t2), // 5 "=wa" (t3) // 6 : - "m" (*x) + "m" (*(const float (*)[n]) x), : "cr0", "vs32","vs33","vs34","vs35","vs36","vs37","vs38","vs39", diff --git a/kernel/power/sasum_microk_power8.c b/kernel/power/sasum_microk_power8.c index aa465c38e3..dad9492a91 100644 --- a/kernel/power/sasum_microk_power8.c +++ b/kernel/power/sasum_microk_power8.c @@ -159,7 +159,7 @@ static float sasum_kernel_32 (long n, float *x) "=wa" (t2), // 5 "=wa" (t3) // 6 : - "m" (*x), + "m" (*(const float (*)[n]) x), "b" (16), // 8 "b" (32), // 9 "b" (48), // 10 diff --git a/kernel/power/saxpy_microk_power10.c b/kernel/power/saxpy_microk_power10.c index cf5f459593..67787f82c4 100644 --- a/kernel/power/saxpy_microk_power10.c +++ b/kernel/power/saxpy_microk_power10.c @@ -238,13 +238,13 @@ static void saxpy_kernel_64(long n, float *x, float *y, float alpha) "#n=%1 x=%5=%2 y=%0=%3 t0=%x4\n" : - "+m" (*y), + "+m" (*(float (*)[n]) y), "+r" (n), // 1 "+b" (x), // 2 "+b" (y) // 3 : "wa" (t0), // 4 - "m" (*x) + "m" (*(const float (*)[n]) x) : "cr0", "vs32","vs33","vs34","vs35","vs36","vs37", "vs38", "vs39", diff --git a/kernel/power/scopy_microk_power8.c b/kernel/power/scopy_microk_power8.c index da39789b1a..64b4827363 100644 --- a/kernel/power/scopy_microk_power8.c +++ b/kernel/power/scopy_microk_power8.c @@ -92,12 +92,12 @@ static void scopy_kernel_32 (long n, float *x, float *y) "#n=%1 x=%4=%2 y=%0=%3 o16=%5 o32=%6 o48=%7 o64=%8 o80=%9 o96=%10 o112=%11" : - "=m" (*y), + "=m" (*(float (*)[n]) y), "+r" (n), // 1 "+b" (x), // 2 "+b" (y) // 3 : - "m" (*x), + "m" (*(const float (*)[n]) x), "b" (16), // 5 "b" (32), // 6 "b" (48), // 7 diff --git a/kernel/power/sdot_microk_power10.c b/kernel/power/sdot_microk_power10.c index 2f028c5a0d..7c323c723c 100644 --- a/kernel/power/sdot_microk_power10.c +++ b/kernel/power/sdot_microk_power10.c @@ -122,8 +122,8 @@ static float sdot_kernel_16 (long n, float *x, float *y) "+b" (x), // 2 "+b" (y) // 3 : - "m" (*x), - "m" (*y) + "m" (*(const float (*)[n]) x), + "m" (*(const float (*)[n]) y) : "cr0", "vs32","vs33","vs34","vs35","vs36","vs37","vs38","vs39", diff --git a/kernel/power/sdot_microk_power8.c b/kernel/power/sdot_microk_power8.c index a8db6a8d65..be05cec8b3 100644 --- a/kernel/power/sdot_microk_power8.c +++ b/kernel/power/sdot_microk_power8.c @@ -155,8 +155,8 @@ static float sdot_kernel_16 (long n, float *x, float *y) "=wa" (t2), // 6 "=wa" (t3) // 7 : - "m" (*x), - "m" (*y), + "m" (*(const float (*)[n]) x), + "m" (*(const float (*)[n]) y), "b" (16), // 10 "b" (32), // 11 "b" (48), // 12 diff --git a/kernel/power/srot_microk_power10.c b/kernel/power/srot_microk_power10.c index c54c307424..e64ea3b36c 100644 --- a/kernel/power/srot_microk_power10.c +++ b/kernel/power/srot_microk_power10.c @@ -133,8 +133,8 @@ static void srot_kernel_16 (long n, float *x, float *y, float c, float s) "#n=%2 x=%0=%3 y=%1=%4 c=%5 s=%6\n" : - "+m" (*x), - "+m" (*y), + "+m" (*(float (*)[n]) x), + "+m" (*(float (*)[n]) y), "+r" (n), // 2 "+b" (x), // 3 "+b" (y) // 4 diff --git a/kernel/power/srot_microk_power8.c b/kernel/power/srot_microk_power8.c index 329a8cd069..058f4045d5 100644 --- a/kernel/power/srot_microk_power8.c +++ b/kernel/power/srot_microk_power8.c @@ -188,8 +188,8 @@ static void srot_kernel_16 (long n, float *x, float *y, float c, float s) "#n=%2 x=%0=%3 y=%1=%4 c=%13 s=%14 o16=%15 o32=%16 o48=%17\n" "#t0=%x5 t1=%x6 t2=%x7 t3=%x8 t4=%x9 t5=%x10 t6=%x11 t7=%x12" : - "+m" (*x), - "+m" (*y), + "+m" (*(float (*)[n]) x), + "+m" (*(float (*)[n]) y), "+r" (n), // 2 "+b" (x), // 3 "+b" (y), // 4 diff --git a/kernel/power/sscal_microk_power10.c b/kernel/power/sscal_microk_power10.c index 76703325c1..a52707a246 100644 --- a/kernel/power/sscal_microk_power10.c +++ b/kernel/power/sscal_microk_power10.c @@ -119,7 +119,7 @@ static void sscal_kernel_16 (long n, float *x, float alpha) "#n=%1 alpha=%3 x=%0=%2" : - "+m" (*x), + "+m" (*(float (*)[n]) x), "+r" (n), // 1 "+b" (x) // 2 : @@ -159,7 +159,7 @@ static void sscal_kernel_16_zero (long n, float *x) "#n=%1 x=%0=%2 " : - "=m" (*x), + "=m" (*(float (*)[n]) x), "+r" (n), // 1 "+b" (x) // 2 : diff --git a/kernel/power/sscal_microk_power8.c b/kernel/power/sscal_microk_power8.c index 88fba3166a..dbbfcb76ef 100644 --- a/kernel/power/sscal_microk_power8.c +++ b/kernel/power/sscal_microk_power8.c @@ -119,7 +119,7 @@ static void sscal_kernel_16 (long n, float *x, float alpha) "#n=%1 alpha=%3 x=%0=%2 o16=%4 o32=%5 o48=%6 o64=%7 o80=%8 o96=%9 o112=%10" : - "+m" (*x), + "+m" (*(float (*)[n]) x), "+r" (n), // 1 "+b" (x), // 2 "+f" (alpha) // 3 @@ -166,7 +166,7 @@ static void sscal_kernel_16_zero (long n, float *x) "#n=%1 x=%0=%2 t0=%x3 o16=%4 o32=%5 o48=%6 o64=%7 o80=%8 o96=%9 o112=%10" : - "=m" (*x), + "=m" (*(float (*)[n]) x), "+r" (n), // 1 "+b" (x), // 2 "=wa" (t0) // 3 diff --git a/kernel/power/sswap_microk_power8.c b/kernel/power/sswap_microk_power8.c index a407018a8b..5b34bf367e 100644 --- a/kernel/power/sswap_microk_power8.c +++ b/kernel/power/sswap_microk_power8.c @@ -87,8 +87,8 @@ static void sswap_kernel_32 (long n, float *x, float *y) "#n=%2 x=%0=%3 y=%1=%4 o16=%5 o32=%6 o48=%7 o64=%8 o80=%9 o96=%10 o112=%11" : - "+m" (*x), - "+m" (*y), + "+m" (*(float (*)[n]) x), + "+m" (*(float (*)[n]) y), "+r" (n), // 2 "+b" (x), // 3 "+b" (y) // 4 diff --git a/kernel/power/swap_microk_power10.c b/kernel/power/swap_microk_power10.c index 118adee5fd..29df220912 100644 --- a/kernel/power/swap_microk_power10.c +++ b/kernel/power/swap_microk_power10.c @@ -143,8 +143,8 @@ static void sswap_kernel_32 (long n, float *x, float *y) "#n=%2 x=%0=%3 y=%1=%4" : - "+m" (*x), - "+m" (*y), + "+m" (*(FLOAT (*)[n]) x), + "+m" (*(FLOAT (*)[n]) y), "+r" (n), // 2 "+b" (x), // 3 "+b" (y) // 4 diff --git a/kernel/power/zasum_microk_power8.c b/kernel/power/zasum_microk_power8.c index 3f0af42321..942469cbb7 100644 --- a/kernel/power/zasum_microk_power8.c +++ b/kernel/power/zasum_microk_power8.c @@ -154,7 +154,7 @@ static double zasum_kernel_8 (long n, double *x) "=wa" (t2), // 5 "=wa" (t3) // 6 : - "m" (*x), + "m" (*(const double (*)[n * 2]) x) "b" (16), // 8 "b" (32), // 9 "b" (48), // 10 diff --git a/kernel/power/zaxpy_microk_power10.c b/kernel/power/zaxpy_microk_power10.c index 366c7ed62a..963ef115d1 100644 --- a/kernel/power/zaxpy_microk_power10.c +++ b/kernel/power/zaxpy_microk_power10.c @@ -210,7 +210,7 @@ static void zaxpy_kernel_4 (long n, double *x, double *y, "#n=%1 x=%13=%2 y=%0=%3 alpha=(%15,%16) mvecp=%14=%17 ytmp=%12\n" "#t0=%x4 t1=%x5 t2=%x6 t3=%x7 t4=%x8 t5=%x9 t6=%x10 t7=%x11" : - "+m" (*y), + "+m" (*(double (*)[n * 2]) y), "+r" (n), // 1 "+b" (x), // 2 "+b" (y), // 3 @@ -224,8 +224,9 @@ static void zaxpy_kernel_4 (long n, double *x, double *y, "=wa" (t7), // 11 "=b" (ytmp) // 12 : - "m" (*x), - "m" (*mvecp), + "m" (*(const double (*)[n * 2]) x), + "m" (*(const double (*)[2]) mvecp) + "d" (alpha_r), // 15 "d" (alpha_i), // 16 "12" (mvecp) // 17 diff --git a/kernel/power/zaxpy_microk_power8.c b/kernel/power/zaxpy_microk_power8.c index 959050e5f1..e24b0c3274 100644 --- a/kernel/power/zaxpy_microk_power8.c +++ b/kernel/power/zaxpy_microk_power8.c @@ -224,7 +224,7 @@ static void zaxpy_kernel_4 (long n, double *x, double *y, "#n=%1 x=%17=%2 y=%0=%3 alpha=(%19,%20) mvecp=%18=%16 o16=%22 o32=%23 o48=%24 ytmp=%16\n" "#t0=%x4 t1=%x5 t2=%x6 t3=%x7 t4=%x8 t5=%x9 t6=%x10 t7=%x11 t8=%x12 t9=%x13 t10=%x14 t11=%x15" : - "+m" (*y), + "+m" (*(double (*)[n * 2]) y), "+r" (n), // 1 "+b" (x), // 2 "+b" (y), // 3 @@ -242,8 +242,8 @@ static void zaxpy_kernel_4 (long n, double *x, double *y, "=wa" (t11), // 15 "=b" (ytmp) // 16 : - "m" (*x), - "m" (*mvecp), + "m" (*(const double (*)[n * 2]) x), + "m" (*(const double (*)[2]) mvecp), "d" (alpha_r), // 19 "d" (alpha_i), // 20 "16" (mvecp), // 21 diff --git a/kernel/power/zcopy_microk_power8.c b/kernel/power/zcopy_microk_power8.c index e295470477..cebcf90a73 100644 --- a/kernel/power/zcopy_microk_power8.c +++ b/kernel/power/zcopy_microk_power8.c @@ -134,12 +134,12 @@ static void zcopy_kernel_16 (long n, FLOAT *x, FLOAT *y) "#n=%1 x=%4=%2 y=%0=%3 o16=%5 o32=%6 o48=%7 o64=%8 o80=%9 o96=%10 o112=%11" : - "=m" (*y), + "m" (*(FLOAT (*)[n * 2]) y), "+r" (n), // 1 "+b" (x), // 2 "+b" (y) // 3 : - "m" (*x), + "m" (*(const FLOAT (*)[n * 2]) x), "b" (16), // 5 "b" (32), // 6 "b" (48), // 7 diff --git a/kernel/power/zdot_microk_power8.c b/kernel/power/zdot_microk_power8.c index dcde824330..87bda93b62 100644 --- a/kernel/power/zdot_microk_power8.c +++ b/kernel/power/zdot_microk_power8.c @@ -186,13 +186,13 @@ static void zdot_kernel_8 (long n, double *x, double *y, double *dot) "#n=%1 x=%4=%2 y=%5=%3 dot=%0=%6 o16=%7 o32=%8 o48=%9" : - "=m" (*dot), + "=m" (*(double) (*)[4]) dot), "+r" (n), // 1 "+b" (x), // 2 "+b" (y) // 3 : - "m" (*x), - "m" (*y), + "m" (*(double (*)[n * 2]) x), + "m" (*(double (*)[n * 2]) y), "b" (dot), // 6 "b" (16), // 7 "b" (32), // 8 diff --git a/kernel/power/zscal_microk_power10.c b/kernel/power/zscal_microk_power10.c index af99b86484..2f350cefef 100644 --- a/kernel/power/zscal_microk_power10.c +++ b/kernel/power/zscal_microk_power10.c @@ -201,7 +201,7 @@ static void zscal_kernel_8 (long n, double *x, double alpha_r, double alpha_i) #endif "#n=%1 x=%0=%2 alpha=(%9,%10) \n" : - "+m" (*x), + "+m" (*(double (*)[n * 2]) x), "+r" (n), // 1 "+b" (x), // 2 "=wa" (t0), // 3 diff --git a/kernel/power/zscal_microk_power8.c b/kernel/power/zscal_microk_power8.c index 567331775a..7a7f52a2eb 100644 --- a/kernel/power/zscal_microk_power8.c +++ b/kernel/power/zscal_microk_power8.c @@ -205,7 +205,7 @@ static void zscal_kernel_8 (long n, double *x, double alpha_r, double alpha_i) "#n=%1 x=%0=%2 alpha=(%15,%16) o16=%17 o32=%18 o48=%19 o64=%20 o80=%21 o96=%22 o112=%23\n" "#t0=%x3 t1=%x4 t2=%x5 t3=%x6 t4=%x7 t5=%x8 t6=%x9 t7=%x10 t8=%x11 t9=%x12 t10=%x13 t11=%x14" : - "+m" (*x), + "+m" (*(double (*)[n * 2]) x), "+r" (n), // 1 "+b" (x), // 2 "=wa" (t0), // 3 diff --git a/kernel/power/zswap_microk_power8.c b/kernel/power/zswap_microk_power8.c index 1e9fbe2cff..78e616521d 100644 --- a/kernel/power/zswap_microk_power8.c +++ b/kernel/power/zswap_microk_power8.c @@ -134,8 +134,8 @@ zswap_kernel_16 (long n, double *x, double *y) "#n=%2 x=%0=%3 y=%1=%4 o16=%5 o32=%6 o48=%7 o64=%8 o80=%9 o96=%10 o112=%11" : - "+m" (*x), - "+m" (*y), + "+m" (*(double (*)[n * 2]) x), + "+m" (*(double (*)[n * 2]) y), "+r" (n), // 2 "+b" (x), // 3 "+b" (y) // 4