spv.conditionalDemote.frag
// Module Version 10000
// Generated by (magic number): 80008
// Id's are bound by 38

                              Capability Shader
                              Capability DemoteToHelperInvocationEXT
                              Extension  "SPV_EXT_demote_to_helper_invocation"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 17 36
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 460
                              SourceExtension  "GL_EXT_demote_to_helper_invocation"
                              Name 4  "main"
                              Name 9  "v"
                              Name 13  "tex"
                              Name 17  "coord"
                              Name 33  "x"
                              Name 36  "o"
                              Decorate 13(tex) DescriptorSet 0
                              Decorate 13(tex) Binding 0
                              Decorate 17(coord) Location 0
                              Decorate 36(o) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypePointer Function 7(fvec4)
              10:             TypeImage 6(float) 2D sampled format:Unknown
              11:             TypeSampledImage 10
              12:             TypePointer UniformConstant 11
         13(tex):     12(ptr) Variable UniformConstant
              15:             TypeVector 6(float) 2
              16:             TypePointer Input 15(fvec2)
       17(coord):     16(ptr) Variable Input
              21:    6(float) Constant 1036831949
              22:    6(float) Constant 1045220557
              23:    6(float) Constant 1050253722
              24:    6(float) Constant 1053609165
              25:    7(fvec4) ConstantComposite 21 22 23 24
              26:             TypeBool
              27:             TypeVector 26(bool) 4
              32:             TypePointer Function 26(bool)
              35:             TypePointer Output 7(fvec4)
           36(o):     35(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
            9(v):      8(ptr) Variable Function
           33(x):     32(ptr) Variable Function
              14:          11 Load 13(tex)
              18:   15(fvec2) Load 17(coord)
              19:    7(fvec4) ImageSampleImplicitLod 14 18
                              Store 9(v) 19
              20:    7(fvec4) Load 9(v)
              28:   27(bvec4) FOrdEqual 20 25
              29:    26(bool) All 28
                              SelectionMerge 31 None
                              BranchConditional 29 30 31
              30:               Label
                                DemoteToHelperInvocationEXT
                                Branch 31
              31:             Label
              34:    26(bool) IsHelperInvocationEXT
                              Store 33(x) 34
              37:    7(fvec4) Load 9(v)
                              Store 36(o) 37
                              Return
                              FunctionEnd
