Lines Matching refs:MVT

310     static const auto ValidMinMaxTys = {MVT::v8i8,  MVT::v16i8, MVT::v4i16,  in getIntrinsicInstrCost()
311 MVT::v8i16, MVT::v2i32, MVT::v4i32}; in getIntrinsicInstrCost()
314 if (LT.second == MVT::v2i64) in getIntrinsicInstrCost()
316 if (any_of(ValidMinMaxTys, [&LT](MVT M) { return M == LT.second; })) in getIntrinsicInstrCost()
324 static const auto ValidSatTys = {MVT::v8i8, MVT::v16i8, MVT::v4i16, in getIntrinsicInstrCost()
325 MVT::v8i16, MVT::v2i32, MVT::v4i32, in getIntrinsicInstrCost()
326 MVT::v2i64}; in getIntrinsicInstrCost()
332 if (any_of(ValidSatTys, [&LT](MVT M) { return M == LT.second; })) in getIntrinsicInstrCost()
337 static const auto ValidAbsTys = {MVT::v8i8, MVT::v16i8, MVT::v4i16, in getIntrinsicInstrCost()
338 MVT::v8i16, MVT::v2i32, MVT::v4i32, in getIntrinsicInstrCost()
339 MVT::v2i64}; in getIntrinsicInstrCost()
341 if (any_of(ValidAbsTys, [&LT](MVT M) { return M == LT.second; })) in getIntrinsicInstrCost()
360 {Intrinsic::bitreverse, MVT::i32, 1}, in getIntrinsicInstrCost()
361 {Intrinsic::bitreverse, MVT::i64, 1}, in getIntrinsicInstrCost()
362 {Intrinsic::bitreverse, MVT::v8i8, 1}, in getIntrinsicInstrCost()
363 {Intrinsic::bitreverse, MVT::v16i8, 1}, in getIntrinsicInstrCost()
364 {Intrinsic::bitreverse, MVT::v4i16, 2}, in getIntrinsicInstrCost()
365 {Intrinsic::bitreverse, MVT::v8i16, 2}, in getIntrinsicInstrCost()
366 {Intrinsic::bitreverse, MVT::v2i32, 2}, in getIntrinsicInstrCost()
367 {Intrinsic::bitreverse, MVT::v4i32, 2}, in getIntrinsicInstrCost()
368 {Intrinsic::bitreverse, MVT::v1i64, 2}, in getIntrinsicInstrCost()
369 {Intrinsic::bitreverse, MVT::v2i64, 2}, in getIntrinsicInstrCost()
377 if (TLI->getValueType(DL, RetTy, true) == MVT::i8 || in getIntrinsicInstrCost()
378 TLI->getValueType(DL, RetTy, true) == MVT::i16) in getIntrinsicInstrCost()
387 {ISD::CTPOP, MVT::v2i64, 4}, in getIntrinsicInstrCost()
388 {ISD::CTPOP, MVT::v4i32, 3}, in getIntrinsicInstrCost()
389 {ISD::CTPOP, MVT::v8i16, 2}, in getIntrinsicInstrCost()
390 {ISD::CTPOP, MVT::v16i8, 1}, in getIntrinsicInstrCost()
391 {ISD::CTPOP, MVT::i64, 4}, in getIntrinsicInstrCost()
392 {ISD::CTPOP, MVT::v2i32, 3}, in getIntrinsicInstrCost()
393 {ISD::CTPOP, MVT::v4i16, 2}, in getIntrinsicInstrCost()
394 {ISD::CTPOP, MVT::v8i8, 1}, in getIntrinsicInstrCost()
395 {ISD::CTPOP, MVT::i32, 5}, in getIntrinsicInstrCost()
398 MVT MTy = LT.second; in getIntrinsicInstrCost()
417 {Intrinsic::sadd_with_overflow, MVT::i8, 3}, in getIntrinsicInstrCost()
418 {Intrinsic::uadd_with_overflow, MVT::i8, 3}, in getIntrinsicInstrCost()
419 {Intrinsic::sadd_with_overflow, MVT::i16, 3}, in getIntrinsicInstrCost()
420 {Intrinsic::uadd_with_overflow, MVT::i16, 3}, in getIntrinsicInstrCost()
421 {Intrinsic::sadd_with_overflow, MVT::i32, 1}, in getIntrinsicInstrCost()
422 {Intrinsic::uadd_with_overflow, MVT::i32, 1}, in getIntrinsicInstrCost()
423 {Intrinsic::sadd_with_overflow, MVT::i64, 1}, in getIntrinsicInstrCost()
424 {Intrinsic::uadd_with_overflow, MVT::i64, 1}, in getIntrinsicInstrCost()
425 {Intrinsic::ssub_with_overflow, MVT::i8, 3}, in getIntrinsicInstrCost()
426 {Intrinsic::usub_with_overflow, MVT::i8, 3}, in getIntrinsicInstrCost()
427 {Intrinsic::ssub_with_overflow, MVT::i16, 3}, in getIntrinsicInstrCost()
428 {Intrinsic::usub_with_overflow, MVT::i16, 3}, in getIntrinsicInstrCost()
429 {Intrinsic::ssub_with_overflow, MVT::i32, 1}, in getIntrinsicInstrCost()
430 {Intrinsic::usub_with_overflow, MVT::i32, 1}, in getIntrinsicInstrCost()
431 {Intrinsic::ssub_with_overflow, MVT::i64, 1}, in getIntrinsicInstrCost()
432 {Intrinsic::usub_with_overflow, MVT::i64, 1}, in getIntrinsicInstrCost()
433 {Intrinsic::smul_with_overflow, MVT::i8, 5}, in getIntrinsicInstrCost()
434 {Intrinsic::umul_with_overflow, MVT::i8, 4}, in getIntrinsicInstrCost()
435 {Intrinsic::smul_with_overflow, MVT::i16, 5}, in getIntrinsicInstrCost()
436 {Intrinsic::umul_with_overflow, MVT::i16, 4}, in getIntrinsicInstrCost()
437 {Intrinsic::smul_with_overflow, MVT::i32, 2}, // eg umull;tst in getIntrinsicInstrCost()
438 {Intrinsic::umul_with_overflow, MVT::i32, 2}, // eg umull;cmp sxtw in getIntrinsicInstrCost()
439 {Intrinsic::smul_with_overflow, MVT::i64, 3}, // eg mul;smulh;cmp in getIntrinsicInstrCost()
440 {Intrinsic::umul_with_overflow, MVT::i64, 3}, // eg mul;umulh;cmp asr in getIntrinsicInstrCost()
458 if ((LT.second == MVT::f32 || LT.second == MVT::f64 || in getIntrinsicInstrCost()
459 LT.second == MVT::v2f32 || LT.second == MVT::v4f32 || in getIntrinsicInstrCost()
460 LT.second == MVT::v2f64) && in getIntrinsicInstrCost()
462 (LT.second == MVT::f64 && MTy == MVT::i32) || in getIntrinsicInstrCost()
463 (LT.second == MVT::f32 && MTy == MVT::i64))) in getIntrinsicInstrCost()
467 ((LT.second == MVT::f16 && MTy == MVT::i32) || in getIntrinsicInstrCost()
468 ((LT.second == MVT::v4f16 || LT.second == MVT::v8f16) && in getIntrinsicInstrCost()
473 if ((LT.second.getScalarType() == MVT::f32 || in getIntrinsicInstrCost()
474 LT.second.getScalarType() == MVT::f64 || in getIntrinsicInstrCost()
475 (ST->hasFullFP16() && LT.second.getScalarType() == MVT::f16)) && in getIntrinsicInstrCost()
1605 { ISD::TRUNCATE, MVT::v4i16, MVT::v4i32, 1 }, in getCastInstrCost()
1606 { ISD::TRUNCATE, MVT::v4i32, MVT::v4i64, 0 }, in getCastInstrCost()
1607 { ISD::TRUNCATE, MVT::v8i8, MVT::v8i32, 3 }, in getCastInstrCost()
1608 { ISD::TRUNCATE, MVT::v16i8, MVT::v16i32, 6 }, in getCastInstrCost()
1611 { ISD::TRUNCATE, MVT::nxv2i1, MVT::nxv2i16, 1 }, in getCastInstrCost()
1612 { ISD::TRUNCATE, MVT::nxv2i1, MVT::nxv2i32, 1 }, in getCastInstrCost()
1613 { ISD::TRUNCATE, MVT::nxv2i1, MVT::nxv2i64, 1 }, in getCastInstrCost()
1614 { ISD::TRUNCATE, MVT::nxv4i1, MVT::nxv4i16, 1 }, in getCastInstrCost()
1615 { ISD::TRUNCATE, MVT::nxv4i1, MVT::nxv4i32, 1 }, in getCastInstrCost()
1616 { ISD::TRUNCATE, MVT::nxv4i1, MVT::nxv4i64, 2 }, in getCastInstrCost()
1617 { ISD::TRUNCATE, MVT::nxv8i1, MVT::nxv8i16, 1 }, in getCastInstrCost()
1618 { ISD::TRUNCATE, MVT::nxv8i1, MVT::nxv8i32, 3 }, in getCastInstrCost()
1619 { ISD::TRUNCATE, MVT::nxv8i1, MVT::nxv8i64, 5 }, in getCastInstrCost()
1620 { ISD::TRUNCATE, MVT::nxv16i1, MVT::nxv16i8, 1 }, in getCastInstrCost()
1621 { ISD::TRUNCATE, MVT::nxv2i16, MVT::nxv2i32, 1 }, in getCastInstrCost()
1622 { ISD::TRUNCATE, MVT::nxv2i32, MVT::nxv2i64, 1 }, in getCastInstrCost()
1623 { ISD::TRUNCATE, MVT::nxv4i16, MVT::nxv4i32, 1 }, in getCastInstrCost()
1624 { ISD::TRUNCATE, MVT::nxv4i32, MVT::nxv4i64, 2 }, in getCastInstrCost()
1625 { ISD::TRUNCATE, MVT::nxv8i16, MVT::nxv8i32, 3 }, in getCastInstrCost()
1626 { ISD::TRUNCATE, MVT::nxv8i32, MVT::nxv8i64, 6 }, in getCastInstrCost()
1629 { ISD::SIGN_EXTEND, MVT::v4i64, MVT::v4i16, 3 }, in getCastInstrCost()
1630 { ISD::ZERO_EXTEND, MVT::v4i64, MVT::v4i16, 3 }, in getCastInstrCost()
1631 { ISD::SIGN_EXTEND, MVT::v4i64, MVT::v4i32, 2 }, in getCastInstrCost()
1632 { ISD::ZERO_EXTEND, MVT::v4i64, MVT::v4i32, 2 }, in getCastInstrCost()
1633 { ISD::SIGN_EXTEND, MVT::v8i32, MVT::v8i8, 3 }, in getCastInstrCost()
1634 { ISD::ZERO_EXTEND, MVT::v8i32, MVT::v8i8, 3 }, in getCastInstrCost()
1635 { ISD::SIGN_EXTEND, MVT::v8i32, MVT::v8i16, 2 }, in getCastInstrCost()
1636 { ISD::ZERO_EXTEND, MVT::v8i32, MVT::v8i16, 2 }, in getCastInstrCost()
1637 { ISD::SIGN_EXTEND, MVT::v8i64, MVT::v8i8, 7 }, in getCastInstrCost()
1638 { ISD::ZERO_EXTEND, MVT::v8i64, MVT::v8i8, 7 }, in getCastInstrCost()
1639 { ISD::SIGN_EXTEND, MVT::v8i64, MVT::v8i16, 6 }, in getCastInstrCost()
1640 { ISD::ZERO_EXTEND, MVT::v8i64, MVT::v8i16, 6 }, in getCastInstrCost()
1641 { ISD::SIGN_EXTEND, MVT::v16i16, MVT::v16i8, 2 }, in getCastInstrCost()
1642 { ISD::ZERO_EXTEND, MVT::v16i16, MVT::v16i8, 2 }, in getCastInstrCost()
1643 { ISD::SIGN_EXTEND, MVT::v16i32, MVT::v16i8, 6 }, in getCastInstrCost()
1644 { ISD::ZERO_EXTEND, MVT::v16i32, MVT::v16i8, 6 }, in getCastInstrCost()
1647 { ISD::SINT_TO_FP, MVT::v2f32, MVT::v2i32, 1 }, in getCastInstrCost()
1648 { ISD::SINT_TO_FP, MVT::v4f32, MVT::v4i32, 1 }, in getCastInstrCost()
1649 { ISD::SINT_TO_FP, MVT::v2f64, MVT::v2i64, 1 }, in getCastInstrCost()
1650 { ISD::UINT_TO_FP, MVT::v2f32, MVT::v2i32, 1 }, in getCastInstrCost()
1651 { ISD::UINT_TO_FP, MVT::v4f32, MVT::v4i32, 1 }, in getCastInstrCost()
1652 { ISD::UINT_TO_FP, MVT::v2f64, MVT::v2i64, 1 }, in getCastInstrCost()
1655 { ISD::SINT_TO_FP, MVT::v2f32, MVT::v2i8, 3 }, in getCastInstrCost()
1656 { ISD::SINT_TO_FP, MVT::v2f32, MVT::v2i16, 3 }, in getCastInstrCost()
1657 { ISD::SINT_TO_FP, MVT::v2f32, MVT::v2i64, 2 }, in getCastInstrCost()
1658 { ISD::UINT_TO_FP, MVT::v2f32, MVT::v2i8, 3 }, in getCastInstrCost()
1659 { ISD::UINT_TO_FP, MVT::v2f32, MVT::v2i16, 3 }, in getCastInstrCost()
1660 { ISD::UINT_TO_FP, MVT::v2f32, MVT::v2i64, 2 }, in getCastInstrCost()
1663 { ISD::SINT_TO_FP, MVT::v4f32, MVT::v4i8, 4 }, in getCastInstrCost()
1664 { ISD::SINT_TO_FP, MVT::v4f32, MVT::v4i16, 2 }, in getCastInstrCost()
1665 { ISD::UINT_TO_FP, MVT::v4f32, MVT::v4i8, 3 }, in getCastInstrCost()
1666 { ISD::UINT_TO_FP, MVT::v4f32, MVT::v4i16, 2 }, in getCastInstrCost()
1669 { ISD::SINT_TO_FP, MVT::v8f32, MVT::v8i8, 10 }, in getCastInstrCost()
1670 { ISD::SINT_TO_FP, MVT::v8f32, MVT::v8i16, 4 }, in getCastInstrCost()
1671 { ISD::UINT_TO_FP, MVT::v8f32, MVT::v8i8, 10 }, in getCastInstrCost()
1672 { ISD::UINT_TO_FP, MVT::v8f32, MVT::v8i16, 4 }, in getCastInstrCost()
1675 { ISD::SINT_TO_FP, MVT::v16f32, MVT::v16i8, 21 }, in getCastInstrCost()
1676 { ISD::UINT_TO_FP, MVT::v16f32, MVT::v16i8, 21 }, in getCastInstrCost()
1679 { ISD::SINT_TO_FP, MVT::v2f64, MVT::v2i8, 4 }, in getCastInstrCost()
1680 { ISD::SINT_TO_FP, MVT::v2f64, MVT::v2i16, 4 }, in getCastInstrCost()
1681 { ISD::SINT_TO_FP, MVT::v2f64, MVT::v2i32, 2 }, in getCastInstrCost()
1682 { ISD::UINT_TO_FP, MVT::v2f64, MVT::v2i8, 4 }, in getCastInstrCost()
1683 { ISD::UINT_TO_FP, MVT::v2f64, MVT::v2i16, 4 }, in getCastInstrCost()
1684 { ISD::UINT_TO_FP, MVT::v2f64, MVT::v2i32, 2 }, in getCastInstrCost()
1688 { ISD::FP_TO_SINT, MVT::v2i32, MVT::v2f32, 1 }, in getCastInstrCost()
1689 { ISD::FP_TO_SINT, MVT::v4i32, MVT::v4f32, 1 }, in getCastInstrCost()
1690 { ISD::FP_TO_SINT, MVT::v2i64, MVT::v2f64, 1 }, in getCastInstrCost()
1691 { ISD::FP_TO_UINT, MVT::v2i32, MVT::v2f32, 1 }, in getCastInstrCost()
1692 { ISD::FP_TO_UINT, MVT::v4i32, MVT::v4f32, 1 }, in getCastInstrCost()
1693 { ISD::FP_TO_UINT, MVT::v2i64, MVT::v2f64, 1 }, in getCastInstrCost()
1696 { ISD::FP_TO_SINT, MVT::v2i64, MVT::v2f32, 2 }, in getCastInstrCost()
1697 { ISD::FP_TO_SINT, MVT::v2i16, MVT::v2f32, 1 }, in getCastInstrCost()
1698 { ISD::FP_TO_SINT, MVT::v2i8, MVT::v2f32, 1 }, in getCastInstrCost()
1699 { ISD::FP_TO_UINT, MVT::v2i64, MVT::v2f32, 2 }, in getCastInstrCost()
1700 { ISD::FP_TO_UINT, MVT::v2i16, MVT::v2f32, 1 }, in getCastInstrCost()
1701 { ISD::FP_TO_UINT, MVT::v2i8, MVT::v2f32, 1 }, in getCastInstrCost()
1704 { ISD::FP_TO_SINT, MVT::v4i16, MVT::v4f32, 2 }, in getCastInstrCost()
1705 { ISD::FP_TO_SINT, MVT::v4i8, MVT::v4f32, 2 }, in getCastInstrCost()
1706 { ISD::FP_TO_UINT, MVT::v4i16, MVT::v4f32, 2 }, in getCastInstrCost()
1707 { ISD::FP_TO_UINT, MVT::v4i8, MVT::v4f32, 2 }, in getCastInstrCost()
1710 { ISD::FP_TO_SINT, MVT::nxv2i64, MVT::nxv2f32, 1 }, in getCastInstrCost()
1711 { ISD::FP_TO_SINT, MVT::nxv2i32, MVT::nxv2f32, 1 }, in getCastInstrCost()
1712 { ISD::FP_TO_SINT, MVT::nxv2i16, MVT::nxv2f32, 1 }, in getCastInstrCost()
1713 { ISD::FP_TO_SINT, MVT::nxv2i8, MVT::nxv2f32, 1 }, in getCastInstrCost()
1714 { ISD::FP_TO_UINT, MVT::nxv2i64, MVT::nxv2f32, 1 }, in getCastInstrCost()
1715 { ISD::FP_TO_UINT, MVT::nxv2i32, MVT::nxv2f32, 1 }, in getCastInstrCost()
1716 { ISD::FP_TO_UINT, MVT::nxv2i16, MVT::nxv2f32, 1 }, in getCastInstrCost()
1717 { ISD::FP_TO_UINT, MVT::nxv2i8, MVT::nxv2f32, 1 }, in getCastInstrCost()
1720 { ISD::FP_TO_SINT, MVT::v2i32, MVT::v2f64, 2 }, in getCastInstrCost()
1721 { ISD::FP_TO_SINT, MVT::v2i16, MVT::v2f64, 2 }, in getCastInstrCost()
1722 { ISD::FP_TO_SINT, MVT::v2i8, MVT::v2f64, 2 }, in getCastInstrCost()
1723 { ISD::FP_TO_UINT, MVT::v2i32, MVT::v2f64, 2 }, in getCastInstrCost()
1724 { ISD::FP_TO_UINT, MVT::v2i16, MVT::v2f64, 2 }, in getCastInstrCost()
1725 { ISD::FP_TO_UINT, MVT::v2i8, MVT::v2f64, 2 }, in getCastInstrCost()
1728 { ISD::FP_TO_SINT, MVT::nxv2i64, MVT::nxv2f64, 1 }, in getCastInstrCost()
1729 { ISD::FP_TO_SINT, MVT::nxv2i32, MVT::nxv2f64, 1 }, in getCastInstrCost()
1730 { ISD::FP_TO_SINT, MVT::nxv2i16, MVT::nxv2f64, 1 }, in getCastInstrCost()
1731 { ISD::FP_TO_SINT, MVT::nxv2i8, MVT::nxv2f64, 1 }, in getCastInstrCost()
1732 { ISD::FP_TO_UINT, MVT::nxv2i64, MVT::nxv2f64, 1 }, in getCastInstrCost()
1733 { ISD::FP_TO_UINT, MVT::nxv2i32, MVT::nxv2f64, 1 }, in getCastInstrCost()
1734 { ISD::FP_TO_UINT, MVT::nxv2i16, MVT::nxv2f64, 1 }, in getCastInstrCost()
1735 { ISD::FP_TO_UINT, MVT::nxv2i8, MVT::nxv2f64, 1 }, in getCastInstrCost()
1738 { ISD::FP_TO_SINT, MVT::nxv4i64, MVT::nxv4f32, 4 }, in getCastInstrCost()
1739 { ISD::FP_TO_SINT, MVT::nxv4i32, MVT::nxv4f32, 1 }, in getCastInstrCost()
1740 { ISD::FP_TO_SINT, MVT::nxv4i16, MVT::nxv4f32, 1 }, in getCastInstrCost()
1741 { ISD::FP_TO_SINT, MVT::nxv4i8, MVT::nxv4f32, 1 }, in getCastInstrCost()
1742 { ISD::FP_TO_UINT, MVT::nxv4i64, MVT::nxv4f32, 4 }, in getCastInstrCost()
1743 { ISD::FP_TO_UINT, MVT::nxv4i32, MVT::nxv4f32, 1 }, in getCastInstrCost()
1744 { ISD::FP_TO_UINT, MVT::nxv4i16, MVT::nxv4f32, 1 }, in getCastInstrCost()
1745 { ISD::FP_TO_UINT, MVT::nxv4i8, MVT::nxv4f32, 1 }, in getCastInstrCost()
1748 { ISD::FP_TO_SINT, MVT::nxv8i16, MVT::nxv8f64, 7 }, in getCastInstrCost()
1749 { ISD::FP_TO_SINT, MVT::nxv8i8, MVT::nxv8f64, 7 }, in getCastInstrCost()
1750 { ISD::FP_TO_UINT, MVT::nxv8i16, MVT::nxv8f64, 7 }, in getCastInstrCost()
1751 { ISD::FP_TO_UINT, MVT::nxv8i8, MVT::nxv8f64, 7 }, in getCastInstrCost()
1754 { ISD::FP_TO_SINT, MVT::nxv4i32, MVT::nxv4f64, 3 }, in getCastInstrCost()
1755 { ISD::FP_TO_SINT, MVT::nxv4i16, MVT::nxv4f64, 3 }, in getCastInstrCost()
1756 { ISD::FP_TO_SINT, MVT::nxv4i8, MVT::nxv4f64, 3 }, in getCastInstrCost()
1757 { ISD::FP_TO_UINT, MVT::nxv4i32, MVT::nxv4f64, 3 }, in getCastInstrCost()
1758 { ISD::FP_TO_UINT, MVT::nxv4i16, MVT::nxv4f64, 3 }, in getCastInstrCost()
1759 { ISD::FP_TO_UINT, MVT::nxv4i8, MVT::nxv4f64, 3 }, in getCastInstrCost()
1762 { ISD::FP_TO_SINT, MVT::nxv8i16, MVT::nxv8f32, 3 }, in getCastInstrCost()
1763 { ISD::FP_TO_SINT, MVT::nxv8i8, MVT::nxv8f32, 3 }, in getCastInstrCost()
1764 { ISD::FP_TO_UINT, MVT::nxv8i16, MVT::nxv8f32, 3 }, in getCastInstrCost()
1765 { ISD::FP_TO_UINT, MVT::nxv8i8, MVT::nxv8f32, 3 }, in getCastInstrCost()
1768 { ISD::FP_TO_SINT, MVT::nxv8i64, MVT::nxv8f16, 10 }, in getCastInstrCost()
1769 { ISD::FP_TO_SINT, MVT::nxv8i32, MVT::nxv8f16, 4 }, in getCastInstrCost()
1770 { ISD::FP_TO_SINT, MVT::nxv8i16, MVT::nxv8f16, 1 }, in getCastInstrCost()
1771 { ISD::FP_TO_SINT, MVT::nxv8i8, MVT::nxv8f16, 1 }, in getCastInstrCost()
1772 { ISD::FP_TO_UINT, MVT::nxv8i64, MVT::nxv8f16, 10 }, in getCastInstrCost()
1773 { ISD::FP_TO_UINT, MVT::nxv8i32, MVT::nxv8f16, 4 }, in getCastInstrCost()
1774 { ISD::FP_TO_UINT, MVT::nxv8i16, MVT::nxv8f16, 1 }, in getCastInstrCost()
1775 { ISD::FP_TO_UINT, MVT::nxv8i8, MVT::nxv8f16, 1 }, in getCastInstrCost()
1778 { ISD::FP_TO_SINT, MVT::nxv4i64, MVT::nxv4f16, 4 }, in getCastInstrCost()
1779 { ISD::FP_TO_SINT, MVT::nxv4i32, MVT::nxv4f16, 1 }, in getCastInstrCost()
1780 { ISD::FP_TO_SINT, MVT::nxv4i16, MVT::nxv4f16, 1 }, in getCastInstrCost()
1781 { ISD::FP_TO_SINT, MVT::nxv4i8, MVT::nxv4f16, 1 }, in getCastInstrCost()
1782 { ISD::FP_TO_UINT, MVT::nxv4i64, MVT::nxv4f16, 4 }, in getCastInstrCost()
1783 { ISD::FP_TO_UINT, MVT::nxv4i32, MVT::nxv4f16, 1 }, in getCastInstrCost()
1784 { ISD::FP_TO_UINT, MVT::nxv4i16, MVT::nxv4f16, 1 }, in getCastInstrCost()
1785 { ISD::FP_TO_UINT, MVT::nxv4i8, MVT::nxv4f16, 1 }, in getCastInstrCost()
1788 { ISD::FP_TO_SINT, MVT::nxv2i64, MVT::nxv2f16, 1 }, in getCastInstrCost()
1789 { ISD::FP_TO_SINT, MVT::nxv2i32, MVT::nxv2f16, 1 }, in getCastInstrCost()
1790 { ISD::FP_TO_SINT, MVT::nxv2i16, MVT::nxv2f16, 1 }, in getCastInstrCost()
1791 { ISD::FP_TO_SINT, MVT::nxv2i8, MVT::nxv2f16, 1 }, in getCastInstrCost()
1792 { ISD::FP_TO_UINT, MVT::nxv2i64, MVT::nxv2f16, 1 }, in getCastInstrCost()
1793 { ISD::FP_TO_UINT, MVT::nxv2i32, MVT::nxv2f16, 1 }, in getCastInstrCost()
1794 { ISD::FP_TO_UINT, MVT::nxv2i16, MVT::nxv2f16, 1 }, in getCastInstrCost()
1795 { ISD::FP_TO_UINT, MVT::nxv2i8, MVT::nxv2f16, 1 }, in getCastInstrCost()
1798 { ISD::FP_ROUND, MVT::nxv2f16, MVT::nxv2f32, 1 }, in getCastInstrCost()
1799 { ISD::FP_ROUND, MVT::nxv4f16, MVT::nxv4f32, 1 }, in getCastInstrCost()
1800 { ISD::FP_ROUND, MVT::nxv8f16, MVT::nxv8f32, 3 }, in getCastInstrCost()
1803 { ISD::FP_ROUND, MVT::nxv2f16, MVT::nxv2f64, 1 }, in getCastInstrCost()
1804 { ISD::FP_ROUND, MVT::nxv4f16, MVT::nxv4f64, 3 }, in getCastInstrCost()
1805 { ISD::FP_ROUND, MVT::nxv8f16, MVT::nxv8f64, 7 }, in getCastInstrCost()
1808 { ISD::FP_ROUND, MVT::nxv2f32, MVT::nxv2f64, 1 }, in getCastInstrCost()
1809 { ISD::FP_ROUND, MVT::nxv4f32, MVT::nxv4f64, 3 }, in getCastInstrCost()
1810 { ISD::FP_ROUND, MVT::nxv8f32, MVT::nxv8f64, 6 }, in getCastInstrCost()
1813 { ISD::FP_EXTEND, MVT::nxv2f32, MVT::nxv2f16, 1}, in getCastInstrCost()
1814 { ISD::FP_EXTEND, MVT::nxv4f32, MVT::nxv4f16, 1}, in getCastInstrCost()
1815 { ISD::FP_EXTEND, MVT::nxv8f32, MVT::nxv8f16, 2}, in getCastInstrCost()
1818 { ISD::FP_EXTEND, MVT::nxv2f64, MVT::nxv2f16, 1}, in getCastInstrCost()
1819 { ISD::FP_EXTEND, MVT::nxv4f64, MVT::nxv4f16, 2}, in getCastInstrCost()
1820 { ISD::FP_EXTEND, MVT::nxv8f64, MVT::nxv8f16, 4}, in getCastInstrCost()
1823 { ISD::FP_EXTEND, MVT::nxv2f64, MVT::nxv2f32, 1}, in getCastInstrCost()
1824 { ISD::FP_EXTEND, MVT::nxv4f64, MVT::nxv4f32, 2}, in getCastInstrCost()
1825 { ISD::FP_EXTEND, MVT::nxv8f64, MVT::nxv8f32, 6}, in getCastInstrCost()
1828 { ISD::BITCAST, MVT::nxv2f16, MVT::nxv2i16, 0 }, in getCastInstrCost()
1829 { ISD::BITCAST, MVT::nxv4f16, MVT::nxv4i16, 0 }, in getCastInstrCost()
1830 { ISD::BITCAST, MVT::nxv2f32, MVT::nxv2i32, 0 }, in getCastInstrCost()
1833 { ISD::BITCAST, MVT::nxv2i16, MVT::nxv2f16, 0 }, in getCastInstrCost()
1834 { ISD::BITCAST, MVT::nxv4i16, MVT::nxv4f16, 0 }, in getCastInstrCost()
1835 { ISD::BITCAST, MVT::nxv2i32, MVT::nxv2f32, 0 }, in getCastInstrCost()
1844 {ISD::FP_TO_SINT, MVT::v4i8, MVT::v4f16, 1}, // fcvtzs in getCastInstrCost()
1845 {ISD::FP_TO_UINT, MVT::v4i8, MVT::v4f16, 1}, in getCastInstrCost()
1846 {ISD::FP_TO_SINT, MVT::v4i16, MVT::v4f16, 1}, // fcvtzs in getCastInstrCost()
1847 {ISD::FP_TO_UINT, MVT::v4i16, MVT::v4f16, 1}, in getCastInstrCost()
1848 {ISD::FP_TO_SINT, MVT::v4i32, MVT::v4f16, 2}, // fcvtl+fcvtzs in getCastInstrCost()
1849 {ISD::FP_TO_UINT, MVT::v4i32, MVT::v4f16, 2}, in getCastInstrCost()
1850 {ISD::FP_TO_SINT, MVT::v8i8, MVT::v8f16, 2}, // fcvtzs+xtn in getCastInstrCost()
1851 {ISD::FP_TO_UINT, MVT::v8i8, MVT::v8f16, 2}, in getCastInstrCost()
1852 {ISD::FP_TO_SINT, MVT::v8i16, MVT::v8f16, 1}, // fcvtzs in getCastInstrCost()
1853 {ISD::FP_TO_UINT, MVT::v8i16, MVT::v8f16, 1}, in getCastInstrCost()
1854 {ISD::FP_TO_SINT, MVT::v8i32, MVT::v8f16, 4}, // 2*fcvtl+2*fcvtzs in getCastInstrCost()
1855 {ISD::FP_TO_UINT, MVT::v8i32, MVT::v8f16, 4}, in getCastInstrCost()
1856 {ISD::FP_TO_SINT, MVT::v16i8, MVT::v16f16, 3}, // 2*fcvtzs+xtn in getCastInstrCost()
1857 {ISD::FP_TO_UINT, MVT::v16i8, MVT::v16f16, 3}, in getCastInstrCost()
1858 {ISD::FP_TO_SINT, MVT::v16i16, MVT::v16f16, 2}, // 2*fcvtzs in getCastInstrCost()
1859 {ISD::FP_TO_UINT, MVT::v16i16, MVT::v16f16, 2}, in getCastInstrCost()
1860 {ISD::FP_TO_SINT, MVT::v16i32, MVT::v16f16, 8}, // 4*fcvtl+4*fcvtzs in getCastInstrCost()
1861 {ISD::FP_TO_UINT, MVT::v16i32, MVT::v16f16, 8}, in getCastInstrCost()
1862 {ISD::UINT_TO_FP, MVT::v8f16, MVT::v8i8, 2}, // ushll + ucvtf in getCastInstrCost()
1863 {ISD::SINT_TO_FP, MVT::v8f16, MVT::v8i8, 2}, // sshll + scvtf in getCastInstrCost()
1864 {ISD::UINT_TO_FP, MVT::v16f16, MVT::v16i8, 4}, // 2 * ushl(2) + 2 * ucvtf in getCastInstrCost()
1865 {ISD::SINT_TO_FP, MVT::v16f16, MVT::v16i8, 4}, // 2 * sshl(2) + 2 * scvtf in getCastInstrCost()
1954 std::pair<InstructionCost, MVT> LT = TLI->getTypeLegalizationCost(DL, Val); in getVectorInstrCost()
1989 std::pair<InstructionCost, MVT> LT = TLI->getTypeLegalizationCost(DL, Ty); in getArithmeticInstrCost()
2066 if (LT.second != MVT::v2i64 || isWideningInstruction(Ty, Opcode, Args)) in getArithmeticInstrCost()
2146 MVT::v8i8, MVT::v16i8, MVT::v4i16, MVT::v8i16, MVT::v2i32, in getCmpSelInstrCost()
2147 MVT::v4i32, MVT::v2i64, MVT::v2f32, MVT::v4f32, MVT::v2f64}; in getCmpSelInstrCost()
2148 static const auto ValidFP16MinMaxTys = {MVT::v4f16, MVT::v8f16}; in getCmpSelInstrCost()
2151 if (any_of(ValidMinMaxTys, [&LT](MVT M) { return M == LT.second; }) || in getCmpSelInstrCost()
2153 any_of(ValidFP16MinMaxTys, [&LT](MVT M) { return M == LT.second; }))) in getCmpSelInstrCost()
2159 { ISD::SELECT, MVT::v16i1, MVT::v16i16, 16 }, in getCmpSelInstrCost()
2160 { ISD::SELECT, MVT::v8i1, MVT::v8i32, 8 }, in getCmpSelInstrCost()
2161 { ISD::SELECT, MVT::v16i1, MVT::v16i32, 16 }, in getCmpSelInstrCost()
2162 { ISD::SELECT, MVT::v4i1, MVT::v4i64, 4 * AmortizationCost }, in getCmpSelInstrCost()
2163 { ISD::SELECT, MVT::v8i1, MVT::v8i64, 8 * AmortizationCost }, in getCmpSelInstrCost()
2164 { ISD::SELECT, MVT::v16i1, MVT::v16i64, 16 * AmortizationCost } in getCmpSelInstrCost()
2268 if (VT == MVT::Other) in getMemoryOpCost()
2307 if (VT == MVT::v4i8) in getMemoryOpCost()
2617 std::pair<InstructionCost, MVT> LT = TLI->getTypeLegalizationCost(DL, Ty); in getMinMaxReductionCost()
2619 if (LT.second.getScalarType() == MVT::f16 && !ST->hasFullFP16()) in getMinMaxReductionCost()
2641 std::pair<InstructionCost, MVT> LT = TLI->getTypeLegalizationCost(DL, ValTy); in getArithmeticReductionCostSVE()
2690 std::pair<InstructionCost, MVT> LT = TLI->getTypeLegalizationCost(DL, ValTy); in getArithmeticReductionCost()
2691 MVT MTy = LT.second; in getArithmeticReductionCost()
2704 {ISD::ADD, MVT::v8i8, 2}, in getArithmeticReductionCost()
2705 {ISD::ADD, MVT::v16i8, 2}, in getArithmeticReductionCost()
2706 {ISD::ADD, MVT::v4i16, 2}, in getArithmeticReductionCost()
2707 {ISD::ADD, MVT::v8i16, 2}, in getArithmeticReductionCost()
2708 {ISD::ADD, MVT::v4i32, 2}, in getArithmeticReductionCost()
2709 {ISD::OR, MVT::v8i8, 15}, in getArithmeticReductionCost()
2710 {ISD::OR, MVT::v16i8, 17}, in getArithmeticReductionCost()
2711 {ISD::OR, MVT::v4i16, 7}, in getArithmeticReductionCost()
2712 {ISD::OR, MVT::v8i16, 9}, in getArithmeticReductionCost()
2713 {ISD::OR, MVT::v2i32, 3}, in getArithmeticReductionCost()
2714 {ISD::OR, MVT::v4i32, 5}, in getArithmeticReductionCost()
2715 {ISD::OR, MVT::v2i64, 3}, in getArithmeticReductionCost()
2716 {ISD::XOR, MVT::v8i8, 15}, in getArithmeticReductionCost()
2717 {ISD::XOR, MVT::v16i8, 17}, in getArithmeticReductionCost()
2718 {ISD::XOR, MVT::v4i16, 7}, in getArithmeticReductionCost()
2719 {ISD::XOR, MVT::v8i16, 9}, in getArithmeticReductionCost()
2720 {ISD::XOR, MVT::v2i32, 3}, in getArithmeticReductionCost()
2721 {ISD::XOR, MVT::v4i32, 5}, in getArithmeticReductionCost()
2722 {ISD::XOR, MVT::v2i64, 3}, in getArithmeticReductionCost()
2723 {ISD::AND, MVT::v8i8, 15}, in getArithmeticReductionCost()
2724 {ISD::AND, MVT::v16i8, 17}, in getArithmeticReductionCost()
2725 {ISD::AND, MVT::v4i16, 7}, in getArithmeticReductionCost()
2726 {ISD::AND, MVT::v8i16, 9}, in getArithmeticReductionCost()
2727 {ISD::AND, MVT::v2i32, 3}, in getArithmeticReductionCost()
2728 {ISD::AND, MVT::v4i32, 5}, in getArithmeticReductionCost()
2729 {ISD::AND, MVT::v2i64, 3}, in getArithmeticReductionCost()
2766 { TTI::SK_Splice, MVT::nxv16i8, 1 }, in getSpliceCost()
2767 { TTI::SK_Splice, MVT::nxv8i16, 1 }, in getSpliceCost()
2768 { TTI::SK_Splice, MVT::nxv4i32, 1 }, in getSpliceCost()
2769 { TTI::SK_Splice, MVT::nxv2i64, 1 }, in getSpliceCost()
2770 { TTI::SK_Splice, MVT::nxv2f16, 1 }, in getSpliceCost()
2771 { TTI::SK_Splice, MVT::nxv4f16, 1 }, in getSpliceCost()
2772 { TTI::SK_Splice, MVT::nxv8f16, 1 }, in getSpliceCost()
2773 { TTI::SK_Splice, MVT::nxv2bf16, 1 }, in getSpliceCost()
2774 { TTI::SK_Splice, MVT::nxv4bf16, 1 }, in getSpliceCost()
2775 { TTI::SK_Splice, MVT::nxv8bf16, 1 }, in getSpliceCost()
2776 { TTI::SK_Splice, MVT::nxv2f32, 1 }, in getSpliceCost()
2777 { TTI::SK_Splice, MVT::nxv4f32, 1 }, in getSpliceCost()
2778 { TTI::SK_Splice, MVT::nxv2f64, 1 }, in getSpliceCost()
2781 std::pair<InstructionCost, MVT> LT = TLI->getTypeLegalizationCost(DL, Tp); in getSpliceCost()
2784 EVT PromotedVT = LT.second.getScalarType() == MVT::i1 in getSpliceCost()
2799 if (LT.second.getScalarType() == MVT::i1) { in getSpliceCost()
2818 std::pair<InstructionCost, MVT> LT = TLI->getTypeLegalizationCost(DL, Tp); in getShuffleCost()
2909 { TTI::SK_Broadcast, MVT::v8i8, 1 }, in getShuffleCost()
2910 { TTI::SK_Broadcast, MVT::v16i8, 1 }, in getShuffleCost()
2911 { TTI::SK_Broadcast, MVT::v4i16, 1 }, in getShuffleCost()
2912 { TTI::SK_Broadcast, MVT::v8i16, 1 }, in getShuffleCost()
2913 { TTI::SK_Broadcast, MVT::v2i32, 1 }, in getShuffleCost()
2914 { TTI::SK_Broadcast, MVT::v4i32, 1 }, in getShuffleCost()
2915 { TTI::SK_Broadcast, MVT::v2i64, 1 }, in getShuffleCost()
2916 { TTI::SK_Broadcast, MVT::v2f32, 1 }, in getShuffleCost()
2917 { TTI::SK_Broadcast, MVT::v4f32, 1 }, in getShuffleCost()
2918 { TTI::SK_Broadcast, MVT::v2f64, 1 }, in getShuffleCost()
2921 { TTI::SK_Transpose, MVT::v8i8, 1 }, in getShuffleCost()
2922 { TTI::SK_Transpose, MVT::v16i8, 1 }, in getShuffleCost()
2923 { TTI::SK_Transpose, MVT::v4i16, 1 }, in getShuffleCost()
2924 { TTI::SK_Transpose, MVT::v8i16, 1 }, in getShuffleCost()
2925 { TTI::SK_Transpose, MVT::v2i32, 1 }, in getShuffleCost()
2926 { TTI::SK_Transpose, MVT::v4i32, 1 }, in getShuffleCost()
2927 { TTI::SK_Transpose, MVT::v2i64, 1 }, in getShuffleCost()
2928 { TTI::SK_Transpose, MVT::v2f32, 1 }, in getShuffleCost()
2929 { TTI::SK_Transpose, MVT::v4f32, 1 }, in getShuffleCost()
2930 { TTI::SK_Transpose, MVT::v2f64, 1 }, in getShuffleCost()
2933 { TTI::SK_Select, MVT::v2i32, 1 }, // mov. in getShuffleCost()
2934 { TTI::SK_Select, MVT::v4i32, 2 }, // rev+trn (or similar). in getShuffleCost()
2935 { TTI::SK_Select, MVT::v2i64, 1 }, // mov. in getShuffleCost()
2936 { TTI::SK_Select, MVT::v2f32, 1 }, // mov. in getShuffleCost()
2937 { TTI::SK_Select, MVT::v4f32, 2 }, // rev+trn (or similar). in getShuffleCost()
2938 { TTI::SK_Select, MVT::v2f64, 1 }, // mov. in getShuffleCost()
2940 { TTI::SK_PermuteSingleSrc, MVT::v2i32, 1 }, // mov. in getShuffleCost()
2941 { TTI::SK_PermuteSingleSrc, MVT::v4i32, 3 }, // perfectshuffle worst case. in getShuffleCost()
2942 { TTI::SK_PermuteSingleSrc, MVT::v2i64, 1 }, // mov. in getShuffleCost()
2943 { TTI::SK_PermuteSingleSrc, MVT::v2f32, 1 }, // mov. in getShuffleCost()
2944 { TTI::SK_PermuteSingleSrc, MVT::v4f32, 3 }, // perfectshuffle worst case. in getShuffleCost()
2945 { TTI::SK_PermuteSingleSrc, MVT::v2f64, 1 }, // mov. in getShuffleCost()
2946 { TTI::SK_PermuteSingleSrc, MVT::v4i16, 3 }, // perfectshuffle worst case. in getShuffleCost()
2947 { TTI::SK_PermuteSingleSrc, MVT::v4f16, 3 }, // perfectshuffle worst case. in getShuffleCost()
2948 { TTI::SK_PermuteSingleSrc, MVT::v4bf16, 3 }, // perfectshuffle worst case. in getShuffleCost()
2949 { TTI::SK_PermuteSingleSrc, MVT::v8i16, 8 }, // constpool + load + tbl in getShuffleCost()
2950 { TTI::SK_PermuteSingleSrc, MVT::v8f16, 8 }, // constpool + load + tbl in getShuffleCost()
2951 { TTI::SK_PermuteSingleSrc, MVT::v8bf16, 8 }, // constpool + load + tbl in getShuffleCost()
2952 { TTI::SK_PermuteSingleSrc, MVT::v8i8, 8 }, // constpool + load + tbl in getShuffleCost()
2953 { TTI::SK_PermuteSingleSrc, MVT::v16i8, 8 }, // constpool + load + tbl in getShuffleCost()
2955 { TTI::SK_Reverse, MVT::v2i32, 1 }, // mov. in getShuffleCost()
2956 { TTI::SK_Reverse, MVT::v4i32, 2 }, // REV64; EXT in getShuffleCost()
2957 { TTI::SK_Reverse, MVT::v2i64, 1 }, // mov. in getShuffleCost()
2958 { TTI::SK_Reverse, MVT::v2f32, 1 }, // mov. in getShuffleCost()
2959 { TTI::SK_Reverse, MVT::v4f32, 2 }, // REV64; EXT in getShuffleCost()
2960 { TTI::SK_Reverse, MVT::v2f64, 1 }, // mov. in getShuffleCost()
2961 { TTI::SK_Reverse, MVT::v8f16, 2 }, // REV64; EXT in getShuffleCost()
2962 { TTI::SK_Reverse, MVT::v8i16, 2 }, // REV64; EXT in getShuffleCost()
2963 { TTI::SK_Reverse, MVT::v16i8, 2 }, // REV64; EXT in getShuffleCost()
2964 { TTI::SK_Reverse, MVT::v4f16, 1 }, // REV64 in getShuffleCost()
2965 { TTI::SK_Reverse, MVT::v4i16, 1 }, // REV64 in getShuffleCost()
2966 { TTI::SK_Reverse, MVT::v8i8, 1 }, // REV64 in getShuffleCost()
2968 { TTI::SK_Broadcast, MVT::nxv16i8, 1 }, in getShuffleCost()
2969 { TTI::SK_Broadcast, MVT::nxv8i16, 1 }, in getShuffleCost()
2970 { TTI::SK_Broadcast, MVT::nxv4i32, 1 }, in getShuffleCost()
2971 { TTI::SK_Broadcast, MVT::nxv2i64, 1 }, in getShuffleCost()
2972 { TTI::SK_Broadcast, MVT::nxv2f16, 1 }, in getShuffleCost()
2973 { TTI::SK_Broadcast, MVT::nxv4f16, 1 }, in getShuffleCost()
2974 { TTI::SK_Broadcast, MVT::nxv8f16, 1 }, in getShuffleCost()
2975 { TTI::SK_Broadcast, MVT::nxv2bf16, 1 }, in getShuffleCost()
2976 { TTI::SK_Broadcast, MVT::nxv4bf16, 1 }, in getShuffleCost()
2977 { TTI::SK_Broadcast, MVT::nxv8bf16, 1 }, in getShuffleCost()
2978 { TTI::SK_Broadcast, MVT::nxv2f32, 1 }, in getShuffleCost()
2979 { TTI::SK_Broadcast, MVT::nxv4f32, 1 }, in getShuffleCost()
2980 { TTI::SK_Broadcast, MVT::nxv2f64, 1 }, in getShuffleCost()
2981 { TTI::SK_Broadcast, MVT::nxv16i1, 1 }, in getShuffleCost()
2982 { TTI::SK_Broadcast, MVT::nxv8i1, 1 }, in getShuffleCost()
2983 { TTI::SK_Broadcast, MVT::nxv4i1, 1 }, in getShuffleCost()
2984 { TTI::SK_Broadcast, MVT::nxv2i1, 1 }, in getShuffleCost()
2986 { TTI::SK_Reverse, MVT::nxv16i8, 1 }, in getShuffleCost()
2987 { TTI::SK_Reverse, MVT::nxv8i16, 1 }, in getShuffleCost()
2988 { TTI::SK_Reverse, MVT::nxv4i32, 1 }, in getShuffleCost()
2989 { TTI::SK_Reverse, MVT::nxv2i64, 1 }, in getShuffleCost()
2990 { TTI::SK_Reverse, MVT::nxv2f16, 1 }, in getShuffleCost()
2991 { TTI::SK_Reverse, MVT::nxv4f16, 1 }, in getShuffleCost()
2992 { TTI::SK_Reverse, MVT::nxv8f16, 1 }, in getShuffleCost()
2993 { TTI::SK_Reverse, MVT::nxv2bf16, 1 }, in getShuffleCost()
2994 { TTI::SK_Reverse, MVT::nxv4bf16, 1 }, in getShuffleCost()
2995 { TTI::SK_Reverse, MVT::nxv8bf16, 1 }, in getShuffleCost()
2996 { TTI::SK_Reverse, MVT::nxv2f32, 1 }, in getShuffleCost()
2997 { TTI::SK_Reverse, MVT::nxv4f32, 1 }, in getShuffleCost()
2998 { TTI::SK_Reverse, MVT::nxv2f64, 1 }, in getShuffleCost()
2999 { TTI::SK_Reverse, MVT::nxv16i1, 1 }, in getShuffleCost()
3000 { TTI::SK_Reverse, MVT::nxv8i1, 1 }, in getShuffleCost()
3001 { TTI::SK_Reverse, MVT::nxv4i1, 1 }, in getShuffleCost()
3002 { TTI::SK_Reverse, MVT::nxv2i1, 1 }, in getShuffleCost()
3015 std::pair<InstructionCost, MVT> SubLT = in getShuffleCost()