[llvm-branch-commits] [llvm] [CSKY] Don't emit `__multi3` on 32-bit CSKY (PR #69731)

via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Fri Oct 20 07:47:49 PDT 2023


https://github.com/Dirreke created https://github.com/llvm/llvm-project/pull/69731

close #68971
according to  #21245 , disable `__multi3` and other buitin functions which are not available in 32-bit target.


>From 3bd40891327d072f38c4b0675ef6facac1613470 Mon Sep 17 00:00:00 2001
From: Dirreck <mingyang_ge at 163.com>
Date: Fri, 20 Oct 2023 21:43:52 +0800
Subject: [PATCH] disable multi3 in 32 bit target

---
 llvm/lib/Target/CSKY/CSKYISelLowering.cpp | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/llvm/lib/Target/CSKY/CSKYISelLowering.cpp b/llvm/lib/Target/CSKY/CSKYISelLowering.cpp
index 5d21aab513ddee7..fae07a599128cde 100644
--- a/llvm/lib/Target/CSKY/CSKYISelLowering.cpp
+++ b/llvm/lib/Target/CSKY/CSKYISelLowering.cpp
@@ -109,6 +109,14 @@ CSKYTargetLowering::CSKYTargetLowering(const TargetMachine &TM,
 
   setOperationAction(ISD::ATOMIC_FENCE, MVT::Other, Expand);
 
+  // These libcalls are not available in 32-bit.
+  setLibcallName(RTLIB::SHL_I128, nullptr);
+  setLibcallName(RTLIB::SRL_I128, nullptr);
+  setLibcallName(RTLIB::SRA_I128, nullptr);
+  setLibcallName(RTLIB::MUL_I128, nullptr);
+  setLibcallName(RTLIB::MULO_I64, nullptr);
+  setLibcallName(RTLIB::MULO_I128, nullptr);
+      
   // Float
 
   ISD::CondCode FPCCToExtend[] = {



More information about the llvm-branch-commits mailing list