packages feed

spirv-reflect-types (empty) → 0.1

raw patch · 26 files changed

+3515/−0 lines, 26 filesdep +basedep +containersdep +text

Dependencies added: base, containers, text, vector

Files

+ ChangeLog.md view
@@ -0,0 +1,7 @@+# Changelog for spirv-reflect-types++## [0.1] - 2022-06-11++* Initial release.++[0.1]: https://gitlab.com/dpwiz/spirv-reflect/-/tree/v0.1-types
+ LICENSE view
@@ -0,0 +1,30 @@+Copyright IC Rainbow (c) 2022++All rights reserved.++Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions are met:++    * Redistributions of source code must retain the above copyright+      notice, this list of conditions and the following disclaimer.++    * Redistributions in binary form must reproduce the above+      copyright notice, this list of conditions and the following+      disclaimer in the documentation and/or other materials provided+      with the distribution.++    * Neither the name of Author name here nor the names of other+      contributors may be used to endorse or promote products derived+      from this software without specific prior written permission.++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ lib/Data/SpirV/Reflect/BlockVariable.hs view
@@ -0,0 +1,27 @@+module Data.SpirV.Reflect.BlockVariable+  ( BlockVariable(..)+  ) where++import Data.Text (Text)+import Data.Vector (Vector)+import GHC.Generics (Generic)+import Data.Word (Word32)++import Data.SpirV.Reflect.Enums qualified as Enums+import Data.SpirV.Reflect.Traits qualified as Traits+import Data.SpirV.Reflect.TypeDescription (TypeDescription)++data BlockVariable = BlockVariable+  { spirv_id         :: Maybe Word32+  , name             :: Maybe Text+  , offset           :: Word32+  , absolute_offset  :: Word32+  , size             :: Word32+  , padded_size      :: Word32+  , decorations      :: Enums.DecorationFlags+  , numeric          :: Traits.Numeric+  , array            :: Traits.Array+  , members          :: Vector BlockVariable+  , type_description :: Maybe TypeDescription+  }+  deriving (Eq, Show, Generic)
+ lib/Data/SpirV/Reflect/DescriptorBinding.hs view
@@ -0,0 +1,40 @@+module Data.SpirV.Reflect.DescriptorBinding+  ( DescriptorBinding(..)+  , WordOffset(..)+  ) where++import Data.Text (Text)+import Data.Word (Word32)+import GHC.Generics (Generic)++import Data.SpirV.Reflect.BlockVariable (BlockVariable)+import Data.SpirV.Reflect.Enums qualified as Enums+import Data.SpirV.Reflect.Traits qualified as Traits+import Data.SpirV.Reflect.TypeDescription (TypeDescription)++data DescriptorBinding = DescriptorBinding+  { spirv_id               :: Maybe Word32+  , name                   :: Text+  , binding                :: Word32+  , input_attachment_index :: Word32+  , set                    :: Word32+  , descriptor_type        :: Enums.DescriptorType+  , resource_type          :: Enums.ResourceFlags+  , image                  :: Traits.Image+  , block                  :: BlockVariable+  , array                  :: Traits.Array+  , count                  :: Maybe Word32+  , accessed               :: Word32+  , uav_counter_id         :: Word32+  , uav_counter_binding    :: Maybe DescriptorBinding+  , type_description       :: Maybe TypeDescription+  , word_offset            :: WordOffset+  , decoration_flags       :: Enums.DecorationFlags+  }+  deriving (Eq, Show, Generic)++data WordOffset = WordOffset+  { binding :: Word32+  , set     :: Word32+  }+  deriving (Eq, Show, Generic)
+ lib/Data/SpirV/Reflect/DescriptorSet.hs view
@@ -0,0 +1,13 @@+module Data.SpirV.Reflect.DescriptorSet where++import Data.Vector (Vector)+import Data.Word (Word32)+import GHC.Generics (Generic)++import Data.SpirV.Reflect.DescriptorBinding (DescriptorBinding)++data DescriptorSet = DescriptorSet+  { set      :: Word32+  , bindings :: Vector DescriptorBinding+  }+  deriving (Eq, Show, Generic)
+ lib/Data/SpirV/Reflect/Enums.hs view
@@ -0,0 +1,33 @@+module Data.SpirV.Reflect.Enums+  ( module Data.SpirV.Reflect.Enums.Common+  , module Data.SpirV.Reflect.Enums.DecorationFlags+  , module Data.SpirV.Reflect.Enums.DescriptorType+  , module Data.SpirV.Reflect.Enums.Format+  , module Data.SpirV.Reflect.Enums.Generator+  , module Data.SpirV.Reflect.Enums.ModuleFlags+  , module Data.SpirV.Reflect.Enums.ResourceFlags+  , module Data.SpirV.Reflect.Enums.Result+  , module Data.SpirV.Reflect.Enums.ShaderStage+  , module Data.SpirV.Reflect.Enums.SpirvBuiltin+  , module Data.SpirV.Reflect.Enums.SpirvDim+  , module Data.SpirV.Reflect.Enums.SpirvImageFormat+  , module Data.SpirV.Reflect.Enums.SpirvOp+  , module Data.SpirV.Reflect.Enums.SpirvStorageClass+  , module Data.SpirV.Reflect.Enums.TypeFlags+  ) where++import Data.SpirV.Reflect.Enums.Common+import Data.SpirV.Reflect.Enums.DecorationFlags+import Data.SpirV.Reflect.Enums.DescriptorType+import Data.SpirV.Reflect.Enums.Format+import Data.SpirV.Reflect.Enums.Generator+import Data.SpirV.Reflect.Enums.ModuleFlags+import Data.SpirV.Reflect.Enums.ResourceFlags+import Data.SpirV.Reflect.Enums.Result+import Data.SpirV.Reflect.Enums.ShaderStage+import Data.SpirV.Reflect.Enums.SpirvBuiltin+import Data.SpirV.Reflect.Enums.SpirvDim+import Data.SpirV.Reflect.Enums.SpirvImageFormat+import Data.SpirV.Reflect.Enums.SpirvOp+import Data.SpirV.Reflect.Enums.SpirvStorageClass+import Data.SpirV.Reflect.Enums.TypeFlags
+ lib/Data/SpirV/Reflect/Enums/Common.hs view
@@ -0,0 +1,32 @@+module Data.SpirV.Reflect.Enums.Common+  ( Flags+  , (.&&.)++  , Word32+  , Int32++  , IsString+  , Bits+  , FiniteBits++  , toLabel+  ) where++import Data.Word (Word32)+import Data.Bits (Bits, FiniteBits, (.&.))+import Data.Int (Int32)+import Data.String (IsString)+import Data.IntMap qualified as IntMap++type Flags = Word32++(.&&.) :: Bits a => a -> a -> Bool+x .&&. flag = x .&. flag == flag++{-# INLINE toLabel #-}+toLabel :: (Enum i) => [(i, label)] -> i -> Maybe label+toLabel names key = IntMap.lookup (fromEnum key) indexed+  where+    indexed = IntMap.fromList do+      (i, label) <- names+      pure (fromEnum i, label)
+ lib/Data/SpirV/Reflect/Enums/DecorationFlags.hs view
@@ -0,0 +1,41 @@+module Data.SpirV.Reflect.Enums.DecorationFlags where++import Data.SpirV.Reflect.Enums.Common++type DecorationFlags = DecorationFlagBits++newtype DecorationFlagBits = DecorationFlagBits Flags+  deriving newtype (Eq, Ord, Show, Bits, FiniteBits)++pattern DECORATION_NONE :: DecorationFlagBits+pattern DECORATION_NONE = DecorationFlagBits 0x00000000++pattern DECORATION_BLOCK :: DecorationFlagBits+pattern DECORATION_BLOCK = DecorationFlagBits 0x00000001++pattern DECORATION_BUFFER_BLOCK :: DecorationFlagBits+pattern DECORATION_BUFFER_BLOCK = DecorationFlagBits 0x00000002++pattern DECORATION_ROW_MAJOR :: DecorationFlagBits+pattern DECORATION_ROW_MAJOR = DecorationFlagBits 0x00000004++pattern DECORATION_COLUMN_MAJOR :: DecorationFlagBits+pattern DECORATION_COLUMN_MAJOR = DecorationFlagBits 0x00000008++pattern DECORATION_BUILT_IN :: DecorationFlagBits+pattern DECORATION_BUILT_IN = DecorationFlagBits 0x00000010++pattern DECORATION_NOPERSPECTIVE :: DecorationFlagBits+pattern DECORATION_NOPERSPECTIVE = DecorationFlagBits 0x00000020++pattern DECORATION_FLAT :: DecorationFlagBits+pattern DECORATION_FLAT = DecorationFlagBits 0x00000040++pattern DECORATION_NON_WRITABLE :: DecorationFlagBits+pattern DECORATION_NON_WRITABLE = DecorationFlagBits 0x00000080++pattern DECORATION_RELAXED_PRECISION :: DecorationFlagBits+pattern DECORATION_RELAXED_PRECISION = DecorationFlagBits 0x00000100++pattern DECORATION_NON_READABLE :: DecorationFlagBits+pattern DECORATION_NON_READABLE = DecorationFlagBits 0x00000200
+ lib/Data/SpirV/Reflect/Enums/DescriptorType.hs view
@@ -0,0 +1,61 @@+module Data.SpirV.Reflect.Enums.DescriptorType where++import Data.SpirV.Reflect.Enums.Common++newtype DescriptorType = DescriptorType Int+  deriving newtype (Eq, Ord, Show, Enum)++pattern DESCRIPTOR_TYPE_SAMPLER :: DescriptorType+pattern DESCRIPTOR_TYPE_SAMPLER = DescriptorType 0++pattern DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER :: DescriptorType+pattern DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = DescriptorType 1++pattern DESCRIPTOR_TYPE_SAMPLED_IMAGE :: DescriptorType+pattern DESCRIPTOR_TYPE_SAMPLED_IMAGE = DescriptorType 2++pattern DESCRIPTOR_TYPE_STORAGE_IMAGE :: DescriptorType+pattern DESCRIPTOR_TYPE_STORAGE_IMAGE = DescriptorType 3++pattern DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER :: DescriptorType+pattern DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = DescriptorType 4++pattern DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER :: DescriptorType+pattern DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = DescriptorType 5++pattern DESCRIPTOR_TYPE_UNIFORM_BUFFER :: DescriptorType+pattern DESCRIPTOR_TYPE_UNIFORM_BUFFER = DescriptorType 6++pattern DESCRIPTOR_TYPE_STORAGE_BUFFER :: DescriptorType+pattern DESCRIPTOR_TYPE_STORAGE_BUFFER = DescriptorType 7++pattern DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC :: DescriptorType+pattern DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = DescriptorType 8++pattern DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC :: DescriptorType+pattern DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = DescriptorType 9++pattern DESCRIPTOR_TYPE_INPUT_ATTACHMENT :: DescriptorType+pattern DESCRIPTOR_TYPE_INPUT_ATTACHMENT = DescriptorType 10++pattern DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR :: DescriptorType+pattern DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = DescriptorType 1000150000++descriptorTypeName :: IsString label => DescriptorType -> Maybe label+descriptorTypeName = toLabel descriptorTypeNames++descriptorTypeNames :: IsString label => [(DescriptorType, label)]+descriptorTypeNames =+  [ (DESCRIPTOR_TYPE_SAMPLER, "SAMPLER")+  , (DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, "COMBINED_IMAGE_SAMPLER")+  , (DESCRIPTOR_TYPE_SAMPLED_IMAGE, "SAMPLED_IMAGE")+  , (DESCRIPTOR_TYPE_STORAGE_IMAGE, "STORAGE_IMAGE")+  , (DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, "UNIFORM_TEXEL_BUFFER")+  , (DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, "STORAGE_TEXEL_BUFFER")+  , (DESCRIPTOR_TYPE_UNIFORM_BUFFER, "UNIFORM_BUFFER")+  , (DESCRIPTOR_TYPE_STORAGE_BUFFER, "STORAGE_BUFFER")+  , (DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, "UNIFORM_BUFFER_DYNAMIC")+  , (DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, "STORAGE_BUFFER_DYNAMIC")+  , (DESCRIPTOR_TYPE_INPUT_ATTACHMENT, "INPUT_ATTACHMENT")+  , (DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR, "ACCELERATION_STRUCTURE_KHR")+  ]
+ lib/Data/SpirV/Reflect/Enums/Format.hs view
@@ -0,0 +1,113 @@+module Data.SpirV.Reflect.Enums.Format where++import Data.SpirV.Reflect.Enums.Common++newtype Format = Format Int+  deriving (Eq, Ord, Show, Enum)++pattern FORMAT_UNDEFINED :: Format+pattern FORMAT_UNDEFINED = Format 0++pattern FORMAT_R32_UINT :: Format+pattern FORMAT_R32_UINT = Format 98++pattern FORMAT_R32_SINT :: Format+pattern FORMAT_R32_SINT = Format 99++pattern FORMAT_R32_SFLOAT :: Format+pattern FORMAT_R32_SFLOAT = Format 100++pattern FORMAT_R32G32_UINT :: Format+pattern FORMAT_R32G32_UINT = Format 101++pattern FORMAT_R32G32_SINT :: Format+pattern FORMAT_R32G32_SINT = Format 102++pattern FORMAT_R32G32_SFLOAT :: Format+pattern FORMAT_R32G32_SFLOAT = Format 103++pattern FORMAT_R32G32B32_UINT :: Format+pattern FORMAT_R32G32B32_UINT = Format 104++pattern FORMAT_R32G32B32_SINT :: Format+pattern FORMAT_R32G32B32_SINT = Format 105++pattern FORMAT_R32G32B32_SFLOAT :: Format+pattern FORMAT_R32G32B32_SFLOAT = Format 106++pattern FORMAT_R32G32B32A32_UINT :: Format+pattern FORMAT_R32G32B32A32_UINT = Format 107++pattern FORMAT_R32G32B32A32_SINT :: Format+pattern FORMAT_R32G32B32A32_SINT = Format 108++pattern FORMAT_R32G32B32A32_SFLOAT :: Format+pattern FORMAT_R32G32B32A32_SFLOAT = Format 109++pattern FORMAT_R64_UINT :: Format+pattern FORMAT_R64_UINT = Format 110++pattern FORMAT_R64_SINT :: Format+pattern FORMAT_R64_SINT = Format 111++pattern FORMAT_R64_SFLOAT :: Format+pattern FORMAT_R64_SFLOAT = Format 112++pattern FORMAT_R64G64_UINT :: Format+pattern FORMAT_R64G64_UINT = Format 113++pattern FORMAT_R64G64_SINT :: Format+pattern FORMAT_R64G64_SINT = Format 114++pattern FORMAT_R64G64_SFLOAT :: Format+pattern FORMAT_R64G64_SFLOAT = Format 115++pattern FORMAT_R64G64B64_UINT :: Format+pattern FORMAT_R64G64B64_UINT = Format 116++pattern FORMAT_R64G64B64_SINT :: Format+pattern FORMAT_R64G64B64_SINT = Format 117++pattern FORMAT_R64G64B64_SFLOAT :: Format+pattern FORMAT_R64G64B64_SFLOAT = Format 118++pattern FORMAT_R64G64B64A64_UINT :: Format+pattern FORMAT_R64G64B64A64_UINT = Format 119++pattern FORMAT_R64G64B64A64_SINT :: Format+pattern FORMAT_R64G64B64A64_SINT = Format 120++pattern FORMAT_R64G64B64A64_SFLOAT :: Format+pattern FORMAT_R64G64B64A64_SFLOAT = Format 121++formatName :: IsString label => Format -> Maybe label+formatName = toLabel formatNames++formatNames :: IsString label => [(Format, label)]+formatNames =+  [ (FORMAT_UNDEFINED, "UNDEFINED")+  , (FORMAT_R32_UINT, "R32_UINT")+  , (FORMAT_R32_SINT, "R32_SINT")+  , (FORMAT_R32_SFLOAT, "R32_SFLOAT")+  , (FORMAT_R32G32_UINT, "R32G32_UINT")+  , (FORMAT_R32G32_SINT, "R32G32_SINT")+  , (FORMAT_R32G32_SFLOAT, "R32G32_SFLOAT")+  , (FORMAT_R32G32B32_UINT, "R32G32B32_UINT")+  , (FORMAT_R32G32B32_SINT, "R32G32B32_SINT")+  , (FORMAT_R32G32B32_SFLOAT, "R32G32B32_SFLOAT")+  , (FORMAT_R32G32B32A32_UINT, "R32G32B32A32_UINT")+  , (FORMAT_R32G32B32A32_SINT, "R32G32B32A32_SINT")+  , (FORMAT_R32G32B32A32_SFLOAT, "R32G32B32A32_SFLOAT")+  , (FORMAT_R64_UINT, "R64_UINT")+  , (FORMAT_R64_SINT, "R64_SINT")+  , (FORMAT_R64_SFLOAT, "R64_SFLOAT")+  , (FORMAT_R64G64_UINT, "R64G64_UINT")+  , (FORMAT_R64G64_SINT, "R64G64_SINT")+  , (FORMAT_R64G64_SFLOAT, "R64G64_SFLOAT")+  , (FORMAT_R64G64B64_UINT, "R64G64B64_UINT")+  , (FORMAT_R64G64B64_SINT, "R64G64B64_SINT")+  , (FORMAT_R64G64B64_SFLOAT, "R64G64B64_SFLOAT")+  , (FORMAT_R64G64B64A64_UINT, "R64G64B64A64_UINT")+  , (FORMAT_R64G64B64A64_SINT, "R64G64B64A64_SINT")+  , (FORMAT_R64G64B64A64_SFLOAT, "R64G64B64A64_SFLOAT")+  ]
+ lib/Data/SpirV/Reflect/Enums/Generator.hs view
@@ -0,0 +1,34 @@+module Data.SpirV.Reflect.Enums.Generator where++newtype Generator = Generator Int+  deriving newtype (Eq, Ord, Show, Enum)++pattern GENERATOR_KHRONOS_LLVM_SPIRV_TRANSLATOR :: Generator+pattern GENERATOR_KHRONOS_LLVM_SPIRV_TRANSLATOR = Generator 6++pattern GENERATOR_KHRONOS_SPIRV_TOOLS_ASSEMBLER :: Generator+pattern GENERATOR_KHRONOS_SPIRV_TOOLS_ASSEMBLER = Generator 7++pattern GENERATOR_KHRONOS_GLSLANG_REFERENCE_FRONT_END :: Generator+pattern GENERATOR_KHRONOS_GLSLANG_REFERENCE_FRONT_END = Generator 8++pattern GENERATOR_GOOGLE_SHADERC_OVER_GLSLANG :: Generator+pattern GENERATOR_GOOGLE_SHADERC_OVER_GLSLANG = Generator 13++pattern GENERATOR_GOOGLE_SPIREGG :: Generator+pattern GENERATOR_GOOGLE_SPIREGG = Generator 14++pattern GENERATOR_GOOGLE_RSPIRV :: Generator+pattern GENERATOR_GOOGLE_RSPIRV = Generator 15++pattern GENERATOR_X_LEGEND_MESA_MESAIR_SPIRV_TRANSLATOR :: Generator+pattern GENERATOR_X_LEGEND_MESA_MESAIR_SPIRV_TRANSLATOR = Generator 16++pattern GENERATOR_KHRONOS_SPIRV_TOOLS_LINKER :: Generator+pattern GENERATOR_KHRONOS_SPIRV_TOOLS_LINKER = Generator 17++pattern GENERATOR_WINE_VKD3D_SHADER_COMPILER :: Generator+pattern GENERATOR_WINE_VKD3D_SHADER_COMPILER = Generator 18++pattern GENERATOR_CLAY_CLAY_SHADER_COMPILER :: Generator+pattern GENERATOR_CLAY_CLAY_SHADER_COMPILER = Generator 19
+ lib/Data/SpirV/Reflect/Enums/ModuleFlags.hs view
@@ -0,0 +1,14 @@+module Data.SpirV.Reflect.Enums.ModuleFlags where++import Data.SpirV.Reflect.Enums.Common++type ModuleFlags = ModuleFlagBits++newtype ModuleFlagBits = ModuleFlagBits Word32+  deriving newtype (Eq, Ord, Show, Bits, FiniteBits)++pattern MODULE_FLAG_NONE :: ModuleFlagBits+pattern MODULE_FLAG_NONE = ModuleFlagBits 0x00000000++pattern MODULE_FLAG_NO_COPY :: ModuleFlagBits+pattern MODULE_FLAG_NO_COPY = ModuleFlagBits 0x00000001
+ lib/Data/SpirV/Reflect/Enums/ResourceFlags.hs view
@@ -0,0 +1,23 @@+module Data.SpirV.Reflect.Enums.ResourceFlags where++import Data.SpirV.Reflect.Enums.Common++type ResourceFlags = ResourceFlagBits++newtype ResourceFlagBits = ResourceFlagBits Flags+  deriving newtype (Eq, Ord, Show, Bits, FiniteBits)++pattern RESOURCE_FLAG_UNDEFINED :: ResourceFlagBits+pattern RESOURCE_FLAG_UNDEFINED = ResourceFlagBits 0x00000000++pattern RESOURCE_FLAG_SAMPLER :: ResourceFlagBits+pattern RESOURCE_FLAG_SAMPLER = ResourceFlagBits 0x00000001++pattern RESOURCE_FLAG_CBV :: ResourceFlagBits+pattern RESOURCE_FLAG_CBV = ResourceFlagBits 0x00000002++pattern RESOURCE_FLAG_SRV :: ResourceFlagBits+pattern RESOURCE_FLAG_SRV = ResourceFlagBits 0x00000004++pattern RESOURCE_FLAG_UAV :: ResourceFlagBits+pattern RESOURCE_FLAG_UAV = ResourceFlagBits 0x00000008
+ lib/Data/SpirV/Reflect/Enums/Result.hs view
@@ -0,0 +1,25 @@+module Data.SpirV.Reflect.Enums.Result where++data Result+  = SUCCESS+  | NOT_READY+  | ERROR_PARSE_FAILED+  | ERROR_ALLOC_FAILED+  | ERROR_RANGE_EXCEEDED+  | ERROR_NULL_POINTER+  | ERROR_INTERNAL_ERROR+  | ERROR_COUNT_MISMATCH+  | ERROR_ELEMENT_NOT_FOUND+  | ERROR_SPIRV_INVALID_CODE_SIZE+  | ERROR_SPIRV_INVALID_MAGIC_NUMBER+  | ERROR_SPIRV_UNEXPECTED_EOF+  | ERROR_SPIRV_INVALID_ID_REFERENCE+  | ERROR_SPIRV_SET_NUMBER_OVERFLOW+  | ERROR_SPIRV_INVALID_STORAGE_CLASS+  | ERROR_SPIRV_RECURSION+  | ERROR_SPIRV_INVALID_INSTRUCTION+  | ERROR_SPIRV_UNEXPECTED_BLOCK_DATA+  | ERROR_SPIRV_INVALID_BLOCK_MEMBER_REFERENCE+  | ERROR_SPIRV_INVALID_ENTRY_POINT+  | ERROR_SPIRV_INVALID_EXECUTION_MODE+  deriving (Eq, Ord, Show, Enum, Bounded)
+ lib/Data/SpirV/Reflect/Enums/ShaderStage.hs view
@@ -0,0 +1,76 @@+module Data.SpirV.Reflect.Enums.ShaderStage where++import Control.Monad (guard)++import Data.SpirV.Reflect.Enums.Common++type ShaderStage = ShaderStageFlagBits++newtype ShaderStageFlagBits = ShaderStageFlagBits Flags+  deriving newtype (Eq, Ord, Show, Bits, FiniteBits)++pattern SHADER_STAGE_VERTEX_BIT :: ShaderStageFlagBits+pattern SHADER_STAGE_VERTEX_BIT = ShaderStageFlagBits 0x00000001++pattern SHADER_STAGE_TESSELLATION_CONTROL_BIT :: ShaderStageFlagBits+pattern SHADER_STAGE_TESSELLATION_CONTROL_BIT = ShaderStageFlagBits 0x00000002++pattern SHADER_STAGE_TESSELLATION_EVALUATION_BIT :: ShaderStageFlagBits+pattern SHADER_STAGE_TESSELLATION_EVALUATION_BIT = ShaderStageFlagBits 0x00000004++pattern SHADER_STAGE_GEOMETRY_BIT :: ShaderStageFlagBits+pattern SHADER_STAGE_GEOMETRY_BIT = ShaderStageFlagBits 0x00000008++pattern SHADER_STAGE_FRAGMENT_BIT :: ShaderStageFlagBits+pattern SHADER_STAGE_FRAGMENT_BIT = ShaderStageFlagBits 0x00000010++pattern SHADER_STAGE_COMPUTE_BIT :: ShaderStageFlagBits+pattern SHADER_STAGE_COMPUTE_BIT = ShaderStageFlagBits 0x00000020++pattern SHADER_STAGE_TASK_BIT_NV :: ShaderStageFlagBits+pattern SHADER_STAGE_TASK_BIT_NV = ShaderStageFlagBits 0x00000040++pattern SHADER_STAGE_MESH_BIT_NV :: ShaderStageFlagBits+pattern SHADER_STAGE_MESH_BIT_NV = ShaderStageFlagBits 0x00000080++pattern SHADER_STAGE_RAYGEN_BIT_KHR :: ShaderStageFlagBits+pattern SHADER_STAGE_RAYGEN_BIT_KHR = ShaderStageFlagBits 0x00000100++pattern SHADER_STAGE_ANY_HIT_BIT_KHR :: ShaderStageFlagBits+pattern SHADER_STAGE_ANY_HIT_BIT_KHR = ShaderStageFlagBits 0x00000200++pattern SHADER_STAGE_CLOSEST_HIT_BIT_KHR :: ShaderStageFlagBits+pattern SHADER_STAGE_CLOSEST_HIT_BIT_KHR = ShaderStageFlagBits 0x00000400++pattern SHADER_STAGE_MISS_BIT_KHR :: ShaderStageFlagBits+pattern SHADER_STAGE_MISS_BIT_KHR = ShaderStageFlagBits 0x00000800++pattern SHADER_STAGE_INTERSECTION_BIT_KHR :: ShaderStageFlagBits+pattern SHADER_STAGE_INTERSECTION_BIT_KHR = ShaderStageFlagBits 0x00001000++pattern SHADER_STAGE_CALLABLE_BIT_KHR :: ShaderStageFlagBits+pattern SHADER_STAGE_CALLABLE_BIT_KHR = ShaderStageFlagBits 0x00002000++names :: IsString label => ShaderStageFlagBits -> [label]+names bits = do+  (flag, name) <- bitNames+  guard $ bits .&&. flag+  pure name++bitNames :: IsString label => [(ShaderStageFlagBits, label)]+bitNames =+  [ (SHADER_STAGE_VERTEX_BIT, "VERTEX")+  , (SHADER_STAGE_TESSELLATION_CONTROL_BIT, "TESSELLATION_CONTROL")+  , (SHADER_STAGE_TESSELLATION_EVALUATION_BIT, "TESSELLATION_EVALUATION")+  , (SHADER_STAGE_GEOMETRY_BIT, "GEOMETRY")+  , (SHADER_STAGE_FRAGMENT_BIT, "FRAGMENT")+  , (SHADER_STAGE_COMPUTE_BIT, "COMPUTE")+  , (SHADER_STAGE_TASK_BIT_NV, "TASK")+  , (SHADER_STAGE_MESH_BIT_NV, "MESH")+  , (SHADER_STAGE_RAYGEN_BIT_KHR, "RAYGEN")+  , (SHADER_STAGE_ANY_HIT_BIT_KHR, "ANY_HIT")+  , (SHADER_STAGE_CLOSEST_HIT_BIT_KHR, "CLOSEST_HIT")+  , (SHADER_STAGE_MISS_BIT_KHR, "MISS")+  , (SHADER_STAGE_INTERSECTION_BIT_KHR, "INTERSECTION")+  , (SHADER_STAGE_CALLABLE_BIT_KHR, "CALLABLE")+  ]
+ lib/Data/SpirV/Reflect/Enums/SpirvBuiltin.hs view
@@ -0,0 +1,375 @@+module Data.SpirV.Reflect.Enums.SpirvBuiltin where++import Data.SpirV.Reflect.Enums.Common++newtype BuiltIn = BuiltIn Int32+  deriving newtype (Eq, Ord, Show, Enum, Bounded)++pattern BuiltInPosition :: BuiltIn+pattern BuiltInPosition = BuiltIn 0++pattern BuiltInPointSize :: BuiltIn+pattern BuiltInPointSize = BuiltIn 1++pattern BuiltInClipDistance :: BuiltIn+pattern BuiltInClipDistance = BuiltIn 3++pattern BuiltInCullDistance :: BuiltIn+pattern BuiltInCullDistance = BuiltIn 4++pattern BuiltInVertexId :: BuiltIn+pattern BuiltInVertexId = BuiltIn 5++pattern BuiltInInstanceId :: BuiltIn+pattern BuiltInInstanceId = BuiltIn 6++pattern BuiltInPrimitiveId :: BuiltIn+pattern BuiltInPrimitiveId = BuiltIn 7++pattern BuiltInInvocationId :: BuiltIn+pattern BuiltInInvocationId = BuiltIn 8++pattern BuiltInLayer :: BuiltIn+pattern BuiltInLayer = BuiltIn 9++pattern BuiltInViewportIndex :: BuiltIn+pattern BuiltInViewportIndex = BuiltIn 10++pattern BuiltInTessLevelOuter :: BuiltIn+pattern BuiltInTessLevelOuter = BuiltIn 11++pattern BuiltInTessLevelInner :: BuiltIn+pattern BuiltInTessLevelInner = BuiltIn 12++pattern BuiltInTessCoord :: BuiltIn+pattern BuiltInTessCoord = BuiltIn 13++pattern BuiltInPatchVertices :: BuiltIn+pattern BuiltInPatchVertices = BuiltIn 14++pattern BuiltInFragCoord :: BuiltIn+pattern BuiltInFragCoord = BuiltIn 15++pattern BuiltInPointCoord :: BuiltIn+pattern BuiltInPointCoord = BuiltIn 16++pattern BuiltInFrontFacing :: BuiltIn+pattern BuiltInFrontFacing = BuiltIn 17++pattern BuiltInSampleId :: BuiltIn+pattern BuiltInSampleId = BuiltIn 18++pattern BuiltInSamplePosition :: BuiltIn+pattern BuiltInSamplePosition = BuiltIn 19++pattern BuiltInSampleMask :: BuiltIn+pattern BuiltInSampleMask = BuiltIn 20++pattern BuiltInFragDepth :: BuiltIn+pattern BuiltInFragDepth = BuiltIn 22++pattern BuiltInHelperInvocation :: BuiltIn+pattern BuiltInHelperInvocation = BuiltIn 23++pattern BuiltInNumWorkgroups :: BuiltIn+pattern BuiltInNumWorkgroups = BuiltIn 24++pattern BuiltInWorkgroupSize :: BuiltIn+pattern BuiltInWorkgroupSize = BuiltIn 25++pattern BuiltInWorkgroupId :: BuiltIn+pattern BuiltInWorkgroupId = BuiltIn 26++pattern BuiltInLocalInvocationId :: BuiltIn+pattern BuiltInLocalInvocationId = BuiltIn 27++pattern BuiltInGlobalInvocationId :: BuiltIn+pattern BuiltInGlobalInvocationId = BuiltIn 28++pattern BuiltInLocalInvocationIndex :: BuiltIn+pattern BuiltInLocalInvocationIndex = BuiltIn 29++pattern BuiltInWorkDim :: BuiltIn+pattern BuiltInWorkDim = BuiltIn 30++pattern BuiltInGlobalSize :: BuiltIn+pattern BuiltInGlobalSize = BuiltIn 31++pattern BuiltInEnqueuedWorkgroupSize :: BuiltIn+pattern BuiltInEnqueuedWorkgroupSize = BuiltIn 32++pattern BuiltInGlobalOffset :: BuiltIn+pattern BuiltInGlobalOffset = BuiltIn 33++pattern BuiltInGlobalLinearId :: BuiltIn+pattern BuiltInGlobalLinearId = BuiltIn 34++pattern BuiltInSubgroupSize :: BuiltIn+pattern BuiltInSubgroupSize = BuiltIn 36++pattern BuiltInSubgroupMaxSize :: BuiltIn+pattern BuiltInSubgroupMaxSize = BuiltIn 37++pattern BuiltInNumSubgroups :: BuiltIn+pattern BuiltInNumSubgroups = BuiltIn 38++pattern BuiltInNumEnqueuedSubgroups :: BuiltIn+pattern BuiltInNumEnqueuedSubgroups = BuiltIn 39++pattern BuiltInSubgroupId :: BuiltIn+pattern BuiltInSubgroupId = BuiltIn 40++pattern BuiltInSubgroupLocalInvocationId :: BuiltIn+pattern BuiltInSubgroupLocalInvocationId = BuiltIn 41++pattern BuiltInVertexIndex :: BuiltIn+pattern BuiltInVertexIndex = BuiltIn 42++pattern BuiltInInstanceIndex :: BuiltIn+pattern BuiltInInstanceIndex = BuiltIn 43++pattern BuiltInSubgroupEqMask :: BuiltIn+pattern BuiltInSubgroupEqMask = BuiltIn 4416++pattern BuiltInSubgroupEqMaskKHR :: BuiltIn+pattern BuiltInSubgroupEqMaskKHR = BuiltIn 4416++pattern BuiltInSubgroupGeMask :: BuiltIn+pattern BuiltInSubgroupGeMask = BuiltIn 4417++pattern BuiltInSubgroupGeMaskKHR :: BuiltIn+pattern BuiltInSubgroupGeMaskKHR = BuiltIn 4417++pattern BuiltInSubgroupGtMask :: BuiltIn+pattern BuiltInSubgroupGtMask = BuiltIn 4418++pattern BuiltInSubgroupGtMaskKHR :: BuiltIn+pattern BuiltInSubgroupGtMaskKHR = BuiltIn 4418++pattern BuiltInSubgroupLeMask :: BuiltIn+pattern BuiltInSubgroupLeMask = BuiltIn 4419++pattern BuiltInSubgroupLeMaskKHR :: BuiltIn+pattern BuiltInSubgroupLeMaskKHR = BuiltIn 4419++pattern BuiltInSubgroupLtMask :: BuiltIn+pattern BuiltInSubgroupLtMask = BuiltIn 4420++pattern BuiltInSubgroupLtMaskKHR :: BuiltIn+pattern BuiltInSubgroupLtMaskKHR = BuiltIn 4420++pattern BuiltInBaseVertex :: BuiltIn+pattern BuiltInBaseVertex = BuiltIn 4424++pattern BuiltInBaseInstance :: BuiltIn+pattern BuiltInBaseInstance = BuiltIn 4425++pattern BuiltInDrawIndex :: BuiltIn+pattern BuiltInDrawIndex = BuiltIn 4426++pattern BuiltInPrimitiveShadingRateKHR :: BuiltIn+pattern BuiltInPrimitiveShadingRateKHR = BuiltIn 4432++pattern BuiltInDeviceIndex :: BuiltIn+pattern BuiltInDeviceIndex = BuiltIn 4438++pattern BuiltInViewIndex :: BuiltIn+pattern BuiltInViewIndex = BuiltIn 4440++pattern BuiltInShadingRateKHR :: BuiltIn+pattern BuiltInShadingRateKHR = BuiltIn 4444++pattern BuiltInBaryCoordNoPerspAMD :: BuiltIn+pattern BuiltInBaryCoordNoPerspAMD = BuiltIn 4992++pattern BuiltInBaryCoordNoPerspCentroidAMD :: BuiltIn+pattern BuiltInBaryCoordNoPerspCentroidAMD = BuiltIn 4993++pattern BuiltInBaryCoordNoPerspSampleAMD :: BuiltIn+pattern BuiltInBaryCoordNoPerspSampleAMD = BuiltIn 4994++pattern BuiltInBaryCoordSmoothAMD :: BuiltIn+pattern BuiltInBaryCoordSmoothAMD = BuiltIn 4995++pattern BuiltInBaryCoordSmoothCentroidAMD :: BuiltIn+pattern BuiltInBaryCoordSmoothCentroidAMD = BuiltIn 4996++pattern BuiltInBaryCoordSmoothSampleAMD :: BuiltIn+pattern BuiltInBaryCoordSmoothSampleAMD = BuiltIn 4997++pattern BuiltInBaryCoordPullModelAMD :: BuiltIn+pattern BuiltInBaryCoordPullModelAMD = BuiltIn 4998++pattern BuiltInFragStencilRefEXT :: BuiltIn+pattern BuiltInFragStencilRefEXT = BuiltIn 5014++pattern BuiltInViewportMaskNV :: BuiltIn+pattern BuiltInViewportMaskNV = BuiltIn 5253++pattern BuiltInSecondaryPositionNV :: BuiltIn+pattern BuiltInSecondaryPositionNV = BuiltIn 5257++pattern BuiltInSecondaryViewportMaskNV :: BuiltIn+pattern BuiltInSecondaryViewportMaskNV = BuiltIn 5258++pattern BuiltInPositionPerViewNV :: BuiltIn+pattern BuiltInPositionPerViewNV = BuiltIn 5261++pattern BuiltInViewportMaskPerViewNV :: BuiltIn+pattern BuiltInViewportMaskPerViewNV = BuiltIn 5262++pattern BuiltInFullyCoveredEXT :: BuiltIn+pattern BuiltInFullyCoveredEXT = BuiltIn 5264++pattern BuiltInTaskCountNV :: BuiltIn+pattern BuiltInTaskCountNV = BuiltIn 5274++pattern BuiltInPrimitiveCountNV :: BuiltIn+pattern BuiltInPrimitiveCountNV = BuiltIn 5275++pattern BuiltInPrimitiveIndicesNV :: BuiltIn+pattern BuiltInPrimitiveIndicesNV = BuiltIn 5276++pattern BuiltInClipDistancePerViewNV :: BuiltIn+pattern BuiltInClipDistancePerViewNV = BuiltIn 5277++pattern BuiltInCullDistancePerViewNV :: BuiltIn+pattern BuiltInCullDistancePerViewNV = BuiltIn 5278++pattern BuiltInLayerPerViewNV :: BuiltIn+pattern BuiltInLayerPerViewNV = BuiltIn 5279++pattern BuiltInMeshViewCountNV :: BuiltIn+pattern BuiltInMeshViewCountNV = BuiltIn 5280++pattern BuiltInMeshViewIndicesNV :: BuiltIn+pattern BuiltInMeshViewIndicesNV = BuiltIn 5281++pattern BuiltInBaryCoordKHR :: BuiltIn+pattern BuiltInBaryCoordKHR = BuiltIn 5286++pattern BuiltInBaryCoordNV :: BuiltIn+pattern BuiltInBaryCoordNV = BuiltIn 5286++pattern BuiltInBaryCoordNoPerspKHR :: BuiltIn+pattern BuiltInBaryCoordNoPerspKHR = BuiltIn 5287++pattern BuiltInBaryCoordNoPerspNV :: BuiltIn+pattern BuiltInBaryCoordNoPerspNV = BuiltIn 5287++pattern BuiltInFragSizeEXT :: BuiltIn+pattern BuiltInFragSizeEXT = BuiltIn 5292++pattern BuiltInFragmentSizeNV :: BuiltIn+pattern BuiltInFragmentSizeNV = BuiltIn 5292++pattern BuiltInFragInvocationCountEXT :: BuiltIn+pattern BuiltInFragInvocationCountEXT = BuiltIn 5293++pattern BuiltInInvocationsPerPixelNV :: BuiltIn+pattern BuiltInInvocationsPerPixelNV = BuiltIn 5293++pattern BuiltInLaunchIdKHR :: BuiltIn+pattern BuiltInLaunchIdKHR = BuiltIn 5319++pattern BuiltInLaunchIdNV :: BuiltIn+pattern BuiltInLaunchIdNV = BuiltIn 5319++pattern BuiltInLaunchSizeKHR :: BuiltIn+pattern BuiltInLaunchSizeKHR = BuiltIn 5320++pattern BuiltInLaunchSizeNV :: BuiltIn+pattern BuiltInLaunchSizeNV = BuiltIn 5320++pattern BuiltInWorldRayOriginKHR :: BuiltIn+pattern BuiltInWorldRayOriginKHR = BuiltIn 5321++pattern BuiltInWorldRayOriginNV :: BuiltIn+pattern BuiltInWorldRayOriginNV = BuiltIn 5321++pattern BuiltInWorldRayDirectionKHR :: BuiltIn+pattern BuiltInWorldRayDirectionKHR = BuiltIn 5322++pattern BuiltInWorldRayDirectionNV :: BuiltIn+pattern BuiltInWorldRayDirectionNV = BuiltIn 5322++pattern BuiltInObjectRayOriginKHR :: BuiltIn+pattern BuiltInObjectRayOriginKHR = BuiltIn 5323++pattern BuiltInObjectRayOriginNV :: BuiltIn+pattern BuiltInObjectRayOriginNV = BuiltIn 5323++pattern BuiltInObjectRayDirectionKHR :: BuiltIn+pattern BuiltInObjectRayDirectionKHR = BuiltIn 5324++pattern BuiltInObjectRayDirectionNV :: BuiltIn+pattern BuiltInObjectRayDirectionNV = BuiltIn 5324++pattern BuiltInRayTminKHR :: BuiltIn+pattern BuiltInRayTminKHR = BuiltIn 5325++pattern BuiltInRayTminNV :: BuiltIn+pattern BuiltInRayTminNV = BuiltIn 5325++pattern BuiltInRayTmaxKHR :: BuiltIn+pattern BuiltInRayTmaxKHR = BuiltIn 5326++pattern BuiltInRayTmaxNV :: BuiltIn+pattern BuiltInRayTmaxNV = BuiltIn 5326++pattern BuiltInInstanceCustomIndexKHR :: BuiltIn+pattern BuiltInInstanceCustomIndexKHR = BuiltIn 5327++pattern BuiltInInstanceCustomIndexNV :: BuiltIn+pattern BuiltInInstanceCustomIndexNV = BuiltIn 5327++pattern BuiltInObjectToWorldKHR :: BuiltIn+pattern BuiltInObjectToWorldKHR = BuiltIn 5330++pattern BuiltInObjectToWorldNV :: BuiltIn+pattern BuiltInObjectToWorldNV = BuiltIn 5330++pattern BuiltInWorldToObjectKHR :: BuiltIn+pattern BuiltInWorldToObjectKHR = BuiltIn 5331++pattern BuiltInWorldToObjectNV :: BuiltIn+pattern BuiltInWorldToObjectNV = BuiltIn 5331++pattern BuiltInHitTNV :: BuiltIn+pattern BuiltInHitTNV = BuiltIn 5332++pattern BuiltInHitKindKHR :: BuiltIn+pattern BuiltInHitKindKHR = BuiltIn 5333++pattern BuiltInHitKindNV :: BuiltIn+pattern BuiltInHitKindNV = BuiltIn 5333++pattern BuiltInCurrentRayTimeNV :: BuiltIn+pattern BuiltInCurrentRayTimeNV = BuiltIn 5334++pattern BuiltInIncomingRayFlagsKHR :: BuiltIn+pattern BuiltInIncomingRayFlagsKHR = BuiltIn 5351++pattern BuiltInIncomingRayFlagsNV :: BuiltIn+pattern BuiltInIncomingRayFlagsNV = BuiltIn 5351++pattern BuiltInRayGeometryIndexKHR :: BuiltIn+pattern BuiltInRayGeometryIndexKHR = BuiltIn 5352++pattern BuiltInWarpsPerSMNV :: BuiltIn+pattern BuiltInWarpsPerSMNV = BuiltIn 5374++pattern BuiltInSMCountNV :: BuiltIn+pattern BuiltInSMCountNV = BuiltIn 5375++pattern BuiltInWarpIDNV :: BuiltIn+pattern BuiltInWarpIDNV = BuiltIn 5376++pattern BuiltInSMIDNV :: BuiltIn+pattern BuiltInSMIDNV = BuiltIn 5377++pattern BuiltInCullMaskKHR :: BuiltIn+pattern BuiltInCullMaskKHR = BuiltIn 6021++pattern BuiltInMax :: BuiltIn+pattern BuiltInMax = BuiltIn 0x7fffffff
+ lib/Data/SpirV/Reflect/Enums/SpirvDim.hs view
@@ -0,0 +1,30 @@+module Data.SpirV.Reflect.Enums.SpirvDim where++import Data.SpirV.Reflect.Enums.Common++newtype Dim = Dim Int32+  deriving newtype (Eq, Ord, Show, Enum, Bounded)++pattern Dim1D :: Dim+pattern Dim1D = Dim 0++pattern Dim2D :: Dim+pattern Dim2D = Dim 1++pattern Dim3D :: Dim+pattern Dim3D = Dim 2++pattern DimCube :: Dim+pattern DimCube = Dim 3++pattern DimRect :: Dim+pattern DimRect = Dim 4++pattern DimBuffer :: Dim+pattern DimBuffer = Dim 5++pattern DimSubpassData :: Dim+pattern DimSubpassData = Dim 6++pattern DimMax :: Dim+pattern DimMax = Dim 0x7fffffff
+ lib/Data/SpirV/Reflect/Enums/SpirvImageFormat.hs view
@@ -0,0 +1,135 @@+module Data.SpirV.Reflect.Enums.SpirvImageFormat where++import Data.SpirV.Reflect.Enums.Common++newtype ImageFormat = ImageFormat Int32+  deriving newtype (Eq, Ord, Show, Enum, Bounded)++pattern ImageFormatUnknown :: ImageFormat+pattern ImageFormatUnknown = ImageFormat 0++pattern ImageFormatRgba32f :: ImageFormat+pattern ImageFormatRgba32f = ImageFormat 1++pattern ImageFormatRgba16f :: ImageFormat+pattern ImageFormatRgba16f = ImageFormat 2++pattern ImageFormatR32f :: ImageFormat+pattern ImageFormatR32f = ImageFormat 3++pattern ImageFormatRgba8 :: ImageFormat+pattern ImageFormatRgba8 = ImageFormat 4++pattern ImageFormatRgba8Snorm :: ImageFormat+pattern ImageFormatRgba8Snorm = ImageFormat 5++pattern ImageFormatRg32f :: ImageFormat+pattern ImageFormatRg32f = ImageFormat 6++pattern ImageFormatRg16f :: ImageFormat+pattern ImageFormatRg16f = ImageFormat 7++pattern ImageFormatR11fG11fB10f :: ImageFormat+pattern ImageFormatR11fG11fB10f = ImageFormat 8++pattern ImageFormatR16f :: ImageFormat+pattern ImageFormatR16f = ImageFormat 9++pattern ImageFormatRgba16 :: ImageFormat+pattern ImageFormatRgba16 = ImageFormat 10++pattern ImageFormatRgb10A2 :: ImageFormat+pattern ImageFormatRgb10A2 = ImageFormat 11++pattern ImageFormatRg16 :: ImageFormat+pattern ImageFormatRg16 = ImageFormat 12++pattern ImageFormatRg8 :: ImageFormat+pattern ImageFormatRg8 = ImageFormat 13++pattern ImageFormatR16 :: ImageFormat+pattern ImageFormatR16 = ImageFormat 14++pattern ImageFormatR8 :: ImageFormat+pattern ImageFormatR8 = ImageFormat 15++pattern ImageFormatRgba16Snorm :: ImageFormat+pattern ImageFormatRgba16Snorm = ImageFormat 16++pattern ImageFormatRg16Snorm :: ImageFormat+pattern ImageFormatRg16Snorm = ImageFormat 17++pattern ImageFormatRg8Snorm :: ImageFormat+pattern ImageFormatRg8Snorm = ImageFormat 18++pattern ImageFormatR16Snorm :: ImageFormat+pattern ImageFormatR16Snorm = ImageFormat 19++pattern ImageFormatR8Snorm :: ImageFormat+pattern ImageFormatR8Snorm = ImageFormat 20++pattern ImageFormatRgba32i :: ImageFormat+pattern ImageFormatRgba32i = ImageFormat 21++pattern ImageFormatRgba16i :: ImageFormat+pattern ImageFormatRgba16i = ImageFormat 22++pattern ImageFormatRgba8i :: ImageFormat+pattern ImageFormatRgba8i = ImageFormat 23++pattern ImageFormatR32i :: ImageFormat+pattern ImageFormatR32i = ImageFormat 24++pattern ImageFormatRg32i :: ImageFormat+pattern ImageFormatRg32i = ImageFormat 25++pattern ImageFormatRg16i :: ImageFormat+pattern ImageFormatRg16i = ImageFormat 26++pattern ImageFormatRg8i :: ImageFormat+pattern ImageFormatRg8i = ImageFormat 27++pattern ImageFormatR16i :: ImageFormat+pattern ImageFormatR16i = ImageFormat 28++pattern ImageFormatR8i :: ImageFormat+pattern ImageFormatR8i = ImageFormat 29++pattern ImageFormatRgba32ui :: ImageFormat+pattern ImageFormatRgba32ui = ImageFormat 30++pattern ImageFormatRgba16ui :: ImageFormat+pattern ImageFormatRgba16ui = ImageFormat 31++pattern ImageFormatRgba8ui :: ImageFormat+pattern ImageFormatRgba8ui = ImageFormat 32++pattern ImageFormatR32ui :: ImageFormat+pattern ImageFormatR32ui = ImageFormat 33++pattern ImageFormatRgb10a2ui :: ImageFormat+pattern ImageFormatRgb10a2ui = ImageFormat 34++pattern ImageFormatRg32ui :: ImageFormat+pattern ImageFormatRg32ui = ImageFormat 35++pattern ImageFormatRg16ui :: ImageFormat+pattern ImageFormatRg16ui = ImageFormat 36++pattern ImageFormatRg8ui :: ImageFormat+pattern ImageFormatRg8ui = ImageFormat 37++pattern ImageFormatR16ui :: ImageFormat+pattern ImageFormatR16ui = ImageFormat 38++pattern ImageFormatR8ui :: ImageFormat+pattern ImageFormatR8ui = ImageFormat 39++pattern ImageFormatR64ui :: ImageFormat+pattern ImageFormatR64ui = ImageFormat 40++pattern ImageFormatR64i :: ImageFormat+pattern ImageFormatR64i = ImageFormat 41++pattern ImageFormatMax :: ImageFormat+pattern ImageFormatMax = ImageFormat 0x7fffffff
+ lib/Data/SpirV/Reflect/Enums/SpirvOp.hs view
@@ -0,0 +1,2013 @@+module Data.SpirV.Reflect.Enums.SpirvOp where++import Data.SpirV.Reflect.Enums.Common++newtype Op = Op Int32+  deriving newtype (Eq, Ord, Show, Enum, Bounded)++pattern OpNop :: Op+pattern OpNop = Op 0++pattern OpUndef :: Op+pattern OpUndef = Op 1++pattern OpSourceContinued :: Op+pattern OpSourceContinued = Op 2++pattern OpSource :: Op+pattern OpSource = Op 3++pattern OpSourceExtension :: Op+pattern OpSourceExtension = Op 4++pattern OpName :: Op+pattern OpName = Op 5++pattern OpMemberName :: Op+pattern OpMemberName = Op 6++pattern OpString :: Op+pattern OpString = Op 7++pattern OpLine :: Op+pattern OpLine = Op 8++pattern OpExtension :: Op+pattern OpExtension = Op 10++pattern OpExtInstImport :: Op+pattern OpExtInstImport = Op 11++pattern OpExtInst :: Op+pattern OpExtInst = Op 12++pattern OpMemoryModel :: Op+pattern OpMemoryModel = Op 14++pattern OpEntryPoint :: Op+pattern OpEntryPoint = Op 15++pattern OpExecutionMode :: Op+pattern OpExecutionMode = Op 16++pattern OpCapability :: Op+pattern OpCapability = Op 17++pattern OpTypeVoid :: Op+pattern OpTypeVoid = Op 19++pattern OpTypeBool :: Op+pattern OpTypeBool = Op 20++pattern OpTypeInt :: Op+pattern OpTypeInt = Op 21++pattern OpTypeFloat :: Op+pattern OpTypeFloat = Op 22++pattern OpTypeVector :: Op+pattern OpTypeVector = Op 23++pattern OpTypeMatrix :: Op+pattern OpTypeMatrix = Op 24++pattern OpTypeImage :: Op+pattern OpTypeImage = Op 25++pattern OpTypeSampler :: Op+pattern OpTypeSampler = Op 26++pattern OpTypeSampledImage :: Op+pattern OpTypeSampledImage = Op 27++pattern OpTypeArray :: Op+pattern OpTypeArray = Op 28++pattern OpTypeRuntimeArray :: Op+pattern OpTypeRuntimeArray = Op 29++pattern OpTypeStruct :: Op+pattern OpTypeStruct = Op 30++pattern OpTypeOpaque :: Op+pattern OpTypeOpaque = Op 31++pattern OpTypePointer :: Op+pattern OpTypePointer = Op 32++pattern OpTypeFunction :: Op+pattern OpTypeFunction = Op 33++pattern OpTypeEvent :: Op+pattern OpTypeEvent = Op 34++pattern OpTypeDeviceEvent :: Op+pattern OpTypeDeviceEvent = Op 35++pattern OpTypeReserveId :: Op+pattern OpTypeReserveId = Op 36++pattern OpTypeQueue :: Op+pattern OpTypeQueue = Op 37++pattern OpTypePipe :: Op+pattern OpTypePipe = Op 38++pattern OpTypeForwardPointer :: Op+pattern OpTypeForwardPointer = Op 39++pattern OpConstantTrue :: Op+pattern OpConstantTrue = Op 41++pattern OpConstantFalse :: Op+pattern OpConstantFalse = Op 42++pattern OpConstant :: Op+pattern OpConstant = Op 43++pattern OpConstantComposite :: Op+pattern OpConstantComposite = Op 44++pattern OpConstantSampler :: Op+pattern OpConstantSampler = Op 45++pattern OpConstantNull :: Op+pattern OpConstantNull = Op 46++pattern OpSpecConstantTrue :: Op+pattern OpSpecConstantTrue = Op 48++pattern OpSpecConstantFalse :: Op+pattern OpSpecConstantFalse = Op 49++pattern OpSpecConstant :: Op+pattern OpSpecConstant = Op 50++pattern OpSpecConstantComposite :: Op+pattern OpSpecConstantComposite = Op 51++pattern OpSpecConstantOp :: Op+pattern OpSpecConstantOp = Op 52++pattern OpFunction :: Op+pattern OpFunction = Op 54++pattern OpFunctionParameter :: Op+pattern OpFunctionParameter = Op 55++pattern OpFunctionEnd :: Op+pattern OpFunctionEnd = Op 56++pattern OpFunctionCall :: Op+pattern OpFunctionCall = Op 57++pattern OpVariable :: Op+pattern OpVariable = Op 59++pattern OpImageTexelPointer :: Op+pattern OpImageTexelPointer = Op 60++pattern OpLoad :: Op+pattern OpLoad = Op 61++pattern OpStore :: Op+pattern OpStore = Op 62++pattern OpCopyMemory :: Op+pattern OpCopyMemory = Op 63++pattern OpCopyMemorySized :: Op+pattern OpCopyMemorySized = Op 64++pattern OpAccessChain :: Op+pattern OpAccessChain = Op 65++pattern OpInBoundsAccessChain :: Op+pattern OpInBoundsAccessChain = Op 66++pattern OpPtrAccessChain :: Op+pattern OpPtrAccessChain = Op 67++pattern OpArrayLength :: Op+pattern OpArrayLength = Op 68++pattern OpGenericPtrMemSemantics :: Op+pattern OpGenericPtrMemSemantics = Op 69++pattern OpInBoundsPtrAccessChain :: Op+pattern OpInBoundsPtrAccessChain = Op 70++pattern OpDecorate :: Op+pattern OpDecorate = Op 71++pattern OpMemberDecorate :: Op+pattern OpMemberDecorate = Op 72++pattern OpDecorationGroup :: Op+pattern OpDecorationGroup = Op 73++pattern OpGroupDecorate :: Op+pattern OpGroupDecorate = Op 74++pattern OpGroupMemberDecorate :: Op+pattern OpGroupMemberDecorate = Op 75++pattern OpVectorExtractDynamic :: Op+pattern OpVectorExtractDynamic = Op 77++pattern OpVectorInsertDynamic :: Op+pattern OpVectorInsertDynamic = Op 78++pattern OpVectorShuffle :: Op+pattern OpVectorShuffle = Op 79++pattern OpCompositeConstruct :: Op+pattern OpCompositeConstruct = Op 80++pattern OpCompositeExtract :: Op+pattern OpCompositeExtract = Op 81++pattern OpCompositeInsert :: Op+pattern OpCompositeInsert = Op 82++pattern OpCopyObject :: Op+pattern OpCopyObject = Op 83++pattern OpTranspose :: Op+pattern OpTranspose = Op 84++pattern OpSampledImage :: Op+pattern OpSampledImage = Op 86++pattern OpImageSampleImplicitLod :: Op+pattern OpImageSampleImplicitLod = Op 87++pattern OpImageSampleExplicitLod :: Op+pattern OpImageSampleExplicitLod = Op 88++pattern OpImageSampleDrefImplicitLod :: Op+pattern OpImageSampleDrefImplicitLod = Op 89++pattern OpImageSampleDrefExplicitLod :: Op+pattern OpImageSampleDrefExplicitLod = Op 90++pattern OpImageSampleProjImplicitLod :: Op+pattern OpImageSampleProjImplicitLod = Op 91++pattern OpImageSampleProjExplicitLod :: Op+pattern OpImageSampleProjExplicitLod = Op 92++pattern OpImageSampleProjDrefImplicitLod :: Op+pattern OpImageSampleProjDrefImplicitLod = Op 93++pattern OpImageSampleProjDrefExplicitLod :: Op+pattern OpImageSampleProjDrefExplicitLod = Op 94++pattern OpImageFetch :: Op+pattern OpImageFetch = Op 95++pattern OpImageGather :: Op+pattern OpImageGather = Op 96++pattern OpImageDrefGather :: Op+pattern OpImageDrefGather = Op 97++pattern OpImageRead :: Op+pattern OpImageRead = Op 98++pattern OpImageWrite :: Op+pattern OpImageWrite = Op 99++pattern OpImage :: Op+pattern OpImage = Op 100++pattern OpImageQueryFormat :: Op+pattern OpImageQueryFormat = Op 101++pattern OpImageQueryOrder :: Op+pattern OpImageQueryOrder = Op 102++pattern OpImageQuerySizeLod :: Op+pattern OpImageQuerySizeLod = Op 103++pattern OpImageQuerySize :: Op+pattern OpImageQuerySize = Op 104++pattern OpImageQueryLod :: Op+pattern OpImageQueryLod = Op 105++pattern OpImageQueryLevels :: Op+pattern OpImageQueryLevels = Op 106++pattern OpImageQuerySamples :: Op+pattern OpImageQuerySamples = Op 107++pattern OpConvertFToU :: Op+pattern OpConvertFToU = Op 109++pattern OpConvertFToS :: Op+pattern OpConvertFToS = Op 110++pattern OpConvertSToF :: Op+pattern OpConvertSToF = Op 111++pattern OpConvertUToF :: Op+pattern OpConvertUToF = Op 112++pattern OpUConvert :: Op+pattern OpUConvert = Op 113++pattern OpSConvert :: Op+pattern OpSConvert = Op 114++pattern OpFConvert :: Op+pattern OpFConvert = Op 115++pattern OpQuantizeToF16 :: Op+pattern OpQuantizeToF16 = Op 116++pattern OpConvertPtrToU :: Op+pattern OpConvertPtrToU = Op 117++pattern OpSatConvertSToU :: Op+pattern OpSatConvertSToU = Op 118++pattern OpSatConvertUToS :: Op+pattern OpSatConvertUToS = Op 119++pattern OpConvertUToPtr :: Op+pattern OpConvertUToPtr = Op 120++pattern OpPtrCastToGeneric :: Op+pattern OpPtrCastToGeneric = Op 121++pattern OpGenericCastToPtr :: Op+pattern OpGenericCastToPtr = Op 122++pattern OpGenericCastToPtrExplicit :: Op+pattern OpGenericCastToPtrExplicit = Op 123++pattern OpBitcast :: Op+pattern OpBitcast = Op 124++pattern OpSNegate :: Op+pattern OpSNegate = Op 126++pattern OpFNegate :: Op+pattern OpFNegate = Op 127++pattern OpIAdd :: Op+pattern OpIAdd = Op 128++pattern OpFAdd :: Op+pattern OpFAdd = Op 129++pattern OpISub :: Op+pattern OpISub = Op 130++pattern OpFSub :: Op+pattern OpFSub = Op 131++pattern OpIMul :: Op+pattern OpIMul = Op 132++pattern OpFMul :: Op+pattern OpFMul = Op 133++pattern OpUDiv :: Op+pattern OpUDiv = Op 134++pattern OpSDiv :: Op+pattern OpSDiv = Op 135++pattern OpFDiv :: Op+pattern OpFDiv = Op 136++pattern OpUMod :: Op+pattern OpUMod = Op 137++pattern OpSRem :: Op+pattern OpSRem = Op 138++pattern OpSMod :: Op+pattern OpSMod = Op 139++pattern OpFRem :: Op+pattern OpFRem = Op 140++pattern OpFMod :: Op+pattern OpFMod = Op 141++pattern OpVectorTimesScalar :: Op+pattern OpVectorTimesScalar = Op 142++pattern OpMatrixTimesScalar :: Op+pattern OpMatrixTimesScalar = Op 143++pattern OpVectorTimesMatrix :: Op+pattern OpVectorTimesMatrix = Op 144++pattern OpMatrixTimesVector :: Op+pattern OpMatrixTimesVector = Op 145++pattern OpMatrixTimesMatrix :: Op+pattern OpMatrixTimesMatrix = Op 146++pattern OpOuterProduct :: Op+pattern OpOuterProduct = Op 147++pattern OpDot :: Op+pattern OpDot = Op 148++pattern OpIAddCarry :: Op+pattern OpIAddCarry = Op 149++pattern OpISubBorrow :: Op+pattern OpISubBorrow = Op 150++pattern OpUMulExtended :: Op+pattern OpUMulExtended = Op 151++pattern OpSMulExtended :: Op+pattern OpSMulExtended = Op 152++pattern OpAny :: Op+pattern OpAny = Op 154++pattern OpAll :: Op+pattern OpAll = Op 155++pattern OpIsNan :: Op+pattern OpIsNan = Op 156++pattern OpIsInf :: Op+pattern OpIsInf = Op 157++pattern OpIsFinite :: Op+pattern OpIsFinite = Op 158++pattern OpIsNormal :: Op+pattern OpIsNormal = Op 159++pattern OpSignBitSet :: Op+pattern OpSignBitSet = Op 160++pattern OpLessOrGreater :: Op+pattern OpLessOrGreater = Op 161++pattern OpOrdered :: Op+pattern OpOrdered = Op 162++pattern OpUnordered :: Op+pattern OpUnordered = Op 163++pattern OpLogicalEqual :: Op+pattern OpLogicalEqual = Op 164++pattern OpLogicalNotEqual :: Op+pattern OpLogicalNotEqual = Op 165++pattern OpLogicalOr :: Op+pattern OpLogicalOr = Op 166++pattern OpLogicalAnd :: Op+pattern OpLogicalAnd = Op 167++pattern OpLogicalNot :: Op+pattern OpLogicalNot = Op 168++pattern OpSelect :: Op+pattern OpSelect = Op 169++pattern OpIEqual :: Op+pattern OpIEqual = Op 170++pattern OpINotEqual :: Op+pattern OpINotEqual = Op 171++pattern OpUGreaterThan :: Op+pattern OpUGreaterThan = Op 172++pattern OpSGreaterThan :: Op+pattern OpSGreaterThan = Op 173++pattern OpUGreaterThanEqual :: Op+pattern OpUGreaterThanEqual = Op 174++pattern OpSGreaterThanEqual :: Op+pattern OpSGreaterThanEqual = Op 175++pattern OpULessThan :: Op+pattern OpULessThan = Op 176++pattern OpSLessThan :: Op+pattern OpSLessThan = Op 177++pattern OpULessThanEqual :: Op+pattern OpULessThanEqual = Op 178++pattern OpSLessThanEqual :: Op+pattern OpSLessThanEqual = Op 179++pattern OpFOrdEqual :: Op+pattern OpFOrdEqual = Op 180++pattern OpFUnordEqual :: Op+pattern OpFUnordEqual = Op 181++pattern OpFOrdNotEqual :: Op+pattern OpFOrdNotEqual = Op 182++pattern OpFUnordNotEqual :: Op+pattern OpFUnordNotEqual = Op 183++pattern OpFOrdLessThan :: Op+pattern OpFOrdLessThan = Op 184++pattern OpFUnordLessThan :: Op+pattern OpFUnordLessThan = Op 185++pattern OpFOrdGreaterThan :: Op+pattern OpFOrdGreaterThan = Op 186++pattern OpFUnordGreaterThan :: Op+pattern OpFUnordGreaterThan = Op 187++pattern OpFOrdLessThanEqual :: Op+pattern OpFOrdLessThanEqual = Op 188++pattern OpFUnordLessThanEqual :: Op+pattern OpFUnordLessThanEqual = Op 189++pattern OpFOrdGreaterThanEqual :: Op+pattern OpFOrdGreaterThanEqual = Op 190++pattern OpFUnordGreaterThanEqual :: Op+pattern OpFUnordGreaterThanEqual = Op 191++pattern OpShiftRightLogical :: Op+pattern OpShiftRightLogical = Op 194++pattern OpShiftRightArithmetic :: Op+pattern OpShiftRightArithmetic = Op 195++pattern OpShiftLeftLogical :: Op+pattern OpShiftLeftLogical = Op 196++pattern OpBitwiseOr :: Op+pattern OpBitwiseOr = Op 197++pattern OpBitwiseXor :: Op+pattern OpBitwiseXor = Op 198++pattern OpBitwiseAnd :: Op+pattern OpBitwiseAnd = Op 199++pattern OpNot :: Op+pattern OpNot = Op 200++pattern OpBitFieldInsert :: Op+pattern OpBitFieldInsert = Op 201++pattern OpBitFieldSExtract :: Op+pattern OpBitFieldSExtract = Op 202++pattern OpBitFieldUExtract :: Op+pattern OpBitFieldUExtract = Op 203++pattern OpBitReverse :: Op+pattern OpBitReverse = Op 204++pattern OpBitCount :: Op+pattern OpBitCount = Op 205++pattern OpDPdx :: Op+pattern OpDPdx = Op 207++pattern OpDPdy :: Op+pattern OpDPdy = Op 208++pattern OpFwidth :: Op+pattern OpFwidth = Op 209++pattern OpDPdxFine :: Op+pattern OpDPdxFine = Op 210++pattern OpDPdyFine :: Op+pattern OpDPdyFine = Op 211++pattern OpFwidthFine :: Op+pattern OpFwidthFine = Op 212++pattern OpDPdxCoarse :: Op+pattern OpDPdxCoarse = Op 213++pattern OpDPdyCoarse :: Op+pattern OpDPdyCoarse = Op 214++pattern OpFwidthCoarse :: Op+pattern OpFwidthCoarse = Op 215++pattern OpEmitVertex :: Op+pattern OpEmitVertex = Op 218++pattern OpEndPrimitive :: Op+pattern OpEndPrimitive = Op 219++pattern OpEmitStreamVertex :: Op+pattern OpEmitStreamVertex = Op 220++pattern OpEndStreamPrimitive :: Op+pattern OpEndStreamPrimitive = Op 221++pattern OpControlBarrier :: Op+pattern OpControlBarrier = Op 224++pattern OpMemoryBarrier :: Op+pattern OpMemoryBarrier = Op 225++pattern OpAtomicLoad :: Op+pattern OpAtomicLoad = Op 227++pattern OpAtomicStore :: Op+pattern OpAtomicStore = Op 228++pattern OpAtomicExchange :: Op+pattern OpAtomicExchange = Op 229++pattern OpAtomicCompareExchange :: Op+pattern OpAtomicCompareExchange = Op 230++pattern OpAtomicCompareExchangeWeak :: Op+pattern OpAtomicCompareExchangeWeak = Op 231++pattern OpAtomicIIncrement :: Op+pattern OpAtomicIIncrement = Op 232++pattern OpAtomicIDecrement :: Op+pattern OpAtomicIDecrement = Op 233++pattern OpAtomicIAdd :: Op+pattern OpAtomicIAdd = Op 234++pattern OpAtomicISub :: Op+pattern OpAtomicISub = Op 235++pattern OpAtomicSMin :: Op+pattern OpAtomicSMin = Op 236++pattern OpAtomicUMin :: Op+pattern OpAtomicUMin = Op 237++pattern OpAtomicSMax :: Op+pattern OpAtomicSMax = Op 238++pattern OpAtomicUMax :: Op+pattern OpAtomicUMax = Op 239++pattern OpAtomicAnd :: Op+pattern OpAtomicAnd = Op 240++pattern OpAtomicOr :: Op+pattern OpAtomicOr = Op 241++pattern OpAtomicXor :: Op+pattern OpAtomicXor = Op 242++pattern OpPhi :: Op+pattern OpPhi = Op 245++pattern OpLoopMerge :: Op+pattern OpLoopMerge = Op 246++pattern OpSelectionMerge :: Op+pattern OpSelectionMerge = Op 247++pattern OpLabel :: Op+pattern OpLabel = Op 248++pattern OpBranch :: Op+pattern OpBranch = Op 249++pattern OpBranchConditional :: Op+pattern OpBranchConditional = Op 250++pattern OpSwitch :: Op+pattern OpSwitch = Op 251++pattern OpKill :: Op+pattern OpKill = Op 252++pattern OpReturn :: Op+pattern OpReturn = Op 253++pattern OpReturnValue :: Op+pattern OpReturnValue = Op 254++pattern OpUnreachable :: Op+pattern OpUnreachable = Op 255++pattern OpLifetimeStart :: Op+pattern OpLifetimeStart = Op 256++pattern OpLifetimeStop :: Op+pattern OpLifetimeStop = Op 257++pattern OpGroupAsyncCopy :: Op+pattern OpGroupAsyncCopy = Op 259++pattern OpGroupWaitEvents :: Op+pattern OpGroupWaitEvents = Op 260++pattern OpGroupAll :: Op+pattern OpGroupAll = Op 261++pattern OpGroupAny :: Op+pattern OpGroupAny = Op 262++pattern OpGroupBroadcast :: Op+pattern OpGroupBroadcast = Op 263++pattern OpGroupIAdd :: Op+pattern OpGroupIAdd = Op 264++pattern OpGroupFAdd :: Op+pattern OpGroupFAdd = Op 265++pattern OpGroupFMin :: Op+pattern OpGroupFMin = Op 266++pattern OpGroupUMin :: Op+pattern OpGroupUMin = Op 267++pattern OpGroupSMin :: Op+pattern OpGroupSMin = Op 268++pattern OpGroupFMax :: Op+pattern OpGroupFMax = Op 269++pattern OpGroupUMax :: Op+pattern OpGroupUMax = Op 270++pattern OpGroupSMax :: Op+pattern OpGroupSMax = Op 271++pattern OpReadPipe :: Op+pattern OpReadPipe = Op 274++pattern OpWritePipe :: Op+pattern OpWritePipe = Op 275++pattern OpReservedReadPipe :: Op+pattern OpReservedReadPipe = Op 276++pattern OpReservedWritePipe :: Op+pattern OpReservedWritePipe = Op 277++pattern OpReserveReadPipePackets :: Op+pattern OpReserveReadPipePackets = Op 278++pattern OpReserveWritePipePackets :: Op+pattern OpReserveWritePipePackets = Op 279++pattern OpCommitReadPipe :: Op+pattern OpCommitReadPipe = Op 280++pattern OpCommitWritePipe :: Op+pattern OpCommitWritePipe = Op 281++pattern OpIsValidReserveId :: Op+pattern OpIsValidReserveId = Op 282++pattern OpGetNumPipePackets :: Op+pattern OpGetNumPipePackets = Op 283++pattern OpGetMaxPipePackets :: Op+pattern OpGetMaxPipePackets = Op 284++pattern OpGroupReserveReadPipePackets :: Op+pattern OpGroupReserveReadPipePackets = Op 285++pattern OpGroupReserveWritePipePackets :: Op+pattern OpGroupReserveWritePipePackets = Op 286++pattern OpGroupCommitReadPipe :: Op+pattern OpGroupCommitReadPipe = Op 287++pattern OpGroupCommitWritePipe :: Op+pattern OpGroupCommitWritePipe = Op 288++pattern OpEnqueueMarker :: Op+pattern OpEnqueueMarker = Op 291++pattern OpEnqueueKernel :: Op+pattern OpEnqueueKernel = Op 292++pattern OpGetKernelNDrangeSubGroupCount :: Op+pattern OpGetKernelNDrangeSubGroupCount = Op 293++pattern OpGetKernelNDrangeMaxSubGroupSize :: Op+pattern OpGetKernelNDrangeMaxSubGroupSize = Op 294++pattern OpGetKernelWorkGroupSize :: Op+pattern OpGetKernelWorkGroupSize = Op 295++pattern OpGetKernelPreferredWorkGroupSizeMultiple :: Op+pattern OpGetKernelPreferredWorkGroupSizeMultiple = Op 296++pattern OpRetainEvent :: Op+pattern OpRetainEvent = Op 297++pattern OpReleaseEvent :: Op+pattern OpReleaseEvent = Op 298++pattern OpCreateUserEvent :: Op+pattern OpCreateUserEvent = Op 299++pattern OpIsValidEvent :: Op+pattern OpIsValidEvent = Op 300++pattern OpSetUserEventStatus :: Op+pattern OpSetUserEventStatus = Op 301++pattern OpCaptureEventProfilingInfo :: Op+pattern OpCaptureEventProfilingInfo = Op 302++pattern OpGetDefaultQueue :: Op+pattern OpGetDefaultQueue = Op 303++pattern OpBuildNDRange :: Op+pattern OpBuildNDRange = Op 304++pattern OpImageSparseSampleImplicitLod :: Op+pattern OpImageSparseSampleImplicitLod = Op 305++pattern OpImageSparseSampleExplicitLod :: Op+pattern OpImageSparseSampleExplicitLod = Op 306++pattern OpImageSparseSampleDrefImplicitLod :: Op+pattern OpImageSparseSampleDrefImplicitLod = Op 307++pattern OpImageSparseSampleDrefExplicitLod :: Op+pattern OpImageSparseSampleDrefExplicitLod = Op 308++pattern OpImageSparseSampleProjImplicitLod :: Op+pattern OpImageSparseSampleProjImplicitLod = Op 309++pattern OpImageSparseSampleProjExplicitLod :: Op+pattern OpImageSparseSampleProjExplicitLod = Op 310++pattern OpImageSparseSampleProjDrefImplicitLod :: Op+pattern OpImageSparseSampleProjDrefImplicitLod = Op 311++pattern OpImageSparseSampleProjDrefExplicitLod :: Op+pattern OpImageSparseSampleProjDrefExplicitLod = Op 312++pattern OpImageSparseFetch :: Op+pattern OpImageSparseFetch = Op 313++pattern OpImageSparseGather :: Op+pattern OpImageSparseGather = Op 314++pattern OpImageSparseDrefGather :: Op+pattern OpImageSparseDrefGather = Op 315++pattern OpImageSparseTexelsResident :: Op+pattern OpImageSparseTexelsResident = Op 316++pattern OpNoLine :: Op+pattern OpNoLine = Op 317++pattern OpAtomicFlagTestAndSet :: Op+pattern OpAtomicFlagTestAndSet = Op 318++pattern OpAtomicFlagClear :: Op+pattern OpAtomicFlagClear = Op 319++pattern OpImageSparseRead :: Op+pattern OpImageSparseRead = Op 320++pattern OpSizeOf :: Op+pattern OpSizeOf = Op 321++pattern OpTypePipeStorage :: Op+pattern OpTypePipeStorage = Op 322++pattern OpConstantPipeStorage :: Op+pattern OpConstantPipeStorage = Op 323++pattern OpCreatePipeFromPipeStorage :: Op+pattern OpCreatePipeFromPipeStorage = Op 324++pattern OpGetKernelLocalSizeForSubgroupCount :: Op+pattern OpGetKernelLocalSizeForSubgroupCount = Op 325++pattern OpGetKernelMaxNumSubgroups :: Op+pattern OpGetKernelMaxNumSubgroups = Op 326++pattern OpTypeNamedBarrier :: Op+pattern OpTypeNamedBarrier = Op 327++pattern OpNamedBarrierInitialize :: Op+pattern OpNamedBarrierInitialize = Op 328++pattern OpMemoryNamedBarrier :: Op+pattern OpMemoryNamedBarrier = Op 329++pattern OpModuleProcessed :: Op+pattern OpModuleProcessed = Op 330++pattern OpExecutionModeId :: Op+pattern OpExecutionModeId = Op 331++pattern OpDecorateId :: Op+pattern OpDecorateId = Op 332++pattern OpGroupNonUniformElect :: Op+pattern OpGroupNonUniformElect = Op 333++pattern OpGroupNonUniformAll :: Op+pattern OpGroupNonUniformAll = Op 334++pattern OpGroupNonUniformAny :: Op+pattern OpGroupNonUniformAny = Op 335++pattern OpGroupNonUniformAllEqual :: Op+pattern OpGroupNonUniformAllEqual = Op 336++pattern OpGroupNonUniformBroadcast :: Op+pattern OpGroupNonUniformBroadcast = Op 337++pattern OpGroupNonUniformBroadcastFirst :: Op+pattern OpGroupNonUniformBroadcastFirst = Op 338++pattern OpGroupNonUniformBallot :: Op+pattern OpGroupNonUniformBallot = Op 339++pattern OpGroupNonUniformInverseBallot :: Op+pattern OpGroupNonUniformInverseBallot = Op 340++pattern OpGroupNonUniformBallotBitExtract :: Op+pattern OpGroupNonUniformBallotBitExtract = Op 341++pattern OpGroupNonUniformBallotBitCount :: Op+pattern OpGroupNonUniformBallotBitCount = Op 342++pattern OpGroupNonUniformBallotFindLSB :: Op+pattern OpGroupNonUniformBallotFindLSB = Op 343++pattern OpGroupNonUniformBallotFindMSB :: Op+pattern OpGroupNonUniformBallotFindMSB = Op 344++pattern OpGroupNonUniformShuffle :: Op+pattern OpGroupNonUniformShuffle = Op 345++pattern OpGroupNonUniformShuffleXor :: Op+pattern OpGroupNonUniformShuffleXor = Op 346++pattern OpGroupNonUniformShuffleUp :: Op+pattern OpGroupNonUniformShuffleUp = Op 347++pattern OpGroupNonUniformShuffleDown :: Op+pattern OpGroupNonUniformShuffleDown = Op 348++pattern OpGroupNonUniformIAdd :: Op+pattern OpGroupNonUniformIAdd = Op 349++pattern OpGroupNonUniformFAdd :: Op+pattern OpGroupNonUniformFAdd = Op 350++pattern OpGroupNonUniformIMul :: Op+pattern OpGroupNonUniformIMul = Op 351++pattern OpGroupNonUniformFMul :: Op+pattern OpGroupNonUniformFMul = Op 352++pattern OpGroupNonUniformSMin :: Op+pattern OpGroupNonUniformSMin = Op 353++pattern OpGroupNonUniformUMin :: Op+pattern OpGroupNonUniformUMin = Op 354++pattern OpGroupNonUniformFMin :: Op+pattern OpGroupNonUniformFMin = Op 355++pattern OpGroupNonUniformSMax :: Op+pattern OpGroupNonUniformSMax = Op 356++pattern OpGroupNonUniformUMax :: Op+pattern OpGroupNonUniformUMax = Op 357++pattern OpGroupNonUniformFMax :: Op+pattern OpGroupNonUniformFMax = Op 358++pattern OpGroupNonUniformBitwiseAnd :: Op+pattern OpGroupNonUniformBitwiseAnd = Op 359++pattern OpGroupNonUniformBitwiseOr :: Op+pattern OpGroupNonUniformBitwiseOr = Op 360++pattern OpGroupNonUniformBitwiseXor :: Op+pattern OpGroupNonUniformBitwiseXor = Op 361++pattern OpGroupNonUniformLogicalAnd :: Op+pattern OpGroupNonUniformLogicalAnd = Op 362++pattern OpGroupNonUniformLogicalOr :: Op+pattern OpGroupNonUniformLogicalOr = Op 363++pattern OpGroupNonUniformLogicalXor :: Op+pattern OpGroupNonUniformLogicalXor = Op 364++pattern OpGroupNonUniformQuadBroadcast :: Op+pattern OpGroupNonUniformQuadBroadcast = Op 365++pattern OpGroupNonUniformQuadSwap :: Op+pattern OpGroupNonUniformQuadSwap = Op 366++pattern OpCopyLogical :: Op+pattern OpCopyLogical = Op 400++pattern OpPtrEqual :: Op+pattern OpPtrEqual = Op 401++pattern OpPtrNotEqual :: Op+pattern OpPtrNotEqual = Op 402++pattern OpPtrDiff :: Op+pattern OpPtrDiff = Op 403++pattern OpTerminateInvocation :: Op+pattern OpTerminateInvocation = Op 4416++pattern OpSubgroupBallotKHR :: Op+pattern OpSubgroupBallotKHR = Op 4421++pattern OpSubgroupFirstInvocationKHR :: Op+pattern OpSubgroupFirstInvocationKHR = Op 4422++pattern OpSubgroupAllKHR :: Op+pattern OpSubgroupAllKHR = Op 4428++pattern OpSubgroupAnyKHR :: Op+pattern OpSubgroupAnyKHR = Op 4429++pattern OpSubgroupAllEqualKHR :: Op+pattern OpSubgroupAllEqualKHR = Op 4430++pattern OpGroupNonUniformRotateKHR :: Op+pattern OpGroupNonUniformRotateKHR = Op 4431++pattern OpSubgroupReadInvocationKHR :: Op+pattern OpSubgroupReadInvocationKHR = Op 4432++pattern OpTraceRayKHR :: Op+pattern OpTraceRayKHR = Op 4445++pattern OpExecuteCallableKHR :: Op+pattern OpExecuteCallableKHR = Op 4446++pattern OpConvertUToAccelerationStructureKHR :: Op+pattern OpConvertUToAccelerationStructureKHR = Op 4447++pattern OpIgnoreIntersectionKHR :: Op+pattern OpIgnoreIntersectionKHR = Op 4448++pattern OpTerminateRayKHR :: Op+pattern OpTerminateRayKHR = Op 4449++pattern OpSDot :: Op+pattern OpSDot = Op 4450++pattern OpSDotKHR :: Op+pattern OpSDotKHR = Op 4450++pattern OpUDot :: Op+pattern OpUDot = Op 4451++pattern OpUDotKHR :: Op+pattern OpUDotKHR = Op 4451++pattern OpSUDot :: Op+pattern OpSUDot = Op 4452++pattern OpSUDotKHR :: Op+pattern OpSUDotKHR = Op 4452++pattern OpSDotAccSat :: Op+pattern OpSDotAccSat = Op 4453++pattern OpSDotAccSatKHR :: Op+pattern OpSDotAccSatKHR = Op 4453++pattern OpUDotAccSat :: Op+pattern OpUDotAccSat = Op 4454++pattern OpUDotAccSatKHR :: Op+pattern OpUDotAccSatKHR = Op 4454++pattern OpSUDotAccSat :: Op+pattern OpSUDotAccSat = Op 4455++pattern OpSUDotAccSatKHR :: Op+pattern OpSUDotAccSatKHR = Op 4455++pattern OpTypeRayQueryKHR :: Op+pattern OpTypeRayQueryKHR = Op 4472++pattern OpRayQueryInitializeKHR :: Op+pattern OpRayQueryInitializeKHR = Op 4473++pattern OpRayQueryTerminateKHR :: Op+pattern OpRayQueryTerminateKHR = Op 4474++pattern OpRayQueryGenerateIntersectionKHR :: Op+pattern OpRayQueryGenerateIntersectionKHR = Op 4475++pattern OpRayQueryConfirmIntersectionKHR :: Op+pattern OpRayQueryConfirmIntersectionKHR = Op 4476++pattern OpRayQueryProceedKHR :: Op+pattern OpRayQueryProceedKHR = Op 4477++pattern OpRayQueryGetIntersectionTypeKHR :: Op+pattern OpRayQueryGetIntersectionTypeKHR = Op 4479++pattern OpGroupIAddNonUniformAMD :: Op+pattern OpGroupIAddNonUniformAMD = Op 5000++pattern OpGroupFAddNonUniformAMD :: Op+pattern OpGroupFAddNonUniformAMD = Op 5001++pattern OpGroupFMinNonUniformAMD :: Op+pattern OpGroupFMinNonUniformAMD = Op 5002++pattern OpGroupUMinNonUniformAMD :: Op+pattern OpGroupUMinNonUniformAMD = Op 5003++pattern OpGroupSMinNonUniformAMD :: Op+pattern OpGroupSMinNonUniformAMD = Op 5004++pattern OpGroupFMaxNonUniformAMD :: Op+pattern OpGroupFMaxNonUniformAMD = Op 5005++pattern OpGroupUMaxNonUniformAMD :: Op+pattern OpGroupUMaxNonUniformAMD = Op 5006++pattern OpGroupSMaxNonUniformAMD :: Op+pattern OpGroupSMaxNonUniformAMD = Op 5007++pattern OpFragmentMaskFetchAMD :: Op+pattern OpFragmentMaskFetchAMD = Op 5011++pattern OpFragmentFetchAMD :: Op+pattern OpFragmentFetchAMD = Op 5012++pattern OpReadClockKHR :: Op+pattern OpReadClockKHR = Op 5056++pattern OpImageSampleFootprintNV :: Op+pattern OpImageSampleFootprintNV = Op 5283++pattern OpGroupNonUniformPartitionNV :: Op+pattern OpGroupNonUniformPartitionNV = Op 5296++pattern OpWritePackedPrimitiveIndices4x8NV :: Op+pattern OpWritePackedPrimitiveIndices4x8NV = Op 5299++pattern OpReportIntersectionKHR :: Op+pattern OpReportIntersectionKHR = Op 5334++pattern OpReportIntersectionNV :: Op+pattern OpReportIntersectionNV = Op 5334++pattern OpIgnoreIntersectionNV :: Op+pattern OpIgnoreIntersectionNV = Op 5335++pattern OpTerminateRayNV :: Op+pattern OpTerminateRayNV = Op 5336++pattern OpTraceNV :: Op+pattern OpTraceNV = Op 5337++pattern OpTraceMotionNV :: Op+pattern OpTraceMotionNV = Op 5338++pattern OpTraceRayMotionNV :: Op+pattern OpTraceRayMotionNV = Op 5339++pattern OpTypeAccelerationStructureKHR :: Op+pattern OpTypeAccelerationStructureKHR = Op 5341++pattern OpTypeAccelerationStructureNV :: Op+pattern OpTypeAccelerationStructureNV = Op 5341++pattern OpExecuteCallableNV :: Op+pattern OpExecuteCallableNV = Op 5344++pattern OpTypeCooperativeMatrixNV :: Op+pattern OpTypeCooperativeMatrixNV = Op 5358++pattern OpCooperativeMatrixLoadNV :: Op+pattern OpCooperativeMatrixLoadNV = Op 5359++pattern OpCooperativeMatrixStoreNV :: Op+pattern OpCooperativeMatrixStoreNV = Op 5360++pattern OpCooperativeMatrixMulAddNV :: Op+pattern OpCooperativeMatrixMulAddNV = Op 5361++pattern OpCooperativeMatrixLengthNV :: Op+pattern OpCooperativeMatrixLengthNV = Op 5362++pattern OpBeginInvocationInterlockEXT :: Op+pattern OpBeginInvocationInterlockEXT = Op 5364++pattern OpEndInvocationInterlockEXT :: Op+pattern OpEndInvocationInterlockEXT = Op 5365++pattern OpDemoteToHelperInvocation :: Op+pattern OpDemoteToHelperInvocation = Op 5380++pattern OpDemoteToHelperInvocationEXT :: Op+pattern OpDemoteToHelperInvocationEXT = Op 5380++pattern OpIsHelperInvocationEXT :: Op+pattern OpIsHelperInvocationEXT = Op 5381++pattern OpConvertUToImageNV :: Op+pattern OpConvertUToImageNV = Op 5391++pattern OpConvertUToSamplerNV :: Op+pattern OpConvertUToSamplerNV = Op 5392++pattern OpConvertImageToUNV :: Op+pattern OpConvertImageToUNV = Op 5393++pattern OpConvertSamplerToUNV :: Op+pattern OpConvertSamplerToUNV = Op 5394++pattern OpConvertUToSampledImageNV :: Op+pattern OpConvertUToSampledImageNV = Op 5395++pattern OpConvertSampledImageToUNV :: Op+pattern OpConvertSampledImageToUNV = Op 5396++pattern OpSamplerImageAddressingModeNV :: Op+pattern OpSamplerImageAddressingModeNV = Op 5397++pattern OpSubgroupShuffleINTEL :: Op+pattern OpSubgroupShuffleINTEL = Op 5571++pattern OpSubgroupShuffleDownINTEL :: Op+pattern OpSubgroupShuffleDownINTEL = Op 5572++pattern OpSubgroupShuffleUpINTEL :: Op+pattern OpSubgroupShuffleUpINTEL = Op 5573++pattern OpSubgroupShuffleXorINTEL :: Op+pattern OpSubgroupShuffleXorINTEL = Op 5574++pattern OpSubgroupBlockReadINTEL :: Op+pattern OpSubgroupBlockReadINTEL = Op 5575++pattern OpSubgroupBlockWriteINTEL :: Op+pattern OpSubgroupBlockWriteINTEL = Op 5576++pattern OpSubgroupImageBlockReadINTEL :: Op+pattern OpSubgroupImageBlockReadINTEL = Op 5577++pattern OpSubgroupImageBlockWriteINTEL :: Op+pattern OpSubgroupImageBlockWriteINTEL = Op 5578++pattern OpSubgroupImageMediaBlockReadINTEL :: Op+pattern OpSubgroupImageMediaBlockReadINTEL = Op 5580++pattern OpSubgroupImageMediaBlockWriteINTEL :: Op+pattern OpSubgroupImageMediaBlockWriteINTEL = Op 5581++pattern OpUCountLeadingZerosINTEL :: Op+pattern OpUCountLeadingZerosINTEL = Op 5585++pattern OpUCountTrailingZerosINTEL :: Op+pattern OpUCountTrailingZerosINTEL = Op 5586++pattern OpAbsISubINTEL :: Op+pattern OpAbsISubINTEL = Op 5587++pattern OpAbsUSubINTEL :: Op+pattern OpAbsUSubINTEL = Op 5588++pattern OpIAddSatINTEL :: Op+pattern OpIAddSatINTEL = Op 5589++pattern OpUAddSatINTEL :: Op+pattern OpUAddSatINTEL = Op 5590++pattern OpIAverageINTEL :: Op+pattern OpIAverageINTEL = Op 5591++pattern OpUAverageINTEL :: Op+pattern OpUAverageINTEL = Op 5592++pattern OpIAverageRoundedINTEL :: Op+pattern OpIAverageRoundedINTEL = Op 5593++pattern OpUAverageRoundedINTEL :: Op+pattern OpUAverageRoundedINTEL = Op 5594++pattern OpISubSatINTEL :: Op+pattern OpISubSatINTEL = Op 5595++pattern OpUSubSatINTEL :: Op+pattern OpUSubSatINTEL = Op 5596++pattern OpIMul32x16INTEL :: Op+pattern OpIMul32x16INTEL = Op 5597++pattern OpUMul32x16INTEL :: Op+pattern OpUMul32x16INTEL = Op 5598++pattern OpConstantFunctionPointerINTEL :: Op+pattern OpConstantFunctionPointerINTEL = Op 5600++pattern OpFunctionPointerCallINTEL :: Op+pattern OpFunctionPointerCallINTEL = Op 5601++pattern OpAsmTargetINTEL :: Op+pattern OpAsmTargetINTEL = Op 5609++pattern OpAsmINTEL :: Op+pattern OpAsmINTEL = Op 5610++pattern OpAsmCallINTEL :: Op+pattern OpAsmCallINTEL = Op 5611++pattern OpAtomicFMinEXT :: Op+pattern OpAtomicFMinEXT = Op 5614++pattern OpAtomicFMaxEXT :: Op+pattern OpAtomicFMaxEXT = Op 5615++pattern OpAssumeTrueKHR :: Op+pattern OpAssumeTrueKHR = Op 5630++pattern OpExpectKHR :: Op+pattern OpExpectKHR = Op 5631++pattern OpDecorateString :: Op+pattern OpDecorateString = Op 5632++pattern OpDecorateStringGOOGLE :: Op+pattern OpDecorateStringGOOGLE = Op 5632++pattern OpMemberDecorateString :: Op+pattern OpMemberDecorateString = Op 5633++pattern OpMemberDecorateStringGOOGLE :: Op+pattern OpMemberDecorateStringGOOGLE = Op 5633++pattern OpVmeImageINTEL :: Op+pattern OpVmeImageINTEL = Op 5699++pattern OpTypeVmeImageINTEL :: Op+pattern OpTypeVmeImageINTEL = Op 5700++pattern OpTypeAvcImePayloadINTEL :: Op+pattern OpTypeAvcImePayloadINTEL = Op 5701++pattern OpTypeAvcRefPayloadINTEL :: Op+pattern OpTypeAvcRefPayloadINTEL = Op 5702++pattern OpTypeAvcSicPayloadINTEL :: Op+pattern OpTypeAvcSicPayloadINTEL = Op 5703++pattern OpTypeAvcMcePayloadINTEL :: Op+pattern OpTypeAvcMcePayloadINTEL = Op 5704++pattern OpTypeAvcMceResultINTEL :: Op+pattern OpTypeAvcMceResultINTEL = Op 5705++pattern OpTypeAvcImeResultINTEL :: Op+pattern OpTypeAvcImeResultINTEL = Op 5706++pattern OpTypeAvcImeResultSingleReferenceStreamoutINTEL :: Op+pattern OpTypeAvcImeResultSingleReferenceStreamoutINTEL = Op 5707++pattern OpTypeAvcImeResultDualReferenceStreamoutINTEL :: Op+pattern OpTypeAvcImeResultDualReferenceStreamoutINTEL = Op 5708++pattern OpTypeAvcImeSingleReferenceStreaminINTEL :: Op+pattern OpTypeAvcImeSingleReferenceStreaminINTEL = Op 5709++pattern OpTypeAvcImeDualReferenceStreaminINTEL :: Op+pattern OpTypeAvcImeDualReferenceStreaminINTEL = Op 5710++pattern OpTypeAvcRefResultINTEL :: Op+pattern OpTypeAvcRefResultINTEL = Op 5711++pattern OpTypeAvcSicResultINTEL :: Op+pattern OpTypeAvcSicResultINTEL = Op 5712++pattern OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL :: Op+pattern OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = Op 5713++pattern OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL :: Op+pattern OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = Op 5714++pattern OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL :: Op+pattern OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = Op 5715++pattern OpSubgroupAvcMceSetInterShapePenaltyINTEL :: Op+pattern OpSubgroupAvcMceSetInterShapePenaltyINTEL = Op 5716++pattern OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL :: Op+pattern OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = Op 5717++pattern OpSubgroupAvcMceSetInterDirectionPenaltyINTEL :: Op+pattern OpSubgroupAvcMceSetInterDirectionPenaltyINTEL = Op 5718++pattern OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL :: Op+pattern OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = Op 5719++pattern OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL :: Op+pattern OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = Op 5720++pattern OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL :: Op+pattern OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = Op 5721++pattern OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL :: Op+pattern OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = Op 5722++pattern OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL :: Op+pattern OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = Op 5723++pattern OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL :: Op+pattern OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = Op 5724++pattern OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL :: Op+pattern OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = Op 5725++pattern OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL :: Op+pattern OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = Op 5726++pattern OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL :: Op+pattern OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = Op 5727++pattern OpSubgroupAvcMceSetAcOnlyHaarINTEL :: Op+pattern OpSubgroupAvcMceSetAcOnlyHaarINTEL = Op 5728++pattern OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL :: Op+pattern OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = Op 5729++pattern OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL :: Op+pattern OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = Op 5730++pattern OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL :: Op+pattern OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = Op 5731++pattern OpSubgroupAvcMceConvertToImePayloadINTEL :: Op+pattern OpSubgroupAvcMceConvertToImePayloadINTEL = Op 5732++pattern OpSubgroupAvcMceConvertToImeResultINTEL :: Op+pattern OpSubgroupAvcMceConvertToImeResultINTEL = Op 5733++pattern OpSubgroupAvcMceConvertToRefPayloadINTEL :: Op+pattern OpSubgroupAvcMceConvertToRefPayloadINTEL = Op 5734++pattern OpSubgroupAvcMceConvertToRefResultINTEL :: Op+pattern OpSubgroupAvcMceConvertToRefResultINTEL = Op 5735++pattern OpSubgroupAvcMceConvertToSicPayloadINTEL :: Op+pattern OpSubgroupAvcMceConvertToSicPayloadINTEL = Op 5736++pattern OpSubgroupAvcMceConvertToSicResultINTEL :: Op+pattern OpSubgroupAvcMceConvertToSicResultINTEL = Op 5737++pattern OpSubgroupAvcMceGetMotionVectorsINTEL :: Op+pattern OpSubgroupAvcMceGetMotionVectorsINTEL = Op 5738++pattern OpSubgroupAvcMceGetInterDistortionsINTEL :: Op+pattern OpSubgroupAvcMceGetInterDistortionsINTEL = Op 5739++pattern OpSubgroupAvcMceGetBestInterDistortionsINTEL :: Op+pattern OpSubgroupAvcMceGetBestInterDistortionsINTEL = Op 5740++pattern OpSubgroupAvcMceGetInterMajorShapeINTEL :: Op+pattern OpSubgroupAvcMceGetInterMajorShapeINTEL = Op 5741++pattern OpSubgroupAvcMceGetInterMinorShapeINTEL :: Op+pattern OpSubgroupAvcMceGetInterMinorShapeINTEL = Op 5742++pattern OpSubgroupAvcMceGetInterDirectionsINTEL :: Op+pattern OpSubgroupAvcMceGetInterDirectionsINTEL = Op 5743++pattern OpSubgroupAvcMceGetInterMotionVectorCountINTEL :: Op+pattern OpSubgroupAvcMceGetInterMotionVectorCountINTEL = Op 5744++pattern OpSubgroupAvcMceGetInterReferenceIdsINTEL :: Op+pattern OpSubgroupAvcMceGetInterReferenceIdsINTEL = Op 5745++pattern OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL :: Op+pattern OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = Op 5746++pattern OpSubgroupAvcImeInitializeINTEL :: Op+pattern OpSubgroupAvcImeInitializeINTEL = Op 5747++pattern OpSubgroupAvcImeSetSingleReferenceINTEL :: Op+pattern OpSubgroupAvcImeSetSingleReferenceINTEL = Op 5748++pattern OpSubgroupAvcImeSetDualReferenceINTEL :: Op+pattern OpSubgroupAvcImeSetDualReferenceINTEL = Op 5749++pattern OpSubgroupAvcImeRefWindowSizeINTEL :: Op+pattern OpSubgroupAvcImeRefWindowSizeINTEL = Op 5750++pattern OpSubgroupAvcImeAdjustRefOffsetINTEL :: Op+pattern OpSubgroupAvcImeAdjustRefOffsetINTEL = Op 5751++pattern OpSubgroupAvcImeConvertToMcePayloadINTEL :: Op+pattern OpSubgroupAvcImeConvertToMcePayloadINTEL = Op 5752++pattern OpSubgroupAvcImeSetMaxMotionVectorCountINTEL :: Op+pattern OpSubgroupAvcImeSetMaxMotionVectorCountINTEL = Op 5753++pattern OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL :: Op+pattern OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = Op 5754++pattern OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL :: Op+pattern OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = Op 5755++pattern OpSubgroupAvcImeSetWeightedSadINTEL :: Op+pattern OpSubgroupAvcImeSetWeightedSadINTEL = Op 5756++pattern OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL :: Op+pattern OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = Op 5757++pattern OpSubgroupAvcImeEvaluateWithDualReferenceINTEL :: Op+pattern OpSubgroupAvcImeEvaluateWithDualReferenceINTEL = Op 5758++pattern OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL :: Op+pattern OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = Op 5759++pattern OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL :: Op+pattern OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = Op 5760++pattern OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL :: Op+pattern OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = Op 5761++pattern OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL :: Op+pattern OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = Op 5762++pattern OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL :: Op+pattern OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = Op 5763++pattern OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL :: Op+pattern OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = Op 5764++pattern OpSubgroupAvcImeConvertToMceResultINTEL :: Op+pattern OpSubgroupAvcImeConvertToMceResultINTEL = Op 5765++pattern OpSubgroupAvcImeGetSingleReferenceStreaminINTEL :: Op+pattern OpSubgroupAvcImeGetSingleReferenceStreaminINTEL = Op 5766++pattern OpSubgroupAvcImeGetDualReferenceStreaminINTEL :: Op+pattern OpSubgroupAvcImeGetDualReferenceStreaminINTEL = Op 5767++pattern OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL :: Op+pattern OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = Op 5768++pattern OpSubgroupAvcImeStripDualReferenceStreamoutINTEL :: Op+pattern OpSubgroupAvcImeStripDualReferenceStreamoutINTEL = Op 5769++pattern OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL :: Op+pattern OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = Op 5770++pattern OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL :: Op+pattern OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = Op 5771++pattern OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL :: Op+pattern OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = Op 5772++pattern OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL :: Op+pattern OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = Op 5773++pattern OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL :: Op+pattern OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = Op 5774++pattern OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL :: Op+pattern OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = Op 5775++pattern OpSubgroupAvcImeGetBorderReachedINTEL :: Op+pattern OpSubgroupAvcImeGetBorderReachedINTEL = Op 5776++pattern OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL :: Op+pattern OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = Op 5777++pattern OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL :: Op+pattern OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = Op 5778++pattern OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL :: Op+pattern OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = Op 5779++pattern OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL :: Op+pattern OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = Op 5780++pattern OpSubgroupAvcFmeInitializeINTEL :: Op+pattern OpSubgroupAvcFmeInitializeINTEL = Op 5781++pattern OpSubgroupAvcBmeInitializeINTEL :: Op+pattern OpSubgroupAvcBmeInitializeINTEL = Op 5782++pattern OpSubgroupAvcRefConvertToMcePayloadINTEL :: Op+pattern OpSubgroupAvcRefConvertToMcePayloadINTEL = Op 5783++pattern OpSubgroupAvcRefSetBidirectionalMixDisableINTEL :: Op+pattern OpSubgroupAvcRefSetBidirectionalMixDisableINTEL = Op 5784++pattern OpSubgroupAvcRefSetBilinearFilterEnableINTEL :: Op+pattern OpSubgroupAvcRefSetBilinearFilterEnableINTEL = Op 5785++pattern OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL :: Op+pattern OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = Op 5786++pattern OpSubgroupAvcRefEvaluateWithDualReferenceINTEL :: Op+pattern OpSubgroupAvcRefEvaluateWithDualReferenceINTEL = Op 5787++pattern OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL :: Op+pattern OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = Op 5788++pattern OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL :: Op+pattern OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = Op 5789++pattern OpSubgroupAvcRefConvertToMceResultINTEL :: Op+pattern OpSubgroupAvcRefConvertToMceResultINTEL = Op 5790++pattern OpSubgroupAvcSicInitializeINTEL :: Op+pattern OpSubgroupAvcSicInitializeINTEL = Op 5791++pattern OpSubgroupAvcSicConfigureSkcINTEL :: Op+pattern OpSubgroupAvcSicConfigureSkcINTEL = Op 5792++pattern OpSubgroupAvcSicConfigureIpeLumaINTEL :: Op+pattern OpSubgroupAvcSicConfigureIpeLumaINTEL = Op 5793++pattern OpSubgroupAvcSicConfigureIpeLumaChromaINTEL :: Op+pattern OpSubgroupAvcSicConfigureIpeLumaChromaINTEL = Op 5794++pattern OpSubgroupAvcSicGetMotionVectorMaskINTEL :: Op+pattern OpSubgroupAvcSicGetMotionVectorMaskINTEL = Op 5795++pattern OpSubgroupAvcSicConvertToMcePayloadINTEL :: Op+pattern OpSubgroupAvcSicConvertToMcePayloadINTEL = Op 5796++pattern OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL :: Op+pattern OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = Op 5797++pattern OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL :: Op+pattern OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = Op 5798++pattern OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL :: Op+pattern OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = Op 5799++pattern OpSubgroupAvcSicSetBilinearFilterEnableINTEL :: Op+pattern OpSubgroupAvcSicSetBilinearFilterEnableINTEL = Op 5800++pattern OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL :: Op+pattern OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = Op 5801++pattern OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL :: Op+pattern OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = Op 5802++pattern OpSubgroupAvcSicEvaluateIpeINTEL :: Op+pattern OpSubgroupAvcSicEvaluateIpeINTEL = Op 5803++pattern OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL :: Op+pattern OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = Op 5804++pattern OpSubgroupAvcSicEvaluateWithDualReferenceINTEL :: Op+pattern OpSubgroupAvcSicEvaluateWithDualReferenceINTEL = Op 5805++pattern OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL :: Op+pattern OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = Op 5806++pattern OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL :: Op+pattern OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = Op 5807++pattern OpSubgroupAvcSicConvertToMceResultINTEL :: Op+pattern OpSubgroupAvcSicConvertToMceResultINTEL = Op 5808++pattern OpSubgroupAvcSicGetIpeLumaShapeINTEL :: Op+pattern OpSubgroupAvcSicGetIpeLumaShapeINTEL = Op 5809++pattern OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL :: Op+pattern OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = Op 5810++pattern OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL :: Op+pattern OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = Op 5811++pattern OpSubgroupAvcSicGetPackedIpeLumaModesINTEL :: Op+pattern OpSubgroupAvcSicGetPackedIpeLumaModesINTEL = Op 5812++pattern OpSubgroupAvcSicGetIpeChromaModeINTEL :: Op+pattern OpSubgroupAvcSicGetIpeChromaModeINTEL = Op 5813++pattern OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL :: Op+pattern OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = Op 5814++pattern OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL :: Op+pattern OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = Op 5815++pattern OpSubgroupAvcSicGetInterRawSadsINTEL :: Op+pattern OpSubgroupAvcSicGetInterRawSadsINTEL = Op 5816++pattern OpVariableLengthArrayINTEL :: Op+pattern OpVariableLengthArrayINTEL = Op 5818++pattern OpSaveMemoryINTEL :: Op+pattern OpSaveMemoryINTEL = Op 5819++pattern OpRestoreMemoryINTEL :: Op+pattern OpRestoreMemoryINTEL = Op 5820++pattern OpArbitraryFloatSinCosPiINTEL :: Op+pattern OpArbitraryFloatSinCosPiINTEL = Op 5840++pattern OpArbitraryFloatCastINTEL :: Op+pattern OpArbitraryFloatCastINTEL = Op 5841++pattern OpArbitraryFloatCastFromIntINTEL :: Op+pattern OpArbitraryFloatCastFromIntINTEL = Op 5842++pattern OpArbitraryFloatCastToIntINTEL :: Op+pattern OpArbitraryFloatCastToIntINTEL = Op 5843++pattern OpArbitraryFloatAddINTEL :: Op+pattern OpArbitraryFloatAddINTEL = Op 5846++pattern OpArbitraryFloatSubINTEL :: Op+pattern OpArbitraryFloatSubINTEL = Op 5847++pattern OpArbitraryFloatMulINTEL :: Op+pattern OpArbitraryFloatMulINTEL = Op 5848++pattern OpArbitraryFloatDivINTEL :: Op+pattern OpArbitraryFloatDivINTEL = Op 5849++pattern OpArbitraryFloatGTINTEL :: Op+pattern OpArbitraryFloatGTINTEL = Op 5850++pattern OpArbitraryFloatGEINTEL :: Op+pattern OpArbitraryFloatGEINTEL = Op 5851++pattern OpArbitraryFloatLTINTEL :: Op+pattern OpArbitraryFloatLTINTEL = Op 5852++pattern OpArbitraryFloatLEINTEL :: Op+pattern OpArbitraryFloatLEINTEL = Op 5853++pattern OpArbitraryFloatEQINTEL :: Op+pattern OpArbitraryFloatEQINTEL = Op 5854++pattern OpArbitraryFloatRecipINTEL :: Op+pattern OpArbitraryFloatRecipINTEL = Op 5855++pattern OpArbitraryFloatRSqrtINTEL :: Op+pattern OpArbitraryFloatRSqrtINTEL = Op 5856++pattern OpArbitraryFloatCbrtINTEL :: Op+pattern OpArbitraryFloatCbrtINTEL = Op 5857++pattern OpArbitraryFloatHypotINTEL :: Op+pattern OpArbitraryFloatHypotINTEL = Op 5858++pattern OpArbitraryFloatSqrtINTEL :: Op+pattern OpArbitraryFloatSqrtINTEL = Op 5859++pattern OpArbitraryFloatLogINTEL :: Op+pattern OpArbitraryFloatLogINTEL = Op 5860++pattern OpArbitraryFloatLog2INTEL :: Op+pattern OpArbitraryFloatLog2INTEL = Op 5861++pattern OpArbitraryFloatLog10INTEL :: Op+pattern OpArbitraryFloatLog10INTEL = Op 5862++pattern OpArbitraryFloatLog1pINTEL :: Op+pattern OpArbitraryFloatLog1pINTEL = Op 5863++pattern OpArbitraryFloatExpINTEL :: Op+pattern OpArbitraryFloatExpINTEL = Op 5864++pattern OpArbitraryFloatExp2INTEL :: Op+pattern OpArbitraryFloatExp2INTEL = Op 5865++pattern OpArbitraryFloatExp10INTEL :: Op+pattern OpArbitraryFloatExp10INTEL = Op 5866++pattern OpArbitraryFloatExpm1INTEL :: Op+pattern OpArbitraryFloatExpm1INTEL = Op 5867++pattern OpArbitraryFloatSinINTEL :: Op+pattern OpArbitraryFloatSinINTEL = Op 5868++pattern OpArbitraryFloatCosINTEL :: Op+pattern OpArbitraryFloatCosINTEL = Op 5869++pattern OpArbitraryFloatSinCosINTEL :: Op+pattern OpArbitraryFloatSinCosINTEL = Op 5870++pattern OpArbitraryFloatSinPiINTEL :: Op+pattern OpArbitraryFloatSinPiINTEL = Op 5871++pattern OpArbitraryFloatCosPiINTEL :: Op+pattern OpArbitraryFloatCosPiINTEL = Op 5872++pattern OpArbitraryFloatASinINTEL :: Op+pattern OpArbitraryFloatASinINTEL = Op 5873++pattern OpArbitraryFloatASinPiINTEL :: Op+pattern OpArbitraryFloatASinPiINTEL = Op 5874++pattern OpArbitraryFloatACosINTEL :: Op+pattern OpArbitraryFloatACosINTEL = Op 5875++pattern OpArbitraryFloatACosPiINTEL :: Op+pattern OpArbitraryFloatACosPiINTEL = Op 5876++pattern OpArbitraryFloatATanINTEL :: Op+pattern OpArbitraryFloatATanINTEL = Op 5877++pattern OpArbitraryFloatATanPiINTEL :: Op+pattern OpArbitraryFloatATanPiINTEL = Op 5878++pattern OpArbitraryFloatATan2INTEL :: Op+pattern OpArbitraryFloatATan2INTEL = Op 5879++pattern OpArbitraryFloatPowINTEL :: Op+pattern OpArbitraryFloatPowINTEL = Op 5880++pattern OpArbitraryFloatPowRINTEL :: Op+pattern OpArbitraryFloatPowRINTEL = Op 5881++pattern OpArbitraryFloatPowNINTEL :: Op+pattern OpArbitraryFloatPowNINTEL = Op 5882++pattern OpLoopControlINTEL :: Op+pattern OpLoopControlINTEL = Op 5887++pattern OpAliasDomainDeclINTEL :: Op+pattern OpAliasDomainDeclINTEL = Op 5911++pattern OpAliasScopeDeclINTEL :: Op+pattern OpAliasScopeDeclINTEL = Op 5912++pattern OpAliasScopeListDeclINTEL :: Op+pattern OpAliasScopeListDeclINTEL = Op 5913++pattern OpFixedSqrtINTEL :: Op+pattern OpFixedSqrtINTEL = Op 5923++pattern OpFixedRecipINTEL :: Op+pattern OpFixedRecipINTEL = Op 5924++pattern OpFixedRsqrtINTEL :: Op+pattern OpFixedRsqrtINTEL = Op 5925++pattern OpFixedSinINTEL :: Op+pattern OpFixedSinINTEL = Op 5926++pattern OpFixedCosINTEL :: Op+pattern OpFixedCosINTEL = Op 5927++pattern OpFixedSinCosINTEL :: Op+pattern OpFixedSinCosINTEL = Op 5928++pattern OpFixedSinPiINTEL :: Op+pattern OpFixedSinPiINTEL = Op 5929++pattern OpFixedCosPiINTEL :: Op+pattern OpFixedCosPiINTEL = Op 5930++pattern OpFixedSinCosPiINTEL :: Op+pattern OpFixedSinCosPiINTEL = Op 5931++pattern OpFixedLogINTEL :: Op+pattern OpFixedLogINTEL = Op 5932++pattern OpFixedExpINTEL :: Op+pattern OpFixedExpINTEL = Op 5933++pattern OpPtrCastToCrossWorkgroupINTEL :: Op+pattern OpPtrCastToCrossWorkgroupINTEL = Op 5934++pattern OpCrossWorkgroupCastToPtrINTEL :: Op+pattern OpCrossWorkgroupCastToPtrINTEL = Op 5938++pattern OpReadPipeBlockingINTEL :: Op+pattern OpReadPipeBlockingINTEL = Op 5946++pattern OpWritePipeBlockingINTEL :: Op+pattern OpWritePipeBlockingINTEL = Op 5947++pattern OpFPGARegINTEL :: Op+pattern OpFPGARegINTEL = Op 5949++pattern OpRayQueryGetRayTMinKHR :: Op+pattern OpRayQueryGetRayTMinKHR = Op 6016++pattern OpRayQueryGetRayFlagsKHR :: Op+pattern OpRayQueryGetRayFlagsKHR = Op 6017++pattern OpRayQueryGetIntersectionTKHR :: Op+pattern OpRayQueryGetIntersectionTKHR = Op 6018++pattern OpRayQueryGetIntersectionInstanceCustomIndexKHR :: Op+pattern OpRayQueryGetIntersectionInstanceCustomIndexKHR = Op 6019++pattern OpRayQueryGetIntersectionInstanceIdKHR :: Op+pattern OpRayQueryGetIntersectionInstanceIdKHR = Op 6020++pattern OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR :: Op+pattern OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = Op 6021++pattern OpRayQueryGetIntersectionGeometryIndexKHR :: Op+pattern OpRayQueryGetIntersectionGeometryIndexKHR = Op 6022++pattern OpRayQueryGetIntersectionPrimitiveIndexKHR :: Op+pattern OpRayQueryGetIntersectionPrimitiveIndexKHR = Op 6023++pattern OpRayQueryGetIntersectionBarycentricsKHR :: Op+pattern OpRayQueryGetIntersectionBarycentricsKHR = Op 6024++pattern OpRayQueryGetIntersectionFrontFaceKHR :: Op+pattern OpRayQueryGetIntersectionFrontFaceKHR = Op 6025++pattern OpRayQueryGetIntersectionCandidateAABBOpaqueKHR :: Op+pattern OpRayQueryGetIntersectionCandidateAABBOpaqueKHR = Op 6026++pattern OpRayQueryGetIntersectionObjectRayDirectionKHR :: Op+pattern OpRayQueryGetIntersectionObjectRayDirectionKHR = Op 6027++pattern OpRayQueryGetIntersectionObjectRayOriginKHR :: Op+pattern OpRayQueryGetIntersectionObjectRayOriginKHR = Op 6028++pattern OpRayQueryGetWorldRayDirectionKHR :: Op+pattern OpRayQueryGetWorldRayDirectionKHR = Op 6029++pattern OpRayQueryGetWorldRayOriginKHR :: Op+pattern OpRayQueryGetWorldRayOriginKHR = Op 6030++pattern OpRayQueryGetIntersectionObjectToWorldKHR :: Op+pattern OpRayQueryGetIntersectionObjectToWorldKHR = Op 6031++pattern OpRayQueryGetIntersectionWorldToObjectKHR :: Op+pattern OpRayQueryGetIntersectionWorldToObjectKHR = Op 6032++pattern OpAtomicFAddEXT :: Op+pattern OpAtomicFAddEXT = Op 6035++pattern OpTypeBufferSurfaceINTEL :: Op+pattern OpTypeBufferSurfaceINTEL = Op 6086++pattern OpTypeStructContinuedINTEL :: Op+pattern OpTypeStructContinuedINTEL = Op 6090++pattern OpConstantCompositeContinuedINTEL :: Op+pattern OpConstantCompositeContinuedINTEL = Op 6091++pattern OpSpecConstantCompositeContinuedINTEL :: Op+pattern OpSpecConstantCompositeContinuedINTEL = Op 6092++pattern OpControlBarrierArriveINTEL :: Op+pattern OpControlBarrierArriveINTEL = Op 6142++pattern OpControlBarrierWaitINTEL :: Op+pattern OpControlBarrierWaitINTEL = Op 6143++pattern OpGroupIMulKHR :: Op+pattern OpGroupIMulKHR = Op 6401++pattern OpGroupFMulKHR :: Op+pattern OpGroupFMulKHR = Op 6402++pattern OpGroupBitwiseAndKHR :: Op+pattern OpGroupBitwiseAndKHR = Op 6403++pattern OpGroupBitwiseOrKHR :: Op+pattern OpGroupBitwiseOrKHR = Op 6404++pattern OpGroupBitwiseXorKHR :: Op+pattern OpGroupBitwiseXorKHR = Op 6405++pattern OpGroupLogicalAndKHR :: Op+pattern OpGroupLogicalAndKHR = Op 6406++pattern OpGroupLogicalOrKHR :: Op+pattern OpGroupLogicalOrKHR = Op 6407++pattern OpGroupLogicalXorKHR :: Op+pattern OpGroupLogicalXorKHR = Op 6408++pattern OpMax :: Op+pattern OpMax = Op 0x7fffffff
+ lib/Data/SpirV/Reflect/Enums/SpirvStorageClass.hs view
@@ -0,0 +1,99 @@+module Data.SpirV.Reflect.Enums.SpirvStorageClass where++import Data.SpirV.Reflect.Enums.Common++newtype StorageClass = StorageClass Int32+  deriving newtype (Eq, Ord, Show, Enum, Bounded)++pattern StorageClassUniformConstant :: StorageClass+pattern StorageClassUniformConstant = StorageClass 0++pattern StorageClassInput :: StorageClass+pattern StorageClassInput = StorageClass 1++pattern StorageClassUniform :: StorageClass+pattern StorageClassUniform = StorageClass 2++pattern StorageClassOutput :: StorageClass+pattern StorageClassOutput = StorageClass 3++pattern StorageClassWorkgroup :: StorageClass+pattern StorageClassWorkgroup = StorageClass 4++pattern StorageClassCrossWorkgroup :: StorageClass+pattern StorageClassCrossWorkgroup = StorageClass 5++pattern StorageClassPrivate :: StorageClass+pattern StorageClassPrivate = StorageClass 6++pattern StorageClassFunction :: StorageClass+pattern StorageClassFunction = StorageClass 7++pattern StorageClassGeneric :: StorageClass+pattern StorageClassGeneric = StorageClass 8++pattern StorageClassPushConstant :: StorageClass+pattern StorageClassPushConstant = StorageClass 9++pattern StorageClassAtomicCounter :: StorageClass+pattern StorageClassAtomicCounter = StorageClass 10++pattern StorageClassImage :: StorageClass+pattern StorageClassImage = StorageClass 11++pattern StorageClassStorageBuffer :: StorageClass+pattern StorageClassStorageBuffer = StorageClass 12++pattern StorageClassCallableDataKHR :: StorageClass+pattern StorageClassCallableDataKHR = StorageClass 5328++pattern StorageClassCallableDataNV :: StorageClass+pattern StorageClassCallableDataNV = StorageClass 5328++pattern StorageClassIncomingCallableDataKHR :: StorageClass+pattern StorageClassIncomingCallableDataKHR = StorageClass 5329++pattern StorageClassIncomingCallableDataNV :: StorageClass+pattern StorageClassIncomingCallableDataNV = StorageClass 5329++pattern StorageClassRayPayloadKHR :: StorageClass+pattern StorageClassRayPayloadKHR = StorageClass 5338++pattern StorageClassRayPayloadNV :: StorageClass+pattern StorageClassRayPayloadNV = StorageClass 5338++pattern StorageClassHitAttributeKHR :: StorageClass+pattern StorageClassHitAttributeKHR = StorageClass 5339++pattern StorageClassHitAttributeNV :: StorageClass+pattern StorageClassHitAttributeNV = StorageClass 5339++pattern StorageClassIncomingRayPayloadKHR :: StorageClass+pattern StorageClassIncomingRayPayloadKHR = StorageClass 5342++pattern StorageClassIncomingRayPayloadNV :: StorageClass+pattern StorageClassIncomingRayPayloadNV = StorageClass 5342++pattern StorageClassShaderRecordBufferKHR :: StorageClass+pattern StorageClassShaderRecordBufferKHR = StorageClass 5343++pattern StorageClassShaderRecordBufferNV :: StorageClass+pattern StorageClassShaderRecordBufferNV = StorageClass 5343++pattern StorageClassPhysicalStorageBuffer :: StorageClass+pattern StorageClassPhysicalStorageBuffer = StorageClass 5349++pattern StorageClassPhysicalStorageBufferEXT :: StorageClass+pattern StorageClassPhysicalStorageBufferEXT = StorageClass 5349++pattern StorageClassCodeSectionINTEL :: StorageClass+pattern StorageClassCodeSectionINTEL = StorageClass 5605++pattern StorageClassDeviceOnlyINTEL :: StorageClass+pattern StorageClassDeviceOnlyINTEL = StorageClass 5936++pattern StorageClassHostOnlyINTEL :: StorageClass+pattern StorageClassHostOnlyINTEL = StorageClass 5937++pattern StorageClassMax :: StorageClass+pattern StorageClassMax = StorageClass 0x7fffffff
+ lib/Data/SpirV/Reflect/Enums/TypeFlags.hs view
@@ -0,0 +1,80 @@+module Data.SpirV.Reflect.Enums.TypeFlags where++import Control.Monad (guard)++import Data.SpirV.Reflect.Enums.Common++type TypeFlags = TypeFlagBits++newtype TypeFlagBits = TypeFlagBits Flags+  deriving newtype (Eq, Ord, Show, Bits, FiniteBits)++pattern TYPE_FLAG_UNDEFINED :: TypeFlagBits+pattern TYPE_FLAG_UNDEFINED = TypeFlagBits 0x00000000++pattern TYPE_FLAG_VOID :: TypeFlagBits+pattern TYPE_FLAG_VOID = TypeFlagBits 0x00000001++pattern TYPE_FLAG_BOOL :: TypeFlagBits+pattern TYPE_FLAG_BOOL = TypeFlagBits 0x00000002++pattern TYPE_FLAG_INT :: TypeFlagBits+pattern TYPE_FLAG_INT = TypeFlagBits 0x00000004++pattern TYPE_FLAG_FLOAT :: TypeFlagBits+pattern TYPE_FLAG_FLOAT = TypeFlagBits 0x00000008++pattern TYPE_FLAG_VECTOR :: TypeFlagBits+pattern TYPE_FLAG_VECTOR = TypeFlagBits 0x00000100++pattern TYPE_FLAG_MATRIX :: TypeFlagBits+pattern TYPE_FLAG_MATRIX = TypeFlagBits 0x00000200++pattern TYPE_FLAG_EXTERNAL_IMAGE :: TypeFlagBits+pattern TYPE_FLAG_EXTERNAL_IMAGE = TypeFlagBits 0x00010000++pattern TYPE_FLAG_EXTERNAL_SAMPLER :: TypeFlagBits+pattern TYPE_FLAG_EXTERNAL_SAMPLER = TypeFlagBits 0x00020000++pattern TYPE_FLAG_EXTERNAL_SAMPLED_IMAGE :: TypeFlagBits+pattern TYPE_FLAG_EXTERNAL_SAMPLED_IMAGE = TypeFlagBits 0x00040000++pattern TYPE_FLAG_EXTERNAL_BLOCK :: TypeFlagBits+pattern TYPE_FLAG_EXTERNAL_BLOCK = TypeFlagBits 0x00080000++pattern TYPE_FLAG_EXTERNAL_ACCELERATION_STRUCTURE :: TypeFlagBits+pattern TYPE_FLAG_EXTERNAL_ACCELERATION_STRUCTURE = TypeFlagBits 0x00100000++pattern TYPE_FLAG_EXTERNAL_MASK :: TypeFlagBits+pattern TYPE_FLAG_EXTERNAL_MASK = TypeFlagBits 0x00FF0000++pattern TYPE_FLAG_STRUCT :: TypeFlagBits+pattern TYPE_FLAG_STRUCT = TypeFlagBits 0x10000000++pattern TYPE_FLAG_ARRAY :: TypeFlagBits+pattern TYPE_FLAG_ARRAY = TypeFlagBits 0x20000000++typeFlagBitNames :: IsString label => [(TypeFlagBits, label)]+typeFlagBitNames =+  [ (TYPE_FLAG_UNDEFINED, "UNDEFINED")+  , (TYPE_FLAG_VOID, "VOID")+  , (TYPE_FLAG_BOOL, "BOOL")+  , (TYPE_FLAG_INT, "INT")+  , (TYPE_FLAG_FLOAT, "FLOAT")+  , (TYPE_FLAG_VECTOR, "VECTOR")+  , (TYPE_FLAG_MATRIX, "MATRIX")+  , (TYPE_FLAG_EXTERNAL_IMAGE, "EXTERNAL_IMAGE")+  , (TYPE_FLAG_EXTERNAL_SAMPLER, "EXTERNAL_SAMPLER")+  , (TYPE_FLAG_EXTERNAL_SAMPLED_IMAGE, "EXTERNAL_SAMPLED_IMAGE")+  , (TYPE_FLAG_EXTERNAL_BLOCK, "EXTERNAL_BLOCK")+  , (TYPE_FLAG_EXTERNAL_ACCELERATION_STRUCTURE, "EXTERNAL_ACCELERATION_STRUCTURE")+  , (TYPE_FLAG_EXTERNAL_MASK, "EXTERNAL_MASK")+  , (TYPE_FLAG_STRUCT, "STRUCT")+  , (TYPE_FLAG_ARRAY, "ARRAY")+  ]++typeFlagsNames :: IsString label => TypeFlags -> [label]+typeFlagsNames bits = do+  (flag, name) <- drop 1 typeFlagBitNames+  guard $ bits .&&. flag+  pure name
+ lib/Data/SpirV/Reflect/InterfaceVariable.hs view
@@ -0,0 +1,35 @@+module Data.SpirV.Reflect.InterfaceVariable+  ( InterfaceVariable(..)+  , WordOffset(..)+  ) where++import Data.Text (Text)+import Data.Vector (Vector)+import Data.Word (Word32)+import GHC.Generics (Generic)++import Data.SpirV.Reflect.Enums qualified as Enums+import Data.SpirV.Reflect.Traits qualified as Traits+import Data.SpirV.Reflect.TypeDescription (TypeDescription)++data InterfaceVariable = InterfaceVariable+  { spirv_id         :: Maybe Word32+  , name             :: Maybe Text+  , location         :: Word32+  , storage_class    :: Enums.StorageClass+  , semantic         :: Maybe Text+  , decoration_flags :: Enums.DecorationFlags+  , built_in         :: Enums.BuiltIn+  , numeric          :: Traits.Numeric+  , array            :: Traits.Array+  , members          :: Vector TypeDescription+  , format           :: Enums.Format+  , type_description :: Maybe TypeDescription+  , word_offset      :: WordOffset+  }+  deriving (Eq, Show, Generic)++newtype WordOffset = WordOffset+  { location :: Word32+  }+  deriving (Eq, Show, Generic)
+ lib/Data/SpirV/Reflect/Module.hs view
@@ -0,0 +1,29 @@+module Data.SpirV.Reflect.Module+  ( Module(..)+  ) where++import Data.Text (Text)+import Data.Vector (Vector)+import GHC.Generics (Generic)++import Data.SpirV.Reflect.BlockVariable (BlockVariable)+import Data.SpirV.Reflect.DescriptorBinding (DescriptorBinding)+import Data.SpirV.Reflect.DescriptorSet (DescriptorSet)+import Data.SpirV.Reflect.Enums qualified as Enums+import Data.SpirV.Reflect.InterfaceVariable (InterfaceVariable)++data Module = Module+  { generator               :: Enums.Generator+  , entry_point_name        :: Text+  , entry_point_id          :: Int+  , source_language         :: Int+  , source_language_version :: Int+  , spirv_execution_model   :: Int+  , shader_stage            :: Int+  , descriptor_bindings     :: Vector DescriptorBinding+  , descriptor_sets         :: Vector DescriptorSet+  , input_variables         :: Vector InterfaceVariable+  , output_variables        :: Vector InterfaceVariable+  , push_constants          :: Vector BlockVariable+  }+  deriving (Eq, Show, Generic)
+ lib/Data/SpirV/Reflect/Traits.hs view
@@ -0,0 +1,49 @@+module Data.SpirV.Reflect.Traits where++import Data.Vector.Storable qualified as Storable+import Data.Word (Word32)+import GHC.Generics (Generic)++import Data.SpirV.Reflect.Enums qualified as Enums++data Numeric = Numeric+  { scalar :: Scalar+  , vector :: Vector+  , matrix :: Matrix+  }+  deriving (Eq, Ord, Show, Generic)++data Scalar = Scalar+  { width      :: Word32+  , signedness :: Word32+  }+  deriving (Eq, Ord, Show, Generic)++data Vector = Vector+  { component_count :: Word32+  }+  deriving (Eq, Ord, Show, Generic)++data Matrix = Matrix+  { column_count :: Word32+  , row_count    :: Word32+  , stride       :: Word32 -- ^ Measured in bytes+  }+  deriving (Eq, Ord, Show, Generic)++data Array = Array+  { dims_count :: Word32+  , dims       :: Storable.Vector Word32+  , stride     :: Maybe Word32+  }+  deriving (Eq, Ord, Show, Generic)++data Image = Image+  { dim          :: Enums.Dim+  , depth        :: Word32+  , arrayed      :: Word32+  , ms           :: Word32 -- ^ 0: single-sampled, 1: multisampled+  , sampled      :: Word32+  , image_format :: Enums.ImageFormat+  }+  deriving (Eq, Ord, Show, Generic)
+ lib/Data/SpirV/Reflect/TypeDescription.hs view
@@ -0,0 +1,28 @@+module Data.SpirV.Reflect.TypeDescription where++import Data.Text (Text)+import Data.Vector (Vector)+import GHC.Generics (Generic)+import Data.Word (Word32)++import Data.SpirV.Reflect.Enums qualified as Enums+import Data.SpirV.Reflect.Traits qualified as Traits++data TypeDescription = TypeDescription+  { id                 :: Maybe Word32+  , op                 :: Maybe Enums.Op+  , type_name          :: Maybe Text+  , struct_member_name :: Maybe Text+  , storage_class      :: Enums.StorageClass+  , type_flags         :: Enums.TypeFlags+  , traits             :: Maybe Traits+  , members            :: Vector TypeDescription+  }+  deriving (Eq, Show, Generic)++data Traits = Traits+  { numeric :: Traits.Numeric+  , image   :: Traits.Image+  , array   :: Traits.Array+  }+  deriving (Eq, Show, Generic)
+ spirv-reflect-types.cabal view
@@ -0,0 +1,73 @@+cabal-version: 1.12++-- This file has been generated from package.yaml by hpack version 0.34.4.+--+-- see: https://github.com/sol/hpack++name:           spirv-reflect-types+version:        0.1+synopsis:       Data types from spirv-reflect tool.+category:       Graphics+author:         IC Rainbow+maintainer:     ic.rbow@gmail.com+copyright:      2022 IC Rainbow+license:        BSD3+license-file:   LICENSE+build-type:     Simple+extra-source-files:+    ChangeLog.md++source-repository head+  type: git+  location: https://gitlab.com/dpwiz/spirv-reflect++library+  exposed-modules:+      Data.SpirV.Reflect.BlockVariable+      Data.SpirV.Reflect.DescriptorBinding+      Data.SpirV.Reflect.DescriptorSet+      Data.SpirV.Reflect.Enums+      Data.SpirV.Reflect.Enums.Common+      Data.SpirV.Reflect.Enums.DecorationFlags+      Data.SpirV.Reflect.Enums.DescriptorType+      Data.SpirV.Reflect.Enums.Format+      Data.SpirV.Reflect.Enums.Generator+      Data.SpirV.Reflect.Enums.ModuleFlags+      Data.SpirV.Reflect.Enums.ResourceFlags+      Data.SpirV.Reflect.Enums.Result+      Data.SpirV.Reflect.Enums.ShaderStage+      Data.SpirV.Reflect.Enums.SpirvBuiltin+      Data.SpirV.Reflect.Enums.SpirvDim+      Data.SpirV.Reflect.Enums.SpirvImageFormat+      Data.SpirV.Reflect.Enums.SpirvOp+      Data.SpirV.Reflect.Enums.SpirvStorageClass+      Data.SpirV.Reflect.Enums.TypeFlags+      Data.SpirV.Reflect.InterfaceVariable+      Data.SpirV.Reflect.Module+      Data.SpirV.Reflect.Traits+      Data.SpirV.Reflect.TypeDescription+  other-modules:+      Paths_spirv_reflect_types+  hs-source-dirs:+      lib+  default-extensions:+      ApplicativeDo+      BlockArguments+      DeriveGeneric+      DerivingStrategies+      DuplicateRecordFields+      FlexibleContexts+      GeneralizedNewtypeDeriving+      ImportQualifiedPost+      LambdaCase+      OverloadedStrings+      PatternSynonyms+      RecordWildCards+      StrictData+      TypeApplications+  build-depends:+      base >=4.7 && <5+    , containers+    , text+    , vector+  default-language: Haskell2010