// Copyright 2023 The Tint Authors. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. //////////////////////////////////////////////////////////////////////////////// // File generated by tools/src/cmd/gen // using the template: // src/tint/builtin/function.cc.tmpl // // Do not modify this file directly //////////////////////////////////////////////////////////////////////////////// #include "src/tint/builtin/function.h" namespace tint::builtin { Function ParseFunction(const std::string& name) { if (name == "abs") { return Function::kAbs; } if (name == "acos") { return Function::kAcos; } if (name == "acosh") { return Function::kAcosh; } if (name == "all") { return Function::kAll; } if (name == "any") { return Function::kAny; } if (name == "arrayLength") { return Function::kArrayLength; } if (name == "asin") { return Function::kAsin; } if (name == "asinh") { return Function::kAsinh; } if (name == "atan") { return Function::kAtan; } if (name == "atan2") { return Function::kAtan2; } if (name == "atanh") { return Function::kAtanh; } if (name == "ceil") { return Function::kCeil; } if (name == "clamp") { return Function::kClamp; } if (name == "cos") { return Function::kCos; } if (name == "cosh") { return Function::kCosh; } if (name == "countLeadingZeros") { return Function::kCountLeadingZeros; } if (name == "countOneBits") { return Function::kCountOneBits; } if (name == "countTrailingZeros") { return Function::kCountTrailingZeros; } if (name == "cross") { return Function::kCross; } if (name == "degrees") { return Function::kDegrees; } if (name == "determinant") { return Function::kDeterminant; } if (name == "distance") { return Function::kDistance; } if (name == "dot") { return Function::kDot; } if (name == "dot4I8Packed") { return Function::kDot4I8Packed; } if (name == "dot4U8Packed") { return Function::kDot4U8Packed; } if (name == "dpdx") { return Function::kDpdx; } if (name == "dpdxCoarse") { return Function::kDpdxCoarse; } if (name == "dpdxFine") { return Function::kDpdxFine; } if (name == "dpdy") { return Function::kDpdy; } if (name == "dpdyCoarse") { return Function::kDpdyCoarse; } if (name == "dpdyFine") { return Function::kDpdyFine; } if (name == "exp") { return Function::kExp; } if (name == "exp2") { return Function::kExp2; } if (name == "extractBits") { return Function::kExtractBits; } if (name == "faceForward") { return Function::kFaceForward; } if (name == "firstLeadingBit") { return Function::kFirstLeadingBit; } if (name == "firstTrailingBit") { return Function::kFirstTrailingBit; } if (name == "floor") { return Function::kFloor; } if (name == "fma") { return Function::kFma; } if (name == "fract") { return Function::kFract; } if (name == "frexp") { return Function::kFrexp; } if (name == "fwidth") { return Function::kFwidth; } if (name == "fwidthCoarse") { return Function::kFwidthCoarse; } if (name == "fwidthFine") { return Function::kFwidthFine; } if (name == "insertBits") { return Function::kInsertBits; } if (name == "inverseSqrt") { return Function::kInverseSqrt; } if (name == "ldexp") { return Function::kLdexp; } if (name == "length") { return Function::kLength; } if (name == "log") { return Function::kLog; } if (name == "log2") { return Function::kLog2; } if (name == "max") { return Function::kMax; } if (name == "min") { return Function::kMin; } if (name == "mix") { return Function::kMix; } if (name == "modf") { return Function::kModf; } if (name == "normalize") { return Function::kNormalize; } if (name == "pack2x16float") { return Function::kPack2X16Float; } if (name == "pack2x16snorm") { return Function::kPack2X16Snorm; } if (name == "pack2x16unorm") { return Function::kPack2X16Unorm; } if (name == "pack4x8snorm") { return Function::kPack4X8Snorm; } if (name == "pack4x8unorm") { return Function::kPack4X8Unorm; } if (name == "pow") { return Function::kPow; } if (name == "quantizeToF16") { return Function::kQuantizeToF16; } if (name == "radians") { return Function::kRadians; } if (name == "reflect") { return Function::kReflect; } if (name == "refract") { return Function::kRefract; } if (name == "reverseBits") { return Function::kReverseBits; } if (name == "round") { return Function::kRound; } if (name == "saturate") { return Function::kSaturate; } if (name == "select") { return Function::kSelect; } if (name == "sign") { return Function::kSign; } if (name == "sin") { return Function::kSin; } if (name == "sinh") { return Function::kSinh; } if (name == "smoothstep") { return Function::kSmoothstep; } if (name == "sqrt") { return Function::kSqrt; } if (name == "step") { return Function::kStep; } if (name == "storageBarrier") { return Function::kStorageBarrier; } if (name == "tan") { return Function::kTan; } if (name == "tanh") { return Function::kTanh; } if (name == "transpose") { return Function::kTranspose; } if (name == "trunc") { return Function::kTrunc; } if (name == "unpack2x16float") { return Function::kUnpack2X16Float; } if (name == "unpack2x16snorm") { return Function::kUnpack2X16Snorm; } if (name == "unpack2x16unorm") { return Function::kUnpack2X16Unorm; } if (name == "unpack4x8snorm") { return Function::kUnpack4X8Snorm; } if (name == "unpack4x8unorm") { return Function::kUnpack4X8Unorm; } if (name == "workgroupBarrier") { return Function::kWorkgroupBarrier; } if (name == "workgroupUniformLoad") { return Function::kWorkgroupUniformLoad; } if (name == "textureDimensions") { return Function::kTextureDimensions; } if (name == "textureGather") { return Function::kTextureGather; } if (name == "textureGatherCompare") { return Function::kTextureGatherCompare; } if (name == "textureNumLayers") { return Function::kTextureNumLayers; } if (name == "textureNumLevels") { return Function::kTextureNumLevels; } if (name == "textureNumSamples") { return Function::kTextureNumSamples; } if (name == "textureSample") { return Function::kTextureSample; } if (name == "textureSampleBias") { return Function::kTextureSampleBias; } if (name == "textureSampleCompare") { return Function::kTextureSampleCompare; } if (name == "textureSampleCompareLevel") { return Function::kTextureSampleCompareLevel; } if (name == "textureSampleGrad") { return Function::kTextureSampleGrad; } if (name == "textureSampleLevel") { return Function::kTextureSampleLevel; } if (name == "textureSampleBaseClampToEdge") { return Function::kTextureSampleBaseClampToEdge; } if (name == "textureStore") { return Function::kTextureStore; } if (name == "textureLoad") { return Function::kTextureLoad; } if (name == "atomicLoad") { return Function::kAtomicLoad; } if (name == "atomicStore") { return Function::kAtomicStore; } if (name == "atomicAdd") { return Function::kAtomicAdd; } if (name == "atomicSub") { return Function::kAtomicSub; } if (name == "atomicMax") { return Function::kAtomicMax; } if (name == "atomicMin") { return Function::kAtomicMin; } if (name == "atomicAnd") { return Function::kAtomicAnd; } if (name == "atomicOr") { return Function::kAtomicOr; } if (name == "atomicXor") { return Function::kAtomicXor; } if (name == "atomicExchange") { return Function::kAtomicExchange; } if (name == "atomicCompareExchangeWeak") { return Function::kAtomicCompareExchangeWeak; } if (name == "_tint_materialize") { return Function::kTintMaterialize; } return Function::kNone; } const char* str(Function i) { switch (i) { case Function::kNone: return ""; case Function::kAbs: return "abs"; case Function::kAcos: return "acos"; case Function::kAcosh: return "acosh"; case Function::kAll: return "all"; case Function::kAny: return "any"; case Function::kArrayLength: return "arrayLength"; case Function::kAsin: return "asin"; case Function::kAsinh: return "asinh"; case Function::kAtan: return "atan"; case Function::kAtan2: return "atan2"; case Function::kAtanh: return "atanh"; case Function::kCeil: return "ceil"; case Function::kClamp: return "clamp"; case Function::kCos: return "cos"; case Function::kCosh: return "cosh"; case Function::kCountLeadingZeros: return "countLeadingZeros"; case Function::kCountOneBits: return "countOneBits"; case Function::kCountTrailingZeros: return "countTrailingZeros"; case Function::kCross: return "cross"; case Function::kDegrees: return "degrees"; case Function::kDeterminant: return "determinant"; case Function::kDistance: return "distance"; case Function::kDot: return "dot"; case Function::kDot4I8Packed: return "dot4I8Packed"; case Function::kDot4U8Packed: return "dot4U8Packed"; case Function::kDpdx: return "dpdx"; case Function::kDpdxCoarse: return "dpdxCoarse"; case Function::kDpdxFine: return "dpdxFine"; case Function::kDpdy: return "dpdy"; case Function::kDpdyCoarse: return "dpdyCoarse"; case Function::kDpdyFine: return "dpdyFine"; case Function::kExp: return "exp"; case Function::kExp2: return "exp2"; case Function::kExtractBits: return "extractBits"; case Function::kFaceForward: return "faceForward"; case Function::kFirstLeadingBit: return "firstLeadingBit"; case Function::kFirstTrailingBit: return "firstTrailingBit"; case Function::kFloor: return "floor"; case Function::kFma: return "fma"; case Function::kFract: return "fract"; case Function::kFrexp: return "frexp"; case Function::kFwidth: return "fwidth"; case Function::kFwidthCoarse: return "fwidthCoarse"; case Function::kFwidthFine: return "fwidthFine"; case Function::kInsertBits: return "insertBits"; case Function::kInverseSqrt: return "inverseSqrt"; case Function::kLdexp: return "ldexp"; case Function::kLength: return "length"; case Function::kLog: return "log"; case Function::kLog2: return "log2"; case Function::kMax: return "max"; case Function::kMin: return "min"; case Function::kMix: return "mix"; case Function::kModf: return "modf"; case Function::kNormalize: return "normalize"; case Function::kPack2X16Float: return "pack2x16float"; case Function::kPack2X16Snorm: return "pack2x16snorm"; case Function::kPack2X16Unorm: return "pack2x16unorm"; case Function::kPack4X8Snorm: return "pack4x8snorm"; case Function::kPack4X8Unorm: return "pack4x8unorm"; case Function::kPow: return "pow"; case Function::kQuantizeToF16: return "quantizeToF16"; case Function::kRadians: return "radians"; case Function::kReflect: return "reflect"; case Function::kRefract: return "refract"; case Function::kReverseBits: return "reverseBits"; case Function::kRound: return "round"; case Function::kSaturate: return "saturate"; case Function::kSelect: return "select"; case Function::kSign: return "sign"; case Function::kSin: return "sin"; case Function::kSinh: return "sinh"; case Function::kSmoothstep: return "smoothstep"; case Function::kSqrt: return "sqrt"; case Function::kStep: return "step"; case Function::kStorageBarrier: return "storageBarrier"; case Function::kTan: return "tan"; case Function::kTanh: return "tanh"; case Function::kTranspose: return "transpose"; case Function::kTrunc: return "trunc"; case Function::kUnpack2X16Float: return "unpack2x16float"; case Function::kUnpack2X16Snorm: return "unpack2x16snorm"; case Function::kUnpack2X16Unorm: return "unpack2x16unorm"; case Function::kUnpack4X8Snorm: return "unpack4x8snorm"; case Function::kUnpack4X8Unorm: return "unpack4x8unorm"; case Function::kWorkgroupBarrier: return "workgroupBarrier"; case Function::kWorkgroupUniformLoad: return "workgroupUniformLoad"; case Function::kTextureDimensions: return "textureDimensions"; case Function::kTextureGather: return "textureGather"; case Function::kTextureGatherCompare: return "textureGatherCompare"; case Function::kTextureNumLayers: return "textureNumLayers"; case Function::kTextureNumLevels: return "textureNumLevels"; case Function::kTextureNumSamples: return "textureNumSamples"; case Function::kTextureSample: return "textureSample"; case Function::kTextureSampleBias: return "textureSampleBias"; case Function::kTextureSampleCompare: return "textureSampleCompare"; case Function::kTextureSampleCompareLevel: return "textureSampleCompareLevel"; case Function::kTextureSampleGrad: return "textureSampleGrad"; case Function::kTextureSampleLevel: return "textureSampleLevel"; case Function::kTextureSampleBaseClampToEdge: return "textureSampleBaseClampToEdge"; case Function::kTextureStore: return "textureStore"; case Function::kTextureLoad: return "textureLoad"; case Function::kAtomicLoad: return "atomicLoad"; case Function::kAtomicStore: return "atomicStore"; case Function::kAtomicAdd: return "atomicAdd"; case Function::kAtomicSub: return "atomicSub"; case Function::kAtomicMax: return "atomicMax"; case Function::kAtomicMin: return "atomicMin"; case Function::kAtomicAnd: return "atomicAnd"; case Function::kAtomicOr: return "atomicOr"; case Function::kAtomicXor: return "atomicXor"; case Function::kAtomicExchange: return "atomicExchange"; case Function::kAtomicCompareExchangeWeak: return "atomicCompareExchangeWeak"; case Function::kTintMaterialize: return "_tint_materialize"; } return ""; } utils::StringStream& operator<<(utils::StringStream& out, Function i) { out << str(i); return out; } } // namespace tint::builtin