Add libcall expansion for 16 and 128 bit muls
authorAnton Korobeynikov <asl@math.spbu.ru>
Sun, 3 May 2009 13:13:51 +0000 (13:13 +0000)
committerAnton Korobeynikov <asl@math.spbu.ru>
Sun, 3 May 2009 13:13:51 +0000 (13:13 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70749 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/SelectionDAG/LegalizeDAG.cpp

index 697caa6ddbbdf747b04d03a610c51e3141aa6ac3..98908765b73968379e2807bba471a0c94374cd16 100644 (file)
@@ -3315,10 +3315,14 @@ SDValue SelectionDAGLegalize::LegalizeOp(SDValue Op) {
         }
         break;
       case ISD::MUL:
+        if (VT == MVT::i16)
+          LC = RTLIB::MUL_I16;
         if (VT == MVT::i32)
           LC = RTLIB::MUL_I32;
         else if (VT == MVT::i64)
           LC = RTLIB::MUL_I64;
+        else if (VT == MVT::i128)
+          LC = RTLIB::MUL_I128;
         break;
       case ISD::FPOW:
         LC = GetFPLibCall(VT, RTLIB::POW_F32, RTLIB::POW_F64, RTLIB::POW_F80,