OpenBLAS/kernel/zarch
Marius Hillenbrand 2ee5b899ce s390x: enable S/DGEMM block with explicit loop unrolling + interleaving with clang
The code for SGEMM 16x4 and DGEMM 8x4 blocks on z14 and z15 uses
explicit unrolling and interleaving to improve performance. The code
employs an empty inline asm statement with operands that constrain the
compiler's instruction scheduling and thereby enforce proper overlapping
of load and compute phases. Fix an ifdef to apply that for clang builds,
as well.

Signed-off-by: Marius Hillenbrand <mhillen@linux.ibm.com>
2020-09-02 13:49:31 +02:00
..
KERNEL Init IBM z system (s390x) porting. 2016-04-15 18:02:24 -04:00
KERNEL.Z13 add in runtime cpu detection for zarch (#2349) 2019-12-31 18:03:27 +01:00
KERNEL.Z14 s390x: Use new sgemm kernel also for DGEMM and DTRMM on Z14 2020-05-20 10:23:35 +02:00
KERNEL.ZARCH_GENERIC add in runtime cpu detection for zarch (#2349) 2019-12-31 18:03:27 +01:00
Makefile Init IBM z system (s390x) porting. 2016-04-15 18:02:24 -04:00
camax.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
camin.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
casum.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
caxpy.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
ccopy.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
cdot.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
cgemv_n_4.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
cgemv_t_4.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
ckernelMacrosV.S strmm and ctrmm 2017-03-13 01:23:16 +04:00
crot.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
cscal.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
csum.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
cswap.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
ctrmm4x4V.S s390x: use "lghi" for immediate values to fix build with clang 2020-09-02 13:49:30 +02:00
damax.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
damax_z13.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
damin.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
damin_z13.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
dasum.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
daxpy.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
dcopy.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
ddot.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
dgemv_n_4.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
dgemv_t_4.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
dmax.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
dmax_z13.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
dmin.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
dmin_z13.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
drot.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
dscal.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
dsdot.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
dsum.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
dswap.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
gemm8x4V.S s390x: use "lghi" for immediate values to fix build with clang 2020-09-02 13:49:30 +02:00
gemm_vec.c s390x: enable S/DGEMM block with explicit loop unrolling + interleaving with clang 2020-09-02 13:49:31 +02:00
icamax.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
icamin.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
idamax.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
idamin.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
idmax.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
idmin.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
isamax.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
isamin.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
ismax.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
ismin.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
izamax.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
izamin.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
kernelMacros.S ztrmm kernel. 2017-02-26 06:14:12 +04:00
samax.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
samin.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
sasum.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
saxpy.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
scopy.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
sdot.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
sgemv_n_4.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
sgemv_t_4.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
skernelMacros.S strmm and ctrmm 2017-03-13 01:23:16 +04:00
smax.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
smin.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
srot.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
sscal.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
ssum.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
sswap.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
strmm8x4V.S s390x: use "lghi" for immediate values to fix build with clang 2020-09-02 13:49:30 +02:00
trmm8x4V.S changed to conventional register save area 2017-03-01 03:13:21 +04:00
zamax.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
zamax_z13.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
zamin.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
zamin_z13.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
zasum.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
zaxpy.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
zcopy.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
zdot.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
zgemv_n_4.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
zgemv_t_4.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
zkernelMacrosV.S ztrmm kernel. 2017-02-26 06:14:12 +04:00
zrot.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
zscal.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
zsum.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
zswap.c s390x: avoid variable-length arrays in struct for asm operands 2020-09-02 13:49:31 +02:00
ztrmm4x4V.S s390x: use "lghi" for immediate values to fix build with clang 2020-09-02 13:49:30 +02:00