; SPIR-V
; Version: 1.0
; Generator: Khronos Glslang Reference Front End; 8
; Bound: 207
; Schema: 0
               OpCapability Shader
          %1 = OpExtInstImport "GLSL.std.450"
               OpMemoryModel Logical GLSL450
               OpEntryPoint Fragment %main "main"
               OpExecutionMode %main OriginUpperLeft
               OpSource ESSL 310
               OpName %main "main"
               OpName %f "f"
               OpName %v4 "v4"
               OpName %u "u"
               OpName %uv4 "uv4"
               OpName %iv3 "iv3"
               OpName %i "i"
               OpName %uv3 "uv3"
               OpName %m2 "m2"
               OpName %iv4 "iv4"
               OpName %m4 "m4"
               OpName %a "a"
               OpName %S "S"
               OpMemberName %S 0 "i"
               OpName %s "s"
               OpName %b "b"
               OpName %arr "arr"
               OpName %arr2 "arr2"
               OpName %block "block"
               OpMemberName %block 0 "f"
               OpName %instanceName "instanceName"
               OpDecorate %u RelaxedPrecision
               OpDecorate %18 RelaxedPrecision
               OpDecorate %19 RelaxedPrecision
               OpDecorate %20 RelaxedPrecision
               OpDecorate %uv4 RelaxedPrecision
               OpDecorate %24 RelaxedPrecision
               OpDecorate %25 RelaxedPrecision
               OpDecorate %26 RelaxedPrecision
               OpDecorate %27 RelaxedPrecision
               OpDecorate %iv3 RelaxedPrecision
               OpDecorate %32 RelaxedPrecision
               OpDecorate %33 RelaxedPrecision
               OpDecorate %34 RelaxedPrecision
               OpDecorate %i RelaxedPrecision
               OpDecorate %38 RelaxedPrecision
               OpDecorate %39 RelaxedPrecision
               OpDecorate %uv3 RelaxedPrecision
               OpDecorate %43 RelaxedPrecision
               OpDecorate %45 RelaxedPrecision
               OpDecorate %46 RelaxedPrecision
               OpDecorate %iv4 RelaxedPrecision
               OpDecorate %62 RelaxedPrecision
               OpDecorate %64 RelaxedPrecision
               OpDecorate %65 RelaxedPrecision
               OpDecorate %104 RelaxedPrecision
               OpDecorate %105 RelaxedPrecision
               OpMemberDecorate %S 0 RelaxedPrecision
               OpDecorate %153 RelaxedPrecision
               OpDecorate %154 RelaxedPrecision
               OpDecorate %155 RelaxedPrecision
               OpDecorate %156 RelaxedPrecision
               OpDecorate %157 RelaxedPrecision
               OpDecorate %158 RelaxedPrecision
               OpDecorate %159 RelaxedPrecision
               OpDecorate %160 RelaxedPrecision
               OpDecorate %161 RelaxedPrecision
               OpDecorate %162 RelaxedPrecision
               OpDecorate %163 RelaxedPrecision
               OpDecorate %164 RelaxedPrecision
               OpDecorate %165 RelaxedPrecision
               OpDecorate %166 RelaxedPrecision
               OpDecorate %167 RelaxedPrecision
               OpDecorate %168 RelaxedPrecision
               OpDecorate %169 RelaxedPrecision
               OpDecorate %170 RelaxedPrecision
               OpDecorate %171 RelaxedPrecision
               OpDecorate %172 RelaxedPrecision
               OpDecorate %173 RelaxedPrecision
               OpDecorate %174 RelaxedPrecision
               OpDecorate %175 RelaxedPrecision
               OpDecorate %176 RelaxedPrecision
               OpDecorate %177 RelaxedPrecision
               OpDecorate %178 RelaxedPrecision
               OpDecorate %179 RelaxedPrecision
               OpDecorate %180 RelaxedPrecision
               OpDecorate %181 RelaxedPrecision
               OpDecorate %182 RelaxedPrecision
               OpDecorate %183 RelaxedPrecision
               OpDecorate %184 RelaxedPrecision
               OpDecorate %185 RelaxedPrecision
               OpDecorate %186 RelaxedPrecision
               OpDecorate %187 RelaxedPrecision
               OpDecorate %188 RelaxedPrecision
               OpDecorate %189 RelaxedPrecision
               OpDecorate %190 RelaxedPrecision
               OpDecorate %191 RelaxedPrecision
               OpDecorate %192 RelaxedPrecision
               OpDecorate %193 RelaxedPrecision
               OpDecorate %194 RelaxedPrecision
               OpDecorate %arr RelaxedPrecision
               OpDecorate %arr2 RelaxedPrecision
               OpMemberDecorate %block 0 RelaxedPrecision
               OpMemberDecorate %block 0 Offset 0
               OpDecorate %block Block
               OpDecorate %instanceName DescriptorSet 0
               OpDecorate %instanceName Binding 0
       %void = OpTypeVoid
          %3 = OpTypeFunction %void
      %float = OpTypeFloat 32
