// GENERATED FILE - DO NOT EDIT.
// Generated by gen_builtin_symbols.py using data from builtin_function_declarations.txt.
//
// Copyright 2019 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// ImmutableString_test_autogen.cpp:
//   Tests for matching script-generated hashes with runtime computed hashes.

#include "compiler/translator/ImmutableString.h"
#include "gtest/gtest.h"

namespace sh
{

TEST(ImmutableStringTest, ScriptGeneratedHashesMatch)
{
    ASSERT_EQ(0x0000009eu, ImmutableString("frexp").mangledNameHash());
    ASSERT_EQ(0x000001a9u, ImmutableString("ldexp").mangledNameHash());
    ASSERT_EQ(0x000002d9u, ImmutableString("packUnorm4x8").mangledNameHash());
    ASSERT_EQ(0x0000023cu, ImmutableString("packSnorm4x8").mangledNameHash());
    ASSERT_EQ(0x00000088u, ImmutableString("unpackUnorm4x8").mangledNameHash());
    ASSERT_EQ(0x00000369u, ImmutableString("unpackSnorm4x8").mangledNameHash());
    ASSERT_EQ(0x000003fbu, ImmutableString("bitfieldExtract").mangledNameHash());
    ASSERT_EQ(0x000002d7u, ImmutableString("bitfieldInsert").mangledNameHash());
    ASSERT_EQ(0x00000025u, ImmutableString("bitfieldReverse").mangledNameHash());
    ASSERT_EQ(0x00000129u, ImmutableString("bitCount").mangledNameHash());
    ASSERT_EQ(0x00000045u, ImmutableString("findLSB").mangledNameHash());
    ASSERT_EQ(0x00000273u, ImmutableString("findMSB").mangledNameHash());
    ASSERT_EQ(0x0000004au, ImmutableString("uaddCarry").mangledNameHash());
    ASSERT_EQ(0x00000032u, ImmutableString("usubBorrow").mangledNameHash());
    ASSERT_EQ(0x000003b2u, ImmutableString("umulExtended").mangledNameHash());
    ASSERT_EQ(0x0000001cu, ImmutableString("imulExtended").mangledNameHash());
    ASSERT_EQ(0x000001a2u, ImmutableString("textureSize").mangledNameHash());
    ASSERT_EQ(0x000001a5u, ImmutableString("texelFetch").mangledNameHash());
    ASSERT_EQ(0x000001cau, ImmutableString("textureGather").mangledNameHash());
    ASSERT_EQ(0x000003bdu, ImmutableString("textureGatherOffset").mangledNameHash());
    ASSERT_EQ(0x000003f9u, ImmutableString("atomicCounter").mangledNameHash());
    ASSERT_EQ(0x000003c6u, ImmutableString("atomicCounterIncrement").mangledNameHash());
    ASSERT_EQ(0x00000291u, ImmutableString("atomicCounterDecrement").mangledNameHash());
    ASSERT_EQ(0x000002c9u, ImmutableString("atomicAdd").mangledNameHash());
    ASSERT_EQ(0x00000112u, ImmutableString("atomicMin").mangledNameHash());
    ASSERT_EQ(0x0000020du, ImmutableString("atomicMax").mangledNameHash());
    ASSERT_EQ(0x00000305u, ImmutableString("atomicAnd").mangledNameHash());
    ASSERT_EQ(0x00000140u, ImmutableString("atomicOr").mangledNameHash());
    ASSERT_EQ(0x000001f3u, ImmutableString("atomicXor").mangledNameHash());
    ASSERT_EQ(0x0000011du, ImmutableString("atomicExchange").mangledNameHash());
    ASSERT_EQ(0x000000ffu, ImmutableString("atomicCompSwap").mangledNameHash());
    ASSERT_EQ(0x00000318u, ImmutableString("imageSize").mangledNameHash());
    ASSERT_EQ(0x0000030cu, ImmutableString("imageLoad").mangledNameHash());
    ASSERT_EQ(0x000002b9u, ImmutableString("imageStore").mangledNameHash());
    ASSERT_EQ(0x000003eeu, ImmutableString("memoryBarrier").mangledNameHash());
    ASSERT_EQ(0x0000018cu, ImmutableString("memoryBarrierAtomicCounter").mangledNameHash());
    ASSERT_EQ(0x000002f0u, ImmutableString("memoryBarrierBuffer").mangledNameHash());
    ASSERT_EQ(0x0000033au, ImmutableString("memoryBarrierImage").mangledNameHash());
    ASSERT_EQ(0x00000189u, ImmutableString("barrier").mangledNameHash());
    ASSERT_EQ(0x0000000eu, ImmutableString("memoryBarrierShared").mangledNameHash());
    ASSERT_EQ(0x00000111u, ImmutableString("groupMemoryBarrier").mangledNameHash());
    ASSERT_EQ(0x000001c1u, ImmutableString("EmitVertex").mangledNameHash());
    ASSERT_EQ(0x00000406u, ImmutableString("EndPrimitive").mangledNameHash());
    ASSERT_EQ(0x0000006fu, ImmutableString("sinh").mangledNameHash());
    ASSERT_EQ(0x00000047u, ImmutableString("cosh").mangledNameHash());
    ASSERT_EQ(0x000002dfu, ImmutableString("tanh").mangledNameHash());
    ASSERT_EQ(0x000002ceu, ImmutableString("asinh").mangledNameHash());
    ASSERT_EQ(0x0000000fu, ImmutableString("acosh").mangledNameHash());
    ASSERT_EQ(0x000000e0u, ImmutableString("atanh").mangledNameHash());
    ASSERT_EQ(0x0000005au, ImmutableString("abs").mangledNameHash());
    ASSERT_EQ(0x000001d4u, ImmutableString("sign").mangledNameHash());
    ASSERT_EQ(0x000002cau, ImmutableString("trunc").mangledNameHash());
    ASSERT_EQ(0x0000003du, ImmutableString("round").mangledNameHash());
    ASSERT_EQ(0x000000dcu, ImmutableString("roundEven").mangledNameHash());
    ASSERT_EQ(0x000001f9u, ImmutableString("min").mangledNameHash());
    ASSERT_EQ(0x000000f3u, ImmutableString("max").mangledNameHash());
    ASSERT_EQ(0x00000159u, ImmutableString("clamp").mangledNameHash());
    ASSERT_EQ(0x000001ffu, ImmutableString("mix").mangledNameHash());
    ASSERT_EQ(0x00000155u, ImmutableString("modf").mangledNameHash());
    ASSERT_EQ(0x00000211u, ImmutableString("isnan").mangledNameHash());
    ASSERT_EQ(0x00000422u, ImmutableString("isinf").mangledNameHash());
    ASSERT_EQ(0x00000410u, ImmutableString("floatBitsToInt").mangledNameHash());
    ASSERT_EQ(0x000001b4u, ImmutableString("floatBitsToUint").mangledNameHash());
    ASSERT_EQ(0x000002eeu, ImmutableString("intBitsToFloat").mangledNameHash());
    ASSERT_EQ(0x00000108u, ImmutableString("uintBitsToFloat").mangledNameHash());
    ASSERT_EQ(0x0000031fu, ImmutableString("packSnorm2x16").mangledNameHash());
    ASSERT_EQ(0x00000087u, ImmutableString("packUnorm2x16").mangledNameHash());
    ASSERT_EQ(0x00000113u, ImmutableString("packHalf2x16").mangledNameHash());
    ASSERT_EQ(0x0000018bu, ImmutableString("unpackSnorm2x16").mangledNameHash());
    ASSERT_EQ(0x0000020fu, ImmutableString("unpackUnorm2x16").mangledNameHash());
    ASSERT_EQ(0x0000003fu, ImmutableString("unpackHalf2x16").mangledNameHash());
    ASSERT_EQ(0x00000089u, ImmutableString("matrixCompMult").mangledNameHash());
    ASSERT_EQ(0x00000103u, ImmutableString("outerProduct").mangledNameHash());
    ASSERT_EQ(0x00000299u, ImmutableString("transpose").mangledNameHash());
    ASSERT_EQ(0x000002feu, ImmutableString("determinant").mangledNameHash());
    ASSERT_EQ(0x00000001u, ImmutableString("inverse").mangledNameHash());
    ASSERT_EQ(0x00000173u, ImmutableString("lessThan").mangledNameHash());
    ASSERT_EQ(0x00000062u, ImmutableString("lessThanEqual").mangledNameHash());
    ASSERT_EQ(0x000000b7u, ImmutableString("greaterThan").mangledNameHash());
    ASSERT_EQ(0x000002d4u, ImmutableString("greaterThanEqual").mangledNameHash());
    ASSERT_EQ(0x000002a4u, ImmutableString("equal").mangledNameHash());
    ASSERT_EQ(0x0000042au, ImmutableString("notEqual").mangledNameHash());
    ASSERT_EQ(0x00000094u, ImmutableString("texture").mangledNameHash());
    ASSERT_EQ(0x0000032au, ImmutableString("textureProj").mangledNameHash());
    ASSERT_EQ(0x00000176u, ImmutableString("textureLod").mangledNameHash());
    ASSERT_EQ(0x000003bbu, ImmutableString("textureProjLod").mangledNameHash());
    ASSERT_EQ(0x000000c2u, ImmutableString("textureGrad").mangledNameHash());
    ASSERT_EQ(0x00000168u, ImmutableString("textureProjGrad").mangledNameHash());
    ASSERT_EQ(0x000001b5u, ImmutableString("textureOffset").mangledNameHash());
    ASSERT_EQ(0x00000070u, ImmutableString("textureProjOffset").mangledNameHash());
    ASSERT_EQ(0x0000024cu, ImmutableString("textureLodOffset").mangledNameHash());
    ASSERT_EQ(0x000003c2u, ImmutableString("textureProjLodOffset").mangledNameHash());
    ASSERT_EQ(0x000002fdu, ImmutableString("texelFetchOffset").mangledNameHash());
    ASSERT_EQ(0x00000216u, ImmutableString("textureGradOffset").mangledNameHash());
    ASSERT_EQ(0x00000349u, ImmutableString("textureProjGradOffset").mangledNameHash());
    ASSERT_EQ(0x00000117u, ImmutableString("rgb_2_yuv").mangledNameHash());
    ASSERT_EQ(0x000001fdu, ImmutableString("yuv_2_rgb").mangledNameHash());
    ASSERT_EQ(0x00000365u, ImmutableString("dFdx").mangledNameHash());
    ASSERT_EQ(0x00000366u, ImmutableString("dFdy").mangledNameHash());
    ASSERT_EQ(0x0000011cu, ImmutableString("fwidth").mangledNameHash());
    ASSERT_EQ(0x000002f5u, ImmutableString("texture2D").mangledNameHash());
    ASSERT_EQ(0x00000122u, ImmutableString("texture2DProj").mangledNameHash());
    ASSERT_EQ(0x0000010du, ImmutableString("textureCube").mangledNameHash());
    ASSERT_EQ(0x00000160u, ImmutableString("texture2DRect").mangledNameHash());
    ASSERT_EQ(0x0000002bu, ImmutableString("texture2DRectProj").mangledNameHash());
    ASSERT_EQ(0x00000056u, ImmutableString("texture2DGradEXT").mangledNameHash());
    ASSERT_EQ(0x00000345u, ImmutableString("texture2DProjGradEXT").mangledNameHash());
    ASSERT_EQ(0x00000058u, ImmutableString("textureCubeGradEXT").mangledNameHash());
    ASSERT_EQ(0x000002a5u, ImmutableString("texture2DLodEXT").mangledNameHash());
    ASSERT_EQ(0x0000028du, ImmutableString("texture2DProjLodEXT").mangledNameHash());
    ASSERT_EQ(0x000003bcu, ImmutableString("textureCubeLodEXT").mangledNameHash());
    ASSERT_EQ(0x00000213u, ImmutableString("texture3D").mangledNameHash());
    ASSERT_EQ(0x000002d8u, ImmutableString("texture3DProj").mangledNameHash());
    ASSERT_EQ(0x0000023au, ImmutableString("texture3DLod").mangledNameHash());
    ASSERT_EQ(0x000000cdu, ImmutableString("texture3DProjLod").mangledNameHash());
    ASSERT_EQ(0x00000438u, ImmutableString("texture2DLod").mangledNameHash());
    ASSERT_EQ(0x000003b9u, ImmutableString("texture2DProjLod").mangledNameHash());
    ASSERT_EQ(0x000000e4u, ImmutableString("textureCubeLod").mangledNameHash());
    ASSERT_EQ(0x0000014eu, ImmutableString("radians").mangledNameHash());
    ASSERT_EQ(0x00000131u, ImmutableString("degrees").mangledNameHash());
    ASSERT_EQ(0x000000eau, ImmutableString("sin").mangledNameHash());
    ASSERT_EQ(0x000002a0u, ImmutableString("cos").mangledNameHash());
    ASSERT_EQ(0x000000d8u, ImmutableString("tan").mangledNameHash());
    ASSERT_EQ(0x00000052u, ImmutableString("asin").mangledNameHash());
    ASSERT_EQ(0x000003adu, ImmutableString("acos").mangledNameHash());
    ASSERT_EQ(0x000000f1u, ImmutableString("atan").mangledNameHash());
    ASSERT_EQ(0x000002b2u, ImmutableString("pow").mangledNameHash());
    ASSERT_EQ(0x00000223u, ImmutableString("exp").mangledNameHash());
    ASSERT_EQ(0x000003c4u, ImmutableString("log").mangledNameHash());
    ASSERT_EQ(0x000001beu, ImmutableString("exp2").mangledNameHash());
    ASSERT_EQ(0x00000187u, ImmutableString("log2").mangledNameHash());
    ASSERT_EQ(0x00000300u, ImmutableString("sqrt").mangledNameHash());
    ASSERT_EQ(0x000003e4u, ImmutableString("inversesqrt").mangledNameHash());
    ASSERT_EQ(0x0000040cu, ImmutableString("floor").mangledNameHash());
    ASSERT_EQ(0x00000254u, ImmutableString("ceil").mangledNameHash());
    ASSERT_EQ(0x000002c7u, ImmutableString("fract").mangledNameHash());
    ASSERT_EQ(0x00000358u, ImmutableString("mod").mangledNameHash());
    ASSERT_EQ(0x0000039au, ImmutableString("step").mangledNameHash());
    ASSERT_EQ(0x0000014fu, ImmutableString("smoothstep").mangledNameHash());
    ASSERT_EQ(0x000001a0u, ImmutableString("length").mangledNameHash());
    ASSERT_EQ(0x000001d7u, ImmutableString("distance").mangledNameHash());
    ASSERT_EQ(0x00000226u, ImmutableString("dot").mangledNameHash());
    ASSERT_EQ(0x000002ffu, ImmutableString("cross").mangledNameHash());
    ASSERT_EQ(0x000000ddu, ImmutableString("normalize").mangledNameHash());
    ASSERT_EQ(0x00000177u, ImmutableString("faceforward").mangledNameHash());
    ASSERT_EQ(0x000000f8u, ImmutableString("reflect").mangledNameHash());
    ASSERT_EQ(0x0000021bu, ImmutableString("refract").mangledNameHash());
    ASSERT_EQ(0x000001f2u, ImmutableString("any").mangledNameHash());
    ASSERT_EQ(0x00000002u, ImmutableString("all").mangledNameHash());
    ASSERT_EQ(0x00000143u, ImmutableString("not").mangledNameHash());
    ASSERT_EQ(0x000003a1u, ImmutableString("frexp(0B0C").mangledNameHash());
    ASSERT_EQ(0x000003a5u, ImmutableString("frexp(1B1C").mangledNameHash());
    ASSERT_EQ(0x0000003cu, ImmutableString("frexp(2B2C").mangledNameHash());
    ASSERT_EQ(0x00000148u, ImmutableString("frexp(3B3C").mangledNameHash());
    ASSERT_EQ(0x00000290u, ImmutableString("ldexp(0B0C").mangledNameHash());
    ASSERT_EQ(0x0000024fu, ImmutableString("ldexp(1B1C").mangledNameHash());
    ASSERT_EQ(0x00000073u, ImmutableString("ldexp(2B2C").mangledNameHash());
    ASSERT_EQ(0x00000220u, ImmutableString("ldexp(3B3C").mangledNameHash());
    ASSERT_EQ(0x000003edu, ImmutableString("packUnorm4x8(3B").mangledNameHash());
    ASSERT_EQ(0x0000012cu, ImmutableString("packSnorm4x8(3B").mangledNameHash());
    ASSERT_EQ(0x00000434u, ImmutableString("unpackUnorm4x8(0D").mangledNameHash());
    ASSERT_EQ(0x000002adu, ImmutableString("unpackSnorm4x8(0D").mangledNameHash());
    ASSERT_EQ(0x00000053u, ImmutableString("bitfieldExtract(0C0C0C").mangledNameHash());
    ASSERT_EQ(0x00000286u, ImmutableString("bitfieldExtract(1C0C0C").mangledNameHash());
    ASSERT_EQ(0x00000427u, ImmutableString("bitfieldExtract(2C0C0C").mangledNameHash());
    ASSERT_EQ(0x0000002cu, ImmutableString("bitfieldExtract(3C0C0C").mangledNameHash());
    ASSERT_EQ(0x0000026eu, ImmutableString("bitfieldExtract(0D0C0C").mangledNameHash());
    ASSERT_EQ(0x000001c8u, ImmutableString("bitfieldExtract(1D0C0C").mangledNameHash());
    ASSERT_EQ(0x00000356u, ImmutableString("bitfieldExtract(2D0C0C").mangledNameHash());
    ASSERT_EQ(0x00000378u, ImmutableString("bitfieldExtract(3D0C0C").mangledNameHash());
    ASSERT_EQ(0x0000019au, ImmutableString("bitfieldInsert(0C0C0C0C").mangledNameHash());
    ASSERT_EQ(0x00000301u, ImmutableString("bitfieldInsert(1C1C0C0C").mangledNameHash());
    ASSERT_EQ(0x0000007cu, ImmutableString("bitfieldInsert(2C2C0C0C").mangledNameHash());
    ASSERT_EQ(0x000000fdu, ImmutableString("bitfieldInsert(3C3C0C0C").mangledNameHash());
    ASSERT_EQ(0x000000f7u, ImmutableString("bitfieldInsert(0D0D0C0C").mangledNameHash());
    ASSERT_EQ(0x0000031du, ImmutableString("bitfieldInsert(1D1D0C0C").mangledNameHash());
    ASSERT_EQ(0x000000c7u, ImmutableString("bitfieldInsert(2D2D0C0C").mangledNameHash());
    ASSERT_EQ(0x0000004bu, ImmutableString("bitfieldInsert(3D3D0C0C").mangledNameHash());
    ASSERT_EQ(0x0000002fu, ImmutableString("bitfieldReverse(0C").mangledNameHash());
    ASSERT_EQ(0x000002fbu, ImmutableString("bitfieldReverse(1C").mangledNameHash());
    ASSERT_EQ(0x00000435u, ImmutableString("bitfieldReverse(2C").mangledNameHash());
    ASSERT_EQ(0x000000acu, ImmutableString("bitfieldReverse(3C").mangledNameHash());
    ASSERT_EQ(0x0000013fu, ImmutableString("bitfieldReverse(0D").mangledNameHash());
    ASSERT_EQ(0x000002fcu, ImmutableString("bitfieldReverse(1D").mangledNameHash());
    ASSERT_EQ(0x00000224u, ImmutableString("bitfieldReverse(2D").mangledNameHash());
    ASSERT_EQ(0x000000aau, ImmutableString("bitfieldReverse(3D").mangledNameHash());
    ASSERT_EQ(0x000002d2u, ImmutableString("bitCount(0C").mangledNameHash());
    ASSERT_EQ(0x000003b7u, ImmutableString("bitCount(1C").mangledNameHash());
    ASSERT_EQ(0x00000018u, ImmutableString("bitCount(2C").mangledNameHash());
    ASSERT_EQ(0x000001a4u, ImmutableString("bitCount(3C").mangledNameHash());
    ASSERT_EQ(0x0000041fu, ImmutableString("bitCount(0D").mangledNameHash());
    ASSERT_EQ(0x000003b5u, ImmutableString("bitCount(1D").mangledNameHash());
    ASSERT_EQ(0x00000017u, ImmutableString("bitCount(2D").mangledNameHash());
    ASSERT_EQ(0x0000019fu, ImmutableString("bitCount(3D").mangledNameHash());
    ASSERT_EQ(0x000002bdu, ImmutableString("findLSB(0C").mangledNameHash());
    ASSERT_EQ(0x0000042bu, ImmutableString("findLSB(1C").mangledNameHash());
    ASSERT_EQ(0x000000dfu, ImmutableString("findLSB(2C").mangledNameHash());
    ASSERT_EQ(0x0000026au, ImmutableString("findLSB(3C").mangledNameHash());
    ASSERT_EQ(0x000002c0u, ImmutableString("findLSB(0D").mangledNameHash());
    ASSERT_EQ(0x0000042du, ImmutableString("findLSB(1D").mangledNameHash());
    ASSERT_EQ(0x000000eeu, ImmutableString("findLSB(2D").mangledNameHash());
    ASSERT_EQ(0x000001a6u, ImmutableString("findLSB(3D").mangledNameHash());
    ASSERT_EQ(0x00000011u, ImmutableString("findMSB(0C").mangledNameHash());
    ASSERT_EQ(0x00000353u, ImmutableString("findMSB(1C").mangledNameHash());
    ASSERT_EQ(0x00000279u, ImmutableString("findMSB(2C").mangledNameHash());
    ASSERT_EQ(0x00000197u, ImmutableString("findMSB(3C").mangledNameHash());
    ASSERT_EQ(0x00000013u, ImmutableString("findMSB(0D").mangledNameHash());
    ASSERT_EQ(0x00000357u, ImmutableString("findMSB(1D").mangledNameHash());
    ASSERT_EQ(0x0000027eu, ImmutableString("findMSB(2D").mangledNameHash());
    ASSERT_EQ(0x00000191u, ImmutableString("findMSB(3D").mangledNameHash());
    ASSERT_EQ(0x00000321u, ImmutableString("uaddCarry(0D0D0D").mangledNameHash());
    ASSERT_EQ(0x000002c1u, ImmutableString("uaddCarry(1D1D1D").mangledNameHash());
    ASSERT_EQ(0x00000134u, ImmutableString("uaddCarry(2D2D2D").mangledNameHash());
    ASSERT_EQ(0x00000337u, ImmutableString("uaddCarry(3D3D3D").mangledNameHash());
    ASSERT_EQ(0x00000201u, ImmutableString("usubBorrow(0D0D0D").mangledNameHash());
    ASSERT_EQ(0x000000feu, ImmutableString("usubBorrow(1D1D1D").mangledNameHash());
    ASSERT_EQ(0x000001dcu, ImmutableString("usubBorrow(2D2D2D").mangledNameHash());
    ASSERT_EQ(0x000000a1u, ImmutableString("usubBorrow(3D3D3D").mangledNameHash());
    ASSERT_EQ(0x0000020cu, ImmutableString("umulExtended(0D0D0D0D").mangledNameHash());
    ASSERT_EQ(0x000001a1u, ImmutableString("umulExtended(1D1D1D1D").mangledNameHash());
    ASSERT_EQ(0x00000104u, ImmutableString("umulExtended(2D2D2D2D").mangledNameHash());
    ASSERT_EQ(0x000003dfu, ImmutableString("umulExtended(3D3D3D3D").mangledNameHash());
    ASSERT_EQ(0x0000010bu, ImmutableString("imulExtended(0C0C0C0C").mangledNameHash());
    ASSERT_EQ(0x0000008fu, ImmutableString("imulExtended(1C1C1C1C").mangledNameHash());
    ASSERT_EQ(0x000001b1u, ImmutableString("imulExtended(2C2C2C2C").mangledNameHash());
    ASSERT_EQ(0x00000260u, ImmutableString("imulExtended(3C3C3C3C").mangledNameHash());
    ASSERT_EQ(0x000002b6u, ImmutableString("textureSize(0O").mangledNameHash());
    ASSERT_EQ(0x00000343u, ImmutableString("textureSize(0U").mangledNameHash());
    ASSERT_EQ(0x000002ccu, ImmutableString("textureSize(0a").mangledNameHash());
    ASSERT_EQ(0x000002b4u, ImmutableString("textureSize(0P").mangledNameHash());
    ASSERT_EQ(0x000002b3u, ImmutableString("textureSize(0V").mangledNameHash());
    ASSERT_EQ(0x000002cdu, ImmutableString("textureSize(0b").mangledNameHash());
    ASSERT_EQ(0x000003e6u, ImmutableString("texelFetch(0O1C0C").mangledNameHash());
    ASSERT_EQ(0x000001e8u, ImmutableString("texelFetch(0U1C0C").mangledNameHash());
    ASSERT_EQ(0x00000264u, ImmutableString("texelFetch(0a1C0C").mangledNameHash());
    ASSERT_EQ(0x0000008cu, ImmutableString("texelFetch(0P2C0C").mangledNameHash());
    ASSERT_EQ(0x0000039eu, ImmutableString("texelFetch(0V2C0C").mangledNameHash());
    ASSERT_EQ(0x000003c8u, ImmutableString("texelFetch(0b2C0C").mangledNameHash());
    ASSERT_EQ(0x000000a6u, ImmutableString("textureGather(0H1B").mangledNameHash());
    ASSERT_EQ(0x0000038au, ImmutableString("textureGather(0Q1B").mangledNameHash());
    ASSERT_EQ(0x000003fcu, ImmutableString("textureGather(0W1B").mangledNameHash());
    ASSERT_EQ(0x00000234u, ImmutableString("textureGather(0H1B0C").mangledNameHash());
    ASSERT_EQ(0x00000307u, ImmutableString("textureGather(0Q1B0C").mangledNameHash());
    ASSERT_EQ(0x00000005u, ImmutableString("textureGather(0W1B0C").mangledNameHash());
    ASSERT_EQ(0x000001c3u, ImmutableString("textureGather(0K2B").mangledNameHash());
    ASSERT_EQ(0x00000338u, ImmutableString("textureGather(0T2B").mangledNameHash());
    ASSERT_EQ(0x0000025cu, ImmutableString("textureGather(0Z2B").mangledNameHash());
    ASSERT_EQ(0x00000153u, ImmutableString("textureGather(0K2B0C").mangledNameHash());
    ASSERT_EQ(0x0000033eu, ImmutableString("textureGather(0T2B0C").mangledNameHash());
    ASSERT_EQ(0x0000004eu, ImmutableString("textureGather(0Z2B0C").mangledNameHash());
    ASSERT_EQ(0x00000024u, ImmutableString("textureGather(0J2B").mangledNameHash());
    ASSERT_EQ(0x00000049u, ImmutableString("textureGather(0S2B").mangledNameHash());
    ASSERT_EQ(0x00000072u, ImmutableString("textureGather(0Y2B").mangledNameHash());
    ASSERT_EQ(0x0000042fu, ImmutableString("textureGather(0J2B0C").mangledNameHash());
    ASSERT_EQ(0x00000114u, ImmutableString("textureGather(0S2B0C").mangledNameHash());
    ASSERT_EQ(0x0000027du, ImmutableString("textureGather(0Y2B0C").mangledNameHash());
    ASSERT_EQ(0x00000083u, ImmutableString("textureGather(0c1B").mangledNameHash());
    ASSERT_EQ(0x0000040bu, ImmutableString("textureGather(0c1B0B").mangledNameHash());
    ASSERT_EQ(0x000003ddu, ImmutableString("textureGather(0e2B").mangledNameHash());
    ASSERT_EQ(0x00000193u, ImmutableString("textureGather(0e2B0B").mangledNameHash());
    ASSERT_EQ(0x00000323u, ImmutableString("textureGather(0d2B").mangledNameHash());
    ASSERT_EQ(0x00000125u, ImmutableString("textureGather(0d2B0B").mangledNameHash());
    ASSERT_EQ(0x0000004du, ImmutableString("textureGatherOffset(0H1B1C").mangledNameHash());
    ASSERT_EQ(0x00000250u, ImmutableString("textureGatherOffset(0Q1B1C").mangledNameHash());
    ASSERT_EQ(0x000003cau, ImmutableString("textureGatherOffset(0W1B1C").mangledNameHash());
    ASSERT_EQ(0x0000041cu, ImmutableString("textureGatherOffset(0H1B1C0C").mangledNameHash());
    ASSERT_EQ(0x000003d3u, ImmutableString("textureGatherOffset(0Q1B1C0C").mangledNameHash());
    ASSERT_EQ(0x00000195u, ImmutableString("textureGatherOffset(0W1B1C0C").mangledNameHash());
    ASSERT_EQ(0x00000190u, ImmutableString("textureGatherOffset(0K2B1C").mangledNameHash());
    ASSERT_EQ(0x000000d0u, ImmutableString("textureGatherOffset(0T2B1C").mangledNameHash());
    ASSERT_EQ(0x0000026du, ImmutableString("textureGatherOffset(0Z2B1C").mangledNameHash());
    ASSERT_EQ(0x000000e8u, ImmutableString("textureGatherOffset(0K2B1C0C").mangledNameHash());
    ASSERT_EQ(0x00000090u, ImmutableString("textureGatherOffset(0T2B1C0C").mangledNameHash());
    ASSERT_EQ(0x000000afu, ImmutableString("textureGatherOffset(0Z2B1C0C").mangledNameHash());
    ASSERT_EQ(0x000003e1u, ImmutableString("textureGatherOffset(0c1B0B1C").mangledNameHash());
    ASSERT_EQ(0x000000c6u, ImmutableString("textureGatherOffset(0e2B0B1C").mangledNameHash());
    ASSERT_EQ(0x00000061u, ImmutableString("atomicCounter(0F").mangledNameHash());
    ASSERT_EQ(0x0000013au, ImmutableString("atomicCounterIncrement(0F").mangledNameHash());
    ASSERT_EQ(0x000002d6u, ImmutableString("atomicCounterDecrement(0F").mangledNameHash());
    ASSERT_EQ(0x0000014au, ImmutableString("atomicAdd(0D0D").mangledNameHash());
    ASSERT_EQ(0x000002b5u, ImmutableString("atomicAdd(0C0C").mangledNameHash());
    ASSERT_EQ(0x000001d9u, ImmutableString("atomicMin(0D0D").mangledNameHash());
    ASSERT_EQ(0x00000280u, ImmutableString("atomicMin(0C0C").mangledNameHash());
    ASSERT_EQ(0x0000041eu, ImmutableString("atomicMax(0D0D").mangledNameHash());
    ASSERT_EQ(0x000003dbu, ImmutableString("atomicMax(0C0C").mangledNameHash());
    ASSERT_EQ(0x000001c9u, ImmutableString("atomicAnd(0D0D").mangledNameHash());
    ASSERT_EQ(0x000002d1u, ImmutableString("atomicAnd(0C0C").mangledNameHash());
    ASSERT_EQ(0x0000027cu, ImmutableString("atomicOr(0D0D").mangledNameHash());
    ASSERT_EQ(0x000003bfu, ImmutableString("atomicOr(0C0C").mangledNameHash());
    ASSERT_EQ(0x000003c3u, ImmutableString("atomicXor(0D0D").mangledNameHash());
    ASSERT_EQ(0x0000019du, ImmutableString("atomicXor(0C0C").mangledNameHash());
    ASSERT_EQ(0x00000147u, ImmutableString("atomicExchange(0D0D").mangledNameHash());
    ASSERT_EQ(0x0000001au, ImmutableString("atomicExchange(0C0C").mangledNameHash());
    ASSERT_EQ(0x000000a3u, ImmutableString("atomicCompSwap(0D0D0D").mangledNameHash());
    ASSERT_EQ(0x000000b9u, ImmutableString("atomicCompSwap(0C0C0C").mangledNameHash());
    ASSERT_EQ(0x0000017au, ImmutableString("imageSize(0f").mangledNameHash());
    ASSERT_EQ(0x0000017bu, ImmutableString("imageSize(0g").mangledNameHash());
    ASSERT_EQ(0x0000017cu, ImmutableString("imageSize(0h").mangledNameHash());
    ASSERT_EQ(0x0000017du, ImmutableString("imageSize(0i").mangledNameHash());
    ASSERT_EQ(0x0000014bu, ImmutableString("imageSize(0j").mangledNameHash());
    ASSERT_EQ(0x0000015eu, ImmutableString("imageSize(0k").mangledNameHash());
    ASSERT_EQ(0x00000180u, ImmutableString("imageSize(0l").mangledNameHash());
    ASSERT_EQ(0x00000184u, ImmutableString("imageSize(0m").mangledNameHash());
    ASSERT_EQ(0x00000138u, ImmutableString("imageSize(0n").mangledNameHash());
    ASSERT_EQ(0x0000003bu, ImmutableString("imageSize(0o").mangledNameHash());
    ASSERT_EQ(0x0000016du, ImmutableString("imageSize(0p").mangledNameHash());
    ASSERT_EQ(0x0000016eu, ImmutableString("imageSize(0q").mangledNameHash());
    ASSERT_EQ(0x0000038cu, ImmutableString("imageLoad(0f1C").mangledNameHash());
    ASSERT_EQ(0x000000fcu, ImmutableString("imageLoad(0g1C").mangledNameHash());
    ASSERT_EQ(0x00000130u, ImmutableString("imageLoad(0h1C").mangledNameHash());
    ASSERT_EQ(0x000003f1u, ImmutableString("imageLoad(0i2C").mangledNameHash());
    ASSERT_EQ(0x000003cbu, ImmutableString("imageLoad(0j2C").mangledNameHash());
    ASSERT_EQ(0x0000011eu, ImmutableString("imageLoad(0k2C").mangledNameHash());
    ASSERT_EQ(0x000003c7u, ImmutableString("imageLoad(0l2C").mangledNameHash());
    ASSERT_EQ(0x000001b9u, ImmutableString("imageLoad(0m2C").mangledNameHash());
    ASSERT_EQ(0x00000198u, ImmutableString("imageLoad(0n2C").mangledNameHash());
    ASSERT_EQ(0x000003d6u, ImmutableString("imageLoad(0o2C").mangledNameHash());
    ASSERT_EQ(0x000003b8u, ImmutableString("imageLoad(0p2C").mangledNameHash());
    ASSERT_EQ(0x000003d4u, ImmutableString("imageLoad(0q2C").mangledNameHash());
    ASSERT_EQ(0x000003aau, ImmutableString("imageStore(0f1C3B").mangledNameHash());
    ASSERT_EQ(0x000003c0u, ImmutableString("imageStore(0g1C3C").mangledNameHash());
    ASSERT_EQ(0x0000035au, ImmutableString("imageStore(0h1C3D").mangledNameHash());
    ASSERT_EQ(0x000000d3u, ImmutableString("imageStore(0i2C3B").mangledNameHash());
    ASSERT_EQ(0x000000f4u, ImmutableString("imageStore(0j2C3C").mangledNameHash());
    ASSERT_EQ(0x0000022cu, ImmutableString("imageStore(0k2C3D").mangledNameHash());
    ASSERT_EQ(0x00000204u, ImmutableString("imageStore(0l2C3B").mangledNameHash());
    ASSERT_EQ(0x00000361u, ImmutableString("imageStore(0m2C3C").mangledNameHash());
    ASSERT_EQ(0x00000394u, ImmutableString("imageStore(0n2C3D").mangledNameHash());
    ASSERT_EQ(0x000003fdu, ImmutableString("imageStore(0o2C3B").mangledNameHash());
    ASSERT_EQ(0x00000105u, ImmutableString("imageStore(0p2C3C").mangledNameHash());
    ASSERT_EQ(0x000000c3u, ImmutableString("imageStore(0q2C3D").mangledNameHash());
    ASSERT_EQ(0x000001edu, ImmutableString("memoryBarrier(").mangledNameHash());
    ASSERT_EQ(0x00000081u, ImmutableString("memoryBarrierAtomicCounter(").mangledNameHash());
    ASSERT_EQ(0x000001feu, ImmutableString("memoryBarrierBuffer(").mangledNameHash());
    ASSERT_EQ(0x000003e3u, ImmutableString("memoryBarrierImage(").mangledNameHash());
    ASSERT_EQ(0x000000b5u, ImmutableString("gl_MaxImageUnits").mangledNameHash());
    ASSERT_EQ(0x0000032du, ImmutableString("gl_MaxVertexImageUniforms").mangledNameHash());
    ASSERT_EQ(0x0000029fu, ImmutableString("gl_MaxFragmentImageUniforms").mangledNameHash());
    ASSERT_EQ(0x0000003eu, ImmutableString("gl_MaxComputeImageUniforms").mangledNameHash());
    ASSERT_EQ(0x00000207u, ImmutableString("gl_MaxCombinedImageUniforms").mangledNameHash());
    ASSERT_EQ(0x000000d7u,
              ImmutableString("gl_MaxCombinedShaderOutputResources").mangledNameHash());
    ASSERT_EQ(0x0000011fu, ImmutableString("gl_MaxComputeWorkGroupCount").mangledNameHash());
    ASSERT_EQ(0x000000f0u, ImmutableString("gl_MaxComputeWorkGroupSize").mangledNameHash());
    ASSERT_EQ(0x00000128u, ImmutableString("gl_MaxComputeUniformComponents").mangledNameHash());
    ASSERT_EQ(0x000002aau, ImmutableString("gl_MaxComputeTextureImageUnits").mangledNameHash());
    ASSERT_EQ(0x0000040au, ImmutableString("gl_MaxComputeAtomicCounters").mangledNameHash());
    ASSERT_EQ(0x00000145u, ImmutableString("gl_MaxComputeAtomicCounterBuffers").mangledNameHash());
    ASSERT_EQ(0x000002d0u, ImmutableString("gl_MaxVertexAtomicCounters").mangledNameHash());
    ASSERT_EQ(0x00000303u, ImmutableString("gl_MaxFragmentAtomicCounters").mangledNameHash());
    ASSERT_EQ(0x000003b3u, ImmutableString("gl_MaxCombinedAtomicCounters").mangledNameHash());
    ASSERT_EQ(0x0000000bu, ImmutableString("gl_MaxAtomicCounterBindings").mangledNameHash());
    ASSERT_EQ(0x00000079u, ImmutableString("gl_MaxVertexAtomicCounterBuffers").mangledNameHash());
    ASSERT_EQ(0x00000041u, ImmutableString("gl_MaxFragmentAtomicCounterBuffers").mangledNameHash());
    ASSERT_EQ(0x000002afu, ImmutableString("gl_MaxCombinedAtomicCounterBuffers").mangledNameHash());
    ASSERT_EQ(0x0000009cu, ImmutableString("gl_MaxAtomicCounterBufferSize").mangledNameHash());
    ASSERT_EQ(0x00000048u, ImmutableString("gl_MaxGeometryInputComponents").mangledNameHash());
    ASSERT_EQ(0x000003cfu, ImmutableString("gl_MaxGeometryOutputComponents").mangledNameHash());
    ASSERT_EQ(0x00000054u, ImmutableString("gl_MaxGeometryImageUniforms").mangledNameHash());
    ASSERT_EQ(0x00000166u, ImmutableString("gl_MaxGeometryTextureImageUnits").mangledNameHash());
    ASSERT_EQ(0x0000012au, ImmutableString("gl_MaxGeometryOutputVertices").mangledNameHash());
    ASSERT_EQ(0x0000031bu,
              ImmutableString("gl_MaxGeometryTotalOutputComponents").mangledNameHash());
    ASSERT_EQ(0x00000387u, ImmutableString("gl_MaxGeometryUniformComponents").mangledNameHash());
    ASSERT_EQ(0x00000423u, ImmutableString("gl_MaxGeometryAtomicCounters").mangledNameHash());
    ASSERT_EQ(0x00000278u, ImmutableString("gl_MaxGeometryAtomicCounterBuffers").mangledNameHash());
    ASSERT_EQ(0x00000235u, ImmutableString("gl_in").mangledNameHash());
    ASSERT_EQ(0x0000016fu, ImmutableString("barrier(").mangledNameHash());
    ASSERT_EQ(0x00000419u, ImmutableString("memoryBarrierShared(").mangledNameHash());
    ASSERT_EQ(0x0000006du, ImmutableString("groupMemoryBarrier(").mangledNameHash());
    ASSERT_EQ(0x0000006eu, ImmutableString("gl_NumWorkGroups").mangledNameHash());
    ASSERT_EQ(0x0000028fu, ImmutableString("gl_WorkGroupSize").mangledNameHash());
    ASSERT_EQ(0x00000249u, ImmutableString("gl_WorkGroupID").mangledNameHash());
    ASSERT_EQ(0x0000041du, ImmutableString("gl_LocalInvocationID").mangledNameHash());
    ASSERT_EQ(0x0000036fu, ImmutableString("gl_GlobalInvocationID").mangledNameHash());
    ASSERT_EQ(0x00000322u, ImmutableString("gl_LocalInvocationIndex").mangledNameHash());
    ASSERT_EQ(0x000003e5u, ImmutableString("EmitVertex(").mangledNameHash());
    ASSERT_EQ(0x00000310u, ImmutableString("EndPrimitive(").mangledNameHash());
    ASSERT_EQ(0x000002deu, ImmutableString("gl_PrimitiveIDIn").mangledNameHash());
    ASSERT_EQ(0x0000019bu, ImmutableString("gl_InvocationID").mangledNameHash());
    ASSERT_EQ(0x00000263u, ImmutableString("gl_PrimitiveID").mangledNameHash());
    ASSERT_EQ(0x00000016u, ImmutableString("gl_Layer").mangledNameHash());
    ASSERT_EQ(0x000000a5u, ImmutableString("gl_PerVertex").mangledNameHash());
    ASSERT_EQ(0x00000397u, ImmutableString("gl_Position").mangledNameHash());
    ASSERT_EQ(0x0000017fu, ImmutableString("sinh(0B").mangledNameHash());
    ASSERT_EQ(0x000002b0u, ImmutableString("sinh(1B").mangledNameHash());
    ASSERT_EQ(0x00000346u, ImmutableString("sinh(2B").mangledNameHash());
    ASSERT_EQ(0x00000086u, ImmutableString("sinh(3B").mangledNameHash());
    ASSERT_EQ(0x00000118u, ImmutableString("cosh(0B").mangledNameHash());
    ASSERT_EQ(0x0000035bu, ImmutableString("cosh(1B").mangledNameHash());
    ASSERT_EQ(0x00000222u, ImmutableString("cosh(2B").mangledNameHash());
    ASSERT_EQ(0x000001c6u, ImmutableString("cosh(3B").mangledNameHash());
    ASSERT_EQ(0x0000037au, ImmutableString("tanh(0B").mangledNameHash());
    ASSERT_EQ(0x0000029bu, ImmutableString("tanh(1B").mangledNameHash());
    ASSERT_EQ(0x00000121u, ImmutableString("tanh(2B").mangledNameHash());
    ASSERT_EQ(0x00000026u, ImmutableString("tanh(3B").mangledNameHash());
    ASSERT_EQ(0x00000075u, ImmutableString("asinh(0B").mangledNameHash());
    ASSERT_EQ(0x00000336u, ImmutableString("asinh(1B").mangledNameHash());
    ASSERT_EQ(0x0000024du, ImmutableString("asinh(2B").mangledNameHash());
    ASSERT_EQ(0x000000ceu, ImmutableString("asinh(3B").mangledNameHash());
    ASSERT_EQ(0x000003abu, ImmutableString("acosh(0B").mangledNameHash());
    ASSERT_EQ(0x000000b3u, ImmutableString("acosh(1B").mangledNameHash());
    ASSERT_EQ(0x00000152u, ImmutableString("acosh(2B").mangledNameHash());
    ASSERT_EQ(0x00000242u, ImmutableString("acosh(3B").mangledNameHash());
    ASSERT_EQ(0x00000065u, ImmutableString("atanh(0B").mangledNameHash());
    ASSERT_EQ(0x00000164u, ImmutableString("atanh(1B").mangledNameHash());
    ASSERT_EQ(0x00000203u, ImmutableString("atanh(2B").mangledNameHash());
    ASSERT_EQ(0x00000367u, ImmutableString("atanh(3B").mangledNameHash());
    ASSERT_EQ(0x000003ffu, ImmutableString("abs(0C").mangledNameHash());
    ASSERT_EQ(0x0000013cu, ImmutableString("abs(1C").mangledNameHash());
    ASSERT_EQ(0x0000022eu, ImmutableString("abs(2C").mangledNameHash());
    ASSERT_EQ(0x0000039cu, ImmutableString("abs(3C").mangledNameHash());
    ASSERT_EQ(0x00000119u, ImmutableString("sign(0C").mangledNameHash());
    ASSERT_EQ(0x00000416u, ImmutableString("sign(1C").mangledNameHash());
    ASSERT_EQ(0x00000327u, ImmutableString("sign(2C").mangledNameHash());
    ASSERT_EQ(0x000001c5u, ImmutableString("sign(3C").mangledNameHash());
    ASSERT_EQ(0x00000163u, ImmutableString("trunc(0B").mangledNameHash());
    ASSERT_EQ(0x000002cfu, ImmutableString("trunc(1B").mangledNameHash());
    ASSERT_EQ(0x0000032eu, ImmutableString("trunc(2B").mangledNameHash());
    ASSERT_EQ(0x00000066u, ImmutableString("trunc(3B").mangledNameHash());
    ASSERT_EQ(0x000002f7u, ImmutableString("round(0B").mangledNameHash());
    ASSERT_EQ(0x00000029u, ImmutableString("round(1B").mangledNameHash());
    ASSERT_EQ(0x00000124u, ImmutableString("round(2B").mangledNameHash());
    ASSERT_EQ(0x000002a8u, ImmutableString("round(3B").mangledNameHash());
    ASSERT_EQ(0x00000200u, ImmutableString("roundEven(0B").mangledNameHash());
    ASSERT_EQ(0x00000364u, ImmutableString("roundEven(1B").mangledNameHash());
    ASSERT_EQ(0x00000069u, ImmutableString("roundEven(2B").mangledNameHash());
    ASSERT_EQ(0x00000162u, ImmutableString("roundEven(3B").mangledNameHash());
    ASSERT_EQ(0x00000038u, ImmutableString("min(0C0C").mangledNameHash());
    ASSERT_EQ(0x000001cbu, ImmutableString("min(1C1C").mangledNameHash());
    ASSERT_EQ(0x000003afu, ImmutableString("min(2C2C").mangledNameHash());
    ASSERT_EQ(0x0000030eu, ImmutableString("min(3C3C").mangledNameHash());
    ASSERT_EQ(0x0000030bu, ImmutableString("min(1C0C").mangledNameHash());
    ASSERT_EQ(0x000001f0u, ImmutableString("min(2C0C").mangledNameHash());
    ASSERT_EQ(0x00000403u, ImmutableString("min(3C0C").mangledNameHash());
    ASSERT_EQ(0x000000e1u, ImmutableString("min(0D0D").mangledNameHash());
    ASSERT_EQ(0x0000005bu, ImmutableString("min(1D1D").mangledNameHash());
    ASSERT_EQ(0x0000018fu, ImmutableString("min(2D2D").mangledNameHash());
    ASSERT_EQ(0x00000098u, ImmutableString("min(3D3D").mangledNameHash());
    ASSERT_EQ(0x000001e0u, ImmutableString("min(1D0D").mangledNameHash());
    ASSERT_EQ(0x000003deu, ImmutableString("min(2D0D").mangledNameHash());
    ASSERT_EQ(0x0000029eu, ImmutableString("min(3D0D").mangledNameHash());
    ASSERT_EQ(0x00000170u, ImmutableString("max(0C0C").mangledNameHash());
    ASSERT_EQ(0x00000404u, ImmutableString("max(1C1C").mangledNameHash());
    ASSERT_EQ(0x0000018au, ImmutableString("max(2C2C").mangledNameHash());
    ASSERT_EQ(0x00000284u, ImmutableString("max(3C3C").mangledNameHash());
    ASSERT_EQ(0x0000030fu, ImmutableString("max(1C0C").mangledNameHash());
    ASSERT_EQ(0x00000302u, ImmutableString("max(2C0C").mangledNameHash());
    ASSERT_EQ(0x00000360u, ImmutableString("max(3C0C").mangledNameHash());
    ASSERT_EQ(0x0000005fu, ImmutableString("max(0D0D").mangledNameHash());
    ASSERT_EQ(0x00000217u, ImmutableString("max(1D1D").mangledNameHash());
    ASSERT_EQ(0x00000022u, ImmutableString("max(2D2D").mangledNameHash());
    ASSERT_EQ(0x00000374u, ImmutableString("max(3D3D").mangledNameHash());
    ASSERT_EQ(0x000002f6u, ImmutableString("max(1D0D").mangledNameHash());
    ASSERT_EQ(0x0000020eu, ImmutableString("max(2D0D").mangledNameHash());
    ASSERT_EQ(0x00000243u, ImmutableString("max(3D0D").mangledNameHash());
    ASSERT_EQ(0x00000261u, ImmutableString("clamp(0C0C0C").mangledNameHash());
    ASSERT_EQ(0x0000036du, ImmutableString("clamp(1C0C0C").mangledNameHash());
    ASSERT_EQ(0x0000037fu, ImmutableString("clamp(2C0C0C").mangledNameHash());
    ASSERT_EQ(0x0000008au, ImmutableString("clamp(3C0C0C").mangledNameHash());
    ASSERT_EQ(0x000002f3u, ImmutableString("clamp(1C1C1C").mangledNameHash());
    ASSERT_EQ(0x00000411u, ImmutableString("clamp(2C2C2C").mangledNameHash());
    ASSERT_EQ(0x000001f4u, ImmutableString("clamp(3C3C3C").mangledNameHash());
    ASSERT_EQ(0x000003acu, ImmutableString("clamp(0D0D0D").mangledNameHash());
    ASSERT_EQ(0x00000407u, ImmutableString("clamp(1D0D0D").mangledNameHash());
    ASSERT_EQ(0x000001ebu, ImmutableString("clamp(2D0D0D").mangledNameHash());
    ASSERT_EQ(0x000001d3u, ImmutableString("clamp(3D0D0D").mangledNameHash());
    ASSERT_EQ(0x00000031u, ImmutableString("clamp(1D1D1D").mangledNameHash());
    ASSERT_EQ(0x0000038eu, ImmutableString("clamp(2D2D2D").mangledNameHash());
    ASSERT_EQ(0x0000012du, ImmutableString("clamp(3D3D3D").mangledNameHash());
    ASSERT_EQ(0x00000359u, ImmutableString("mix(0B0B0E").mangledNameHash());
    ASSERT_EQ(0x00000271u, ImmutableString("mix(1B1B1E").mangledNameHash());
    ASSERT_EQ(0x0000020au, ImmutableString("mix(2B2B2E").mangledNameHash());
    ASSERT_EQ(0x000001bdu, ImmutableString("mix(3B3B3E").mangledNameHash());
    ASSERT_EQ(0x000003ecu, ImmutableString("modf(0B0B").mangledNameHash());
    ASSERT_EQ(0x0000024bu, ImmutableString("modf(1B1B").mangledNameHash());
    ASSERT_EQ(0x000003d2u, ImmutableString("modf(2B2B").mangledNameHash());
    ASSERT_EQ(0x0000006cu, ImmutableString("modf(3B3B").mangledNameHash());
    ASSERT_EQ(0x0000036cu, ImmutableString("isnan(0B").mangledNameHash());
    ASSERT_EQ(0x0000034fu, ImmutableString("isnan(1B").mangledNameHash());
    ASSERT_EQ(0x00000106u, ImmutableString("isnan(2B").mangledNameHash());
    ASSERT_EQ(0x000003c5u, ImmutableString("isnan(3B").mangledNameHash());
    ASSERT_EQ(0x000001dbu, ImmutableString("isinf(0B").mangledNameHash());
    ASSERT_EQ(0x00000057u, ImmutableString("isinf(1B").mangledNameHash());
    ASSERT_EQ(0x0000042cu, ImmutableString("isinf(2B").mangledNameHash());
    ASSERT_EQ(0x000002c3u, ImmutableString("isinf(3B").mangledNameHash());
    ASSERT_EQ(0x000000b6u, ImmutableString("floatBitsToInt(0B").mangledNameHash());
    ASSERT_EQ(0x000001b3u, ImmutableString("floatBitsToInt(1B").mangledNameHash());
    ASSERT_EQ(0x00000312u, ImmutableString("floatBitsToInt(2B").mangledNameHash());
    ASSERT_EQ(0x00000408u, ImmutableString("floatBitsToInt(3B").mangledNameHash());
    ASSERT_EQ(0x000000f5u, ImmutableString("floatBitsToUint(0B").mangledNameHash());
    ASSERT_EQ(0x00000244u, ImmutableString("floatBitsToUint(1B").mangledNameHash());
    ASSERT_EQ(0x000001e3u, ImmutableString("floatBitsToUint(2B").mangledNameHash());
    ASSERT_EQ(0x0000005eu, ImmutableString("floatBitsToUint(3B").mangledNameHash());
    ASSERT_EQ(0x00000317u, ImmutableString("intBitsToFloat(0C").mangledNameHash());
    ASSERT_EQ(0x0000040fu, ImmutableString("intBitsToFloat(1C").mangledNameHash());
    ASSERT_EQ(0x000000bfu, ImmutableString("intBitsToFloat(2C").mangledNameHash());
    ASSERT_EQ(0x000001bbu, ImmutableString("intBitsToFloat(3C").mangledNameHash());
    ASSERT_EQ(0x00000183u, ImmutableString("uintBitsToFloat(0D").mangledNameHash());
    ASSERT_EQ(0x0000007eu, ImmutableString("uintBitsToFloat(1D").mangledNameHash());
    ASSERT_EQ(0x00000341u, ImmutableString("uintBitsToFloat(2D").mangledNameHash());
    ASSERT_EQ(0x00000268u, ImmutableString("uintBitsToFloat(3D").mangledNameHash());
    ASSERT_EQ(0x0000005cu, ImmutableString("packSnorm2x16(1B").mangledNameHash());
    ASSERT_EQ(0x0000036eu, ImmutableString("packUnorm2x16(1B").mangledNameHash());
    ASSERT_EQ(0x000003dcu, ImmutableString("packHalf2x16(1B").mangledNameHash());
    ASSERT_EQ(0x0000022fu, ImmutableString("unpackSnorm2x16(0D").mangledNameHash());
    ASSERT_EQ(0x00000210u, ImmutableString("unpackUnorm2x16(0D").mangledNameHash());
    ASSERT_EQ(0x00000082u, ImmutableString("unpackHalf2x16(0D").mangledNameHash());
    ASSERT_EQ(0x00000137u, ImmutableString("matrixCompMult(9B9B").mangledNameHash());
    ASSERT_EQ(0x000002e4u, ImmutableString("matrixCompMult(6B6B").mangledNameHash());
    ASSERT_EQ(0x00000395u, ImmutableString("matrixCompMult(DBDB").mangledNameHash());
    ASSERT_EQ(0x0000015cu, ImmutableString("matrixCompMult(7B7B").mangledNameHash());
    ASSERT_EQ(0x0000002eu, ImmutableString("matrixCompMult(EBEB").mangledNameHash());
    ASSERT_EQ(0x000000c0u, ImmutableString("matrixCompMult(BBBB").mangledNameHash());
    ASSERT_EQ(0x0000001fu, ImmutableString("outerProduct(1B1B").mangledNameHash());
    ASSERT_EQ(0x00000371u, ImmutableString("outerProduct(2B2B").mangledNameHash());
    ASSERT_EQ(0x0000037cu, ImmutableString("outerProduct(3B3B").mangledNameHash());
    ASSERT_EQ(0x000001fcu, ImmutableString("outerProduct(2B1B").mangledNameHash());
    ASSERT_EQ(0x000003ebu, ImmutableString("outerProduct(1B2B").mangledNameHash());
    ASSERT_EQ(0x000001abu, ImmutableString("outerProduct(3B1B").mangledNameHash());
    ASSERT_EQ(0x00000283u, ImmutableString("outerProduct(1B3B").mangledNameHash());
    ASSERT_EQ(0x000000bbu, ImmutableString("outerProduct(3B2B").mangledNameHash());
    ASSERT_EQ(0x00000412u, ImmutableString("outerProduct(2B3B").mangledNameHash());
    ASSERT_EQ(0x0000030du, ImmutableString("transpose(5B").mangledNameHash());
    ASSERT_EQ(0x000001ecu, ImmutableString("transpose(AB").mangledNameHash());
    ASSERT_EQ(0x000000fbu, ImmutableString("transpose(FB").mangledNameHash());
    ASSERT_EQ(0x0000022bu, ImmutableString("transpose(6B").mangledNameHash());
    ASSERT_EQ(0x0000007bu, ImmutableString("transpose(9B").mangledNameHash());
    ASSERT_EQ(0x00000139u, ImmutableString("transpose(7B").mangledNameHash());
    ASSERT_EQ(0x000002dbu, ImmutableString("transpose(DB").mangledNameHash());
    ASSERT_EQ(0x0000019cu, ImmutableString("transpose(BB").mangledNameHash());
    ASSERT_EQ(0x0000016bu, ImmutableString("transpose(EB").mangledNameHash());
    ASSERT_EQ(0x0000008bu, ImmutableString("determinant(5B").mangledNameHash());
    ASSERT_EQ(0x000001adu, ImmutableString("determinant(AB").mangledNameHash());
    ASSERT_EQ(0x000001ceu, ImmutableString("determinant(FB").mangledNameHash());
    ASSERT_EQ(0x00000239u, ImmutableString("inverse(5B").mangledNameHash());
    ASSERT_EQ(0x00000175u, ImmutableString("inverse(AB").mangledNameHash());
    ASSERT_EQ(0x0000025au, ImmutableString("inverse(FB").mangledNameHash());
    ASSERT_EQ(0x0000023fu, ImmutableString("lessThan(1D1D").mangledNameHash());
    ASSERT_EQ(0x0000000cu, ImmutableString("lessThan(2D2D").mangledNameHash());
    ASSERT_EQ(0x00000355u, ImmutableString("lessThan(3D3D").mangledNameHash());
    ASSERT_EQ(0x000001e1u, ImmutableString("lessThanEqual(1D1D").mangledNameHash());
    ASSERT_EQ(0x00000375u, ImmutableString("lessThanEqual(2D2D").mangledNameHash());
    ASSERT_EQ(0x00000274u, ImmutableString("lessThanEqual(3D3D").mangledNameHash());
    ASSERT_EQ(0x000001bau, ImmutableString("greaterThan(1D1D").mangledNameHash());
    ASSERT_EQ(0x00000149u, ImmutableString("greaterThan(2D2D").mangledNameHash());
    ASSERT_EQ(0x00000252u, ImmutableString("greaterThan(3D3D").mangledNameHash());
    ASSERT_EQ(0x00000077u, ImmutableString("greaterThanEqual(1D1D").mangledNameHash());
    ASSERT_EQ(0x00000297u, ImmutableString("greaterThanEqual(2D2D").mangledNameHash());
    ASSERT_EQ(0x0000017eu, ImmutableString("greaterThanEqual(3D3D").mangledNameHash());
    ASSERT_EQ(0x000003e8u, ImmutableString("equal(1D1D").mangledNameHash());
    ASSERT_EQ(0x00000120u, ImmutableString("equal(2D2D").mangledNameHash());
    ASSERT_EQ(0x0000000du, ImmutableString("equal(3D3D").mangledNameHash());
    ASSERT_EQ(0x0000042eu, ImmutableString("notEqual(1D1D").mangledNameHash());
    ASSERT_EQ(0x00000196u, ImmutableString("notEqual(2D2D").mangledNameHash());
    ASSERT_EQ(0x00000281u, ImmutableString("notEqual(3D3D").mangledNameHash());
    ASSERT_EQ(0x00000078u, ImmutableString("texture(0N1B").mangledNameHash());
    ASSERT_EQ(0x0000026cu, ImmutableString("textureProj(0N2B").mangledNameHash());
    ASSERT_EQ(0x00000344u, ImmutableString("textureProj(0N3B").mangledNameHash());
    ASSERT_EQ(0x000001aeu, ImmutableString("texture(0H1B").mangledNameHash());
    ASSERT_EQ(0x00000402u, ImmutableString("texture(0Q1B").mangledNameHash());
    ASSERT_EQ(0x00000221u, ImmutableString("texture(0W1B").mangledNameHash());
    ASSERT_EQ(0x000002edu, ImmutableString("texture(0I2B").mangledNameHash());
    ASSERT_EQ(0x000002a9u, ImmutableString("texture(0R2B").mangledNameHash());
    ASSERT_EQ(0x00000292u, ImmutableString("texture(0X2B").mangledNameHash());
    ASSERT_EQ(0x00000007u, ImmutableString("texture(0J2B").mangledNameHash());
    ASSERT_EQ(0x00000034u, ImmutableString("texture(0S2B").mangledNameHash());
    ASSERT_EQ(0x00000333u, ImmutableString("texture(0Y2B").mangledNameHash());
    ASSERT_EQ(0x000001e9u, ImmutableString("texture(0K2B").mangledNameHash());
    ASSERT_EQ(0x0000039bu, ImmutableString("texture(0T2B").mangledNameHash());
    ASSERT_EQ(0x00000050u, ImmutableString("texture(0Z2B").mangledNameHash());
    ASSERT_EQ(0x000003d9u, ImmutableString("textureProj(0H2B").mangledNameHash());
    ASSERT_EQ(0x000000a2u, ImmutableString("textureProj(0Q2B").mangledNameHash());
    ASSERT_EQ(0x00000335u, ImmutableString("textureProj(0W2B").mangledNameHash());
    ASSERT_EQ(0x000002e6u, ImmutableString("textureProj(0H3B").mangledNameHash());
    ASSERT_EQ(0x00000385u, ImmutableString("textureProj(0Q3B").mangledNameHash());
    ASSERT_EQ(0x00000255u, ImmutableString("textureProj(0W3B").mangledNameHash());
    ASSERT_EQ(0x00000418u, ImmutableString("textureProj(0I3B").mangledNameHash());
    ASSERT_EQ(0x0000026fu, ImmutableString("textureProj(0R3B").mangledNameHash());
    ASSERT_EQ(0x00000348u, ImmutableString("textureProj(0X3B").mangledNameHash());
    ASSERT_EQ(0x00000383u, ImmutableString("textureLod(0H1B0B").mangledNameHash());
    ASSERT_EQ(0x00000398u, ImmutableString("textureLod(0Q1B0B").mangledNameHash());
    ASSERT_EQ(0x000000cfu, ImmutableString("textureLod(0W1B0B").mangledNameHash());
    ASSERT_EQ(0x00000179u, ImmutableString("textureLod(0I2B0B").mangledNameHash());
    ASSERT_EQ(0x000000ccu, ImmutableString("textureLod(0R2B0B").mangledNameHash());
    ASSERT_EQ(0x00000030u, ImmutableString("textureLod(0X2B0B").mangledNameHash());
    ASSERT_EQ(0x000001d8u, ImmutableString("textureLod(0J2B0B").mangledNameHash());
    ASSERT_EQ(0x00000174u, ImmutableString("textureLod(0S2B0B").mangledNameHash());
    ASSERT_EQ(0x00000381u, ImmutableString("textureLod(0Y2B0B").mangledNameHash());
    ASSERT_EQ(0x000001bcu, ImmutableString("textureLod(0K2B0B").mangledNameHash());
    ASSERT_EQ(0x000001a8u, ImmutableString("textureLod(0T2B0B").mangledNameHash());
    ASSERT_EQ(0x000000c5u, ImmutableString("textureLod(0Z2B0B").mangledNameHash());
    ASSERT_EQ(0x000000edu, ImmutableString("texture(0c2B").mangledNameHash());
    ASSERT_EQ(0x000001d2u, ImmutableString("texture(0d3B").mangledNameHash());
    ASSERT_EQ(0x000003aeu, ImmutableString("texture(0e3B").mangledNameHash());
    ASSERT_EQ(0x00000262u, ImmutableString("textureProj(0c3B").mangledNameHash());
    ASSERT_EQ(0x0000037bu, ImmutableString("textureLod(0c2B0B").mangledNameHash());
    ASSERT_EQ(0x000000a4u, ImmutableString("textureSize(0H0C").mangledNameHash());
    ASSERT_EQ(0x00000157u, ImmutableString("textureSize(0Q0C").mangledNameHash());
    ASSERT_EQ(0x000002e3u, ImmutableString("textureSize(0W0C").mangledNameHash());
    ASSERT_EQ(0x000003a9u, ImmutableString("textureSize(0I0C").mangledNameHash());
    ASSERT_EQ(0x000000efu, ImmutableString("textureSize(0R0C").mangledNameHash());
    ASSERT_EQ(0x00000071u, ImmutableString("textureSize(0X0C").mangledNameHash());
    ASSERT_EQ(0x000002ddu, ImmutableString("textureSize(0J0C").mangledNameHash());
    ASSERT_EQ(0x00000432u, ImmutableString("textureSize(0S0C").mangledNameHash());
    ASSERT_EQ(0x00000315u, ImmutableString("textureSize(0Y0C").mangledNameHash());
    ASSERT_EQ(0x000001f5u, ImmutableString("textureSize(0K0C").mangledNameHash());
    ASSERT_EQ(0x00000132u, ImmutableString("textureSize(0T0C").mangledNameHash());
    ASSERT_EQ(0x000002c2u, ImmutableString("textureSize(0Z0C").mangledNameHash());
    ASSERT_EQ(0x000000bcu, ImmutableString("textureSize(0c0C").mangledNameHash());
    ASSERT_EQ(0x0000021au, ImmutableString("textureSize(0d0C").mangledNameHash());
    ASSERT_EQ(0x000000c1u, ImmutableString("textureSize(0e0C").mangledNameHash());
    ASSERT_EQ(0x0000010cu, ImmutableString("textureProjLod(0H2B0B").mangledNameHash());
    ASSERT_EQ(0x00000376u, ImmutableString("textureProjLod(0Q2B0B").mangledNameHash());
    ASSERT_EQ(0x00000003u, ImmutableString("textureProjLod(0W2B0B").mangledNameHash());
    ASSERT_EQ(0x00000218u, ImmutableString("textureProjLod(0H3B0B").mangledNameHash());
    ASSERT_EQ(0x0000010fu, ImmutableString("textureProjLod(0Q3B0B").mangledNameHash());
    ASSERT_EQ(0x00000238u, ImmutableString("textureProjLod(0W3B0B").mangledNameHash());
    ASSERT_EQ(0x00000368u, ImmutableString("textureProjLod(0I3B0B").mangledNameHash());
    ASSERT_EQ(0x000003f0u, ImmutableString("textureProjLod(0R3B0B").mangledNameHash());
    ASSERT_EQ(0x0000034eu, ImmutableString("textureProjLod(0X3B0B").mangledNameHash());
    ASSERT_EQ(0x000002b1u, ImmutableString("textureProjLod(0c3B0B").mangledNameHash());
    ASSERT_EQ(0x000002e2u, ImmutableString("texelFetch(0H1C0C").mangledNameHash());
    ASSERT_EQ(0x000002abu, ImmutableString("texelFetch(0Q1C0C").mangledNameHash());
    ASSERT_EQ(0x00000033u, ImmutableString("texelFetch(0W1C0C").mangledNameHash());
    ASSERT_EQ(0x00000257u, ImmutableString("texelFetch(0I2C0C").mangledNameHash());
    ASSERT_EQ(0x00000231u, ImmutableString("texelFetch(0R2C0C").mangledNameHash());
    ASSERT_EQ(0x0000027fu, ImmutableString("texelFetch(0X2C0C").mangledNameHash());
    ASSERT_EQ(0x00000282u, ImmutableString("texelFetch(0K2C0C").mangledNameHash());
    ASSERT_EQ(0x000000abu, ImmutableString("texelFetch(0T2C0C").mangledNameHash());
    ASSERT_EQ(0x000001e7u, ImmutableString("texelFetch(0Z2C0C").mangledNameHash());
    ASSERT_EQ(0x00000342u, ImmutableString("textureGrad(0H1B1B1B").mangledNameHash());
    ASSERT_EQ(0x00000080u, ImmutableString("textureGrad(0Q1B1B1B").mangledNameHash());
    ASSERT_EQ(0x0000012bu, ImmutableString("textureGrad(0W1B1B1B").mangledNameHash());
    ASSERT_EQ(0x000001a3u, ImmutableString("textureGrad(0I2B2B2B").mangledNameHash());
    ASSERT_EQ(0x00000035u, ImmutableString("textureGrad(0R2B2B2B").mangledNameHash());
    ASSERT_EQ(0x000003beu, ImmutableString("textureGrad(0X2B2B2B").mangledNameHash());
    ASSERT_EQ(0x0000007au, ImmutableString("textureGrad(0J2B2B2B").mangledNameHash());
    ASSERT_EQ(0x000001f7u, ImmutableString("textureGrad(0S2B2B2B").mangledNameHash());
    ASSERT_EQ(0x0000024eu, ImmutableString("textureGrad(0Y2B2B2B").mangledNameHash());
    ASSERT_EQ(0x00000247u, ImmutableString("textureGrad(0c2B1B1B").mangledNameHash());
    ASSERT_EQ(0x000001c7u, ImmutableString("textureGrad(0d3B2B2B").mangledNameHash());
    ASSERT_EQ(0x0000000au, ImmutableString("textureGrad(0K2B1B1B").mangledNameHash());
    ASSERT_EQ(0x000003a0u, ImmutableString("textureGrad(0T2B1B1B").mangledNameHash());
    ASSERT_EQ(0x00000382u, ImmutableString("textureGrad(0Z2B1B1B").mangledNameHash());
    ASSERT_EQ(0x00000227u, ImmutableString("textureGrad(0e3B1B1B").mangledNameHash());
    ASSERT_EQ(0x000002c6u, ImmutableString("textureProjGrad(0H2B1B1B").mangledNameHash());
    ASSERT_EQ(0x0000041bu, ImmutableString("textureProjGrad(0Q2B1B1B").mangledNameHash());
    ASSERT_EQ(0x00000037u, ImmutableString("textureProjGrad(0W2B1B1B").mangledNameHash());
    ASSERT_EQ(0x00000063u, ImmutableString("textureProjGrad(0H3B1B1B").mangledNameHash());
    ASSERT_EQ(0x000003c1u, ImmutableString("textureProjGrad(0Q3B1B1B").mangledNameHash());
    ASSERT_EQ(0x000002bfu, ImmutableString("textureProjGrad(0W3B1B1B").mangledNameHash());
    ASSERT_EQ(0x000003b1u, ImmutableString("textureProjGrad(0I3B2B2B").mangledNameHash());
    ASSERT_EQ(0x00000225u, ImmutableString("textureProjGrad(0R3B2B2B").mangledNameHash());
    ASSERT_EQ(0x00000351u, ImmutableString("textureProjGrad(0X3B2B2B").mangledNameHash());
    ASSERT_EQ(0x00000386u, ImmutableString("textureProjGrad(0c3B1B1B").mangledNameHash());
    ASSERT_EQ(0x000003f4u, ImmutableString("textureOffset(0H1B1C").mangledNameHash());
    ASSERT_EQ(0x00000332u, ImmutableString("textureOffset(0Q1B1C").mangledNameHash());
    ASSERT_EQ(0x00000294u, ImmutableString("textureOffset(0W1B1C").mangledNameHash());
    ASSERT_EQ(0x000003a8u, ImmutableString("textureOffset(0I2B2C").mangledNameHash());
    ASSERT_EQ(0x000002dau, ImmutableString("textureOffset(0R2B2C").mangledNameHash());
    ASSERT_EQ(0x000002f4u, ImmutableString("textureOffset(0X2B2C").mangledNameHash());
    ASSERT_EQ(0x0000023bu, ImmutableString("textureOffset(0c2B1C").mangledNameHash());
    ASSERT_EQ(0x00000055u, ImmutableString("textureOffset(0K2B1C").mangledNameHash());
    ASSERT_EQ(0x000003f7u, ImmutableString("textureOffset(0T2B1C").mangledNameHash());
    ASSERT_EQ(0x000002f9u, ImmutableString("textureOffset(0Z2B1C").mangledNameHash());
    ASSERT_EQ(0x00000304u, ImmutableString("textureProjOffset(0H2B1C").mangledNameHash());
    ASSERT_EQ(0x00000420u, ImmutableString("textureProjOffset(0Q2B1C").mangledNameHash());
    ASSERT_EQ(0x000002a7u, ImmutableString("textureProjOffset(0W2B1C").mangledNameHash());
    ASSERT_EQ(0x00000437u, ImmutableString("textureProjOffset(0H3B1C").mangledNameHash());
    ASSERT_EQ(0x00000390u, ImmutableString("textureProjOffset(0Q3B1C").mangledNameHash());
    ASSERT_EQ(0x00000265u, ImmutableString("textureProjOffset(0W3B1C").mangledNameHash());
    ASSERT_EQ(0x0000032bu, ImmutableString("textureProjOffset(0I3B2C").mangledNameHash());
    ASSERT_EQ(0x0000018eu, ImmutableString("textureProjOffset(0R3B2C").mangledNameHash());
    ASSERT_EQ(0x00000405u, ImmutableString("textureProjOffset(0X3B2C").mangledNameHash());
    ASSERT_EQ(0x00000380u, ImmutableString("textureProjOffset(0c3B1C").mangledNameHash());
    ASSERT_EQ(0x0000027bu, ImmutableString("textureLodOffset(0H1B0B1C").mangledNameHash());
    ASSERT_EQ(0x000001ccu, ImmutableString("textureLodOffset(0Q1B0B1C").mangledNameHash());
    ASSERT_EQ(0x00000093u, ImmutableString("textureLodOffset(0W1B0B1C").mangledNameHash());
    ASSERT_EQ(0x0000008du, ImmutableString("textureLodOffset(0I2B0B2C").mangledNameHash());
    ASSERT_EQ(0x000002a3u, ImmutableString("textureLodOffset(0R2B0B2C").mangledNameHash());
    ASSERT_EQ(0x00000042u, ImmutableString("textureLodOffset(0X2B0B2C").mangledNameHash());
    ASSERT_EQ(0x0000016au, ImmutableString("textureLodOffset(0c2B0B1C").mangledNameHash());
    ASSERT_EQ(0x000002bcu, ImmutableString("textureLodOffset(0K2B0B1C").mangledNameHash());
    ASSERT_EQ(0x00000319u, ImmutableString("textureLodOffset(0T2B0B1C").mangledNameHash());
    ASSERT_EQ(0x000000a8u, ImmutableString("textureLodOffset(0Z2B0B1C").mangledNameHash());
    ASSERT_EQ(0x000003b6u, ImmutableString("textureProjLodOffset(0H2B0B1C").mangledNameHash());
    ASSERT_EQ(0x000002f8u, ImmutableString("textureProjLodOffset(0Q2B0B1C").mangledNameHash());
    ASSERT_EQ(0x00000051u, ImmutableString("textureProjLodOffset(0W2B0B1C").mangledNameHash());
    ASSERT_EQ(0x000003d0u, ImmutableString("textureProjLodOffset(0H3B0B1C").mangledNameHash());
    ASSERT_EQ(0x000002e8u, ImmutableString("textureProjLodOffset(0Q3B0B1C").mangledNameHash());
    ASSERT_EQ(0x00000123u, ImmutableString("textureProjLodOffset(0W3B0B1C").mangledNameHash());
    ASSERT_EQ(0x0000010au, ImmutableString("textureProjLodOffset(0I3B0B2C").mangledNameHash());
    ASSERT_EQ(0x000003a7u, ImmutableString("textureProjLodOffset(0R3B0B2C").mangledNameHash());
    ASSERT_EQ(0x000002d5u, ImmutableString("textureProjLodOffset(0X3B0B2C").mangledNameHash());
    ASSERT_EQ(0x0000036bu, ImmutableString("textureProjLodOffset(0c3B0B1C").mangledNameHash());
    ASSERT_EQ(0x00000040u, ImmutableString("texelFetchOffset(0H1C0C1C").mangledNameHash());
    ASSERT_EQ(0x00000228u, ImmutableString("texelFetchOffset(0Q1C0C1C").mangledNameHash());
    ASSERT_EQ(0x00000095u, ImmutableString("texelFetchOffset(0W1C0C1C").mangledNameHash());
    ASSERT_EQ(0x0000014cu, ImmutableString("texelFetchOffset(0I2C0C2C").mangledNameHash());
    ASSERT_EQ(0x000002f2u, ImmutableString("texelFetchOffset(0R2C0C2C").mangledNameHash());
    ASSERT_EQ(0x000002e5u, ImmutableString("texelFetchOffset(0X2C0C2C").mangledNameHash());
    ASSERT_EQ(0x000001e4u, ImmutableString("texelFetchOffset(0K2C0C1C").mangledNameHash());
    ASSERT_EQ(0x000000e3u, ImmutableString("texelFetchOffset(0T2C0C1C").mangledNameHash());
    ASSERT_EQ(0x0000038fu, ImmutableString("texelFetchOffset(0Z2C0C1C").mangledNameHash());
    ASSERT_EQ(0x0000033cu, ImmutableString("textureGradOffset(0H1B1B1B1C").mangledNameHash());
    ASSERT_EQ(0x0000020bu, ImmutableString("textureGradOffset(0Q1B1B1B1C").mangledNameHash());
    ASSERT_EQ(0x00000019u, ImmutableString("textureGradOffset(0W1B1B1B1C").mangledNameHash());
    ASSERT_EQ(0x0000033fu, ImmutableString("textureGradOffset(0I2B2B2B2C").mangledNameHash());
    ASSERT_EQ(0x00000246u, ImmutableString("textureGradOffset(0R2B2B2B2C").mangledNameHash());
    ASSERT_EQ(0x0000031au, ImmutableString("textureGradOffset(0X2B2B2B2C").mangledNameHash());
    ASSERT_EQ(0x000001d1u, ImmutableString("textureGradOffset(0c2B1B1B1C").mangledNameHash());
    ASSERT_EQ(0x00000109u, ImmutableString("textureGradOffset(0K2B1B1B1C").mangledNameHash());
    ASSERT_EQ(0x000003d5u, ImmutableString("textureGradOffset(0T2B1B1B1C").mangledNameHash());
    ASSERT_EQ(0x00000027u, ImmutableString("textureGradOffset(0Z2B1B1B1C").mangledNameHash());
    ASSERT_EQ(0x00000014u, ImmutableString("textureGradOffset(0e3B1B1B1C").mangledNameHash());
    ASSERT_EQ(0x00000413u, ImmutableString("textureProjGradOffset(0H2B1B1B1C").mangledNameHash());
    ASSERT_EQ(0x00000115u, ImmutableString("textureProjGradOffset(0Q2B1B1B1C").mangledNameHash());
    ASSERT_EQ(0x00000169u, ImmutableString("textureProjGradOffset(0W2B1B1B1C").mangledNameHash());
    ASSERT_EQ(0x0000011au, ImmutableString("textureProjGradOffset(0H3B1B1B1C").mangledNameHash());
    ASSERT_EQ(0x0000022au, ImmutableString("textureProjGradOffset(0Q3B1B1B1C").mangledNameHash());
    ASSERT_EQ(0x000000d4u, ImmutableString("textureProjGradOffset(0W3B1B1B1C").mangledNameHash());
    ASSERT_EQ(0x000003f2u, ImmutableString("textureProjGradOffset(0I3B2B2B2C").mangledNameHash());
    ASSERT_EQ(0x00000028u, ImmutableString("textureProjGradOffset(0R3B2B2B2C").mangledNameHash());
    ASSERT_EQ(0x0000037eu, ImmutableString("textureProjGradOffset(0X3B2B2B2C").mangledNameHash());
    ASSERT_EQ(0x000000d2u, ImmutableString("textureProjGradOffset(0c3B1B1B1C").mangledNameHash());
    ASSERT_EQ(0x0000027au, ImmutableString("texture(0L1B").mangledNameHash());
    ASSERT_EQ(0x00000151u, ImmutableString("textureProj(0L2B").mangledNameHash());
    ASSERT_EQ(0x00000245u, ImmutableString("textureProj(0L3B").mangledNameHash());
    ASSERT_EQ(0x000003efu, ImmutableString("textureSize(0L0C").mangledNameHash());
    ASSERT_EQ(0x000000d6u, ImmutableString("texelFetch(0L1C0C").mangledNameHash());
    ASSERT_EQ(0x000001efu, ImmutableString("texture(0M1B").mangledNameHash());
    ASSERT_EQ(0x00000396u, ImmutableString("textureProj(0M2B").mangledNameHash());
    ASSERT_EQ(0x00000230u, ImmutableString("textureProj(0M3B").mangledNameHash());
    ASSERT_EQ(0x000002cbu, ImmutableString("rgb_2_yuv(2B0G").mangledNameHash());
    ASSERT_EQ(0x0000012eu, ImmutableString("yuv_2_rgb(2B0G").mangledNameHash());
    ASSERT_EQ(0x000001e2u, ImmutableString("textureSize(0M0C").mangledNameHash());
    ASSERT_EQ(0x000001eau, ImmutableString("texelFetch(0M1C0C").mangledNameHash());
    ASSERT_EQ(0x00000370u, ImmutableString("gl_MaxVertexOutputVectors").mangledNameHash());
    ASSERT_EQ(0x00000194u, ImmutableString("gl_MaxFragmentInputVectors").mangledNameHash());
    ASSERT_EQ(0x0000025du, ImmutableString("gl_MinProgramTexelOffset").mangledNameHash());
    ASSERT_EQ(0x000002a1u, ImmutableString("gl_MaxProgramTexelOffset").mangledNameHash());
    ASSERT_EQ(0x0000015au, ImmutableString("textureOffset(0H1B1C0B").mangledNameHash());
    ASSERT_EQ(0x00000076u, ImmutableString("textureOffset(0Q1B1C0B").mangledNameHash());
    ASSERT_EQ(0x00000362u, ImmutableString("textureOffset(0W1B1C0B").mangledNameHash());
    ASSERT_EQ(0x000001e6u, ImmutableString("textureOffset(0I2B2C0B").mangledNameHash());
    ASSERT_EQ(0x000001f6u, ImmutableString("textureOffset(0R2B2C0B").mangledNameHash());
    ASSERT_EQ(0x00000133u, ImmutableString("textureOffset(0X2B2C0B").mangledNameHash());
    ASSERT_EQ(0x000002a2u, ImmutableString("textureOffset(0c2B1C0B").mangledNameHash());
    ASSERT_EQ(0x00000012u, ImmutableString("textureOffset(0K2B1C0B").mangledNameHash());
    ASSERT_EQ(0x00000309u, ImmutableString("textureOffset(0T2B1C0B").mangledNameHash());
    ASSERT_EQ(0x000002dcu, ImmutableString("textureOffset(0Z2B1C0B").mangledNameHash());
    ASSERT_EQ(0x0000004cu, ImmutableString("textureProjOffset(0H2B1C0B").mangledNameHash());
    ASSERT_EQ(0x00000091u, ImmutableString("textureProjOffset(0Q2B1C0B").mangledNameHash());
    ASSERT_EQ(0x00000092u, ImmutableString("textureProjOffset(0W2B1C0B").mangledNameHash());
    ASSERT_EQ(0x000000a0u, ImmutableString("textureProjOffset(0H3B1C0B").mangledNameHash());
    ASSERT_EQ(0x0000021cu, ImmutableString("textureProjOffset(0Q3B1C0B").mangledNameHash());
    ASSERT_EQ(0x000000c8u, ImmutableString("textureProjOffset(0W3B1C0B").mangledNameHash());
    ASSERT_EQ(0x000002efu, ImmutableString("textureProjOffset(0I3B2C0B").mangledNameHash());
    ASSERT_EQ(0x0000023eu, ImmutableString("textureProjOffset(0R3B2C0B").mangledNameHash());
    ASSERT_EQ(0x00000293u, ImmutableString("textureProjOffset(0X3B2C0B").mangledNameHash());
    ASSERT_EQ(0x000002beu, ImmutableString("textureProjOffset(0c3B1C0B").mangledNameHash());
    ASSERT_EQ(0x0000003au, ImmutableString("texture(0H1B0B").mangledNameHash());
    ASSERT_EQ(0x00000144u, ImmutableString("texture(0Q1B0B").mangledNameHash());
    ASSERT_EQ(0x000001dau, ImmutableString("texture(0W1B0B").mangledNameHash());
    ASSERT_EQ(0x0000015bu, ImmutableString("texture(0I2B0B").mangledNameHash());
    ASSERT_EQ(0x00000146u, ImmutableString("texture(0R2B0B").mangledNameHash());
    ASSERT_EQ(0x0000038bu, ImmutableString("texture(0X2B0B").mangledNameHash());
    ASSERT_EQ(0x00000141u, ImmutableString("texture(0J2B0B").mangledNameHash());
    ASSERT_EQ(0x000000cau, ImmutableString("texture(0S2B0B").mangledNameHash());
    ASSERT_EQ(0x000003eau, ImmutableString("texture(0Y2B0B").mangledNameHash());
    ASSERT_EQ(0x00000399u, ImmutableString("texture(0K2B0B").mangledNameHash());
    ASSERT_EQ(0x00000298u, ImmutableString("texture(0T2B0B").mangledNameHash());
    ASSERT_EQ(0x0000034au, ImmutableString("texture(0Z2B0B").mangledNameHash());
    ASSERT_EQ(0x00000324u, ImmutableString("textureProj(0H2B0B").mangledNameHash());
    ASSERT_EQ(0x00000154u, ImmutableString("textureProj(0Q2B0B").mangledNameHash());
    ASSERT_EQ(0x00000060u, ImmutableString("textureProj(0W2B0B").mangledNameHash());
    ASSERT_EQ(0x00000372u, ImmutableString("textureProj(0H3B0B").mangledNameHash());
    ASSERT_EQ(0x00000233u, ImmutableString("textureProj(0Q3B0B").mangledNameHash());
    ASSERT_EQ(0x00000099u, ImmutableString("textureProj(0W3B0B").mangledNameHash());
    ASSERT_EQ(0x0000021du, ImmutableString("textureProj(0I3B0B").mangledNameHash());
    ASSERT_EQ(0x00000202u, ImmutableString("textureProj(0R3B0B").mangledNameHash());
    ASSERT_EQ(0x00000232u, ImmutableString("textureProj(0X3B0B").mangledNameHash());
    ASSERT_EQ(0x00000127u, ImmutableString("texture(0c2B0B").mangledNameHash());
    ASSERT_EQ(0x0000029cu, ImmutableString("texture(0d3B0B").mangledNameHash());
    ASSERT_EQ(0x00000296u, ImmutableString("textureProj(0c3B0B").mangledNameHash());
    ASSERT_EQ(0x000002e9u, ImmutableString("texture(0L1B0B").mangledNameHash());
    ASSERT_EQ(0x000000beu, ImmutableString("textureProj(0L2B0B").mangledNameHash());
    ASSERT_EQ(0x0000002du, ImmutableString("textureProj(0L3B0B").mangledNameHash());
    ASSERT_EQ(0x000000c4u, ImmutableString("texture(0M1B0B").mangledNameHash());
    ASSERT_EQ(0x000003a2u, ImmutableString("textureProj(0M2B0B").mangledNameHash());
    ASSERT_EQ(0x000000b4u, ImmutableString("textureProj(0M3B0B").mangledNameHash());
    ASSERT_EQ(0x00000331u, ImmutableString("dFdx(0B").mangledNameHash());
    ASSERT_EQ(0x0000028bu, ImmutableString("dFdx(1B").mangledNameHash());
    ASSERT_EQ(0x000000cbu, ImmutableString("dFdx(2B").mangledNameHash());
    ASSERT_EQ(0x0000024au, ImmutableString("dFdx(3B").mangledNameHash());
    ASSERT_EQ(0x000003b0u, ImmutableString("dFdy(0B").mangledNameHash());
    ASSERT_EQ(0x00000064u, ImmutableString("dFdy(1B").mangledNameHash());
    ASSERT_EQ(0x0000036au, ImmutableString("dFdy(2B").mangledNameHash());
    ASSERT_EQ(0x00000206u, ImmutableString("dFdy(3B").mangledNameHash());
    ASSERT_EQ(0x000003f8u, ImmutableString("fwidth(0B").mangledNameHash());
    ASSERT_EQ(0x000000a7u, ImmutableString("fwidth(1B").mangledNameHash());
    ASSERT_EQ(0x00000308u, ImmutableString("fwidth(2B").mangledNameHash());
    ASSERT_EQ(0x00000256u, ImmutableString("fwidth(3B").mangledNameHash());
    ASSERT_EQ(0x000000f9u, ImmutableString("gl_FragDepth").mangledNameHash());
    ASSERT_EQ(0x00000043u, ImmutableString("gl_InstanceID").mangledNameHash());
    ASSERT_EQ(0x0000021eu, ImmutableString("gl_VertexID").mangledNameHash());
    ASSERT_EQ(0x00000436u, ImmutableString("gl_DrawID").mangledNameHash());
    ASSERT_EQ(0x00000311u, ImmutableString("gl_BaseVertex").mangledNameHash());
    ASSERT_EQ(0x00000009u, ImmutableString("gl_BaseInstance").mangledNameHash());
    ASSERT_EQ(0x000000fau, ImmutableString("gl_ViewID_OVR").mangledNameHash());
    ASSERT_EQ(0x00000181u, ImmutableString("texture2D(0H1B").mangledNameHash());
    ASSERT_EQ(0x00000424u, ImmutableString("texture2DProj(0H2B").mangledNameHash());
    ASSERT_EQ(0x000000d9u, ImmutableString("texture2DProj(0H3B").mangledNameHash());
    ASSERT_EQ(0x0000012fu, ImmutableString("textureCube(0J2B").mangledNameHash());
    ASSERT_EQ(0x00000354u, ImmutableString("texture2D(0L1B").mangledNameHash());
    ASSERT_EQ(0x000000d5u, ImmutableString("texture2DProj(0L2B").mangledNameHash());
    ASSERT_EQ(0x0000025bu, ImmutableString("texture2DProj(0L3B").mangledNameHash());
    ASSERT_EQ(0x0000034bu, ImmutableString("texture2DRect(0N1B").mangledNameHash());
    ASSERT_EQ(0x00000415u, ImmutableString("texture2DRectProj(0N2B").mangledNameHash());
    ASSERT_EQ(0x00000158u, ImmutableString("texture2DRectProj(0N3B").mangledNameHash());
    ASSERT_EQ(0x00000320u, ImmutableString("texture2DGradEXT(0H1B1B1B").mangledNameHash());
    ASSERT_EQ(0x00000414u, ImmutableString("texture2DProjGradEXT(0H2B1B1B").mangledNameHash());
    ASSERT_EQ(0x0000021fu, ImmutableString("texture2DProjGradEXT(0H3B1B1B").mangledNameHash());
    ASSERT_EQ(0x000001f1u, ImmutableString("textureCubeGradEXT(0J2B2B2B").mangledNameHash());
    ASSERT_EQ(0x0000028au, ImmutableString("gl_MaxVaryingVectors").mangledNameHash());
    ASSERT_EQ(0x000003a4u, ImmutableString("gl_FragData").mangledNameHash());
    ASSERT_EQ(0x00000059u, ImmutableString("gl_SecondaryFragDataEXT").mangledNameHash());
    ASSERT_EQ(0x000001c4u, ImmutableString("gl_FragDepthEXT").mangledNameHash());
    ASSERT_EQ(0x0000002au, ImmutableString("texture2D(0H1B0B").mangledNameHash());
    ASSERT_EQ(0x0000009au, ImmutableString("texture2DProj(0H2B0B").mangledNameHash());
    ASSERT_EQ(0x00000215u, ImmutableString("texture2DProj(0H3B0B").mangledNameHash());
    ASSERT_EQ(0x0000037du, ImmutableString("textureCube(0J2B0B").mangledNameHash());
    ASSERT_EQ(0x00000392u, ImmutableString("texture2DLodEXT(0H1B0B").mangledNameHash());
    ASSERT_EQ(0x00000097u, ImmutableString("texture2DProjLodEXT(0H2B0B").mangledNameHash());
    ASSERT_EQ(0x00000044u, ImmutableString("texture2DProjLodEXT(0H3B0B").mangledNameHash());
    ASSERT_EQ(0x00000328u, ImmutableString("textureCubeLodEXT(0J2B0B").mangledNameHash());
    ASSERT_EQ(0x00000208u, ImmutableString("texture3D(0I2B").mangledNameHash());
    ASSERT_EQ(0x000000bdu, ImmutableString("texture3D(0I2B0B").mangledNameHash());
    ASSERT_EQ(0x00000186u, ImmutableString("texture3DProj(0I3B").mangledNameHash());
    ASSERT_EQ(0x00000126u, ImmutableString("texture3DProj(0I3B0B").mangledNameHash());
    ASSERT_EQ(0x00000277u, ImmutableString("texture3DLod(0I2B0B").mangledNameHash());
    ASSERT_EQ(0x0000026bu, ImmutableString("texture3DProjLod(0I3B0B").mangledNameHash());
    ASSERT_EQ(0x0000009bu, ImmutableString("gl_FragColor").mangledNameHash());
    ASSERT_EQ(0x00000010u, ImmutableString("texture2DLod(0H1B0B").mangledNameHash());
    ASSERT_EQ(0x000003bau, ImmutableString("texture2DProjLod(0H2B0B").mangledNameHash());
    ASSERT_EQ(0x00000285u, ImmutableString("texture2DProjLod(0H3B0B").mangledNameHash());
    ASSERT_EQ(0x000003b4u, ImmutableString("textureCubeLod(0J2B0B").mangledNameHash());
    ASSERT_EQ(0x00000431u, ImmutableString("gl_SecondaryFragColorEXT").mangledNameHash());
    ASSERT_EQ(0x000000ecu, ImmutableString("gl_LastFragData").mangledNameHash());
    ASSERT_EQ(0x00000389u, ImmutableString("gl_LastFragColor").mangledNameHash());
    ASSERT_EQ(0x00000377u, ImmutableString("gl_LastFragColorARM").mangledNameHash());
    ASSERT_EQ(0x00000409u, ImmutableString("radians(0B").mangledNameHash());
    ASSERT_EQ(0x0000013eu, ImmutableString("radians(1B").mangledNameHash());
    ASSERT_EQ(0x000001b7u, ImmutableString("radians(2B").mangledNameHash());
    ASSERT_EQ(0x00000314u, ImmutableString("radians(3B").mangledNameHash());
    ASSERT_EQ(0x000003a3u, ImmutableString("degrees(0B").mangledNameHash());
    ASSERT_EQ(0x00000240u, ImmutableString("degrees(1B").mangledNameHash());
    ASSERT_EQ(0x0000014du, ImmutableString("degrees(2B").mangledNameHash());
    ASSERT_EQ(0x0000040du, ImmutableString("degrees(3B").mangledNameHash());
    ASSERT_EQ(0x00000214u, ImmutableString("sin(0B").mangledNameHash());
    ASSERT_EQ(0x000002f1u, ImmutableString("sin(1B").mangledNameHash());
    ASSERT_EQ(0x000003d8u, ImmutableString("sin(2B").mangledNameHash());
    ASSERT_EQ(0x0000008eu, ImmutableString("sin(3B").mangledNameHash());
    ASSERT_EQ(0x000003ccu, ImmutableString("cos(0B").mangledNameHash());
    ASSERT_EQ(0x000002e7u, ImmutableString("cos(1B").mangledNameHash());
    ASSERT_EQ(0x00000209u, ImmutableString("cos(2B").mangledNameHash());
    ASSERT_EQ(0x0000010eu, ImmutableString("cos(3B").mangledNameHash());
    ASSERT_EQ(0x0000018du, ImmutableString("tan(0B").mangledNameHash());
    ASSERT_EQ(0x00000006u, ImmutableString("tan(1B").mangledNameHash());
    ASSERT_EQ(0x000003e0u, ImmutableString("tan(2B").mangledNameHash());
    ASSERT_EQ(0x00000276u, ImmutableString("tan(3B").mangledNameHash());
    ASSERT_EQ(0x0000040eu, ImmutableString("asin(0B").mangledNameHash());
    ASSERT_EQ(0x0000031cu, ImmutableString("asin(1B").mangledNameHash());
    ASSERT_EQ(0x00000241u, ImmutableString("asin(2B").mangledNameHash());
    ASSERT_EQ(0x00000156u, ImmutableString("asin(3B").mangledNameHash());
    ASSERT_EQ(0x00000096u, ImmutableString("acos(0B").mangledNameHash());
    ASSERT_EQ(0x00000212u, ImmutableString("acos(1B").mangledNameHash());
    ASSERT_EQ(0x00000275u, ImmutableString("acos(2B").mangledNameHash());
    ASSERT_EQ(0x000003dau, ImmutableString("acos(3B").mangledNameHash());
    ASSERT_EQ(0x0000039fu, ImmutableString("atan(0B0B").mangledNameHash());
    ASSERT_EQ(0x000001c0u, ImmutableString("atan(1B1B").mangledNameHash());
    ASSERT_EQ(0x000002c5u, ImmutableString("atan(2B2B").mangledNameHash());
    ASSERT_EQ(0x00000334u, ImmutableString("atan(3B3B").mangledNameHash());
    ASSERT_EQ(0x00000172u, ImmutableString("atan(0B").mangledNameHash());
    ASSERT_EQ(0x0000005du, ImmutableString("atan(1B").mangledNameHash());
    ASSERT_EQ(0x0000033du, ImmutableString("atan(2B").mangledNameHash());
    ASSERT_EQ(0x0000007du, ImmutableString("atan(3B").mangledNameHash());
    ASSERT_EQ(0x00000330u, ImmutableString("pow(0B0B").mangledNameHash());
    ASSERT_EQ(0x000000d1u, ImmutableString("pow(1B1B").mangledNameHash());
    ASSERT_EQ(0x0000035cu, ImmutableString("pow(2B2B").mangledNameHash());
    ASSERT_EQ(0x0000035fu, ImmutableString("pow(3B3B").mangledNameHash());
    ASSERT_EQ(0x000003f6u, ImmutableString("exp(0B").mangledNameHash());
    ASSERT_EQ(0x0000028eu, ImmutableString("exp(1B").mangledNameHash());
    ASSERT_EQ(0x000001e5u, ImmutableString("exp(2B").mangledNameHash());
    ASSERT_EQ(0x00000188u, ImmutableString("exp(3B").mangledNameHash());
    ASSERT_EQ(0x000002ebu, ImmutableString("log(0B").mangledNameHash());
    ASSERT_EQ(0x000003ceu, ImmutableString("log(1B").mangledNameHash());
    ASSERT_EQ(0x000002fau, ImmutableString("log(2B").mangledNameHash());
    ASSERT_EQ(0x00000178u, ImmutableString("log(3B").mangledNameHash());
    ASSERT_EQ(0x000002c8u, ImmutableString("exp2(0B").mangledNameHash());
    ASSERT_EQ(0x000001deu, ImmutableString("exp2(1B").mangledNameHash());
    ASSERT_EQ(0x000000e6u, ImmutableString("exp2(2B").mangledNameHash());
    ASSERT_EQ(0x00000439u, ImmutableString("exp2(3B").mangledNameHash());
    ASSERT_EQ(0x000001d5u, ImmutableString("log2(0B").mangledNameHash());
    ASSERT_EQ(0x000002bbu, ImmutableString("log2(1B").mangledNameHash());
    ASSERT_EQ(0x00000426u, ImmutableString("log2(2B").mangledNameHash());
    ASSERT_EQ(0x000000deu, ImmutableString("log2(3B").mangledNameHash());
    ASSERT_EQ(0x00000421u, ImmutableString("sqrt(0B").mangledNameHash());
    ASSERT_EQ(0x000000dau, ImmutableString("sqrt(1B").mangledNameHash());
    ASSERT_EQ(0x000001cfu, ImmutableString("sqrt(2B").mangledNameHash());
    ASSERT_EQ(0x000002b8u, ImmutableString("sqrt(3B").mangledNameHash());
    ASSERT_EQ(0x00000199u, ImmutableString("inversesqrt(0B").mangledNameHash());
    ASSERT_EQ(0x00000102u, ImmutableString("inversesqrt(1B").mangledNameHash());
    ASSERT_EQ(0x00000171u, ImmutableString("inversesqrt(2B").mangledNameHash());
    ASSERT_EQ(0x000002e1u, ImmutableString("inversesqrt(3B").mangledNameHash());
    ASSERT_EQ(0x000003feu, ImmutableString("abs(0B").mangledNameHash());
    ASSERT_EQ(0x0000013du, ImmutableString("abs(1B").mangledNameHash());
    ASSERT_EQ(0x0000022du, ImmutableString("abs(2B").mangledNameHash());
    ASSERT_EQ(0x0000039du, ImmutableString("abs(3B").mangledNameHash());
    ASSERT_EQ(0x00000237u, ImmutableString("sign(0B").mangledNameHash());
    ASSERT_EQ(0x00000417u, ImmutableString("sign(1B").mangledNameHash());
    ASSERT_EQ(0x00000326u, ImmutableString("sign(2B").mangledNameHash());
    ASSERT_EQ(0x000001ddu, ImmutableString("sign(3B").mangledNameHash());
    ASSERT_EQ(0x00000391u, ImmutableString("floor(0B").mangledNameHash());
    ASSERT_EQ(0x0000004fu, ImmutableString("floor(1B").mangledNameHash());
    ASSERT_EQ(0x00000136u, ImmutableString("floor(2B").mangledNameHash());
    ASSERT_EQ(0x00000229u, ImmutableString("floor(3B").mangledNameHash());
    ASSERT_EQ(0x0000041au, ImmutableString("ceil(0B").mangledNameHash());
    ASSERT_EQ(0x000002eau, ImmutableString("ceil(1B").mangledNameHash());
    ASSERT_EQ(0x00000182u, ImmutableString("ceil(2B").mangledNameHash());
    ASSERT_EQ(0x00000085u, ImmutableString("ceil(3B").mangledNameHash());
    ASSERT_EQ(0x0000029au, ImmutableString("fract(0B").mangledNameHash());
    ASSERT_EQ(0x00000373u, ImmutableString("fract(1B").mangledNameHash());
    ASSERT_EQ(0x000000aeu, ImmutableString("fract(2B").mangledNameHash());
    ASSERT_EQ(0x000001afu, ImmutableString("fract(3B").mangledNameHash());
    ASSERT_EQ(0x000000b1u, ImmutableString("mod(0B0B").mangledNameHash());
    ASSERT_EQ(0x000001b2u, ImmutableString("mod(1B0B").mangledNameHash());
    ASSERT_EQ(0x0000001du, ImmutableString("mod(2B0B").mangledNameHash());
    ASSERT_EQ(0x000001eeu, ImmutableString("mod(3B0B").mangledNameHash());
    ASSERT_EQ(0x000000b2u, ImmutableString("mod(1B1B").mangledNameHash());
    ASSERT_EQ(0x00000046u, ImmutableString("mod(2B2B").mangledNameHash());
    ASSERT_EQ(0x0000035eu, ImmutableString("mod(3B3B").mangledNameHash());
    ASSERT_EQ(0x000001a7u, ImmutableString("min(0B0B").mangledNameHash());
    ASSERT_EQ(0x0000032cu, ImmutableString("min(1B0B").mangledNameHash());
    ASSERT_EQ(0x00000329u, ImmutableString("min(2B0B").mangledNameHash());
    ASSERT_EQ(0x000002c4u, ImmutableString("min(3B0B").mangledNameHash());
    ASSERT_EQ(0x00000248u, ImmutableString("min(1B1B").mangledNameHash());
    ASSERT_EQ(0x0000015du, ImmutableString("min(2B2B").mangledNameHash());
    ASSERT_EQ(0x00000429u, ImmutableString("min(3B3B").mangledNameHash());
    ASSERT_EQ(0x00000253u, ImmutableString("max(0B0B").mangledNameHash());
    ASSERT_EQ(0x00000161u, ImmutableString("max(1B0B").mangledNameHash());
    ASSERT_EQ(0x0000001bu, ImmutableString("max(2B0B").mangledNameHash());
    ASSERT_EQ(0x00000219u, ImmutableString("max(3B0B").mangledNameHash());
    ASSERT_EQ(0x00000067u, ImmutableString("max(1B1B").mangledNameHash());
    ASSERT_EQ(0x000001f8u, ImmutableString("max(2B2B").mangledNameHash());
    ASSERT_EQ(0x00000288u, ImmutableString("max(3B3B").mangledNameHash());
    ASSERT_EQ(0x000003e7u, ImmutableString("clamp(0B0B0B").mangledNameHash());
    ASSERT_EQ(0x0000007fu, ImmutableString("clamp(1B0B0B").mangledNameHash());
    ASSERT_EQ(0x000003e9u, ImmutableString("clamp(2B0B0B").mangledNameHash());
    ASSERT_EQ(0x000001fbu, ImmutableString("clamp(3B0B0B").mangledNameHash());
    ASSERT_EQ(0x00000313u, ImmutableString("clamp(1B1B1B").mangledNameHash());
    ASSERT_EQ(0x000000bau, ImmutableString("clamp(2B2B2B").mangledNameHash());
    ASSERT_EQ(0x000003cdu, ImmutableString("clamp(3B3B3B").mangledNameHash());
    ASSERT_EQ(0x0000035du, ImmutableString("mix(0B0B0B").mangledNameHash());
    ASSERT_EQ(0x00000185u, ImmutableString("mix(1B1B0B").mangledNameHash());
    ASSERT_EQ(0x0000001eu, ImmutableString("mix(2B2B0B").mangledNameHash());
    ASSERT_EQ(0x00000316u, ImmutableString("mix(3B3B0B").mangledNameHash());
    ASSERT_EQ(0x00000272u, ImmutableString("mix(1B1B1B").mangledNameHash());
    ASSERT_EQ(0x00000205u, ImmutableString("mix(2B2B2B").mangledNameHash());
    ASSERT_EQ(0x000001bfu, ImmutableString("mix(3B3B3B").mangledNameHash());
    ASSERT_EQ(0x00000266u, ImmutableString("step(0B0B").mangledNameHash());
    ASSERT_EQ(0x000002aeu, ImmutableString("step(1B1B").mangledNameHash());
    ASSERT_EQ(0x0000032fu, ImmutableString("step(2B2B").mangledNameHash());
    ASSERT_EQ(0x00000428u, ImmutableString("step(3B3B").mangledNameHash());
    ASSERT_EQ(0x0000006au, ImmutableString("step(0B1B").mangledNameHash());
    ASSERT_EQ(0x00000167u, ImmutableString("step(0B2B").mangledNameHash());
    ASSERT_EQ(0x000002e0u, ImmutableString("step(0B3B").mangledNameHash());
    ASSERT_EQ(0x000001d0u, ImmutableString("smoothstep(0B0B0B").mangledNameHash());
    ASSERT_EQ(0x00000287u, ImmutableString("smoothstep(1B1B1B").mangledNameHash());
    ASSERT_EQ(0x0000006bu, ImmutableString("smoothstep(2B2B2B").mangledNameHash());
    ASSERT_EQ(0x000000e2u, ImmutableString("smoothstep(3B3B3B").mangledNameHash());
    ASSERT_EQ(0x000002b7u, ImmutableString("smoothstep(0B0B1B").mangledNameHash());
    ASSERT_EQ(0x00000425u, ImmutableString("smoothstep(0B0B2B").mangledNameHash());
    ASSERT_EQ(0x000000dbu, ImmutableString("smoothstep(0B0B3B").mangledNameHash());
    ASSERT_EQ(0x00000400u, ImmutableString("length(0B").mangledNameHash());
    ASSERT_EQ(0x0000013bu, ImmutableString("length(1B").mangledNameHash());
    ASSERT_EQ(0x00000004u, ImmutableString("length(2B").mangledNameHash());
    ASSERT_EQ(0x00000393u, ImmutableString("length(3B").mangledNameHash());
    ASSERT_EQ(0x000003d1u, ImmutableString("distance(0B0B").mangledNameHash());
    ASSERT_EQ(0x000003c9u, ImmutableString("distance(1B1B").mangledNameHash());
    ASSERT_EQ(0x000001d6u, ImmutableString("distance(2B2B").mangledNameHash());
    ASSERT_EQ(0x000003f5u, ImmutableString("distance(3B3B").mangledNameHash());
    ASSERT_EQ(0x0000030au, ImmutableString("dot(0B0B").mangledNameHash());
    ASSERT_EQ(0x00000015u, ImmutableString("dot(1B1B").mangledNameHash());
    ASSERT_EQ(0x00000236u, ImmutableString("dot(2B2B").mangledNameHash());
    ASSERT_EQ(0x00000068u, ImmutableString("dot(3B3B").mangledNameHash());
    ASSERT_EQ(0x00000036u, ImmutableString("cross(2B2B").mangledNameHash());
    ASSERT_EQ(0x000001aau, ImmutableString("normalize(0B").mangledNameHash());
    ASSERT_EQ(0x000001b6u, ImmutableString("normalize(1B").mangledNameHash());
    ASSERT_EQ(0x00000150u, ImmutableString("normalize(2B").mangledNameHash());
    ASSERT_EQ(0x00000401u, ImmutableString("normalize(3B").mangledNameHash());
    ASSERT_EQ(0x000003d7u, ImmutableString("faceforward(0B0B0B").mangledNameHash());
    ASSERT_EQ(0x00000021u, ImmutableString("faceforward(1B1B1B").mangledNameHash());
    ASSERT_EQ(0x00000023u, ImmutableString("faceforward(2B2B2B").mangledNameHash());
    ASSERT_EQ(0x00000116u, ImmutableString("faceforward(3B3B3B").mangledNameHash());
    ASSERT_EQ(0x000003fau, ImmutableString("reflect(0B0B").mangledNameHash());
    ASSERT_EQ(0x00000363u, ImmutableString("reflect(1B1B").mangledNameHash());
    ASSERT_EQ(0x0000025eu, ImmutableString("reflect(2B2B").mangledNameHash());
    ASSERT_EQ(0x00000267u, ImmutableString("reflect(3B3B").mangledNameHash());
    ASSERT_EQ(0x00000101u, ImmutableString("refract(0B0B0B").mangledNameHash());
    ASSERT_EQ(0x000001dfu, ImmutableString("refract(1B1B0B").mangledNameHash());
    ASSERT_EQ(0x00000306u, ImmutableString("refract(2B2B0B").mangledNameHash());
    ASSERT_EQ(0x0000029du, ImmutableString("refract(3B3B0B").mangledNameHash());
    ASSERT_EQ(0x00000258u, ImmutableString("matrixCompMult(5B5B").mangledNameHash());
    ASSERT_EQ(0x000000b0u, ImmutableString("matrixCompMult(ABAB").mangledNameHash());
    ASSERT_EQ(0x00000379u, ImmutableString("matrixCompMult(FBFB").mangledNameHash());
    ASSERT_EQ(0x0000009du, ImmutableString("lessThan(1B1B").mangledNameHash());
    ASSERT_EQ(0x0000009fu, ImmutableString("lessThan(2B2B").mangledNameHash());
    ASSERT_EQ(0x00000270u, ImmutableString("lessThan(3B3B").mangledNameHash());
    ASSERT_EQ(0x000003e2u, ImmutableString("lessThan(1C1C").mangledNameHash());
    ASSERT_EQ(0x0000016cu, ImmutableString("lessThan(2C2C").mangledNameHash());
    ASSERT_EQ(0x00000269u, ImmutableString("lessThan(3C3C").mangledNameHash());
    ASSERT_EQ(0x00000259u, ImmutableString("lessThanEqual(1B1B").mangledNameHash());
    ASSERT_EQ(0x00000020u, ImmutableString("lessThanEqual(2B2B").mangledNameHash());
    ASSERT_EQ(0x00000388u, ImmutableString("lessThanEqual(3B3B").mangledNameHash());
    ASSERT_EQ(0x000001cdu, ImmutableString("lessThanEqual(1C1C").mangledNameHash());
    ASSERT_EQ(0x000000e7u, ImmutableString("lessThanEqual(2C2C").mangledNameHash());
    ASSERT_EQ(0x0000038du, ImmutableString("lessThanEqual(3C3C").mangledNameHash());
    ASSERT_EQ(0x000001fau, ImmutableString("greaterThan(1B1B").mangledNameHash());
    ASSERT_EQ(0x0000025fu, ImmutableString("greaterThan(2B2B").mangledNameHash());
    ASSERT_EQ(0x0000033bu, ImmutableString("greaterThan(3B3B").mangledNameHash());
    ASSERT_EQ(0x00000289u, ImmutableString("greaterThan(1C1C").mangledNameHash());
    ASSERT_EQ(0x00000430u, ImmutableString("greaterThan(2C2C").mangledNameHash());
    ASSERT_EQ(0x000000f2u, ImmutableString("greaterThan(3C3C").mangledNameHash());
    ASSERT_EQ(0x00000100u, ImmutableString("greaterThanEqual(1B1B").mangledNameHash());
    ASSERT_EQ(0x00000325u, ImmutableString("greaterThanEqual(2B2B").mangledNameHash());
    ASSERT_EQ(0x00000110u, ImmutableString("greaterThanEqual(3B3B").mangledNameHash());
    ASSERT_EQ(0x00000192u, ImmutableString("greaterThanEqual(1C1C").mangledNameHash());
    ASSERT_EQ(0x000000adu, ImmutableString("greaterThanEqual(2C2C").mangledNameHash());
    ASSERT_EQ(0x000000f6u, ImmutableString("greaterThanEqual(3C3C").mangledNameHash());
    ASSERT_EQ(0x00000339u, ImmutableString("equal(1B1B").mangledNameHash());
    ASSERT_EQ(0x00000340u, ImmutableString("equal(2B2B").mangledNameHash());
    ASSERT_EQ(0x000000ebu, ImmutableString("equal(3B3B").mangledNameHash());
    ASSERT_EQ(0x000002bau, ImmutableString("equal(1C1C").mangledNameHash());
    ASSERT_EQ(0x00000039u, ImmutableString("equal(2C2C").mangledNameHash());
    ASSERT_EQ(0x00000008u, ImmutableString("equal(3C3C").mangledNameHash());
    ASSERT_EQ(0x00000433u, ImmutableString("equal(1E1E").mangledNameHash());
    ASSERT_EQ(0x00000142u, ImmutableString("equal(2E2E").mangledNameHash());
    ASSERT_EQ(0x00000251u, ImmutableString("equal(3E3E").mangledNameHash());
    ASSERT_EQ(0x0000028cu, ImmutableString("notEqual(1B1B").mangledNameHash());
    ASSERT_EQ(0x00000074u, ImmutableString("notEqual(2B2B").mangledNameHash());
    ASSERT_EQ(0x000002acu, ImmutableString("notEqual(3B3B").mangledNameHash());
    ASSERT_EQ(0x0000031eu, ImmutableString("notEqual(1C1C").mangledNameHash());
    ASSERT_EQ(0x000000e5u, ImmutableString("notEqual(2C2C").mangledNameHash());
    ASSERT_EQ(0x000002d3u, ImmutableString("notEqual(3C3C").mangledNameHash());
    ASSERT_EQ(0x00000084u, ImmutableString("notEqual(1E1E").mangledNameHash());
    ASSERT_EQ(0x00000350u, ImmutableString("notEqual(2E2E").mangledNameHash());
    ASSERT_EQ(0x0000019eu, ImmutableString("notEqual(3E3E").mangledNameHash());
    ASSERT_EQ(0x000001c2u, ImmutableString("any(1E").mangledNameHash());
    ASSERT_EQ(0x000002a6u, ImmutableString("any(2E").mangledNameHash());
    ASSERT_EQ(0x00000384u, ImmutableString("any(3E").mangledNameHash());
    ASSERT_EQ(0x00000107u, ImmutableString("all(1E").mangledNameHash());
    ASSERT_EQ(0x000001b8u, ImmutableString("all(2E").mangledNameHash());
    ASSERT_EQ(0x000000b8u, ImmutableString("all(3E").mangledNameHash());
    ASSERT_EQ(0x00000347u, ImmutableString("not(1E").mangledNameHash());
    ASSERT_EQ(0x00000295u, ImmutableString("not(2E").mangledNameHash());
    ASSERT_EQ(0x0000011bu, ImmutableString("not(3E").mangledNameHash());
    ASSERT_EQ(0x000001b0u, ImmutableString("gl_DepthRangeParameters").mangledNameHash());
    ASSERT_EQ(0x000003a6u, ImmutableString("gl_DepthRange").mangledNameHash());
    ASSERT_EQ(0x0000023du, ImmutableString("gl_MaxVertexAttribs").mangledNameHash());
    ASSERT_EQ(0x0000015fu, ImmutableString("gl_MaxVertexUniformVectors").mangledNameHash());
    ASSERT_EQ(0x0000034cu, ImmutableString("gl_MaxVertexTextureImageUnits").mangledNameHash());
    ASSERT_EQ(0x000001acu, ImmutableString("gl_MaxCombinedTextureImageUnits").mangledNameHash());
    ASSERT_EQ(0x00000135u, ImmutableString("gl_MaxTextureImageUnits").mangledNameHash());
    ASSERT_EQ(0x0000034du, ImmutableString("gl_MaxFragmentUniformVectors").mangledNameHash());
    ASSERT_EQ(0x000000e9u, ImmutableString("gl_MaxDrawBuffers").mangledNameHash());
    ASSERT_EQ(0x000000a9u, ImmutableString("gl_MaxDualSourceDrawBuffersEXT").mangledNameHash());
    ASSERT_EQ(0x000000c9u, ImmutableString("gl_FragCoord").mangledNameHash());
    ASSERT_EQ(0x00000352u, ImmutableString("gl_FrontFacing").mangledNameHash());
    ASSERT_EQ(0x00000165u, ImmutableString("gl_PointCoord").mangledNameHash());
    ASSERT_EQ(0x000002ecu, ImmutableString("gl_PointSize").mangledNameHash());
}

}  // namespace sh
