Lines Matching defs:ExtKind
14977 enum ExtKind : uint8_t { ZExt = 1 << 0, SExt = 1 << 1, FPExt = 1 << 2 };
15042 unsigned getExtOpc(ExtKind SupportsExt) const {
15044 case ExtKind::SExt:
15046 case ExtKind::ZExt:
15048 case ExtKind::FPExt:
15051 llvm_unreachable("Unknown ExtKind enum");
15059 std::optional<ExtKind> SupportsExt) const {
15113 static MVT getNarrowType(const SDNode *Root, ExtKind SupportsExt) {
15119 MVT EltVT = SupportsExt == ExtKind::FPExt
15123 assert((int)NarrowSize >= (SupportsExt == ExtKind::FPExt ? 16 : 8) &&
15213 static unsigned getWOpcode(unsigned Opcode, ExtKind SupportsExt) {
15218 return SupportsExt == ExtKind::SExt ? RISCVISD::VWADD_W_VL
15222 return SupportsExt == ExtKind::SExt ? RISCVISD::VWSUB_W_VL
15533 std::optional<ExtKind> LHSExt;
15534 std::optional<ExtKind> RHSExt;
15543 const NodeExtensionHelper &LHS, std::optional<ExtKind> LHSExt,
15544 const NodeExtensionHelper &RHS, std::optional<ExtKind> RHSExt)
15590 if ((AllowExtMask & ExtKind::ZExt) && LHS.SupportsZExt && RHS.SupportsZExt)
15592 Root, LHS, /*LHSExt=*/{ExtKind::ZExt}, RHS,
15593 /*RHSExt=*/{ExtKind::ZExt});
15594 if ((AllowExtMask & ExtKind::SExt) && LHS.SupportsSExt && RHS.SupportsSExt)
15596 Root, LHS, /*LHSExt=*/{ExtKind::SExt}, RHS,
15597 /*RHSExt=*/{ExtKind::SExt});
15598 if ((AllowExtMask & ExtKind::FPExt) && LHS.SupportsFPExt && RHS.SupportsFPExt)
15600 Root, LHS, /*LHSExt=*/{ExtKind::FPExt}, RHS,
15601 /*RHSExt=*/{ExtKind::FPExt});
15616 Root, LHS, RHS, ExtKind::ZExt | ExtKind::SExt | ExtKind::FPExt, DAG,
15630 NodeExtensionHelper::getWOpcode(Root->getOpcode(), ExtKind::FPExt),
15631 Root, LHS, /*LHSExt=*/std::nullopt, RHS, /*RHSExt=*/{ExtKind::FPExt});
15639 NodeExtensionHelper::getWOpcode(Root->getOpcode(), ExtKind::ZExt), Root,
15640 LHS, /*LHSExt=*/std::nullopt, RHS, /*RHSExt=*/{ExtKind::ZExt});
15643 NodeExtensionHelper::getWOpcode(Root->getOpcode(), ExtKind::SExt), Root,
15644 LHS, /*LHSExt=*/std::nullopt, RHS, /*RHSExt=*/{ExtKind::SExt});
15656 return canFoldToVWWithSameExtensionImpl(Root, LHS, RHS, ExtKind::SExt, DAG,
15668 return canFoldToVWWithSameExtensionImpl(Root, LHS, RHS, ExtKind::ZExt, DAG,
15680 return canFoldToVWWithSameExtensionImpl(Root, LHS, RHS, ExtKind::FPExt, DAG,
15696 Root, LHS, /*LHSExt=*/{ExtKind::SExt}, RHS,
15697 /*RHSExt=*/{ExtKind::ZExt});