%_ptr_Function_float = OpTypePointer Function %float
    %v4float = OpTypeVector %float 4
%_ptr_Function_v4float = OpTypePointer Function %v4float
       %uint = OpTypeInt 32 0
%_ptr_Function_uint = OpTypePointer Function %uint
     %v4uint = OpTypeVector %uint 4
%_ptr_Function_v4uint = OpTypePointer Function %v4uint
        %int = OpTypeInt 32 1
      %v3int = OpTypeVector %int 3
%_ptr_Function_v3int = OpTypePointer Function %v3int
%_ptr_Function_int = OpTypePointer Function %int
      %int_3 = OpConstant %int 3
     %v3uint = OpTypeVector %uint 3
%_ptr_Function_v3uint = OpTypePointer Function %v3uint
     %uint_4 = OpConstant %uint 4
    %v2float = OpTypeVector %float 2
%mat2v2float = OpTypeMatrix %v2float 2
%_ptr_Function_mat2v2float = OpTypePointer Function %mat2v2float
    %float_1 = OpConstant %float 1
      %v4int = OpTypeVector %int 4
%_ptr_Function_v4int = OpTypePointer Function %v4int
      %int_1 = OpConstant %int 1
%mat4v4float = OpTypeMatrix %v4float 4
%_ptr_Function_mat4v4float = OpTypePointer Function %mat4v4float
       %bool = OpTypeBool
     %v4bool = OpTypeVector %bool 4
     %v2bool = OpTypeVector %bool 2
     %uint_5 = OpConstant %uint 5
%_arr_float_uint_5 = OpTypeArray %float %uint_5
%_ptr_Private__arr_float_uint_5 = OpTypePointer Private %_arr_float_uint_5
          %a = OpVariable %_ptr_Private__arr_float_uint_5 Private
          %S = OpTypeStruct %int
%_ptr_Private_S = OpTypePointer Private %S
          %s = OpVariable %_ptr_Private_S Private
%_ptr_Function_bool = OpTypePointer Function %bool
     %uint_2 = OpConstant %uint 2
%_arr_int_uint_2 = OpTypeArray %int %uint_2
%_ptr_Function__arr_int_uint_2 = OpTypePointer Function %_arr_int_uint_2
     %uint_3 = OpConstant %uint 3
%_arr_int_uint_3 = OpTypeArray %int %uint_3
%_ptr_Function__arr_int_uint_3 = OpTypePointer Function %_arr_int_uint_3
      %int_2 = OpConstant %int 2
      %block = OpTypeStruct %float
