SPIRV-Cross/shaders-no-opt/asm/frag/subgroup-arithmetic-cast.nocompat.vk.asm.frag
2020-01-09 12:35:14 +01:00

66 lines
2.9 KiB
JavaScript

; SPIR-V
; Version: 1.3
; Generator: Khronos Glslang Reference Front End; 8
; Bound: 78
; Schema: 0
OpCapability Shader
OpCapability GroupNonUniform
OpCapability GroupNonUniformArithmetic
OpCapability GroupNonUniformClustered
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %index %FragColor
OpExecutionMode %main OriginUpperLeft
OpSource GLSL 450
OpSourceExtension "GL_KHR_shader_subgroup_arithmetic"
OpSourceExtension "GL_KHR_shader_subgroup_basic"
OpSourceExtension "GL_KHR_shader_subgroup_clustered"
OpName %main "main"
OpName %index "index"
OpName %FragColor "FragColor"
OpDecorate %index Flat
OpDecorate %index Location 0
OpDecorate %FragColor Location 0
%void = OpTypeVoid
%3 = OpTypeFunction %void
%uint = OpTypeInt 32 0
%_ptr_Function_uint = OpTypePointer Function %uint
%uint_0 = OpConstant %uint 0
%int = OpTypeInt 32 1
%_ptr_Input_int = OpTypePointer Input %int
%index = OpVariable %_ptr_Input_int Input
%uint_3 = OpConstant %uint 3
%uint_4 = OpConstant %uint 4
%_ptr_Output_uint = OpTypePointer Output %uint
%FragColor = OpVariable %_ptr_Output_uint Output
%main = OpFunction %void None %3
%5 = OpLabel
%i = OpLoad %int %index
%u = OpBitcast %uint %i
%res0 = OpGroupNonUniformSMin %uint %uint_3 Reduce %i
%res1 = OpGroupNonUniformSMax %uint %uint_3 Reduce %u
%res2 = OpGroupNonUniformUMin %uint %uint_3 Reduce %i
%res3 = OpGroupNonUniformUMax %uint %uint_3 Reduce %u
%res4 = OpGroupNonUniformSMax %uint %uint_3 InclusiveScan %i
%res5 = OpGroupNonUniformSMin %uint %uint_3 InclusiveScan %u
%res6 = OpGroupNonUniformUMax %uint %uint_3 ExclusiveScan %i
%res7 = OpGroupNonUniformUMin %uint %uint_3 ExclusiveScan %u
%res8 = OpGroupNonUniformSMin %uint %uint_3 ClusteredReduce %i %uint_4
%res9 = OpGroupNonUniformSMax %uint %uint_3 ClusteredReduce %u %uint_4
%res10 = OpGroupNonUniformUMin %uint %uint_3 ClusteredReduce %i %uint_4
%res11 = OpGroupNonUniformUMax %uint %uint_3 ClusteredReduce %u %uint_4
OpStore %FragColor %res0
OpStore %FragColor %res1
OpStore %FragColor %res2
OpStore %FragColor %res3
OpStore %FragColor %res4
OpStore %FragColor %res5
OpStore %FragColor %res6
OpStore %FragColor %res7
OpStore %FragColor %res8
OpStore %FragColor %res9
OpStore %FragColor %res10
OpStore %FragColor %res11
OpReturn
OpFunctionEnd