1*c8dee2aaSAndroid Build Coastguard Worker OpCapability Shader 2*c8dee2aaSAndroid Build Coastguard Worker %1 = OpExtInstImport "GLSL.std.450" 3*c8dee2aaSAndroid Build Coastguard Worker OpMemoryModel Logical GLSL450 4*c8dee2aaSAndroid Build Coastguard Worker OpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_FragColor 5*c8dee2aaSAndroid Build Coastguard Worker OpExecutionMode %_entrypoint_v OriginUpperLeft 6*c8dee2aaSAndroid Build Coastguard Worker OpName %sk_FragColor "sk_FragColor" 7*c8dee2aaSAndroid Build Coastguard Worker OpName %_UniformBuffer "_UniformBuffer" 8*c8dee2aaSAndroid Build Coastguard Worker OpMemberName %_UniformBuffer 0 "testMatrix4x4" 9*c8dee2aaSAndroid Build Coastguard Worker OpMemberName %_UniformBuffer 1 "colorGreen" 10*c8dee2aaSAndroid Build Coastguard Worker OpMemberName %_UniformBuffer 2 "colorRed" 11*c8dee2aaSAndroid Build Coastguard Worker OpName %_entrypoint_v "_entrypoint_v" 12*c8dee2aaSAndroid Build Coastguard Worker OpName %main "main" 13*c8dee2aaSAndroid Build Coastguard Worker OpName %inputA "inputA" 14*c8dee2aaSAndroid Build Coastguard Worker OpName %inputB "inputB" 15*c8dee2aaSAndroid Build Coastguard Worker OpName %expected "expected" 16*c8dee2aaSAndroid Build Coastguard Worker OpDecorate %sk_FragColor RelaxedPrecision 17*c8dee2aaSAndroid Build Coastguard Worker OpDecorate %sk_FragColor Location 0 18*c8dee2aaSAndroid Build Coastguard Worker OpDecorate %sk_FragColor Index 0 19*c8dee2aaSAndroid Build Coastguard Worker OpMemberDecorate %_UniformBuffer 0 Offset 0 20*c8dee2aaSAndroid Build Coastguard Worker OpMemberDecorate %_UniformBuffer 0 ColMajor 21*c8dee2aaSAndroid Build Coastguard Worker OpMemberDecorate %_UniformBuffer 0 MatrixStride 16 22*c8dee2aaSAndroid Build Coastguard Worker OpMemberDecorate %_UniformBuffer 1 Offset 64 23*c8dee2aaSAndroid Build Coastguard Worker OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision 24*c8dee2aaSAndroid Build Coastguard Worker OpMemberDecorate %_UniformBuffer 2 Offset 80 25*c8dee2aaSAndroid Build Coastguard Worker OpMemberDecorate %_UniformBuffer 2 RelaxedPrecision 26*c8dee2aaSAndroid Build Coastguard Worker OpDecorate %_UniformBuffer Block 27*c8dee2aaSAndroid Build Coastguard Worker OpDecorate %7 Binding 0 28*c8dee2aaSAndroid Build Coastguard Worker OpDecorate %7 DescriptorSet 0 29*c8dee2aaSAndroid Build Coastguard Worker OpDecorate %88 RelaxedPrecision 30*c8dee2aaSAndroid Build Coastguard Worker OpDecorate %91 RelaxedPrecision 31*c8dee2aaSAndroid Build Coastguard Worker OpDecorate %92 RelaxedPrecision 32*c8dee2aaSAndroid Build Coastguard Worker %float = OpTypeFloat 32 33*c8dee2aaSAndroid Build Coastguard Worker %v4float = OpTypeVector %float 4 34*c8dee2aaSAndroid Build Coastguard Worker%_ptr_Output_v4float = OpTypePointer Output %v4float 35*c8dee2aaSAndroid Build Coastguard Worker%sk_FragColor = OpVariable %_ptr_Output_v4float Output 36*c8dee2aaSAndroid Build Coastguard Worker%mat4v4float = OpTypeMatrix %v4float 4 37*c8dee2aaSAndroid Build Coastguard Worker%_UniformBuffer = OpTypeStruct %mat4v4float %v4float %v4float 38*c8dee2aaSAndroid Build Coastguard Worker%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 39*c8dee2aaSAndroid Build Coastguard Worker %7 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 40*c8dee2aaSAndroid Build Coastguard Worker %void = OpTypeVoid 41*c8dee2aaSAndroid Build Coastguard Worker %13 = OpTypeFunction %void 42*c8dee2aaSAndroid Build Coastguard Worker %float_0 = OpConstant %float 0 43*c8dee2aaSAndroid Build Coastguard Worker %v2float = OpTypeVector %float 2 44*c8dee2aaSAndroid Build Coastguard Worker %17 = OpConstantComposite %v2float %float_0 %float_0 45*c8dee2aaSAndroid Build Coastguard Worker%_ptr_Function_v2float = OpTypePointer Function %v2float 46*c8dee2aaSAndroid Build Coastguard Worker %21 = OpTypeFunction %v4float %_ptr_Function_v2float 47*c8dee2aaSAndroid Build Coastguard Worker%_ptr_Function_v4float = OpTypePointer Function %v4float 48*c8dee2aaSAndroid Build Coastguard Worker%_ptr_Uniform_mat4v4float = OpTypePointer Uniform %mat4v4float 49*c8dee2aaSAndroid Build Coastguard Worker %int = OpTypeInt 32 1 50*c8dee2aaSAndroid Build Coastguard Worker %int_0 = OpConstant %int 0 51*c8dee2aaSAndroid Build Coastguard Worker%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 52*c8dee2aaSAndroid Build Coastguard Worker %int_1 = OpConstant %int 1 53*c8dee2aaSAndroid Build Coastguard Worker %float_5 = OpConstant %float 5 54*c8dee2aaSAndroid Build Coastguard Worker %float_17 = OpConstant %float 17 55*c8dee2aaSAndroid Build Coastguard Worker %float_38 = OpConstant %float 38 56*c8dee2aaSAndroid Build Coastguard Worker %float_70 = OpConstant %float 70 57*c8dee2aaSAndroid Build Coastguard Worker %43 = OpConstantComposite %v4float %float_5 %float_17 %float_38 %float_70 58*c8dee2aaSAndroid Build Coastguard Worker %bool = OpTypeBool 59*c8dee2aaSAndroid Build Coastguard Worker %false = OpConstantFalse %bool 60*c8dee2aaSAndroid Build Coastguard Worker %v3float = OpTypeVector %float 3 61*c8dee2aaSAndroid Build Coastguard Worker %true = OpConstantTrue %bool 62*c8dee2aaSAndroid Build Coastguard Worker %int_2 = OpConstant %int 2 63*c8dee2aaSAndroid Build Coastguard Worker%_entrypoint_v = OpFunction %void None %13 64*c8dee2aaSAndroid Build Coastguard Worker %14 = OpLabel 65*c8dee2aaSAndroid Build Coastguard Worker %18 = OpVariable %_ptr_Function_v2float Function 66*c8dee2aaSAndroid Build Coastguard Worker OpStore %18 %17 67*c8dee2aaSAndroid Build Coastguard Worker %20 = OpFunctionCall %v4float %main %18 68*c8dee2aaSAndroid Build Coastguard Worker OpStore %sk_FragColor %20 69*c8dee2aaSAndroid Build Coastguard Worker OpReturn 70*c8dee2aaSAndroid Build Coastguard Worker OpFunctionEnd 71*c8dee2aaSAndroid Build Coastguard Worker %main = OpFunction %v4float None %21 72*c8dee2aaSAndroid Build Coastguard Worker %22 = OpFunctionParameter %_ptr_Function_v2float 73*c8dee2aaSAndroid Build Coastguard Worker %23 = OpLabel 74*c8dee2aaSAndroid Build Coastguard Worker %inputA = OpVariable %_ptr_Function_v4float Function 75*c8dee2aaSAndroid Build Coastguard Worker %inputB = OpVariable %_ptr_Function_v4float Function 76*c8dee2aaSAndroid Build Coastguard Worker %expected = OpVariable %_ptr_Function_v4float Function 77*c8dee2aaSAndroid Build Coastguard Worker %83 = OpVariable %_ptr_Function_v4float Function 78*c8dee2aaSAndroid Build Coastguard Worker %26 = OpAccessChain %_ptr_Uniform_mat4v4float %7 %int_0 79*c8dee2aaSAndroid Build Coastguard Worker %30 = OpAccessChain %_ptr_Uniform_v4float %26 %int_0 80*c8dee2aaSAndroid Build Coastguard Worker %32 = OpLoad %v4float %30 81*c8dee2aaSAndroid Build Coastguard Worker OpStore %inputA %32 82*c8dee2aaSAndroid Build Coastguard Worker %34 = OpAccessChain %_ptr_Uniform_mat4v4float %7 %int_0 83*c8dee2aaSAndroid Build Coastguard Worker %36 = OpAccessChain %_ptr_Uniform_v4float %34 %int_1 84*c8dee2aaSAndroid Build Coastguard Worker %37 = OpLoad %v4float %36 85*c8dee2aaSAndroid Build Coastguard Worker OpStore %inputB %37 86*c8dee2aaSAndroid Build Coastguard Worker OpStore %expected %43 87*c8dee2aaSAndroid Build Coastguard Worker %47 = OpCompositeExtract %float %32 0 88*c8dee2aaSAndroid Build Coastguard Worker %48 = OpCompositeExtract %float %37 0 89*c8dee2aaSAndroid Build Coastguard Worker %46 = OpFMul %float %47 %48 90*c8dee2aaSAndroid Build Coastguard Worker %49 = OpFOrdEqual %bool %46 %float_5 91*c8dee2aaSAndroid Build Coastguard Worker OpSelectionMerge %51 None 92*c8dee2aaSAndroid Build Coastguard Worker OpBranchConditional %49 %50 %51 93*c8dee2aaSAndroid Build Coastguard Worker %50 = OpLabel 94*c8dee2aaSAndroid Build Coastguard Worker %53 = OpVectorShuffle %v2float %32 %32 0 1 95*c8dee2aaSAndroid Build Coastguard Worker %54 = OpVectorShuffle %v2float %37 %37 0 1 96*c8dee2aaSAndroid Build Coastguard Worker %52 = OpDot %float %53 %54 97*c8dee2aaSAndroid Build Coastguard Worker %55 = OpFOrdEqual %bool %52 %float_17 98*c8dee2aaSAndroid Build Coastguard Worker OpBranch %51 99*c8dee2aaSAndroid Build Coastguard Worker %51 = OpLabel 100*c8dee2aaSAndroid Build Coastguard Worker %56 = OpPhi %bool %false %23 %55 %50 101*c8dee2aaSAndroid Build Coastguard Worker OpSelectionMerge %58 None 102*c8dee2aaSAndroid Build Coastguard Worker OpBranchConditional %56 %57 %58 103*c8dee2aaSAndroid Build Coastguard Worker %57 = OpLabel 104*c8dee2aaSAndroid Build Coastguard Worker %60 = OpVectorShuffle %v3float %32 %32 0 1 2 105*c8dee2aaSAndroid Build Coastguard Worker %62 = OpVectorShuffle %v3float %37 %37 0 1 2 106*c8dee2aaSAndroid Build Coastguard Worker %59 = OpDot %float %60 %62 107*c8dee2aaSAndroid Build Coastguard Worker %63 = OpFOrdEqual %bool %59 %float_38 108*c8dee2aaSAndroid Build Coastguard Worker OpBranch %58 109*c8dee2aaSAndroid Build Coastguard Worker %58 = OpLabel 110*c8dee2aaSAndroid Build Coastguard Worker %64 = OpPhi %bool %false %51 %63 %57 111*c8dee2aaSAndroid Build Coastguard Worker OpSelectionMerge %66 None 112*c8dee2aaSAndroid Build Coastguard Worker OpBranchConditional %64 %65 %66 113*c8dee2aaSAndroid Build Coastguard Worker %65 = OpLabel 114*c8dee2aaSAndroid Build Coastguard Worker %67 = OpDot %float %32 %37 115*c8dee2aaSAndroid Build Coastguard Worker %68 = OpFOrdEqual %bool %67 %float_70 116*c8dee2aaSAndroid Build Coastguard Worker OpBranch %66 117*c8dee2aaSAndroid Build Coastguard Worker %66 = OpLabel 118*c8dee2aaSAndroid Build Coastguard Worker %69 = OpPhi %bool %false %58 %68 %65 119*c8dee2aaSAndroid Build Coastguard Worker OpSelectionMerge %71 None 120*c8dee2aaSAndroid Build Coastguard Worker OpBranchConditional %69 %70 %71 121*c8dee2aaSAndroid Build Coastguard Worker %70 = OpLabel 122*c8dee2aaSAndroid Build Coastguard Worker OpBranch %71 123*c8dee2aaSAndroid Build Coastguard Worker %71 = OpLabel 124*c8dee2aaSAndroid Build Coastguard Worker %73 = OpPhi %bool %false %66 %true %70 125*c8dee2aaSAndroid Build Coastguard Worker OpSelectionMerge %75 None 126*c8dee2aaSAndroid Build Coastguard Worker OpBranchConditional %73 %74 %75 127*c8dee2aaSAndroid Build Coastguard Worker %74 = OpLabel 128*c8dee2aaSAndroid Build Coastguard Worker OpBranch %75 129*c8dee2aaSAndroid Build Coastguard Worker %75 = OpLabel 130*c8dee2aaSAndroid Build Coastguard Worker %76 = OpPhi %bool %false %71 %true %74 131*c8dee2aaSAndroid Build Coastguard Worker OpSelectionMerge %78 None 132*c8dee2aaSAndroid Build Coastguard Worker OpBranchConditional %76 %77 %78 133*c8dee2aaSAndroid Build Coastguard Worker %77 = OpLabel 134*c8dee2aaSAndroid Build Coastguard Worker OpBranch %78 135*c8dee2aaSAndroid Build Coastguard Worker %78 = OpLabel 136*c8dee2aaSAndroid Build Coastguard Worker %79 = OpPhi %bool %false %75 %true %77 137*c8dee2aaSAndroid Build Coastguard Worker OpSelectionMerge %81 None 138*c8dee2aaSAndroid Build Coastguard Worker OpBranchConditional %79 %80 %81 139*c8dee2aaSAndroid Build Coastguard Worker %80 = OpLabel 140*c8dee2aaSAndroid Build Coastguard Worker OpBranch %81 141*c8dee2aaSAndroid Build Coastguard Worker %81 = OpLabel 142*c8dee2aaSAndroid Build Coastguard Worker %82 = OpPhi %bool %false %78 %true %80 143*c8dee2aaSAndroid Build Coastguard Worker OpSelectionMerge %86 None 144*c8dee2aaSAndroid Build Coastguard Worker OpBranchConditional %82 %84 %85 145*c8dee2aaSAndroid Build Coastguard Worker %84 = OpLabel 146*c8dee2aaSAndroid Build Coastguard Worker %87 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 147*c8dee2aaSAndroid Build Coastguard Worker %88 = OpLoad %v4float %87 148*c8dee2aaSAndroid Build Coastguard Worker OpStore %83 %88 149*c8dee2aaSAndroid Build Coastguard Worker OpBranch %86 150*c8dee2aaSAndroid Build Coastguard Worker %85 = OpLabel 151*c8dee2aaSAndroid Build Coastguard Worker %89 = OpAccessChain %_ptr_Uniform_v4float %7 %int_2 152*c8dee2aaSAndroid Build Coastguard Worker %91 = OpLoad %v4float %89 153*c8dee2aaSAndroid Build Coastguard Worker OpStore %83 %91 154*c8dee2aaSAndroid Build Coastguard Worker OpBranch %86 155*c8dee2aaSAndroid Build Coastguard Worker %86 = OpLabel 156*c8dee2aaSAndroid Build Coastguard Worker %92 = OpLoad %v4float %83 157*c8dee2aaSAndroid Build Coastguard Worker OpReturnValue %92 158*c8dee2aaSAndroid Build Coastguard Worker OpFunctionEnd 159