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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 23 62 64 76 119 149
                              ExecutionMode 4 OriginUpperLeft
                              Source ESSL 310
                              SourceExtension  "GL_OES_sample_variables"
                              Name 4  "main"
                              Name 12  "foo(vf3;"
                              Name 11  "mv3"
                              Name 19  "boolfun(vb2;"
                              Name 18  "bv2"
                              Name 23  "highfin"
                              Name 41  "sum"
                              Name 43  "uniform_medium"
                              Name 45  "uniform_high"
                              Name 51  "uniform_low"
                              Name 56  "arg1"
                              Name 58  "arg2"
                              Name 60  "d"
                              Name 62  "lowfin"
                              Name 64  "mediumfin"
                              Name 68  "global_highp"
                              Name 72  "local_highp"
                              Name 76  "mediumfout"
                              Name 107  "ub2"
                              Name 108  "param"
                              Name 117  "S"
                              MemberName 117(S) 0  "a"
                              MemberName 117(S) 1  "b"
                              Name 119  "s"
                              Name 149  "gl_SampleMaskIn"
                              Decorate 12(foo(vf3;) RelaxedPrecision
                              Decorate 11(mv3) RelaxedPrecision
                              Decorate 23(highfin) Location 2
                              Decorate 27 RelaxedPrecision
                              Decorate 28 RelaxedPrecision
                              Decorate 41(sum) RelaxedPrecision
                              Decorate 43(uniform_medium) RelaxedPrecision
                              Decorate 44 RelaxedPrecision
                              Decorate 49 RelaxedPrecision
                              Decorate 51(uniform_low) RelaxedPrecision
                              Decorate 52 RelaxedPrecision
                              Decorate 53 RelaxedPrecision
                              Decorate 54 RelaxedPrecision
                              Decorate 56(arg1) RelaxedPrecision
                              Decorate 58(arg2) RelaxedPrecision
                              Decorate 60(d) RelaxedPrecision
                              Decorate 62(lowfin) RelaxedPrecision
                              Decorate 62(lowfin) Location 0
                              Decorate 63 RelaxedPrecision
                              Decorate 64(mediumfin) RelaxedPrecision
                              Decorate 64(mediumfin) Location 1
                              Decorate 65 RelaxedPrecision
                              Decorate 66 RelaxedPrecision
                              Decorate 76(mediumfout) RelaxedPrecision
                              Decorate 76(mediumfout) Location 0
                              Decorate 77 RelaxedPrecision
                              Decorate 78 RelaxedPrecision
                              Decorate 79 RelaxedPrecision
                              Decorate 80 RelaxedPrecision
                              Decorate 81 RelaxedPrecision
                              Decorate 82 RelaxedPrecision
                              Decorate 86 RelaxedPrecision
                              Decorate 88 RelaxedPrecision
                              Decorate 90 RelaxedPrecision
                              Decorate 91 RelaxedPrecision
                              Decorate 93 RelaxedPrecision
                              Decorate 94 RelaxedPrecision
                              Decorate 97 RelaxedPrecision
                              Decorate 98 RelaxedPrecision
                              Decorate 99 RelaxedPrecision
                              Decorate 100 RelaxedPrecision
                              Decorate 101 RelaxedPrecision
                              Decorate 102 RelaxedPrecision
                              Decorate 103 RelaxedPrecision
                              Decorate 104 RelaxedPrecision
                              Decorate 105 RelaxedPrecision
                              Decorate 113 RelaxedPrecision
                              Decorate 115 RelaxedPrecision
                              Decorate 116 RelaxedPrecision
                              MemberDecorate 117(S) 1 RelaxedPrecision
                              Decorate 119(s) Location 3
                              Decorate 123 RelaxedPrecision
                              Decorate 127 RelaxedPrecision
                              Decorate 128 RelaxedPrecision
                              Decorate 129 RelaxedPrecision
                              Decorate 130 RelaxedPrecision
                              Decorate 131 RelaxedPrecision
                              Decorate 132 RelaxedPrecision
                              Decorate 135 RelaxedPrecision
                              Decorate 139 RelaxedPrecision
                              Decorate 140 RelaxedPrecision
                              Decorate 143 RelaxedPrecision
                              Decorate 144 RelaxedPrecision
                              Decorate 145 RelaxedPrecision
                              Decorate 149(gl_SampleMaskIn) Flat
                              Decorate 149(gl_SampleMaskIn) BuiltIn SampleMask
                              Decorate 153 RelaxedPrecision
                              Decorate 156 RelaxedPrecision
                              Decorate 159 RelaxedPrecision
                              Decorate 160 RelaxedPrecision
                              Decorate 162 RelaxedPrecision
                              Decorate 163 RelaxedPrecision
                              Decorate 164 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
              26:             TypePointer Function 9(fvec2)
              32:    14(bool) ConstantFalse
              33:    14(bool) ConstantTrue
              34:   15(bvec2) ConstantComposite 32 33
              39:             TypeInt 32 1
              40:             TypePointer Function 39(int)
              42:             TypePointer Private 39(int)
43(uniform_medium):     42(ptr) Variable Private
45(uniform_high):     42(ptr) Variable Private
 51(uniform_low):     42(ptr) Variable Private
              55:             TypePointer Function 6(float)
              57:    6(float) Constant 1078774989
              59:    6(float) Constant 1232730691
              61:             TypePointer Input 6(float)
      62(lowfin):     61(ptr) Variable Input
   64(mediumfin):     61(ptr) Variable Input
              67:             TypePointer Private 6(float)
68(global_highp):     67(ptr) Variable Private
              71:             TypePointer Function 21(fvec4)
              75:             TypePointer Output 21(fvec4)
  76(mediumfout):     75(ptr) Variable Output
              85:     39(int) Constant 4
              87:             TypeVector 39(int) 2
              95:             TypeInt 32 0
              96:     95(int) Constant 0
             106:             TypePointer Private 15(bvec2)
        107(ub2):    106(ptr) Variable Private
             114:    6(float) Constant 1065353216
          117(S):             TypeStruct 6(float) 6(float)
             118:             TypePointer Input 117(S)
          119(s):    118(ptr) Variable Input
             120:     39(int) Constant 0
             125:     39(int) Constant 1
             133:    6(float) Constant 1082549862
             138:    6(float) Constant 1073741824
             142:    6(float) Constant 1077936128
             146:     95(int) Constant 1
             147:             TypeArray 39(int) 146
             148:             TypePointer Input 147
149(gl_SampleMaskIn):    148(ptr) Variable Input
             150:             TypePointer Input 39(int)
         4(main):           2 Function None 3
               5:             Label
         41(sum):     40(ptr) Variable Function
        56(arg1):     55(ptr) Variable Function
        58(arg2):     55(ptr) Variable Function
           60(d):     55(ptr) Variable Function
 72(local_highp):     71(ptr) Variable Function
      108(param):     16(ptr) Variable Function
             135:     71(ptr) Variable Function
             156:     71(ptr) Variable Function
              44:     39(int) Load 43(uniform_medium)
              46:     39(int) Load 45(uniform_high)
              47:     39(int) IAdd 44 46
                              Store 41(sum) 47
              48:     39(int) Load 45(uniform_high)
              49:     39(int) Load 41(sum)
              50:     39(int) IAdd 49 48
                              Store 41(sum) 50
              52:     39(int) Load 51(uniform_low)
              53:     39(int) Load 41(sum)
              54:     39(int) IAdd 53 52
                              Store 41(sum) 54
                              Store 56(arg1) 57
                              Store 58(arg2) 59
              63:    6(float) Load 62(lowfin)
              65:    6(float) Load 64(mediumfin)
              66:    6(float) ExtInst 1(GLSL.std.450) 67(Distance) 63 65
                              Store 60(d) 66
              69:   21(fvec4) Load 23(highfin)
              70:    6(float) ExtInst 1(GLSL.std.450) 66(Length) 69
                              Store 68(global_highp) 70
              73:    6(float) Load 68(global_highp)
              74:   21(fvec4) CompositeConstruct 73 73 73 73
                              Store 72(local_highp) 74
              77:    6(float) Load 60(d)
              78:    6(float) ExtInst 1(GLSL.std.450) 13(Sin) 77
              79:   21(fvec4) CompositeConstruct 78 78 78 78
              80:    6(float) Load 58(arg2)
              81:   21(fvec4) CompositeConstruct 80 80 80 80
              82:   21(fvec4) FAdd 79 81
              83:   21(fvec4) Load 72(local_highp)
              84:   21(fvec4) FAdd 82 83
                              Store 76(mediumfout) 84
              86:     39(int) Load 51(uniform_low)
              88:   87(ivec2) CompositeConstruct 86 86
              89:     39(int) Load 45(uniform_high)
              90:   87(ivec2) CompositeConstruct 89 89
              91:   87(ivec2) IMul 88 90
              92:     39(int) Load 45(uniform_high)
              93:   87(ivec2) CompositeConstruct 92 92
              94:   87(ivec2) IAdd 91 93
              97:     39(int) CompositeExtract 94 0
              98:     39(int) IAdd 85 97
              99:     39(int) Load 41(sum)
             100:     39(int) IAdd 99 98
                              Store 41(sum) 100
             101:     39(int) Load 41(sum)
             102:    6(float) ConvertSToF 101
             103:   21(fvec4) CompositeConstruct 102 102 102 102
             104:   21(fvec4) Load 76(mediumfout)
             105:   21(fvec4) FAdd 104 103
                              Store 76(mediumfout) 105
             109:   15(bvec2) Load 107(ub2)
                              Store 108(param) 109
             110:    14(bool) FunctionCall 19(boolfun(vb2;) 108(param)
                              SelectionMerge 112 None
                              BranchConditional 110 111 112
             111:               Label
             113:   21(fvec4)   Load 76(mediumfout)
             115:   21(fvec4)   CompositeConstruct 114 114 114 114
             116:   21(fvec4)   FAdd 113 115
                                Store 76(mediumfout) 116
                                Branch 112
             112:             Label
             121:     61(ptr) AccessChain 119(s) 120
             122:    6(float) Load 121
             123:   21(fvec4) Load 76(mediumfout)
             124:   21(fvec4) VectorTimesScalar 123 122
                              Store 76(mediumfout) 124
             126:     61(ptr) AccessChain 119(s) 125
             127:    6(float) Load 126
             128:   21(fvec4) Load 76(mediumfout)
             129:   21(fvec4) VectorTimesScalar 128 127
                              Store 76(mediumfout) 129
             130:    6(float) Load 64(mediumfin)
             131:    6(float) Load 64(mediumfin)
             132:    6(float) FMul 130 131
             134:    14(bool) FOrdGreaterThan 132 133
                              SelectionMerge 137 None
                              BranchConditional 134 136 141
             136:               Label
             139:   21(fvec4)   Load 76(mediumfout)
             140:   21(fvec4)   VectorTimesScalar 139 138
                                Store 135 140
                                Branch 137
             141:               Label
             143:   21(fvec4)   Load 76(mediumfout)
             144:   21(fvec4)   VectorTimesScalar 143 142
                                Store 135 144
                                Branch 137
             137:             Label
             145:   21(fvec4) Load 135
                              Store 76(mediumfout) 145
             151:    150(ptr) AccessChain 149(gl_SampleMaskIn) 120
             152:     39(int) Load 151
             153:     39(int) Load 43(uniform_medium)
             154:     39(int) ShiftRightArithmetic 152 153
             155:    14(bool) SGreaterThan 154 120
                              SelectionMerge 158 None
                              BranchConditional 155 157 161
             157:               Label
             159:   21(fvec4)   Load 76(mediumfout)
             160:   21(fvec4)   VectorTimesScalar 159 138
                                Store 156 160
                                Branch 158
             161:               Label
             162:   21(fvec4)   Load 76(mediumfout)
             163:   21(fvec4)   VectorTimesScalar 162 142
                                Store 156 163
                                Branch 158
             158:             Label
             164:   21(fvec4) Load 156
                              Store 76(mediumfout) 164
                              Return
                              FunctionEnd
    12(foo(vf3;):    9(fvec2) Function None 10
         11(mv3):      8(ptr) FunctionParameter
              13:             Label
              27:     26(ptr) Variable Function
              24:   21(fvec4) Load 23(highfin)
              25:    9(fvec2) VectorShuffle 24 24 0 1
                              Store 27 25
              28:    9(fvec2) Load 27
                              ReturnValue 28
                              FunctionEnd
19(boolfun(vb2;):    14(bool) Function None 17
         18(bv2):     16(ptr) FunctionParameter
              20:             Label
              31:   15(bvec2) Load 18(bv2)
              35:   15(bvec2) LogicalEqual 31 34
              36:    14(bool) All 35
                              ReturnValue 36
                              FunctionEnd
