1 OpCapability Shader 2 %1 = OpExtInstImport "GLSL.std.450" 3 OpMemoryModel Logical GLSL450 4 OpEntryPoint Fragment %main "main" %sk_FragColor 5 OpExecutionMode %main OriginUpperLeft 6 OpName %sk_FragColor "sk_FragColor" 7 OpName %_UniformBuffer "_UniformBuffer" 8 OpMemberName %_UniformBuffer 0 "a" 9 OpMemberName %_UniformBuffer 1 "b" 10 OpMemberName %_UniformBuffer 2 "c" 11 OpMemberName %_UniformBuffer 3 "d" 12 OpMemberName %_UniformBuffer 4 "e" 13 OpMemberName %_UniformBuffer 5 "f" 14 OpName %main "main" 15 OpName %expectFFTT "expectFFTT" 16 OpName %expectTTFF "expectTTFF" 17 OpDecorate %sk_FragColor RelaxedPrecision 18 OpDecorate %sk_FragColor Location 0 19 OpDecorate %sk_FragColor Index 0 20 OpMemberDecorate %_UniformBuffer 0 Offset 0 21 OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision 22 OpMemberDecorate %_UniformBuffer 1 Offset 16 23 OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision 24 OpMemberDecorate %_UniformBuffer 2 Offset 32 25 OpMemberDecorate %_UniformBuffer 3 Offset 40 26 OpMemberDecorate %_UniformBuffer 4 Offset 48 27 OpMemberDecorate %_UniformBuffer 5 Offset 64 28 OpDecorate %_UniformBuffer Block 29 OpDecorate %7 Binding 0 30 OpDecorate %7 DescriptorSet 0 31 OpDecorate %30 RelaxedPrecision 32 OpDecorate %33 RelaxedPrecision 33 OpDecorate %35 RelaxedPrecision 34 OpDecorate %50 RelaxedPrecision 35 OpDecorate %62 RelaxedPrecision 36 OpDecorate %65 RelaxedPrecision 37 OpDecorate %69 RelaxedPrecision 38 OpDecorate %71 RelaxedPrecision 39 %float = OpTypeFloat 32 40 %v4float = OpTypeVector %float 4 41%_ptr_Output_v4float = OpTypePointer Output %v4float 42%sk_FragColor = OpVariable %_ptr_Output_v4float Output 43 %uint = OpTypeInt 32 0 44 %v2uint = OpTypeVector %uint 2 45 %int = OpTypeInt 32 1 46 %v3int = OpTypeVector %int 3 47%_UniformBuffer = OpTypeStruct %v4float %v4float %v2uint %v2uint %v3int %v3int 48%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 49 %7 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 50 %void = OpTypeVoid 51 %15 = OpTypeFunction %void 52 %bool = OpTypeBool 53 %v4bool = OpTypeVector %bool 4 54%_ptr_Function_v4bool = OpTypePointer Function %v4bool 55 %false = OpConstantFalse %bool 56 %true = OpConstantTrue %bool 57 %23 = OpConstantComposite %v4bool %false %false %true %true 58 %25 = OpConstantComposite %v4bool %true %true %false %false 59%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 60 %int_0 = OpConstant %int 0 61 %int_1 = OpConstant %int 1 62 %float_1 = OpConstant %float 1 63 %float_0 = OpConstant %float 0 64%_ptr_Output_float = OpTypePointer Output %float 65%_ptr_Uniform_v2uint = OpTypePointer Uniform %v2uint 66 %int_2 = OpConstant %int 2 67 %int_3 = OpConstant %int 3 68 %v2bool = OpTypeVector %bool 2 69%_ptr_Uniform_v3int = OpTypePointer Uniform %v3int 70 %int_4 = OpConstant %int 4 71 %int_5 = OpConstant %int 5 72 %v3bool = OpTypeVector %bool 3 73 %main = OpFunction %void None %15 74 %16 = OpLabel 75 %expectFFTT = OpVariable %_ptr_Function_v4bool Function 76 %expectTTFF = OpVariable %_ptr_Function_v4bool Function 77 OpStore %expectFFTT %23 78 OpStore %expectTTFF %25 79 %27 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 80 %30 = OpLoad %v4float %27 81 %31 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 82 %33 = OpLoad %v4float %31 83 %26 = OpFOrdGreaterThan %v4bool %30 %33 84 %34 = OpCompositeExtract %bool %26 0 85 %35 = OpSelect %float %34 %float_1 %float_0 86 %38 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0 87 OpStore %38 %35 88 %41 = OpAccessChain %_ptr_Uniform_v2uint %7 %int_2 89 %44 = OpLoad %v2uint %41 90 %45 = OpAccessChain %_ptr_Uniform_v2uint %7 %int_3 91 %47 = OpLoad %v2uint %45 92 %40 = OpUGreaterThan %v2bool %44 %47 93 %49 = OpCompositeExtract %bool %40 1 94 %50 = OpSelect %float %49 %float_1 %float_0 95 %51 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_1 96 OpStore %51 %50 97 %53 = OpAccessChain %_ptr_Uniform_v3int %7 %int_4 98 %56 = OpLoad %v3int %53 99 %57 = OpAccessChain %_ptr_Uniform_v3int %7 %int_5 100 %59 = OpLoad %v3int %57 101 %52 = OpSGreaterThan %v3bool %56 %59 102 %61 = OpCompositeExtract %bool %52 2 103 %62 = OpSelect %float %61 %float_1 %float_0 104 %63 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_2 105 OpStore %63 %62 106 %65 = OpLoad %v4bool %expectTTFF 107 %64 = OpAny %bool %65 108 OpSelectionMerge %67 None 109 OpBranchConditional %64 %67 %66 110 %66 = OpLabel 111 %69 = OpLoad %v4bool %expectFFTT 112 %68 = OpAny %bool %69 113 OpBranch %67 114 %67 = OpLabel 115 %70 = OpPhi %bool %true %16 %68 %66 116 %71 = OpSelect %float %70 %float_1 %float_0 117 %72 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_3 118 OpStore %72 %71 119 OpReturn 120 OpFunctionEnd 121