@@ -4329,9 +4329,15 @@ X86TTIImpl::getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
4329
4329
{ ISD::ABS, MVT::i64, { 1, 2, 3, 3 } }, // SUB+CMOV
4330
4330
{ ISD::BITREVERSE, MVT::i64, { 10, 12, 20, 22 } },
4331
4331
{ 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
4333
4336
{ 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
4335
4341
{ ISD::CTTZ_ZERO_UNDEF, MVT::i64,{ 1, 2, 1, 2 } }, // BSF
4336
4342
{ ISD::CTPOP, MVT::i64, { 10, 6, 19, 19 } },
4337
4343
{ ISD::ROTL, MVT::i64, { 2, 3, 1, 3 } },
0 commit comments