spv.1.6.conditionalDiscard.frag
// Module Version 10600
// Generated by (magic number): 8000b
// Id's are bound by 36

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 13 17 34
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 400
                              Name 4  "main"
                              Name 9  "v"
                              Name 13  "tex"
                              Name 17  "coord"
                              Name 34  "gl_FragColor"
                              Decorate 13(tex) DescriptorSet 0
                              Decorate 13(tex) Binding 0
                              Decorate 17(coord) Location 0
                              Decorate 34(gl_FragColor) 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
              33:             TypePointer Output 7(fvec4)
34(gl_FragColor):     33(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
            9(v):      8(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
                                TerminateInvocation
              31:             Label
              35:    7(fvec4) Load 9(v)
                              Store 34(gl_FragColor) 35
                              Return
                              FunctionEnd
