1 OpCapability Shader 2 %1 = OpExtInstImport "GLSL.std.450" 3 OpMemoryModel Logical GLSL450 4 OpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_FragColor 5 OpExecutionMode %_entrypoint_v OriginUpperLeft 6 OpName %sk_FragColor "sk_FragColor" 7 OpName %zero "zero" 8 OpName %globalArray "globalArray" 9 OpName %globalMatrix "globalMatrix" 10 OpName %_entrypoint_v "_entrypoint_v" 11 OpName %main "main" 12 OpName %localArray "localArray" 13 OpName %localMatrix "localMatrix" 14 OpDecorate %sk_FragColor RelaxedPrecision 15 OpDecorate %sk_FragColor Location 0 16 OpDecorate %sk_FragColor Index 0 17 OpDecorate %globalArray RelaxedPrecision 18 OpDecorate %_arr_float_int_2 ArrayStride 16 19 OpDecorate %16 RelaxedPrecision 20 OpDecorate %globalMatrix RelaxedPrecision 21 OpDecorate %localArray RelaxedPrecision 22 OpDecorate %37 RelaxedPrecision 23 OpDecorate %localMatrix RelaxedPrecision 24 OpDecorate %48 RelaxedPrecision 25 OpDecorate %52 RelaxedPrecision 26 OpDecorate %53 RelaxedPrecision 27 OpDecorate %58 RelaxedPrecision 28 OpDecorate %62 RelaxedPrecision 29 OpDecorate %65 RelaxedPrecision 30 OpDecorate %66 RelaxedPrecision 31 OpDecorate %67 RelaxedPrecision 32 OpDecorate %68 RelaxedPrecision 33 OpDecorate %69 RelaxedPrecision 34 %float = OpTypeFloat 32 35 %v4float = OpTypeVector %float 4 36%_ptr_Output_v4float = OpTypePointer Output %v4float 37%sk_FragColor = OpVariable %_ptr_Output_v4float Output 38 %int = OpTypeInt 32 1 39%_ptr_Private_int = OpTypePointer Private %int 40 %zero = OpVariable %_ptr_Private_int Private 41 %int_0 = OpConstant %int 0 42 %int_2 = OpConstant %int 2 43%_arr_float_int_2 = OpTypeArray %float %int_2 44%_ptr_Private__arr_float_int_2 = OpTypePointer Private %_arr_float_int_2 45%globalArray = OpVariable %_ptr_Private__arr_float_int_2 Private 46 %float_1 = OpConstant %float 1 47 %v2float = OpTypeVector %float 2 48%mat2v2float = OpTypeMatrix %v2float 2 49%_ptr_Private_mat2v2float = OpTypePointer Private %mat2v2float 50%globalMatrix = OpVariable %_ptr_Private_mat2v2float Private 51 %21 = OpConstantComposite %v2float %float_1 %float_1 52 %22 = OpConstantComposite %mat2v2float %21 %21 53 %void = OpTypeVoid 54 %25 = OpTypeFunction %void 55 %float_0 = OpConstant %float 0 56 %28 = OpConstantComposite %v2float %float_0 %float_0 57%_ptr_Function_v2float = OpTypePointer Function %v2float 58 %32 = OpTypeFunction %v4float %_ptr_Function_v2float 59%_ptr_Function__arr_float_int_2 = OpTypePointer Function %_arr_float_int_2 60%_ptr_Function_mat2v2float = OpTypePointer Function %mat2v2float 61 %float_2 = OpConstant %float 2 62 %float_3 = OpConstant %float 3 63 %42 = OpConstantComposite %v2float %float_0 %float_1 64 %43 = OpConstantComposite %v2float %float_2 %float_3 65 %44 = OpConstantComposite %mat2v2float %42 %43 66%_ptr_Private_float = OpTypePointer Private %float 67%_ptr_Function_float = OpTypePointer Function %float 68%_ptr_Private_v2float = OpTypePointer Private %v2float 69%_entrypoint_v = OpFunction %void None %25 70 %26 = OpLabel 71 %29 = OpVariable %_ptr_Function_v2float Function 72 OpStore %29 %28 73 %31 = OpFunctionCall %v4float %main %29 74 OpStore %sk_FragColor %31 75 OpReturn 76 OpFunctionEnd 77 %main = OpFunction %v4float None %32 78 %33 = OpFunctionParameter %_ptr_Function_v2float 79 %34 = OpLabel 80 %localArray = OpVariable %_ptr_Function__arr_float_int_2 Function 81%localMatrix = OpVariable %_ptr_Function_mat2v2float Function 82 OpStore %zero %int_0 83 %16 = OpCompositeConstruct %_arr_float_int_2 %float_1 %float_1 84 OpStore %globalArray %16 85 OpStore %globalMatrix %22 86 %37 = OpCompositeConstruct %_arr_float_int_2 %float_0 %float_1 87 OpStore %localArray %37 88 OpStore %localMatrix %44 89 %45 = OpLoad %int %zero 90 %46 = OpAccessChain %_ptr_Private_float %globalArray %45 91 %48 = OpLoad %float %46 92 %49 = OpLoad %int %zero 93 %50 = OpAccessChain %_ptr_Function_float %localArray %49 94 %52 = OpLoad %float %50 95 %53 = OpFMul %float %48 %52 96 %54 = OpLoad %int %zero 97 %55 = OpVectorExtractDynamic %float %21 %54 98 %56 = OpLoad %int %zero 99 %57 = OpVectorExtractDynamic %float %21 %56 100 %58 = OpFMul %float %55 %57 101 %59 = OpLoad %int %zero 102 %60 = OpAccessChain %_ptr_Private_v2float %globalMatrix %59 103 %62 = OpLoad %v2float %60 104 %63 = OpLoad %int %zero 105 %64 = OpAccessChain %_ptr_Function_v2float %localMatrix %63 106 %65 = OpLoad %v2float %64 107 %66 = OpFMul %v2float %62 %65 108 %67 = OpCompositeExtract %float %66 0 109 %68 = OpCompositeExtract %float %66 1 110 %69 = OpCompositeConstruct %v4float %53 %58 %67 %68 111 OpReturnValue %69 112 OpFunctionEnd 113