1 OpCapability Shader 2 %1 = OpExtInstImport "GLSL.std.450" 3 OpMemoryModel Logical GLSL450 4 OpEntryPoint Fragment %main "main" %_GLF_color 5 OpExecutionMode %main OriginUpperLeft 6 OpSource ESSL 320 7 OpName %main "main" 8 OpName %buf0 "buf0" 9 OpMemberName %buf0 0 "_GLF_uniform_int_values" 10 OpName %_ "" 11 OpName %m "m" 12 OpName %f "f" 13 OpName %i "i" 14 OpName %j "j" 15 OpName %_GLF_color "_GLF_color" 16 OpDecorate %_arr_int_uint_4 ArrayStride 16 17 OpMemberDecorate %buf0 0 Offset 0 18 OpDecorate %buf0 Block 19 OpDecorate %_ DescriptorSet 0 20 OpDecorate %_ Binding 0 21 OpDecorate %_GLF_color Location 0 22 %void = OpTypeVoid 23 %12 = OpTypeFunction %void 24 %int = OpTypeInt 32 1 25 %uint = OpTypeInt 32 0 26 %uint_4 = OpConstant %uint 4 27%_arr_int_uint_4 = OpTypeArray %int %uint_4 28 %buf0 = OpTypeStruct %_arr_int_uint_4 29%_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0 30 %_ = OpVariable %_ptr_Uniform_buf0 Uniform 31 %int_0 = OpConstant %int 0 32 %int_1 = OpConstant %int 1 33%_ptr_Uniform_int = OpTypePointer Uniform %int 34 %bool = OpTypeBool 35 %float = OpTypeFloat 32 36 %v2float = OpTypeVector %float 2 37%mat2v2float = OpTypeMatrix %v2float 2 38%_ptr_Function_mat2v2float = OpTypePointer Function %mat2v2float 39%_ptr_Function_float = OpTypePointer Function %float 40 %float_1 = OpConstant %float 1 41 %float_0 = OpConstant %float 0 42%_ptr_Function_int = OpTypePointer Function %int 43 %int_2 = OpConstant %int 2 44 %int_3 = OpConstant %int 3 45 %v2bool = OpTypeVector %bool 2 46 %v4float = OpTypeVector %float 4 47%_ptr_Output_v4float = OpTypePointer Output %v4float 48 %_GLF_color = OpVariable %_ptr_Output_v4float Output 49 %main = OpFunction %void None %12 50 %34 = OpLabel 51 %m = OpVariable %_ptr_Function_mat2v2float Function 52 %f = OpVariable %_ptr_Function_float Function 53 %i = OpVariable %_ptr_Function_int Function 54 %j = OpVariable %_ptr_Function_int Function 55 %35 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_1 56 %36 = OpLoad %int %35 57 %37 = OpIEqual %bool %36 %int_1 58 OpSelectionMerge %38 None 59 OpBranchConditional %37 %39 %38 60 %39 = OpLabel 61 %40 = OpLoad %float %f 62 %41 = OpCompositeConstruct %v2float %40 %float_0 63 %42 = OpCompositeConstruct %v2float %float_0 %40 64 %43 = OpCompositeConstruct %mat2v2float %41 %42 65 OpStore %m %43 66 OpBranch %38 67 %38 = OpLabel 68 %44 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_1 69 %45 = OpLoad %int %44 70 OpStore %i %45 71 OpBranch %46 72 %46 = OpLabel 73 OpLoopMerge %47 %48 None 74 OpBranch %49 75 %49 = OpLabel 76 %50 = OpLoad %int %i 77 %51 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_0 78 %52 = OpLoad %int %51 79 %53 = OpSLessThan %bool %50 %52 80 OpBranchConditional %53 %54 %47 81 %54 = OpLabel 82 %55 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_1 83 %56 = OpLoad %int %55 84 OpStore %j %56 85 OpBranch %57 86 %57 = OpLabel 87 OpLoopMerge %58 %59 None 88 OpBranch %60 89 %60 = OpLabel 90 %61 = OpLoad %int %j 91 %62 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_0 92 %63 = OpLoad %int %62 93 %64 = OpSLessThan %bool %61 %63 94 OpBranchConditional %64 %65 %58 95 %65 = OpLabel 96 %66 = OpLoad %int %i 97 %67 = OpLoad %int %j 98 %68 = OpLoad %int %i 99 %69 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_0 100 %70 = OpLoad %int %69 101 %71 = OpIMul %int %68 %70 102 %72 = OpLoad %int %j 103 %73 = OpIAdd %int %71 %72 104 %74 = OpConvertSToF %float %73 105 %75 = OpAccessChain %_ptr_Function_float %m %66 %67 106 OpStore %75 %74 107 OpBranch %59 108 %59 = OpLabel 109 %76 = OpLoad %int %j 110 %77 = OpIAdd %int %76 %int_1 111 OpStore %j %77 112 OpBranch %57 113 %58 = OpLabel 114 OpBranch %48 115 %48 = OpLabel 116 %78 = OpLoad %int %i 117 %79 = OpIAdd %int %78 %int_1 118 OpStore %i %79 119 OpBranch %46 120 %47 = OpLabel 121 %80 = OpLoad %mat2v2float %m 122 %81 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_1 123 %82 = OpLoad %int %81 124 %83 = OpConvertSToF %float %82 125 %84 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_2 126 %85 = OpLoad %int %84 127 %86 = OpConvertSToF %float %85 128 %87 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_0 129 %88 = OpLoad %int %87 130 %89 = OpConvertSToF %float %88 131 %90 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_3 132 %91 = OpLoad %int %90 133 %92 = OpConvertSToF %float %91 134 %93 = OpCompositeConstruct %v2float %83 %86 135 %94 = OpCompositeConstruct %v2float %89 %92 136 %95 = OpCompositeConstruct %mat2v2float %93 %94 137 %96 = OpCompositeExtract %v2float %80 0 138 %97 = OpCompositeExtract %v2float %95 0 139 %98 = OpFOrdEqual %v2bool %96 %97 140 %99 = OpAll %bool %98 141 %100 = OpCompositeExtract %v2float %80 1 142 %101 = OpCompositeExtract %v2float %95 1 143 %102 = OpFOrdEqual %v2bool %100 %101 144 %103 = OpAll %bool %102 145 %104 = OpLogicalAnd %bool %99 %103 146 OpSelectionMerge %105 None 147 OpBranchConditional %104 %106 %107 148 %106 = OpLabel 149 %108 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_2 150 %109 = OpLoad %int %108 151 %110 = OpConvertSToF %float %109 152 %111 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_1 153 %112 = OpLoad %int %111 154 %113 = OpConvertSToF %float %112 155 %114 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_1 156 %115 = OpLoad %int %114 157 %116 = OpConvertSToF %float %115 158 %117 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_2 159 %118 = OpLoad %int %117 160 %119 = OpConvertSToF %float %118 161 %120 = OpCompositeConstruct %v4float %110 %113 %116 %119 162 OpStore %_GLF_color %120 163 OpBranch %105 164 %107 = OpLabel 165 %121 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_1 166 %122 = OpLoad %int %121 167 %123 = OpConvertSToF %float %122 168 %124 = OpCompositeConstruct %v4float %123 %123 %123 %123 169 OpStore %_GLF_color %124 170 OpBranch %105 171 %105 = OpLabel 172 OpReturn 173 OpFunctionEnd 174