mirror of
https://github.com/KhronosGroup/OpenCL-CTS.git
synced 2026-03-26 00:39:03 +00:00
The Volatile, Coherent, NonWritable and NonReadable decorations can only be applied to images if they are storage images, which require the Shader capability. Note that in SPIR-V 1.4 and later, the NonWritable decoration can also be applied to objects in the Private and Function storage classes (although Private also requires the Shader capability), but this was not covered by the existing test for the NonWritable decoration. Signed-off-by: Stuart Brady <stuart.brady@arm.com>
This commit is contained in:
@@ -1,81 +0,0 @@
|
||||
; SPIR-V
|
||||
; Version: 1.0
|
||||
; Generator: Khronos SPIR-V Tools Assembler; 0
|
||||
; Bound: 40
|
||||
; Schema: 0
|
||||
OpCapability Addresses
|
||||
OpCapability Linkage
|
||||
OpCapability Kernel
|
||||
OpCapability ImageBasic
|
||||
OpCapability LiteralSampler
|
||||
%1 = OpExtInstImport "OpenCL.std"
|
||||
OpMemoryModel Physical32 OpenCL
|
||||
OpEntryPoint Kernel %2 "decorate_coherent" %__spirv_BuiltInGlobalInvocationId %__spirv_BuiltInGlobalSize
|
||||
OpName %sampler "sampler"
|
||||
OpName %__spirv_BuiltInGlobalInvocationId "__spirv_BuiltInGlobalInvocationId"
|
||||
OpName %__spirv_BuiltInGlobalSize "__spirv_BuiltInGlobalSize"
|
||||
OpName %dst "dst"
|
||||
OpName %src "src"
|
||||
OpName %entry "entry"
|
||||
OpName %call "call"
|
||||
OpName %call1 "call1"
|
||||
OpName %call2 "call2"
|
||||
OpName %mul "mul"
|
||||
OpName %add "add"
|
||||
OpName %vecinit "vecinit"
|
||||
OpName %vecinit6 "vecinit6"
|
||||
OpName %TempSampledImage "TempSampledImage"
|
||||
OpName %call7_old "call7.old"
|
||||
OpName %arrayidx "arrayidx"
|
||||
OpDecorate %src Coherent
|
||||
OpDecorate %19 Constant
|
||||
%19 = OpDecorationGroup
|
||||
OpDecorate %__spirv_BuiltInGlobalInvocationId BuiltIn GlobalInvocationId
|
||||
OpDecorate %__spirv_BuiltInGlobalSize BuiltIn GlobalSize
|
||||
OpDecorate %dst FuncParamAttr NoCapture
|
||||
OpDecorate %sampler LinkageAttributes "sampler" Export
|
||||
OpDecorate %__spirv_BuiltInGlobalSize LinkageAttributes "__spirv_BuiltInGlobalSize" Import
|
||||
OpDecorate %__spirv_BuiltInGlobalInvocationId LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import
|
||||
OpDecorate %sampler Alignment 4
|
||||
OpGroupDecorate %19 %sampler %__spirv_BuiltInGlobalInvocationId %__spirv_BuiltInGlobalSize
|
||||
%uint = OpTypeInt 32 0
|
||||
%uint_16 = OpConstant %uint 16
|
||||
%_ptr_Input_uint = OpTypePointer Input %uint
|
||||
%_ptr_UniformConstant_uint = OpTypePointer UniformConstant %uint
|
||||
%v3uint = OpTypeVector %uint 3
|
||||
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
|
||||
%void = OpTypeVoid
|
||||
%v4uint = OpTypeVector %uint 4
|
||||
%_ptr_CrossWorkgroup_v4uint = OpTypePointer CrossWorkgroup %v4uint
|
||||
%28 = OpTypeImage %void 2D 0 0 0 0 Unknown ReadOnly
|
||||
%29 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4uint %28
|
||||
%v2uint = OpTypeVector %uint 2
|
||||
%31 = OpTypeSampler
|
||||
%32 = OpTypeSampledImage %28
|
||||
%float = OpTypeFloat 32
|
||||
%34 = OpConstantSampler %31 None 0 Nearest
|
||||
%float_0 = OpConstant %float 0
|
||||
%sampler = OpVariable %_ptr_UniformConstant_uint UniformConstant %uint_16
|
||||
%__spirv_BuiltInGlobalInvocationId = OpVariable %_ptr_Input_v3uint Input
|
||||
%__spirv_BuiltInGlobalSize = OpVariable %_ptr_Input_v3uint Input
|
||||
%2 = OpFunction %void None %29
|
||||
%dst = OpFunctionParameter %_ptr_CrossWorkgroup_v4uint
|
||||
%src = OpFunctionParameter %28
|
||||
%entry = OpLabel
|
||||
%36 = OpUndef %v2uint
|
||||
%37 = OpLoad %v3uint %__spirv_BuiltInGlobalInvocationId Aligned 0
|
||||
%call = OpCompositeExtract %uint %37 0
|
||||
%38 = OpLoad %v3uint %__spirv_BuiltInGlobalInvocationId Aligned 0
|
||||
%call1 = OpCompositeExtract %uint %38 1
|
||||
%39 = OpLoad %v3uint %__spirv_BuiltInGlobalSize Aligned 0
|
||||
%call2 = OpCompositeExtract %uint %39 0
|
||||
%mul = OpIMul %uint %call2 %call1
|
||||
%add = OpIAdd %uint %mul %call
|
||||
%vecinit = OpCompositeInsert %v2uint %call1 %36 0
|
||||
%vecinit6 = OpCompositeInsert %v2uint %call %vecinit 1
|
||||
%TempSampledImage = OpSampledImage %32 %src %34
|
||||
%call7_old = OpImageSampleExplicitLod %v4uint %TempSampledImage %vecinit6 Lod %float_0
|
||||
%arrayidx = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4uint %dst %add
|
||||
OpStore %arrayidx %call7_old Aligned 16
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
@@ -1,94 +0,0 @@
|
||||
; SPIR-V
|
||||
; Version: 1.0
|
||||
; Generator: Khronos SPIR-V Tools Assembler; 0
|
||||
; Bound: 47
|
||||
; Schema: 0
|
||||
OpCapability Addresses
|
||||
OpCapability Linkage
|
||||
OpCapability Kernel
|
||||
OpCapability Int64
|
||||
OpCapability ImageBasic
|
||||
OpCapability LiteralSampler
|
||||
%1 = OpExtInstImport "OpenCL.std"
|
||||
OpMemoryModel Physical64 OpenCL
|
||||
OpEntryPoint Kernel %2 "decorate_coherent" %__spirv_BuiltInGlobalInvocationId %__spirv_BuiltInGlobalSize
|
||||
OpName %sampler "sampler"
|
||||
OpName %__spirv_BuiltInGlobalInvocationId "__spirv_BuiltInGlobalInvocationId"
|
||||
OpName %__spirv_BuiltInGlobalSize "__spirv_BuiltInGlobalSize"
|
||||
OpName %dst "dst"
|
||||
OpName %src "src"
|
||||
OpName %entry "entry"
|
||||
OpName %call "call"
|
||||
OpName %conv "conv"
|
||||
OpName %call1 "call1"
|
||||
OpName %conv2 "conv2"
|
||||
OpName %conv3 "conv3"
|
||||
OpName %call4 "call4"
|
||||
OpName %mul "mul"
|
||||
OpName %add "add"
|
||||
OpName %vecinit "vecinit"
|
||||
OpName %vecinit10 "vecinit10"
|
||||
OpName %TempSampledImage "TempSampledImage"
|
||||
OpName %call11_old "call11.old"
|
||||
OpName %sext "sext"
|
||||
OpName %idxprom "idxprom"
|
||||
OpName %arrayidx "arrayidx"
|
||||
OpDecorate %src Coherent
|
||||
OpDecorate %24 Constant
|
||||
%24 = OpDecorationGroup
|
||||
OpDecorate %__spirv_BuiltInGlobalInvocationId BuiltIn GlobalInvocationId
|
||||
OpDecorate %__spirv_BuiltInGlobalSize BuiltIn GlobalSize
|
||||
OpDecorate %dst FuncParamAttr NoCapture
|
||||
OpDecorate %sampler LinkageAttributes "sampler" Export
|
||||
OpDecorate %__spirv_BuiltInGlobalSize LinkageAttributes "__spirv_BuiltInGlobalSize" Import
|
||||
OpDecorate %__spirv_BuiltInGlobalInvocationId LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import
|
||||
OpDecorate %sampler Alignment 4
|
||||
OpGroupDecorate %24 %sampler %__spirv_BuiltInGlobalInvocationId %__spirv_BuiltInGlobalSize
|
||||
%uint = OpTypeInt 32 0
|
||||
%ulong = OpTypeInt 64 0
|
||||
%uint_16 = OpConstant %uint 16
|
||||
%ulong_32 = OpConstant %ulong 32
|
||||
%_ptr_Input_uint = OpTypePointer Input %uint
|
||||
%_ptr_UniformConstant_uint = OpTypePointer UniformConstant %uint
|
||||
%v3ulong = OpTypeVector %ulong 3
|
||||
%_ptr_Input_v3ulong = OpTypePointer Input %v3ulong
|
||||
%void = OpTypeVoid
|
||||
%v4uint = OpTypeVector %uint 4
|
||||
%_ptr_CrossWorkgroup_v4uint = OpTypePointer CrossWorkgroup %v4uint
|
||||
%35 = OpTypeImage %void 2D 0 0 0 0 Unknown ReadOnly
|
||||
%36 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4uint %35
|
||||
%v2uint = OpTypeVector %uint 2
|
||||
%38 = OpTypeSampler
|
||||
%39 = OpTypeSampledImage %35
|
||||
%float = OpTypeFloat 32
|
||||
%41 = OpConstantSampler %38 None 0 Nearest
|
||||
%float_0 = OpConstant %float 0
|
||||
%sampler = OpVariable %_ptr_UniformConstant_uint UniformConstant %uint_16
|
||||
%__spirv_BuiltInGlobalInvocationId = OpVariable %_ptr_Input_v3ulong Input
|
||||
%__spirv_BuiltInGlobalSize = OpVariable %_ptr_Input_v3ulong Input
|
||||
%2 = OpFunction %void None %36
|
||||
%dst = OpFunctionParameter %_ptr_CrossWorkgroup_v4uint
|
||||
%src = OpFunctionParameter %35
|
||||
%entry = OpLabel
|
||||
%43 = OpUndef %v2uint
|
||||
%44 = OpLoad %v3ulong %__spirv_BuiltInGlobalInvocationId Aligned 0
|
||||
%call = OpCompositeExtract %ulong %44 0
|
||||
%conv = OpUConvert %uint %call
|
||||
%45 = OpLoad %v3ulong %__spirv_BuiltInGlobalInvocationId Aligned 0
|
||||
%call1 = OpCompositeExtract %ulong %45 1
|
||||
%conv2 = OpUConvert %uint %call1
|
||||
%conv3 = OpSConvert %ulong %conv2
|
||||
%46 = OpLoad %v3ulong %__spirv_BuiltInGlobalSize Aligned 0
|
||||
%call4 = OpCompositeExtract %ulong %46 0
|
||||
%mul = OpIMul %ulong %conv3 %call4
|
||||
%add = OpIAdd %ulong %mul %call
|
||||
%vecinit = OpCompositeInsert %v2uint %conv2 %43 0
|
||||
%vecinit10 = OpCompositeInsert %v2uint %conv %vecinit 1
|
||||
%TempSampledImage = OpSampledImage %39 %src %41
|
||||
%call11_old = OpImageSampleExplicitLod %v4uint %TempSampledImage %vecinit10 Lod %float_0
|
||||
%sext = OpShiftLeftLogical %ulong %add %ulong_32
|
||||
%idxprom = OpShiftRightArithmetic %ulong %sext %ulong_32
|
||||
%arrayidx = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4uint %dst %idxprom
|
||||
OpStore %arrayidx %call11_old Aligned 16
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
@@ -1,66 +0,0 @@
|
||||
; SPIR-V
|
||||
; Version: 1.0
|
||||
; Generator: Khronos SPIR-V Tools Assembler; 0
|
||||
; Bound: 31
|
||||
; Schema: 0
|
||||
OpCapability Addresses
|
||||
OpCapability Linkage
|
||||
OpCapability Kernel
|
||||
OpCapability ImageBasic
|
||||
%1 = OpExtInstImport "OpenCL.std"
|
||||
OpMemoryModel Physical32 OpenCL
|
||||
OpEntryPoint Kernel %2 "decorate_nonreadable" %__spirv_BuiltInGlobalInvocationId %__spirv_BuiltInGlobalSize
|
||||
OpSource OpenCL_C 100000
|
||||
OpName %__spirv_BuiltInGlobalInvocationId "__spirv_BuiltInGlobalInvocationId"
|
||||
OpName %__spirv_BuiltInGlobalSize "__spirv_BuiltInGlobalSize"
|
||||
OpName %dst "dst"
|
||||
OpName %src "src"
|
||||
OpName %entry "entry"
|
||||
OpName %call "call"
|
||||
OpName %call1 "call1"
|
||||
OpName %call2 "call2"
|
||||
OpName %mul "mul"
|
||||
OpName %add "add"
|
||||
OpName %vecinit "vecinit"
|
||||
OpName %vecinit3 "vecinit3"
|
||||
OpName %arrayidx "arrayidx"
|
||||
OpDecorate %dst NonReadable
|
||||
OpDecorate %16 Constant
|
||||
%16 = OpDecorationGroup
|
||||
OpDecorate %__spirv_BuiltInGlobalInvocationId BuiltIn GlobalInvocationId
|
||||
OpDecorate %__spirv_BuiltInGlobalSize BuiltIn GlobalSize
|
||||
OpDecorate %src FuncParamAttr NoCapture
|
||||
OpDecorate %__spirv_BuiltInGlobalSize LinkageAttributes "__spirv_BuiltInGlobalSize" Import
|
||||
OpDecorate %__spirv_BuiltInGlobalInvocationId LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import
|
||||
OpGroupDecorate %16 %__spirv_BuiltInGlobalInvocationId %__spirv_BuiltInGlobalSize
|
||||
%uint = OpTypeInt 32 0
|
||||
%v3uint = OpTypeVector %uint 3
|
||||
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
|
||||
%void = OpTypeVoid
|
||||
%21 = OpTypeImage %void 2D 0 0 0 0 Unknown WriteOnly
|
||||
%v4uint = OpTypeVector %uint 4
|
||||
%_ptr_CrossWorkgroup_v4uint = OpTypePointer CrossWorkgroup %v4uint
|
||||
%24 = OpTypeFunction %void %21 %_ptr_CrossWorkgroup_v4uint
|
||||
%v2uint = OpTypeVector %uint 2
|
||||
%__spirv_BuiltInGlobalInvocationId = OpVariable %_ptr_Input_v3uint Input
|
||||
%__spirv_BuiltInGlobalSize = OpVariable %_ptr_Input_v3uint Input
|
||||
%2 = OpFunction %void None %24
|
||||
%dst = OpFunctionParameter %21
|
||||
%src = OpFunctionParameter %_ptr_CrossWorkgroup_v4uint
|
||||
%entry = OpLabel
|
||||
%26 = OpUndef %v2uint
|
||||
%27 = OpLoad %v3uint %__spirv_BuiltInGlobalInvocationId Aligned 0
|
||||
%call = OpCompositeExtract %uint %27 0
|
||||
%28 = OpLoad %v3uint %__spirv_BuiltInGlobalInvocationId Aligned 0
|
||||
%call1 = OpCompositeExtract %uint %28 1
|
||||
%29 = OpLoad %v3uint %__spirv_BuiltInGlobalSize Aligned 0
|
||||
%call2 = OpCompositeExtract %uint %29 0
|
||||
%mul = OpIMul %uint %call2 %call1
|
||||
%add = OpIAdd %uint %mul %call
|
||||
%vecinit = OpCompositeInsert %v2uint %call1 %26 0
|
||||
%vecinit3 = OpCompositeInsert %v2uint %call %vecinit 1
|
||||
%arrayidx = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4uint %src %add
|
||||
%30 = OpLoad %v4uint %arrayidx Aligned 16
|
||||
OpImageWrite %dst %vecinit3 %30
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
@@ -1,79 +0,0 @@
|
||||
; SPIR-V
|
||||
; Version: 1.0
|
||||
; Generator: Khronos SPIR-V Tools Assembler; 0
|
||||
; Bound: 38
|
||||
; Schema: 0
|
||||
OpCapability Addresses
|
||||
OpCapability Linkage
|
||||
OpCapability Kernel
|
||||
OpCapability Int64
|
||||
OpCapability ImageBasic
|
||||
%1 = OpExtInstImport "OpenCL.std"
|
||||
OpMemoryModel Physical64 OpenCL
|
||||
OpEntryPoint Kernel %2 "decorate_nonreadable" %__spirv_BuiltInGlobalInvocationId %__spirv_BuiltInGlobalSize
|
||||
OpSource OpenCL_C 100000
|
||||
OpName %__spirv_BuiltInGlobalInvocationId "__spirv_BuiltInGlobalInvocationId"
|
||||
OpName %__spirv_BuiltInGlobalSize "__spirv_BuiltInGlobalSize"
|
||||
OpName %dst "dst"
|
||||
OpName %src "src"
|
||||
OpName %entry "entry"
|
||||
OpName %call "call"
|
||||
OpName %conv "conv"
|
||||
OpName %call1 "call1"
|
||||
OpName %conv2 "conv2"
|
||||
OpName %conv3 "conv3"
|
||||
OpName %call4 "call4"
|
||||
OpName %mul "mul"
|
||||
OpName %add "add"
|
||||
OpName %vecinit "vecinit"
|
||||
OpName %vecinit7 "vecinit7"
|
||||
OpName %sext "sext"
|
||||
OpName %idxprom "idxprom"
|
||||
OpName %arrayidx "arrayidx"
|
||||
OpDecorate %dst NonReadable
|
||||
OpDecorate %21 Constant
|
||||
%21 = OpDecorationGroup
|
||||
OpDecorate %__spirv_BuiltInGlobalInvocationId BuiltIn GlobalInvocationId
|
||||
OpDecorate %__spirv_BuiltInGlobalSize BuiltIn GlobalSize
|
||||
OpDecorate %src FuncParamAttr NoCapture
|
||||
OpDecorate %__spirv_BuiltInGlobalSize LinkageAttributes "__spirv_BuiltInGlobalSize" Import
|
||||
OpDecorate %__spirv_BuiltInGlobalInvocationId LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import
|
||||
OpGroupDecorate %21 %__spirv_BuiltInGlobalInvocationId %__spirv_BuiltInGlobalSize
|
||||
%ulong = OpTypeInt 64 0
|
||||
%uint = OpTypeInt 32 0
|
||||
%ulong_32 = OpConstant %ulong 32
|
||||
%v3ulong = OpTypeVector %ulong 3
|
||||
%_ptr_Input_v3ulong = OpTypePointer Input %v3ulong
|
||||
%void = OpTypeVoid
|
||||
%28 = OpTypeImage %void 2D 0 0 0 0 Unknown WriteOnly
|
||||
%v4uint = OpTypeVector %uint 4
|
||||
%_ptr_CrossWorkgroup_v4uint = OpTypePointer CrossWorkgroup %v4uint
|
||||
%31 = OpTypeFunction %void %28 %_ptr_CrossWorkgroup_v4uint
|
||||
%v2uint = OpTypeVector %uint 2
|
||||
%__spirv_BuiltInGlobalInvocationId = OpVariable %_ptr_Input_v3ulong Input
|
||||
%__spirv_BuiltInGlobalSize = OpVariable %_ptr_Input_v3ulong Input
|
||||
%2 = OpFunction %void None %31
|
||||
%dst = OpFunctionParameter %28
|
||||
%src = OpFunctionParameter %_ptr_CrossWorkgroup_v4uint
|
||||
%entry = OpLabel
|
||||
%33 = OpUndef %v2uint
|
||||
%34 = OpLoad %v3ulong %__spirv_BuiltInGlobalInvocationId Aligned 0
|
||||
%call = OpCompositeExtract %ulong %34 0
|
||||
%conv = OpUConvert %uint %call
|
||||
%35 = OpLoad %v3ulong %__spirv_BuiltInGlobalInvocationId Aligned 0
|
||||
%call1 = OpCompositeExtract %ulong %35 1
|
||||
%conv2 = OpUConvert %uint %call1
|
||||
%conv3 = OpSConvert %ulong %conv2
|
||||
%36 = OpLoad %v3ulong %__spirv_BuiltInGlobalSize Aligned 0
|
||||
%call4 = OpCompositeExtract %ulong %36 0
|
||||
%mul = OpIMul %ulong %conv3 %call4
|
||||
%add = OpIAdd %ulong %mul %call
|
||||
%vecinit = OpCompositeInsert %v2uint %conv2 %33 0
|
||||
%vecinit7 = OpCompositeInsert %v2uint %conv %vecinit 1
|
||||
%sext = OpShiftLeftLogical %ulong %add %ulong_32
|
||||
%idxprom = OpShiftRightArithmetic %ulong %sext %ulong_32
|
||||
%arrayidx = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4uint %src %idxprom
|
||||
%37 = OpLoad %v4uint %arrayidx Aligned 16
|
||||
OpImageWrite %dst %vecinit7 %37
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
@@ -1,81 +0,0 @@
|
||||
; SPIR-V
|
||||
; Version: 1.0
|
||||
; Generator: Khronos SPIR-V Tools Assembler; 0
|
||||
; Bound: 40
|
||||
; Schema: 0
|
||||
OpCapability Addresses
|
||||
OpCapability Linkage
|
||||
OpCapability Kernel
|
||||
OpCapability ImageBasic
|
||||
OpCapability LiteralSampler
|
||||
%1 = OpExtInstImport "OpenCL.std"
|
||||
OpMemoryModel Physical32 OpenCL
|
||||
OpEntryPoint Kernel %2 "decorate_nonwritable" %__spirv_BuiltInGlobalInvocationId %__spirv_BuiltInGlobalSize
|
||||
OpName %sampler "sampler"
|
||||
OpName %__spirv_BuiltInGlobalInvocationId "__spirv_BuiltInGlobalInvocationId"
|
||||
OpName %__spirv_BuiltInGlobalSize "__spirv_BuiltInGlobalSize"
|
||||
OpName %dst "dst"
|
||||
OpName %src "src"
|
||||
OpName %entry "entry"
|
||||
OpName %call "call"
|
||||
OpName %call1 "call1"
|
||||
OpName %call2 "call2"
|
||||
OpName %mul "mul"
|
||||
OpName %add "add"
|
||||
OpName %vecinit "vecinit"
|
||||
OpName %vecinit6 "vecinit6"
|
||||
OpName %TempSampledImage "TempSampledImage"
|
||||
OpName %call7_old "call7.old"
|
||||
OpName %arrayidx "arrayidx"
|
||||
OpDecorate %src NonWritable
|
||||
OpDecorate %19 Constant
|
||||
%19 = OpDecorationGroup
|
||||
OpDecorate %__spirv_BuiltInGlobalInvocationId BuiltIn GlobalInvocationId
|
||||
OpDecorate %__spirv_BuiltInGlobalSize BuiltIn GlobalSize
|
||||
OpDecorate %dst FuncParamAttr NoCapture
|
||||
OpDecorate %sampler LinkageAttributes "sampler" Export
|
||||
OpDecorate %__spirv_BuiltInGlobalSize LinkageAttributes "__spirv_BuiltInGlobalSize" Import
|
||||
OpDecorate %__spirv_BuiltInGlobalInvocationId LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import
|
||||
OpDecorate %sampler Alignment 4
|
||||
OpGroupDecorate %19 %sampler %__spirv_BuiltInGlobalInvocationId %__spirv_BuiltInGlobalSize
|
||||
%uint = OpTypeInt 32 0
|
||||
%uint_16 = OpConstant %uint 16
|
||||
%_ptr_Input_uint = OpTypePointer Input %uint
|
||||
%_ptr_UniformConstant_uint = OpTypePointer UniformConstant %uint
|
||||
%v3uint = OpTypeVector %uint 3
|
||||
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
|
||||
%void = OpTypeVoid
|
||||
%v4uint = OpTypeVector %uint 4
|
||||
%_ptr_CrossWorkgroup_v4uint = OpTypePointer CrossWorkgroup %v4uint
|
||||
%28 = OpTypeImage %void 2D 0 0 0 0 Unknown ReadOnly
|
||||
%29 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4uint %28
|
||||
%v2uint = OpTypeVector %uint 2
|
||||
%31 = OpTypeSampler
|
||||
%32 = OpTypeSampledImage %28
|
||||
%float = OpTypeFloat 32
|
||||
%34 = OpConstantSampler %31 None 0 Nearest
|
||||
%float_0 = OpConstant %float 0
|
||||
%sampler = OpVariable %_ptr_UniformConstant_uint UniformConstant %uint_16
|
||||
%__spirv_BuiltInGlobalInvocationId = OpVariable %_ptr_Input_v3uint Input
|
||||
%__spirv_BuiltInGlobalSize = OpVariable %_ptr_Input_v3uint Input
|
||||
%2 = OpFunction %void None %29
|
||||
%dst = OpFunctionParameter %_ptr_CrossWorkgroup_v4uint
|
||||
%src = OpFunctionParameter %28
|
||||
%entry = OpLabel
|
||||
%36 = OpUndef %v2uint
|
||||
%37 = OpLoad %v3uint %__spirv_BuiltInGlobalInvocationId Aligned 0
|
||||
%call = OpCompositeExtract %uint %37 0
|
||||
%38 = OpLoad %v3uint %__spirv_BuiltInGlobalInvocationId Aligned 0
|
||||
%call1 = OpCompositeExtract %uint %38 1
|
||||
%39 = OpLoad %v3uint %__spirv_BuiltInGlobalSize Aligned 0
|
||||
%call2 = OpCompositeExtract %uint %39 0
|
||||
%mul = OpIMul %uint %call2 %call1
|
||||
%add = OpIAdd %uint %mul %call
|
||||
%vecinit = OpCompositeInsert %v2uint %call1 %36 0
|
||||
%vecinit6 = OpCompositeInsert %v2uint %call %vecinit 1
|
||||
%TempSampledImage = OpSampledImage %32 %src %34
|
||||
%call7_old = OpImageSampleExplicitLod %v4uint %TempSampledImage %vecinit6 Lod %float_0
|
||||
%arrayidx = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4uint %dst %add
|
||||
OpStore %arrayidx %call7_old Aligned 16
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
@@ -1,94 +0,0 @@
|
||||
; SPIR-V
|
||||
; Version: 1.0
|
||||
; Generator: Khronos SPIR-V Tools Assembler; 0
|
||||
; Bound: 47
|
||||
; Schema: 0
|
||||
OpCapability Addresses
|
||||
OpCapability Linkage
|
||||
OpCapability Kernel
|
||||
OpCapability Int64
|
||||
OpCapability ImageBasic
|
||||
OpCapability LiteralSampler
|
||||
%1 = OpExtInstImport "OpenCL.std"
|
||||
OpMemoryModel Physical64 OpenCL
|
||||
OpEntryPoint Kernel %2 "decorate_nonwritable" %__spirv_BuiltInGlobalInvocationId %__spirv_BuiltInGlobalSize
|
||||
OpName %sampler "sampler"
|
||||
OpName %__spirv_BuiltInGlobalInvocationId "__spirv_BuiltInGlobalInvocationId"
|
||||
OpName %__spirv_BuiltInGlobalSize "__spirv_BuiltInGlobalSize"
|
||||
OpName %dst "dst"
|
||||
OpName %src "src"
|
||||
OpName %entry "entry"
|
||||
OpName %call "call"
|
||||
OpName %conv "conv"
|
||||
OpName %call1 "call1"
|
||||
OpName %conv2 "conv2"
|
||||
OpName %conv3 "conv3"
|
||||
OpName %call4 "call4"
|
||||
OpName %mul "mul"
|
||||
OpName %add "add"
|
||||
OpName %vecinit "vecinit"
|
||||
OpName %vecinit10 "vecinit10"
|
||||
OpName %TempSampledImage "TempSampledImage"
|
||||
OpName %call11_old "call11.old"
|
||||
OpName %sext "sext"
|
||||
OpName %idxprom "idxprom"
|
||||
OpName %arrayidx "arrayidx"
|
||||
OpDecorate %src NonWritable
|
||||
OpDecorate %24 Constant
|
||||
%24 = OpDecorationGroup
|
||||
OpDecorate %__spirv_BuiltInGlobalInvocationId BuiltIn GlobalInvocationId
|
||||
OpDecorate %__spirv_BuiltInGlobalSize BuiltIn GlobalSize
|
||||
OpDecorate %dst FuncParamAttr NoCapture
|
||||
OpDecorate %sampler LinkageAttributes "sampler" Export
|
||||
OpDecorate %__spirv_BuiltInGlobalSize LinkageAttributes "__spirv_BuiltInGlobalSize" Import
|
||||
OpDecorate %__spirv_BuiltInGlobalInvocationId LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import
|
||||
OpDecorate %sampler Alignment 4
|
||||
OpGroupDecorate %24 %sampler %__spirv_BuiltInGlobalInvocationId %__spirv_BuiltInGlobalSize
|
||||
%uint = OpTypeInt 32 0
|
||||
%ulong = OpTypeInt 64 0
|
||||
%uint_16 = OpConstant %uint 16
|
||||
%ulong_32 = OpConstant %ulong 32
|
||||
%_ptr_Input_uint = OpTypePointer Input %uint
|
||||
%_ptr_UniformConstant_uint = OpTypePointer UniformConstant %uint
|
||||
%v3ulong = OpTypeVector %ulong 3
|
||||
%_ptr_Input_v3ulong = OpTypePointer Input %v3ulong
|
||||
%void = OpTypeVoid
|
||||
%v4uint = OpTypeVector %uint 4
|
||||
%_ptr_CrossWorkgroup_v4uint = OpTypePointer CrossWorkgroup %v4uint
|
||||
%35 = OpTypeImage %void 2D 0 0 0 0 Unknown ReadOnly
|
||||
%36 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4uint %35
|
||||
%v2uint = OpTypeVector %uint 2
|
||||
%38 = OpTypeSampler
|
||||
%39 = OpTypeSampledImage %35
|
||||
%float = OpTypeFloat 32
|
||||
%41 = OpConstantSampler %38 None 0 Nearest
|
||||
%float_0 = OpConstant %float 0
|
||||
%sampler = OpVariable %_ptr_UniformConstant_uint UniformConstant %uint_16
|
||||
%__spirv_BuiltInGlobalInvocationId = OpVariable %_ptr_Input_v3ulong Input
|
||||
%__spirv_BuiltInGlobalSize = OpVariable %_ptr_Input_v3ulong Input
|
||||
%2 = OpFunction %void None %36
|
||||
%dst = OpFunctionParameter %_ptr_CrossWorkgroup_v4uint
|
||||
%src = OpFunctionParameter %35
|
||||
%entry = OpLabel
|
||||
%43 = OpUndef %v2uint
|
||||
%44 = OpLoad %v3ulong %__spirv_BuiltInGlobalInvocationId Aligned 0
|
||||
%call = OpCompositeExtract %ulong %44 0
|
||||
%conv = OpUConvert %uint %call
|
||||
%45 = OpLoad %v3ulong %__spirv_BuiltInGlobalInvocationId Aligned 0
|
||||
%call1 = OpCompositeExtract %ulong %45 1
|
||||
%conv2 = OpUConvert %uint %call1
|
||||
%conv3 = OpSConvert %ulong %conv2
|
||||
%46 = OpLoad %v3ulong %__spirv_BuiltInGlobalSize Aligned 0
|
||||
%call4 = OpCompositeExtract %ulong %46 0
|
||||
%mul = OpIMul %ulong %conv3 %call4
|
||||
%add = OpIAdd %ulong %mul %call
|
||||
%vecinit = OpCompositeInsert %v2uint %conv2 %43 0
|
||||
%vecinit10 = OpCompositeInsert %v2uint %conv %vecinit 1
|
||||
%TempSampledImage = OpSampledImage %39 %src %41
|
||||
%call11_old = OpImageSampleExplicitLod %v4uint %TempSampledImage %vecinit10 Lod %float_0
|
||||
%sext = OpShiftLeftLogical %ulong %add %ulong_32
|
||||
%idxprom = OpShiftRightArithmetic %ulong %sext %ulong_32
|
||||
%arrayidx = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4uint %dst %idxprom
|
||||
OpStore %arrayidx %call11_old Aligned 16
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
@@ -1,81 +0,0 @@
|
||||
; SPIR-V
|
||||
; Version: 1.0
|
||||
; Generator: Khronos SPIR-V Tools Assembler; 0
|
||||
; Bound: 40
|
||||
; Schema: 0
|
||||
OpCapability Addresses
|
||||
OpCapability Linkage
|
||||
OpCapability Kernel
|
||||
OpCapability ImageBasic
|
||||
OpCapability LiteralSampler
|
||||
%1 = OpExtInstImport "OpenCL.std"
|
||||
OpMemoryModel Physical32 OpenCL
|
||||
OpEntryPoint Kernel %2 "decorate_volatile" %__spirv_BuiltInGlobalInvocationId %__spirv_BuiltInGlobalSize
|
||||
OpName %sampler "sampler"
|
||||
OpName %__spirv_BuiltInGlobalInvocationId "__spirv_BuiltInGlobalInvocationId"
|
||||
OpName %__spirv_BuiltInGlobalSize "__spirv_BuiltInGlobalSize"
|
||||
OpName %dst "dst"
|
||||
OpName %src "src"
|
||||
OpName %entry "entry"
|
||||
OpName %call "call"
|
||||
OpName %call1 "call1"
|
||||
OpName %call2 "call2"
|
||||
OpName %mul "mul"
|
||||
OpName %add "add"
|
||||
OpName %vecinit "vecinit"
|
||||
OpName %vecinit6 "vecinit6"
|
||||
OpName %TempSampledImage "TempSampledImage"
|
||||
OpName %call7_old "call7.old"
|
||||
OpName %arrayidx "arrayidx"
|
||||
OpDecorate %src Volatile
|
||||
OpDecorate %19 Constant
|
||||
%19 = OpDecorationGroup
|
||||
OpDecorate %__spirv_BuiltInGlobalInvocationId BuiltIn GlobalInvocationId
|
||||
OpDecorate %__spirv_BuiltInGlobalSize BuiltIn GlobalSize
|
||||
OpDecorate %dst FuncParamAttr NoCapture
|
||||
OpDecorate %sampler LinkageAttributes "sampler" Export
|
||||
OpDecorate %__spirv_BuiltInGlobalSize LinkageAttributes "__spirv_BuiltInGlobalSize" Import
|
||||
OpDecorate %__spirv_BuiltInGlobalInvocationId LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import
|
||||
OpDecorate %sampler Alignment 4
|
||||
OpGroupDecorate %19 %sampler %__spirv_BuiltInGlobalInvocationId %__spirv_BuiltInGlobalSize
|
||||
%uint = OpTypeInt 32 0
|
||||
%uint_16 = OpConstant %uint 16
|
||||
%_ptr_Input_uint = OpTypePointer Input %uint
|
||||
%_ptr_UniformConstant_uint = OpTypePointer UniformConstant %uint
|
||||
%v3uint = OpTypeVector %uint 3
|
||||
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
|
||||
%void = OpTypeVoid
|
||||
%v4uint = OpTypeVector %uint 4
|
||||
%_ptr_CrossWorkgroup_v4uint = OpTypePointer CrossWorkgroup %v4uint
|
||||
%28 = OpTypeImage %void 2D 0 0 0 0 Unknown ReadOnly
|
||||
%29 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4uint %28
|
||||
%v2uint = OpTypeVector %uint 2
|
||||
%31 = OpTypeSampler
|
||||
%32 = OpTypeSampledImage %28
|
||||
%float = OpTypeFloat 32
|
||||
%34 = OpConstantSampler %31 None 0 Nearest
|
||||
%float_0 = OpConstant %float 0
|
||||
%sampler = OpVariable %_ptr_UniformConstant_uint UniformConstant %uint_16
|
||||
%__spirv_BuiltInGlobalInvocationId = OpVariable %_ptr_Input_v3uint Input
|
||||
%__spirv_BuiltInGlobalSize = OpVariable %_ptr_Input_v3uint Input
|
||||
%2 = OpFunction %void None %29
|
||||
%dst = OpFunctionParameter %_ptr_CrossWorkgroup_v4uint
|
||||
%src = OpFunctionParameter %28
|
||||
%entry = OpLabel
|
||||
%36 = OpUndef %v2uint
|
||||
%37 = OpLoad %v3uint %__spirv_BuiltInGlobalInvocationId Aligned 0
|
||||
%call = OpCompositeExtract %uint %37 0
|
||||
%38 = OpLoad %v3uint %__spirv_BuiltInGlobalInvocationId Aligned 0
|
||||
%call1 = OpCompositeExtract %uint %38 1
|
||||
%39 = OpLoad %v3uint %__spirv_BuiltInGlobalSize Aligned 0
|
||||
%call2 = OpCompositeExtract %uint %39 0
|
||||
%mul = OpIMul %uint %call2 %call1
|
||||
%add = OpIAdd %uint %mul %call
|
||||
%vecinit = OpCompositeInsert %v2uint %call1 %36 0
|
||||
%vecinit6 = OpCompositeInsert %v2uint %call %vecinit 1
|
||||
%TempSampledImage = OpSampledImage %32 %src %34
|
||||
%call7_old = OpImageSampleExplicitLod %v4uint %TempSampledImage %vecinit6 Lod %float_0
|
||||
%arrayidx = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4uint %dst %add
|
||||
OpStore %arrayidx %call7_old Aligned 16
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
@@ -1,94 +0,0 @@
|
||||
; SPIR-V
|
||||
; Version: 1.0
|
||||
; Generator: Khronos SPIR-V Tools Assembler; 0
|
||||
; Bound: 47
|
||||
; Schema: 0
|
||||
OpCapability Addresses
|
||||
OpCapability Linkage
|
||||
OpCapability Kernel
|
||||
OpCapability Int64
|
||||
OpCapability ImageBasic
|
||||
OpCapability LiteralSampler
|
||||
%1 = OpExtInstImport "OpenCL.std"
|
||||
OpMemoryModel Physical64 OpenCL
|
||||
OpEntryPoint Kernel %2 "decorate_volatile" %__spirv_BuiltInGlobalInvocationId %__spirv_BuiltInGlobalSize
|
||||
OpName %sampler "sampler"
|
||||
OpName %__spirv_BuiltInGlobalInvocationId "__spirv_BuiltInGlobalInvocationId"
|
||||
OpName %__spirv_BuiltInGlobalSize "__spirv_BuiltInGlobalSize"
|
||||
OpName %dst "dst"
|
||||
OpName %src "src"
|
||||
OpName %entry "entry"
|
||||
OpName %call "call"
|
||||
OpName %conv "conv"
|
||||
OpName %call1 "call1"
|
||||
OpName %conv2 "conv2"
|
||||
OpName %conv3 "conv3"
|
||||
OpName %call4 "call4"
|
||||
OpName %mul "mul"
|
||||
OpName %add "add"
|
||||
OpName %vecinit "vecinit"
|
||||
OpName %vecinit10 "vecinit10"
|
||||
OpName %TempSampledImage "TempSampledImage"
|
||||
OpName %call11_old "call11.old"
|
||||
OpName %sext "sext"
|
||||
OpName %idxprom "idxprom"
|
||||
OpName %arrayidx "arrayidx"
|
||||
OpDecorate %src Volatile
|
||||
OpDecorate %24 Constant
|
||||
%24 = OpDecorationGroup
|
||||
OpDecorate %__spirv_BuiltInGlobalInvocationId BuiltIn GlobalInvocationId
|
||||
OpDecorate %__spirv_BuiltInGlobalSize BuiltIn GlobalSize
|
||||
OpDecorate %dst FuncParamAttr NoCapture
|
||||
OpDecorate %sampler LinkageAttributes "sampler" Export
|
||||
OpDecorate %__spirv_BuiltInGlobalSize LinkageAttributes "__spirv_BuiltInGlobalSize" Import
|
||||
OpDecorate %__spirv_BuiltInGlobalInvocationId LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import
|
||||
OpDecorate %sampler Alignment 4
|
||||
OpGroupDecorate %24 %sampler %__spirv_BuiltInGlobalInvocationId %__spirv_BuiltInGlobalSize
|
||||
%uint = OpTypeInt 32 0
|
||||
%ulong = OpTypeInt 64 0
|
||||
%uint_16 = OpConstant %uint 16
|
||||
%ulong_32 = OpConstant %ulong 32
|
||||
%_ptr_Input_uint = OpTypePointer Input %uint
|
||||
%_ptr_UniformConstant_uint = OpTypePointer UniformConstant %uint
|
||||
%v3ulong = OpTypeVector %ulong 3
|
||||
%_ptr_Input_v3ulong = OpTypePointer Input %v3ulong
|
||||
%void = OpTypeVoid
|
||||
%v4uint = OpTypeVector %uint 4
|
||||
%_ptr_CrossWorkgroup_v4uint = OpTypePointer CrossWorkgroup %v4uint
|
||||
%35 = OpTypeImage %void 2D 0 0 0 0 Unknown ReadOnly
|
||||
%36 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4uint %35
|
||||
%v2uint = OpTypeVector %uint 2
|
||||
%38 = OpTypeSampler
|
||||
%39 = OpTypeSampledImage %35
|
||||
%float = OpTypeFloat 32
|
||||
%41 = OpConstantSampler %38 None 0 Nearest
|
||||
%float_0 = OpConstant %float 0
|
||||
%sampler = OpVariable %_ptr_UniformConstant_uint UniformConstant %uint_16
|
||||
%__spirv_BuiltInGlobalInvocationId = OpVariable %_ptr_Input_v3ulong Input
|
||||
%__spirv_BuiltInGlobalSize = OpVariable %_ptr_Input_v3ulong Input
|
||||
%2 = OpFunction %void None %36
|
||||
%dst = OpFunctionParameter %_ptr_CrossWorkgroup_v4uint
|
||||
%src = OpFunctionParameter %35
|
||||
%entry = OpLabel
|
||||
%43 = OpUndef %v2uint
|
||||
%44 = OpLoad %v3ulong %__spirv_BuiltInGlobalInvocationId Aligned 0
|
||||
%call = OpCompositeExtract %ulong %44 0
|
||||
%conv = OpUConvert %uint %call
|
||||
%45 = OpLoad %v3ulong %__spirv_BuiltInGlobalInvocationId Aligned 0
|
||||
%call1 = OpCompositeExtract %ulong %45 1
|
||||
%conv2 = OpUConvert %uint %call1
|
||||
%conv3 = OpSConvert %ulong %conv2
|
||||
%46 = OpLoad %v3ulong %__spirv_BuiltInGlobalSize Aligned 0
|
||||
%call4 = OpCompositeExtract %ulong %46 0
|
||||
%mul = OpIMul %ulong %conv3 %call4
|
||||
%add = OpIAdd %ulong %mul %call
|
||||
%vecinit = OpCompositeInsert %v2uint %conv2 %43 0
|
||||
%vecinit10 = OpCompositeInsert %v2uint %conv %vecinit 1
|
||||
%TempSampledImage = OpSampledImage %39 %src %41
|
||||
%call11_old = OpImageSampleExplicitLod %v4uint %TempSampledImage %vecinit10 Lod %float_0
|
||||
%sext = OpShiftLeftLogical %ulong %add %ulong_32
|
||||
%idxprom = OpShiftRightArithmetic %ulong %sext %ulong_32
|
||||
%arrayidx = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4uint %dst %idxprom
|
||||
OpStore %arrayidx %call11_old Aligned 16
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
Reference in New Issue
Block a user