//===-- SPIRVEnums.td - Describe SPIRV Enum Operands -------*- tablegen -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // All SPIRV enums defined in SPIRVBaseInfo.h should have a corresponding enum // operand here. This enables the correct PrintMethod to be defined so // its name or mask bits can be automatically printed in SPIRVInstPrinter // when referred to in SPIRVInstrInfo.td. // //===----------------------------------------------------------------------===// class EnumOperand<string Name> : Operand<i32>{ let PrintMethod = "print"#Name; } def ExtInst : EnumOperand<"ExtInst">; def Capability : EnumOperand<"Capability">; def SourceLanguage : EnumOperand<"SourceLanguage">; def ExecutionModel : EnumOperand<"ExecutionModel">; def AddressingModel : EnumOperand<"AddressingModel">; def MemoryModel : EnumOperand<"MemoryModel">; def ExecutionMode : EnumOperand<"ExecutionMode">; def StorageClass : EnumOperand<"StorageClass">; def Dim : EnumOperand<"Dim">; def SamplerAddressingMode : EnumOperand<"SamplerAddressingMode">; def SamplerFilterMode : EnumOperand<"SamplerFilterMode">; def ImageFormat : EnumOperand<"ImageFormat">; def ImageChannelOrder : EnumOperand<"ImageChannelOrder">; def ImageChannelDataType : EnumOperand<"ImageChannelDataType">; def ImageOperand : EnumOperand<"ImageOperand">; def FPFastMathMode : EnumOperand<"FPFastMathMode">; def FProundingMode : EnumOperand<"FPRoundingMode">; def LinkageType : EnumOperand<"LinkageType">; def AccessQualifier : EnumOperand<"AccessQualifier">; def FunctionParameterAttribute : EnumOperand<"FunctionParameterAttribute">; def Decoration : EnumOperand<"Decoration">; def Builtin : EnumOperand<"Builtin">; def SelectionControl: EnumOperand<"SelectionControl">; def LoopControl: EnumOperand<"LoopControl">; def FunctionControl : EnumOperand<"FunctionControl">; def MemorySemantics : EnumOperand<"MemorySemantics">; def MemoryOperand : EnumOperand<"MemoryOperand">; def Scope : EnumOperand<"Scope">; def GroupOperation : EnumOperand<"GroupOperation">; def KernelEnqueueFlags : EnumOperand<"KernelEnqueueFlags">; def KernelProfilingInfo : EnumOperand<"KernelProfilingInfo">;