mirror of
https://github.com/amd/blis.git
synced 2026-05-24 10:24:34 +00:00
Arm SVE Exclude SVE-Intrinsic Kernels for GCC 8-9
Affected configs: a64fx.
This commit is contained in:
@@ -58,9 +58,10 @@ void bli_cntx_init_a64fx( cntx_t* cntx )
|
||||
// Set SVE-512 packing routine.
|
||||
bli_cntx_set_packm_kers
|
||||
(
|
||||
3,
|
||||
2,
|
||||
BLIS_PACKM_10XK_KER, BLIS_DOUBLE, bli_dpackm_armsve512_asm_10xk,
|
||||
BLIS_PACKM_12XK_KER, BLIS_DOUBLE, bli_dpackm_armsve512_int_12xk,
|
||||
// 12xk is not used and disabled for GCC 8-9 compatibility.
|
||||
// BLIS_PACKM_12XK_KER, BLIS_DOUBLE, bli_dpackm_armsve512_int_12xk,
|
||||
BLIS_PACKM_16XK_KER, BLIS_DOUBLE, bli_dpackm_armsve512_asm_16xk,
|
||||
cntx
|
||||
);
|
||||
|
||||
@@ -65,6 +65,8 @@ void bli_cntx_init_armsve( cntx_t* cntx )
|
||||
);
|
||||
|
||||
// Set VL-specific packing routines if applicable.
|
||||
// NOTE: SVE-Intrinsic kernels are used without checking __has_include(<arm_sve.h>).
|
||||
// Such is ensured at configuration stage for config: armsve.
|
||||
if (m_r_d==16)
|
||||
bli_cntx_set_packm_kers
|
||||
(
|
||||
|
||||
@@ -35,11 +35,8 @@
|
||||
|
||||
#include "blis.h"
|
||||
|
||||
#ifdef __ARM_FEATURE_SVE
|
||||
#if __has_include(<arm_sve.h>)
|
||||
#include <arm_sve.h>
|
||||
#else
|
||||
#error "No Arm SVE intrinsics support in compiler"
|
||||
#endif // __ARM_FEATURE_SVE
|
||||
|
||||
// assumption:
|
||||
// SVE vector length = 256 bits.
|
||||
@@ -230,3 +227,5 @@ void bli_dpackm_armsve256_int_8xk
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
#endif // __has_include(<arm_sve.h>)
|
||||
|
||||
@@ -36,11 +36,8 @@
|
||||
#include "blis.h"
|
||||
#include <stdio.h>
|
||||
|
||||
#ifdef __ARM_FEATURE_SVE
|
||||
#if __has_include(<arm_sve.h>)
|
||||
#include <arm_sve.h>
|
||||
#else
|
||||
#error "No Arm SVE intrinsics support in compiler"
|
||||
#endif // __ARM_FEATURE_SVE
|
||||
|
||||
// assumption:
|
||||
// SVE vector length = 512 bits.
|
||||
@@ -357,3 +354,5 @@ void bli_dpackm_armsve512_int_12xk
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
#endif // __has_include(<arm_sve.h>)
|
||||
|
||||
@@ -39,7 +39,10 @@ GEMMSUP_KER_PROT( double, d, gemmsup_rv_armsve_2vx10_unindexed )
|
||||
GEMMSUP_KER_PROT( double, d, gemmsup_cv_armsve_2vx10_unindexed )
|
||||
GEMMSUP_KER_PROT( double, d, gemmsup_rv_armsve_10x2v_unindexed )
|
||||
|
||||
#if __has_include(<arm_sve.h>)
|
||||
// Use SVE intrinsics only when supported.
|
||||
PACKM_KER_PROT( double, d, packm_armsve256_int_8xk )
|
||||
PACKM_KER_PROT( double, d, packm_armsve512_int_12xk )
|
||||
#endif
|
||||
PACKM_KER_PROT( double, d, packm_armsve512_asm_16xk )
|
||||
PACKM_KER_PROT( double, d, packm_armsve512_asm_10xk )
|
||||
|
||||
Reference in New Issue
Block a user