@@ -4329,9 +4329,15 @@ X86TTIImpl::getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
43294329 { ISD::ABS, MVT::i64 , { 1 , 2 , 3 , 3 } }, // SUB+CMOV
43304330 { ISD::BITREVERSE, MVT::i64 , { 10 , 12 , 20 , 22 } },
43314331 { ISD::BSWAP, MVT::i64 , { 1 , 2 , 1 , 2 } },
4332- { ISD::CTLZ, MVT::i64 , { 2 , 2 , 4 , 5 } }, // BSR+XOR or BSR+XOR+CMOV
4332+ { ISD::CTLZ, MVT::i64 , { 1 , 2 , 3 , 3 } }, // MOV+BSR+XOR
4333+ { ISD::CTLZ, MVT::i32 , { 1 , 2 , 3 , 3 } }, // MOV+BSR+XOR
4334+ { ISD::CTLZ, MVT::i16 , { 2 , 2 , 3 , 3 } }, // MOV+BSR+XOR
4335+ { ISD::CTLZ, MVT::i8 , { 2 , 2 , 4 , 3 } }, // MOV+BSR+XOR
43334336 { ISD::CTLZ_ZERO_UNDEF, MVT::i64 ,{ 1 , 2 , 2 , 2 } }, // BSR+XOR
4334- { ISD::CTTZ, MVT::i64 , { 2 , 2 , 3 , 4 } }, // TEST+BSF+CMOV/BRANCH
4337+ { ISD::CTTZ, MVT::i64 , { 1 , 2 , 2 , 2 } }, // MOV+BSF
4338+ { ISD::CTTZ, MVT::i32 , { 1 , 2 , 2 , 2 } }, // MOV+BSF
4339+ { ISD::CTTZ, MVT::i16 , { 2 , 2 , 2 , 2 } }, // MOV+BSF
4340+ { ISD::CTTZ, MVT::i8 , { 2 , 2 , 2 , 2 } }, // MOV+BSF
43354341 { ISD::CTTZ_ZERO_UNDEF, MVT::i64 ,{ 1 , 2 , 1 , 2 } }, // BSF
43364342 { ISD::CTPOP, MVT::i64 , { 10 , 6 , 19 , 19 } },
43374343 { ISD::ROTL, MVT::i64 , { 2 , 3 , 1 , 3 } },
0 commit comments