diff --git a/common.h b/common.h index 8d002c4aa..21f6dd0f9 100644 --- a/common.h +++ b/common.h @@ -313,6 +313,13 @@ typedef int blasint; #define SIZE 2 #define BASE_SHIFT 1 #define ZBASE_SHIFT 2 +#elif defined(FLOAT16) +#define IFLOAT float16 +#define XFLOAT IFLOAT +#define FLOAT float +#define SIZE 2 +#define BASE_SHIFT 1 +#define ZBASE_SHIFT 2 #else #define FLOAT float #define SIZE 4 diff --git a/kernel/riscv64/shgemm_kernel_16x8_zvl256b.c b/kernel/riscv64/shgemm_kernel_16x8_zvl256b.c new file mode 100644 index 000000000..43c1b3a65 --- /dev/null +++ b/kernel/riscv64/shgemm_kernel_16x8_zvl256b.c @@ -0,0 +1,728 @@ + +#include "common.h" + +int CNAME(BLASLONG M, BLASLONG N, BLASLONG K, FLOAT alpha, FLOAT *A, FLOAT *B, FLOAT *C, BLASLONG ldc) +{ + BLASLONG gvl = 0; + BLASLONG m_top = 0; + BLASLONG n_top = 0; + + // -- MAIN PASS + for (BLASLONG j=0; j