spv.precision.frag
// Module Version 10000
// Generated by (magic number): 80007
// Id's are bound by 127

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 23 59 61 73 116
                              ExecutionMode 4 OriginUpperLeft
                              Source ESSL 310
                              Name 4  "main"
                              Name 12  "foo(vf3;"
                              Name 11  "mv3"
                              Name 19  "boolfun(vb2;"
                              Name 18  "bv2"
                              Name 23  "highfin"
                              Name 38  "sum"
                              Name 40  "uniform_medium"
                              Name 42  "uniform_high"
                              Name 48  "uniform_low"
                              Name 53  "arg1"
                              Name 55  "arg2"
                              Name 57  "d"
                              Name 59  "lowfin"
                              Name 61  "mediumfin"
                              Name 65  "global_highp"
                              Name 69  "local_highp"
                              Name 73  "mediumfout"
                              Name 104  "ub2"
                              Name 105  "param"
                              Name 114  "S"
                              MemberName 114(S) 0  "a"
                              MemberName 114(S) 1  "b"
                              Name 116  "s"
                              Decorate 12(foo(vf3;) RelaxedPrecision
                              Decorate 11(mv3) RelaxedPrecision
                              Decorate 38(sum) RelaxedPrecision
                              Decorate 40(uniform_medium) RelaxedPrecision
                              Decorate 41 RelaxedPrecision
                              Decorate 46 RelaxedPrecision
                              Decorate 48(uniform_low) RelaxedPrecision
                              Decorate 49 RelaxedPrecision
                              Decorate 50 RelaxedPrecision
                              Decorate 51 RelaxedPrecision
                              Decorate 53(arg1) RelaxedPrecision
                              Decorate 55(arg2) RelaxedPrecision
                              Decorate 57(d) RelaxedPrecision
                              Decorate 59(lowfin) RelaxedPrecision
                              Decorate 60 RelaxedPrecision
                              Decorate 61(mediumfin) RelaxedPrecision
                              Decorate 62 RelaxedPrecision
                              Decorate 63 RelaxedPrecision
                              Decorate 73(mediumfout) RelaxedPrecision
                              Decorate 74 RelaxedPrecision
                              Decorate 75 RelaxedPrecision
                              Decorate 76 RelaxedPrecision
                              Decorate 77 RelaxedPrecision
                              Decorate 78 RelaxedPrecision
                              Decorate 79 RelaxedPrecision
                              Decorate 83 RelaxedPrecision
                              Decorate 85 RelaxedPrecision
                              Decorate 87 RelaxedPrecision
                              Decorate 88 RelaxedPrecision
                              Decorate 90 RelaxedPrecision
                              Decorate 91 RelaxedPrecision
                              Decorate 94 RelaxedPrecision
                              Decorate 95 RelaxedPrecision
                              Decorate 96 RelaxedPrecision
                              Decorate 97 RelaxedPrecision
                              Decorate 98 RelaxedPrecision
                              Decorate 99 RelaxedPrecision
                              Decorate 100 RelaxedPrecision
                              Decorate 101 RelaxedPrecision
                              Decorate 102 RelaxedPrecision
                              Decorate 110 RelaxedPrecision
                              Decorate 112 RelaxedPrecision
                              Decorate 113 RelaxedPrecision
                              MemberDecorate 114(S) 1 RelaxedPrecision
                              Decorate 120 RelaxedPrecision
                              Decorate 124 RelaxedPrecision
                              Decorate 125 RelaxedPrecision
                              Decorate 126 RelaxedPrecision
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 3
               8:             TypePointer Function 7(fvec3)
               9:             TypeVector 6(float) 2
              10:             TypeFunction 9(fvec2) 8(ptr)
              14:             TypeBool
              15:             TypeVector 14(bool) 2
              16:             TypePointer Function 15(bvec2)
              17:             TypeFunction 14(bool) 16(ptr)
              21:             TypeVector 6(float) 4
              22:             TypePointer Input 21(fvec4)
     23(highfin):     22(ptr) Variable Input
              29:    14(bool) ConstantFalse
              30:    14(bool) ConstantTrue
              31:   15(bvec2) ConstantComposite 29 30
              36:             TypeInt 32 1
              37:             TypePointer Function 36(int)
              39:             TypePointer Private 36(int)
40(uniform_medium):     39(ptr) Variable Private
42(uniform_high):     39(ptr) Variable Private
 48(uniform_low):     39(ptr) Variable Private
              52:             TypePointer Function 6(float)
              54:    6(float) Constant 1078774989
              56:    6(float) Constant 1232730691
              58:             TypePointer Input 6(float)
      59(lowfin):     58(ptr) Variable Input
   61(mediumfin):     58(ptr) Variable Input
              64:             TypePointer Private 6(float)
65(global_highp):     64(ptr) Variable Private
              68:             TypePointer Function 21(fvec4)
              72:             TypePointer Output 21(fvec4)
  73(mediumfout):     72(ptr) Variable Output
              82:     36(int) Constant 4
              84:             TypeVector 36(int) 2
              92:             TypeInt 32 0
              93:     92(int) Constant 0
             103:             TypePointer Private 15(bvec2)
        104(ub2):    103(ptr) Variable Private
             111:    6(float) Constant 1065353216
          114(S):             TypeStruct 6(float) 6(float)
             115:             TypePointer Input 114(S)
          116(s):    115(ptr) Variable Input
             117:     36(int) Constant 0
             122:     36(int) Constant 1
         4(main):           2 Function None 3
               5:             Label
         38(sum):     37(ptr) Variable Function
        53(arg1):     52(ptr) Variable Function
        55(arg2):     52(ptr) Variable Function
           57(d):     52(ptr) Variable Function
 69(local_highp):     68(ptr) Variable Function
      105(param):     16(ptr) Variable Function
              41:     36(int) Load 40(uniform_medium)
              43:     36(int) Load 42(uniform_high)
              44:     36(int) IAdd 41 43
                              Store 38(sum) 44
              45:     36(int) Load 42(uniform_high)
              46:     36(int) Load 38(sum)
              47:     36(int) IAdd 46 45
                              Store 38(sum) 47
              49:     36(int) Load 48(uniform_low)
              50:     36(int) Load 38(sum)
              51:     36(int) IAdd 50 49
                              Store 38(sum) 51
                              Store 53(arg1) 54
                              Store 55(arg2) 56
              60:    6(float) Load 59(lowfin)
              62:    6(float) Load 61(mediumfin)
              63:    6(float) ExtInst 1(GLSL.std.450) 67(Distance) 60 62
                              Store 57(d) 63
              66:   21(fvec4) Load 23(highfin)
              67:    6(float) ExtInst 1(GLSL.std.450) 66(Length) 66
                              Store 65(global_highp) 67
              70:    6(float) Load 65(global_highp)
              71:   21(fvec4) CompositeConstruct 70 70 70 70
                              Store 69(local_highp) 71
              74:    6(float) Load 57(d)
              75:    6(float) ExtInst 1(GLSL.std.450) 13(Sin) 74
              76:   21(fvec4) CompositeConstruct 75 75 75 75
              77:    6(float) Load 55(arg2)
              78:   21(fvec4) CompositeConstruct 77 77 77 77
              79:   21(fvec4) FAdd 76 78
              80:   21(fvec4) Load 69(local_highp)
              81:   21(fvec4) FAdd 79 80
                              Store 73(mediumfout) 81
              83:     36(int) Load 48(uniform_low)
              85:   84(ivec2) CompositeConstruct 83 83
              86:     36(int) Load 42(uniform_high)
              87:   84(ivec2) CompositeConstruct 86 86
              88:   84(ivec2) IMul 85 87
              89:     36(int) Load 42(uniform_high)
              90:   84(ivec2) CompositeConstruct 89 89
              91:   84(ivec2) IAdd 88 90
              94:     36(int) CompositeExtract 91 0
              95:     36(int) IAdd 82 94
              96:     36(int) Load 38(sum)
              97:     36(int) IAdd 96 95
                              Store 38(sum) 97
              98:     36(int) Load 38(sum)
              99:    6(float) ConvertSToF 98
             100:   21(fvec4) CompositeConstruct 99 99 99 99
             101:   21(fvec4) Load 73(mediumfout)
             102:   21(fvec4) FAdd 101 100
                              Store 73(mediumfout) 102
             106:   15(bvec2) Load 104(ub2)
                              Store 105(param) 106
             107:    14(bool) FunctionCall 19(boolfun(vb2;) 105(param)
                              SelectionMerge 109 None
                              BranchConditional 107 108 109
             108:               Label
             110:   21(fvec4)   Load 73(mediumfout)
             112:   21(fvec4)   CompositeConstruct 111 111 111 111
             113:   21(fvec4)   FAdd 110 112
                                Store 73(mediumfout) 113
                                Branch 109
             109:             Label
             118:     58(ptr) AccessChain 116(s) 117
             119:    6(float) Load 118
             120:   21(fvec4) Load 73(mediumfout)
             121:   21(fvec4) VectorTimesScalar 120 119
                              Store 73(mediumfout) 121
             123:     58(ptr) AccessChain 116(s) 122
             124:    6(float) Load 123
             125:   21(fvec4) Load 73(mediumfout)
             126:   21(fvec4) VectorTimesScalar 125 124
                              Store 73(mediumfout) 126
                              Return
                              FunctionEnd
    12(foo(vf3;):    9(fvec2) Function None 10
         11(mv3):      8(ptr) FunctionParameter
              13:             Label
              24:   21(fvec4) Load 23(highfin)
              25:    9(fvec2) VectorShuffle 24 24 0 1
                              ReturnValue 25
                              FunctionEnd
19(boolfun(vb2;):    14(bool) Function None 17
         18(bv2):     16(ptr) FunctionParameter
              20:             Label
              28:   15(bvec2) Load 18(bv2)
              32:   15(bvec2) LogicalEqual 28 31
              33:    14(bool) All 32
                              ReturnValue 33
                              FunctionEnd
