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 "colorRed" 9*c8dee2aaSAndroid Build Coastguard Worker OpMemberName %_UniformBuffer 1 "colorGreen" 10*c8dee2aaSAndroid Build Coastguard Worker OpName %_entrypoint_v "_entrypoint_v" 11*c8dee2aaSAndroid Build Coastguard Worker OpName %S "S" 12*c8dee2aaSAndroid Build Coastguard Worker OpMemberName %S 0 "x" 13*c8dee2aaSAndroid Build Coastguard Worker OpMemberName %S 1 "y" 14*c8dee2aaSAndroid Build Coastguard Worker OpName %returns_a_struct_S "returns_a_struct_S" 15*c8dee2aaSAndroid Build Coastguard Worker OpName %s "s" 16*c8dee2aaSAndroid Build Coastguard Worker OpName %constructs_a_struct_S "constructs_a_struct_S" 17*c8dee2aaSAndroid Build Coastguard Worker OpName %accepts_a_struct_fS "accepts_a_struct_fS" 18*c8dee2aaSAndroid Build Coastguard Worker OpName %modifies_a_struct_vS "modifies_a_struct_vS" 19*c8dee2aaSAndroid Build Coastguard Worker OpName %main "main" 20*c8dee2aaSAndroid Build Coastguard Worker OpName %s_0 "s" 21*c8dee2aaSAndroid Build Coastguard Worker OpName %x "x" 22*c8dee2aaSAndroid Build Coastguard Worker OpName %expected "expected" 23*c8dee2aaSAndroid Build Coastguard Worker OpName %Nested "Nested" 24*c8dee2aaSAndroid Build Coastguard Worker OpMemberName %Nested 0 "a" 25*c8dee2aaSAndroid Build Coastguard Worker OpMemberName %Nested 1 "b" 26*c8dee2aaSAndroid Build Coastguard Worker OpName %n1 "n1" 27*c8dee2aaSAndroid Build Coastguard Worker OpName %n2 "n2" 28*c8dee2aaSAndroid Build Coastguard Worker OpName %n3 "n3" 29*c8dee2aaSAndroid Build Coastguard Worker OpName %Compound "Compound" 30*c8dee2aaSAndroid Build Coastguard Worker OpMemberName %Compound 0 "f4" 31*c8dee2aaSAndroid Build Coastguard Worker OpMemberName %Compound 1 "i3" 32*c8dee2aaSAndroid Build Coastguard Worker OpName %c1 "c1" 33*c8dee2aaSAndroid Build Coastguard Worker OpName %c2 "c2" 34*c8dee2aaSAndroid Build Coastguard Worker OpName %c3 "c3" 35*c8dee2aaSAndroid Build Coastguard Worker OpName %valid "valid" 36*c8dee2aaSAndroid Build Coastguard Worker OpDecorate %sk_FragColor RelaxedPrecision 37*c8dee2aaSAndroid Build Coastguard Worker OpDecorate %sk_FragColor Location 0 38*c8dee2aaSAndroid Build Coastguard Worker OpDecorate %sk_FragColor Index 0 39*c8dee2aaSAndroid Build Coastguard Worker OpMemberDecorate %_UniformBuffer 0 Offset 0 40*c8dee2aaSAndroid Build Coastguard Worker OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision 41*c8dee2aaSAndroid Build Coastguard Worker OpMemberDecorate %_UniformBuffer 1 Offset 16 42*c8dee2aaSAndroid Build Coastguard Worker OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision 43*c8dee2aaSAndroid Build Coastguard Worker OpDecorate %_UniformBuffer Block 44*c8dee2aaSAndroid Build Coastguard Worker OpDecorate %11 Binding 0 45*c8dee2aaSAndroid Build Coastguard Worker OpDecorate %11 DescriptorSet 0 46*c8dee2aaSAndroid Build Coastguard Worker OpMemberDecorate %S 0 Offset 0 47*c8dee2aaSAndroid Build Coastguard Worker OpMemberDecorate %S 1 Offset 4 48*c8dee2aaSAndroid Build Coastguard Worker OpDecorate %38 RelaxedPrecision 49*c8dee2aaSAndroid Build Coastguard Worker OpMemberDecorate %Nested 0 Offset 0 50*c8dee2aaSAndroid Build Coastguard Worker OpMemberDecorate %Nested 0 RelaxedPrecision 51*c8dee2aaSAndroid Build Coastguard Worker OpMemberDecorate %Nested 1 Offset 16 52*c8dee2aaSAndroid Build Coastguard Worker OpMemberDecorate %Nested 1 RelaxedPrecision 53*c8dee2aaSAndroid Build Coastguard Worker OpDecorate %82 RelaxedPrecision 54*c8dee2aaSAndroid Build Coastguard Worker OpDecorate %84 RelaxedPrecision 55*c8dee2aaSAndroid Build Coastguard Worker OpDecorate %86 RelaxedPrecision 56*c8dee2aaSAndroid Build Coastguard Worker OpMemberDecorate %Compound 0 Offset 0 57*c8dee2aaSAndroid Build Coastguard Worker OpMemberDecorate %Compound 1 Offset 16 58*c8dee2aaSAndroid Build Coastguard Worker OpDecorate %105 RelaxedPrecision 59*c8dee2aaSAndroid Build Coastguard Worker OpDecorate %106 RelaxedPrecision 60*c8dee2aaSAndroid Build Coastguard Worker OpDecorate %111 RelaxedPrecision 61*c8dee2aaSAndroid Build Coastguard Worker OpDecorate %112 RelaxedPrecision 62*c8dee2aaSAndroid Build Coastguard Worker OpDecorate %135 RelaxedPrecision 63*c8dee2aaSAndroid Build Coastguard Worker OpDecorate %136 RelaxedPrecision 64*c8dee2aaSAndroid Build Coastguard Worker OpDecorate %147 RelaxedPrecision 65*c8dee2aaSAndroid Build Coastguard Worker OpDecorate %157 RelaxedPrecision 66*c8dee2aaSAndroid Build Coastguard Worker OpDecorate %169 RelaxedPrecision 67*c8dee2aaSAndroid Build Coastguard Worker OpDecorate %170 RelaxedPrecision 68*c8dee2aaSAndroid Build Coastguard Worker OpDecorate %193 RelaxedPrecision 69*c8dee2aaSAndroid Build Coastguard Worker OpDecorate %194 RelaxedPrecision 70*c8dee2aaSAndroid Build Coastguard Worker OpDecorate %217 RelaxedPrecision 71*c8dee2aaSAndroid Build Coastguard Worker OpDecorate %255 RelaxedPrecision 72*c8dee2aaSAndroid Build Coastguard Worker OpDecorate %257 RelaxedPrecision 73*c8dee2aaSAndroid Build Coastguard Worker OpDecorate %258 RelaxedPrecision 74*c8dee2aaSAndroid Build Coastguard Worker %float = OpTypeFloat 32 75*c8dee2aaSAndroid Build Coastguard Worker %v4float = OpTypeVector %float 4 76*c8dee2aaSAndroid Build Coastguard Worker%_ptr_Output_v4float = OpTypePointer Output %v4float 77*c8dee2aaSAndroid Build Coastguard Worker%sk_FragColor = OpVariable %_ptr_Output_v4float Output 78*c8dee2aaSAndroid Build Coastguard Worker%_UniformBuffer = OpTypeStruct %v4float %v4float 79*c8dee2aaSAndroid Build Coastguard Worker%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 80*c8dee2aaSAndroid Build Coastguard Worker %11 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 81*c8dee2aaSAndroid Build Coastguard Worker %void = OpTypeVoid 82*c8dee2aaSAndroid Build Coastguard Worker %16 = OpTypeFunction %void 83*c8dee2aaSAndroid Build Coastguard Worker %float_0 = OpConstant %float 0 84*c8dee2aaSAndroid Build Coastguard Worker %v2float = OpTypeVector %float 2 85*c8dee2aaSAndroid Build Coastguard Worker %20 = OpConstantComposite %v2float %float_0 %float_0 86*c8dee2aaSAndroid Build Coastguard Worker%_ptr_Function_v2float = OpTypePointer Function %v2float 87*c8dee2aaSAndroid Build Coastguard Worker %int = OpTypeInt 32 1 88*c8dee2aaSAndroid Build Coastguard Worker %S = OpTypeStruct %float %int 89*c8dee2aaSAndroid Build Coastguard Worker %26 = OpTypeFunction %S 90*c8dee2aaSAndroid Build Coastguard Worker%_ptr_Function_S = OpTypePointer Function %S 91*c8dee2aaSAndroid Build Coastguard Worker %float_1 = OpConstant %float 1 92*c8dee2aaSAndroid Build Coastguard Worker %int_0 = OpConstant %int 0 93*c8dee2aaSAndroid Build Coastguard Worker%_ptr_Function_float = OpTypePointer Function %float 94*c8dee2aaSAndroid Build Coastguard Worker %int_2 = OpConstant %int 2 95*c8dee2aaSAndroid Build Coastguard Worker %int_1 = OpConstant %int 1 96*c8dee2aaSAndroid Build Coastguard Worker%_ptr_Function_int = OpTypePointer Function %int 97*c8dee2aaSAndroid Build Coastguard Worker %float_2 = OpConstant %float 2 98*c8dee2aaSAndroid Build Coastguard Worker %int_3 = OpConstant %int 3 99*c8dee2aaSAndroid Build Coastguard Worker %43 = OpTypeFunction %float %_ptr_Function_S 100*c8dee2aaSAndroid Build Coastguard Worker %52 = OpTypeFunction %void %_ptr_Function_S 101*c8dee2aaSAndroid Build Coastguard Worker %61 = OpTypeFunction %v4float %_ptr_Function_v2float 102*c8dee2aaSAndroid Build Coastguard Worker %Nested = OpTypeStruct %S %S 103*c8dee2aaSAndroid Build Coastguard Worker%_ptr_Function_Nested = OpTypePointer Function %Nested 104*c8dee2aaSAndroid Build Coastguard Worker %v3int = OpTypeVector %int 3 105*c8dee2aaSAndroid Build Coastguard Worker %Compound = OpTypeStruct %v4float %v3int 106*c8dee2aaSAndroid Build Coastguard Worker%_ptr_Function_Compound = OpTypePointer Function %Compound 107*c8dee2aaSAndroid Build Coastguard Worker %float_3 = OpConstant %float 3 108*c8dee2aaSAndroid Build Coastguard Worker %float_4 = OpConstant %float 4 109*c8dee2aaSAndroid Build Coastguard Worker %96 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4 110*c8dee2aaSAndroid Build Coastguard Worker %int_5 = OpConstant %int 5 111*c8dee2aaSAndroid Build Coastguard Worker %int_6 = OpConstant %int 6 112*c8dee2aaSAndroid Build Coastguard Worker %int_7 = OpConstant %int 7 113*c8dee2aaSAndroid Build Coastguard Worker %100 = OpConstantComposite %v3int %int_5 %int_6 %int_7 114*c8dee2aaSAndroid Build Coastguard Worker%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 115*c8dee2aaSAndroid Build Coastguard Worker %bool = OpTypeBool 116*c8dee2aaSAndroid Build Coastguard Worker%_ptr_Function_bool = OpTypePointer Function %bool 117*c8dee2aaSAndroid Build Coastguard Worker %false = OpConstantFalse %bool 118*c8dee2aaSAndroid Build Coastguard Worker %v4bool = OpTypeVector %bool 4 119*c8dee2aaSAndroid Build Coastguard Worker %true = OpConstantTrue %bool 120*c8dee2aaSAndroid Build Coastguard Worker%_ptr_Function_v4float = OpTypePointer Function %v4float 121*c8dee2aaSAndroid Build Coastguard Worker%_entrypoint_v = OpFunction %void None %16 122*c8dee2aaSAndroid Build Coastguard Worker %17 = OpLabel 123*c8dee2aaSAndroid Build Coastguard Worker %21 = OpVariable %_ptr_Function_v2float Function 124*c8dee2aaSAndroid Build Coastguard Worker OpStore %21 %20 125*c8dee2aaSAndroid Build Coastguard Worker %23 = OpFunctionCall %v4float %main %21 126*c8dee2aaSAndroid Build Coastguard Worker OpStore %sk_FragColor %23 127*c8dee2aaSAndroid Build Coastguard Worker OpReturn 128*c8dee2aaSAndroid Build Coastguard Worker OpFunctionEnd 129*c8dee2aaSAndroid Build Coastguard Worker%returns_a_struct_S = OpFunction %S None %26 130*c8dee2aaSAndroid Build Coastguard Worker %27 = OpLabel 131*c8dee2aaSAndroid Build Coastguard Worker %s = OpVariable %_ptr_Function_S Function 132*c8dee2aaSAndroid Build Coastguard Worker %32 = OpAccessChain %_ptr_Function_float %s %int_0 133*c8dee2aaSAndroid Build Coastguard Worker OpStore %32 %float_1 134*c8dee2aaSAndroid Build Coastguard Worker %36 = OpAccessChain %_ptr_Function_int %s %int_1 135*c8dee2aaSAndroid Build Coastguard Worker OpStore %36 %int_2 136*c8dee2aaSAndroid Build Coastguard Worker %38 = OpLoad %S %s 137*c8dee2aaSAndroid Build Coastguard Worker OpReturnValue %38 138*c8dee2aaSAndroid Build Coastguard Worker OpFunctionEnd 139*c8dee2aaSAndroid Build Coastguard Worker%constructs_a_struct_S = OpFunction %S None %26 140*c8dee2aaSAndroid Build Coastguard Worker %39 = OpLabel 141*c8dee2aaSAndroid Build Coastguard Worker %42 = OpCompositeConstruct %S %float_2 %int_3 142*c8dee2aaSAndroid Build Coastguard Worker OpReturnValue %42 143*c8dee2aaSAndroid Build Coastguard Worker OpFunctionEnd 144*c8dee2aaSAndroid Build Coastguard Worker%accepts_a_struct_fS = OpFunction %float None %43 145*c8dee2aaSAndroid Build Coastguard Worker %44 = OpFunctionParameter %_ptr_Function_S 146*c8dee2aaSAndroid Build Coastguard Worker %45 = OpLabel 147*c8dee2aaSAndroid Build Coastguard Worker %46 = OpAccessChain %_ptr_Function_float %44 %int_0 148*c8dee2aaSAndroid Build Coastguard Worker %47 = OpLoad %float %46 149*c8dee2aaSAndroid Build Coastguard Worker %48 = OpAccessChain %_ptr_Function_int %44 %int_1 150*c8dee2aaSAndroid Build Coastguard Worker %49 = OpLoad %int %48 151*c8dee2aaSAndroid Build Coastguard Worker %50 = OpConvertSToF %float %49 152*c8dee2aaSAndroid Build Coastguard Worker %51 = OpFAdd %float %47 %50 153*c8dee2aaSAndroid Build Coastguard Worker OpReturnValue %51 154*c8dee2aaSAndroid Build Coastguard Worker OpFunctionEnd 155*c8dee2aaSAndroid Build Coastguard Worker%modifies_a_struct_vS = OpFunction %void None %52 156*c8dee2aaSAndroid Build Coastguard Worker %53 = OpFunctionParameter %_ptr_Function_S 157*c8dee2aaSAndroid Build Coastguard Worker %54 = OpLabel 158*c8dee2aaSAndroid Build Coastguard Worker %55 = OpAccessChain %_ptr_Function_float %53 %int_0 159*c8dee2aaSAndroid Build Coastguard Worker %56 = OpLoad %float %55 160*c8dee2aaSAndroid Build Coastguard Worker %57 = OpFAdd %float %56 %float_1 161*c8dee2aaSAndroid Build Coastguard Worker OpStore %55 %57 162*c8dee2aaSAndroid Build Coastguard Worker %58 = OpAccessChain %_ptr_Function_int %53 %int_1 163*c8dee2aaSAndroid Build Coastguard Worker %59 = OpLoad %int %58 164*c8dee2aaSAndroid Build Coastguard Worker %60 = OpIAdd %int %59 %int_1 165*c8dee2aaSAndroid Build Coastguard Worker OpStore %58 %60 166*c8dee2aaSAndroid Build Coastguard Worker OpReturn 167*c8dee2aaSAndroid Build Coastguard Worker OpFunctionEnd 168*c8dee2aaSAndroid Build Coastguard Worker %main = OpFunction %v4float None %61 169*c8dee2aaSAndroid Build Coastguard Worker %62 = OpFunctionParameter %_ptr_Function_v2float 170*c8dee2aaSAndroid Build Coastguard Worker %63 = OpLabel 171*c8dee2aaSAndroid Build Coastguard Worker %s_0 = OpVariable %_ptr_Function_S Function 172*c8dee2aaSAndroid Build Coastguard Worker %x = OpVariable %_ptr_Function_float Function 173*c8dee2aaSAndroid Build Coastguard Worker %67 = OpVariable %_ptr_Function_S Function 174*c8dee2aaSAndroid Build Coastguard Worker %69 = OpVariable %_ptr_Function_S Function 175*c8dee2aaSAndroid Build Coastguard Worker %expected = OpVariable %_ptr_Function_S Function 176*c8dee2aaSAndroid Build Coastguard Worker %n1 = OpVariable %_ptr_Function_Nested Function 177*c8dee2aaSAndroid Build Coastguard Worker %n2 = OpVariable %_ptr_Function_Nested Function 178*c8dee2aaSAndroid Build Coastguard Worker %n3 = OpVariable %_ptr_Function_Nested Function 179*c8dee2aaSAndroid Build Coastguard Worker %87 = OpVariable %_ptr_Function_S Function 180*c8dee2aaSAndroid Build Coastguard Worker %c1 = OpVariable %_ptr_Function_Compound Function 181*c8dee2aaSAndroid Build Coastguard Worker %c2 = OpVariable %_ptr_Function_Compound Function 182*c8dee2aaSAndroid Build Coastguard Worker %c3 = OpVariable %_ptr_Function_Compound Function 183*c8dee2aaSAndroid Build Coastguard Worker %valid = OpVariable %_ptr_Function_bool Function 184*c8dee2aaSAndroid Build Coastguard Worker %249 = OpVariable %_ptr_Function_v4float Function 185*c8dee2aaSAndroid Build Coastguard Worker %65 = OpFunctionCall %S %returns_a_struct_S 186*c8dee2aaSAndroid Build Coastguard Worker OpStore %s_0 %65 187*c8dee2aaSAndroid Build Coastguard Worker OpStore %67 %65 188*c8dee2aaSAndroid Build Coastguard Worker %68 = OpFunctionCall %float %accepts_a_struct_fS %67 189*c8dee2aaSAndroid Build Coastguard Worker OpStore %x %68 190*c8dee2aaSAndroid Build Coastguard Worker OpStore %69 %65 191*c8dee2aaSAndroid Build Coastguard Worker %70 = OpFunctionCall %void %modifies_a_struct_vS %69 192*c8dee2aaSAndroid Build Coastguard Worker %71 = OpLoad %S %69 193*c8dee2aaSAndroid Build Coastguard Worker OpStore %s_0 %71 194*c8dee2aaSAndroid Build Coastguard Worker %73 = OpFunctionCall %S %constructs_a_struct_S 195*c8dee2aaSAndroid Build Coastguard Worker OpStore %expected %73 196*c8dee2aaSAndroid Build Coastguard Worker %79 = OpFunctionCall %S %returns_a_struct_S 197*c8dee2aaSAndroid Build Coastguard Worker %80 = OpAccessChain %_ptr_Function_S %n1 %int_0 198*c8dee2aaSAndroid Build Coastguard Worker OpStore %80 %79 199*c8dee2aaSAndroid Build Coastguard Worker %81 = OpAccessChain %_ptr_Function_S %n1 %int_0 200*c8dee2aaSAndroid Build Coastguard Worker %82 = OpLoad %S %81 201*c8dee2aaSAndroid Build Coastguard Worker %83 = OpAccessChain %_ptr_Function_S %n1 %int_1 202*c8dee2aaSAndroid Build Coastguard Worker OpStore %83 %82 203*c8dee2aaSAndroid Build Coastguard Worker %84 = OpLoad %Nested %n1 204*c8dee2aaSAndroid Build Coastguard Worker OpStore %n2 %84 205*c8dee2aaSAndroid Build Coastguard Worker OpStore %n3 %84 206*c8dee2aaSAndroid Build Coastguard Worker %85 = OpAccessChain %_ptr_Function_S %n3 %int_1 207*c8dee2aaSAndroid Build Coastguard Worker %86 = OpLoad %S %85 208*c8dee2aaSAndroid Build Coastguard Worker OpStore %87 %86 209*c8dee2aaSAndroid Build Coastguard Worker %88 = OpFunctionCall %void %modifies_a_struct_vS %87 210*c8dee2aaSAndroid Build Coastguard Worker %89 = OpLoad %S %87 211*c8dee2aaSAndroid Build Coastguard Worker OpStore %85 %89 212*c8dee2aaSAndroid Build Coastguard Worker %101 = OpCompositeConstruct %Compound %96 %100 213*c8dee2aaSAndroid Build Coastguard Worker OpStore %c1 %101 214*c8dee2aaSAndroid Build Coastguard Worker %103 = OpAccessChain %_ptr_Uniform_v4float %11 %int_1 215*c8dee2aaSAndroid Build Coastguard Worker %105 = OpLoad %v4float %103 216*c8dee2aaSAndroid Build Coastguard Worker %106 = OpCompositeExtract %float %105 1 217*c8dee2aaSAndroid Build Coastguard Worker %107 = OpCompositeConstruct %v4float %106 %float_2 %float_3 %float_4 218*c8dee2aaSAndroid Build Coastguard Worker %108 = OpCompositeConstruct %Compound %107 %100 219*c8dee2aaSAndroid Build Coastguard Worker OpStore %c2 %108 220*c8dee2aaSAndroid Build Coastguard Worker %110 = OpAccessChain %_ptr_Uniform_v4float %11 %int_1 221*c8dee2aaSAndroid Build Coastguard Worker %111 = OpLoad %v4float %110 222*c8dee2aaSAndroid Build Coastguard Worker %112 = OpCompositeExtract %float %111 0 223*c8dee2aaSAndroid Build Coastguard Worker %113 = OpCompositeConstruct %v4float %112 %float_2 %float_3 %float_4 224*c8dee2aaSAndroid Build Coastguard Worker %114 = OpCompositeConstruct %Compound %113 %100 225*c8dee2aaSAndroid Build Coastguard Worker OpStore %c3 %114 226*c8dee2aaSAndroid Build Coastguard Worker %119 = OpLoad %float %x 227*c8dee2aaSAndroid Build Coastguard Worker %120 = OpFOrdEqual %bool %119 %float_3 228*c8dee2aaSAndroid Build Coastguard Worker OpSelectionMerge %122 None 229*c8dee2aaSAndroid Build Coastguard Worker OpBranchConditional %120 %121 %122 230*c8dee2aaSAndroid Build Coastguard Worker %121 = OpLabel 231*c8dee2aaSAndroid Build Coastguard Worker %123 = OpAccessChain %_ptr_Function_float %s_0 %int_0 232*c8dee2aaSAndroid Build Coastguard Worker %124 = OpLoad %float %123 233*c8dee2aaSAndroid Build Coastguard Worker %125 = OpFOrdEqual %bool %124 %float_2 234*c8dee2aaSAndroid Build Coastguard Worker OpBranch %122 235*c8dee2aaSAndroid Build Coastguard Worker %122 = OpLabel 236*c8dee2aaSAndroid Build Coastguard Worker %126 = OpPhi %bool %false %63 %125 %121 237*c8dee2aaSAndroid Build Coastguard Worker OpSelectionMerge %128 None 238*c8dee2aaSAndroid Build Coastguard Worker OpBranchConditional %126 %127 %128 239*c8dee2aaSAndroid Build Coastguard Worker %127 = OpLabel 240*c8dee2aaSAndroid Build Coastguard Worker %129 = OpAccessChain %_ptr_Function_int %s_0 %int_1 241*c8dee2aaSAndroid Build Coastguard Worker %130 = OpLoad %int %129 242*c8dee2aaSAndroid Build Coastguard Worker %131 = OpIEqual %bool %130 %int_3 243*c8dee2aaSAndroid Build Coastguard Worker OpBranch %128 244*c8dee2aaSAndroid Build Coastguard Worker %128 = OpLabel 245*c8dee2aaSAndroid Build Coastguard Worker %132 = OpPhi %bool %false %122 %131 %127 246*c8dee2aaSAndroid Build Coastguard Worker OpSelectionMerge %134 None 247*c8dee2aaSAndroid Build Coastguard Worker OpBranchConditional %132 %133 %134 248*c8dee2aaSAndroid Build Coastguard Worker %133 = OpLabel 249*c8dee2aaSAndroid Build Coastguard Worker %135 = OpLoad %S %s_0 250*c8dee2aaSAndroid Build Coastguard Worker %136 = OpLoad %S %expected 251*c8dee2aaSAndroid Build Coastguard Worker %137 = OpCompositeExtract %float %135 0 252*c8dee2aaSAndroid Build Coastguard Worker %138 = OpCompositeExtract %float %136 0 253*c8dee2aaSAndroid Build Coastguard Worker %139 = OpFOrdEqual %bool %137 %138 254*c8dee2aaSAndroid Build Coastguard Worker %140 = OpCompositeExtract %int %135 1 255*c8dee2aaSAndroid Build Coastguard Worker %141 = OpCompositeExtract %int %136 1 256*c8dee2aaSAndroid Build Coastguard Worker %142 = OpIEqual %bool %140 %141 257*c8dee2aaSAndroid Build Coastguard Worker %143 = OpLogicalAnd %bool %142 %139 258*c8dee2aaSAndroid Build Coastguard Worker OpBranch %134 259*c8dee2aaSAndroid Build Coastguard Worker %134 = OpLabel 260*c8dee2aaSAndroid Build Coastguard Worker %144 = OpPhi %bool %false %128 %143 %133 261*c8dee2aaSAndroid Build Coastguard Worker OpSelectionMerge %146 None 262*c8dee2aaSAndroid Build Coastguard Worker OpBranchConditional %144 %145 %146 263*c8dee2aaSAndroid Build Coastguard Worker %145 = OpLabel 264*c8dee2aaSAndroid Build Coastguard Worker %147 = OpLoad %S %s_0 265*c8dee2aaSAndroid Build Coastguard Worker %148 = OpCompositeConstruct %S %float_2 %int_3 266*c8dee2aaSAndroid Build Coastguard Worker %149 = OpCompositeExtract %float %147 0 267*c8dee2aaSAndroid Build Coastguard Worker %150 = OpFOrdEqual %bool %149 %float_2 268*c8dee2aaSAndroid Build Coastguard Worker %151 = OpCompositeExtract %int %147 1 269*c8dee2aaSAndroid Build Coastguard Worker %152 = OpIEqual %bool %151 %int_3 270*c8dee2aaSAndroid Build Coastguard Worker %153 = OpLogicalAnd %bool %152 %150 271*c8dee2aaSAndroid Build Coastguard Worker OpBranch %146 272*c8dee2aaSAndroid Build Coastguard Worker %146 = OpLabel 273*c8dee2aaSAndroid Build Coastguard Worker %154 = OpPhi %bool %false %134 %153 %145 274*c8dee2aaSAndroid Build Coastguard Worker OpSelectionMerge %156 None 275*c8dee2aaSAndroid Build Coastguard Worker OpBranchConditional %154 %155 %156 276*c8dee2aaSAndroid Build Coastguard Worker %155 = OpLabel 277*c8dee2aaSAndroid Build Coastguard Worker %157 = OpLoad %S %s_0 278*c8dee2aaSAndroid Build Coastguard Worker %158 = OpFunctionCall %S %returns_a_struct_S 279*c8dee2aaSAndroid Build Coastguard Worker %159 = OpCompositeExtract %float %157 0 280*c8dee2aaSAndroid Build Coastguard Worker %160 = OpCompositeExtract %float %158 0 281*c8dee2aaSAndroid Build Coastguard Worker %161 = OpFUnordNotEqual %bool %159 %160 282*c8dee2aaSAndroid Build Coastguard Worker %162 = OpCompositeExtract %int %157 1 283*c8dee2aaSAndroid Build Coastguard Worker %163 = OpCompositeExtract %int %158 1 284*c8dee2aaSAndroid Build Coastguard Worker %164 = OpINotEqual %bool %162 %163 285*c8dee2aaSAndroid Build Coastguard Worker %165 = OpLogicalOr %bool %164 %161 286*c8dee2aaSAndroid Build Coastguard Worker OpBranch %156 287*c8dee2aaSAndroid Build Coastguard Worker %156 = OpLabel 288*c8dee2aaSAndroid Build Coastguard Worker %166 = OpPhi %bool %false %146 %165 %155 289*c8dee2aaSAndroid Build Coastguard Worker OpSelectionMerge %168 None 290*c8dee2aaSAndroid Build Coastguard Worker OpBranchConditional %166 %167 %168 291*c8dee2aaSAndroid Build Coastguard Worker %167 = OpLabel 292*c8dee2aaSAndroid Build Coastguard Worker %169 = OpLoad %Nested %n1 293*c8dee2aaSAndroid Build Coastguard Worker %170 = OpLoad %Nested %n2 294*c8dee2aaSAndroid Build Coastguard Worker %171 = OpCompositeExtract %S %169 0 295*c8dee2aaSAndroid Build Coastguard Worker %172 = OpCompositeExtract %S %170 0 296*c8dee2aaSAndroid Build Coastguard Worker %173 = OpCompositeExtract %float %171 0 297*c8dee2aaSAndroid Build Coastguard Worker %174 = OpCompositeExtract %float %172 0 298*c8dee2aaSAndroid Build Coastguard Worker %175 = OpFOrdEqual %bool %173 %174 299*c8dee2aaSAndroid Build Coastguard Worker %176 = OpCompositeExtract %int %171 1 300*c8dee2aaSAndroid Build Coastguard Worker %177 = OpCompositeExtract %int %172 1 301*c8dee2aaSAndroid Build Coastguard Worker %178 = OpIEqual %bool %176 %177 302*c8dee2aaSAndroid Build Coastguard Worker %179 = OpLogicalAnd %bool %178 %175 303*c8dee2aaSAndroid Build Coastguard Worker %180 = OpCompositeExtract %S %169 1 304*c8dee2aaSAndroid Build Coastguard Worker %181 = OpCompositeExtract %S %170 1 305*c8dee2aaSAndroid Build Coastguard Worker %182 = OpCompositeExtract %float %180 0 306*c8dee2aaSAndroid Build Coastguard Worker %183 = OpCompositeExtract %float %181 0 307*c8dee2aaSAndroid Build Coastguard Worker %184 = OpFOrdEqual %bool %182 %183 308*c8dee2aaSAndroid Build Coastguard Worker %185 = OpCompositeExtract %int %180 1 309*c8dee2aaSAndroid Build Coastguard Worker %186 = OpCompositeExtract %int %181 1 310*c8dee2aaSAndroid Build Coastguard Worker %187 = OpIEqual %bool %185 %186 311*c8dee2aaSAndroid Build Coastguard Worker %188 = OpLogicalAnd %bool %187 %184 312*c8dee2aaSAndroid Build Coastguard Worker %189 = OpLogicalAnd %bool %188 %179 313*c8dee2aaSAndroid Build Coastguard Worker OpBranch %168 314*c8dee2aaSAndroid Build Coastguard Worker %168 = OpLabel 315*c8dee2aaSAndroid Build Coastguard Worker %190 = OpPhi %bool %false %156 %189 %167 316*c8dee2aaSAndroid Build Coastguard Worker OpSelectionMerge %192 None 317*c8dee2aaSAndroid Build Coastguard Worker OpBranchConditional %190 %191 %192 318*c8dee2aaSAndroid Build Coastguard Worker %191 = OpLabel 319*c8dee2aaSAndroid Build Coastguard Worker %193 = OpLoad %Nested %n1 320*c8dee2aaSAndroid Build Coastguard Worker %194 = OpLoad %Nested %n3 321*c8dee2aaSAndroid Build Coastguard Worker %195 = OpCompositeExtract %S %193 0 322*c8dee2aaSAndroid Build Coastguard Worker %196 = OpCompositeExtract %S %194 0 323*c8dee2aaSAndroid Build Coastguard Worker %197 = OpCompositeExtract %float %195 0 324*c8dee2aaSAndroid Build Coastguard Worker %198 = OpCompositeExtract %float %196 0 325*c8dee2aaSAndroid Build Coastguard Worker %199 = OpFUnordNotEqual %bool %197 %198 326*c8dee2aaSAndroid Build Coastguard Worker %200 = OpCompositeExtract %int %195 1 327*c8dee2aaSAndroid Build Coastguard Worker %201 = OpCompositeExtract %int %196 1 328*c8dee2aaSAndroid Build Coastguard Worker %202 = OpINotEqual %bool %200 %201 329*c8dee2aaSAndroid Build Coastguard Worker %203 = OpLogicalOr %bool %202 %199 330*c8dee2aaSAndroid Build Coastguard Worker %204 = OpCompositeExtract %S %193 1 331*c8dee2aaSAndroid Build Coastguard Worker %205 = OpCompositeExtract %S %194 1 332*c8dee2aaSAndroid Build Coastguard Worker %206 = OpCompositeExtract %float %204 0 333*c8dee2aaSAndroid Build Coastguard Worker %207 = OpCompositeExtract %float %205 0 334*c8dee2aaSAndroid Build Coastguard Worker %208 = OpFUnordNotEqual %bool %206 %207 335*c8dee2aaSAndroid Build Coastguard Worker %209 = OpCompositeExtract %int %204 1 336*c8dee2aaSAndroid Build Coastguard Worker %210 = OpCompositeExtract %int %205 1 337*c8dee2aaSAndroid Build Coastguard Worker %211 = OpINotEqual %bool %209 %210 338*c8dee2aaSAndroid Build Coastguard Worker %212 = OpLogicalOr %bool %211 %208 339*c8dee2aaSAndroid Build Coastguard Worker %213 = OpLogicalOr %bool %212 %203 340*c8dee2aaSAndroid Build Coastguard Worker OpBranch %192 341*c8dee2aaSAndroid Build Coastguard Worker %192 = OpLabel 342*c8dee2aaSAndroid Build Coastguard Worker %214 = OpPhi %bool %false %168 %213 %191 343*c8dee2aaSAndroid Build Coastguard Worker OpSelectionMerge %216 None 344*c8dee2aaSAndroid Build Coastguard Worker OpBranchConditional %214 %215 %216 345*c8dee2aaSAndroid Build Coastguard Worker %215 = OpLabel 346*c8dee2aaSAndroid Build Coastguard Worker %217 = OpLoad %Nested %n3 347*c8dee2aaSAndroid Build Coastguard Worker %218 = OpCompositeConstruct %S %float_1 %int_2 348*c8dee2aaSAndroid Build Coastguard Worker %219 = OpCompositeConstruct %S %float_2 %int_3 349*c8dee2aaSAndroid Build Coastguard Worker %220 = OpCompositeConstruct %Nested %218 %219 350*c8dee2aaSAndroid Build Coastguard Worker %221 = OpCompositeExtract %S %217 0 351*c8dee2aaSAndroid Build Coastguard Worker %222 = OpCompositeExtract %float %221 0 352*c8dee2aaSAndroid Build Coastguard Worker %223 = OpFOrdEqual %bool %222 %float_1 353*c8dee2aaSAndroid Build Coastguard Worker %224 = OpCompositeExtract %int %221 1 354*c8dee2aaSAndroid Build Coastguard Worker %225 = OpIEqual %bool %224 %int_2 355*c8dee2aaSAndroid Build Coastguard Worker %226 = OpLogicalAnd %bool %225 %223 356*c8dee2aaSAndroid Build Coastguard Worker %227 = OpCompositeExtract %S %217 1 357*c8dee2aaSAndroid Build Coastguard Worker %228 = OpCompositeExtract %float %227 0 358*c8dee2aaSAndroid Build Coastguard Worker %229 = OpFOrdEqual %bool %228 %float_2 359*c8dee2aaSAndroid Build Coastguard Worker %230 = OpCompositeExtract %int %227 1 360*c8dee2aaSAndroid Build Coastguard Worker %231 = OpIEqual %bool %230 %int_3 361*c8dee2aaSAndroid Build Coastguard Worker %232 = OpLogicalAnd %bool %231 %229 362*c8dee2aaSAndroid Build Coastguard Worker %233 = OpLogicalAnd %bool %232 %226 363*c8dee2aaSAndroid Build Coastguard Worker OpBranch %216 364*c8dee2aaSAndroid Build Coastguard Worker %216 = OpLabel 365*c8dee2aaSAndroid Build Coastguard Worker %234 = OpPhi %bool %false %192 %233 %215 366*c8dee2aaSAndroid Build Coastguard Worker OpSelectionMerge %236 None 367*c8dee2aaSAndroid Build Coastguard Worker OpBranchConditional %234 %235 %236 368*c8dee2aaSAndroid Build Coastguard Worker %235 = OpLabel 369*c8dee2aaSAndroid Build Coastguard Worker %237 = OpFOrdEqual %v4bool %96 %107 370*c8dee2aaSAndroid Build Coastguard Worker %239 = OpAll %bool %237 371*c8dee2aaSAndroid Build Coastguard Worker %241 = OpLogicalAnd %bool %true %239 372*c8dee2aaSAndroid Build Coastguard Worker OpBranch %236 373*c8dee2aaSAndroid Build Coastguard Worker %236 = OpLabel 374*c8dee2aaSAndroid Build Coastguard Worker %242 = OpPhi %bool %false %216 %241 %235 375*c8dee2aaSAndroid Build Coastguard Worker OpSelectionMerge %244 None 376*c8dee2aaSAndroid Build Coastguard Worker OpBranchConditional %242 %243 %244 377*c8dee2aaSAndroid Build Coastguard Worker %243 = OpLabel 378*c8dee2aaSAndroid Build Coastguard Worker %245 = OpFUnordNotEqual %v4bool %107 %113 379*c8dee2aaSAndroid Build Coastguard Worker %246 = OpAny %bool %245 380*c8dee2aaSAndroid Build Coastguard Worker %247 = OpLogicalOr %bool %false %246 381*c8dee2aaSAndroid Build Coastguard Worker OpBranch %244 382*c8dee2aaSAndroid Build Coastguard Worker %244 = OpLabel 383*c8dee2aaSAndroid Build Coastguard Worker %248 = OpPhi %bool %false %236 %247 %243 384*c8dee2aaSAndroid Build Coastguard Worker OpStore %valid %248 385*c8dee2aaSAndroid Build Coastguard Worker OpSelectionMerge %253 None 386*c8dee2aaSAndroid Build Coastguard Worker OpBranchConditional %248 %251 %252 387*c8dee2aaSAndroid Build Coastguard Worker %251 = OpLabel 388*c8dee2aaSAndroid Build Coastguard Worker %254 = OpAccessChain %_ptr_Uniform_v4float %11 %int_1 389*c8dee2aaSAndroid Build Coastguard Worker %255 = OpLoad %v4float %254 390*c8dee2aaSAndroid Build Coastguard Worker OpStore %249 %255 391*c8dee2aaSAndroid Build Coastguard Worker OpBranch %253 392*c8dee2aaSAndroid Build Coastguard Worker %252 = OpLabel 393*c8dee2aaSAndroid Build Coastguard Worker %256 = OpAccessChain %_ptr_Uniform_v4float %11 %int_0 394*c8dee2aaSAndroid Build Coastguard Worker %257 = OpLoad %v4float %256 395*c8dee2aaSAndroid Build Coastguard Worker OpStore %249 %257 396*c8dee2aaSAndroid Build Coastguard Worker OpBranch %253 397*c8dee2aaSAndroid Build Coastguard Worker %253 = OpLabel 398*c8dee2aaSAndroid Build Coastguard Worker %258 = OpLoad %v4float %249 399*c8dee2aaSAndroid Build Coastguard Worker OpReturnValue %258 400*c8dee2aaSAndroid Build Coastguard Worker OpFunctionEnd 401