blob: e3c40fc2331038efc536812d3417120135f2f039 [file] [log] [blame]
{{- /*
--------------------------------------------------------------------------------
Template file for use with tools/src/cmd/gen to generate intrinsic_table.inl
Used by BuiltinTable.cc for builtin overload resolution.
To update the generated file, run:
./tools/run gen
See:
* tools/src/cmd/gen for structures used by this template
* https://golang.org/pkg/text/template/ for documentation on the template syntax
--------------------------------------------------------------------------------
*/ -}}
{{- Import "src/tint/utils/templates/intrinsic_table_data.tmpl.inc" -}}
{{- $I := LoadIntrinsics "src/tint/lang/wgsl/wgsl.def" -}}
#include <limits>
#include <string>
#include "src/tint/lang/core/intrinsic/type_matchers.h"
#include "src/tint/lang/core/type/abstract_float.h"
#include "src/tint/lang/core/type/abstract_int.h"
#include "src/tint/lang/core/type/abstract_numeric.h"
#include "src/tint/lang/wgsl/intrinsic/dialect.h"
#include "src/tint/utils/text/string_stream.h"
namespace tint::wgsl::intrinsic {
using namespace tint::core::intrinsic; // NOLINT(build/namespaces)
inline const core::type::AbstractFloat* BuildFa(intrinsic::MatchState& state, const core::type::Type*) {
return state.types.AFloat();
}
inline bool MatchFa(intrinsic::MatchState& state, const core::type::Type* ty) {
return (state.earliest_eval_stage <= core::EvaluationStage::kConstant) &&
ty->IsAnyOf<intrinsic::Any, core::type::AbstractNumeric>();
}
inline const core::type::AbstractInt* BuildIa(intrinsic::MatchState& state, const core::type::Type*) {
return state.types.AInt();
}
inline bool MatchIa(intrinsic::MatchState& state, const core::type::Type* ty) {
return (state.earliest_eval_stage <= core::EvaluationStage::kConstant) &&
ty->IsAnyOf<intrinsic::Any, core::type::AbstractInt>();
}
{{ Eval "Data"
"Intrinsics" $I
"Name" "Dialect::kData" -}}
} // namespace tint::wgsl::intrinsic