spv.always-discard.frag
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 84

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 21 59
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 140
                              Name 4  "main"
                              Name 9  "white"
                              Name 12  "black"
                              Name 15  "color"
                              Name 18  "x"
                              Name 21  "tex_coord"
                              Name 30  "y"
                              Name 36  "radius"
                              Name 59  "gl_FragColor"
                              Decorate 21(tex_coord) Location 0
                              Decorate 59(gl_FragColor) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypePointer Function 7(fvec4)
              10:    6(float) Constant 1065353216
              11:    7(fvec4) ConstantComposite 10 10 10 10
              13:    6(float) Constant 1045220557
              14:    7(fvec4) ConstantComposite 13 13 13 13
              17:             TypePointer Function 6(float)
              19:             TypeVector 6(float) 2
              20:             TypePointer Input 19(fvec2)
   21(tex_coord):     20(ptr) Variable Input
              22:             TypeInt 32 0
              23:     22(int) Constant 0
              24:             TypePointer Input 6(float)
              27:    6(float) Constant 1073741824
              31:     22(int) Constant 1
              46:             TypeBool
              51:    6(float) Constant 1066192077
              58:             TypePointer Output 7(fvec4)
59(gl_FragColor):     58(ptr) Variable Output
              62:    6(float) Constant 1067030938
              71:    6(float) Constant 1061158912
              76:    6(float) Constant 1098907648
         4(main):           2 Function None 3
               5:             Label
        9(white):      8(ptr) Variable Function
       12(black):      8(ptr) Variable Function
       15(color):      8(ptr) Variable Function
           18(x):     17(ptr) Variable Function
           30(y):     17(ptr) Variable Function
      36(radius):     17(ptr) Variable Function
                              Store 9(white) 11
                              Store 12(black) 14
              16:    7(fvec4) Load 9(white)
                              Store 15(color) 16
              25:     24(ptr) AccessChain 21(tex_coord) 23
              26:    6(float) Load 25
              28:    6(float) FMul 26 27
              29:    6(float) FSub 28 10
                              Store 18(x) 29
              32:     24(ptr) AccessChain 21(tex_coord) 31
              33:    6(float) Load 32
              34:    6(float) FMul 33 27
              35:    6(float) FSub 34 10
                              Store 30(y) 35
              37:    6(float) Load 18(x)
              38:    6(float) Load 18(x)
              39:    6(float) FMul 37 38
              40:    6(float) Load 30(y)
              41:    6(float) Load 30(y)
              42:    6(float) FMul 40 41
              43:    6(float) FAdd 39 42
              44:    6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 43
                              Store 36(radius) 44
              45:    6(float) Load 36(radius)
              47:    46(bool) FOrdGreaterThan 45 10
                              SelectionMerge 49 None
                              BranchConditional 47 48 49
              48:               Label
              50:    6(float)   Load 36(radius)
              52:    46(bool)   FOrdGreaterThan 50 51
                                SelectionMerge 54 None
                                BranchConditional 52 53 54
              53:                 Label
              55:    7(fvec4)     Load 15(color)
              56:    7(fvec4)     CompositeConstruct 10 10 10 10
              57:    7(fvec4)     FAdd 55 56
                                  Store 15(color) 57
                                  Branch 54
              54:               Label
              60:    7(fvec4)   Load 15(color)
                                Store 59(gl_FragColor) 60
              61:    6(float)   Load 36(radius)
              63:    46(bool)   FOrdGreaterThan 61 62
                                SelectionMerge 65 None
                                BranchConditional 63 64 65
              64:                 Label
              66:    7(fvec4)     Load 15(color)
              67:    7(fvec4)     CompositeConstruct 10 10 10 10
              68:    7(fvec4)     FAdd 66 67
                                  Store 15(color) 68
                                  Branch 65
              65:               Label
                                Branch 49
              49:             Label
                              Kill
                              FunctionEnd
