// Copyright 2021 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/intrinsic-gen
// using the template:
//   src/tint/sem/builtin_type.cc.tmpl
// and the intrinsic defintion file:
//   src/tint/intrinsics.def
//
// Do not modify this file directly
////////////////////////////////////////////////////////////////////////////////

#include "src/tint/sem/builtin_type.h"

#include <sstream>

namespace tint::sem {

BuiltinType ParseBuiltinType(const std::string& name) {
    if (name == "abs") {
        return BuiltinType::kAbs;
    }
    if (name == "acos") {
        return BuiltinType::kAcos;
    }
    if (name == "all") {
        return BuiltinType::kAll;
    }
    if (name == "any") {
        return BuiltinType::kAny;
    }
    if (name == "arrayLength") {
        return BuiltinType::kArrayLength;
    }
    if (name == "asin") {
        return BuiltinType::kAsin;
    }
    if (name == "atan") {
        return BuiltinType::kAtan;
    }
    if (name == "atan2") {
        return BuiltinType::kAtan2;
    }
    if (name == "ceil") {
        return BuiltinType::kCeil;
    }
    if (name == "clamp") {
        return BuiltinType::kClamp;
    }
    if (name == "cos") {
        return BuiltinType::kCos;
    }
    if (name == "cosh") {
        return BuiltinType::kCosh;
    }
    if (name == "countLeadingZeros") {
        return BuiltinType::kCountLeadingZeros;
    }
    if (name == "countOneBits") {
        return BuiltinType::kCountOneBits;
    }
    if (name == "countTrailingZeros") {
        return BuiltinType::kCountTrailingZeros;
    }
    if (name == "cross") {
        return BuiltinType::kCross;
    }
    if (name == "degrees") {
        return BuiltinType::kDegrees;
    }
    if (name == "determinant") {
        return BuiltinType::kDeterminant;
    }
    if (name == "distance") {
        return BuiltinType::kDistance;
    }
    if (name == "dot") {
        return BuiltinType::kDot;
    }
    if (name == "dot4I8Packed") {
        return BuiltinType::kDot4I8Packed;
    }
    if (name == "dot4U8Packed") {
        return BuiltinType::kDot4U8Packed;
    }
    if (name == "dpdx") {
        return BuiltinType::kDpdx;
    }
    if (name == "dpdxCoarse") {
        return BuiltinType::kDpdxCoarse;
    }
    if (name == "dpdxFine") {
        return BuiltinType::kDpdxFine;
    }
    if (name == "dpdy") {
        return BuiltinType::kDpdy;
    }
    if (name == "dpdyCoarse") {
        return BuiltinType::kDpdyCoarse;
    }
    if (name == "dpdyFine") {
        return BuiltinType::kDpdyFine;
    }
    if (name == "exp") {
        return BuiltinType::kExp;
    }
    if (name == "exp2") {
        return BuiltinType::kExp2;
    }
    if (name == "extractBits") {
        return BuiltinType::kExtractBits;
    }
    if (name == "faceForward") {
        return BuiltinType::kFaceForward;
    }
    if (name == "firstLeadingBit") {
        return BuiltinType::kFirstLeadingBit;
    }
    if (name == "firstTrailingBit") {
        return BuiltinType::kFirstTrailingBit;
    }
    if (name == "floor") {
        return BuiltinType::kFloor;
    }
    if (name == "fma") {
        return BuiltinType::kFma;
    }
    if (name == "fract") {
        return BuiltinType::kFract;
    }
    if (name == "frexp") {
        return BuiltinType::kFrexp;
    }
    if (name == "fwidth") {
        return BuiltinType::kFwidth;
    }
    if (name == "fwidthCoarse") {
        return BuiltinType::kFwidthCoarse;
    }
    if (name == "fwidthFine") {
        return BuiltinType::kFwidthFine;
    }
    if (name == "insertBits") {
        return BuiltinType::kInsertBits;
    }
    if (name == "inverseSqrt") {
        return BuiltinType::kInverseSqrt;
    }
    if (name == "ldexp") {
        return BuiltinType::kLdexp;
    }
    if (name == "length") {
        return BuiltinType::kLength;
    }
    if (name == "log") {
        return BuiltinType::kLog;
    }
    if (name == "log2") {
        return BuiltinType::kLog2;
    }
    if (name == "max") {
        return BuiltinType::kMax;
    }
    if (name == "min") {
        return BuiltinType::kMin;
    }
    if (name == "mix") {
        return BuiltinType::kMix;
    }
    if (name == "modf") {
        return BuiltinType::kModf;
    }
    if (name == "normalize") {
        return BuiltinType::kNormalize;
    }
    if (name == "pack2x16float") {
        return BuiltinType::kPack2x16float;
    }
    if (name == "pack2x16snorm") {
        return BuiltinType::kPack2x16snorm;
    }
    if (name == "pack2x16unorm") {
        return BuiltinType::kPack2x16unorm;
    }
    if (name == "pack4x8snorm") {
        return BuiltinType::kPack4x8snorm;
    }
    if (name == "pack4x8unorm") {
        return BuiltinType::kPack4x8unorm;
    }
    if (name == "pow") {
        return BuiltinType::kPow;
    }
    if (name == "radians") {
        return BuiltinType::kRadians;
    }
    if (name == "reflect") {
        return BuiltinType::kReflect;
    }
    if (name == "refract") {
        return BuiltinType::kRefract;
    }
    if (name == "reverseBits") {
        return BuiltinType::kReverseBits;
    }
    if (name == "round") {
        return BuiltinType::kRound;
    }
    if (name == "select") {
        return BuiltinType::kSelect;
    }
    if (name == "sign") {
        return BuiltinType::kSign;
    }
    if (name == "sin") {
        return BuiltinType::kSin;
    }
    if (name == "sinh") {
        return BuiltinType::kSinh;
    }
    if (name == "smoothstep") {
        return BuiltinType::kSmoothstep;
    }
    if (name == "smoothStep") {
        return BuiltinType::kSmoothStep;
    }
    if (name == "sqrt") {
        return BuiltinType::kSqrt;
    }
    if (name == "step") {
        return BuiltinType::kStep;
    }
    if (name == "storageBarrier") {
        return BuiltinType::kStorageBarrier;
    }
    if (name == "tan") {
        return BuiltinType::kTan;
    }
    if (name == "tanh") {
        return BuiltinType::kTanh;
    }
    if (name == "transpose") {
        return BuiltinType::kTranspose;
    }
    if (name == "trunc") {
        return BuiltinType::kTrunc;
    }
    if (name == "unpack2x16float") {
        return BuiltinType::kUnpack2x16float;
    }
    if (name == "unpack2x16snorm") {
        return BuiltinType::kUnpack2x16snorm;
    }
    if (name == "unpack2x16unorm") {
        return BuiltinType::kUnpack2x16unorm;
    }
    if (name == "unpack4x8snorm") {
        return BuiltinType::kUnpack4x8snorm;
    }
    if (name == "unpack4x8unorm") {
        return BuiltinType::kUnpack4x8unorm;
    }
    if (name == "workgroupBarrier") {
        return BuiltinType::kWorkgroupBarrier;
    }
    if (name == "textureDimensions") {
        return BuiltinType::kTextureDimensions;
    }
    if (name == "textureGather") {
        return BuiltinType::kTextureGather;
    }
    if (name == "textureGatherCompare") {
        return BuiltinType::kTextureGatherCompare;
    }
    if (name == "textureNumLayers") {
        return BuiltinType::kTextureNumLayers;
    }
    if (name == "textureNumLevels") {
        return BuiltinType::kTextureNumLevels;
    }
    if (name == "textureNumSamples") {
        return BuiltinType::kTextureNumSamples;
    }
    if (name == "textureSample") {
        return BuiltinType::kTextureSample;
    }
    if (name == "textureSampleBias") {
        return BuiltinType::kTextureSampleBias;
    }
    if (name == "textureSampleCompare") {
        return BuiltinType::kTextureSampleCompare;
    }
    if (name == "textureSampleCompareLevel") {
        return BuiltinType::kTextureSampleCompareLevel;
    }
    if (name == "textureSampleGrad") {
        return BuiltinType::kTextureSampleGrad;
    }
    if (name == "textureSampleLevel") {
        return BuiltinType::kTextureSampleLevel;
    }
    if (name == "textureStore") {
        return BuiltinType::kTextureStore;
    }
    if (name == "textureLoad") {
        return BuiltinType::kTextureLoad;
    }
    if (name == "atomicLoad") {
        return BuiltinType::kAtomicLoad;
    }
    if (name == "atomicStore") {
        return BuiltinType::kAtomicStore;
    }
    if (name == "atomicAdd") {
        return BuiltinType::kAtomicAdd;
    }
    if (name == "atomicSub") {
        return BuiltinType::kAtomicSub;
    }
    if (name == "atomicMax") {
        return BuiltinType::kAtomicMax;
    }
    if (name == "atomicMin") {
        return BuiltinType::kAtomicMin;
    }
    if (name == "atomicAnd") {
        return BuiltinType::kAtomicAnd;
    }
    if (name == "atomicOr") {
        return BuiltinType::kAtomicOr;
    }
    if (name == "atomicXor") {
        return BuiltinType::kAtomicXor;
    }
    if (name == "atomicExchange") {
        return BuiltinType::kAtomicExchange;
    }
    if (name == "atomicCompareExchangeWeak") {
        return BuiltinType::kAtomicCompareExchangeWeak;
    }
    return BuiltinType::kNone;
}

const char* str(BuiltinType i) {
    switch (i) {
        case BuiltinType::kNone:
            return "<none>";
        case BuiltinType::kAbs:
            return "abs";
        case BuiltinType::kAcos:
            return "acos";
        case BuiltinType::kAll:
            return "all";
        case BuiltinType::kAny:
            return "any";
        case BuiltinType::kArrayLength:
            return "arrayLength";
        case BuiltinType::kAsin:
            return "asin";
        case BuiltinType::kAtan:
            return "atan";
        case BuiltinType::kAtan2:
            return "atan2";
        case BuiltinType::kCeil:
            return "ceil";
        case BuiltinType::kClamp:
            return "clamp";
        case BuiltinType::kCos:
            return "cos";
        case BuiltinType::kCosh:
            return "cosh";
        case BuiltinType::kCountLeadingZeros:
            return "countLeadingZeros";
        case BuiltinType::kCountOneBits:
            return "countOneBits";
        case BuiltinType::kCountTrailingZeros:
            return "countTrailingZeros";
        case BuiltinType::kCross:
            return "cross";
        case BuiltinType::kDegrees:
            return "degrees";
        case BuiltinType::kDeterminant:
            return "determinant";
        case BuiltinType::kDistance:
            return "distance";
        case BuiltinType::kDot:
            return "dot";
        case BuiltinType::kDot4I8Packed:
            return "dot4I8Packed";
        case BuiltinType::kDot4U8Packed:
            return "dot4U8Packed";
        case BuiltinType::kDpdx:
            return "dpdx";
        case BuiltinType::kDpdxCoarse:
            return "dpdxCoarse";
        case BuiltinType::kDpdxFine:
            return "dpdxFine";
        case BuiltinType::kDpdy:
            return "dpdy";
        case BuiltinType::kDpdyCoarse:
            return "dpdyCoarse";
        case BuiltinType::kDpdyFine:
            return "dpdyFine";
        case BuiltinType::kExp:
            return "exp";
        case BuiltinType::kExp2:
            return "exp2";
        case BuiltinType::kExtractBits:
            return "extractBits";
        case BuiltinType::kFaceForward:
            return "faceForward";
        case BuiltinType::kFirstLeadingBit:
            return "firstLeadingBit";
        case BuiltinType::kFirstTrailingBit:
            return "firstTrailingBit";
        case BuiltinType::kFloor:
            return "floor";
        case BuiltinType::kFma:
            return "fma";
        case BuiltinType::kFract:
            return "fract";
        case BuiltinType::kFrexp:
            return "frexp";
        case BuiltinType::kFwidth:
            return "fwidth";
        case BuiltinType::kFwidthCoarse:
            return "fwidthCoarse";
        case BuiltinType::kFwidthFine:
            return "fwidthFine";
        case BuiltinType::kInsertBits:
            return "insertBits";
        case BuiltinType::kInverseSqrt:
            return "inverseSqrt";
        case BuiltinType::kLdexp:
            return "ldexp";
        case BuiltinType::kLength:
            return "length";
        case BuiltinType::kLog:
            return "log";
        case BuiltinType::kLog2:
            return "log2";
        case BuiltinType::kMax:
            return "max";
        case BuiltinType::kMin:
            return "min";
        case BuiltinType::kMix:
            return "mix";
        case BuiltinType::kModf:
            return "modf";
        case BuiltinType::kNormalize:
            return "normalize";
        case BuiltinType::kPack2x16float:
            return "pack2x16float";
        case BuiltinType::kPack2x16snorm:
            return "pack2x16snorm";
        case BuiltinType::kPack2x16unorm:
            return "pack2x16unorm";
        case BuiltinType::kPack4x8snorm:
            return "pack4x8snorm";
        case BuiltinType::kPack4x8unorm:
            return "pack4x8unorm";
        case BuiltinType::kPow:
            return "pow";
        case BuiltinType::kRadians:
            return "radians";
        case BuiltinType::kReflect:
            return "reflect";
        case BuiltinType::kRefract:
            return "refract";
        case BuiltinType::kReverseBits:
            return "reverseBits";
        case BuiltinType::kRound:
            return "round";
        case BuiltinType::kSelect:
            return "select";
        case BuiltinType::kSign:
            return "sign";
        case BuiltinType::kSin:
            return "sin";
        case BuiltinType::kSinh:
            return "sinh";
        case BuiltinType::kSmoothstep:
            return "smoothstep";
        case BuiltinType::kSmoothStep:
            return "smoothStep";
        case BuiltinType::kSqrt:
            return "sqrt";
        case BuiltinType::kStep:
            return "step";
        case BuiltinType::kStorageBarrier:
            return "storageBarrier";
        case BuiltinType::kTan:
            return "tan";
        case BuiltinType::kTanh:
            return "tanh";
        case BuiltinType::kTranspose:
            return "transpose";
        case BuiltinType::kTrunc:
            return "trunc";
        case BuiltinType::kUnpack2x16float:
            return "unpack2x16float";
        case BuiltinType::kUnpack2x16snorm:
            return "unpack2x16snorm";
        case BuiltinType::kUnpack2x16unorm:
            return "unpack2x16unorm";
        case BuiltinType::kUnpack4x8snorm:
            return "unpack4x8snorm";
        case BuiltinType::kUnpack4x8unorm:
            return "unpack4x8unorm";
        case BuiltinType::kWorkgroupBarrier:
            return "workgroupBarrier";
        case BuiltinType::kTextureDimensions:
            return "textureDimensions";
        case BuiltinType::kTextureGather:
            return "textureGather";
        case BuiltinType::kTextureGatherCompare:
            return "textureGatherCompare";
        case BuiltinType::kTextureNumLayers:
            return "textureNumLayers";
        case BuiltinType::kTextureNumLevels:
            return "textureNumLevels";
        case BuiltinType::kTextureNumSamples:
            return "textureNumSamples";
        case BuiltinType::kTextureSample:
            return "textureSample";
        case BuiltinType::kTextureSampleBias:
            return "textureSampleBias";
        case BuiltinType::kTextureSampleCompare:
            return "textureSampleCompare";
        case BuiltinType::kTextureSampleCompareLevel:
            return "textureSampleCompareLevel";
        case BuiltinType::kTextureSampleGrad:
            return "textureSampleGrad";
        case BuiltinType::kTextureSampleLevel:
            return "textureSampleLevel";
        case BuiltinType::kTextureStore:
            return "textureStore";
        case BuiltinType::kTextureLoad:
            return "textureLoad";
        case BuiltinType::kAtomicLoad:
            return "atomicLoad";
        case BuiltinType::kAtomicStore:
            return "atomicStore";
        case BuiltinType::kAtomicAdd:
            return "atomicAdd";
        case BuiltinType::kAtomicSub:
            return "atomicSub";
        case BuiltinType::kAtomicMax:
            return "atomicMax";
        case BuiltinType::kAtomicMin:
            return "atomicMin";
        case BuiltinType::kAtomicAnd:
            return "atomicAnd";
        case BuiltinType::kAtomicOr:
            return "atomicOr";
        case BuiltinType::kAtomicXor:
            return "atomicXor";
        case BuiltinType::kAtomicExchange:
            return "atomicExchange";
        case BuiltinType::kAtomicCompareExchangeWeak:
            return "atomicCompareExchangeWeak";
    }
    return "<unknown>";
}

std::ostream& operator<<(std::ostream& out, BuiltinType i) {
    out << str(i);
    return out;
}

}  // namespace tint::sem
