BLIS: Missing clobbers (batch 8)

- Add missing xmm, ymm and k registers to clobber lists
  in bli_dgemmsup_rv_zen4_asm_24x8m.c
- Add missing ymm1 in bli_dgemmsup_rv_zen4_asm_24x8m.c
  bli_gemmsup_rv_haswell_asm_d6x8m.c and bli_gemmsup_rd_zen_s6x64.c
- Also change formatting in bli_copyv_zen4_asm_avx512.c
  bli_dgemm_avx512_asm_8x24.c and bli_zero_zmm.c to make
  automatic processing of clobber lists easier.

AMD-Internal: [CPUPL-5895]
Change-Id: If05a3f00e6c0f9033eeced5de165ba4c3128b3e5
This commit is contained in:
Edward Smyth
2025-01-09 11:24:10 -05:00
parent eee3fe1b54
commit 0bae96d7ac
7 changed files with 295 additions and 234 deletions

View File

@@ -5,7 +5,7 @@
libraries.
Copyright (C) 2014, The University of Texas at Austin
Copyright (C) 2022 - 2023, Advanced Micro Devices, Inc. All rights reserved.
Copyright (C) 2022 - 2025, Advanced Micro Devices, Inc. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
@@ -1643,7 +1643,7 @@ void bli_dgemmsup_rd_haswell_asm_6x8m_0x0_U
"xmm4", "xmm5", "xmm6", "xmm7",
"xmm8", "xmm9", "xmm10", "xmm11",
"xmm12", "xmm13", "xmm14", "xmm15",
"ymm0", "ymm2", "ymm3", "ymm4", "ymm5",
"ymm0", "ymm1", "ymm2", "ymm3", "ymm4", "ymm5",
"ymm6", "ymm7", "ymm8", "ymm9", "ymm10", "ymm11",
"ymm12", "ymm13", "ymm14", "ymm15",
"memory"
@@ -1938,7 +1938,7 @@ void bli_dgemmsup_rd_haswell_asm_6x8m_6x0_U
"xmm4", "xmm5", "xmm6", "xmm7",
"xmm8", "xmm9", "xmm10", "xmm11",
"xmm12", "xmm13", "xmm14", "xmm15",
"ymm0", "ymm2", "ymm3", "ymm4", "ymm5",
"ymm0", "ymm1", "ymm2", "ymm3", "ymm4", "ymm5",
"ymm6", "ymm7", "ymm8", "ymm9", "ymm10", "ymm11",
"ymm12", "ymm13", "ymm14", "ymm15",
"memory"
@@ -4212,7 +4212,7 @@ void bli_dgemmsup_rd_haswell_asm_6x8m_6x8_U
"xmm4", "xmm5", "xmm6", "xmm7",
"xmm8", "xmm9", "xmm10", "xmm11",
"xmm12", "xmm13", "xmm14", "xmm15",
"ymm0", "ymm2", "ymm3", "ymm4", "ymm5",
"ymm0", "ymm1", "ymm2", "ymm3", "ymm4", "ymm5",
"ymm6", "ymm7", "ymm8", "ymm9", "ymm10",
"ymm11", "ymm12", "ymm13", "ymm14", "ymm15",
"memory"
@@ -4668,7 +4668,7 @@ void bli_dgemmsup_rd_haswell_asm_6x8m_12x8_U
"xmm4", "xmm5", "xmm6", "xmm7",
"xmm8", "xmm9", "xmm10", "xmm11",
"xmm12", "xmm13", "xmm14", "xmm15",
"ymm0", "ymm2", "ymm3", "ymm4", "ymm5",
"ymm0", "ymm1", "ymm2", "ymm3", "ymm4", "ymm5",
"ymm6", "ymm7", "ymm8", "ymm9", "ymm10",
"ymm11", "ymm12", "ymm13", "ymm14", "ymm15",
"memory"
@@ -5551,7 +5551,7 @@ void bli_dgemmsup_rd_haswell_asm_6x8m_12x16_U
"xmm4", "xmm5", "xmm6", "xmm7",
"xmm8", "xmm9", "xmm10", "xmm11",
"xmm12", "xmm13", "xmm14", "xmm15",
"ymm0", "ymm2", "ymm3", "ymm4", "ymm5",
"ymm0", "ymm1", "ymm2", "ymm3", "ymm4", "ymm5",
"ymm6", "ymm7", "ymm8", "ymm9", "ymm10",
"ymm11", "ymm12", "ymm13", "ymm14", "ymm15",
"memory"
@@ -6242,7 +6242,7 @@ void bli_dgemmsup_rd_haswell_asm_6x8m_18x16_U
"xmm4", "xmm5", "xmm6", "xmm7",
"xmm8", "xmm9", "xmm10", "xmm11",
"xmm12", "xmm13", "xmm14", "xmm15",
"ymm0", "ymm2", "ymm3", "ymm4", "ymm5",
"ymm0", "ymm1", "ymm2", "ymm3", "ymm4", "ymm5",
"ymm6", "ymm7", "ymm8", "ymm9", "ymm10",
"ymm11", "ymm12", "ymm13", "ymm14", "ymm15",
"memory"
@@ -7930,7 +7930,7 @@ void bli_dgemmsup_rd_haswell_asm_6x8m_6x0_L
"xmm4", "xmm5", "xmm6", "xmm7",
"xmm8", "xmm9", "xmm10", "xmm11",
"xmm12", "xmm13", "xmm14", "xmm15",
"ymm0", "ymm2", "ymm3", "ymm4", "ymm5",
"ymm0", "ymm1", "ymm2", "ymm3", "ymm4", "ymm5",
"ymm6", "ymm7", "ymm8", "ymm9", "ymm10",
"ymm11", "ymm12", "ymm13", "ymm14", "ymm15",
"memory"
@@ -8470,7 +8470,7 @@ void bli_dgemmsup_rd_haswell_asm_6x8m_6x8_L
"xmm4", "xmm5", "xmm6", "xmm7",
"xmm8", "xmm9", "xmm10", "xmm11",
"xmm12", "xmm13", "xmm14", "xmm15",
"ymm0", "ymm2", "ymm3", "ymm4", "ymm5",
"ymm0", "ymm1", "ymm2", "ymm3", "ymm4", "ymm5",
"ymm6", "ymm7", "ymm8", "ymm9", "ymm10",
"ymm11", "ymm12", "ymm13", "ymm14", "ymm15",
"memory"
@@ -9339,7 +9339,7 @@ void bli_dgemmsup_rd_haswell_asm_6x8m_12x8_L
"xmm4", "xmm5", "xmm6", "xmm7",
"xmm8", "xmm9", "xmm10", "xmm11",
"xmm12", "xmm13", "xmm14", "xmm15",
"ymm0", "ymm2", "ymm3", "ymm4", "ymm5",
"ymm0", "ymm1", "ymm2", "ymm3", "ymm4", "ymm5",
"ymm6", "ymm7", "ymm8", "ymm9", "ymm10",
"ymm11", "ymm12", "ymm13", "ymm14", "ymm15",
"memory"

