From d1ed72fa87b2c1cdefed4b34682e719a9b326a8c Mon Sep 17 00:00:00 2001 From: Niyas Sait Date: Tue, 24 Aug 2021 06:09:29 +0100 Subject: [PATCH 1/2] [win/arm64]: Explicit casting for GMEMM_DEFAULT_ALIGN to create 64-bit value Win64 uses LLP64 datamodel and unsigned long is only 32-bit. For 64-bit architecture we need 64-bit mask to correctly generate address --- param.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/param.h b/param.h index 634e0ef5d..5250b2f39 100644 --- a/param.h +++ b/param.h @@ -2955,7 +2955,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define GEMM_DEFAULT_OFFSET_A 0 #define GEMM_DEFAULT_OFFSET_B 0 -#define GEMM_DEFAULT_ALIGN 0x03fffUL +#define GEMM_DEFAULT_ALIGN (BLASULONG)0x03fffUL #define SYMV_P 16 From 7cddbf99b1dd9f99203daf9430c5d87f4eac6b56 Mon Sep 17 00:00:00 2001 From: Niyas Sait Date: Tue, 31 Aug 2021 14:36:44 +0100 Subject: [PATCH 2/2] Make explicit conversion condition on _WIN64 flag --- param.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/param.h b/param.h index 5250b2f39..07397a66e 100644 --- a/param.h +++ b/param.h @@ -2955,7 +2955,12 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define GEMM_DEFAULT_OFFSET_A 0 #define GEMM_DEFAULT_OFFSET_B 0 +#ifdef _WIN64 +/* Use explicit casting for win64 as LLP64 datamodel is used */ #define GEMM_DEFAULT_ALIGN (BLASULONG)0x03fffUL +#else +#define GEMM_DEFAULT_ALIGN 0x03fffUL +#endif #define SYMV_P 16