Browse Source

Update cgemm_kernel_8x2_haswell.c

tags/v0.3.8^2
wjc404 GitHub 6 years ago
parent
commit
eeecd623d8
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 5 additions and 0 deletions
  1. +5
    -0
      kernel/x86_64/cgemm_kernel_8x2_haswell.c

+ 5
- 0
kernel/x86_64/cgemm_kernel_8x2_haswell.c View File

@@ -104,6 +104,7 @@
KERNEL_k1m8n##ndim "decq %5; jnz "#ndim"8882b;"\
#ndim"8883:\n\t"\
"prefetcht0 (%%r14); prefetcht0 64(%%r14);" SAVE_m8n##ndim

/* m=4, ymm 0-3 temp, ymm 4-15 acc, expanded accumulators */
#define KERNEL_k1m4n1 \
"vmovsldup (%0),%%ymm1; vmovshdup (%0),%%ymm2; addq $32,%0;"\
@@ -137,6 +138,7 @@
"decq %5; jnz "#ndim"4441b;"\
#ndim"4442:\n\t"\
SAVE_m4n##ndim

/* m=2, xmm 0-3 temp, xmm 4-15 acc, expanded accumulators */
#if A_CONJ == B_CONJ
#define acc_m2n1_exp(ar,ai,b2,cl,cr) "vfmadd231ps %%xmm"#ar",%%xmm"#b2",%%xmm"#cl"; vfmadd231ps %%xmm"#ai",%%xmm"#b2",%%xmm"#cr";"
@@ -189,6 +191,7 @@
"decq %5; jnz "#ndim"2221b;"\
#ndim"2222:\n\t"\
SAVE_m2n##ndim

/* m=1, xmm 0-3 temp, xmm 4-9 acc, expanded accumulators */
#if A_CONJ == B_CONJ
#define acc_m1n1_exp(ar,ai,b2,cl,cr) "vfmadd231ps %%xmm"#ar",%%xmm"#b2",%%xmm"#cl"; vfmadd231ps %%xmm"#ai",%%xmm"#b2",%%xmm"#cr";"
@@ -242,6 +245,7 @@
"decq %5; jnz "#ndim"1111b;"\
#ndim"1112:\n\t"\
SAVE_m1n##ndim

#define COMPUTE(ndim) {\
b_pref = b_ptr + ndim * K *2;\
__asm__ __volatile__ (\
@@ -266,6 +270,7 @@
"xmm6","xmm7","xmm8","xmm9","xmm10","xmm11","xmm12","xmm13","xmm14","xmm15");\
a_ptr -= M * K *2; b_ptr += ndim * K *2; c_ptr += (ndim * LDC - M) * 2;\
}

int __attribute__ ((noinline))
CNAME(BLASLONG m, BLASLONG n, BLASLONG k, float alphar, float alphai, float * __restrict__ A, float * __restrict__ B, float * __restrict__ C, BLASLONG LDC)
{


Loading…
Cancel
Save