; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 ; Bound: 95 ; Schema: 0 OpCapability Shader %43 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint GLCompute %main "main" %tint_symbol OpExecutionMode %main LocalSize 1 1 1 OpName %gl_GlobalInvocationID "gl_GlobalInvocationID" OpName %ResultMatrix "ResultMatrix" OpMemberName %ResultMatrix 0 "numbers" OpName %resultMatrix "resultMatrix" OpName %FirstMatrix "FirstMatrix" OpMemberName %FirstMatrix 0 "numbers" OpName %firstMatrix "firstMatrix" OpName %SecondMatrix "SecondMatrix" OpMemberName %SecondMatrix 0 "numbers" OpName %secondMatrix "secondMatrix" OpName %Uniforms "Uniforms" OpMemberName %Uniforms 0 "NAN" OpMemberName %Uniforms 1 "sizeA" OpMemberName %Uniforms 2 "sizeB" OpName %x_46 "x_46" OpName %tint_symbol "tint_symbol" OpName %binaryOperation_f1_f1_ "binaryOperation_f1_f1_" OpName %a "a" OpName %b "b" OpName %x_26 "x_26" OpName %main_1 "main_1" OpName %index "index" OpName %a_1 "a_1" OpName %param "param" OpName %param_1 "param_1" OpName %main "main" OpDecorate %ResultMatrix Block OpMemberDecorate %ResultMatrix 0 Offset 0 OpDecorate %_runtimearr_float ArrayStride 4 OpDecorate %resultMatrix DescriptorSet 0 OpDecorate %resultMatrix Binding 2 OpDecorate %FirstMatrix Block OpMemberDecorate %FirstMatrix 0 Offset 0 OpDecorate %firstMatrix NonWritable OpDecorate %firstMatrix DescriptorSet 0 OpDecorate %firstMatrix Binding 0 OpDecorate %SecondMatrix Block OpMemberDecorate %SecondMatrix 0 Offset 0 OpDecorate %secondMatrix NonWritable OpDecorate %secondMatrix DescriptorSet 0 OpDecorate %secondMatrix Binding 1 OpDecorate %Uniforms Block OpMemberDecorate %Uniforms 0 Offset 0 OpMemberDecorate %Uniforms 1 Offset 4 OpMemberDecorate %Uniforms 2 Offset 8 OpDecorate %x_46 NonWritable OpDecorate %x_46 DescriptorSet 0 OpDecorate %x_46 Binding 3 OpDecorate %tint_symbol BuiltIn GlobalInvocationId %uint = OpTypeInt 32 0 %v3uint = OpTypeVector %uint 3 %_ptr_Private_v3uint = OpTypePointer Private %v3uint %5 = OpConstantNull %v3uint %gl_GlobalInvocationID = OpVariable %_ptr_Private_v3uint Private %5 %float = OpTypeFloat 32 %_runtimearr_float = OpTypeRuntimeArray %float %ResultMatrix = OpTypeStruct %_runtimearr_float %_ptr_StorageBuffer_ResultMatrix = OpTypePointer StorageBuffer %ResultMatrix %resultMatrix = OpVariable %_ptr_StorageBuffer_ResultMatrix StorageBuffer %FirstMatrix = OpTypeStruct %_runtimearr_float %_ptr_StorageBuffer_FirstMatrix = OpTypePointer StorageBuffer %FirstMatrix %firstMatrix = OpVariable %_ptr_StorageBuffer_FirstMatrix StorageBuffer %SecondMatrix = OpTypeStruct %_runtimearr_float %_ptr_StorageBuffer_SecondMatrix = OpTypePointer StorageBuffer %SecondMatrix %secondMatrix = OpVariable %_ptr_StorageBuffer_SecondMatrix StorageBuffer %int = OpTypeInt 32 1 %Uniforms = OpTypeStruct %float %int %int %_ptr_Uniform_Uniforms = OpTypePointer Uniform %Uniforms %x_46 = OpVariable %_ptr_Uniform_Uniforms Uniform %_ptr_Input_v3uint = OpTypePointer Input %v3uint %tint_symbol = OpVariable %_ptr_Input_v3uint Input %_ptr_Function_float = OpTypePointer Function %float %23 = OpTypeFunction %float %_ptr_Function_float %_ptr_Function_float %30 = OpConstantNull %float %float_0 = OpConstant %float 0 %bool = OpTypeBool %float_1 = OpConstant %float 1 %float_2 = OpConstant %float 2 %void = OpTypeVoid %67 = OpTypeFunction %void %_ptr_Function_int = OpTypePointer Function %int %73 = OpConstantNull %int %uint_0 = OpConstant %uint 0 %_ptr_Private_uint = OpTypePointer Private %uint %int_n10 = OpConstant %int -10 %float_n4 = OpConstant %float -4 %float_n3 = OpConstant %float -3 %_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float %binaryOperation_f1_f1_ = OpFunction %float None %23 %a = OpFunctionParameter %_ptr_Function_float %b = OpFunctionParameter %_ptr_Function_float %28 = OpLabel %x_26 = OpVariable %_ptr_Function_float Function %30 %32 = OpLoad %float %b %34 = OpFOrdEqual %bool %32 %float_0 OpSelectionMerge %36 None OpBranchConditional %34 %37 %36 %37 = OpLabel OpReturnValue %float_1 %36 = OpLabel %40 = OpLoad %float %b %45 = OpFMod %float %40 %float_2 %42 = OpExtInst %float %43 RoundEven %45 %46 = OpFOrdEqual %bool %42 %float_1 %41 = OpLogicalNot %bool %46 OpSelectionMerge %47 None OpBranchConditional %41 %48 %49 %48 = OpLabel %51 = OpLoad %float %a %53 = OpLoad %float %b %55 = OpExtInst %float %43 FAbs %51 %54 = OpExtInst %float %43 Pow %55 %53 OpStore %x_26 %54 OpBranch %47 %49 = OpLabel %57 = OpLoad %float %a %59 = OpLoad %float %a %61 = OpLoad %float %b %62 = OpExtInst %float %43 FSign %57 %64 = OpExtInst %float %43 FAbs %59 %63 = OpExtInst %float %43 Pow %64 %61 %65 = OpFMul %float %62 %63 OpStore %x_26 %65 OpBranch %47 %47 = OpLabel %66 = OpLoad %float %x_26 OpReturnValue %66 OpFunctionEnd %main_1 = OpFunction %void None %67 %70 = OpLabel %index = OpVariable %_ptr_Function_int Function %73 %a_1 = OpVariable %_ptr_Function_int Function %73 %param = OpVariable %_ptr_Function_float Function %30 %param_1 = OpVariable %_ptr_Function_float Function %30 %79 = OpAccessChain %_ptr_Private_uint %gl_GlobalInvocationID %uint_0 %80 = OpLoad %uint %79 %81 = OpBitcast %int %80 OpStore %index %81 OpStore %a_1 %int_n10 %83 = OpLoad %int %index OpStore %param %float_n4 OpStore %param_1 %float_n3 %86 = OpFunctionCall %float %binaryOperation_f1_f1_ %param %param_1 %90 = OpAccessChain %_ptr_StorageBuffer_float %resultMatrix %uint_0 %83 OpStore %90 %86 OpReturn OpFunctionEnd %main = OpFunction %void None %67 %92 = OpLabel %93 = OpLoad %v3uint %tint_symbol OpStore %gl_GlobalInvocationID %93 %94 = OpFunctionCall %void %main_1 OpReturn OpFunctionEnd