Lines Matching refs:MVT
512 static const auto ValidMinMaxTys = {MVT::v8i8, MVT::v16i8, MVT::v4i16, in getIntrinsicInstrCost()
513 MVT::v8i16, MVT::v2i32, MVT::v4i32, in getIntrinsicInstrCost()
514 MVT::nxv16i8, MVT::nxv8i16, MVT::nxv4i32, in getIntrinsicInstrCost()
515 MVT::nxv2i64}; in getIntrinsicInstrCost()
518 if (LT.second == MVT::v2i64) in getIntrinsicInstrCost()
520 if (any_of(ValidMinMaxTys, [<](MVT M) { return M == LT.second; })) in getIntrinsicInstrCost()
528 static const auto ValidSatTys = {MVT::v8i8, MVT::v16i8, MVT::v4i16, in getIntrinsicInstrCost()
529 MVT::v8i16, MVT::v2i32, MVT::v4i32, in getIntrinsicInstrCost()
530 MVT::v2i64}; in getIntrinsicInstrCost()
536 if (any_of(ValidSatTys, [<](MVT M) { return M == LT.second; })) in getIntrinsicInstrCost()
541 static const auto ValidAbsTys = {MVT::v8i8, MVT::v16i8, MVT::v4i16, in getIntrinsicInstrCost()
542 MVT::v8i16, MVT::v2i32, MVT::v4i32, in getIntrinsicInstrCost()
543 MVT::v2i64}; in getIntrinsicInstrCost()
545 if (any_of(ValidAbsTys, [<](MVT M) { return M == LT.second; })) in getIntrinsicInstrCost()
550 static const auto ValidAbsTys = {MVT::v4i16, MVT::v8i16, MVT::v2i32, in getIntrinsicInstrCost()
551 MVT::v4i32, MVT::v2i64}; in getIntrinsicInstrCost()
553 if (any_of(ValidAbsTys, [<](MVT M) { return M == LT.second; }) && in getIntrinsicInstrCost()
573 {Intrinsic::bitreverse, MVT::i32, 1}, in getIntrinsicInstrCost()
574 {Intrinsic::bitreverse, MVT::i64, 1}, in getIntrinsicInstrCost()
575 {Intrinsic::bitreverse, MVT::v8i8, 1}, in getIntrinsicInstrCost()
576 {Intrinsic::bitreverse, MVT::v16i8, 1}, in getIntrinsicInstrCost()
577 {Intrinsic::bitreverse, MVT::v4i16, 2}, in getIntrinsicInstrCost()
578 {Intrinsic::bitreverse, MVT::v8i16, 2}, in getIntrinsicInstrCost()
579 {Intrinsic::bitreverse, MVT::v2i32, 2}, in getIntrinsicInstrCost()
580 {Intrinsic::bitreverse, MVT::v4i32, 2}, in getIntrinsicInstrCost()
581 {Intrinsic::bitreverse, MVT::v1i64, 2}, in getIntrinsicInstrCost()
582 {Intrinsic::bitreverse, MVT::v2i64, 2}, in getIntrinsicInstrCost()
590 if (TLI->getValueType(DL, RetTy, true) == MVT::i8 || in getIntrinsicInstrCost()
591 TLI->getValueType(DL, RetTy, true) == MVT::i16) in getIntrinsicInstrCost()
604 {ISD::CTPOP, MVT::v2i64, 4}, in getIntrinsicInstrCost()
605 {ISD::CTPOP, MVT::v4i32, 3}, in getIntrinsicInstrCost()
606 {ISD::CTPOP, MVT::v8i16, 2}, in getIntrinsicInstrCost()
607 {ISD::CTPOP, MVT::v16i8, 1}, in getIntrinsicInstrCost()
608 {ISD::CTPOP, MVT::i64, 4}, in getIntrinsicInstrCost()
609 {ISD::CTPOP, MVT::v2i32, 3}, in getIntrinsicInstrCost()
610 {ISD::CTPOP, MVT::v4i16, 2}, in getIntrinsicInstrCost()
611 {ISD::CTPOP, MVT::v8i8, 1}, in getIntrinsicInstrCost()
612 {ISD::CTPOP, MVT::i32, 5}, in getIntrinsicInstrCost()
615 MVT MTy = LT.second; in getIntrinsicInstrCost()
634 {Intrinsic::sadd_with_overflow, MVT::i8, 3}, in getIntrinsicInstrCost()
635 {Intrinsic::uadd_with_overflow, MVT::i8, 3}, in getIntrinsicInstrCost()
636 {Intrinsic::sadd_with_overflow, MVT::i16, 3}, in getIntrinsicInstrCost()
637 {Intrinsic::uadd_with_overflow, MVT::i16, 3}, in getIntrinsicInstrCost()
638 {Intrinsic::sadd_with_overflow, MVT::i32, 1}, in getIntrinsicInstrCost()
639 {Intrinsic::uadd_with_overflow, MVT::i32, 1}, in getIntrinsicInstrCost()
640 {Intrinsic::sadd_with_overflow, MVT::i64, 1}, in getIntrinsicInstrCost()
641 {Intrinsic::uadd_with_overflow, MVT::i64, 1}, in getIntrinsicInstrCost()
642 {Intrinsic::ssub_with_overflow, MVT::i8, 3}, in getIntrinsicInstrCost()
643 {Intrinsic::usub_with_overflow, MVT::i8, 3}, in getIntrinsicInstrCost()
644 {Intrinsic::ssub_with_overflow, MVT::i16, 3}, in getIntrinsicInstrCost()
645 {Intrinsic::usub_with_overflow, MVT::i16, 3}, in getIntrinsicInstrCost()
646 {Intrinsic::ssub_with_overflow, MVT::i32, 1}, in getIntrinsicInstrCost()
647 {Intrinsic::usub_with_overflow, MVT::i32, 1}, in getIntrinsicInstrCost()
648 {Intrinsic::ssub_with_overflow, MVT::i64, 1}, in getIntrinsicInstrCost()
649 {Intrinsic::usub_with_overflow, MVT::i64, 1}, in getIntrinsicInstrCost()
650 {Intrinsic::smul_with_overflow, MVT::i8, 5}, in getIntrinsicInstrCost()
651 {Intrinsic::umul_with_overflow, MVT::i8, 4}, in getIntrinsicInstrCost()
652 {Intrinsic::smul_with_overflow, MVT::i16, 5}, in getIntrinsicInstrCost()
653 {Intrinsic::umul_with_overflow, MVT::i16, 4}, in getIntrinsicInstrCost()
654 {Intrinsic::smul_with_overflow, MVT::i32, 2}, // eg umull;tst in getIntrinsicInstrCost()
655 {Intrinsic::umul_with_overflow, MVT::i32, 2}, // eg umull;cmp sxtw in getIntrinsicInstrCost()
656 {Intrinsic::smul_with_overflow, MVT::i64, 3}, // eg mul;smulh;cmp in getIntrinsicInstrCost()
657 {Intrinsic::umul_with_overflow, MVT::i64, 3}, // eg mul;umulh;cmp asr in getIntrinsicInstrCost()
675 if ((LT.second == MVT::f32 || LT.second == MVT::f64 || in getIntrinsicInstrCost()
676 LT.second == MVT::v2f32 || LT.second == MVT::v4f32 || in getIntrinsicInstrCost()
677 LT.second == MVT::v2f64) && in getIntrinsicInstrCost()
679 (LT.second == MVT::f64 && MTy == MVT::i32) || in getIntrinsicInstrCost()
680 (LT.second == MVT::f32 && MTy == MVT::i64))) in getIntrinsicInstrCost()
684 ((LT.second == MVT::f16 && MTy == MVT::i32) || in getIntrinsicInstrCost()
685 ((LT.second == MVT::v4f16 || LT.second == MVT::v8f16) && in getIntrinsicInstrCost()
690 if ((LT.second.getScalarType() == MVT::f32 || in getIntrinsicInstrCost()
691 LT.second.getScalarType() == MVT::f64 || in getIntrinsicInstrCost()
692 (ST->hasFullFP16() && LT.second.getScalarType() == MVT::f16)) && in getIntrinsicInstrCost()
723 {Intrinsic::fshl, MVT::v4i32, 3}, // ushr + shl + orr in getIntrinsicInstrCost()
724 {Intrinsic::fshl, MVT::v2i64, 3}, {Intrinsic::fshl, MVT::v16i8, 4}, in getIntrinsicInstrCost()
725 {Intrinsic::fshl, MVT::v8i16, 4}, {Intrinsic::fshl, MVT::v2i32, 3}, in getIntrinsicInstrCost()
726 {Intrinsic::fshl, MVT::v8i8, 4}, {Intrinsic::fshl, MVT::v4i16, 4}}; in getIntrinsicInstrCost()
2275 { ISD::TRUNCATE, MVT::v2i8, MVT::v2i64, 1}, // xtn in getCastInstrCost()
2276 { ISD::TRUNCATE, MVT::v2i16, MVT::v2i64, 1}, // xtn in getCastInstrCost()
2277 { ISD::TRUNCATE, MVT::v2i32, MVT::v2i64, 1}, // xtn in getCastInstrCost()
2278 { ISD::TRUNCATE, MVT::v4i8, MVT::v4i32, 1}, // xtn in getCastInstrCost()
2279 { ISD::TRUNCATE, MVT::v4i8, MVT::v4i64, 3}, // 2 xtn + 1 uzp1 in getCastInstrCost()
2280 { ISD::TRUNCATE, MVT::v4i16, MVT::v4i32, 1}, // xtn in getCastInstrCost()
2281 { ISD::TRUNCATE, MVT::v4i16, MVT::v4i64, 2}, // 1 uzp1 + 1 xtn in getCastInstrCost()
2282 { ISD::TRUNCATE, MVT::v4i32, MVT::v4i64, 1}, // 1 uzp1 in getCastInstrCost()
2283 { ISD::TRUNCATE, MVT::v8i8, MVT::v8i16, 1}, // 1 xtn in getCastInstrCost()
2284 { ISD::TRUNCATE, MVT::v8i8, MVT::v8i32, 2}, // 1 uzp1 + 1 xtn in getCastInstrCost()
2285 { ISD::TRUNCATE, MVT::v8i8, MVT::v8i64, 4}, // 3 x uzp1 + xtn in getCastInstrCost()
2286 { ISD::TRUNCATE, MVT::v8i16, MVT::v8i32, 1}, // 1 uzp1 in getCastInstrCost()
2287 { ISD::TRUNCATE, MVT::v8i16, MVT::v8i64, 3}, // 3 x uzp1 in getCastInstrCost()
2288 { ISD::TRUNCATE, MVT::v8i32, MVT::v8i64, 2}, // 2 x uzp1 in getCastInstrCost()
2289 { ISD::TRUNCATE, MVT::v16i8, MVT::v16i16, 1}, // uzp1 in getCastInstrCost()
2290 { ISD::TRUNCATE, MVT::v16i8, MVT::v16i32, 3}, // (2 + 1) x uzp1 in getCastInstrCost()
2291 { ISD::TRUNCATE, MVT::v16i8, MVT::v16i64, 7}, // (4 + 2 + 1) x uzp1 in getCastInstrCost()
2292 { ISD::TRUNCATE, MVT::v16i16, MVT::v16i32, 2}, // 2 x uzp1 in getCastInstrCost()
2293 { ISD::TRUNCATE, MVT::v16i16, MVT::v16i64, 6}, // (4 + 2) x uzp1 in getCastInstrCost()
2294 { ISD::TRUNCATE, MVT::v16i32, MVT::v16i64, 4}, // 4 x uzp1 in getCastInstrCost()
2297 { ISD::TRUNCATE, MVT::nxv2i1, MVT::nxv2i16, 1 }, in getCastInstrCost()
2298 { ISD::TRUNCATE, MVT::nxv2i1, MVT::nxv2i32, 1 }, in getCastInstrCost()
2299 { ISD::TRUNCATE, MVT::nxv2i1, MVT::nxv2i64, 1 }, in getCastInstrCost()
2300 { ISD::TRUNCATE, MVT::nxv4i1, MVT::nxv4i16, 1 }, in getCastInstrCost()
2301 { ISD::TRUNCATE, MVT::nxv4i1, MVT::nxv4i32, 1 }, in getCastInstrCost()
2302 { ISD::TRUNCATE, MVT::nxv4i1, MVT::nxv4i64, 2 }, in getCastInstrCost()
2303 { ISD::TRUNCATE, MVT::nxv8i1, MVT::nxv8i16, 1 }, in getCastInstrCost()
2304 { ISD::TRUNCATE, MVT::nxv8i1, MVT::nxv8i32, 3 }, in getCastInstrCost()
2305 { ISD::TRUNCATE, MVT::nxv8i1, MVT::nxv8i64, 5 }, in getCastInstrCost()
2306 { ISD::TRUNCATE, MVT::nxv16i1, MVT::nxv16i8, 1 }, in getCastInstrCost()
2307 { ISD::TRUNCATE, MVT::nxv2i16, MVT::nxv2i32, 1 }, in getCastInstrCost()
2308 { ISD::TRUNCATE, MVT::nxv2i32, MVT::nxv2i64, 1 }, in getCastInstrCost()
2309 { ISD::TRUNCATE, MVT::nxv4i16, MVT::nxv4i32, 1 }, in getCastInstrCost()
2310 { ISD::TRUNCATE, MVT::nxv4i32, MVT::nxv4i64, 2 }, in getCastInstrCost()
2311 { ISD::TRUNCATE, MVT::nxv8i16, MVT::nxv8i32, 3 }, in getCastInstrCost()
2312 { ISD::TRUNCATE, MVT::nxv8i32, MVT::nxv8i64, 6 }, in getCastInstrCost()
2315 { ISD::SIGN_EXTEND, MVT::v4i64, MVT::v4i16, 3 }, in getCastInstrCost()
2316 { ISD::ZERO_EXTEND, MVT::v4i64, MVT::v4i16, 3 }, in getCastInstrCost()
2317 { ISD::SIGN_EXTEND, MVT::v4i64, MVT::v4i32, 2 }, in getCastInstrCost()
2318 { ISD::ZERO_EXTEND, MVT::v4i64, MVT::v4i32, 2 }, in getCastInstrCost()
2319 { ISD::SIGN_EXTEND, MVT::v8i32, MVT::v8i8, 3 }, in getCastInstrCost()
2320 { ISD::ZERO_EXTEND, MVT::v8i32, MVT::v8i8, 3 }, in getCastInstrCost()
2321 { ISD::SIGN_EXTEND, MVT::v8i32, MVT::v8i16, 2 }, in getCastInstrCost()
2322 { ISD::ZERO_EXTEND, MVT::v8i32, MVT::v8i16, 2 }, in getCastInstrCost()
2323 { ISD::SIGN_EXTEND, MVT::v8i64, MVT::v8i8, 7 }, in getCastInstrCost()
2324 { ISD::ZERO_EXTEND, MVT::v8i64, MVT::v8i8, 7 }, in getCastInstrCost()
2325 { ISD::SIGN_EXTEND, MVT::v8i64, MVT::v8i16, 6 }, in getCastInstrCost()
2326 { ISD::ZERO_EXTEND, MVT::v8i64, MVT::v8i16, 6 }, in getCastInstrCost()
2327 { ISD::SIGN_EXTEND, MVT::v16i16, MVT::v16i8, 2 }, in getCastInstrCost()
2328 { ISD::ZERO_EXTEND, MVT::v16i16, MVT::v16i8, 2 }, in getCastInstrCost()
2329 { ISD::SIGN_EXTEND, MVT::v16i32, MVT::v16i8, 6 }, in getCastInstrCost()
2330 { ISD::ZERO_EXTEND, MVT::v16i32, MVT::v16i8, 6 }, in getCastInstrCost()
2333 { ISD::SINT_TO_FP, MVT::v2f32, MVT::v2i32, 1 }, in getCastInstrCost()
2334 { ISD::SINT_TO_FP, MVT::v4f32, MVT::v4i32, 1 }, in getCastInstrCost()
2335 { ISD::SINT_TO_FP, MVT::v2f64, MVT::v2i64, 1 }, in getCastInstrCost()
2336 { ISD::UINT_TO_FP, MVT::v2f32, MVT::v2i32, 1 }, in getCastInstrCost()
2337 { ISD::UINT_TO_FP, MVT::v4f32, MVT::v4i32, 1 }, in getCastInstrCost()
2338 { ISD::UINT_TO_FP, MVT::v2f64, MVT::v2i64, 1 }, in getCastInstrCost()
2341 { ISD::SINT_TO_FP, MVT::v2f32, MVT::v2i8, 3 }, in getCastInstrCost()
2342 { ISD::SINT_TO_FP, MVT::v2f32, MVT::v2i16, 3 }, in getCastInstrCost()
2343 { ISD::SINT_TO_FP, MVT::v2f32, MVT::v2i64, 2 }, in getCastInstrCost()
2344 { ISD::UINT_TO_FP, MVT::v2f32, MVT::v2i8, 3 }, in getCastInstrCost()
2345 { ISD::UINT_TO_FP, MVT::v2f32, MVT::v2i16, 3 }, in getCastInstrCost()
2346 { ISD::UINT_TO_FP, MVT::v2f32, MVT::v2i64, 2 }, in getCastInstrCost()
2349 { ISD::SINT_TO_FP, MVT::v4f32, MVT::v4i8, 4 }, in getCastInstrCost()
2350 { ISD::SINT_TO_FP, MVT::v4f32, MVT::v4i16, 2 }, in getCastInstrCost()
2351 { ISD::UINT_TO_FP, MVT::v4f32, MVT::v4i8, 3 }, in getCastInstrCost()
2352 { ISD::UINT_TO_FP, MVT::v4f32, MVT::v4i16, 2 }, in getCastInstrCost()
2355 { ISD::SINT_TO_FP, MVT::v8f32, MVT::v8i8, 10 }, in getCastInstrCost()
2356 { ISD::SINT_TO_FP, MVT::v8f32, MVT::v8i16, 4 }, in getCastInstrCost()
2357 { ISD::UINT_TO_FP, MVT::v8f32, MVT::v8i8, 10 }, in getCastInstrCost()
2358 { ISD::UINT_TO_FP, MVT::v8f32, MVT::v8i16, 4 }, in getCastInstrCost()
2361 { ISD::SINT_TO_FP, MVT::v16f32, MVT::v16i8, 21 }, in getCastInstrCost()
2362 { ISD::UINT_TO_FP, MVT::v16f32, MVT::v16i8, 21 }, in getCastInstrCost()
2365 { ISD::SINT_TO_FP, MVT::v2f64, MVT::v2i8, 4 }, in getCastInstrCost()
2366 { ISD::SINT_TO_FP, MVT::v2f64, MVT::v2i16, 4 }, in getCastInstrCost()
2367 { ISD::SINT_TO_FP, MVT::v2f64, MVT::v2i32, 2 }, in getCastInstrCost()
2368 { ISD::UINT_TO_FP, MVT::v2f64, MVT::v2i8, 4 }, in getCastInstrCost()
2369 { ISD::UINT_TO_FP, MVT::v2f64, MVT::v2i16, 4 }, in getCastInstrCost()
2370 { ISD::UINT_TO_FP, MVT::v2f64, MVT::v2i32, 2 }, in getCastInstrCost()
2373 { ISD::SINT_TO_FP, MVT::v4f64, MVT::v4i32, 4 }, in getCastInstrCost()
2374 { ISD::UINT_TO_FP, MVT::v4f64, MVT::v4i32, 4 }, in getCastInstrCost()
2377 { ISD::FP_TO_SINT, MVT::v2i32, MVT::v2f32, 1 }, in getCastInstrCost()
2378 { ISD::FP_TO_SINT, MVT::v4i32, MVT::v4f32, 1 }, in getCastInstrCost()
2379 { ISD::FP_TO_SINT, MVT::v2i64, MVT::v2f64, 1 }, in getCastInstrCost()
2380 { ISD::FP_TO_UINT, MVT::v2i32, MVT::v2f32, 1 }, in getCastInstrCost()
2381 { ISD::FP_TO_UINT, MVT::v4i32, MVT::v4f32, 1 }, in getCastInstrCost()
2382 { ISD::FP_TO_UINT, MVT::v2i64, MVT::v2f64, 1 }, in getCastInstrCost()
2385 { ISD::FP_TO_SINT, MVT::v2i64, MVT::v2f32, 2 }, in getCastInstrCost()
2386 { ISD::FP_TO_SINT, MVT::v2i16, MVT::v2f32, 1 }, in getCastInstrCost()
2387 { ISD::FP_TO_SINT, MVT::v2i8, MVT::v2f32, 1 }, in getCastInstrCost()
2388 { ISD::FP_TO_UINT, MVT::v2i64, MVT::v2f32, 2 }, in getCastInstrCost()
2389 { ISD::FP_TO_UINT, MVT::v2i16, MVT::v2f32, 1 }, in getCastInstrCost()
2390 { ISD::FP_TO_UINT, MVT::v2i8, MVT::v2f32, 1 }, in getCastInstrCost()
2393 { ISD::FP_TO_SINT, MVT::v4i16, MVT::v4f32, 2 }, in getCastInstrCost()
2394 { ISD::FP_TO_SINT, MVT::v4i8, MVT::v4f32, 2 }, in getCastInstrCost()
2395 { ISD::FP_TO_UINT, MVT::v4i16, MVT::v4f32, 2 }, in getCastInstrCost()
2396 { ISD::FP_TO_UINT, MVT::v4i8, MVT::v4f32, 2 }, in getCastInstrCost()
2399 { ISD::FP_TO_SINT, MVT::nxv2i64, MVT::nxv2f32, 1 }, in getCastInstrCost()
2400 { ISD::FP_TO_SINT, MVT::nxv2i32, MVT::nxv2f32, 1 }, in getCastInstrCost()
2401 { ISD::FP_TO_SINT, MVT::nxv2i16, MVT::nxv2f32, 1 }, in getCastInstrCost()
2402 { ISD::FP_TO_SINT, MVT::nxv2i8, MVT::nxv2f32, 1 }, in getCastInstrCost()
2403 { ISD::FP_TO_UINT, MVT::nxv2i64, MVT::nxv2f32, 1 }, in getCastInstrCost()
2404 { ISD::FP_TO_UINT, MVT::nxv2i32, MVT::nxv2f32, 1 }, in getCastInstrCost()
2405 { ISD::FP_TO_UINT, MVT::nxv2i16, MVT::nxv2f32, 1 }, in getCastInstrCost()
2406 { ISD::FP_TO_UINT, MVT::nxv2i8, MVT::nxv2f32, 1 }, in getCastInstrCost()
2409 { ISD::FP_TO_SINT, MVT::v2i32, MVT::v2f64, 2 }, in getCastInstrCost()
2410 { ISD::FP_TO_SINT, MVT::v2i16, MVT::v2f64, 2 }, in getCastInstrCost()
2411 { ISD::FP_TO_SINT, MVT::v2i8, MVT::v2f64, 2 }, in getCastInstrCost()
2412 { ISD::FP_TO_UINT, MVT::v2i32, MVT::v2f64, 2 }, in getCastInstrCost()
2413 { ISD::FP_TO_UINT, MVT::v2i16, MVT::v2f64, 2 }, in getCastInstrCost()
2414 { ISD::FP_TO_UINT, MVT::v2i8, MVT::v2f64, 2 }, in getCastInstrCost()
2417 { ISD::FP_TO_SINT, MVT::nxv2i64, MVT::nxv2f64, 1 }, in getCastInstrCost()
2418 { ISD::FP_TO_SINT, MVT::nxv2i32, MVT::nxv2f64, 1 }, in getCastInstrCost()
2419 { ISD::FP_TO_SINT, MVT::nxv2i16, MVT::nxv2f64, 1 }, in getCastInstrCost()
2420 { ISD::FP_TO_SINT, MVT::nxv2i8, MVT::nxv2f64, 1 }, in getCastInstrCost()
2421 { ISD::FP_TO_UINT, MVT::nxv2i64, MVT::nxv2f64, 1 }, in getCastInstrCost()
2422 { ISD::FP_TO_UINT, MVT::nxv2i32, MVT::nxv2f64, 1 }, in getCastInstrCost()
2423 { ISD::FP_TO_UINT, MVT::nxv2i16, MVT::nxv2f64, 1 }, in getCastInstrCost()
2424 { ISD::FP_TO_UINT, MVT::nxv2i8, MVT::nxv2f64, 1 }, in getCastInstrCost()
2427 { ISD::FP_TO_SINT, MVT::nxv4i64, MVT::nxv4f32, 4 }, in getCastInstrCost()
2428 { ISD::FP_TO_SINT, MVT::nxv4i32, MVT::nxv4f32, 1 }, in getCastInstrCost()
2429 { ISD::FP_TO_SINT, MVT::nxv4i16, MVT::nxv4f32, 1 }, in getCastInstrCost()
2430 { ISD::FP_TO_SINT, MVT::nxv4i8, MVT::nxv4f32, 1 }, in getCastInstrCost()
2431 { ISD::FP_TO_UINT, MVT::nxv4i64, MVT::nxv4f32, 4 }, in getCastInstrCost()
2432 { ISD::FP_TO_UINT, MVT::nxv4i32, MVT::nxv4f32, 1 }, in getCastInstrCost()
2433 { ISD::FP_TO_UINT, MVT::nxv4i16, MVT::nxv4f32, 1 }, in getCastInstrCost()
2434 { ISD::FP_TO_UINT, MVT::nxv4i8, MVT::nxv4f32, 1 }, in getCastInstrCost()
2437 { ISD::FP_TO_SINT, MVT::nxv8i16, MVT::nxv8f64, 7 }, in getCastInstrCost()
2438 { ISD::FP_TO_SINT, MVT::nxv8i8, MVT::nxv8f64, 7 }, in getCastInstrCost()
2439 { ISD::FP_TO_UINT, MVT::nxv8i16, MVT::nxv8f64, 7 }, in getCastInstrCost()
2440 { ISD::FP_TO_UINT, MVT::nxv8i8, MVT::nxv8f64, 7 }, in getCastInstrCost()
2443 { ISD::FP_TO_SINT, MVT::nxv4i32, MVT::nxv4f64, 3 }, in getCastInstrCost()
2444 { ISD::FP_TO_SINT, MVT::nxv4i16, MVT::nxv4f64, 3 }, in getCastInstrCost()
2445 { ISD::FP_TO_SINT, MVT::nxv4i8, MVT::nxv4f64, 3 }, in getCastInstrCost()
2446 { ISD::FP_TO_UINT, MVT::nxv4i32, MVT::nxv4f64, 3 }, in getCastInstrCost()
2447 { ISD::FP_TO_UINT, MVT::nxv4i16, MVT::nxv4f64, 3 }, in getCastInstrCost()
2448 { ISD::FP_TO_UINT, MVT::nxv4i8, MVT::nxv4f64, 3 }, in getCastInstrCost()
2451 { ISD::FP_TO_SINT, MVT::nxv8i16, MVT::nxv8f32, 3 }, in getCastInstrCost()
2452 { ISD::FP_TO_SINT, MVT::nxv8i8, MVT::nxv8f32, 3 }, in getCastInstrCost()
2453 { ISD::FP_TO_UINT, MVT::nxv8i16, MVT::nxv8f32, 3 }, in getCastInstrCost()
2454 { ISD::FP_TO_UINT, MVT::nxv8i8, MVT::nxv8f32, 3 }, in getCastInstrCost()
2457 { ISD::FP_TO_SINT, MVT::nxv8i64, MVT::nxv8f16, 10 }, in getCastInstrCost()
2458 { ISD::FP_TO_SINT, MVT::nxv8i32, MVT::nxv8f16, 4 }, in getCastInstrCost()
2459 { ISD::FP_TO_SINT, MVT::nxv8i16, MVT::nxv8f16, 1 }, in getCastInstrCost()
2460 { ISD::FP_TO_SINT, MVT::nxv8i8, MVT::nxv8f16, 1 }, in getCastInstrCost()
2461 { ISD::FP_TO_UINT, MVT::nxv8i64, MVT::nxv8f16, 10 }, in getCastInstrCost()
2462 { ISD::FP_TO_UINT, MVT::nxv8i32, MVT::nxv8f16, 4 }, in getCastInstrCost()
2463 { ISD::FP_TO_UINT, MVT::nxv8i16, MVT::nxv8f16, 1 }, in getCastInstrCost()
2464 { ISD::FP_TO_UINT, MVT::nxv8i8, MVT::nxv8f16, 1 }, in getCastInstrCost()
2467 { ISD::FP_TO_SINT, MVT::nxv4i64, MVT::nxv4f16, 4 }, in getCastInstrCost()
2468 { ISD::FP_TO_SINT, MVT::nxv4i32, MVT::nxv4f16, 1 }, in getCastInstrCost()
2469 { ISD::FP_TO_SINT, MVT::nxv4i16, MVT::nxv4f16, 1 }, in getCastInstrCost()
2470 { ISD::FP_TO_SINT, MVT::nxv4i8, MVT::nxv4f16, 1 }, in getCastInstrCost()
2471 { ISD::FP_TO_UINT, MVT::nxv4i64, MVT::nxv4f16, 4 }, in getCastInstrCost()
2472 { ISD::FP_TO_UINT, MVT::nxv4i32, MVT::nxv4f16, 1 }, in getCastInstrCost()
2473 { ISD::FP_TO_UINT, MVT::nxv4i16, MVT::nxv4f16, 1 }, in getCastInstrCost()
2474 { ISD::FP_TO_UINT, MVT::nxv4i8, MVT::nxv4f16, 1 }, in getCastInstrCost()
2477 { ISD::FP_TO_SINT, MVT::nxv2i64, MVT::nxv2f16, 1 }, in getCastInstrCost()
2478 { ISD::FP_TO_SINT, MVT::nxv2i32, MVT::nxv2f16, 1 }, in getCastInstrCost()
2479 { ISD::FP_TO_SINT, MVT::nxv2i16, MVT::nxv2f16, 1 }, in getCastInstrCost()
2480 { ISD::FP_TO_SINT, MVT::nxv2i8, MVT::nxv2f16, 1 }, in getCastInstrCost()
2481 { ISD::FP_TO_UINT, MVT::nxv2i64, MVT::nxv2f16, 1 }, in getCastInstrCost()
2482 { ISD::FP_TO_UINT, MVT::nxv2i32, MVT::nxv2f16, 1 }, in getCastInstrCost()
2483 { ISD::FP_TO_UINT, MVT::nxv2i16, MVT::nxv2f16, 1 }, in getCastInstrCost()
2484 { ISD::FP_TO_UINT, MVT::nxv2i8, MVT::nxv2f16, 1 }, in getCastInstrCost()
2487 { ISD::FP_ROUND, MVT::nxv2f16, MVT::nxv2f32, 1 }, in getCastInstrCost()
2488 { ISD::FP_ROUND, MVT::nxv4f16, MVT::nxv4f32, 1 }, in getCastInstrCost()
2489 { ISD::FP_ROUND, MVT::nxv8f16, MVT::nxv8f32, 3 }, in getCastInstrCost()
2492 { ISD::FP_ROUND, MVT::nxv2f16, MVT::nxv2f64, 1 }, in getCastInstrCost()
2493 { ISD::FP_ROUND, MVT::nxv4f16, MVT::nxv4f64, 3 }, in getCastInstrCost()
2494 { ISD::FP_ROUND, MVT::nxv8f16, MVT::nxv8f64, 7 }, in getCastInstrCost()
2497 { ISD::FP_ROUND, MVT::nxv2f32, MVT::nxv2f64, 1 }, in getCastInstrCost()
2498 { ISD::FP_ROUND, MVT::nxv4f32, MVT::nxv4f64, 3 }, in getCastInstrCost()
2499 { ISD::FP_ROUND, MVT::nxv8f32, MVT::nxv8f64, 6 }, in getCastInstrCost()
2502 { ISD::FP_EXTEND, MVT::nxv2f32, MVT::nxv2f16, 1}, in getCastInstrCost()
2503 { ISD::FP_EXTEND, MVT::nxv4f32, MVT::nxv4f16, 1}, in getCastInstrCost()
2504 { ISD::FP_EXTEND, MVT::nxv8f32, MVT::nxv8f16, 2}, in getCastInstrCost()
2507 { ISD::FP_EXTEND, MVT::nxv2f64, MVT::nxv2f16, 1}, in getCastInstrCost()
2508 { ISD::FP_EXTEND, MVT::nxv4f64, MVT::nxv4f16, 2}, in getCastInstrCost()
2509 { ISD::FP_EXTEND, MVT::nxv8f64, MVT::nxv8f16, 4}, in getCastInstrCost()
2512 { ISD::FP_EXTEND, MVT::nxv2f64, MVT::nxv2f32, 1}, in getCastInstrCost()
2513 { ISD::FP_EXTEND, MVT::nxv4f64, MVT::nxv4f32, 2}, in getCastInstrCost()
2514 { ISD::FP_EXTEND, MVT::nxv8f64, MVT::nxv8f32, 6}, in getCastInstrCost()
2517 { ISD::BITCAST, MVT::nxv2f16, MVT::nxv2i16, 0 }, in getCastInstrCost()
2518 { ISD::BITCAST, MVT::nxv4f16, MVT::nxv4i16, 0 }, in getCastInstrCost()
2519 { ISD::BITCAST, MVT::nxv2f32, MVT::nxv2i32, 0 }, in getCastInstrCost()
2522 { ISD::BITCAST, MVT::nxv2i16, MVT::nxv2f16, 0 }, in getCastInstrCost()
2523 { ISD::BITCAST, MVT::nxv4i16, MVT::nxv4f16, 0 }, in getCastInstrCost()
2524 { ISD::BITCAST, MVT::nxv2i32, MVT::nxv2f32, 0 }, in getCastInstrCost()
2529 { ISD::ZERO_EXTEND, MVT::nxv16i16, MVT::nxv16i8, 2}, in getCastInstrCost()
2530 { ISD::ZERO_EXTEND, MVT::nxv16i32, MVT::nxv16i8, 6}, in getCastInstrCost()
2531 { ISD::ZERO_EXTEND, MVT::nxv16i64, MVT::nxv16i8, 14}, in getCastInstrCost()
2532 { ISD::ZERO_EXTEND, MVT::nxv8i32, MVT::nxv8i16, 2}, in getCastInstrCost()
2533 { ISD::ZERO_EXTEND, MVT::nxv8i64, MVT::nxv8i16, 6}, in getCastInstrCost()
2534 { ISD::ZERO_EXTEND, MVT::nxv4i64, MVT::nxv4i32, 2}, in getCastInstrCost()
2536 { ISD::SIGN_EXTEND, MVT::nxv16i16, MVT::nxv16i8, 2}, in getCastInstrCost()
2537 { ISD::SIGN_EXTEND, MVT::nxv16i32, MVT::nxv16i8, 6}, in getCastInstrCost()
2538 { ISD::SIGN_EXTEND, MVT::nxv16i64, MVT::nxv16i8, 14}, in getCastInstrCost()
2539 { ISD::SIGN_EXTEND, MVT::nxv8i32, MVT::nxv8i16, 2}, in getCastInstrCost()
2540 { ISD::SIGN_EXTEND, MVT::nxv8i64, MVT::nxv8i16, 6}, in getCastInstrCost()
2541 { ISD::SIGN_EXTEND, MVT::nxv4i64, MVT::nxv4i32, 2}, in getCastInstrCost()
2551 std::pair<InstructionCost, MVT> LT = in getCastInstrCost()
2569 {ISD::FP_TO_SINT, MVT::v4i8, MVT::v4f16, 1}, // fcvtzs in getCastInstrCost()
2570 {ISD::FP_TO_UINT, MVT::v4i8, MVT::v4f16, 1}, in getCastInstrCost()
2571 {ISD::FP_TO_SINT, MVT::v4i16, MVT::v4f16, 1}, // fcvtzs in getCastInstrCost()
2572 {ISD::FP_TO_UINT, MVT::v4i16, MVT::v4f16, 1}, in getCastInstrCost()
2573 {ISD::FP_TO_SINT, MVT::v4i32, MVT::v4f16, 2}, // fcvtl+fcvtzs in getCastInstrCost()
2574 {ISD::FP_TO_UINT, MVT::v4i32, MVT::v4f16, 2}, in getCastInstrCost()
2575 {ISD::FP_TO_SINT, MVT::v8i8, MVT::v8f16, 2}, // fcvtzs+xtn in getCastInstrCost()
2576 {ISD::FP_TO_UINT, MVT::v8i8, MVT::v8f16, 2}, in getCastInstrCost()
2577 {ISD::FP_TO_SINT, MVT::v8i16, MVT::v8f16, 1}, // fcvtzs in getCastInstrCost()
2578 {ISD::FP_TO_UINT, MVT::v8i16, MVT::v8f16, 1}, in getCastInstrCost()
2579 {ISD::FP_TO_SINT, MVT::v8i32, MVT::v8f16, 4}, // 2*fcvtl+2*fcvtzs in getCastInstrCost()
2580 {ISD::FP_TO_UINT, MVT::v8i32, MVT::v8f16, 4}, in getCastInstrCost()
2581 {ISD::FP_TO_SINT, MVT::v16i8, MVT::v16f16, 3}, // 2*fcvtzs+xtn in getCastInstrCost()
2582 {ISD::FP_TO_UINT, MVT::v16i8, MVT::v16f16, 3}, in getCastInstrCost()
2583 {ISD::FP_TO_SINT, MVT::v16i16, MVT::v16f16, 2}, // 2*fcvtzs in getCastInstrCost()
2584 {ISD::FP_TO_UINT, MVT::v16i16, MVT::v16f16, 2}, in getCastInstrCost()
2585 {ISD::FP_TO_SINT, MVT::v16i32, MVT::v16f16, 8}, // 4*fcvtl+4*fcvtzs in getCastInstrCost()
2586 {ISD::FP_TO_UINT, MVT::v16i32, MVT::v16f16, 8}, in getCastInstrCost()
2587 {ISD::UINT_TO_FP, MVT::v8f16, MVT::v8i8, 2}, // ushll + ucvtf in getCastInstrCost()
2588 {ISD::SINT_TO_FP, MVT::v8f16, MVT::v8i8, 2}, // sshll + scvtf in getCastInstrCost()
2589 {ISD::UINT_TO_FP, MVT::v16f16, MVT::v16i8, 4}, // 2 * ushl(2) + 2 * ucvtf in getCastInstrCost()
2590 {ISD::SINT_TO_FP, MVT::v16f16, MVT::v16i8, 4}, // 2 * sshl(2) + 2 * scvtf in getCastInstrCost()
2608 std::pair<InstructionCost, MVT> SrcLT = getTypeLegalizationCost(Src); in getCastInstrCost()
2707 std::pair<InstructionCost, MVT> LT = getTypeLegalizationCost(Val); in getVectorInstrCostHelper()
2792 std::pair<InstructionCost, MVT> LT = getTypeLegalizationCost(Ty); in getArithmeticInstrCost()
2846 {ISD::SDIV, MVT::v2i8, 5}, {ISD::SDIV, MVT::v4i8, 8}, in getArithmeticInstrCost()
2847 {ISD::SDIV, MVT::v8i8, 8}, {ISD::SDIV, MVT::v2i16, 5}, in getArithmeticInstrCost()
2848 {ISD::SDIV, MVT::v4i16, 5}, {ISD::SDIV, MVT::v2i32, 1}, in getArithmeticInstrCost()
2849 {ISD::UDIV, MVT::v2i8, 5}, {ISD::UDIV, MVT::v4i8, 8}, in getArithmeticInstrCost()
2850 {ISD::UDIV, MVT::v8i8, 8}, {ISD::UDIV, MVT::v2i16, 5}, in getArithmeticInstrCost()
2851 {ISD::UDIV, MVT::v4i16, 5}, {ISD::UDIV, MVT::v2i32, 1}}; in getArithmeticInstrCost()
2859 if (LT.second.getScalarType() == MVT::i8) in getArithmeticInstrCost()
2861 else if (LT.second.getScalarType() == MVT::i16) in getArithmeticInstrCost()
2894 if (LT.second == MVT::v2i64 && ST->hasSVE()) in getArithmeticInstrCost()
2909 if (LT.second != MVT::v2i64 || isWideningInstruction(Ty, Opcode, Args)) in getArithmeticInstrCost()
2997 MVT::v8i8, MVT::v16i8, MVT::v4i16, MVT::v8i16, MVT::v2i32, in getCmpSelInstrCost()
2998 MVT::v4i32, MVT::v2i64, MVT::v2f32, MVT::v4f32, MVT::v2f64}; in getCmpSelInstrCost()
2999 static const auto ValidFP16MinMaxTys = {MVT::v4f16, MVT::v8f16}; in getCmpSelInstrCost()
3002 if (any_of(ValidMinMaxTys, [<](MVT M) { return M == LT.second; }) || in getCmpSelInstrCost()
3004 any_of(ValidFP16MinMaxTys, [<](MVT M) { return M == LT.second; }))) in getCmpSelInstrCost()
3010 { ISD::SELECT, MVT::v2i1, MVT::v2f32, 2 }, in getCmpSelInstrCost()
3011 { ISD::SELECT, MVT::v2i1, MVT::v2f64, 2 }, in getCmpSelInstrCost()
3012 { ISD::SELECT, MVT::v4i1, MVT::v4f32, 2 }, in getCmpSelInstrCost()
3013 { ISD::SELECT, MVT::v4i1, MVT::v4f16, 2 }, in getCmpSelInstrCost()
3014 { ISD::SELECT, MVT::v8i1, MVT::v8f16, 2 }, in getCmpSelInstrCost()
3015 { ISD::SELECT, MVT::v16i1, MVT::v16i16, 16 }, in getCmpSelInstrCost()
3016 { ISD::SELECT, MVT::v8i1, MVT::v8i32, 8 }, in getCmpSelInstrCost()
3017 { ISD::SELECT, MVT::v16i1, MVT::v16i32, 16 }, in getCmpSelInstrCost()
3018 { ISD::SELECT, MVT::v4i1, MVT::v4i64, 4 * AmortizationCost }, in getCmpSelInstrCost()
3019 { ISD::SELECT, MVT::v8i1, MVT::v8i64, 8 * AmortizationCost }, in getCmpSelInstrCost()
3020 { ISD::SELECT, MVT::v16i1, MVT::v16i64, 16 * AmortizationCost } in getCmpSelInstrCost()
3036 if (LT.second == MVT::v4f16 && !ST->hasFullFP16()) in getCmpSelInstrCost()
3149 if (VT == MVT::Other) in getMemoryOpCost()
3192 if (VT == MVT::v4i8) in getMemoryOpCost()
3205 if (VT.getVectorNumElements() == 3 && EltVT == MVT::i8) in getMemoryOpCost()
3543 std::pair<InstructionCost, MVT> LT = getTypeLegalizationCost(Ty); in getMinMaxReductionCost()
3545 if (LT.second.getScalarType() == MVT::f16 && !ST->hasFullFP16()) in getMinMaxReductionCost()
3560 std::pair<InstructionCost, MVT> LT = getTypeLegalizationCost(ValTy); in getArithmeticReductionCostSVE()
3609 std::pair<InstructionCost, MVT> LT = getTypeLegalizationCost(ValTy); in getArithmeticReductionCost()
3610 MVT MTy = LT.second; in getArithmeticReductionCost()
3623 {ISD::ADD, MVT::v8i8, 2}, in getArithmeticReductionCost()
3624 {ISD::ADD, MVT::v16i8, 2}, in getArithmeticReductionCost()
3625 {ISD::ADD, MVT::v4i16, 2}, in getArithmeticReductionCost()
3626 {ISD::ADD, MVT::v8i16, 2}, in getArithmeticReductionCost()
3627 {ISD::ADD, MVT::v4i32, 2}, in getArithmeticReductionCost()
3628 {ISD::ADD, MVT::v2i64, 2}, in getArithmeticReductionCost()
3629 {ISD::OR, MVT::v8i8, 15}, in getArithmeticReductionCost()
3630 {ISD::OR, MVT::v16i8, 17}, in getArithmeticReductionCost()
3631 {ISD::OR, MVT::v4i16, 7}, in getArithmeticReductionCost()
3632 {ISD::OR, MVT::v8i16, 9}, in getArithmeticReductionCost()
3633 {ISD::OR, MVT::v2i32, 3}, in getArithmeticReductionCost()
3634 {ISD::OR, MVT::v4i32, 5}, in getArithmeticReductionCost()
3635 {ISD::OR, MVT::v2i64, 3}, in getArithmeticReductionCost()
3636 {ISD::XOR, MVT::v8i8, 15}, in getArithmeticReductionCost()
3637 {ISD::XOR, MVT::v16i8, 17}, in getArithmeticReductionCost()
3638 {ISD::XOR, MVT::v4i16, 7}, in getArithmeticReductionCost()
3639 {ISD::XOR, MVT::v8i16, 9}, in getArithmeticReductionCost()
3640 {ISD::XOR, MVT::v2i32, 3}, in getArithmeticReductionCost()
3641 {ISD::XOR, MVT::v4i32, 5}, in getArithmeticReductionCost()
3642 {ISD::XOR, MVT::v2i64, 3}, in getArithmeticReductionCost()
3643 {ISD::AND, MVT::v8i8, 15}, in getArithmeticReductionCost()
3644 {ISD::AND, MVT::v16i8, 17}, in getArithmeticReductionCost()
3645 {ISD::AND, MVT::v4i16, 7}, in getArithmeticReductionCost()
3646 {ISD::AND, MVT::v8i16, 9}, in getArithmeticReductionCost()
3647 {ISD::AND, MVT::v2i32, 3}, in getArithmeticReductionCost()
3648 {ISD::AND, MVT::v4i32, 5}, in getArithmeticReductionCost()
3649 {ISD::AND, MVT::v2i64, 3}, in getArithmeticReductionCost()
3687 { TTI::SK_Splice, MVT::nxv16i8, 1 }, in getSpliceCost()
3688 { TTI::SK_Splice, MVT::nxv8i16, 1 }, in getSpliceCost()
3689 { TTI::SK_Splice, MVT::nxv4i32, 1 }, in getSpliceCost()
3690 { TTI::SK_Splice, MVT::nxv2i64, 1 }, in getSpliceCost()
3691 { TTI::SK_Splice, MVT::nxv2f16, 1 }, in getSpliceCost()
3692 { TTI::SK_Splice, MVT::nxv4f16, 1 }, in getSpliceCost()
3693 { TTI::SK_Splice, MVT::nxv8f16, 1 }, in getSpliceCost()
3694 { TTI::SK_Splice, MVT::nxv2bf16, 1 }, in getSpliceCost()
3695 { TTI::SK_Splice, MVT::nxv4bf16, 1 }, in getSpliceCost()
3696 { TTI::SK_Splice, MVT::nxv8bf16, 1 }, in getSpliceCost()
3697 { TTI::SK_Splice, MVT::nxv2f32, 1 }, in getSpliceCost()
3698 { TTI::SK_Splice, MVT::nxv4f32, 1 }, in getSpliceCost()
3699 { TTI::SK_Splice, MVT::nxv2f64, 1 }, in getSpliceCost()
3709 std::pair<InstructionCost, MVT> LT = getTypeLegalizationCost(Tp); in getSpliceCost()
3712 EVT PromotedVT = LT.second.getScalarType() == MVT::i1 in getSpliceCost()
3727 if (LT.second.getScalarType() == MVT::i1) { in getSpliceCost()
3747 std::pair<InstructionCost, MVT> LT = getTypeLegalizationCost(Tp); in getShuffleCost()
3840 {TTI::SK_Broadcast, MVT::v8i8, 1}, in getShuffleCost()
3841 {TTI::SK_Broadcast, MVT::v16i8, 1}, in getShuffleCost()
3842 {TTI::SK_Broadcast, MVT::v4i16, 1}, in getShuffleCost()
3843 {TTI::SK_Broadcast, MVT::v8i16, 1}, in getShuffleCost()
3844 {TTI::SK_Broadcast, MVT::v2i32, 1}, in getShuffleCost()
3845 {TTI::SK_Broadcast, MVT::v4i32, 1}, in getShuffleCost()
3846 {TTI::SK_Broadcast, MVT::v2i64, 1}, in getShuffleCost()
3847 {TTI::SK_Broadcast, MVT::v4f16, 1}, in getShuffleCost()
3848 {TTI::SK_Broadcast, MVT::v8f16, 1}, in getShuffleCost()
3849 {TTI::SK_Broadcast, MVT::v2f32, 1}, in getShuffleCost()
3850 {TTI::SK_Broadcast, MVT::v4f32, 1}, in getShuffleCost()
3851 {TTI::SK_Broadcast, MVT::v2f64, 1}, in getShuffleCost()
3854 {TTI::SK_Transpose, MVT::v8i8, 1}, in getShuffleCost()
3855 {TTI::SK_Transpose, MVT::v16i8, 1}, in getShuffleCost()
3856 {TTI::SK_Transpose, MVT::v4i16, 1}, in getShuffleCost()
3857 {TTI::SK_Transpose, MVT::v8i16, 1}, in getShuffleCost()
3858 {TTI::SK_Transpose, MVT::v2i32, 1}, in getShuffleCost()
3859 {TTI::SK_Transpose, MVT::v4i32, 1}, in getShuffleCost()
3860 {TTI::SK_Transpose, MVT::v2i64, 1}, in getShuffleCost()
3861 {TTI::SK_Transpose, MVT::v4f16, 1}, in getShuffleCost()
3862 {TTI::SK_Transpose, MVT::v8f16, 1}, in getShuffleCost()
3863 {TTI::SK_Transpose, MVT::v2f32, 1}, in getShuffleCost()
3864 {TTI::SK_Transpose, MVT::v4f32, 1}, in getShuffleCost()
3865 {TTI::SK_Transpose, MVT::v2f64, 1}, in getShuffleCost()
3868 {TTI::SK_Select, MVT::v2i32, 1}, // mov. in getShuffleCost()
3869 {TTI::SK_Select, MVT::v4i32, 2}, // rev+trn (or similar). in getShuffleCost()
3870 {TTI::SK_Select, MVT::v2i64, 1}, // mov. in getShuffleCost()
3871 {TTI::SK_Select, MVT::v2f32, 1}, // mov. in getShuffleCost()
3872 {TTI::SK_Select, MVT::v4f32, 2}, // rev+trn (or similar). in getShuffleCost()
3873 {TTI::SK_Select, MVT::v2f64, 1}, // mov. in getShuffleCost()
3875 {TTI::SK_PermuteSingleSrc, MVT::v2i32, 1}, // mov. in getShuffleCost()
3876 {TTI::SK_PermuteSingleSrc, MVT::v4i32, 3}, // perfectshuffle worst case. in getShuffleCost()
3877 {TTI::SK_PermuteSingleSrc, MVT::v2i64, 1}, // mov. in getShuffleCost()
3878 {TTI::SK_PermuteSingleSrc, MVT::v2f32, 1}, // mov. in getShuffleCost()
3879 {TTI::SK_PermuteSingleSrc, MVT::v4f32, 3}, // perfectshuffle worst case. in getShuffleCost()
3880 {TTI::SK_PermuteSingleSrc, MVT::v2f64, 1}, // mov. in getShuffleCost()
3881 {TTI::SK_PermuteSingleSrc, MVT::v4i16, 3}, // perfectshuffle worst case. in getShuffleCost()
3882 {TTI::SK_PermuteSingleSrc, MVT::v4f16, 3}, // perfectshuffle worst case. in getShuffleCost()
3883 {TTI::SK_PermuteSingleSrc, MVT::v4bf16, 3}, // same in getShuffleCost()
3884 {TTI::SK_PermuteSingleSrc, MVT::v8i16, 8}, // constpool + load + tbl in getShuffleCost()
3885 {TTI::SK_PermuteSingleSrc, MVT::v8f16, 8}, // constpool + load + tbl in getShuffleCost()
3886 {TTI::SK_PermuteSingleSrc, MVT::v8bf16, 8}, // constpool + load + tbl in getShuffleCost()
3887 {TTI::SK_PermuteSingleSrc, MVT::v8i8, 8}, // constpool + load + tbl in getShuffleCost()
3888 {TTI::SK_PermuteSingleSrc, MVT::v16i8, 8}, // constpool + load + tbl in getShuffleCost()
3890 {TTI::SK_Reverse, MVT::v2i32, 1}, // REV64 in getShuffleCost()
3891 {TTI::SK_Reverse, MVT::v4i32, 2}, // REV64; EXT in getShuffleCost()
3892 {TTI::SK_Reverse, MVT::v2i64, 1}, // EXT in getShuffleCost()
3893 {TTI::SK_Reverse, MVT::v2f32, 1}, // REV64 in getShuffleCost()
3894 {TTI::SK_Reverse, MVT::v4f32, 2}, // REV64; EXT in getShuffleCost()
3895 {TTI::SK_Reverse, MVT::v2f64, 1}, // EXT in getShuffleCost()
3896 {TTI::SK_Reverse, MVT::v8f16, 2}, // REV64; EXT in getShuffleCost()
3897 {TTI::SK_Reverse, MVT::v8i16, 2}, // REV64; EXT in getShuffleCost()
3898 {TTI::SK_Reverse, MVT::v16i8, 2}, // REV64; EXT in getShuffleCost()
3899 {TTI::SK_Reverse, MVT::v4f16, 1}, // REV64 in getShuffleCost()
3900 {TTI::SK_Reverse, MVT::v4i16, 1}, // REV64 in getShuffleCost()
3901 {TTI::SK_Reverse, MVT::v8i8, 1}, // REV64 in getShuffleCost()
3903 {TTI::SK_Splice, MVT::v2i32, 1}, in getShuffleCost()
3904 {TTI::SK_Splice, MVT::v4i32, 1}, in getShuffleCost()
3905 {TTI::SK_Splice, MVT::v2i64, 1}, in getShuffleCost()
3906 {TTI::SK_Splice, MVT::v2f32, 1}, in getShuffleCost()
3907 {TTI::SK_Splice, MVT::v4f32, 1}, in getShuffleCost()
3908 {TTI::SK_Splice, MVT::v2f64, 1}, in getShuffleCost()
3909 {TTI::SK_Splice, MVT::v8f16, 1}, in getShuffleCost()
3910 {TTI::SK_Splice, MVT::v8bf16, 1}, in getShuffleCost()
3911 {TTI::SK_Splice, MVT::v8i16, 1}, in getShuffleCost()
3912 {TTI::SK_Splice, MVT::v16i8, 1}, in getShuffleCost()
3913 {TTI::SK_Splice, MVT::v4bf16, 1}, in getShuffleCost()
3914 {TTI::SK_Splice, MVT::v4f16, 1}, in getShuffleCost()
3915 {TTI::SK_Splice, MVT::v4i16, 1}, in getShuffleCost()
3916 {TTI::SK_Splice, MVT::v8i8, 1}, in getShuffleCost()
3918 {TTI::SK_Broadcast, MVT::nxv16i8, 1}, in getShuffleCost()
3919 {TTI::SK_Broadcast, MVT::nxv8i16, 1}, in getShuffleCost()
3920 {TTI::SK_Broadcast, MVT::nxv4i32, 1}, in getShuffleCost()
3921 {TTI::SK_Broadcast, MVT::nxv2i64, 1}, in getShuffleCost()
3922 {TTI::SK_Broadcast, MVT::nxv2f16, 1}, in getShuffleCost()
3923 {TTI::SK_Broadcast, MVT::nxv4f16, 1}, in getShuffleCost()
3924 {TTI::SK_Broadcast, MVT::nxv8f16, 1}, in getShuffleCost()
3925 {TTI::SK_Broadcast, MVT::nxv2bf16, 1}, in getShuffleCost()
3926 {TTI::SK_Broadcast, MVT::nxv4bf16, 1}, in getShuffleCost()
3927 {TTI::SK_Broadcast, MVT::nxv8bf16, 1}, in getShuffleCost()
3928 {TTI::SK_Broadcast, MVT::nxv2f32, 1}, in getShuffleCost()
3929 {TTI::SK_Broadcast, MVT::nxv4f32, 1}, in getShuffleCost()
3930 {TTI::SK_Broadcast, MVT::nxv2f64, 1}, in getShuffleCost()
3931 {TTI::SK_Broadcast, MVT::nxv16i1, 1}, in getShuffleCost()
3932 {TTI::SK_Broadcast, MVT::nxv8i1, 1}, in getShuffleCost()
3933 {TTI::SK_Broadcast, MVT::nxv4i1, 1}, in getShuffleCost()
3934 {TTI::SK_Broadcast, MVT::nxv2i1, 1}, in getShuffleCost()
3936 {TTI::SK_Reverse, MVT::nxv16i8, 1}, in getShuffleCost()
3937 {TTI::SK_Reverse, MVT::nxv8i16, 1}, in getShuffleCost()
3938 {TTI::SK_Reverse, MVT::nxv4i32, 1}, in getShuffleCost()
3939 {TTI::SK_Reverse, MVT::nxv2i64, 1}, in getShuffleCost()
3940 {TTI::SK_Reverse, MVT::nxv2f16, 1}, in getShuffleCost()
3941 {TTI::SK_Reverse, MVT::nxv4f16, 1}, in getShuffleCost()
3942 {TTI::SK_Reverse, MVT::nxv8f16, 1}, in getShuffleCost()
3943 {TTI::SK_Reverse, MVT::nxv2bf16, 1}, in getShuffleCost()
3944 {TTI::SK_Reverse, MVT::nxv4bf16, 1}, in getShuffleCost()
3945 {TTI::SK_Reverse, MVT::nxv8bf16, 1}, in getShuffleCost()
3946 {TTI::SK_Reverse, MVT::nxv2f32, 1}, in getShuffleCost()
3947 {TTI::SK_Reverse, MVT::nxv4f32, 1}, in getShuffleCost()
3948 {TTI::SK_Reverse, MVT::nxv2f64, 1}, in getShuffleCost()
3949 {TTI::SK_Reverse, MVT::nxv16i1, 1}, in getShuffleCost()
3950 {TTI::SK_Reverse, MVT::nxv8i1, 1}, in getShuffleCost()
3951 {TTI::SK_Reverse, MVT::nxv4i1, 1}, in getShuffleCost()
3952 {TTI::SK_Reverse, MVT::nxv2i1, 1}, in getShuffleCost()
3965 std::pair<InstructionCost, MVT> SubLT = getTypeLegalizationCost(SubTp); in getShuffleCost()