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 %_UniformBuffer "_UniformBuffer" 8 OpMemberName %_UniformBuffer 0 "testInputs" 9 OpMemberName %_UniformBuffer 1 "colorGreen" 10 OpMemberName %_UniformBuffer 2 "colorRed" 11 OpName %_entrypoint_v "_entrypoint_v" 12 OpName %main "main" 13 OpName %expected "expected" 14 OpDecorate %sk_FragColor RelaxedPrecision 15 OpDecorate %sk_FragColor Location 0 16 OpDecorate %sk_FragColor Index 0 17 OpMemberDecorate %_UniformBuffer 0 Offset 0 18 OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision 19 OpMemberDecorate %_UniformBuffer 1 Offset 16 20 OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision 21 OpMemberDecorate %_UniformBuffer 2 Offset 32 22 OpMemberDecorate %_UniformBuffer 2 RelaxedPrecision 23 OpDecorate %_UniformBuffer Block 24 OpDecorate %7 Binding 0 25 OpDecorate %7 DescriptorSet 0 26 OpDecorate %expected RelaxedPrecision 27 OpDecorate %30 RelaxedPrecision 28 OpDecorate %35 RelaxedPrecision 29 OpDecorate %36 RelaxedPrecision 30 OpDecorate %40 RelaxedPrecision 31 OpDecorate %42 RelaxedPrecision 32 OpDecorate %43 RelaxedPrecision 33 OpDecorate %44 RelaxedPrecision 34 OpDecorate %51 RelaxedPrecision 35 OpDecorate %53 RelaxedPrecision 36 OpDecorate %54 RelaxedPrecision 37 OpDecorate %56 RelaxedPrecision 38 OpDecorate %63 RelaxedPrecision 39 OpDecorate %65 RelaxedPrecision 40 OpDecorate %77 RelaxedPrecision 41 OpDecorate %84 RelaxedPrecision 42 OpDecorate %97 RelaxedPrecision 43 OpDecorate %100 RelaxedPrecision 44 OpDecorate %101 RelaxedPrecision 45 %float = OpTypeFloat 32 46 %v4float = OpTypeVector %float 4 47%_ptr_Output_v4float = OpTypePointer Output %v4float 48%sk_FragColor = OpVariable %_ptr_Output_v4float Output 49%_UniformBuffer = OpTypeStruct %v4float %v4float %v4float 50%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 51 %7 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 52 %void = OpTypeVoid 53 %12 = OpTypeFunction %void 54 %float_0 = OpConstant %float 0 55 %v2float = OpTypeVector %float 2 56 %16 = OpConstantComposite %v2float %float_0 %float_0 57%_ptr_Function_v2float = OpTypePointer Function %v2float 58 %20 = OpTypeFunction %v4float %_ptr_Function_v2float 59%_ptr_Function_v4float = OpTypePointer Function %v4float 60 %float_n2 = OpConstant %float -2 61 %float_2 = OpConstant %float 2 62 %27 = OpConstantComposite %v4float %float_n2 %float_0 %float_0 %float_2 63 %bool = OpTypeBool 64 %false = OpConstantFalse %bool 65%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 66 %int = OpTypeInt 32 1 67 %int_0 = OpConstant %int 0 68 %v2bool = OpTypeVector %bool 2 69 %v3float = OpTypeVector %float 3 70 %v3bool = OpTypeVector %bool 3 71 %v4bool = OpTypeVector %bool 4 72 %true = OpConstantTrue %bool 73 %76 = OpConstantComposite %v2float %float_n2 %float_0 74 %83 = OpConstantComposite %v3float %float_n2 %float_0 %float_0 75 %int_1 = OpConstant %int 1 76 %int_2 = OpConstant %int 2 77%_entrypoint_v = OpFunction %void None %12 78 %13 = OpLabel 79 %17 = OpVariable %_ptr_Function_v2float Function 80 OpStore %17 %16 81 %19 = OpFunctionCall %v4float %main %17 82 OpStore %sk_FragColor %19 83 OpReturn 84 OpFunctionEnd 85 %main = OpFunction %v4float None %20 86 %21 = OpFunctionParameter %_ptr_Function_v2float 87 %22 = OpLabel 88 %expected = OpVariable %_ptr_Function_v4float Function 89 %91 = OpVariable %_ptr_Function_v4float Function 90 OpStore %expected %27 91 %31 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 92 %35 = OpLoad %v4float %31 93 %36 = OpCompositeExtract %float %35 0 94 %30 = OpExtInst %float %1 Floor %36 95 %37 = OpFOrdEqual %bool %30 %float_n2 96 OpSelectionMerge %39 None 97 OpBranchConditional %37 %38 %39 98 %38 = OpLabel 99 %41 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 100 %42 = OpLoad %v4float %41 101 %43 = OpVectorShuffle %v2float %42 %42 0 1 102 %40 = OpExtInst %v2float %1 Floor %43 103 %44 = OpVectorShuffle %v2float %27 %27 0 1 104 %45 = OpFOrdEqual %v2bool %40 %44 105 %47 = OpAll %bool %45 106 OpBranch %39 107 %39 = OpLabel 108 %48 = OpPhi %bool %false %22 %47 %38 109 OpSelectionMerge %50 None 110 OpBranchConditional %48 %49 %50 111 %49 = OpLabel 112 %52 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 113 %53 = OpLoad %v4float %52 114 %54 = OpVectorShuffle %v3float %53 %53 0 1 2 115 %51 = OpExtInst %v3float %1 Floor %54 116 %56 = OpVectorShuffle %v3float %27 %27 0 1 2 117 %57 = OpFOrdEqual %v3bool %51 %56 118 %59 = OpAll %bool %57 119 OpBranch %50 120 %50 = OpLabel 121 %60 = OpPhi %bool %false %39 %59 %49 122 OpSelectionMerge %62 None 123 OpBranchConditional %60 %61 %62 124 %61 = OpLabel 125 %64 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 126 %65 = OpLoad %v4float %64 127 %63 = OpExtInst %v4float %1 Floor %65 128 %66 = OpFOrdEqual %v4bool %63 %27 129 %68 = OpAll %bool %66 130 OpBranch %62 131 %62 = OpLabel 132 %69 = OpPhi %bool %false %50 %68 %61 133 OpSelectionMerge %71 None 134 OpBranchConditional %69 %70 %71 135 %70 = OpLabel 136 OpBranch %71 137 %71 = OpLabel 138 %73 = OpPhi %bool %false %62 %true %70 139 OpSelectionMerge %75 None 140 OpBranchConditional %73 %74 %75 141 %74 = OpLabel 142 %77 = OpVectorShuffle %v2float %27 %27 0 1 143 %78 = OpFOrdEqual %v2bool %76 %77 144 %79 = OpAll %bool %78 145 OpBranch %75 146 %75 = OpLabel 147 %80 = OpPhi %bool %false %71 %79 %74 148 OpSelectionMerge %82 None 149 OpBranchConditional %80 %81 %82 150 %81 = OpLabel 151 %84 = OpVectorShuffle %v3float %27 %27 0 1 2 152 %85 = OpFOrdEqual %v3bool %83 %84 153 %86 = OpAll %bool %85 154 OpBranch %82 155 %82 = OpLabel 156 %87 = OpPhi %bool %false %75 %86 %81 157 OpSelectionMerge %89 None 158 OpBranchConditional %87 %88 %89 159 %88 = OpLabel 160 OpBranch %89 161 %89 = OpLabel 162 %90 = OpPhi %bool %false %82 %true %88 163 OpSelectionMerge %94 None 164 OpBranchConditional %90 %92 %93 165 %92 = OpLabel 166 %95 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 167 %97 = OpLoad %v4float %95 168 OpStore %91 %97 169 OpBranch %94 170 %93 = OpLabel 171 %98 = OpAccessChain %_ptr_Uniform_v4float %7 %int_2 172 %100 = OpLoad %v4float %98 173 OpStore %91 %100 174 OpBranch %94 175 %94 = OpLabel 176 %101 = OpLoad %v4float %91 177 OpReturnValue %101 178 OpFunctionEnd 179