Lines Matching defs:funcRef
487 FunctionRef<TR> &&funcRef, WrapperType<TR, TA...> func,
491 context, funcRef.arguments(), hasOptionalArgument)}) {
510 return Expr<TR>{std::move(funcRef)};
522 return Expr<TR>{std::move(funcRef)};
556 return Expr<TR>{std::move(funcRef)};
561 FunctionRef<TR> &&funcRef, ScalarFunc<TR, TA...> func,
564 std::move(funcRef), func, hasOptionalArgument,
569 FunctionRef<TR> &&funcRef, ScalarFuncWithContext<TR, TA...> func,
572 std::move(funcRef), func, hasOptionalArgument,
606 template <typename T> Expr<T> MakeInvalidIntrinsic(FunctionRef<T> &&funcRef) {
607 SpecificIntrinsic invalid{std::get<SpecificIntrinsic>(funcRef.proc().u)};
610 ActualArguments{std::move(funcRef.arguments())}}};
613 template <typename T> Expr<T> Folder<T>::CSHIFT(FunctionRef<T> &&funcRef) {
614 auto args{funcRef.arguments()};
620 return Expr<T>{std::move(funcRef)};
626 return Expr<T>{std::move(funcRef)};
688 return MakeInvalidIntrinsic(std::move(funcRef));
691 template <typename T> Expr<T> Folder<T>::EOSHIFT(FunctionRef<T> &&funcRef) {
692 auto args{funcRef.arguments()};
698 return Expr<T>{std::move(funcRef)};
705 return Expr<T>{std::move(funcRef)};
714 return Expr<T>{std::move(funcRef)};
821 return MakeInvalidIntrinsic(std::move(funcRef));
824 template <typename T> Expr<T> Folder<T>::MERGE(FunctionRef<T> &&funcRef) {
826 std::move(funcRef),
834 template <typename T> Expr<T> Folder<T>::PACK(FunctionRef<T> &&funcRef) {
835 auto args{funcRef.arguments()};
844 return Expr<T>{std::move(funcRef)};
856 return MakeInvalidIntrinsic(std::move(funcRef));
875 return MakeInvalidIntrinsic(std::move(funcRef));
898 template <typename T> Expr<T> Folder<T>::RESHAPE(FunctionRef<T> &&funcRef) {
899 auto args{funcRef.arguments()};
942 return Expr<T>{std::move(funcRef)}; // Non-constant arguments
969 return MakeInvalidIntrinsic(std::move(funcRef));
972 template <typename T> Expr<T> Folder<T>::SPREAD(FunctionRef<T> &&funcRef) {
973 auto args{funcRef.arguments()};
979 return Expr<T>{std::move(funcRef)};
991 return Expr<T>{std::move(funcRef)};
1019 return MakeInvalidIntrinsic(std::move(funcRef));
1022 template <typename T> Expr<T> Folder<T>::TRANSPOSE(FunctionRef<T> &&funcRef) {
1023 auto args{funcRef.arguments()};
1027 return Expr<T>{std::move(funcRef)};
1044 template <typename T> Expr<T> Folder<T>::UNPACK(FunctionRef<T> &&funcRef) {
1045 auto args{funcRef.arguments()};
1054 return Expr<T>{std::move(funcRef)};
1059 return MakeInvalidIntrinsic(std::move(funcRef));
1075 return MakeInvalidIntrinsic(std::move(funcRef));
1097 template <typename T> Expr<T> Folder<T>::TRANSFER(FunctionRef<T> &&funcRef) {
1098 if (auto folded{FoldTransfer(context_, funcRef.arguments())}) {
1101 return Expr<T>{std::move(funcRef)};
1107 FoldingContext &context, FunctionRef<T> &&funcRef, Ordering order) {
1112 auto &args{funcRef.arguments()};
1147 return ok && result ? std::move(*result) : Expr<T>{std::move(funcRef)};
1159 FoldingContext &context, FunctionRef<T> &&funcRef) {
1160 ActualArguments &args{funcRef.arguments()};
1161 auto &intrinsic{DEREF(std::get_if<SpecificIntrinsic>(&funcRef.proc().u))};
1182 return Expr<T>{std::move(funcRef)};
1190 ProcedureDesignator{funcRef.proc()}, ActualArguments{args}};
1198 return Expr<T>{std::move(funcRef)}; // error recovery
1221 Expr<T> FoldOperation(FoldingContext &context, FunctionRef<T> &&funcRef) {
1222 ActualArguments &args{funcRef.arguments()};
1223 const auto *intrinsic{std::get_if<SpecificIntrinsic>(&funcRef.proc().u)};
1236 return Folder<T>{context}.CSHIFT(std::move(funcRef));
1238 return Folder<T>{context}.EOSHIFT(std::move(funcRef));
1240 return Folder<T>{context}.MERGE(std::move(funcRef));
1242 return Folder<T>{context}.PACK(std::move(funcRef));
1244 return Folder<T>{context}.RESHAPE(std::move(funcRef));
1246 return Folder<T>{context}.SPREAD(std::move(funcRef));
1248 return Folder<T>{context}.TRANSFER(std::move(funcRef));
1250 return Folder<T>{context}.TRANSPOSE(std::move(funcRef));
1252 return Folder<T>{context}.UNPACK(std::move(funcRef));
1256 return FoldIntrinsicFunction(context, std::move(funcRef));
1259 return Expr<T>{std::move(funcRef)};