From f7199b9971ba2af1bdaebc0b29b53cebfa5cc789 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Fri, 13 Sep 2024 08:15:48 -0400 Subject: [PATCH] ac/llvm: don't use the 64-bit umul_hi workaround with LLVM 19.1 It's fixed there. Reviewed-by: Pierre-Eric Pelloux-Prayer Reviewed-by: Qiang Yu Part-of: --- src/amd/llvm/ac_nir_to_llvm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/amd/llvm/ac_nir_to_llvm.c b/src/amd/llvm/ac_nir_to_llvm.c index 00716f91410..ff1431917aa 100644 --- a/src/amd/llvm/ac_nir_to_llvm.c +++ b/src/amd/llvm/ac_nir_to_llvm.c @@ -334,7 +334,8 @@ static LLVMValueRef emit_umul_high(struct ac_llvm_context *ctx, LLVMValueRef src { LLVMValueRef dst64, result; -#if LLVM_VERSION_MAJOR < 20 +/* 64-bit multiplication by a constant is broken in old LLVM. Fixed in LLVM 19.1 and LLVM 20. */ +#if LLVM_VERSION_MAJOR < 19 || (LLVM_VERSION_MAJOR == 19 && LLVM_VERSION_MINOR == 0) if (LLVMIsConstant(src0)) ac_build_optimization_barrier(ctx, &src1, false); else