View File

@@ -5,7 +5,7 @@
libraries.
Copyright (C) 2014, The University of Texas at Austin
Copyright (C) 2019 - 2023, Advanced Micro Devices, Inc. All rights reserved.
Copyright (C) 2019 - 2025, Advanced Micro Devices, Inc. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
@@ -2543,7 +2543,7 @@ void bli_dgemmsup_rv_haswell_asm_6x8m_12x16_L
"xmm4", "xmm5", "xmm6", "xmm7",
"xmm8", "xmm9", "xmm10", "xmm11",
"xmm12", "xmm13", "xmm14", "xmm15",
"ymm0", "ymm3", "ymm4", "ymm12", "ymm14",
"ymm0", "ymm1", "ymm3", "ymm4", "ymm12", "ymm14",
"memory"
)
}

View File

@@ -4,7 +4,7 @@
An object-based framework for developing high-performance BLAS-like
libraries.
Copyright (C) 2024, Advanced Micro Devices, Inc. All rights reserved.
Copyright (C) 2024 - 2025, Advanced Micro Devices, Inc. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
@@ -341,22 +341,24 @@ void bli_scopyv_zen4_asm_avx512
jmp(.SCALARLOOP)
label(.END)
end_asm(
:
: [n0] "m" (n0),
[x0] "m" (x0),
[incx0] "m" (incx0),
[y0] "m" (y0),
[incy0] "m" (incy0)
: "zmm0", "zmm1", "zmm2", "zmm3",
"zmm4", "zmm5", "zmm6", "zmm7",
"zmm8", "zmm9", "zmm10", "zmm11",
"zmm12", "zmm13", "zmm14", "zmm15",
"xmm0", "rsi", "rdx", "rcx",
"r8", "r9", "r11", "k2",
"memory"
)
end_asm
(
: // output operands
: // input operands
[n0] "m" (n0),
[x0] "m" (x0),
[incx0] "m" (incx0),
[y0] "m" (y0),
[incy0] "m" (incy0)
: // register clobber list
"zmm0", "zmm1", "zmm2", "zmm3",
"zmm4", "zmm5", "zmm6", "zmm7",
"zmm8", "zmm9", "zmm10", "zmm11",
"zmm12", "zmm13", "zmm14", "zmm15",
"xmm0", "rsi", "rdx", "rcx",
"r8", "r9", "r11", "k2",
"memory"
)
AOCL_DTL_TRACE_EXIT(AOCL_DTL_LEVEL_TRACE_2)
}
@@ -682,22 +684,24 @@ void bli_dcopyv_zen4_asm_avx512
jmp(.SCALARLOOP)
label(.END)
end_asm(
:
: [n0] "m" (n0),
[x0] "m" (x0),
[incx0] "m" (incx0),
[y0] "m" (y0),
[incy0] "m" (incy0)
: "zmm0", "zmm1", "zmm2", "zmm3",
"zmm4", "zmm5", "zmm6", "zmm7",
"zmm8", "zmm9", "zmm10", "zmm11",
"zmm12", "zmm13", "zmm14", "zmm15",
"rsi", "rdi", "rcx", "r8",
"r9", "r11", "k2", "xmm0",
"memory"
)
end_asm
(
: // output operands
: // input operands
[n0] "m" (n0),
[x0] "m" (x0),
[incx0] "m" (incx0),
[y0] "m" (y0),
[incy0] "m" (incy0)
: // register clobber list
"zmm0", "zmm1", "zmm2", "zmm3",
"zmm4", "zmm5", "zmm6", "zmm7",
"zmm8", "zmm9", "zmm10", "zmm11",
"zmm12", "zmm13", "zmm14", "zmm15",
"rsi", "rdi", "rcx", "r8",
"r9", "r11", "k2", "xmm0",
"memory"
)
AOCL_DTL_TRACE_EXIT(AOCL_DTL_LEVEL_TRACE_2)
}
@@ -1010,18 +1014,20 @@ void bli_zcopyv_zen4_asm_avx512
and(imm(0), rsi)
label(.END)
end_asm(
:
: [n0] "m" (n0),
[x0] "m" (x0),
[y0] "m" (y0)
: "zmm0", "zmm1", "zmm2", "zmm3",
"zmm4", "zmm5", "zmm6", "zmm7",
"zmm8", "zmm9", "zmm10", "zmm11",
"zmm12", "zmm13", "zmm14", "zmm15",
"zmm16", "rsi", "rdx", "rcx",
"r8", "r9", "k2", "memory"
end_asm
(
: // output operands
: // input operands
[n0] "m" (n0),
[x0] "m" (x0),
[y0] "m" (y0)
: // register clobber list
"zmm0", "zmm1", "zmm2", "zmm3",
"zmm4", "zmm5", "zmm6", "zmm7",
"zmm8", "zmm9", "zmm10", "zmm11",
"zmm12", "zmm13", "zmm14", "zmm15",
"zmm16", "rsi", "rdx", "rcx",
"r8", "r9", "k2", "memory"
)
}
else
@@ -1515,23 +1521,25 @@ void bli_zcopyv_zen4_asm_avx512
and(imm(0), rsi)
label(.END)
end_asm(
:
: [n0] "m" (n0),
[x0] "m" (x0),
[y0] "m" (y0)
: "zmm0", "zmm1", "zmm2", "zmm3",
"zmm4", "zmm5", "zmm6", "zmm7",
"zmm8", "zmm9", "zmm10", "zmm11",
"zmm12", "zmm13", "zmm14", "zmm15",
"zmm16", "zmm17", "zmm18", "zmm19",
"zmm20", "zmm21", "zmm22", "zmm23",
"zmm24", "zmm25", "zmm26", "zmm27",
"zmm28", "zmm29", "zmm30", "zmm31",
"rsi", "rdx", "rcx", "r8",
"r9", "k2", "memory"
)
end_asm
(
: // output operands
: // input operands
[n0] "m" (n0),
[x0] "m" (x0),
[y0] "m" (y0)
: // register clobber list
"zmm0", "zmm1", "zmm2", "zmm3",
"zmm4", "zmm5", "zmm6", "zmm7",
"zmm8", "zmm9", "zmm10", "zmm11",
"zmm12", "zmm13", "zmm14", "zmm15",
"zmm16", "zmm17", "zmm18", "zmm19",
"zmm20", "zmm21", "zmm22", "zmm23",
"zmm24", "zmm25", "zmm26", "zmm27",
"zmm28", "zmm29", "zmm30", "zmm31",
"rsi", "rdx", "rcx", "r8",
"r9", "k2", "memory"
)
}
else
{

View File

@@ -4,7 +4,7 @@
An object-based framework for developing high-performance BLAS-like
libraries.
Copyright (C) 2024, Advanced Micro Devices, Inc. All rights reserved.
Copyright (C) 2024 - 2025, Advanced Micro Devices, Inc. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
@@ -1106,7 +1106,8 @@ void bli_dgemm_avx512_asm_8x24(
\
END_ASM \
( \
:: \
: /* output operands */ \
: /* input operands */ \
[n] "m" (n), \
[m] "m" (m), \
[k] "m" (k), \
@@ -1115,7 +1116,7 @@ void bli_dgemm_avx512_asm_8x24(
[b] "m" (b), \
[beta] "m" (beta), \
[ldc] "m" (ldc) \
: \
: /* register clobber list */ \
"rax", "rbx", "rcx", "rdi", "rdx", "rsi", "r8", "r9", \
"r10", "r11", "r12", "r13", "r14", "r15", "xmm1", "xmm2",\
"zmm0", "zmm1", "zmm2", "zmm3", "zmm4", "zmm5", "zmm6", \
@@ -1123,7 +1124,7 @@ void bli_dgemm_avx512_asm_8x24(
"zmm14", "zmm15", "zmm16", "zmm17", "zmm18", "zmm19", \
"zmm20", "zmm21", "zmm22", "zmm23", "zmm24", "zmm25", \
"zmm26", "zmm27", "zmm28", "zmm29", "zmm30", "zmm31", "memory"\
) \
)
/*

View File

@@ -4,7 +4,7 @@
An object-based framework for developing high-performance BLAS-like
libraries.
Copyright (C) 2023 - 2024, Advanced Micro Devices, Inc. All rights reserved.
Copyright (C) 2023 - 2025, Advanced Micro Devices, Inc. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
@@ -54,9 +54,13 @@ void bli_zero_zmm()
VXORPD(ZMM(30), ZMM(30), ZMM(30))
VXORPD(ZMM(31), ZMM(31), ZMM(31))
END_ASM (:::
"zmm16", "zmm17", "zmm18", "zmm19", "zmm20", "zmm21",
"zmm22", "zmm23", "zmm24", "zmm25", "zmm26", "zmm27", "zmm28",
"zmm29", "zmm30", "zmm31", "memory"
)
END_ASM
(
: // output operands
: // input operands
: // register clobber list
"zmm16", "zmm17", "zmm18", "zmm19", "zmm20", "zmm21",
"zmm22", "zmm23", "zmm24", "zmm25", "zmm26", "zmm27", "zmm28",
"zmm29", "zmm30", "zmm31", "memory"
)
}

View File

@@ -4,7 +4,7 @@
An object-based framework for developing high-performance BLAS-like
libraries.
Copyright (C) 2023 - 2024, Advanced Micro Devices, Inc. All rights reserved.
Copyright (C) 2023 - 2025, Advanced Micro Devices, Inc. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
@@ -46600,14 +46600,16 @@ void bli_dgemmsup_rv_zen4_asm_24x1m_new
: // register clobber list
"rax", "rbx", "rcx", "rdx", "rsi", "rdi",
"r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
"xmm2", "xmm31",
"ymm2",
"zmm0", "zmm1", "zmm2", "zmm3",
"zmm4", "zmm5", "zmm6", "zmm7", "zmm8", "zmm9", "zmm10",
"zmm11", "zmm12", "zmm13", "zmm14", "zmm15",
"zmm16", "zmm17", "zmm18", "zmm19",
"zmm20", "zmm21", "zmm22", "zmm23", "zmm24", "zmm25", "zmm26",
"zmm27", "zmm28", "zmm29", "zmm30", "zmm31",
"xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm6", "xmm7",
"xmm9", "xmm28", "xmm29", "xmm30", "xmm31",
"ymm0", "ymm1", "ymm2", "ymm3", "ymm4", "ymm6", "ymm7",
"ymm9", "ymm28", "ymm29", "ymm30", "ymm31",
"zmm0", "zmm1", "zmm2", "zmm3", "zmm4", "zmm5", "zmm6",
"zmm7", "zmm8", "zmm9", "zmm10", "zmm11", "zmm12", "zmm13",
"zmm14", "zmm15", "zmm16", "zmm17", "zmm18", "zmm19",
"zmm20", "zmm21", "zmm22", "zmm23", "zmm24", "zmm25",
"zmm26", "zmm27", "zmm28", "zmm29", "zmm30", "zmm31",
"k2", "k3",
"memory"
)
} //mloop
@@ -46855,14 +46857,18 @@ void bli_dgemmsup_rv_zen4_asm_24x2m_new
: // register clobber list
"rax", "rbx", "rcx", "rdx", "rsi", "rdi",
"r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
"xmm2", "xmm31",
"ymm2",
"zmm0", "zmm1", "zmm2", "zmm3",
"zmm4", "zmm5", "zmm6", "zmm7", "zmm8", "zmm9", "zmm10",
"zmm11", "zmm12", "zmm13", "zmm14", "zmm15",
"zmm16", "zmm17", "zmm18", "zmm19",
"zmm20", "zmm21", "zmm22", "zmm23", "zmm24", "zmm25", "zmm26",
"zmm27", "zmm28", "zmm29", "zmm30", "zmm31",
"xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm6", "xmm7",
"xmm8", "xmm9", "xmm11", "xmm12", "xmm13", "xmm14",
"xmm15", "xmm28", "xmm29", "xmm30", "xmm31",
"ymm0", "ymm1", "ymm2", "ymm3", "ymm4", "ymm6", "ymm7",
"ymm8", "ymm9", "ymm11", "ymm12", "ymm13", "ymm15",
"ymm28", "ymm29", "ymm30", "ymm31",
"zmm0", "zmm1", "zmm2", "zmm3", "zmm4", "zmm5", "zmm6",
"zmm7", "zmm8", "zmm9", "zmm10", "zmm11", "zmm12", "zmm13",
"zmm14", "zmm15", "zmm16", "zmm17", "zmm18", "zmm19",
"zmm20", "zmm21", "zmm22", "zmm23", "zmm24", "zmm25",
"zmm26", "zmm27", "zmm28", "zmm29", "zmm30", "zmm31",
"k2", "k3",
"memory"
)
} //mloop
@@ -47118,14 +47124,20 @@ void bli_dgemmsup_rv_zen4_asm_24x3m_new
: // register clobber list
"rax", "rbx", "rcx", "rdx", "rsi", "rdi",
"r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
"xmm2", "xmm31",
"ymm2",
"zmm0", "zmm1", "zmm2", "zmm3",
"zmm4", "zmm5", "zmm6", "zmm7", "zmm8", "zmm9", "zmm10",
"zmm11", "zmm12", "zmm13", "zmm14", "zmm15",
"zmm16", "zmm17", "zmm18", "zmm19",
"zmm20", "zmm21", "zmm22", "zmm23", "zmm24", "zmm25", "zmm26",
"zmm27", "zmm28", "zmm29", "zmm30", "zmm31",
"xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm6", "xmm7",
"xmm8", "xmm9", "xmm10", "xmm11", "xmm13", "xmm14",
"xmm15", "xmm16", "xmm17", "xmm19", "xmm20", "xmm26",
"xmm28", "xmm29", "xmm30", "xmm31",
"ymm0", "ymm1", "ymm2", "ymm3", "ymm4", "ymm6", "ymm7",
"ymm8", "ymm9", "ymm10", "ymm11", "ymm13", "ymm14",
"ymm15", "ymm17", "ymm20", "ymm26", "ymm28", "ymm29",
"ymm30", "ymm31",
"zmm0", "zmm1", "zmm2", "zmm3", "zmm4", "zmm5", "zmm6",
"zmm7", "zmm8", "zmm9", "zmm10", "zmm11", "zmm12", "zmm13",
"zmm14", "zmm15", "zmm16", "zmm17", "zmm18", "zmm19",
"zmm20", "zmm21", "zmm22", "zmm23", "zmm24", "zmm25",
"zmm26", "zmm27", "zmm28", "zmm29", "zmm30", "zmm31",
"k2", "k3",
"memory"
)
} //mloop
@@ -47392,14 +47404,22 @@ void bli_dgemmsup_rv_zen4_asm_24x4m_new
: // register clobber list
"rax", "rbx", "rcx", "rdx", "rsi", "rdi",
"r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
"xmm2", "xmm31",
"ymm2",
"zmm0", "zmm1", "zmm2", "zmm3",
"zmm4", "zmm5", "zmm6", "zmm7", "zmm8", "zmm9", "zmm10",
"zmm11", "zmm12", "zmm13", "zmm14", "zmm15",
"zmm16", "zmm17", "zmm18", "zmm19",
"zmm20", "zmm21", "zmm22", "zmm23", "zmm24", "zmm25", "zmm26",
"zmm27", "zmm28", "zmm29", "zmm30", "zmm31",
"xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm6", "xmm7",
"xmm8", "xmm9", "xmm10", "xmm11", "xmm12", "xmm13",
"xmm15", "xmm16", "xmm17", "xmm18", "xmm19", "xmm21",
"xmm22", "xmm24", "xmm25", "xmm26", "xmm27", "xmm28",
"xmm29", "xmm30", "xmm31",
"ymm0", "ymm1", "ymm2", "ymm3", "ymm4", "ymm6", "ymm7",
"ymm8", "ymm9", "ymm10", "ymm11", "ymm12", "ymm13",
"ymm15", "ymm16", "ymm17", "ymm19", "ymm21", "ymm22",
"ymm25", "ymm26", "ymm27", "ymm28", "ymm29", "ymm30",
"ymm31",
"zmm0", "zmm1", "zmm2", "zmm3", "zmm4", "zmm5", "zmm6",
"zmm7", "zmm8", "zmm9", "zmm10", "zmm11", "zmm12", "zmm13",
"zmm14", "zmm15", "zmm16", "zmm17", "zmm18", "zmm19",
"zmm20", "zmm21", "zmm22", "zmm23", "zmm24", "zmm25",
"zmm26", "zmm27", "zmm28", "zmm29", "zmm30", "zmm31",
"k2", "k3",
"memory"
)
} //mloop
@@ -47668,14 +47688,22 @@ void bli_dgemmsup_rv_zen4_asm_24x5m_new
: // register clobber list
"rax", "rbx", "rcx", "rdx", "rsi", "rdi",
"r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
"xmm2", "xmm31",
"ymm2",
"zmm0", "zmm1", "zmm2", "zmm3",
"zmm4", "zmm5", "zmm6", "zmm7", "zmm8", "zmm9", "zmm10",
"zmm11", "zmm12", "zmm13", "zmm14", "zmm15",
"zmm16", "zmm17", "zmm18", "zmm19",
"zmm20", "zmm21", "zmm22", "zmm23", "zmm24", "zmm25", "zmm26",
"zmm27", "zmm28", "zmm29", "zmm30", "zmm31",
"xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm6", "xmm7",
"xmm8", "xmm9", "xmm10", "xmm11", "xmm12", "xmm13",
"xmm14", "xmm15", "xmm17", "xmm19", "xmm21", "xmm23",
"xmm24", "xmm25", "xmm26", "xmm27", "xmm28", "xmm29",
"xmm30", "xmm31",
"ymm0", "ymm1", "ymm2", "ymm3", "ymm4", "ymm6", "ymm7",
"ymm8", "ymm9", "ymm10", "ymm11", "ymm12", "ymm13",
"ymm14", "ymm15", "ymm17", "ymm19", "ymm21", "ymm23",
"ymm24", "ymm25", "ymm26", "ymm27", "ymm28", "ymm29",
"ymm30", "ymm31",
"zmm0", "zmm1", "zmm2", "zmm3", "zmm4", "zmm5", "zmm6",
"zmm7", "zmm8", "zmm9", "zmm10", "zmm11", "zmm12", "zmm13",
"zmm14", "zmm15", "zmm16", "zmm17", "zmm18", "zmm19",
"zmm20", "zmm21", "zmm22", "zmm23", "zmm24", "zmm25",
"zmm26", "zmm27", "zmm28", "zmm29", "zmm30", "zmm31",
"k2", "k3",
"memory"
)
} //mloop
@@ -47948,14 +47976,22 @@ void bli_dgemmsup_rv_zen4_asm_24x6m_new
: // register clobber list
"rax", "rbx", "rcx", "rdx", "rsi", "rdi",
"r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
"xmm2", "xmm31",
"ymm2",
"zmm0", "zmm1", "zmm2", "zmm3",
"zmm4", "zmm5", "zmm6", "zmm7", "zmm8", "zmm9", "zmm10",
"zmm11", "zmm12", "zmm13", "zmm14", "zmm15",
"zmm16", "zmm17", "zmm18", "zmm19",
"zmm20", "zmm21", "zmm22", "zmm23", "zmm24", "zmm25", "zmm26",
"zmm27", "zmm28", "zmm29", "zmm30", "zmm31",
"xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5", "xmm6",
"xmm7", "xmm8", "xmm9", "xmm10", "xmm11", "xmm12", "xmm13",
"xmm14", "xmm15", "xmm16", "xmm17", "xmm19", "xmm21",
"xmm23", "xmm24", "xmm25", "xmm26", "xmm27", "xmm28",
"xmm29", "xmm30", "xmm31",
"ymm0", "ymm1", "ymm2", "ymm3", "ymm4", "ymm5", "ymm6",
"ymm7", "ymm8", "ymm9", "ymm10", "ymm11", "ymm12", "ymm13",
"ymm14", "ymm15", "ymm16", "ymm17", "ymm19", "ymm21",
"ymm23", "ymm24", "ymm25", "ymm26", "ymm27", "ymm28",
"ymm29", "ymm30", "ymm31",
"zmm0", "zmm1", "zmm2", "zmm3", "zmm4", "zmm5", "zmm6",
"zmm7", "zmm8", "zmm9", "zmm10", "zmm11", "zmm12", "zmm13",
"zmm14", "zmm15", "zmm16", "zmm17", "zmm18", "zmm19",
"zmm20", "zmm21", "zmm22", "zmm23", "zmm24", "zmm25",
"zmm26", "zmm27", "zmm28", "zmm29", "zmm30", "zmm31",
"k2", "k3",
"memory"
)
} //mloop
@@ -48237,14 +48273,22 @@ void bli_dgemmsup_rv_zen4_asm_24x7m_new
: // register clobber list
"rax", "rbx", "rcx", "rdx", "rsi", "rdi",
"r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
"xmm2", "xmm31",
"ymm2",
"zmm0", "zmm1", "zmm2", "zmm3",
"zmm4", "zmm5", "zmm6", "zmm7", "zmm8", "zmm9", "zmm10",
"zmm11", "zmm12", "zmm13", "zmm14", "zmm15",
"zmm16", "zmm17", "zmm18", "zmm19",
"zmm20", "zmm21", "zmm22", "zmm23", "zmm24", "zmm25", "zmm26",
"zmm27", "zmm28", "zmm29", "zmm30", "zmm31",
"xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5", "xmm6",
"xmm7", "xmm8", "xmm9", "xmm10", "xmm11", "xmm12", "xmm13",
"xmm14", "xmm15", "xmm16", "xmm17", "xmm18", "xmm19",
"xmm22", "xmm24", "xmm25", "xmm26", "xmm27", "xmm28",
"xmm29", "xmm30", "xmm31",
"ymm0", "ymm1", "ymm2", "ymm3", "ymm4", "ymm5", "ymm6",
"ymm7", "ymm8", "ymm9", "ymm10", "ymm11", "ymm12", "ymm13",
"ymm14", "ymm15", "ymm16", "ymm17", "ymm18", "ymm19",
"ymm22", "ymm24", "ymm25", "ymm26", "ymm27", "ymm28",
"ymm29", "ymm30", "ymm31",
"zmm0", "zmm1", "zmm2", "zmm3", "zmm4", "zmm5", "zmm6",
"zmm7", "zmm8", "zmm9", "zmm10", "zmm11", "zmm12", "zmm13",
"zmm14", "zmm15", "zmm16", "zmm17", "zmm18", "zmm19",
"zmm20", "zmm21", "zmm22", "zmm23", "zmm24", "zmm25",
"zmm26", "zmm27", "zmm28", "zmm29", "zmm30", "zmm31",
"k2", "k3",
"memory"
)
} //mloop
@@ -48544,36 +48588,44 @@ void bli_dgemmsup_rv_zen4_asm_24x8m_new
vzeroupper()
end_asm(
: // output operands (none)
: // input operands
[ps_a8] "m" (ps_a8),
[m_iter] "m" (m_iter),
[m_left] "m" (m_left),
[k_iter] "m" (k_iter),
[k_left] "m" (k_left),
[a] "m" (a),
[rs_a0] "m" (rs_a0),
[cs_a0] "m" (cs_a0),
[b] "m" (b),
[rs_b0] "m" (rs_b0),
[cs_b0] "m" (cs_b0),
[alpha] "m" (alpha),
[beta] "m" (beta),
[c] "m" (c),
[rs_c0] "m" (rs_c0),
[cs_c0] "m" (cs_c0)
: // register clobber list
"rax", "rbx", "rcx", "rdx", "rsi", "rdi",
"r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
"xmm2", "xmm31",
"ymm2",
"zmm0", "zmm1", "zmm2", "zmm3",
"zmm4", "zmm5", "zmm6", "zmm7", "zmm8", "zmm9", "zmm10",
"zmm11", "zmm12", "zmm13", "zmm14", "zmm15",
"zmm16", "zmm17", "zmm18", "zmm19",
"zmm20", "zmm21", "zmm22", "zmm23", "zmm24", "zmm25", "zmm26",
"zmm27", "zmm28", "zmm29", "zmm30", "zmm31",
"memory"
: // output operands (none)
: // input operands
[ps_a8] "m" (ps_a8),
[m_iter] "m" (m_iter),
[m_left] "m" (m_left),
[k_iter] "m" (k_iter),
[k_left] "m" (k_left),
[a] "m" (a),
[rs_a0] "m" (rs_a0),
[cs_a0] "m" (cs_a0),
[b] "m" (b),
[rs_b0] "m" (rs_b0),
[cs_b0] "m" (cs_b0),
[alpha] "m" (alpha),
[beta] "m" (beta),
[c] "m" (c),
[rs_c0] "m" (rs_c0),
[cs_c0] "m" (cs_c0)
: // register clobber list
"rax", "rbx", "rcx", "rdx", "rsi", "rdi",
"r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
"xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5", "xmm6",
"xmm7", "xmm8", "xmm9", "xmm10", "xmm11", "xmm12", "xmm13",
"xmm14", "xmm15", "xmm16", "xmm17", "xmm18", "xmm19",
"xmm20", "xmm21", "xmm22", "xmm23", "xmm24", "xmm25",
"xmm26", "xmm27", "xmm28", "xmm29", "xmm30", "xmm31",
"ymm0", "ymm1", "ymm2", "ymm3", "ymm4", "ymm5", "ymm6",
"ymm7", "ymm8", "ymm9", "ymm10", "ymm11", "ymm12", "ymm13",
"ymm14", "ymm15", "ymm16", "ymm17", "ymm18", "ymm19",
"ymm20", "ymm21", "ymm22", "ymm23", "ymm24", "ymm25",
"ymm26", "ymm27", "ymm28", "ymm29", "ymm30", "ymm31",
"zmm0", "zmm1", "zmm2", "zmm3", "zmm4", "zmm5", "zmm6",
"zmm7", "zmm8", "zmm9", "zmm10", "zmm11", "zmm12", "zmm13",
"zmm14", "zmm15", "zmm16", "zmm17", "zmm18", "zmm19",
"zmm20", "zmm21", "zmm22", "zmm23", "zmm24", "zmm25",
"zmm26", "zmm27", "zmm28", "zmm29", "zmm30", "zmm31",
"k2", "k3", "k4",
"memory"
)
} //mloop
@@ -50211,12 +50263,11 @@ void bli_dgemmsup_rv_zen4_asm_24x8m
"r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
"xmm2", "xmm31",
"ymm2",
"zmm0", "zmm1", "zmm2", "zmm3",
"zmm4", "zmm5", "zmm6", "zmm7", "zmm8", "zmm9", "zmm10",
"zmm11", "zmm12", "zmm13", "zmm14", "zmm15",
"zmm16", "zmm17", "zmm18", "zmm19",
"zmm20", "zmm21", "zmm22", "zmm23", "zmm24", "zmm25", "zmm26",
"zmm27", "zmm28", "zmm29", "zmm30", "zmm31",
"zmm0", "zmm1", "zmm2", "zmm3", "zmm4", "zmm5", "zmm6",
"zmm7", "zmm8", "zmm9", "zmm10", "zmm11", "zmm12", "zmm13",
"zmm14", "zmm15", "zmm16", "zmm17", "zmm18", "zmm19",
"zmm20", "zmm21", "zmm22", "zmm23", "zmm24", "zmm25",
"zmm26", "zmm27", "zmm28", "zmm29", "zmm30", "zmm31",
"memory"
)
} //mloop
@@ -51706,13 +51757,13 @@ void bli_dgemmsup_rv_zen4_asm_24x7m
"r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
"xmm2", "xmm31",
"ymm2",
"zmm0", "zmm1", "zmm2", "zmm3",
"zmm4", "zmm5", "zmm6", "zmm7", "zmm8", "zmm9", "zmm10",
"zmm11", "zmm12", "zmm13", "zmm14", "zmm15",
"zmm16", "zmm17", "zmm18", "zmm19",
"zmm20", "zmm21", "zmm22", "zmm23", "zmm24", "zmm25", "zmm26",
"zmm27", "zmm28", "zmm29", "zmm30", "zmm31",
"k2", "memory"
"zmm0", "zmm1", "zmm2", "zmm3", "zmm4", "zmm5", "zmm6",
"zmm7", "zmm8", "zmm9", "zmm10", "zmm11", "zmm12", "zmm13",
"zmm14", "zmm15", "zmm16", "zmm17", "zmm18", "zmm19",
"zmm20", "zmm21", "zmm22", "zmm23", "zmm24", "zmm25",
"zmm26", "zmm27", "zmm28", "zmm29", "zmm30", "zmm31",
"k2",
"memory"
)
} //mloop
@@ -53089,13 +53140,13 @@ void bli_dgemmsup_rv_zen4_asm_24x6m
"r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
"xmm2", "xmm31",
"ymm2",
"zmm0", "zmm1", "zmm2", "zmm3",
"zmm4", "zmm5", "zmm6", "zmm7", "zmm8", "zmm9", "zmm10",
"zmm11", "zmm12", "zmm13", "zmm14", "zmm15",
"zmm16", "zmm17", "zmm18", "zmm19",
"zmm20", "zmm21", "zmm22", "zmm23", "zmm24", "zmm25", "zmm26",
"zmm27", "zmm28", "zmm29", "zmm30", "zmm31",
"k2", "memory"
"zmm0", "zmm1", "zmm2", "zmm3", "zmm4", "zmm5", "zmm6",
"zmm7", "zmm8", "zmm9", "zmm10", "zmm11", "zmm12", "zmm13",
"zmm14", "zmm15", "zmm16", "zmm17", "zmm18", "zmm24",
"zmm25", "zmm26", "zmm27", "zmm28", "zmm29", "zmm30",
"zmm31",
"k2",
"memory"
)
} //mloop
@@ -54355,13 +54406,13 @@ void bli_dgemmsup_rv_zen4_asm_24x5m
"r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
"xmm2", "xmm31",
"ymm2",
"zmm0", "zmm1", "zmm2", "zmm3",
"zmm4", "zmm5", "zmm6", "zmm7", "zmm8", "zmm9", "zmm10",
"zmm11", "zmm12", "zmm13", "zmm14", "zmm15",
"zmm16", "zmm17", "zmm18", "zmm19",
"zmm20", "zmm21", "zmm22", "zmm23", "zmm24", "zmm25", "zmm26",
"zmm27", "zmm28", "zmm29", "zmm30", "zmm31",
"k2", "memory"
"zmm0", "zmm1", "zmm2", "zmm3", "zmm4", "zmm5", "zmm6",
"zmm7", "zmm8", "zmm9", "zmm10", "zmm11", "zmm12", "zmm13",
"zmm14", "zmm15", "zmm16", "zmm17", "zmm18", "zmm24",
"zmm25", "zmm26", "zmm27", "zmm28", "zmm29", "zmm30",
"zmm31",
"k2",
"memory"
)
} //mloop
@@ -55491,16 +55542,16 @@ void bli_dgemmsup_rv_zen4_asm_24x4m
[mask] "m" (mask)
: // register clobber list
"rax", "rbx", "rcx", "rdx", "rsi", "rdi",
"r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
"r8", "r9", "r10", "r11", "r12", "r13", "r14",
"xmm2", "xmm31",
"ymm2",
"zmm0", "zmm1", "zmm2", "zmm3",
"zmm4", "zmm5", "zmm6", "zmm7", "zmm8", "zmm9", "zmm10",
"zmm11", "zmm12", "zmm13", "zmm14", "zmm15",
"zmm16", "zmm17", "zmm18", "zmm19",
"zmm20", "zmm21", "zmm22", "zmm23", "zmm24", "zmm25", "zmm26",
"zmm27", "zmm28", "zmm29", "zmm30", "zmm31",
"k2", "memory"
"zmm0", "zmm1", "zmm2", "zmm3", "zmm4", "zmm5", "zmm6",
"zmm7", "zmm8", "zmm9", "zmm10", "zmm11", "zmm12", "zmm13",
"zmm14", "zmm15", "zmm16", "zmm17", "zmm18", "zmm19",
"zmm20", "zmm21", "zmm22", "zmm23", "zmm24", "zmm25",
"zmm26", "zmm27", "zmm28", "zmm29", "zmm30", "zmm31",
"k2",
"memory"
)
} //mloop
@@ -56506,16 +56557,16 @@ void bli_dgemmsup_rv_zen4_asm_24x3m
[mask] "m" (mask)
: // register clobber list
"rax", "rbx", "rcx", "rdx", "rsi", "rdi",
"r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
"r8", "r9", "r10", "r11", "r12", "r13", "r14",
"xmm2", "xmm31",
"ymm2",
"zmm0", "zmm1", "zmm2", "zmm3",
"zmm4", "zmm5", "zmm6", "zmm7", "zmm8", "zmm9", "zmm10",
"zmm11", "zmm12", "zmm13", "zmm14", "zmm15",
"zmm16", "zmm17", "zmm18", "zmm19",
"zmm20", "zmm21", "zmm22", "zmm23", "zmm24", "zmm25", "zmm26",
"zmm27", "zmm28", "zmm29", "zmm30", "zmm31",
"k2", "memory"
"zmm0", "zmm1", "zmm2", "zmm3", "zmm4", "zmm5", "zmm6",
"zmm7", "zmm8", "zmm9", "zmm10", "zmm11", "zmm12", "zmm13",
"zmm14", "zmm15", "zmm16", "zmm17", "zmm18", "zmm19",
"zmm20", "zmm21", "zmm22", "zmm26", "zmm27", "zmm28",
"zmm29", "zmm30", "zmm31",
"k2",
"memory"
)
} //mloop
@@ -57399,16 +57450,15 @@ void bli_dgemmsup_rv_zen4_asm_24x2m
[mask] "m" (mask)
: // register clobber list
"rax", "rbx", "rcx", "rdx", "rsi", "rdi",
"r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
"r8", "r9", "r10", "r11", "r12", "r13", "r14",
"xmm2", "xmm31",
"ymm2",
"zmm0", "zmm1", "zmm2", "zmm3",
"zmm4", "zmm5", "zmm6", "zmm7", "zmm8", "zmm9", "zmm10",
"zmm11", "zmm12", "zmm13", "zmm14", "zmm15",
"zmm16", "zmm17", "zmm18", "zmm19",
"zmm20", "zmm21", "zmm22", "zmm23", "zmm24", "zmm25", "zmm26",
"zmm27", "zmm28", "zmm29", "zmm30", "zmm31",
"k2", "memory"
"zmm0", "zmm1", "zmm2", "zmm3", "zmm4", "zmm5", "zmm6",
"zmm7", "zmm8", "zmm9", "zmm10", "zmm12", "zmm14", "zmm15",
"zmm16", "zmm17", "zmm18", "zmm19", "zmm28", "zmm29",
"zmm30", "zmm31",
"k2",
"memory"
)
} //mloop
@@ -58168,16 +58218,14 @@ void bli_dgemmsup_rv_zen4_asm_24x1m
[mask] "m" (mask)
: // register clobber list
"rax", "rbx", "rcx", "rdx", "rsi", "rdi",
"r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
"r8", "r9", "r10", "r11", "r12", "r13", "r14",
"xmm2", "xmm31",
"ymm2",
"zmm0", "zmm1", "zmm2", "zmm3",
"zmm4", "zmm5", "zmm6", "zmm7", "zmm8", "zmm9", "zmm10",
"zmm11", "zmm12", "zmm13", "zmm14", "zmm15",
"zmm16", "zmm17", "zmm18", "zmm19",
"zmm20", "zmm21", "zmm22", "zmm23", "zmm24", "zmm25", "zmm26",
"zmm27", "zmm28", "zmm29", "zmm30", "zmm31",
"k2", "memory"
"zmm0", "zmm1", "zmm2", "zmm3", "zmm4", "zmm5", "zmm6",
"zmm7", "zmm8", "zmm9", "zmm10", "zmm12", "zmm14", "zmm15",
"zmm16", "zmm18", "zmm28", "zmm29", "zmm30", "zmm31",
"k2",
"memory"
)
} //mloop

View File

@@ -4,7 +4,7 @@
An object-based framework for developing high-performance BLAS-like
libraries.
Copyright (C) 2023 - 2024, Advanced Micro Devices, Inc. All rights reserved.
Copyright (C) 2023 - 2025, Advanced Micro Devices, Inc. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
@@ -2042,7 +2042,7 @@ void bli_sgemmsup_rd_zen_asm_1x64_avx512
"rax", "rbx", "rcx", "rdx", "rsi", "rdi",
"r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
"xmm0", "xmm1", "xmm2", "xmm4", "xmm6",
"ymm0", "ymm2", "ymm3", "ymm4", "ymm6",
"ymm0", "ymm1", "ymm2", "ymm3", "ymm4", "ymm6",
"ymm7", "ymm8", "ymm10", "ymm11", "ymm13",
"ymm14", "ymm17",
"zmm0", "zmm1", "zmm2", "zmm3",
@@ -4058,7 +4058,7 @@ void bli_sgemmsup_rd_zen_asm_1x48_avx512
"rax", "rbx", "rcx", "rdx", "rsi", "rdi",
"r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
"xmm0", "xmm1", "xmm2", "xmm4", "xmm6",
"ymm0", "ymm2", "ymm3", "ymm4", "ymm6",
"ymm0", "ymm1", "ymm2", "ymm3", "ymm4", "ymm6",
"ymm7", "ymm8", "ymm10", "ymm11", "ymm13", "ymm14", "ymm17",
"zmm0", "zmm1", "zmm2", "zmm3",
"zmm4", "zmm5", "zmm6", "zmm7", "zmm8", "zmm9", "zmm10",
@@ -6071,7 +6071,7 @@ void bli_sgemmsup_rd_zen_asm_1x32_avx512
"rax", "rbx", "rcx", "rdx", "rsi", "rdi",
"r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
"xmm0", "xmm1", "xmm2", "xmm4", "xmm6",
"ymm0", "ymm2", "ymm3", "ymm4", "ymm6",
"ymm0", "ymm1", "ymm2", "ymm3", "ymm4", "ymm6",
"ymm7", "ymm8", "ymm10", "ymm11", "ymm13",
"ymm14", "ymm17",
"zmm0", "zmm1", "zmm2", "zmm3",