spv.discard-dce.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
                                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
