From 014a40f8f643a5dad6a6ba5c4bf6ea5d4f445fe6 Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Tue, 22 Jun 2021 22:26:13 +0200 Subject: [PATCH] Disable llvm generating 128-bit multiply libcalls on 32-bit ARM Merge commit 789708617d20 from llvm git (Koutheir Attouchi): Do not generate calls to the 128-bit function __multi3() on 32-bit ARM Re-applying this patch after bots failures. Should be fine now. The function __multi3() is undefined on 32-bit ARM, so a call to it should never be emitted. Instead, plain instructions need to be generated to perform 128-bit multiplications. Differential Revision: https://reviews.llvm.org/D103906 Reported by: mmel MFC after: 3 days --- contrib/llvm-project/llvm/lib/Target/ARM/ARMISelLowering.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/contrib/llvm-project/llvm/lib/Target/ARM/ARMISelLowering.cpp b/contrib/llvm-project/llvm/lib/Target/ARM/ARMISelLowering.cpp index 598062672a56..c3cb02431e66 100644 --- a/contrib/llvm-project/llvm/lib/Target/ARM/ARMISelLowering.cpp +++ b/contrib/llvm-project/llvm/lib/Target/ARM/ARMISelLowering.cpp @@ -541,6 +541,7 @@ ARMTargetLowering::ARMTargetLowering(const TargetMachine &TM, setLibcallName(RTLIB::SHL_I128, nullptr); setLibcallName(RTLIB::SRL_I128, nullptr); setLibcallName(RTLIB::SRA_I128, nullptr); + setLibcallName(RTLIB::MUL_I128, nullptr); // RTLIB if (Subtarget->isAAPCS_ABI() &&