Init Sandybridge codes based on Nehalem.
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
SGEMMKERNEL = gemm_kernel_4x8_nehalem.S
|
||||
SGEMMINCOPY = gemm_ncopy_4.S
|
||||
SGEMMITCOPY = gemm_tcopy_4.S
|
||||
SGEMMONCOPY = ../generic/gemm_ncopy_8.c
|
||||
SGEMMOTCOPY = ../generic/gemm_tcopy_8.c
|
||||
SGEMMINCOPYOBJ = sgemm_incopy$(TSUFFIX).$(SUFFIX)
|
||||
SGEMMITCOPYOBJ = sgemm_itcopy$(TSUFFIX).$(SUFFIX)
|
||||
SGEMMONCOPYOBJ = sgemm_oncopy$(TSUFFIX).$(SUFFIX)
|
||||
SGEMMOTCOPYOBJ = sgemm_otcopy$(TSUFFIX).$(SUFFIX)
|
||||
DGEMMKERNEL = gemm_kernel_2x8_nehalem.S
|
||||
DGEMMINCOPY = dgemm_ncopy_2.S
|
||||
DGEMMITCOPY = dgemm_tcopy_2.S
|
||||
DGEMMONCOPY = dgemm_ncopy_8.S
|
||||
DGEMMOTCOPY = dgemm_tcopy_8.S
|
||||
DGEMMINCOPYOBJ = dgemm_incopy$(TSUFFIX).$(SUFFIX)
|
||||
DGEMMITCOPYOBJ = dgemm_itcopy$(TSUFFIX).$(SUFFIX)
|
||||
DGEMMONCOPYOBJ = dgemm_oncopy$(TSUFFIX).$(SUFFIX)
|
||||
DGEMMOTCOPYOBJ = dgemm_otcopy$(TSUFFIX).$(SUFFIX)
|
||||
CGEMMKERNEL = zgemm_kernel_2x4_nehalem.S
|
||||
CGEMMINCOPY = zgemm_ncopy_2.S
|
||||
CGEMMITCOPY = zgemm_tcopy_2.S
|
||||
CGEMMONCOPY = ../generic/zgemm_ncopy_4.c
|
||||
CGEMMOTCOPY = ../generic/zgemm_tcopy_4.c
|
||||
CGEMMINCOPYOBJ = cgemm_incopy$(TSUFFIX).$(SUFFIX)
|
||||
CGEMMITCOPYOBJ = cgemm_itcopy$(TSUFFIX).$(SUFFIX)
|
||||
CGEMMONCOPYOBJ = cgemm_oncopy$(TSUFFIX).$(SUFFIX)
|
||||
CGEMMOTCOPYOBJ = cgemm_otcopy$(TSUFFIX).$(SUFFIX)
|
||||
ZGEMMKERNEL = zgemm_kernel_1x4_nehalem.S
|
||||
ZGEMMINCOPY = zgemm_ncopy_1.S
|
||||
ZGEMMITCOPY = zgemm_tcopy_1.S
|
||||
ZGEMMONCOPY = ../generic/zgemm_ncopy_4.c
|
||||
ZGEMMOTCOPY = ../generic/zgemm_tcopy_4.c
|
||||
ZGEMMINCOPYOBJ = zgemm_incopy$(TSUFFIX).$(SUFFIX)
|
||||
ZGEMMITCOPYOBJ = zgemm_itcopy$(TSUFFIX).$(SUFFIX)
|
||||
ZGEMMONCOPYOBJ = zgemm_oncopy$(TSUFFIX).$(SUFFIX)
|
||||
ZGEMMOTCOPYOBJ = zgemm_otcopy$(TSUFFIX).$(SUFFIX)
|
||||
|
||||
STRSMKERNEL_LN = trsm_kernel_LN_4x8_nehalem.S
|
||||
STRSMKERNEL_LT = trsm_kernel_LT_4x8_nehalem.S
|
||||
STRSMKERNEL_RN = trsm_kernel_LT_4x8_nehalem.S
|
||||
STRSMKERNEL_RT = trsm_kernel_RT_4x8_nehalem.S
|
||||
|
||||
DTRSMKERNEL_LN = trsm_kernel_LN_2x8_nehalem.S
|
||||
DTRSMKERNEL_LT = trsm_kernel_LT_2x8_nehalem.S
|
||||
DTRSMKERNEL_RN = trsm_kernel_LT_2x8_nehalem.S
|
||||
DTRSMKERNEL_RT = trsm_kernel_RT_2x8_nehalem.S
|
||||
|
||||
CTRSMKERNEL_LN = ztrsm_kernel_LN_2x4_nehalem.S
|
||||
CTRSMKERNEL_LT = ztrsm_kernel_LT_2x4_nehalem.S
|
||||
CTRSMKERNEL_RN = ztrsm_kernel_LT_2x4_nehalem.S
|
||||
CTRSMKERNEL_RT = ztrsm_kernel_RT_2x4_nehalem.S
|
||||
|
||||
ZTRSMKERNEL_LN = ztrsm_kernel_LT_1x4_nehalem.S
|
||||
ZTRSMKERNEL_LT = ztrsm_kernel_LT_1x4_nehalem.S
|
||||
ZTRSMKERNEL_RN = ztrsm_kernel_LT_1x4_nehalem.S
|
||||
ZTRSMKERNEL_RT = ztrsm_kernel_RT_1x4_nehalem.S
|
||||
|
||||
CGEMM3MKERNEL = zgemm3m_kernel_4x8_nehalem.S
|
||||
ZGEMM3MKERNEL = zgemm3m_kernel_2x8_nehalem.S
|
||||
@@ -45,6 +45,12 @@
|
||||
#define PREFETCHW prefetcht0
|
||||
#endif
|
||||
|
||||
#ifdef SANDYBRIDGE
|
||||
#define PREFETCHSIZE 16
|
||||
#define PREFETCH prefetcht0
|
||||
#define PREFETCHW prefetcht0
|
||||
#endif
|
||||
|
||||
#ifndef MOVAPS
|
||||
#define MOVAPS movaps
|
||||
#endif
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
#define PREFETCHW prefetcht0
|
||||
#endif
|
||||
|
||||
#if defined(CORE2) || defined(PENRYN) || defined(DUNNINGTON) || defined(NEHALEM)
|
||||
#if defined(CORE2) || defined(PENRYN) || defined(DUNNINGTON) || defined(NEHALEM) || defined(SANDYBRIDGE)
|
||||
#define PREFETCHSIZE 16
|
||||
#define PREFETCH prefetcht0
|
||||
#define PREFETCHW prefetcht0
|
||||
|
||||
@@ -45,6 +45,12 @@
|
||||
#define PREFETCHW prefetcht0
|
||||
#endif
|
||||
|
||||
#ifdef SANDYBRIDGE
|
||||
#define PREFETCHSIZE 12
|
||||
#define PREFETCH prefetcht0
|
||||
#define PREFETCHW prefetcht0
|
||||
#endif
|
||||
|
||||
#ifndef MOVAPS
|
||||
#define MOVAPS movaps
|
||||
#endif
|
||||
|
||||
@@ -52,6 +52,13 @@
|
||||
#define MOVUPS_A movups
|
||||
#endif
|
||||
|
||||
#ifdef SANDYBRIDGE
|
||||
#define PREFETCHSIZE 12
|
||||
#define PREFETCH prefetcht0
|
||||
#define PREFETCHW prefetcht0
|
||||
#define MOVUPS_A movups
|
||||
#endif
|
||||
|
||||
#if defined(CORE2) || defined(PENRYN) || defined(DUNNINGTON)
|
||||
#define PREFETCHSIZE 16
|
||||
#define PREFETCH prefetcht0
|
||||
|
||||
@@ -51,6 +51,12 @@
|
||||
#define MOVUPS_A movups
|
||||
#endif
|
||||
|
||||
#ifdef SANDYBRIDGE
|
||||
#define PREFETCHSIZE 12
|
||||
#define PREFETCH prefetcht0
|
||||
#define MOVUPS_A movups
|
||||
#endif
|
||||
|
||||
#if defined(CORE2) || defined(PENRYN) || defined(DUNNINGTON)
|
||||
#define PREFETCHSIZE 16
|
||||
#define PREFETCH prefetcht0
|
||||
|
||||
@@ -46,6 +46,13 @@
|
||||
#define MOVUPS_A movups
|
||||
#endif
|
||||
|
||||
#ifdef SANDYBRIDGE
|
||||
#define PREFETCHSIZE 16
|
||||
#define PREFETCH prefetcht0
|
||||
#define PREFETCHW prefetcht0
|
||||
#define MOVUPS_A movups
|
||||
#endif
|
||||
|
||||
#ifdef MOVUPS_A
|
||||
#define MOVUPS_A1(OFF, ADDR, REGS) MOVUPS_A OFF(ADDR), REGS
|
||||
#define MOVUPS_A2(OFF, ADDR, BASE, SCALE, REGS) MOVUPS_A OFF(ADDR, BASE, SCALE), REGS
|
||||
|
||||
@@ -46,6 +46,13 @@
|
||||
#define PREFETCHW prefetcht0
|
||||
#endif
|
||||
|
||||
#if defined(SANDYBRIDGE)
|
||||
#define RPREFETCHSIZE 12
|
||||
#define WPREFETCHSIZE (RPREFETCHSIZE * 2)
|
||||
#define PREFETCH prefetcht0
|
||||
#define PREFETCHW prefetcht0
|
||||
#endif
|
||||
|
||||
#ifndef WINDOWS_ABI
|
||||
|
||||
#define M ARG1 /* rdi */
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
#define PREFETCHW prefetcht0
|
||||
#endif
|
||||
|
||||
#if defined(CORE2) || defined(PENRYN) || defined(DUNNINGTON) || defined(NEHALEM)
|
||||
#if defined(CORE2) || defined(PENRYN) || defined(DUNNINGTON) || defined(NEHALEM) || defined(SANDYBRIDGE)
|
||||
#define RPREFETCHSIZE 12
|
||||
#define WPREFETCHSIZE (RPREFETCHSIZE * 4)
|
||||
#define PREFETCH prefetcht0
|
||||
|
||||
@@ -46,6 +46,13 @@
|
||||
#define PREFETCHW prefetcht0
|
||||
#endif
|
||||
|
||||
#if defined(SANDYBRIDGE)
|
||||
#define RPREFETCHSIZE 12
|
||||
#define WPREFETCHSIZE (RPREFETCHSIZE * 2)
|
||||
#define PREFETCH prefetcht0
|
||||
#define PREFETCHW prefetcht0
|
||||
#endif
|
||||
|
||||
#ifndef WINDOWS_ABI
|
||||
|
||||
#define M ARG1 /* rdi */
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
#define PREFETCHW prefetcht0
|
||||
#endif
|
||||
|
||||
#if defined(CORE2) || defined(PENRYN) || defined(DUNNINGTON) || defined(NEHALEM)
|
||||
#if defined(CORE2) || defined(PENRYN) || defined(DUNNINGTON) || defined(NEHALEM) || defined(SANDYBRIDGE)
|
||||
#define RPREFETCHSIZE 12
|
||||
#define WPREFETCHSIZE (RPREFETCHSIZE * 4)
|
||||
#define PREFETCH prefetcht0
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
#define PREFETCHSIZE (16 * 12)
|
||||
#endif
|
||||
|
||||
#ifdef NEHALEM
|
||||
#if defined(NEHALEM) || defined(SANDYBRIDGE)
|
||||
#define PREFETCH prefetcht0
|
||||
#define PREFETCHW prefetcht0
|
||||
#define PREFETCHSIZE (16 * 12)
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
#define PREFETCHSIZE (16 * 12)
|
||||
#endif
|
||||
|
||||
#ifdef NEHALEM
|
||||
#if defined(NEHALEM) || defined(SANDYBRIDGE)
|
||||
#define PREFETCH prefetcht0
|
||||
#define PREFETCHW prefetcht0
|
||||
#define PREFETCHSIZE (16 * 12)
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
#define PREFETCHSIZE (16 * 12)
|
||||
#endif
|
||||
|
||||
#ifdef NEHALEM
|
||||
#if defined(NEHALEM) || defined(SANDYBRIDGE)
|
||||
#define PREFETCH prefetcht0
|
||||
#define PREFETCHW prefetcht0
|
||||
#define PREFETCHSIZE (16 * 12)
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
#define PREFETCHSIZE (16 * 12)
|
||||
#endif
|
||||
|
||||
#ifdef NEHALEM
|
||||
#if defined(NEHALEM) || defined(SANDYBRIDGE)
|
||||
#define PREFETCH prefetcht0
|
||||
#define PREFETCHW prefetcht0
|
||||
#define PREFETCHSIZE (16 * 24)
|
||||
|
||||
@@ -685,7 +685,7 @@
|
||||
cmpq $2 * SIZE, INCX
|
||||
jne .L120
|
||||
|
||||
#if defined(ALIGNED_ACCESS) && !defined(NEHALEM)
|
||||
#if defined(ALIGNED_ACCESS) && !defined(NEHALEM) && !defined(SANDYBRIDGE)
|
||||
|
||||
pshufd $0, %xmm0, %xmm14
|
||||
pshufd $0, %xmm1, %xmm1
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
|
||||
#include "l1param.h"
|
||||
|
||||
#if defined(NEHALEM) || defined(PENRYN) || defined(DUNNINGTON) || defined(BARCELONA) || defined(NANO)
|
||||
#if defined(NEHALEM) || defined(PENRYN) || defined(DUNNINGTON) || defined(BARCELONA) || defined(NANO) || defined(SANDYBRIDGE)
|
||||
#define USE_PSHUFD
|
||||
#else
|
||||
#define USE_PSHUFD_HALF
|
||||
@@ -803,7 +803,7 @@
|
||||
cmpq $2 * SIZE, INCX
|
||||
jne .L220
|
||||
|
||||
#if defined(ALIGNED_ACCESS) && !defined(NEHALEM)
|
||||
#if defined(ALIGNED_ACCESS) && !defined(NEHALEM) && !defined(SANDYBRIDGE)
|
||||
|
||||
movddup %xmm0, %xmm14
|
||||
pxor %xmm15, %xmm15
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
#define PREFETCHSIZE (16 * 24)
|
||||
#endif
|
||||
|
||||
#ifdef NEHALEM
|
||||
#if defined(NEHALEM) || defined(SANDYBRIDGE)
|
||||
#define PREFETCH prefetcht0
|
||||
#define PREFETCHW prefetcht0
|
||||
#define PREFETCHSIZE (16 * 24)
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
#define PREFETCHSIZE (16 * 24)
|
||||
#endif
|
||||
|
||||
#ifdef NEHALEM
|
||||
#if defined(NEHALEM) || defined(SANDYBRIDGE)
|
||||
#define PREFETCH prefetcht0
|
||||
#define PREFETCHW prefetcht0
|
||||
#define PREFETCHSIZE (16 * 24)
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
#define PREFETCHSIZE (16 * 24)
|
||||
#endif
|
||||
|
||||
#ifdef NEHALEM
|
||||
#if defined(NEHALEM) || defined(SANDYBRIDGE)
|
||||
#define PREFETCH prefetcht0
|
||||
#define PREFETCHW prefetcht0
|
||||
#define PREFETCHSIZE (16 * 24)
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
#define PREFETCHSIZE (16 * 24)
|
||||
#endif
|
||||
|
||||
#ifdef NEHALEM
|
||||
#if defined(NEHALEM) || defined(SANDYBRIDGE)
|
||||
#define PREFETCH prefetcht0
|
||||
#define PREFETCHW prefetcht0
|
||||
#define PREFETCHSIZE (16 * 24)
|
||||
|
||||
Reference in New Issue
Block a user