1; SPIR-V 2; Version: 1.0 3; Generator: Khronos Glslang Reference Front End; 1 4; Bound: 30 5; Schema: 0 6 OpCapability Shader 7 %1 = OpExtInstImport "GLSL.std.450" 8 OpMemoryModel Logical GLSL450 9 OpEntryPoint GLCompute %func "main" 10 OpExecutionMode %func LocalSize 1 1 1 11 OpSource ESSL 310 12 OpSourceExtension "GL_GOOGLE_cpp_style_line_directive" 13 OpSourceExtension "GL_GOOGLE_include_directive" 14 OpMemberDecorate %input_struct 0 Offset 0 15 OpMemberDecorate %input_struct 1 Offset 16 16 OpMemberDecorate %output_struct 0 Offset 0 17 OpMemberDecorate %output_struct 1 Offset 16 18 OpDecorate %input_struct BufferBlock 19 OpDecorate %inputs DescriptorSet 0 20 OpDecorate %inputs Binding 0 21 OpDecorate %inputs Restrict 22 OpDecorate %output_struct BufferBlock 23 OpDecorate %outputs DescriptorSet 0 24 OpDecorate %outputs Binding 1 25 OpDecorate %outputs Restrict 26 27 %void = OpTypeVoid 28 %main_func = OpTypeFunction %void 29 30 %bool = OpTypeBool 31 %bvec4 = OpTypeVector %bool 4 32 33 %uint = OpTypeInt 32 0 34 %uvec4 = OpTypeVector %uint 4 35 36 %int = OpTypeInt 32 1 37 %ivec4 = OpTypeVector %int 4 38 39 %ivec4_ptr = OpTypePointer Uniform %ivec4 40 %uvec4_ptr = OpTypePointer Uniform %uvec4 41 42 %zero = OpConstant %int 0 43 %one = OpConstant %int 1 44 %uzero = OpConstant %uint 0 45 %uone = OpConstant %uint 1 46 %utrue = OpConstantComposite %uvec4 %uone %uone %uone %uone 47 %ufalse = OpConstantComposite %uvec4 %uzero %uzero %uzero %uzero 48 49 %input_struct = OpTypeStruct %ivec4 %uvec4 50 %input_struct_ptr = OpTypePointer Uniform %input_struct 51 %inputs = OpVariable %input_struct_ptr Uniform 52 %output_struct = OpTypeStruct %uvec4 %ivec4 53 %output_struct_ptr = OpTypePointer Uniform %output_struct 54 %outputs = OpVariable %output_struct_ptr Uniform 55 56 %func = OpFunction %void None %main_func 57 %block = OpLabel 58 59 %input1_ptr = OpAccessChain %ivec4_ptr %inputs %zero 60 %input0_ptr = OpAccessChain %uvec4_ptr %inputs %one 61 %input1 = OpLoad %ivec4 %input1_ptr 62 %input0 = OpLoad %uvec4 %input0_ptr 63 64 %output_ptr_uvec4 = OpAccessChain %uvec4_ptr %outputs %zero 65 66 %result_slt = OpSLessThan %bvec4 %input0 %input1 67 %result_sle = OpSLessThanEqual %bvec4 %input0 %input1 68 %result_ult = OpULessThan %bvec4 %input0 %input1 69 %result_ule = OpULessThanEqual %bvec4 %input0 %input1 70 %result_sgt = OpSGreaterThan %bvec4 %input0 %input1 71 %result_sge = OpSGreaterThanEqual %bvec4 %input0 %input1 72 %result_ugt = OpUGreaterThan %bvec4 %input0 %input1 73 %result_uge = OpUGreaterThanEqual %bvec4 %input0 %input1 74 75 %int_slt = OpSelect %uvec4 %result_slt %utrue %ufalse 76 OpStore %output_ptr_uvec4 %int_slt 77 78 %int_sle = OpSelect %uvec4 %result_sle %utrue %ufalse 79 OpStore %output_ptr_uvec4 %int_sle 80 81 %int_ult = OpSelect %uvec4 %result_ult %utrue %ufalse 82 OpStore %output_ptr_uvec4 %int_ult 83 84 %int_ule = OpSelect %uvec4 %result_ule %utrue %ufalse 85 OpStore %output_ptr_uvec4 %int_ule 86 87 %int_sgt = OpSelect %uvec4 %result_sgt %utrue %ufalse 88 OpStore %output_ptr_uvec4 %int_sgt 89 90 %int_sge = OpSelect %uvec4 %result_sge %utrue %ufalse 91 OpStore %output_ptr_uvec4 %int_sge 92 93 %int_ugt = OpSelect %uvec4 %result_ugt %utrue %ufalse 94 OpStore %output_ptr_uvec4 %int_ugt 95 96 %int_uge = OpSelect %uvec4 %result_uge %utrue %ufalse 97 OpStore %output_ptr_uvec4 %int_uge 98 99 100 OpReturn 101 OpFunctionEnd 102