| OpCapability Shader |
| %1 = OpExtInstImport "GLSL.std.450" |
| OpMemoryModel Logical GLSL450 |
| OpEntryPoint Fragment %main "main" %sk_FragColor %sk_Clockwise |
| OpExecutionMode %main OriginUpperLeft |
| OpName %sk_FragColor "sk_FragColor" |
| OpName %sk_Clockwise "sk_Clockwise" |
| OpName %main "main" |
| OpName %v "v" |
| OpName %result "result" |
| OpDecorate %sk_FragColor RelaxedPrecision |
| OpDecorate %sk_FragColor Location 0 |
| OpDecorate %sk_FragColor Index 0 |
| OpDecorate %sk_Clockwise RelaxedPrecision |
| OpDecorate %sk_Clockwise BuiltIn FrontFacing |
| OpDecorate %21 RelaxedPrecision |
| OpDecorate %25 RelaxedPrecision |
| OpDecorate %32 RelaxedPrecision |
| OpDecorate %35 RelaxedPrecision |
| OpDecorate %38 RelaxedPrecision |
| OpDecorate %45 RelaxedPrecision |
| OpDecorate %50 RelaxedPrecision |
| OpDecorate %52 RelaxedPrecision |
| OpDecorate %55 RelaxedPrecision |
| OpDecorate %58 RelaxedPrecision |
| OpDecorate %63 RelaxedPrecision |
| OpDecorate %66 RelaxedPrecision |
| OpDecorate %69 RelaxedPrecision |
| OpDecorate %70 RelaxedPrecision |
| OpDecorate %76 RelaxedPrecision |
| OpDecorate %80 RelaxedPrecision |
| OpDecorate %83 RelaxedPrecision |
| OpDecorate %88 RelaxedPrecision |
| OpDecorate %90 RelaxedPrecision |
| OpDecorate %95 RelaxedPrecision |
| OpDecorate %97 RelaxedPrecision |
| OpDecorate %100 RelaxedPrecision |
| OpDecorate %102 RelaxedPrecision |
| OpDecorate %105 RelaxedPrecision |
| OpDecorate %108 RelaxedPrecision |
| OpDecorate %114 RelaxedPrecision |
| OpDecorate %119 RelaxedPrecision |
| OpDecorate %121 RelaxedPrecision |
| OpDecorate %124 RelaxedPrecision |
| OpDecorate %127 RelaxedPrecision |
| OpDecorate %132 RelaxedPrecision |
| OpDecorate %135 RelaxedPrecision |
| OpDecorate %139 RelaxedPrecision |
| OpDecorate %148 RelaxedPrecision |
| %float = OpTypeFloat 32 |
| %v4float = OpTypeVector %float 4 |
| %_ptr_Output_v4float = OpTypePointer Output %v4float |
| %sk_FragColor = OpVariable %_ptr_Output_v4float Output |
| %bool = OpTypeBool |
| %_ptr_Input_bool = OpTypePointer Input %bool |
| %sk_Clockwise = OpVariable %_ptr_Input_bool Input |
| %void = OpTypeVoid |
| %11 = OpTypeFunction %void |
| %v4bool = OpTypeVector %bool 4 |
| %_ptr_Function_v4bool = OpTypePointer Function %v4bool |
| %float_1 = OpConstant %float 1 |
| %true = OpConstantTrue %bool |
| %v2bool = OpTypeVector %bool 2 |
| %false = OpConstantFalse %bool |
| %v3bool = OpTypeVector %bool 3 |
| %_ptr_Function_v4float = OpTypePointer Function %v4float |
| %145 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 |
| %float_0 = OpConstant %float 0 |
| %147 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 |
| %main = OpFunction %void None %11 |
| %12 = OpLabel |
| %v = OpVariable %_ptr_Function_v4bool Function |
| %result = OpVariable %_ptr_Function_v4bool Function |
| %140 = OpVariable %_ptr_Function_v4float Function |
| %16 = OpExtInst %float %1 Sqrt %float_1 |
| %18 = OpFOrdEqual %bool %16 %float_1 |
| %19 = OpCompositeConstruct %v4bool %18 %18 %18 %18 |
| OpStore %v %19 |
| %21 = OpLoad %v4bool %v |
| %22 = OpCompositeExtract %bool %21 0 |
| %24 = OpCompositeConstruct %v4bool %22 %true %true %true |
| OpStore %result %24 |
| %25 = OpLoad %v4bool %v |
| %26 = OpVectorShuffle %v2bool %25 %25 0 1 |
| %28 = OpCompositeExtract %bool %26 0 |
| %29 = OpCompositeExtract %bool %26 1 |
| %31 = OpCompositeConstruct %v4bool %28 %29 %false %true |
| OpStore %result %31 |
| %32 = OpLoad %v4bool %v |
| %33 = OpCompositeExtract %bool %32 0 |
| %34 = OpCompositeConstruct %v4bool %33 %true %true %false |
| OpStore %result %34 |
| %35 = OpLoad %v4bool %v |
| %36 = OpCompositeExtract %bool %35 1 |
| %37 = OpCompositeConstruct %v4bool %false %36 %true %true |
| OpStore %result %37 |
| %38 = OpLoad %v4bool %v |
| %39 = OpVectorShuffle %v3bool %38 %38 0 1 2 |
| %41 = OpCompositeExtract %bool %39 0 |
| %42 = OpCompositeExtract %bool %39 1 |
| %43 = OpCompositeExtract %bool %39 2 |
| %44 = OpCompositeConstruct %v4bool %41 %42 %43 %true |
| OpStore %result %44 |
| %45 = OpLoad %v4bool %v |
| %46 = OpVectorShuffle %v2bool %45 %45 0 1 |
| %47 = OpCompositeExtract %bool %46 0 |
| %48 = OpCompositeExtract %bool %46 1 |
| %49 = OpCompositeConstruct %v4bool %47 %48 %true %true |
| OpStore %result %49 |
| %50 = OpLoad %v4bool %v |
| %51 = OpCompositeExtract %bool %50 0 |
| %52 = OpLoad %v4bool %v |
| %53 = OpCompositeExtract %bool %52 2 |
| %54 = OpCompositeConstruct %v4bool %51 %false %53 %true |
| OpStore %result %54 |
| %55 = OpLoad %v4bool %v |
| %56 = OpCompositeExtract %bool %55 0 |
| %57 = OpCompositeConstruct %v4bool %56 %true %false %false |
| OpStore %result %57 |
| %58 = OpLoad %v4bool %v |
| %59 = OpVectorShuffle %v2bool %58 %58 1 2 |
| %60 = OpCompositeExtract %bool %59 0 |
| %61 = OpCompositeExtract %bool %59 1 |
| %62 = OpCompositeConstruct %v4bool %true %60 %61 %false |
| OpStore %result %62 |
| %63 = OpLoad %v4bool %v |
| %64 = OpCompositeExtract %bool %63 1 |
| %65 = OpCompositeConstruct %v4bool %false %64 %true %false |
| OpStore %result %65 |
| %66 = OpLoad %v4bool %v |
| %67 = OpCompositeExtract %bool %66 2 |
| %68 = OpCompositeConstruct %v4bool %true %true %67 %false |
| OpStore %result %68 |
| %69 = OpLoad %v4bool %v |
| OpStore %result %69 |
| %70 = OpLoad %v4bool %v |
| %71 = OpVectorShuffle %v3bool %70 %70 0 1 2 |
| %72 = OpCompositeExtract %bool %71 0 |
| %73 = OpCompositeExtract %bool %71 1 |
| %74 = OpCompositeExtract %bool %71 2 |
| %75 = OpCompositeConstruct %v4bool %72 %73 %74 %true |
| OpStore %result %75 |
| %76 = OpLoad %v4bool %v |
| %77 = OpVectorShuffle %v2bool %76 %76 0 1 |
| %78 = OpCompositeExtract %bool %77 0 |
| %79 = OpCompositeExtract %bool %77 1 |
| %80 = OpLoad %v4bool %v |
| %81 = OpCompositeExtract %bool %80 3 |
| %82 = OpCompositeConstruct %v4bool %78 %79 %false %81 |
| OpStore %result %82 |
| %83 = OpLoad %v4bool %v |
| %84 = OpVectorShuffle %v2bool %83 %83 0 1 |
| %85 = OpCompositeExtract %bool %84 0 |
| %86 = OpCompositeExtract %bool %84 1 |
| %87 = OpCompositeConstruct %v4bool %85 %86 %true %false |
| OpStore %result %87 |
| %88 = OpLoad %v4bool %v |
| %89 = OpCompositeExtract %bool %88 0 |
| %90 = OpLoad %v4bool %v |
| %91 = OpVectorShuffle %v2bool %90 %90 2 3 |
| %92 = OpCompositeExtract %bool %91 0 |
| %93 = OpCompositeExtract %bool %91 1 |
| %94 = OpCompositeConstruct %v4bool %89 %true %92 %93 |
| OpStore %result %94 |
| %95 = OpLoad %v4bool %v |
| %96 = OpCompositeExtract %bool %95 0 |
| %97 = OpLoad %v4bool %v |
| %98 = OpCompositeExtract %bool %97 2 |
| %99 = OpCompositeConstruct %v4bool %96 %false %98 %true |
| OpStore %result %99 |
| %100 = OpLoad %v4bool %v |
| %101 = OpCompositeExtract %bool %100 0 |
| %102 = OpLoad %v4bool %v |
| %103 = OpCompositeExtract %bool %102 3 |
| %104 = OpCompositeConstruct %v4bool %101 %true %true %103 |
| OpStore %result %104 |
| %105 = OpLoad %v4bool %v |
| %106 = OpCompositeExtract %bool %105 0 |
| %107 = OpCompositeConstruct %v4bool %106 %true %false %true |
| OpStore %result %107 |
| %108 = OpLoad %v4bool %v |
| %109 = OpVectorShuffle %v3bool %108 %108 1 2 3 |
| %110 = OpCompositeExtract %bool %109 0 |
| %111 = OpCompositeExtract %bool %109 1 |
| %112 = OpCompositeExtract %bool %109 2 |
| %113 = OpCompositeConstruct %v4bool %true %110 %111 %112 |
| OpStore %result %113 |
| %114 = OpLoad %v4bool %v |
| %115 = OpVectorShuffle %v2bool %114 %114 1 2 |
| %116 = OpCompositeExtract %bool %115 0 |
| %117 = OpCompositeExtract %bool %115 1 |
| %118 = OpCompositeConstruct %v4bool %false %116 %117 %true |
| OpStore %result %118 |
| %119 = OpLoad %v4bool %v |
| %120 = OpCompositeExtract %bool %119 1 |
| %121 = OpLoad %v4bool %v |
| %122 = OpCompositeExtract %bool %121 3 |
| %123 = OpCompositeConstruct %v4bool %false %120 %true %122 |
| OpStore %result %123 |
| %124 = OpLoad %v4bool %v |
| %125 = OpCompositeExtract %bool %124 1 |
| %126 = OpCompositeConstruct %v4bool %true %125 %true %true |
| OpStore %result %126 |
| %127 = OpLoad %v4bool %v |
| %128 = OpVectorShuffle %v2bool %127 %127 2 3 |
| %129 = OpCompositeExtract %bool %128 0 |
| %130 = OpCompositeExtract %bool %128 1 |
| %131 = OpCompositeConstruct %v4bool %false %false %129 %130 |
| OpStore %result %131 |
| %132 = OpLoad %v4bool %v |
| %133 = OpCompositeExtract %bool %132 2 |
| %134 = OpCompositeConstruct %v4bool %false %false %133 %true |
| OpStore %result %134 |
| %135 = OpLoad %v4bool %v |
| %136 = OpCompositeExtract %bool %135 3 |
| %137 = OpCompositeConstruct %v4bool %false %true %true %136 |
| OpStore %result %137 |
| %139 = OpLoad %v4bool %result |
| %138 = OpAny %bool %139 |
| OpSelectionMerge %144 None |
| OpBranchConditional %138 %142 %143 |
| %142 = OpLabel |
| OpStore %140 %145 |
| OpBranch %144 |
| %143 = OpLabel |
| OpStore %140 %147 |
| OpBranch %144 |
| %144 = OpLabel |
| %148 = OpLoad %v4float %140 |
| OpStore %sk_FragColor %148 |
| OpReturn |
| OpFunctionEnd |