@@ -650,50 +650,50 @@ int ARMTTIImpl::getArithmeticInstrCost(
650
650
int ISDOpcode = TLI->InstructionOpcodeToISD (Opcode);
651
651
std::pair<int , MVT> LT = TLI->getTypeLegalizationCost (DL, Ty);
652
652
653
- const unsigned FunctionCallDivCost = 20 ;
654
- const unsigned ReciprocalDivCost = 10 ;
655
- static const CostTblEntry CostTbl[] = {
656
- // Division.
657
- // These costs are somewhat random. Choose a cost of 20 to indicate that
658
- // vectorizing devision (added function call) is going to be very expensive.
659
- // Double registers types.
660
- { ISD::SDIV, MVT::v1i64, 1 * FunctionCallDivCost},
661
- { ISD::UDIV, MVT::v1i64, 1 * FunctionCallDivCost},
662
- { ISD::SREM, MVT::v1i64, 1 * FunctionCallDivCost},
663
- { ISD::UREM, MVT::v1i64, 1 * FunctionCallDivCost},
664
- { ISD::SDIV, MVT::v2i32, 2 * FunctionCallDivCost},
665
- { ISD::UDIV, MVT::v2i32, 2 * FunctionCallDivCost},
666
- { ISD::SREM, MVT::v2i32, 2 * FunctionCallDivCost},
667
- { ISD::UREM, MVT::v2i32, 2 * FunctionCallDivCost},
668
- { ISD::SDIV, MVT::v4i16, ReciprocalDivCost},
669
- { ISD::UDIV, MVT::v4i16, ReciprocalDivCost},
670
- { ISD::SREM, MVT::v4i16, 4 * FunctionCallDivCost},
671
- { ISD::UREM, MVT::v4i16, 4 * FunctionCallDivCost},
672
- { ISD::SDIV, MVT::v8i8, ReciprocalDivCost},
673
- { ISD::UDIV, MVT::v8i8, ReciprocalDivCost},
674
- { ISD::SREM, MVT::v8i8, 8 * FunctionCallDivCost},
675
- { ISD::UREM, MVT::v8i8, 8 * FunctionCallDivCost},
676
- // Quad register types.
677
- { ISD::SDIV, MVT::v2i64, 2 * FunctionCallDivCost},
678
- { ISD::UDIV, MVT::v2i64, 2 * FunctionCallDivCost},
679
- { ISD::SREM, MVT::v2i64, 2 * FunctionCallDivCost},
680
- { ISD::UREM, MVT::v2i64, 2 * FunctionCallDivCost},
681
- { ISD::SDIV, MVT::v4i32, 4 * FunctionCallDivCost},
682
- { ISD::UDIV, MVT::v4i32, 4 * FunctionCallDivCost},
683
- { ISD::SREM, MVT::v4i32, 4 * FunctionCallDivCost},
684
- { ISD::UREM, MVT::v4i32, 4 * FunctionCallDivCost},
685
- { ISD::SDIV, MVT::v8i16, 8 * FunctionCallDivCost},
686
- { ISD::UDIV, MVT::v8i16, 8 * FunctionCallDivCost},
687
- { ISD::SREM, MVT::v8i16, 8 * FunctionCallDivCost},
688
- { ISD::UREM, MVT::v8i16, 8 * FunctionCallDivCost},
689
- { ISD::SDIV, MVT::v16i8, 16 * FunctionCallDivCost},
690
- { ISD::UDIV, MVT::v16i8, 16 * FunctionCallDivCost},
691
- { ISD::SREM, MVT::v16i8, 16 * FunctionCallDivCost},
692
- { ISD::UREM, MVT::v16i8, 16 * FunctionCallDivCost},
693
- // Multiplication.
694
- };
695
-
696
653
if (ST->hasNEON ()) {
654
+ const unsigned FunctionCallDivCost = 20 ;
655
+ const unsigned ReciprocalDivCost = 10 ;
656
+ static const CostTblEntry CostTbl[] = {
657
+ // Division.
658
+ // These costs are somewhat random. Choose a cost of 20 to indicate that
659
+ // vectorizing devision (added function call) is going to be very expensive.
660
+ // Double registers types.
661
+ { ISD::SDIV, MVT::v1i64, 1 * FunctionCallDivCost},
662
+ { ISD::UDIV, MVT::v1i64, 1 * FunctionCallDivCost},
663
+ { ISD::SREM, MVT::v1i64, 1 * FunctionCallDivCost},
664
+ { ISD::UREM, MVT::v1i64, 1 * FunctionCallDivCost},
665
+ { ISD::SDIV, MVT::v2i32, 2 * FunctionCallDivCost},
666
+ { ISD::UDIV, MVT::v2i32, 2 * FunctionCallDivCost},
667
+ { ISD::SREM, MVT::v2i32, 2 * FunctionCallDivCost},
668
+ { ISD::UREM, MVT::v2i32, 2 * FunctionCallDivCost},
669
+ { ISD::SDIV, MVT::v4i16, ReciprocalDivCost},
670
+ { ISD::UDIV, MVT::v4i16, ReciprocalDivCost},
671
+ { ISD::SREM, MVT::v4i16, 4 * FunctionCallDivCost},
672
+ { ISD::UREM, MVT::v4i16, 4 * FunctionCallDivCost},
673
+ { ISD::SDIV, MVT::v8i8, ReciprocalDivCost},
674
+ { ISD::UDIV, MVT::v8i8, ReciprocalDivCost},
675
+ { ISD::SREM, MVT::v8i8, 8 * FunctionCallDivCost},
676
+ { ISD::UREM, MVT::v8i8, 8 * FunctionCallDivCost},
677
+ // Quad register types.
678
+ { ISD::SDIV, MVT::v2i64, 2 * FunctionCallDivCost},
679
+ { ISD::UDIV, MVT::v2i64, 2 * FunctionCallDivCost},
680
+ { ISD::SREM, MVT::v2i64, 2 * FunctionCallDivCost},
681
+ { ISD::UREM, MVT::v2i64, 2 * FunctionCallDivCost},
682
+ { ISD::SDIV, MVT::v4i32, 4 * FunctionCallDivCost},
683
+ { ISD::UDIV, MVT::v4i32, 4 * FunctionCallDivCost},
684
+ { ISD::SREM, MVT::v4i32, 4 * FunctionCallDivCost},
685
+ { ISD::UREM, MVT::v4i32, 4 * FunctionCallDivCost},
686
+ { ISD::SDIV, MVT::v8i16, 8 * FunctionCallDivCost},
687
+ { ISD::UDIV, MVT::v8i16, 8 * FunctionCallDivCost},
688
+ { ISD::SREM, MVT::v8i16, 8 * FunctionCallDivCost},
689
+ { ISD::UREM, MVT::v8i16, 8 * FunctionCallDivCost},
690
+ { ISD::SDIV, MVT::v16i8, 16 * FunctionCallDivCost},
691
+ { ISD::UDIV, MVT::v16i8, 16 * FunctionCallDivCost},
692
+ { ISD::SREM, MVT::v16i8, 16 * FunctionCallDivCost},
693
+ { ISD::UREM, MVT::v16i8, 16 * FunctionCallDivCost},
694
+ // Multiplication.
695
+ };
696
+
697
697
if (const auto *Entry = CostTableLookup (CostTbl, ISDOpcode, LT.second ))
698
698
return LT.first * Entry->Cost ;
699
699
0 commit comments