spv.discard-dce.frag
// Module Version 10000
// Generated by (magic number): 80005
// 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 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
                                Kill
              49:             Label
              70:    6(float) Load 36(radius)
              72:    46(bool) FOrdGreaterThanEqual 70 71
                              SelectionMerge 74 None
                              BranchConditional 72 73 74
              73:               Label
              75:    6(float)   Load 36(radius)
              77:    6(float)   ExtInst 1(GLSL.std.450) 26(Pow) 75 76
              78:    6(float)   FDiv 77 27
              79:    6(float)   ExtInst 1(GLSL.std.450) 4(FAbs) 78
              80:    7(fvec4)   Load 15(color)
              81:    7(fvec4)   CompositeConstruct 79 79 79 79
              82:    7(fvec4)   FSub 80 81
                                Store 15(color) 82
                                Branch 74
              74:             Label
              83:    7(fvec4) Load 15(color)
                              Store 59(gl_FragColor) 83
                              Return
                              FunctionEnd
