Update to Rev32 headers. Part 1.

Just enough fixes to code make it build and pass tests.

Core changes:
 - Fix spelling for: NoPerspective, NonWritable, NonReadable,
 - Remove NoStaticUse, RelaxedMask

GLSL changes:
 - Fixed spelling for: InverseSqrt, FaceForward, MatrixInverse,
   SmoothStep, FindILsb, FindSMsb, FindUMsb
 - Replace Mix with IMix and FMix
 - Remove AddCarry, SubBorrow, MulExtended

Replace header OpenCLLib.h with OpenCL.std.h

TODO:
 - Regenerate the core instruction syntax table (source/opcode.inc)
 - Add test coverage for new enums and instructions.
This commit is contained in:
David Neto 2015-09-22 16:23:06 -04:00
parent e0d351b3ad
commit dbaf40718a
8 changed files with 161 additions and 156 deletions

View File

@ -28,7 +28,7 @@
#define GLSLstd450_H
const int GLSLstd450Version = 99;
const int GLSLstd450Revision = 2;
const int GLSLstd450Revision = 3;
enum GLSLstd450 {
GLSLstd450Bad = 0, // Don't use
@ -82,47 +82,44 @@ enum GLSLstd450 {
GLSLstd450FClamp = 43,
GLSLstd450UClamp = 44,
GLSLstd450SClamp = 45,
GLSLstd450Mix = 46,
GLSLstd450Step = 47,
GLSLstd450SmoothStep = 48,
GLSLstd450FMix = 46,
GLSLstd450IMix = 47,
GLSLstd450Step = 48,
GLSLstd450SmoothStep = 49,
GLSLstd450Fma = 49,
GLSLstd450Frexp = 50, // second operand needs an OpVariable to write to
GLSLstd450FrexpStruct = 51, // no OpVariable operand
GLSLstd450Ldexp = 52,
GLSLstd450Fma = 50,
GLSLstd450Frexp = 51, // second operand needs an OpVariable to write to
GLSLstd450FrexpStruct = 52, // no OpVariable operand
GLSLstd450Ldexp = 53,
GLSLstd450PackSnorm4x8 = 53,
GLSLstd450PackUnorm4x8 = 54,
GLSLstd450PackSnorm2x16 = 55,
GLSLstd450PackUnorm2x16 = 56,
GLSLstd450PackHalf2x16 = 57,
GLSLstd450PackDouble2x32 = 58,
GLSLstd450UnpackSnorm2x16 = 59,
GLSLstd450UnpackUnorm2x16 = 60,
GLSLstd450UnpackHalf2x16 = 61,
GLSLstd450UnpackSnorm4x8 = 62,
GLSLstd450UnpackUnorm4x8 = 63,
GLSLstd450UnpackDouble2x32 = 64,
GLSLstd450PackSnorm4x8 = 54,
GLSLstd450PackUnorm4x8 = 55,
GLSLstd450PackSnorm2x16 = 56,
GLSLstd450PackUnorm2x16 = 57,
GLSLstd450PackHalf2x16 = 58,
GLSLstd450PackDouble2x32 = 59,
GLSLstd450UnpackSnorm2x16 = 60,
GLSLstd450UnpackUnorm2x16 = 61,
GLSLstd450UnpackHalf2x16 = 62,
GLSLstd450UnpackSnorm4x8 = 63,
GLSLstd450UnpackUnorm4x8 = 64,
GLSLstd450UnpackDouble2x32 = 65,
GLSLstd450Length = 65,
GLSLstd450Distance = 66,
GLSLstd450Cross = 67,
GLSLstd450Normalize = 68,
GLSLstd450FaceForward = 69,
GLSLstd450Reflect = 70,
GLSLstd450Refract = 71,
GLSLstd450Length = 66,
GLSLstd450Distance = 67,
GLSLstd450Cross = 68,
GLSLstd450Normalize = 69,
GLSLstd450FaceForward = 70,
GLSLstd450Reflect = 71,
GLSLstd450Refract = 72,
GLSLstd450FindILSB = 72,
GLSLstd450FindSMSB = 73,
GLSLstd450FindUMSB = 74,
GLSLstd450FindILsb = 73,
GLSLstd450FindSMsb = 74,
GLSLstd450FindUMsb = 75,
GLSLstd450InterpolateAtCentroid = 75,
GLSLstd450InterpolateAtSample = 76,
GLSLstd450InterpolateAtOffset = 77,
GLSLstd450AddCarry = 78, // These three should move to the core instruction set
GLSLstd450SubBorrow = 79,
GLSLstd450MulExtended = 80,
GLSLstd450InterpolateAtCentroid = 76,
GLSLstd450InterpolateAtSample = 77,
GLSLstd450InterpolateAtOffset = 78,
GLSLstd450Count
};

View File

@ -25,7 +25,7 @@
// This header is automatically generated by the same tool that creates
// the Binary Section of the SPIR-V specification.
// Specification revision 31.
// Specification revision 32.
// Enumeration tokens for SPIR-V, in various styles:
// C, C++, C++11, JSON, Lua, Python
//
@ -49,7 +49,7 @@ typedef unsigned int Id;
static const unsigned int MagicNumber = 0x07230203;
static const unsigned int Version = 99;
static const unsigned int Revision = 31;
static const unsigned int Revision = 32;
static const unsigned int OpCodeMask = 0xffff;
static const unsigned int WordCountShift = 16;
@ -115,6 +115,7 @@ enum ExecutionMode {
ExecutionModeOutputTriangleStrip = 29,
ExecutionModeVecTypeHint = 30,
ExecutionModeContractionOff = 31,
ExecutionModeIndependentForwardProgress = 32,
};
enum StorageClass {
@ -127,6 +128,7 @@ enum StorageClass {
StorageClassPrivateGlobal = 6,
StorageClassFunction = 7,
StorageClassGeneric = 8,
StorageClassPushConstant = 9,
StorageClassAtomicCounter = 10,
StorageClassImage = 11,
};
@ -138,6 +140,7 @@ enum Dim {
DimCube = 3,
DimRect = 4,
DimBuffer = 5,
DimInputTarget = 6,
};
enum SamplerAddressingMode {
@ -245,6 +248,7 @@ enum ImageOperandsShift {
ImageOperandsOffsetShift = 4,
ImageOperandsConstOffsetsShift = 5,
ImageOperandsSampleShift = 6,
ImageOperandsMinLodShift = 7,
};
enum ImageOperandsMask {
@ -256,6 +260,7 @@ enum ImageOperandsMask {
ImageOperandsOffsetMask = 0x00000010,
ImageOperandsConstOffsetsMask = 0x00000020,
ImageOperandsSampleMask = 0x00000040,
ImageOperandsMinLodMask = 0x00000080,
};
enum FPFastMathModeShift {
@ -318,7 +323,7 @@ enum Decoration {
DecorationCPacked = 10,
DecorationBuiltIn = 11,
DecorationSmooth = 12,
DecorationNoperspective = 13,
DecorationNoPerspective = 13,
DecorationFlat = 14,
DecorationPatch = 15,
DecorationCentroid = 16,
@ -329,10 +334,9 @@ enum Decoration {
DecorationVolatile = 21,
DecorationConstant = 22,
DecorationCoherent = 23,
DecorationNonwritable = 24,
DecorationNonreadable = 25,
DecorationNonWritable = 24,
DecorationNonReadable = 25,
DecorationUniform = 26,
DecorationNoStaticUse = 27,
DecorationSaturatedConversion = 28,
DecorationStream = 29,
DecorationLocation = 30,
@ -347,6 +351,9 @@ enum Decoration {
DecorationFPRoundingMode = 39,
DecorationFPFastMathMode = 40,
DecorationLinkageAttributes = 41,
DecorationNoContraction = 42,
DecorationInputTargetIndex = 43,
DecorationAlignment = 44,
};
enum BuiltIn {
@ -391,6 +398,8 @@ enum BuiltIn {
BuiltInNumEnqueuedSubgroups = 39,
BuiltInSubgroupId = 40,
BuiltInSubgroupLocalInvocationId = 41,
BuiltInVertexIndex = 42,
BuiltInInstanceIndex = 43,
};
enum SelectionControlShift {
@ -431,41 +440,41 @@ enum FunctionControlMask {
};
enum MemorySemanticsShift {
MemorySemanticsRelaxedShift = 0,
MemorySemanticsSequentiallyConsistentShift = 1,
MemorySemanticsAcquireShift = 2,
MemorySemanticsReleaseShift = 3,
MemorySemanticsUniformMemoryShift = 4,
MemorySemanticsSubgroupMemoryShift = 5,
MemorySemanticsWorkgroupLocalMemoryShift = 6,
MemorySemanticsWorkgroupGlobalMemoryShift = 7,
MemorySemanticsAtomicCounterMemoryShift = 8,
MemorySemanticsImageMemoryShift = 9,
MemorySemanticsAcquireShift = 0,
MemorySemanticsReleaseShift = 1,
MemorySemanticsSequentiallyConsistentShift = 2,
MemorySemanticsUniformMemoryShift = 3,
MemorySemanticsSubgroupMemoryShift = 4,
MemorySemanticsWorkgroupLocalMemoryShift = 5,
MemorySemanticsWorkgroupGlobalMemoryShift = 6,
MemorySemanticsAtomicCounterMemoryShift = 7,
MemorySemanticsImageMemoryShift = 8,
};
enum MemorySemanticsMask {
MemorySemanticsMaskNone = 0,
MemorySemanticsRelaxedMask = 0x00000001,
MemorySemanticsSequentiallyConsistentMask = 0x00000002,
MemorySemanticsAcquireMask = 0x00000004,
MemorySemanticsReleaseMask = 0x00000008,
MemorySemanticsUniformMemoryMask = 0x00000010,
MemorySemanticsSubgroupMemoryMask = 0x00000020,
MemorySemanticsWorkgroupLocalMemoryMask = 0x00000040,
MemorySemanticsWorkgroupGlobalMemoryMask = 0x00000080,
MemorySemanticsAtomicCounterMemoryMask = 0x00000100,
MemorySemanticsImageMemoryMask = 0x00000200,
MemorySemanticsAcquireMask = 0x00000001,
MemorySemanticsReleaseMask = 0x00000002,
MemorySemanticsSequentiallyConsistentMask = 0x00000004,
MemorySemanticsUniformMemoryMask = 0x00000008,
MemorySemanticsSubgroupMemoryMask = 0x00000010,
MemorySemanticsWorkgroupLocalMemoryMask = 0x00000020,
MemorySemanticsWorkgroupGlobalMemoryMask = 0x00000040,
MemorySemanticsAtomicCounterMemoryMask = 0x00000080,
MemorySemanticsImageMemoryMask = 0x00000100,
};
enum MemoryAccessShift {
MemoryAccessVolatileShift = 0,
MemoryAccessAlignedShift = 1,
MemoryAccessNontemporalShift = 2,
};
enum MemoryAccessMask {
MemoryAccessMaskNone = 0,
MemoryAccessVolatileMask = 0x00000001,
MemoryAccessAlignedMask = 0x00000002,
MemoryAccessNontemporalMask = 0x00000004,
};
enum Scope {
@ -534,11 +543,30 @@ enum Capability {
CapabilityCullDistance = 33,
CapabilityImageCubeArray = 34,
CapabilitySampleRateShading = 35,
CapabilityImageRect = 36,
CapabilitySampledRect = 37,
CapabilityGenericPointer = 38,
CapabilityInt8 = 39,
CapabilityInputTarget = 40,
CapabilitySparseResidency = 41,
CapabilityMinLod = 42,
CapabilitySampled1D = 43,
CapabilityImage1D = 44,
CapabilitySampledCubeArray = 45,
CapabilitySampledBuffer = 46,
CapabilityImageBuffer = 47,
CapabilityImageMSArray = 48,
CapabilityAdvancedFormats = 49,
CapabilityImageQuery = 50,
CapabilityDerivativeControl = 51,
CapabilityInterpolationFunction = 52,
CapabilityTransformFeedback = 53,
};
enum Op {
OpNop = 0,
OpUndef = 1,
OpSourceContinued = 2,
OpSource = 3,
OpSourceExtension = 4,
OpName = 5,
@ -572,6 +600,7 @@ enum Op {
OpTypeReserveId = 36,
OpTypeQueue = 37,
OpTypePipe = 38,
OpTypeForwardPointer = 39,
OpConstantTrue = 41,
OpConstantFalse = 42,
OpConstant = 43,
@ -598,6 +627,7 @@ enum Op {
OpPtrAccessChain = 67,
OpArrayLength = 68,
OpGenericPtrMemSemantics = 69,
OpInBoundsPtrAccessChain = 70,
OpDecorate = 71,
OpMemberDecorate = 72,
OpDecorationGroup = 73,
@ -625,7 +655,6 @@ enum Op {
OpImageDrefGather = 97,
OpImageRead = 98,
OpImageWrite = 99,
OpImageQueryDim = 100,
OpImageQueryFormat = 101,
OpImageQueryOrder = 102,
OpImageQuerySizeLod = 103,
@ -674,7 +703,8 @@ enum Op {
OpDot = 148,
OpIAddCarry = 149,
OpISubBorrow = 150,
OpIMulExtended = 151,
OpUMulExtended = 151,
OpSMulExtended = 152,
OpAny = 154,
OpAll = 155,
OpIsNan = 156,
@ -811,16 +841,21 @@ enum Op {
OpCaptureEventProfilingInfo = 302,
OpGetDefaultQueue = 303,
OpBuildNDRange = 304,
// These are new instructions, added so we can process
// assembly tables from newer versions of doc.h.
// TODO(dneto): This hack should be removed by upgrading
// to Rev32 or later of the headers.
OpSourceContinued = 305,
OpTypeForwardPointer = 306,
OpInBoundsPtrAccessChain = 307,
OpUMulExtended = 308,
OpSMulExtended = 309,
OpImageSparseSampleImplicitLod = 305,
OpImageSparseSampleExplicitLod = 306,
OpImageSparseSampleDrefImplicitLod = 307,
OpImageSparseSampleDrefExplicitLod = 308,
OpImageSparseSampleProjImplicitLod = 309,
OpImageSparseSampleProjExplicitLod = 310,
OpImageSparseSampleProjDrefImplicitLod = 311,
OpImageSparseSampleProjDrefExplicitLod = 312,
OpImageSparseFetch = 313,
OpImageSparseGather = 314,
OpImageSparseDrefGather = 315,
OpImageSparseTexelsResident = 316,
OpNoLine = 317,
OpAtomicFlagTestAndSet = 318,
OpAtomicFlagClear = 319,
};
// Overload operator| for mask bit combining

View File

@ -30,7 +30,7 @@
#include <headers/spirv.hpp>
#include <headers/spirv_operands.hpp>
#include <headers/GLSL.std.450.h>
#include <headers/OpenCLLib.h>
#include <headers/OpenCL.std.h>
#ifdef __cplusplus
using namespace spv;

View File

@ -47,11 +47,9 @@ static const spv_ext_inst_desc_t glslStd450Entries[] = {
{GLSL450Inst1(Exp2)},
{GLSL450Inst1(Log2)},
{GLSL450Inst1(Sqrt)},
// clang-format off
{"Inversesqrt", GLSLstd450::GLSLstd450InverseSqrt, {SPV_OPERAND_TYPE_ID}},
{GLSL450Inst1(InverseSqrt)},
{GLSL450Inst1(Determinant)},
{"Inverse", GLSLstd450::GLSLstd450MatrixInverse, {SPV_OPERAND_TYPE_ID}},
// clang-format on
{GLSL450Inst1(MatrixInverse)},
{GLSL450Inst2(Modf)},
{GLSL450Inst1(ModfStruct)},
{GLSL450Inst2(FMin)},
@ -63,11 +61,10 @@ static const spv_ext_inst_desc_t glslStd450Entries[] = {
{GLSL450Inst3(FClamp)},
{GLSL450Inst3(UClamp)},
{GLSL450Inst3(SClamp)},
{GLSL450Inst3(Mix)},
{GLSL450Inst3(FMix)},
{GLSL450Inst3(IMix)},
{GLSL450Inst2(Step)},
// clang-format off
{"Smoothstep", GLSLstd450::GLSLstd450SmoothStep, {SPV_OPERAND_TYPE_ID, SPV_OPERAND_TYPE_ID, SPV_OPERAND_TYPE_ID}},
// clang-format on
{GLSL450Inst3(SmoothStep)},
{GLSL450Inst3(Fma)},
{GLSL450Inst2(Frexp)},
{GLSL450Inst1(FrexpStruct)},
@ -88,24 +85,15 @@ static const spv_ext_inst_desc_t glslStd450Entries[] = {
{GLSL450Inst2(Distance)},
{GLSL450Inst2(Cross)},
{GLSL450Inst1(Normalize)},
// clang-format off
{"Faceforward", GLSLstd450::GLSLstd450FaceForward, {SPV_OPERAND_TYPE_ID, SPV_OPERAND_TYPE_ID, SPV_OPERAND_TYPE_ID}},
// clang-format on
{GLSL450Inst3(FaceForward)},
{GLSL450Inst2(Reflect)},
{GLSL450Inst3(Refract)},
// clang-format off
{"FindILsb", GLSLstd450::GLSLstd450FindILSB, {SPV_OPERAND_TYPE_ID}},
{"FindSMsb", GLSLstd450::GLSLstd450FindSMSB, {SPV_OPERAND_TYPE_ID}},
{"FindUMsb", GLSLstd450::GLSLstd450FindUMSB, {SPV_OPERAND_TYPE_ID}},
// clang-format on
{GLSL450Inst1(FindILsb)},
{GLSL450Inst1(FindSMsb)},
{GLSL450Inst1(FindUMsb)},
{GLSL450Inst1(InterpolateAtCentroid)},
{GLSL450Inst2(InterpolateAtSample)},
{GLSL450Inst2(InterpolateAtOffset)},
// clang-format off
{"UaddCarry", GLSLstd450::GLSLstd450AddCarry, {SPV_OPERAND_TYPE_ID, SPV_OPERAND_TYPE_ID, SPV_OPERAND_TYPE_ID}},
{"UsubBorrow", GLSLstd450::GLSLstd450SubBorrow, {SPV_OPERAND_TYPE_ID, SPV_OPERAND_TYPE_ID, SPV_OPERAND_TYPE_ID}},
{"UmulExtended", GLSLstd450::GLSLstd450MulExtended, { SPV_OPERAND_TYPE_ID, SPV_OPERAND_TYPE_ID, SPV_OPERAND_TYPE_ID, SPV_OPERAND_TYPE_ID}},
// clang-format on
};
static const spv_ext_inst_desc_t openclStd12Entries[] = {

View File

@ -689,8 +689,8 @@ static const spv_operand_desc_t decorationEntries[] = {
SPV_OPCODE_FLAGS_CAPABILITIES,
CapabilityShader,
{SPV_OPERAND_TYPE_NONE}},
{"Noperspective",
DecorationNoperspective,
{"NoPerspective",
DecorationNoPerspective,
SPV_OPCODE_FLAGS_CAPABILITIES,
CapabilityShader,
{SPV_OPERAND_TYPE_NONE}},
@ -744,13 +744,13 @@ static const spv_operand_desc_t decorationEntries[] = {
SPV_OPCODE_FLAGS_NONE,
0,
{SPV_OPERAND_TYPE_NONE}},
{"Nonwritable",
DecorationNonwritable,
{"NonWritable",
DecorationNonWritable,
SPV_OPCODE_FLAGS_NONE,
0,
{SPV_OPERAND_TYPE_NONE}},
{"Nonreadable",
DecorationNonreadable,
{"NonReadable",
DecorationNonReadable,
SPV_OPCODE_FLAGS_NONE,
0,
{SPV_OPERAND_TYPE_NONE}},
@ -759,11 +759,6 @@ static const spv_operand_desc_t decorationEntries[] = {
SPV_OPCODE_FLAGS_CAPABILITIES,
CapabilityShader,
{SPV_OPERAND_TYPE_NONE}},
{"NoStaticUse",
DecorationNoStaticUse,
SPV_OPCODE_FLAGS_NONE,
0,
{SPV_OPERAND_TYPE_NONE}},
{"SaturatedConversion",
DecorationSaturatedConversion,
SPV_OPCODE_FLAGS_CAPABILITIES,
@ -1114,11 +1109,6 @@ static const spv_operand_desc_t memorySemanticsEntries[] = {
SPV_OPCODE_FLAGS_NONE,
0,
{SPV_OPERAND_TYPE_NONE}},
{"Relaxed",
MemorySemanticsRelaxedMask,
SPV_OPCODE_FLAGS_NONE,
0,
{SPV_OPERAND_TYPE_NONE}},
{"SequentiallyConsistent",
MemorySemanticsSequentiallyConsistentMask,
SPV_OPCODE_FLAGS_NONE,

View File

@ -169,9 +169,9 @@ INSTANTIATE_TEST_CASE_P(
{kF32Type, kF32Const, "%4", "Exp2", "%5", 29, 6, {5}},
{kF32Type, kF32Const, "%4", "Log2", "%5", 30, 6, {5}},
{kF32Type, kF32Const, "%4", "Sqrt", "%5", 31, 6, {5}},
{kF32Type, kF32Const, "%4", "Inversesqrt", "%5", 32, 6, {5}},
{kF32Type, kF32Const, "%4", "InverseSqrt", "%5", 32, 6, {5}},
{kF32Type, kF32Const, "%4", "Determinant", "%5", 33, 6, {5}},
{kF32Type, kF32Const, "%4", "Inverse", "%5", 34, 6, {5}},
{kF32Type, kF32Const, "%4", "MatrixInverse", "%5", 34, 6, {5}},
{kF32Type, kF32Const, "%4", "Modf", "%5 %5", 35, 7, {5, 5}},
{kF32Type, kF32Const, "%4", "ModfStruct", "%5", 36, 6, {5}},
{kF32Type, kF32Const, "%4", "FMin", "%5 %5", 37, 7, {5, 5}},
@ -183,46 +183,42 @@ INSTANTIATE_TEST_CASE_P(
{kF32Type, kF32Const, "%4", "FClamp", "%5 %5 %5", 43, 8, {5, 5, 5}},
{kU32Type, kI32Const, "%4", "UClamp", "%5 %5 %5", 44, 8, {5, 5, 5}},
{kS32Type, kI32Const, "%4", "SClamp", "%5 %5 %5", 45, 8, {5, 5, 5}},
{kF32Type, kF32Const, "%4", "Mix", "%5 %5 %5", 46, 8, {5, 5, 5}},
{kF32Type, kF32Const, "%4", "Step", "%5 %5", 47, 7, {5, 5}},
{kF32Type, kF32Const, "%4", "Smoothstep", "%5 %5 %5", 48, 8, {5, 5, 5}},
{kF32Type, kF32Const, "%4", "Fma", "%5 %5 %5", 49, 8, {5, 5, 5}},
{kF32Type, kF32Const, "%4", "Frexp", "%5 %5", 50, 7, {5, 5}},
{kF32Type, kF32Const, "%4", "FrexpStruct", "%5", 51, 6, {5}},
{kF32Type, kF32Const, "%4", "Ldexp", "%5 %5", 52, 7, {5, 5}},
{kF32Type, kF32Const, "%4", "PackSnorm4x8", "%5", 53, 6, {5}},
{kF32Type, kF32Const, "%4", "PackUnorm4x8", "%5", 54, 6, {5}},
{kF32Type, kF32Const, "%4", "PackSnorm2x16", "%5", 55, 6, {5}},
{kF32Type, kF32Const, "%4", "PackUnorm2x16", "%5", 56, 6, {5}},
{kF32Type, kF32Const, "%4", "PackHalf2x16", "%5", 57, 6, {5}},
{kF32Type, kF32Const, "%4", "PackDouble2x32", "%5", 58, 6, {5}},
{kF32Type, kF32Const, "%4", "UnpackSnorm2x16", "%5", 59, 6, {5}},
{kF32Type, kF32Const, "%4", "UnpackUnorm2x16", "%5", 60, 6, {5}},
{kF32Type, kF32Const, "%4", "UnpackHalf2x16", "%5", 61, 6, {5}},
{kF32Type, kF32Const, "%4", "UnpackSnorm4x8", "%5", 62, 6, {5}},
{kF32Type, kF32Const, "%4", "UnpackUnorm4x8", "%5", 63, 6, {5}},
{kF32Type, kF32Const, "%4", "UnpackDouble2x32", "%5", 64, 6, {5}},
{kF32Type, kF32Const, "%4", "Length", "%5", 65, 6, {5}},
{kF32Type, kF32Const, "%4", "Distance", "%5 %5", 66, 7, {5, 5}},
{kF32Type, kF32Const, "%4", "Cross", "%5 %5", 67, 7, {5, 5}},
{kF32Type, kF32Const, "%4", "Normalize", "%5", 68, 6, {5}},
{kF32Type, kF32Const, "%4", "FMix", "%5 %5 %5", 46, 8, {5, 5, 5}},
{kF32Type, kF32Const, "%4", "IMix", "%5 %5 %5", 47, 8, {5, 5, 5}},
{kF32Type, kF32Const, "%4", "Step", "%5 %5", 48, 7, {5, 5}},
{kF32Type, kF32Const, "%4", "SmoothStep", "%5 %5 %5", 49, 8, {5, 5, 5}},
{kF32Type, kF32Const, "%4", "Fma", "%5 %5 %5", 50, 8, {5, 5, 5}},
{kF32Type, kF32Const, "%4", "Frexp", "%5 %5", 51, 7, {5, 5}},
{kF32Type, kF32Const, "%4", "FrexpStruct", "%5", 52, 6, {5}},
{kF32Type, kF32Const, "%4", "Ldexp", "%5 %5", 53, 7, {5, 5}},
{kF32Type, kF32Const, "%4", "PackSnorm4x8", "%5", 54, 6, {5}},
{kF32Type, kF32Const, "%4", "PackUnorm4x8", "%5", 55, 6, {5}},
{kF32Type, kF32Const, "%4", "PackSnorm2x16", "%5", 56, 6, {5}},
{kF32Type, kF32Const, "%4", "PackUnorm2x16", "%5", 57, 6, {5}},
{kF32Type, kF32Const, "%4", "PackHalf2x16", "%5", 58, 6, {5}},
{kF32Type, kF32Const, "%4", "PackDouble2x32", "%5", 59, 6, {5}},
{kF32Type, kF32Const, "%4", "UnpackSnorm2x16", "%5", 60, 6, {5}},
{kF32Type, kF32Const, "%4", "UnpackUnorm2x16", "%5", 61, 6, {5}},
{kF32Type, kF32Const, "%4", "UnpackHalf2x16", "%5", 62, 6, {5}},
{kF32Type, kF32Const, "%4", "UnpackSnorm4x8", "%5", 63, 6, {5}},
{kF32Type, kF32Const, "%4", "UnpackUnorm4x8", "%5", 64, 6, {5}},
{kF32Type, kF32Const, "%4", "UnpackDouble2x32", "%5", 65, 6, {5}},
{kF32Type, kF32Const, "%4", "Length", "%5", 66, 6, {5}},
{kF32Type, kF32Const, "%4", "Distance", "%5 %5", 67, 7, {5, 5}},
{kF32Type, kF32Const, "%4", "Cross", "%5 %5", 68, 7, {5, 5}},
{kF32Type, kF32Const, "%4", "Normalize", "%5", 69, 6, {5}},
// clang-format off
{kF32Type, kF32Const, "%4", "Faceforward", "%5 %5 %5", 69, 8, {5, 5, 5}},
{kF32Type, kF32Const, "%4", "FaceForward", "%5 %5 %5", 70, 8, {5, 5, 5}},
// clang-format on
{kF32Type, kF32Const, "%4", "Reflect", "%5 %5", 70, 7, {5, 5}},
{kF32Type, kF32Const, "%4", "Refract", "%5 %5 %5", 71, 8, {5, 5, 5}},
{kS32Type, kI32Const, "%4", "FindILsb", "%5", 72, 6, {5}},
{kS32Type, kI32Const, "%4", "FindSMsb", "%5", 73, 6, {5}},
{kU32Type, kI32Const, "%4", "FindUMsb", "%5", 74, 6, {5}},
{kF32Type, kF32Const, "%4", "InterpolateAtCentroid", "%5", 75, 6, {5}},
{kF32Type, kF32Const, "%4", "Reflect", "%5 %5", 71, 7, {5, 5}},
{kF32Type, kF32Const, "%4", "Refract", "%5 %5 %5", 72, 8, {5, 5, 5}},
{kS32Type, kI32Const, "%4", "FindILsb", "%5", 73, 6, {5}},
{kS32Type, kI32Const, "%4", "FindSMsb", "%5", 74, 6, {5}},
{kU32Type, kI32Const, "%4", "FindUMsb", "%5", 75, 6, {5}},
{kF32Type, kF32Const, "%4", "InterpolateAtCentroid", "%5", 76, 6, {5}},
// clang-format off
{kF32Type, kF32Const, "%4", "InterpolateAtSample", "%5 %5", 76, 7, {5, 5}},
{kF32Type, kF32Const, "%4", "InterpolateAtOffset", "%5 %5", 77, 7, {5, 5}},
// clang-format on
{kU32Type, kI32Const, "%4", "UaddCarry", "%5 %5 %5", 78, 8, {5, 5, 5}},
{kU32Type, kI32Const, "%4", "UsubBorrow", "%5 %5 %5", 79, 8, {5, 5, 5}},
// clang-format off
{kU32Type, kI32Const, "%4", "UmulExtended", "%5 %5 %5 %5", 80, 9, {5, 5, 5, 5}},
{kF32Type, kF32Const, "%4", "InterpolateAtSample", "%5 %5", 77, 7, {5, 5}},
{kF32Type, kF32Const, "%4", "InterpolateAtOffset", "%5 %5", 78, 7, {5, 5}},
// clang-format on
})));

View File

@ -86,7 +86,7 @@ INSTANTIATE_TEST_CASE_P(TextToBinaryDecorateSimple, OpDecorateSimpleTest,
{CASE(GLSLPacked), {}},
{CASE(CPacked), {}},
{CASE(Smooth), {}},
{CASE(Noperspective), {}},
{CASE(NoPerspective), {}},
{CASE(Flat), {}},
{CASE(Patch), {}},
{CASE(Centroid), {}},
@ -97,10 +97,9 @@ INSTANTIATE_TEST_CASE_P(TextToBinaryDecorateSimple, OpDecorateSimpleTest,
{CASE(Volatile), {}},
{CASE(Constant), {}},
{CASE(Coherent), {}},
{CASE(Nonwritable), {}},
{CASE(Nonreadable), {}},
{CASE(NonWritable), {}},
{CASE(NonReadable), {}},
{CASE(Uniform), {}},
{CASE(NoStaticUse), {}},
{CASE(SaturatedConversion), {}},
{CASE(Stream), {2}},
{CASE(Location), {6}},