@@ -4210,9 +4210,9 @@ X86TTIImpl::getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
4210
4210
{ ISD::ABS, MVT::i64, { 1, 2, 3, 3 } }, // SUB+CMOV
4211
4211
{ ISD::BITREVERSE, MVT::i64, { 10, 12, 20, 22 } },
4212
4212
{ ISD::BSWAP, MVT::i64, { 1, 2, 1, 2 } },
4213
- { ISD::CTLZ, MVT::i64, { 3 , 2, 6 , 6 } }, // BSR+XOR or BSR+XOR+CMOV
4213
+ { ISD::CTLZ, MVT::i64, { 2 , 2, 4 , 5 } }, // BSR+XOR or BSR+XOR+CMOV
4214
4214
{ ISD::CTLZ_ZERO_UNDEF, MVT::i64,{ 1, 2, 2, 2 } }, // BSR+XOR
4215
- { ISD::CTTZ, MVT::i64, { 2, 2, 5 , 5 } }, // TEST+BSF+CMOV/BRANCH
4215
+ { ISD::CTTZ, MVT::i64, { 2, 2, 3 , 4 } }, // TEST+BSF+CMOV/BRANCH
4216
4216
{ ISD::CTTZ_ZERO_UNDEF, MVT::i64,{ 1, 2, 1, 2 } }, // BSF
4217
4217
{ ISD::CTPOP, MVT::i64, { 10, 6, 19, 19 } },
4218
4218
{ ISD::ROTL, MVT::i64, { 2, 3, 1, 3 } },
@@ -4241,9 +4241,9 @@ X86TTIImpl::getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
4241
4241
{ ISD::BITREVERSE, MVT::i8, { 7, 9, 13, 14 } },
4242
4242
{ ISD::BSWAP, MVT::i32, { 1, 1, 1, 1 } },
4243
4243
{ ISD::BSWAP, MVT::i16, { 1, 2, 1, 2 } }, // ROL
4244
- { ISD::CTLZ, MVT::i32, { 3 , 2, 6 , 6 } }, // BSR+XOR or BSR+XOR+CMOV
4245
- { ISD::CTLZ, MVT::i16, { 3 , 2, 6 , 6 } }, // BSR+XOR or BSR+XOR+CMOV
4246
- { ISD::CTLZ, MVT::i8, { 3 , 2, 7 , 7 } }, // BSR+XOR or BSR+XOR+CMOV
4244
+ { ISD::CTLZ, MVT::i32, { 2 , 2, 4 , 5 } }, // BSR+XOR or BSR+XOR+CMOV
4245
+ { ISD::CTLZ, MVT::i16, { 2 , 2, 4 , 5 } }, // BSR+XOR or BSR+XOR+CMOV
4246
+ { ISD::CTLZ, MVT::i8, { 2 , 2, 5 , 6 } }, // BSR+XOR or BSR+XOR+CMOV
4247
4247
{ ISD::CTLZ_ZERO_UNDEF, MVT::i32,{ 1, 2, 2, 2 } }, // BSR+XOR
4248
4248
{ ISD::CTLZ_ZERO_UNDEF, MVT::i16,{ 2, 2, 2, 2 } }, // BSR+XOR
4249
4249
{ ISD::CTLZ_ZERO_UNDEF, MVT::i8, { 2, 2, 3, 3 } }, // BSR+XOR
0 commit comments