; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 ; Bound: 298 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 OpEntryPoint Fragment %main "main" %tint_symbol_1 OpExecutionMode %main OriginUpperLeft OpName %tint_symbol_1 "tint_symbol_1" OpName %bitwise_i32 "bitwise_i32" OpName %s1 "s1" OpName %s2 "s2" OpName %v1 "v1" OpName %v2 "v2" OpName %bitwise_u32 "bitwise_u32" OpName %s1_0 "s1" OpName %s2_0 "s2" OpName %v1_0 "v1" OpName %v2_0 "v2" OpName %vector_scalar_f32 "vector_scalar_f32" OpName %v "v" OpName %s "s" OpName %r "r" OpName %vector_scalar_i32 "vector_scalar_i32" OpName %v_0 "v" OpName %s_0 "s" OpName %r_0 "r" OpName %vector_scalar_u32 "vector_scalar_u32" OpName %v_1 "v" OpName %s_1 "s" OpName %r_1 "r" OpName %scalar_vector_f32 "scalar_vector_f32" OpName %v_2 "v" OpName %s_2 "s" OpName %r_2 "r" OpName %scalar_vector_i32 "scalar_vector_i32" OpName %v_3 "v" OpName %s_3 "s" OpName %r_3 "r" OpName %scalar_vector_u32 "scalar_vector_u32" OpName %v_4 "v" OpName %s_4 "s" OpName %r_4 "r" OpName %matrix_matrix_f32 "matrix_matrix_f32" OpName %m34 "m34" OpName %m43 "m43" OpName %m33 "m33" OpName %m44 "m44" OpName %tint_symbol_2 "tint_symbol_2" OpName %tint_symbol "tint_symbol" OpName %main "main" OpDecorate %tint_symbol_1 Location 0 %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float %5 = OpConstantNull %v4float %tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5 %void = OpTypeVoid %6 = OpTypeFunction %void %int = OpTypeInt 32 1 %_ptr_Function_int = OpTypePointer Function %int %13 = OpConstantNull %int %v3int = OpTypeVector %int 3 %_ptr_Function_v3int = OpTypePointer Function %v3int %18 = OpConstantNull %v3int %uint = OpTypeInt 32 0 %_ptr_Function_uint = OpTypePointer Function %uint %43 = OpConstantNull %uint %v3uint = OpTypeVector %uint 3 %_ptr_Function_v3uint = OpTypePointer Function %v3uint %48 = OpConstantNull %v3uint %v3float = OpTypeVector %float 3 %_ptr_Function_v3float = OpTypePointer Function %v3float %73 = OpConstantNull %v3float %_ptr_Function_float = OpTypePointer Function %float %76 = OpConstantNull %float %mat3v4float = OpTypeMatrix %v4float 3 %_ptr_Function_mat3v4float = OpTypePointer Function %mat3v4float %244 = OpConstantNull %mat3v4float %mat4v3float = OpTypeMatrix %v3float 4 %_ptr_Function_mat4v3float = OpTypePointer Function %mat4v3float %248 = OpConstantNull %mat4v3float %mat3v3float = OpTypeMatrix %v3float 3 %_ptr_Function_mat3v3float = OpTypePointer Function %mat3v3float %252 = OpConstantNull %mat3v3float %mat4v4float = OpTypeMatrix %v4float 4 %_ptr_Function_mat4v4float = OpTypePointer Function %mat4v4float %256 = OpConstantNull %mat4v4float %289 = OpTypeFunction %void %v4float %float_0 = OpConstant %float 0 %297 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 %bitwise_i32 = OpFunction %void None %6 %9 = OpLabel %s1 = OpVariable %_ptr_Function_int Function %13 %s2 = OpVariable %_ptr_Function_int Function %13 %v1 = OpVariable %_ptr_Function_v3int Function %18 %v2 = OpVariable %_ptr_Function_v3int Function %18 %20 = OpLoad %int %s1 %21 = OpLoad %int %s2 %22 = OpBitwiseOr %int %20 %21 OpStore %s1 %22 %23 = OpLoad %int %s1 %24 = OpLoad %int %s2 %25 = OpBitwiseAnd %int %23 %24 OpStore %s1 %25 %26 = OpLoad %int %s1 %27 = OpLoad %int %s2 %28 = OpBitwiseXor %int %26 %27 OpStore %s1 %28 %29 = OpLoad %v3int %v1 %30 = OpLoad %v3int %v2 %31 = OpBitwiseOr %v3int %29 %30 OpStore %v1 %31 %32 = OpLoad %v3int %v1 %33 = OpLoad %v3int %v2 %34 = OpBitwiseAnd %v3int %32 %33 OpStore %v1 %34 %35 = OpLoad %v3int %v1 %36 = OpLoad %v3int %v2 %37 = OpBitwiseXor %v3int %35 %36 OpStore %v1 %37 OpReturn OpFunctionEnd %bitwise_u32 = OpFunction %void None %6 %39 = OpLabel %s1_0 = OpVariable %_ptr_Function_uint Function %43 %s2_0 = OpVariable %_ptr_Function_uint Function %43 %v1_0 = OpVariable %_ptr_Function_v3uint Function %48 %v2_0 = OpVariable %_ptr_Function_v3uint Function %48 %50 = OpLoad %uint %s1_0 %51 = OpLoad %uint %s2_0 %52 = OpBitwiseOr %uint %50 %51 OpStore %s1_0 %52 %53 = OpLoad %uint %s1_0 %54 = OpLoad %uint %s2_0 %55 = OpBitwiseAnd %uint %53 %54 OpStore %s1_0 %55 %56 = OpLoad %uint %s1_0 %57 = OpLoad %uint %s2_0 %58 = OpBitwiseXor %uint %56 %57 OpStore %s1_0 %58 %59 = OpLoad %v3uint %v1_0 %60 = OpLoad %v3uint %v2_0 %61 = OpBitwiseOr %v3uint %59 %60 OpStore %v1_0 %61 %62 = OpLoad %v3uint %v1_0 %63 = OpLoad %v3uint %v2_0 %64 = OpBitwiseAnd %v3uint %62 %63 OpStore %v1_0 %64 %65 = OpLoad %v3uint %v1_0 %66 = OpLoad %v3uint %v2_0 %67 = OpBitwiseXor %v3uint %65 %66 OpStore %v1_0 %67 OpReturn OpFunctionEnd %vector_scalar_f32 = OpFunction %void None %6 %69 = OpLabel %v = OpVariable %_ptr_Function_v3float Function %73 %s = OpVariable %_ptr_Function_float Function %76 %r = OpVariable %_ptr_Function_v3float Function %73 %81 = OpVariable %_ptr_Function_v3float Function %73 %86 = OpVariable %_ptr_Function_v3float Function %73 %94 = OpVariable %_ptr_Function_v3float Function %73 %78 = OpLoad %v3float %v %79 = OpLoad %float %s %82 = OpCompositeConstruct %v3float %79 %79 %79 %80 = OpFAdd %v3float %78 %82 OpStore %r %80 %83 = OpLoad %v3float %v %84 = OpLoad %float %s %87 = OpCompositeConstruct %v3float %84 %84 %84 %85 = OpFSub %v3float %83 %87 OpStore %r %85 %88 = OpLoad %v3float %v %89 = OpLoad %float %s %90 = OpVectorTimesScalar %v3float %88 %89 OpStore %r %90 %91 = OpLoad %v3float %v %92 = OpLoad %float %s %95 = OpCompositeConstruct %v3float %92 %92 %92 %93 = OpFDiv %v3float %91 %95 OpStore %r %93 OpReturn OpFunctionEnd %vector_scalar_i32 = OpFunction %void None %6 %97 = OpLabel %v_0 = OpVariable %_ptr_Function_v3int Function %18 %s_0 = OpVariable %_ptr_Function_int Function %13 %r_0 = OpVariable %_ptr_Function_v3int Function %18 %104 = OpVariable %_ptr_Function_v3int Function %18 %109 = OpVariable %_ptr_Function_v3int Function %18 %114 = OpVariable %_ptr_Function_v3int Function %18 %119 = OpVariable %_ptr_Function_v3int Function %18 %124 = OpVariable %_ptr_Function_v3int Function %18 %101 = OpLoad %v3int %v_0 %102 = OpLoad %int %s_0 %105 = OpCompositeConstruct %v3int %102 %102 %102 %103 = OpIAdd %v3int %101 %105 OpStore %r_0 %103 %106 = OpLoad %v3int %v_0 %107 = OpLoad %int %s_0 %110 = OpCompositeConstruct %v3int %107 %107 %107 %108 = OpISub %v3int %106 %110 OpStore %r_0 %108 %111 = OpLoad %v3int %v_0 %112 = OpLoad %int %s_0 %115 = OpCompositeConstruct %v3int %112 %112 %112 %113 = OpIMul %v3int %111 %115 OpStore %r_0 %113 %116 = OpLoad %v3int %v_0 %117 = OpLoad %int %s_0 %120 = OpCompositeConstruct %v3int %117 %117 %117 %118 = OpSDiv %v3int %116 %120 OpStore %r_0 %118 %121 = OpLoad %v3int %v_0 %122 = OpLoad %int %s_0 %125 = OpCompositeConstruct %v3int %122 %122 %122 %123 = OpSMod %v3int %121 %125 OpStore %r_0 %123 OpReturn OpFunctionEnd %vector_scalar_u32 = OpFunction %void None %6 %127 = OpLabel %v_1 = OpVariable %_ptr_Function_v3uint Function %48 %s_1 = OpVariable %_ptr_Function_uint Function %43 %r_1 = OpVariable %_ptr_Function_v3uint Function %48 %134 = OpVariable %_ptr_Function_v3uint Function %48 %139 = OpVariable %_ptr_Function_v3uint Function %48 %144 = OpVariable %_ptr_Function_v3uint Function %48 %149 = OpVariable %_ptr_Function_v3uint Function %48 %154 = OpVariable %_ptr_Function_v3uint Function %48 %131 = OpLoad %v3uint %v_1 %132 = OpLoad %uint %s_1 %135 = OpCompositeConstruct %v3uint %132 %132 %132 %133 = OpIAdd %v3uint %131 %135 OpStore %r_1 %133 %136 = OpLoad %v3uint %v_1 %137 = OpLoad %uint %s_1 %140 = OpCompositeConstruct %v3uint %137 %137 %137 %138 = OpISub %v3uint %136 %140 OpStore %r_1 %138 %141 = OpLoad %v3uint %v_1 %142 = OpLoad %uint %s_1 %145 = OpCompositeConstruct %v3uint %142 %142 %142 %143 = OpIMul %v3uint %141 %145 OpStore %r_1 %143 %146 = OpLoad %v3uint %v_1 %147 = OpLoad %uint %s_1 %150 = OpCompositeConstruct %v3uint %147 %147 %147 %148 = OpUDiv %v3uint %146 %150 OpStore %r_1 %148 %151 = OpLoad %v3uint %v_1 %152 = OpLoad %uint %s_1 %155 = OpCompositeConstruct %v3uint %152 %152 %152 %153 = OpUMod %v3uint %151 %155 OpStore %r_1 %153 OpReturn OpFunctionEnd %scalar_vector_f32 = OpFunction %void None %6 %157 = OpLabel %v_2 = OpVariable %_ptr_Function_v3float Function %73 %s_2 = OpVariable %_ptr_Function_float Function %76 %r_2 = OpVariable %_ptr_Function_v3float Function %73 %164 = OpVariable %_ptr_Function_v3float Function %73 %169 = OpVariable %_ptr_Function_v3float Function %73 %177 = OpVariable %_ptr_Function_v3float Function %73 %161 = OpLoad %float %s_2 %162 = OpLoad %v3float %v_2 %165 = OpCompositeConstruct %v3float %161 %161 %161 %163 = OpFAdd %v3float %165 %162 OpStore %r_2 %163 %166 = OpLoad %float %s_2 %167 = OpLoad %v3float %v_2 %170 = OpCompositeConstruct %v3float %166 %166 %166 %168 = OpFSub %v3float %170 %167 OpStore %r_2 %168 %171 = OpLoad %float %s_2 %172 = OpLoad %v3float %v_2 %173 = OpVectorTimesScalar %v3float %172 %171 OpStore %r_2 %173 %174 = OpLoad %float %s_2 %175 = OpLoad %v3float %v_2 %178 = OpCompositeConstruct %v3float %174 %174 %174 %176 = OpFDiv %v3float %178 %175 OpStore %r_2 %176 OpReturn OpFunctionEnd %scalar_vector_i32 = OpFunction %void None %6 %180 = OpLabel %v_3 = OpVariable %_ptr_Function_v3int Function %18 %s_3 = OpVariable %_ptr_Function_int Function %13 %r_3 = OpVariable %_ptr_Function_v3int Function %18 %187 = OpVariable %_ptr_Function_v3int Function %18 %192 = OpVariable %_ptr_Function_v3int Function %18 %197 = OpVariable %_ptr_Function_v3int Function %18 %202 = OpVariable %_ptr_Function_v3int Function %18 %207 = OpVariable %_ptr_Function_v3int Function %18 %184 = OpLoad %int %s_3 %185 = OpLoad %v3int %v_3 %188 = OpCompositeConstruct %v3int %184 %184 %184 %186 = OpIAdd %v3int %188 %185 OpStore %r_3 %186 %189 = OpLoad %int %s_3 %190 = OpLoad %v3int %v_3 %193 = OpCompositeConstruct %v3int %189 %189 %189 %191 = OpISub %v3int %193 %190 OpStore %r_3 %191 %194 = OpLoad %int %s_3 %195 = OpLoad %v3int %v_3 %198 = OpCompositeConstruct %v3int %194 %194 %194 %196 = OpIMul %v3int %198 %195 OpStore %r_3 %196 %199 = OpLoad %int %s_3 %200 = OpLoad %v3int %v_3 %203 = OpCompositeConstruct %v3int %199 %199 %199 %201 = OpSDiv %v3int %203 %200 OpStore %r_3 %201 %204 = OpLoad %int %s_3 %205 = OpLoad %v3int %v_3 %208 = OpCompositeConstruct %v3int %204 %204 %204 %206 = OpSMod %v3int %208 %205 OpStore %r_3 %206 OpReturn OpFunctionEnd %scalar_vector_u32 = OpFunction %void None %6 %210 = OpLabel %v_4 = OpVariable %_ptr_Function_v3uint Function %48 %s_4 = OpVariable %_ptr_Function_uint Function %43 %r_4 = OpVariable %_ptr_Function_v3uint Function %48 %217 = OpVariable %_ptr_Function_v3uint Function %48 %222 = OpVariable %_ptr_Function_v3uint Function %48 %227 = OpVariable %_ptr_Function_v3uint Function %48 %232 = OpVariable %_ptr_Function_v3uint Function %48 %237 = OpVariable %_ptr_Function_v3uint Function %48 %214 = OpLoad %uint %s_4 %215 = OpLoad %v3uint %v_4 %218 = OpCompositeConstruct %v3uint %214 %214 %214 %216 = OpIAdd %v3uint %218 %215 OpStore %r_4 %216 %219 = OpLoad %uint %s_4 %220 = OpLoad %v3uint %v_4 %223 = OpCompositeConstruct %v3uint %219 %219 %219 %221 = OpISub %v3uint %223 %220 OpStore %r_4 %221 %224 = OpLoad %uint %s_4 %225 = OpLoad %v3uint %v_4 %228 = OpCompositeConstruct %v3uint %224 %224 %224 %226 = OpIMul %v3uint %228 %225 OpStore %r_4 %226 %229 = OpLoad %uint %s_4 %230 = OpLoad %v3uint %v_4 %233 = OpCompositeConstruct %v3uint %229 %229 %229 %231 = OpUDiv %v3uint %233 %230 OpStore %r_4 %231 %234 = OpLoad %uint %s_4 %235 = OpLoad %v3uint %v_4 %238 = OpCompositeConstruct %v3uint %234 %234 %234 %236 = OpUMod %v3uint %238 %235 OpStore %r_4 %236 OpReturn OpFunctionEnd %matrix_matrix_f32 = OpFunction %void None %6 %240 = OpLabel %m34 = OpVariable %_ptr_Function_mat3v4float Function %244 %m43 = OpVariable %_ptr_Function_mat4v3float Function %248 %m33 = OpVariable %_ptr_Function_mat3v3float Function %252 %m44 = OpVariable %_ptr_Function_mat4v4float Function %256 %257 = OpLoad %mat3v4float %m34 %258 = OpLoad %mat3v4float %m34 %260 = OpCompositeExtract %v4float %257 0 %261 = OpCompositeExtract %v4float %258 0 %262 = OpFAdd %v4float %260 %261 %263 = OpCompositeExtract %v4float %257 1 %264 = OpCompositeExtract %v4float %258 1 %265 = OpFAdd %v4float %263 %264 %266 = OpCompositeExtract %v4float %257 2 %267 = OpCompositeExtract %v4float %258 2 %268 = OpFAdd %v4float %266 %267 %269 = OpCompositeConstruct %mat3v4float %262 %265 %268 OpStore %m34 %269 %270 = OpLoad %mat3v4float %m34 %271 = OpLoad %mat3v4float %m34 %273 = OpCompositeExtract %v4float %270 0 %274 = OpCompositeExtract %v4float %271 0 %275 = OpFSub %v4float %273 %274 %276 = OpCompositeExtract %v4float %270 1 %277 = OpCompositeExtract %v4float %271 1 %278 = OpFSub %v4float %276 %277 %279 = OpCompositeExtract %v4float %270 2 %280 = OpCompositeExtract %v4float %271 2 %281 = OpFSub %v4float %279 %280 %282 = OpCompositeConstruct %mat3v4float %275 %278 %281 OpStore %m34 %282 %283 = OpLoad %mat4v3float %m43 %284 = OpLoad %mat3v4float %m34 %285 = OpMatrixTimesMatrix %mat3v3float %283 %284 OpStore %m33 %285 %286 = OpLoad %mat3v4float %m34 %287 = OpLoad %mat4v3float %m43 %288 = OpMatrixTimesMatrix %mat4v4float %286 %287 OpStore %m44 %288 OpReturn OpFunctionEnd %tint_symbol_2 = OpFunction %void None %289 %tint_symbol = OpFunctionParameter %v4float %292 = OpLabel OpStore %tint_symbol_1 %tint_symbol OpReturn OpFunctionEnd %main = OpFunction %void None %6 %294 = OpLabel %295 = OpFunctionCall %void %tint_symbol_2 %297 OpReturn OpFunctionEnd