-Operand class,Example instruction,Notes,example unit test\r
-,,,\r
-,,,\r
-" OperandNone,",UNUSED,not in grammar,\r
-" OperandId,",many,ID,too many to count\r
-" OperandOptionalId,","Source, Variable",OPTIONAL_ID,OpSourceAcceptsOptionalFileId\r
-" OperandOptionalImage,",ImageFetch,,ImageOperandsTest\r
-" OperandVariableIds,",ExtInst,,\r
-" OperandOptionalLiteral,",ExecutionMode,,AnyExecutionMode\r
-" OperandOptionalLiteralString,",Source,,OpSourceAcceptsOptionalSourceText\r
-" OperandVariableLiterals,",Decorate,,OpDecorateSimpleTest\r
-" OperandVariableIdLiteral,",GroupMemberDecorate,,GroupMemberDecorate*\r
-" OperandVariableLiteralId, // zero or more pairs of (Literal, Id)",Switch,,Switch*\r
-" OperandLiteralNumber,","Source, Switch, ...",,Switch*\r
-" OperandLiteralString,",SourceContinued,,OpSourceContinued\r
-" OperandSource,",Source,,OpSource\r
-" OperandExecutionModel,",EntryPoint,,OpEntryPointTest\r
-" OperandAddressing,",OpMemoryModel,,OpMemoryModelTest\r
-" OperandMemory,",OpMemoryModel,,OpMemoryModelTest\r
-" OperandExecutionMode,",OpExecutionMode,,OpExecutionModeTest\r
-" OperandStorage,","TypePointer, TypeForwardPointer, Variable",,StorageClassTest\r
-" OperandDimensionality,",TypeImage,,DimTest/AnyDim\r
-" OperandSamplerAddressingMode,",ConstantSampler,,SamplerAddressingModeTest\r
-" OperandSamplerFilterMode,",ConstantSampler,,AnySamplerFilterMode\r
-" OperandSamplerImageFormat,",TypeImage,SAMPLER_IMAGE_FORMAT,ImageFormatTest\r
-" OperandImageChannelOrder,",UNUSED,returned as result value only,\r
-" OperandImageChannelDataType,",UNUSED,returned as result value only,\r
-" OperandImageOperands,",UNUSED,used to make a spec section,\r
-" OperandFPFastMath,",OpDecorate,,CombinedFPFastMathMask\r
-" OperandFPRoundingMode,",OpDecorate,,OpDecorateEnumTest\r
-" OperandLinkageType,",OpDecorate,,OpDecorateLinkageTest\r
-" OperandAccessQualifier,",OpTypePipe,,AnyAccessQualifier\r
-" OperandFuncParamAttr,",OpDecorate,,TextToBinaryDecorateFuncParamAttr\r
-" OperandDecoration,",OpDecorate,,AnyAccessQualifier\r
-" OperandBuiltIn,",OpDecorate,,TextToBinaryDecorateBultIn\r
-" OperandSelect,",SelectionMerge,,TextToBinarySelectionMerge\r
-" OperandLoop,",LoopMerge,,CombinedLoopControlMask\r
-" OperandFunction,",Function,,AnySingleFunctionControlMask\r
-" OperandMemorySemantics,",OpMemoryBarrier,"it's an ID, not in grammar",OpMemoryBarrier*\r
-" OperandMemoryAccess,",UNUSED,"should be on opstore, but hacked in opcode.cpp",\r
-" OperandScope,",MemoryBarrier,"it's an ID, not in grammar",OpMemoryBarrier*\r
-" OperandGroupOperation,",GroupIAdd,,GroupOperationTest\r
-" OperandKernelEnqueueFlags,",OpEnqueueKernel,"it's an ID, not in grammar",should not have one\r
-" OperandKernelProfilingInfo,",OpCaptureEventProfilingInfo,"it's an ID, not in grammar",should not have one\r
-" OperandCapability,",Capability,,OpCapabilityTest\r
+Operand class,Example instruction,Notes,example unit test,negative-enum coverage location\r
+,,,,\r
+,,,,\r
+" OperandNone,",UNUSED,not in grammar,,not enum\r
+" OperandId,",many,ID,too many to count,not enum\r
+" OperandOptionalId,","Source, Variable",OPTIONAL_ID,OpSourceAcceptsOptionalFileId,not enum\r
+" OperandOptionalImage,",ImageFetch,,ImageOperandsTest,"TEST_F(ImageOperandsTest, WrongOperand)"\r
+" OperandVariableIds,",ExtInst,,,not enum\r
+" OperandOptionalLiteral,",ExecutionMode,,AnyExecutionMode,not enum\r
+" OperandOptionalLiteralString,",Source,,OpSourceAcceptsOptionalSourceText,not enum\r
+" OperandVariableLiterals,",Decorate,,OpDecorateSimpleTest,not enum\r
+" OperandVariableIdLiteral,",GroupMemberDecorate,,GroupMemberDecorate*,not enum\r
+" OperandVariableLiteralId, // zero or more pairs of (Literal, Id)",Switch,,Switch*,not enum\r
+" OperandLiteralNumber,","Source, Switch, ...",,Switch*,not enum\r
+" OperandLiteralString,",SourceContinued,,OpSourceContinued,not enum\r
+" OperandSource,",Source,,OpSource,not enum\r
+" OperandExecutionModel,",EntryPoint,,OpEntryPointTest,"TEST_F(OpEntryPointTest, WrongModel)"\r
+" OperandAddressing,",OpMemoryModel,,OpMemoryModelTest,"TEST_F(OpMemoryModelTest, WrongModel)"\r
+" OperandMemory,",OpMemoryModel,,OpMemoryModelTest,"TEST_F(OpMemoryModelTest, WrongModel)"\r
+" OperandExecutionMode,",OpExecutionMode,,OpExecutionModeTest,"TEST_F(OpExecutionModeTest, WrongMode)"\r
+" OperandStorage,","TypePointer, TypeForwardPointer, Variable",,StorageClassTest,"TEST_F(OpTypeForwardPointerTest, WrongClass)"\r
+" OperandDimensionality,",TypeImage,,DimTest/AnyDim,"TEST_F(DimTest, WrongDim)"\r
+" OperandSamplerAddressingMode,",ConstantSampler,,SamplerAddressingModeTest,"TEST_F(SamplerAddressingModeTest, WrongMode)"\r
+" OperandSamplerFilterMode,",ConstantSampler,,AnySamplerFilterMode,"TEST_F(SamplerFilterModeTest, WrongMode)"\r
+" OperandSamplerImageFormat,",TypeImage,SAMPLER_IMAGE_FORMAT,ImageFormatTest,"TEST_F(ImageFormatTest, WrongFormat)"\r
+" OperandImageChannelOrder,",UNUSED,returned as result value only,,\r
+" OperandImageChannelDataType,",UNUSED,returned as result value only,,\r
+" OperandImageOperands,",UNUSED,used to make a spec section,,see OperandOptionalImage\r
+" OperandFPFastMath,",OpDecorate,,CombinedFPFastMathMask,"TEST_F(OpDecorateEnumTest, WrongFPFastMathMode)"\r
+" OperandFPRoundingMode,",OpDecorate,,"TEST_F(OpDecorateEnumTest, WrongFPRoundingMode)"\r
+" OperandLinkageType,",OpDecorate,,OpDecorateLinkageTest,"TEST_F(OpDecorateLinkageTest, WrongType)"\r
+" OperandAccessQualifier,",OpTypePipe,,AnyAccessQualifier,"TEST_F(OpTypePipeTest, WrongAccessQualifier)"\r
+" OperandFuncParamAttr,",OpDecorate,,TextToBinaryDecorateFuncParamAttr,"TEST_F(OpDecorateEnumTest, WrongFuncParamAttr)"\r
+" OperandDecoration,",OpDecorate,,AnyAccessQualifier,"TEST_F(OpTypePipeTest, WrongAccessQualifier)"\r
+" OperandBuiltIn,",OpDecorate,,TextToBinaryDecorateBultIn,"TEST_F(OpDecorateEnumTest, WrongBuiltIn)"\r
+" OperandSelect,",SelectionMerge,,TextToBinarySelectionMerge,"TEST_F(OpSelectionMergeTest, WrongSelectionControl)"\r
+" OperandLoop,",LoopMerge,,CombinedLoopControlMask,"TEST_F(OpLoopMergeTest, WrongLoopControl)"\r
+" OperandFunction,",Function,,AnySingleFunctionControlMask,"TEST_F(OpFunctionControlTest, WrongFunctionControl)"\r
+" OperandMemorySemantics,",OpMemoryBarrier,"it's an ID, not in grammar",OpMemoryBarrier*,not enum\r
+" OperandMemoryAccess,",UNUSED,"should be on opstore, but hacked in opcode.cpp",,not enum\r
+" OperandScope,",MemoryBarrier,"it's an ID, not in grammar",OpMemoryBarrier*,not enum\r
+" OperandGroupOperation,",GroupIAdd,,GroupOperationTest,"TEST_F(GroupOperationTest, WrongGroupOperation)"\r
+" OperandKernelEnqueueFlags,",OpEnqueueKernel,"it's an ID, not in grammar",should not have one,not enum\r
+" OperandKernelProfilingInfo,",OpCaptureEventProfilingInfo,"it's an ID, not in grammar",should not have one,not enum\r
+" OperandCapability,",Capability,,OpCapabilityTest,"TEST_F(TextToBinaryCapability, BadInvalidCapability)"\r