commit:     4539cbe9ff32de119088e0d6a2b2caba7ebffed8
Author:     Sv. Lockal <lockalsash <AT> gmail <DOT> com>
AuthorDate: Sat Jul  5 14:20:35 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Jul  7 22:24:51 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4539cbe9

dev-util/Tensile: fix compilation of sci-libs/rocBLAS on gfx906

Clang-20 disallowed op_sel in some VOP3P dot instructions.
See: https://github.com/llvm/llvm-project/pull/100485

As ROCm maintains a fork of Clang, these changes did not reach official ROCm 
releases.
However Gentoo uses original Clang-20, which has these incompatible changes.
Luckilly, in Tensile these op_sel do nothing. Generally, they allow to shuffle 
vector elements before multiplication, but with values 0,0/1,1 shuffling is 
disabled and op_sel can be removed.

Closes: https://bugs.gentoo.org/949817
Signed-off-by: Sv. Lockal <lockalsash <AT> gmail.com>
Part-of: https://github.com/gentoo/gentoo/pull/42887
Closes: https://github.com/gentoo/gentoo/pull/42887
Signed-off-by: Sam James <sam <AT> gentoo.org>

 dev-util/Tensile/{Tensile-6.4.1.ebuild => Tensile-6.4.1-r1.ebuild} | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/dev-util/Tensile/Tensile-6.4.1.ebuild 
b/dev-util/Tensile/Tensile-6.4.1-r1.ebuild
similarity index 93%
rename from dev-util/Tensile/Tensile-6.4.1.ebuild
rename to dev-util/Tensile/Tensile-6.4.1-r1.ebuild
index 48f0501c389a..76e374f937b9 100644
--- a/dev-util/Tensile/Tensile-6.4.1.ebuild
+++ b/dev-util/Tensile/Tensile-6.4.1-r1.ebuild
@@ -81,10 +81,13 @@ src_prepare() {
 
        sed -e "s|os\.path\.dirname.*$|\"${EPREFIX}/usr/share/Tensile/Source\", 
end='')|" -i __init__.py || die
 
+       # bug 949817: fix v_dot4_i32_i8 syntax for clang-20
+       sed  's/ op_sel:\[0,0\] op_sel_hi:\[1,1\]//' -i Components/MAC_I8X4.py 
|| die
+
        popd || die
 
        sed -e "/package_data/d" -e "/data_files/d" -i setup.py || die
-       use client && PATCHES= cmake_src_prepare  # do not apply patches again 
in cmake_src_prepare
+       use client && PATCHES='' cmake_src_prepare  # do not apply patches 
again in cmake_src_prepare
 }
 
 src_configure() {

Reply via email to