; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 102
; Schema: 0
               OpCapability Shader
         %42 = OpExtInstImport "GLSL.std.450"
               OpMemoryModel Logical GLSL450
               OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID_param_1
               OpExecutionMode %main LocalSize 1 1 1
               OpName %gl_GlobalInvocationID_param_1 "gl_GlobalInvocationID_param_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 %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_inner "main_inner"
               OpName %gl_GlobalInvocationID_param "gl_GlobalInvocationID_param"
               OpName %main "main"
               OpDecorate %gl_GlobalInvocationID_param_1 BuiltIn GlobalInvocationId
               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
       %uint = OpTypeInt 32 0
     %v3uint = OpTypeVector %uint 3
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
%gl_GlobalInvocationID_param_1 = OpVariable %_ptr_Input_v3uint Input
%_ptr_Private_v3uint = OpTypePointer Private %v3uint
          %7 = OpConstantNull %v3uint
%gl_GlobalInvocationID = OpVariable %_ptr_Private_v3uint Private %7
      %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_Function_float = OpTypePointer Function %float
         %23 = OpTypeFunction %float %_ptr_Function_float %_ptr_Function_float
         %30 = OpConstantNull %float
       %bool = OpTypeBool
    %float_1 = OpConstant %float 1
    %float_2 = OpConstant %float 2
       %void = OpTypeVoid
         %69 = OpTypeFunction %void
%_ptr_Function_int = OpTypePointer Function %int
         %75 = 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
         %93 = OpTypeFunction %void %v3uint
%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
         %33 = OpFOrdEqual %bool %32 %30
               OpSelectionMerge %35 None
               OpBranchConditional %33 %36 %35
         %36 = OpLabel
               OpReturnValue %float_1
         %35 = OpLabel
         %39 = OpLoad %float %b
         %45 = OpFDiv %float %39 %float_2
         %44 = OpExtInst %float %42 Floor %45
         %46 = OpFMul %float %float_2 %44
         %47 = OpFSub %float %39 %46
         %41 = OpExtInst %float %42 RoundEven %47
         %48 = OpFOrdEqual %bool %41 %float_1
         %40 = OpLogicalNot %bool %48
               OpSelectionMerge %49 None
               OpBranchConditional %40 %50 %51
         %50 = OpLabel
         %53 = OpLoad %float %a
         %55 = OpLoad %float %b
         %57 = OpExtInst %float %42 FAbs %53
         %56 = OpExtInst %float %42 Pow %57 %55
               OpStore %x_26 %56
               OpBranch %49
         %51 = OpLabel
         %59 = OpLoad %float %a
         %61 = OpLoad %float %a
         %63 = OpLoad %float %b
         %64 = OpExtInst %float %42 FSign %59
         %66 = OpExtInst %float %42 FAbs %61
         %65 = OpExtInst %float %42 Pow %66 %63
         %67 = OpFMul %float %64 %65
               OpStore %x_26 %67
               OpBranch %49
         %49 = OpLabel
         %68 = OpLoad %float %x_26
               OpReturnValue %68
               OpFunctionEnd
     %main_1 = OpFunction %void None %69
         %72 = OpLabel
      %index = OpVariable %_ptr_Function_int Function %75
        %a_1 = OpVariable %_ptr_Function_int Function %75
      %param = OpVariable %_ptr_Function_float Function %30
    %param_1 = OpVariable %_ptr_Function_float Function %30
         %81 = OpAccessChain %_ptr_Private_uint %gl_GlobalInvocationID %uint_0
         %82 = OpLoad %uint %81
         %83 = OpBitcast %int %82
               OpStore %index %83
               OpStore %a_1 %int_n10
         %85 = OpLoad %int %index
               OpStore %param %float_n4
               OpStore %param_1 %float_n3
         %88 = OpFunctionCall %float %binaryOperation_f1_f1_ %param %param_1
         %92 = OpAccessChain %_ptr_StorageBuffer_float %resultMatrix %uint_0 %85
               OpStore %92 %88
               OpReturn
               OpFunctionEnd
 %main_inner = OpFunction %void None %93
%gl_GlobalInvocationID_param = OpFunctionParameter %v3uint
         %96 = OpLabel
               OpStore %gl_GlobalInvocationID %gl_GlobalInvocationID_param
         %97 = OpFunctionCall %void %main_1
               OpReturn
               OpFunctionEnd
       %main = OpFunction %void None %69
         %99 = OpLabel
        %101 = OpLoad %v3uint %gl_GlobalInvocationID_param_1
        %100 = OpFunctionCall %void %main_inner %101
               OpReturn
               OpFunctionEnd