%_ptr_Uniform_block = OpTypePointer Uniform %block
%instanceName = OpVariable %_ptr_Uniform_block Uniform
       %main = OpFunction %void None %3
          %5 = OpLabel
          %f = OpVariable %_ptr_Function_float Function
         %v4 = OpVariable %_ptr_Function_v4float Function
          %u = OpVariable %_ptr_Function_uint Function
        %uv4 = OpVariable %_ptr_Function_v4uint Function
        %iv3 = OpVariable %_ptr_Function_v3int Function
          %i = OpVariable %_ptr_Function_int Function
        %uv3 = OpVariable %_ptr_Function_v3uint Function
         %m2 = OpVariable %_ptr_Function_mat2v2float Function
        %iv4 = OpVariable %_ptr_Function_v4int Function
         %m4 = OpVariable %_ptr_Function_mat4v4float Function
          %b = OpVariable %_ptr_Function_bool Function
        %arr = OpVariable %_ptr_Function__arr_int_uint_2 Function
       %arr2 = OpVariable %_ptr_Function__arr_int_uint_3 Function
          %9 = OpLoad %float %f
         %13 = OpLoad %v4float %v4
         %14 = OpVectorTimesScalar %v4float %13 %9
         %18 = OpLoad %uint %u
         %19 = OpLoad %uint %u
         %20 = OpIAdd %uint %18 %19
         %24 = OpLoad %v4uint %uv4
         %25 = OpLoad %uint %u
         %26 = OpCompositeConstruct %v4uint %25 %25 %25 %25
         %27 = OpUDiv %v4uint %24 %26
         %32 = OpLoad %v3int %iv3
         %33 = OpLoad %v3int %iv3
         %34 = OpISub %v3int %33 %32
               OpStore %iv3 %34
         %38 = OpLoad %int %i
         %39 = OpSMod %int %38 %int_3
               OpStore %i %39
         %43 = OpLoad %v3uint %uv3
         %45 = OpCompositeConstruct %v3uint %uint_4 %uint_4 %uint_4
         %46 = OpUMod %v3uint %43 %45
         %51 = OpLoad %mat2v2float %m2
         %53 = OpCompositeConstruct %v2float %float_1 %float_1
         %54 = OpCompositeExtract %v2float %51 0
         %55 = OpFSub %v2float %54 %53
         %56 = OpCompositeExtract %v2float %51 1
         %57 = OpFSub %v2float %56 %53
         %58 = OpCompositeConstruct %mat2v2float %55 %57
               OpStore %m2 %58
         %62 = OpLoad %v4int %iv4
         %64 = OpCompositeConstruct %v4int %int_1 %int_1 %int_1 %int_1
         %65 = OpIAdd %v4int %62 %64
               OpStore %iv4 %65
         %69 = OpLoad %mat4v4float %m4
         %70 = OpLoad %mat4v4float %m4
         %72 = OpCompositeExtract %v4float %69 0
         %73 = OpCompositeExtract %v4float %70 0
         %75 = OpFUnordNotEqual %v4bool %72 %73
         %76 = OpAny %bool %75
         %77 = OpCompositeExtract %v4float %69 1
         %78 = OpCompositeExtract %v4float %70 1
         %79 = OpFUnordNotEqual %v4bool %77 %78
         %80 = OpAny %bool %79
         %81 = OpLogicalOr %bool %76 %80
         %82 = OpCompositeExtract %v4float %69 2
         %83 = OpCompositeExtract %v4float %70 2
         %84 = OpFUnordNotEqual %v4bool %82 %83
         %85 = OpAny %bool %84
         %86 = OpLogicalOr %bool %81 %85
         %87 = OpCompositeExtract %v4float %69 3
         %88 = OpCompositeExtract %v4float %70 3
         %89 = OpFUnordNotEqual %v4bool %87 %88
         %90 = OpAny %bool %89
         %91 = OpLogicalOr %bool %86 %90
         %92 = OpLoad %mat2v2float %m2
         %93 = OpLoad %mat2v2float %m2
         %94 = OpCompositeExtract %v2float %92 0
         %95 = OpCompositeExtract %v2float %93 0
         %97 = OpFOrdEqual %v2bool %94 %95
         %98 = OpAll %bool %97
         %99 = OpCompositeExtract %v2float %92 1
        %100 = OpCompositeExtract %v2float %93 1
        %101 = OpFOrdEqual %v2bool %99 %100
        %102 = OpAll %bool %101
        %103 = OpLogicalAnd %bool %98 %102
        %104 = OpLoad %int %i
        %105 = OpLoad %int %i
        %106 = OpSLessThanEqual %bool %104 %105
        %111 = OpLoad %_arr_float_uint_5 %a
        %112 = OpLoad %_arr_float_uint_5 %a
        %113 = OpCompositeExtract %float %111 0
        %114 = OpCompositeExtract %float %112 0
        %115 = OpFOrdEqual %bool %113 %114
        %116 = OpCompositeExtract %float %111 1
        %117 = OpCompositeExtract %float %112 1
        %118 = OpFOrdEqual %bool %116 %117
        %119 = OpLogicalAnd %bool %115 %118
        %120 = OpCompositeExtract %float %111 2
        %121 = OpCompositeExtract %float %112 2
        %122 = OpFOrdEqual %bool %120 %121
        %123 = OpLogicalAnd %bool %119 %122
        %124 = OpCompositeExtract %float %111 3
        %125 = OpCompositeExtract %float %112 3
        %126 = OpFOrdEqual %bool %124 %125
        %127 = OpLogicalAnd %bool %123 %126
        %128 = OpCompositeExtract %float %111 4
        %129 = OpCompositeExtract %float %112 4
        %130 = OpFOrdEqual %bool %128 %129
        %131 = OpLogicalAnd %bool %127 %130
        %135 = OpLoad %S %s
        %136 = OpLoad %S %s
        %137 = OpCompositeExtract %int %135 0
        %138 = OpCompositeExtract %int %136 0
        %139 = OpINotEqual %bool %137 %138
        %142 = OpLoad %bool %b
        %143 = OpLoad %bool %b
        %144 = OpLogicalAnd %bool %142 %143
        %145 = OpLoad %bool %b
        %146 = OpLoad %bool %b
        %147 = OpLogicalOr %bool %145 %146
        %148 = OpLoad %bool %b
        %149 = OpLoad %bool %b
        %150 = OpLogicalNotEqual %bool %148 %149
        %151 = OpLoad %bool %b
        %152 = OpLogicalNot %bool %151
        %153 = OpLoad %int %i
        %154 = OpNot %int %153
        %155 = OpLoad %uint %u
        %156 = OpNot %uint %155
        %157 = OpLoad %v3uint %uv3
        %158 = OpNot %v3uint %157
        %159 = OpLoad %v3int %iv3
        %160 = OpNot %v3int %159
        %161 = OpLoad %int %i
        %162 = OpLoad %v3uint %uv3
        %163 = OpCompositeConstruct %v3int %161 %161 %161
        %164 = OpShiftLeftLogical %v3uint %162 %163
               OpStore %uv3 %164
        %165 = OpLoad %int %i
        %166 = OpLoad %int %i
        %167 = OpShiftRightArithmetic %int %165 %166
        %168 = OpLoad %uint %u
        %169 = OpLoad %uint %u
        %170 = OpShiftLeftLogical %uint %168 %169
        %171 = OpLoad %v3int %iv3
        %172 = OpLoad %v3int %iv3
        %173 = OpShiftRightArithmetic %v3int %171 %172
        %174 = OpLoad %int %i
        %175 = OpLoad %int %i
        %176 = OpBitwiseAnd %int %174 %175
        %177 = OpLoad %uint %u
        %178 = OpLoad %uint %u
        %179 = OpBitwiseOr %uint %177 %178
        %180 = OpLoad %v3int %iv3
        %181 = OpLoad %v3int %iv3
        %182 = OpBitwiseXor %v3int %180 %181
        %183 = OpLoad %uint %u
        %184 = OpLoad %v3uint %uv3
        %185 = OpCompositeConstruct %v3uint %183 %183 %183
        %186 = OpBitwiseAnd %v3uint %185 %184
        %187 = OpLoad %v3uint %uv3
        %188 = OpLoad %uint %u
        %189 = OpCompositeConstruct %v3uint %188 %188 %188
        %190 = OpBitwiseOr %v3uint %187 %189
        %191 = OpLoad %uint %u
        %192 = OpLoad %v3uint %uv3
        %193 = OpCompositeConstruct %v3uint %191 %191 %191
        %194 = OpBitwiseAnd %v3uint %192 %193
               OpStore %uv3 %194
               OpReturn
               OpFunctionEnd
