Clean up SSYRK SME direct warnings
Mark the read-only B input const and limit sve_cntw and ldb definitions to the variants that use them.
This commit is contained in:
@@ -30,6 +30,7 @@ extern void SGEMM_PREPROCESS (uint64_t nbr, uint64_t nbc,\
|
||||
const float * restrict a, float * a_mod) ;
|
||||
|
||||
/* Function Definitions */
|
||||
#if !defined(TRANSA)
|
||||
static uint64_t sve_cntw() {
|
||||
uint64_t cnt;
|
||||
asm volatile(
|
||||
@@ -39,18 +40,21 @@ static uint64_t sve_cntw() {
|
||||
);
|
||||
return cnt;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(__ARM_FEATURE_SME) && defined(__ARM_FEATURE_LOCALLY_STREAMING) && defined(__clang__) && __clang_major__ >= 16
|
||||
// Outer product kernel.
|
||||
// Computes a 2SVL x 2SVL block of C, utilizing all four FP32 tiles of ZA.
|
||||
__attribute__((always_inline)) inline void
|
||||
kernel_2x2(const float *A, float *B, float *C, size_t shared_dim,
|
||||
kernel_2x2(const float *A, const float *B, float *C, size_t shared_dim,
|
||||
size_t ldc, size_t block_rows, size_t block_cols, float alpha,
|
||||
float beta, uint64_t row_idx, uint64_t col_idx)
|
||||
__arm_out("za") __arm_streaming {
|
||||
|
||||
const uint64_t svl = svcntw();
|
||||
#if defined(TRANSA)
|
||||
size_t ldb = ldc;
|
||||
#endif
|
||||
// Predicate set-up
|
||||
svbool_t pg = svptrue_b32();
|
||||
svbool_t pg_a_0 = svwhilelt_b32_u64(0, block_rows);
|
||||
|
||||
Reference in New Issue
Block a user