This patch makes sure that recent POWER10 patches are used only for little endian.tags/v0.3.15
| @@ -28,7 +28,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||||
| #else | #else | ||||
| #include "common.h" | #include "common.h" | ||||
| #if defined(POWER10) | |||||
| #if defined(POWER10) && (__BYTE_ORDER__ != __ORDER_BIG_ENDIAN__) | |||||
| #include "cdot_microk_power10.c" | #include "cdot_microk_power10.c" | ||||
| #else | #else | ||||
| #ifndef HAVE_KERNEL_8 | #ifndef HAVE_KERNEL_8 | ||||
| @@ -120,7 +120,7 @@ OPENBLAS_COMPLEX_FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLA | |||||
| if ((inc_x == 1) && (inc_y == 1)) { | if ((inc_x == 1) && (inc_y == 1)) { | ||||
| #if defined(POWER10) | |||||
| #if defined(POWER10) && (__BYTE_ORDER__ != __ORDER_BIG_ENDIAN__) | |||||
| BLASLONG n1 = n & -16; | BLASLONG n1 = n & -16; | ||||
| #else | #else | ||||
| BLASLONG n1 = n & -8; | BLASLONG n1 = n & -8; | ||||
| @@ -39,8 +39,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||||
| #if defined(__VEC__) || defined(__ALTIVEC__) | #if defined(__VEC__) || defined(__ALTIVEC__) | ||||
| #if defined(POWER8) || defined(POWER9) | #if defined(POWER8) || defined(POWER9) | ||||
| #include "cswap_microk_power8.c" | #include "cswap_microk_power8.c" | ||||
| #elif defined(POWER10) | |||||
| #elif defined(POWER10) && (__BYTE_ORDER__ != __ORDER_BIG_ENDIAN__) | |||||
| #include "cswap_microk_power10.c" | #include "cswap_microk_power10.c" | ||||
| #elif defined(POWER10) | |||||
| #include "cswap_microk_power8.c" | |||||
| #endif | #endif | ||||
| #endif | #endif | ||||
| @@ -49,8 +49,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||||
| #if defined(__VEC__) || defined(__ALTIVEC__) | #if defined(__VEC__) || defined(__ALTIVEC__) | ||||
| #if defined(POWER8) || defined(POWER9) | #if defined(POWER8) || defined(POWER9) | ||||
| #include "dasum_microk_power8.c" | #include "dasum_microk_power8.c" | ||||
| #elif defined(POWER10) | |||||
| #elif defined(POWER10) && (__BYTE_ORDER__ != __ORDER_BIG_ENDIAN__) | |||||
| #include "dasum_microk_power10.c" | #include "dasum_microk_power10.c" | ||||
| #elif defined(POWER10) | |||||
| #include "dasum_microk_power8.c" | |||||
| #endif | #endif | ||||
| #endif | #endif | ||||
| @@ -112,7 +114,7 @@ FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x) | |||||
| if ( inc_x == 1 ) | if ( inc_x == 1 ) | ||||
| { | { | ||||
| #if defined(POWER10) | |||||
| #if defined(POWER10) && (__BYTE_ORDER__ != __ORDER_BIG_ENDIAN__) | |||||
| if ( n >= 16 ) | if ( n >= 16 ) | ||||
| { | { | ||||
| BLASLONG align = ((32 - ((uintptr_t)x & (uintptr_t)0x1F)) >> 3) & 0x3; | BLASLONG align = ((32 - ((uintptr_t)x & (uintptr_t)0x1F)) >> 3) & 0x3; | ||||
| @@ -42,8 +42,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||||
| #if defined(__VEC__) || defined(__ALTIVEC__) | #if defined(__VEC__) || defined(__ALTIVEC__) | ||||
| #if defined(POWER8) || defined(POWER9) | #if defined(POWER8) || defined(POWER9) | ||||
| #include "drot_microk_power8.c" | #include "drot_microk_power8.c" | ||||
| #elif defined(POWER10) | |||||
| #elif defined(POWER10) && (__BYTE_ORDER__ != __ORDER_BIG_ENDIAN__) | |||||
| #include "drot_microk_power10.c" | #include "drot_microk_power10.c" | ||||
| #elif defined(POWER10) | |||||
| #include "drot_microk_power8.c" | |||||
| #endif | #endif | ||||
| #endif | #endif | ||||
| @@ -117,7 +119,7 @@ int CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG inc_y, FLOAT | |||||
| if ( (inc_x == 1) && (inc_y == 1) ) | if ( (inc_x == 1) && (inc_y == 1) ) | ||||
| { | { | ||||
| #if defined(POWER10) | |||||
| #if defined(POWER10) && (__BYTE_ORDER__ != __ORDER_BIG_ENDIAN__) | |||||
| if ( n >= 16 ) | if ( n >= 16 ) | ||||
| { | { | ||||
| BLASLONG align = ((32 - ((uintptr_t)y & (uintptr_t)0x1F)) >> 3) & 0x3; | BLASLONG align = ((32 - ((uintptr_t)y & (uintptr_t)0x1F)) >> 3) & 0x3; | ||||
| @@ -38,8 +38,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||||
| #if defined(__VEC__) || defined(__ALTIVEC__) | #if defined(__VEC__) || defined(__ALTIVEC__) | ||||
| #if defined(POWER8) || defined(POWER9) | #if defined(POWER8) || defined(POWER9) | ||||
| #include "dscal_microk_power8.c" | #include "dscal_microk_power8.c" | ||||
| #elif defined(POWER10) | |||||
| #elif defined(POWER10) && (__BYTE_ORDER__ != __ORDER_BIG_ENDIAN__) | |||||
| #include "dscal_microk_power10.c" | #include "dscal_microk_power10.c" | ||||
| #elif defined(POWER10) | |||||
| #include "dscal_microk_power8.c" | |||||
| #endif | #endif | ||||
| #endif | #endif | ||||
| @@ -102,7 +104,7 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da, FLOAT *x, BLAS | |||||
| if ( da == 0.0 ) | if ( da == 0.0 ) | ||||
| { | { | ||||
| #if defined(POWER10) | |||||
| #if defined(POWER10) && (__BYTE_ORDER__ != __ORDER_BIG_ENDIAN__) | |||||
| if ( n >= 16 ) | if ( n >= 16 ) | ||||
| { | { | ||||
| BLASLONG align = ((32 - ((uintptr_t)x & (uintptr_t)0x1F)) >> 3) & 0x3; | BLASLONG align = ((32 - ((uintptr_t)x & (uintptr_t)0x1F)) >> 3) & 0x3; | ||||
| @@ -136,7 +138,7 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da, FLOAT *x, BLAS | |||||
| else | else | ||||
| { | { | ||||
| #if defined(POWER10) | |||||
| #if defined(POWER10) && (__BYTE_ORDER__ != __ORDER_BIG_ENDIAN__) | |||||
| if ( n >= 16 ) | if ( n >= 16 ) | ||||
| { | { | ||||
| BLASLONG align = ((32 - ((uintptr_t)x & (uintptr_t)0x1F)) >> 3) & 0x3; | BLASLONG align = ((32 - ((uintptr_t)x & (uintptr_t)0x1F)) >> 3) & 0x3; | ||||
| @@ -38,8 +38,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||||
| #if defined(__VEC__) || defined(__ALTIVEC__) | #if defined(__VEC__) || defined(__ALTIVEC__) | ||||
| #if defined(POWER8) || defined(POWER9) | #if defined(POWER8) || defined(POWER9) | ||||
| #include "dswap_microk_power8.c" | #include "dswap_microk_power8.c" | ||||
| #elif defined(POWER10) | |||||
| #elif defined(POWER10) && (__BYTE_ORDER__ != __ORDER_BIG_ENDIAN__) | |||||
| #include "swap_microk_power10.c" | #include "swap_microk_power10.c" | ||||
| #elif defined(POWER10) | |||||
| #include "dswap_microk_power8.c" | |||||
| #endif | #endif | ||||
| #endif | #endif | ||||
| @@ -117,7 +119,7 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT dummy3, FLOAT *x, | |||||
| if ( (inc_x == 1) && (inc_y == 1 )) | if ( (inc_x == 1) && (inc_y == 1 )) | ||||
| { | { | ||||
| #if defined(POWER10) | |||||
| #if defined(POWER10) && (__BYTE_ORDER__ != __ORDER_BIG_ENDIAN__) | |||||
| if ( n >= 32 ) | if ( n >= 32 ) | ||||
| { | { | ||||
| BLASLONG align = ((32 - ((uintptr_t)y & (uintptr_t)0x1F)) >> 3) & 0x3; | BLASLONG align = ((32 - ((uintptr_t)y & (uintptr_t)0x1F)) >> 3) & 0x3; | ||||
| @@ -49,8 +49,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||||
| #if defined(__VEC__) || defined(__ALTIVEC__) | #if defined(__VEC__) || defined(__ALTIVEC__) | ||||
| #if defined(POWER8) || defined(POWER9) | #if defined(POWER8) || defined(POWER9) | ||||
| #include "sasum_microk_power8.c" | #include "sasum_microk_power8.c" | ||||
| #elif defined(POWER10) | |||||
| #elif defined(POWER10) && (__BYTE_ORDER__ != __ORDER_BIG_ENDIAN__) | |||||
| #include "sasum_microk_power10.c" | #include "sasum_microk_power10.c" | ||||
| #elif defined(POWER10) | |||||
| #include "sasum_microk_power8.c" | |||||
| #endif | #endif | ||||
| #endif | #endif | ||||
| @@ -112,7 +114,7 @@ FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x) | |||||
| if ( inc_x == 1 ) | if ( inc_x == 1 ) | ||||
| { | { | ||||
| #if defined(POWER10) | |||||
| #if defined(POWER10) && (__BYTE_ORDER__ != __ORDER_BIG_ENDIAN__) | |||||
| if ( n >= 32 ) | if ( n >= 32 ) | ||||
| { | { | ||||
| BLASLONG align = ((32 - ((uintptr_t)x & (uintptr_t)0x1F)) >> 2) & 0x7; | BLASLONG align = ((32 - ((uintptr_t)x & (uintptr_t)0x1F)) >> 2) & 0x7; | ||||
| @@ -42,8 +42,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||||
| #if defined(__VEC__) || defined(__ALTIVEC__) | #if defined(__VEC__) || defined(__ALTIVEC__) | ||||
| #if defined(POWER8) || defined(POWER9) | #if defined(POWER8) || defined(POWER9) | ||||
| #include "srot_microk_power8.c" | #include "srot_microk_power8.c" | ||||
| #elif defined(POWER10) | |||||
| #elif defined(POWER10) && (__BYTE_ORDER__ != __ORDER_BIG_ENDIAN__) | |||||
| #include "srot_microk_power10.c" | #include "srot_microk_power10.c" | ||||
| #elif defined(POWER10) | |||||
| #include "srot_microk_power8.c" | |||||
| #endif | #endif | ||||
| #endif | #endif | ||||
| @@ -117,7 +119,7 @@ int CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG inc_y, FLOAT | |||||
| if ( (inc_x == 1) && (inc_y == 1) ) | if ( (inc_x == 1) && (inc_y == 1) ) | ||||
| { | { | ||||
| #if defined(POWER10) | |||||
| #if defined(POWER10) && (__BYTE_ORDER__ != __ORDER_BIG_ENDIAN__) | |||||
| if ( n >= 16 ) | if ( n >= 16 ) | ||||
| { | { | ||||
| BLASLONG align = ((32 - ((uintptr_t)y & (uintptr_t)0x1F)) >> 2) & 0x7; | BLASLONG align = ((32 - ((uintptr_t)y & (uintptr_t)0x1F)) >> 2) & 0x7; | ||||
| @@ -38,8 +38,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||||
| #if defined(__VEC__) || defined(__ALTIVEC__) | #if defined(__VEC__) || defined(__ALTIVEC__) | ||||
| #if defined(POWER8) || defined(POWER9) | #if defined(POWER8) || defined(POWER9) | ||||
| #include "sscal_microk_power8.c" | #include "sscal_microk_power8.c" | ||||
| #elif defined(POWER10) | |||||
| #elif defined(POWER10) && (__BYTE_ORDER__ != __ORDER_BIG_ENDIAN__) | |||||
| #include "sscal_microk_power10.c" | #include "sscal_microk_power10.c" | ||||
| #elif defined(POWER10) | |||||
| #include "sscal_microk_power8.c" | |||||
| #endif | #endif | ||||
| #endif | #endif | ||||
| @@ -104,7 +106,7 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da, FLOAT *x, BLAS | |||||
| if ( da == 0.0 ) | if ( da == 0.0 ) | ||||
| { | { | ||||
| #if defined(POWER10) | |||||
| #if defined(POWER10) && (__BYTE_ORDER__ != __ORDER_BIG_ENDIAN__) | |||||
| if ( n >= 32 ) | if ( n >= 32 ) | ||||
| { | { | ||||
| BLASLONG align = ((32 - ((uintptr_t)x & (uintptr_t)0x1F)) >> 2) & 0x7; | BLASLONG align = ((32 - ((uintptr_t)x & (uintptr_t)0x1F)) >> 2) & 0x7; | ||||
| @@ -138,7 +140,7 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da, FLOAT *x, BLAS | |||||
| else | else | ||||
| { | { | ||||
| #if defined(POWER10) | |||||
| #if defined(POWER10) && (__BYTE_ORDER__ != __ORDER_BIG_ENDIAN__) | |||||
| if ( n >= 32 ) | if ( n >= 32 ) | ||||
| { | { | ||||
| BLASLONG align = ((32 - ((uintptr_t)x & (uintptr_t)0x1F)) >> 2) & 0x7; | BLASLONG align = ((32 - ((uintptr_t)x & (uintptr_t)0x1F)) >> 2) & 0x7; | ||||
| @@ -38,8 +38,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||||
| #if defined(__VEC__) || defined(__ALTIVEC__) | #if defined(__VEC__) || defined(__ALTIVEC__) | ||||
| #if defined(POWER8) || defined(POWER9) | #if defined(POWER8) || defined(POWER9) | ||||
| #include "sswap_microk_power8.c" | #include "sswap_microk_power8.c" | ||||
| #elif defined(POWER10) | |||||
| #elif defined(POWER10) && (__BYTE_ORDER__ != __ORDER_BIG_ENDIAN__) | |||||
| #include "swap_microk_power10.c" | #include "swap_microk_power10.c" | ||||
| #elif defined(POWER10) | |||||
| #include "sswap_microk_power8.c" | |||||
| #endif | #endif | ||||
| #endif | #endif | ||||
| @@ -117,7 +119,7 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT dummy3, FLOAT *x, | |||||
| if ( (inc_x == 1) && (inc_y == 1 )) | if ( (inc_x == 1) && (inc_y == 1 )) | ||||
| { | { | ||||
| #if defined(POWER10) | |||||
| #if defined(POWER10) && (__BYTE_ORDER__ != __ORDER_BIG_ENDIAN__) | |||||
| if ( n >= 64 ) | if ( n >= 64 ) | ||||
| { | { | ||||
| BLASLONG align = ((32 - ((uintptr_t)y & (uintptr_t)0x1F)) >> 2) & 0x7; | BLASLONG align = ((32 - ((uintptr_t)y & (uintptr_t)0x1F)) >> 2) & 0x7; | ||||
| @@ -43,12 +43,16 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||||
| #if defined(DOUBLE) | #if defined(DOUBLE) | ||||
| #include "zscal_microk_power8.c" | #include "zscal_microk_power8.c" | ||||
| #endif | #endif | ||||
| #elif defined(POWER10) | |||||
| #elif defined(POWER10) && (__BYTE_ORDER__ != __ORDER_BIG_ENDIAN__) | |||||
| #if defined(DOUBLE) | #if defined(DOUBLE) | ||||
| #include "zscal_microk_power10.c" | #include "zscal_microk_power10.c" | ||||
| #else | #else | ||||
| #include "cscal_microk_power10.c" | #include "cscal_microk_power10.c" | ||||
| #endif | #endif | ||||
| #elif defined(POWER10) | |||||
| #if defined(DOUBLE) | |||||
| #include "zscal_microk_power8.c" | |||||
| #endif | |||||
| #endif | #endif | ||||
| #endif | #endif | ||||
| @@ -39,8 +39,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||||
| #if defined(__VEC__) || defined(__ALTIVEC__) | #if defined(__VEC__) || defined(__ALTIVEC__) | ||||
| #if defined(POWER8) || defined(POWER9) | #if defined(POWER8) || defined(POWER9) | ||||
| #include "zswap_microk_power8.c" | #include "zswap_microk_power8.c" | ||||
| #elif defined(POWER10) | |||||
| #elif defined(POWER10) && (__BYTE_ORDER__ != __ORDER_BIG_ENDIAN__) | |||||
| #include "cswap_microk_power10.c" | #include "cswap_microk_power10.c" | ||||
| #elif defined(POWER10) | |||||
| #include "zswap_microk_power8.c" | |||||
| #endif | #endif | ||||
| #endif | #endif | ||||