1OpCapability Shader 2%1 = OpExtInstImport "GLSL.std.450" 3OpMemoryModel Logical GLSL450 4OpEntryPoint Fragment %main "main" %sk_FragColor %sk_Clockwise 5OpExecutionMode %main OriginUpperLeft 6OpName %sk_FragColor "sk_FragColor" 7OpName %sk_Clockwise "sk_Clockwise" 8OpName %a "a" 9OpName %b "b" 10OpName %c "c" 11OpName %d "d" 12OpName %main "main" 13OpDecorate %sk_FragColor RelaxedPrecision 14OpDecorate %sk_FragColor Location 0 15OpDecorate %sk_FragColor Index 0 16OpDecorate %sk_Clockwise BuiltIn FrontFacing 17OpDecorate %a RelaxedPrecision 18OpDecorate %b RelaxedPrecision 19OpDecorate %25 RelaxedPrecision 20OpDecorate %26 RelaxedPrecision 21OpDecorate %27 RelaxedPrecision 22OpDecorate %28 RelaxedPrecision 23OpDecorate %29 RelaxedPrecision 24OpDecorate %30 RelaxedPrecision 25OpDecorate %31 RelaxedPrecision 26OpDecorate %32 RelaxedPrecision 27OpDecorate %33 RelaxedPrecision 28OpDecorate %34 RelaxedPrecision 29OpDecorate %35 RelaxedPrecision 30OpDecorate %36 RelaxedPrecision 31OpDecorate %41 RelaxedPrecision 32OpDecorate %42 RelaxedPrecision 33OpDecorate %43 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%bool = OpTypeBool 39%_ptr_Input_bool = OpTypePointer Input %bool 40%sk_Clockwise = OpVariable %_ptr_Input_bool Input 41%v3float = OpTypeVector %float 3 42%mat3v3float = OpTypeMatrix %v3float 3 43%_ptr_Private_mat3v3float = OpTypePointer Private %mat3v3float 44%a = OpVariable %_ptr_Private_mat3v3float Private 45%b = OpVariable %_ptr_Private_mat3v3float Private 46%mat4v4float = OpTypeMatrix %v4float 4 47%_ptr_Private_mat4v4float = OpTypePointer Private %mat4v4float 48%c = OpVariable %_ptr_Private_mat4v4float Private 49%d = OpVariable %_ptr_Private_mat4v4float Private 50%void = OpTypeVoid 51%20 = OpTypeFunction %void 52%_ptr_Function_mat3v3float = OpTypePointer Function %mat3v3float 53%int = OpTypeInt 32 1 54%int_0 = OpConstant %int 0 55%_ptr_Function_v3float = OpTypePointer Function %v3float 56%_ptr_Function_mat4v4float = OpTypePointer Function %mat4v4float 57%_ptr_Function_v4float = OpTypePointer Function %v4float 58%main = OpFunction %void None %20 59%21 = OpLabel 60%22 = OpVariable %_ptr_Function_mat3v3float Function 61%44 = OpVariable %_ptr_Function_mat4v4float Function 62%25 = OpLoad %mat3v3float %a 63%26 = OpLoad %mat3v3float %b 64%27 = OpCompositeExtract %v3float %25 0 65%28 = OpCompositeExtract %v3float %26 0 66%29 = OpFMul %v3float %27 %28 67%30 = OpCompositeExtract %v3float %25 1 68%31 = OpCompositeExtract %v3float %26 1 69%32 = OpFMul %v3float %30 %31 70%33 = OpCompositeExtract %v3float %25 2 71%34 = OpCompositeExtract %v3float %26 2 72%35 = OpFMul %v3float %33 %34 73%36 = OpCompositeConstruct %mat3v3float %29 %32 %35 74OpStore %22 %36 75%39 = OpAccessChain %_ptr_Function_v3float %22 %int_0 76%41 = OpLoad %v3float %39 77%42 = OpLoad %v4float %sk_FragColor 78%43 = OpVectorShuffle %v4float %42 %41 4 5 6 3 79OpStore %sk_FragColor %43 80%47 = OpLoad %mat4v4float %c 81%48 = OpLoad %mat4v4float %d 82%49 = OpCompositeExtract %v4float %47 0 83%50 = OpCompositeExtract %v4float %48 0 84%51 = OpFMul %v4float %49 %50 85%52 = OpCompositeExtract %v4float %47 1 86%53 = OpCompositeExtract %v4float %48 1 87%54 = OpFMul %v4float %52 %53 88%55 = OpCompositeExtract %v4float %47 2 89%56 = OpCompositeExtract %v4float %48 2 90%57 = OpFMul %v4float %55 %56 91%58 = OpCompositeExtract %v4float %47 3 92%59 = OpCompositeExtract %v4float %48 3 93%60 = OpFMul %v4float %58 %59 94%61 = OpCompositeConstruct %mat4v4float %51 %54 %57 %60 95OpStore %44 %61 96%62 = OpAccessChain %_ptr_Function_v4float %44 %int_0 97%64 = OpLoad %v4float %62 98OpStore %sk_FragColor %64 99OpReturn 100OpFunctionEnd 101