spv.float16.frag
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 534

                              Capability Shader
                              Capability Float16
                              Capability Float64
                              Capability Int64
                              Capability DerivativeControl
                              Capability InterpolationFunction
                              Capability StorageUniformBufferBlock16
                              Capability StorageUniform16
                              Capability StorageInputOutput16
                              Extension  "SPV_AMD_gpu_shader_half_float"
                              Extension  "SPV_KHR_16bit_storage"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 465
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 450
                              SourceExtension  "GL_AMD_gpu_shader_half_float"
                              SourceExtension  "GL_ARB_gpu_shader_int64"
                              Name 4  "main"
                              Name 6  "literal("
                              Name 8  "operators("
                              Name 10  "typeCast("
                              Name 12  "builtinAngleTrigFuncs("
                              Name 14  "builtinExpFuncs("
                              Name 16  "builtinCommonFuncs("
                              Name 18  "builtinPackUnpackFuncs("
                              Name 20  "builtinGeometryFuncs("
                              Name 22  "builtinMatrixFuncs("
                              Name 24  "builtinVecRelFuncs("
                              Name 26  "builtinFragProcFuncs("
                              Name 31  "f16v"
                              Name 42  "f16v"
                              Name 64  "f16m"
                              Name 87  "f16"
                              Name 111  "b"
                              Name 153  "f16v"
                              Name 156  "bv"
                              Name 167  "fv"
                              Name 175  "dv"
                              Name 186  "iv"
                              Name 193  "uv"
                              Name 201  "i64v"
                              Name 209  "u64v"
                              Name 216  "f16v2"
                              Name 217  "f16v1"
                              Name 249  "f16v2"
                              Name 250  "f16v1"
                              Name 266  "f16v2"
                              Name 267  "f16v1"
                              Name 288  "f16"
                              Name 292  "f16v3"
                              Name 332  "bv"
                              Name 353  "b"
                              Name 363  "iv"
                              Name 364  "ResType"
                              Name 372  "u"
                              Name 373  "f16v"
                              Name 378  "f16"
                              Name 379  "f16v1"
                              Name 383  "f16v2"
                              Name 389  "f16v3"
                              Name 408  "f16m3"
                              Name 409  "f16m1"
                              Name 411  "f16m2"
                              Name 420  "f16v1"
                              Name 422  "f16v2"
                              Name 427  "f16m4"
                              Name 430  "f16"
                              Name 433  "f16m5"
                              Name 438  "f16m6"
                              Name 439  "f16m7"
                              Name 442  "bv"
                              Name 443  "f16v1"
                              Name 445  "f16v2"
                              Name 463  "f16v"
                              Name 465  "if16v"
                              Name 514  "S"
                              MemberName 514(S) 0  "x"
                              MemberName 514(S) 1  "y"
                              MemberName 514(S) 2  "z"
                              Name 516  "B1"
                              MemberName 516(B1) 0  "a"
                              MemberName 516(B1) 1  "b"
                              MemberName 516(B1) 2  "c"
                              MemberName 516(B1) 3  "d"
                              MemberName 516(B1) 4  "e"
                              MemberName 516(B1) 5  "f"
                              MemberName 516(B1) 6  "g"
                              MemberName 516(B1) 7  "h"
                              Name 518  ""
                              Name 521  "S"
                              MemberName 521(S) 0  "x"
                              MemberName 521(S) 1  "y"
                              MemberName 521(S) 2  "z"
                              Name 523  "B2"
                              MemberName 523(B2) 0  "o"
                              MemberName 523(B2) 1  "p"
                              MemberName 523(B2) 2  "q"
                              MemberName 523(B2) 3  "r"
                              MemberName 523(B2) 4  "s"
                              MemberName 523(B2) 5  "t"
                              MemberName 523(B2) 6  "u"
                              MemberName 523(B2) 7  "v"
                              Name 525  ""
                              Name 526  "sf16"
                              Name 527  "sf"
                              Name 528  "sd"
                              Decorate 512 ArrayStride 16
                              Decorate 513 ArrayStride 32
                              MemberDecorate 514(S) 0 Offset 0
                              MemberDecorate 514(S) 1 Offset 4
                              MemberDecorate 514(S) 2 Offset 8
                              Decorate 515 ArrayStride 16
                              MemberDecorate 516(B1) 0 Offset 0
                              MemberDecorate 516(B1) 1 Offset 4
                              MemberDecorate 516(B1) 2 Offset 8
                              MemberDecorate 516(B1) 3 Offset 16
                              MemberDecorate 516(B1) 4 ColMajor
                              MemberDecorate 516(B1) 4 Offset 48
                              MemberDecorate 516(B1) 4 MatrixStride 16
                              MemberDecorate 516(B1) 5 ColMajor
                              MemberDecorate 516(B1) 5 Offset 80
                              MemberDecorate 516(B1) 5 MatrixStride 16
                              MemberDecorate 516(B1) 6 Offset 144
                              MemberDecorate 516(B1) 7 Offset 160
                              Decorate 516(B1) Block
                              Decorate 518 DescriptorSet 0
                              Decorate 519 ArrayStride 2
                              Decorate 520 ArrayStride 12
                              MemberDecorate 521(S) 0 Offset 0
                              MemberDecorate 521(S) 1 Offset 4
                              MemberDecorate 521(S) 2 Offset 8
                              Decorate 522 ArrayStride 16
                              MemberDecorate 523(B2) 0 Offset 0
                              MemberDecorate 523(B2) 1 Offset 4
                              MemberDecorate 523(B2) 2 Offset 8
                              MemberDecorate 523(B2) 3 Offset 14
                              MemberDecorate 523(B2) 4 RowMajor
                              MemberDecorate 523(B2) 4 Offset 20
                              MemberDecorate 523(B2) 4 MatrixStride 4
                              MemberDecorate 523(B2) 5 RowMajor
                              MemberDecorate 523(B2) 5 Offset 32
                              MemberDecorate 523(B2) 5 MatrixStride 4
                              MemberDecorate 523(B2) 6 Offset 56
                              MemberDecorate 523(B2) 7 Offset 72
                              Decorate 523(B2) BufferBlock
                              Decorate 525 DescriptorSet 0
                              Decorate 526(sf16) SpecId 100
                              Decorate 527(sf) SpecId 101
                              Decorate 528(sd) SpecId 102
               2:             TypeVoid
               3:             TypeFunction 2
              28:             TypeFloat 16
              29:             TypeVector 28(float) 2
              30:             TypePointer Function 29(fvec2)
              32:   28(float) Constant 16
              33:             TypeInt 32 0
              34:     33(int) Constant 0
              35:             TypePointer Function 28(float)
              37:   28(float) Constant 46080
              38:   28(float) Constant 10158
              39:   29(fvec2) ConstantComposite 37 38
              56:   28(float) Constant 15360
              62:             TypeMatrix 29(fvec2) 2
              63:             TypePointer Function 62
              90:     33(int) Constant 1
             109:             TypeBool
             110:             TypePointer Function 109(bool)
             151:             TypeVector 28(float) 3
             152:             TypePointer Function 151(fvec3)
             154:             TypeVector 109(bool) 3
             155:             TypePointer Function 154(bvec3)
             158:   28(float) Constant 0
             159:  151(fvec3) ConstantComposite 158 158 158
             160:  151(fvec3) ConstantComposite 56 56 56
             164:             TypeFloat 32
             165:             TypeVector 164(float) 3
             166:             TypePointer Function 165(fvec3)
             172:             TypeFloat 64
             173:             TypeVector 172(float) 3
             174:             TypePointer Function 173(fvec3)
             183:             TypeInt 32 1
             184:             TypeVector 183(int) 3
             185:             TypePointer Function 184(ivec3)
             191:             TypeVector 33(int) 3
             192:             TypePointer Function 191(ivec3)
             198:             TypeInt 64 1
             199:             TypeVector 198(int) 3
             200:             TypePointer Function 199(ivec3)
             206:             TypeInt 64 0
             207:             TypeVector 206(int) 3
             208:             TypePointer Function 207(ivec3)
             214:             TypeVector 28(float) 4
             215:             TypePointer Function 214(fvec4)
    364(ResType):             TypeStruct 151(fvec3) 184(ivec3)
             371:             TypePointer Function 33(int)
             406:             TypeMatrix 151(fvec3) 2
             407:             TypePointer Function 406
             425:             TypeMatrix 29(fvec2) 3
             426:             TypePointer Function 425
             431:             TypeMatrix 151(fvec3) 3
             432:             TypePointer Function 431
             436:             TypeMatrix 214(fvec4) 4
             437:             TypePointer Function 436
             464:             TypePointer Input 151(fvec3)
      465(if16v):    464(ptr) Variable Input
             466:             TypePointer Input 28(float)
             503:    183(int) Constant 1
             508:   28(float) Constant 14336
             509:   29(fvec2) ConstantComposite 508 508
             511:     33(int) Constant 2
             512:             TypeArray 28(float) 511
             513:             TypeArray 406 511
          514(S):             TypeStruct 28(float) 29(fvec2) 151(fvec3)
             515:             TypeArray 514(S) 511
         516(B1):             TypeStruct 28(float) 29(fvec2) 151(fvec3) 512 406 513 514(S) 515
             517:             TypePointer Uniform 516(B1)
             518:    517(ptr) Variable Uniform
             519:             TypeArray 28(float) 511
             520:             TypeArray 406 511
          521(S):             TypeStruct 28(float) 29(fvec2) 151(fvec3)
             522:             TypeArray 521(S) 511
         523(B2):             TypeStruct 28(float) 29(fvec2) 151(fvec3) 519 406 520 521(S) 522
             524:             TypePointer Uniform 523(B2)
             525:    524(ptr) Variable Uniform
       526(sf16):   28(float) SpecConstant 12288
         527(sf):  164(float) SpecConstant 1048576000
         528(sd):  172(float) SpecConstant 0 1071644672
             529:  164(float) SpecConstantOp 115 526(sf16)
             530:  164(float) SpecConstantOp 115 526(sf16)
             531:  172(float) SpecConstantOp 115 530
             532:   28(float) SpecConstantOp 115 527(sf)
             533:   28(float) SpecConstantOp 115 528(sd)
         4(main):           2 Function None 3
               5:             Label
                              Return
                              FunctionEnd
     6(literal():           2 Function None 3
               7:             Label
        31(f16v):     30(ptr) Variable Function
              36:     35(ptr) AccessChain 31(f16v) 34
                              Store 36 32
              40:   29(fvec2) Load 31(f16v)
              41:   29(fvec2) FAdd 40 39
                              Store 31(f16v) 41
                              Return
                              FunctionEnd
   8(operators():           2 Function None 3
               9:             Label
        42(f16v):     30(ptr) Variable Function
        64(f16m):     63(ptr) Variable Function
         87(f16):     35(ptr) Variable Function
          111(b):    110(ptr) Variable Function
              43:   29(fvec2) Load 42(f16v)
              44:   29(fvec2) Load 42(f16v)
              45:   29(fvec2) FAdd 44 43
                              Store 42(f16v) 45
              46:   29(fvec2) Load 42(f16v)
              47:   29(fvec2) Load 42(f16v)
              48:   29(fvec2) FSub 47 46
                              Store 42(f16v) 48
              49:   29(fvec2) Load 42(f16v)
              50:   29(fvec2) Load 42(f16v)
              51:   29(fvec2) FMul 50 49
                              Store 42(f16v) 51
              52:   29(fvec2) Load 42(f16v)
              53:   29(fvec2) Load 42(f16v)
              54:   29(fvec2) FDiv 53 52
                              Store 42(f16v) 54
              55:   29(fvec2) Load 42(f16v)
              57:   29(fvec2) CompositeConstruct 56 56
              58:   29(fvec2) FAdd 55 57
                              Store 42(f16v) 58
              59:   29(fvec2) Load 42(f16v)
              60:   29(fvec2) CompositeConstruct 56 56
              61:   29(fvec2) FSub 59 60
                              Store 42(f16v) 61
              65:          62 Load 64(f16m)
              66:   29(fvec2) CompositeConstruct 56 56
              67:   29(fvec2) CompositeExtract 65 0
              68:   29(fvec2) FAdd 67 66
              69:   29(fvec2) CompositeExtract 65 1
              70:   29(fvec2) FAdd 69 66
              71:          62 CompositeConstruct 68 70
                              Store 64(f16m) 71
              72:          62 Load 64(f16m)
              73:   29(fvec2) CompositeConstruct 56 56
              74:   29(fvec2) CompositeExtract 72 0
              75:   29(fvec2) FSub 74 73
              76:   29(fvec2) CompositeExtract 72 1
              77:   29(fvec2) FSub 76 73
              78:          62 CompositeConstruct 75 77
                              Store 64(f16m) 78
              79:   29(fvec2) Load 42(f16v)
              80:   29(fvec2) FNegate 79
                              Store 42(f16v) 80
              81:          62 Load 64(f16m)
              82:   29(fvec2) CompositeExtract 81 0
              83:   29(fvec2) FNegate 82
              84:   29(fvec2) CompositeExtract 81 1
              85:   29(fvec2) FNegate 84
              86:          62 CompositeConstruct 83 85
                              Store 64(f16m) 86
              88:     35(ptr) AccessChain 42(f16v) 34
              89:   28(float) Load 88
              91:     35(ptr) AccessChain 42(f16v) 90
              92:   28(float) Load 91
              93:   28(float) FAdd 89 92
                              Store 87(f16) 93
              94:     35(ptr) AccessChain 42(f16v) 34
              95:   28(float) Load 94
              96:     35(ptr) AccessChain 42(f16v) 90
              97:   28(float) Load 96
              98:   28(float) FSub 95 97
                              Store 87(f16) 98
              99:     35(ptr) AccessChain 42(f16v) 34
             100:   28(float) Load 99
             101:     35(ptr) AccessChain 42(f16v) 90
             102:   28(float) Load 101
             103:   28(float) FMul 100 102
                              Store 87(f16) 103
             104:     35(ptr) AccessChain 42(f16v) 34
             105:   28(float) Load 104
             106:     35(ptr) AccessChain 42(f16v) 90
             107:   28(float) Load 106
             108:   28(float) FDiv 105 107
                              Store 87(f16) 108
             112:     35(ptr) AccessChain 42(f16v) 34
             113:   28(float) Load 112
             114:   28(float) Load 87(f16)
             115:   109(bool) FOrdNotEqual 113 114
                              Store 111(b) 115
             116:     35(ptr) AccessChain 42(f16v) 90
             117:   28(float) Load 116
             118:   28(float) Load 87(f16)
             119:   109(bool) FOrdEqual 117 118
                              Store 111(b) 119
             120:     35(ptr) AccessChain 42(f16v) 34
             121:   28(float) Load 120
             122:   28(float) Load 87(f16)
             123:   109(bool) FOrdGreaterThan 121 122
                              Store 111(b) 123
             124:     35(ptr) AccessChain 42(f16v) 90
             125:   28(float) Load 124
             126:   28(float) Load 87(f16)
             127:   109(bool) FOrdLessThan 125 126
                              Store 111(b) 127
             128:     35(ptr) AccessChain 42(f16v) 34
             129:   28(float) Load 128
             130:   28(float) Load 87(f16)
             131:   109(bool) FOrdGreaterThanEqual 129 130
                              Store 111(b) 131
             132:     35(ptr) AccessChain 42(f16v) 90
             133:   28(float) Load 132
             134:   28(float) Load 87(f16)
             135:   109(bool) FOrdLessThanEqual 133 134
                              Store 111(b) 135
             136:   29(fvec2) Load 42(f16v)
             137:   28(float) Load 87(f16)
             138:   29(fvec2) VectorTimesScalar 136 137
                              Store 42(f16v) 138
             139:          62 Load 64(f16m)
             140:   28(float) Load 87(f16)
             141:          62 MatrixTimesScalar 139 140
                              Store 64(f16m) 141
             142:          62 Load 64(f16m)
             143:   29(fvec2) Load 42(f16v)
             144:   29(fvec2) MatrixTimesVector 142 143
                              Store 42(f16v) 144
             145:   29(fvec2) Load 42(f16v)
             146:          62 Load 64(f16m)
             147:   29(fvec2) VectorTimesMatrix 145 146
                              Store 42(f16v) 147
             148:          62 Load 64(f16m)
             149:          62 Load 64(f16m)
             150:          62 MatrixTimesMatrix 148 149
                              Store 64(f16m) 150
                              Return
                              FunctionEnd
   10(typeCast():           2 Function None 3
              11:             Label
       153(f16v):    152(ptr) Variable Function
         156(bv):    155(ptr) Variable Function
         167(fv):    166(ptr) Variable Function
         175(dv):    174(ptr) Variable Function
         186(iv):    185(ptr) Variable Function
         193(uv):    192(ptr) Variable Function
       201(i64v):    200(ptr) Variable Function
       209(u64v):    208(ptr) Variable Function
             157:  154(bvec3) Load 156(bv)
             161:  151(fvec3) Select 157 160 159
                              Store 153(f16v) 161
             162:  151(fvec3) Load 153(f16v)
             163:  154(bvec3) FOrdNotEqual 162 159
                              Store 156(bv) 163
             168:  165(fvec3) Load 167(fv)
             169:  151(fvec3) FConvert 168
                              Store 153(f16v) 169
             170:  151(fvec3) Load 153(f16v)
             171:  165(fvec3) FConvert 170
                              Store 167(fv) 171
             176:  173(fvec3) Load 175(dv)
             177:  151(fvec3) FConvert 176
                              Store 153(f16v) 177
             178:  173(fvec3) Load 175(dv)
             179:  172(float) CompositeExtract 178 0
             180:  172(float) CompositeExtract 178 1
             181:  172(float) CompositeExtract 178 2
             182:  173(fvec3) CompositeConstruct 179 180 181
                              Store 175(dv) 182
             187:  184(ivec3) Load 186(iv)
             188:  151(fvec3) ConvertSToF 187
                              Store 153(f16v) 188
             189:  151(fvec3) Load 153(f16v)
             190:  184(ivec3) ConvertFToS 189
                              Store 186(iv) 190
             194:  191(ivec3) Load 193(uv)
             195:  151(fvec3) ConvertUToF 194
                              Store 153(f16v) 195
             196:  151(fvec3) Load 153(f16v)
             197:  191(ivec3) ConvertFToU 196
                              Store 193(uv) 197
             202:  199(ivec3) Load 201(i64v)
             203:  151(fvec3) ConvertSToF 202
                              Store 153(f16v) 203
             204:  151(fvec3) Load 153(f16v)
             205:  199(ivec3) ConvertFToS 204
                              Store 201(i64v) 205
             210:  207(ivec3) Load 209(u64v)
             211:  151(fvec3) ConvertUToF 210
                              Store 153(f16v) 211
             212:  151(fvec3) Load 153(f16v)
             213:  207(ivec3) ConvertFToU 212
                              Store 209(u64v) 213
                              Return
                              FunctionEnd
12(builtinAngleTrigFuncs():           2 Function None 3
              13:             Label
      216(f16v2):    215(ptr) Variable Function
      217(f16v1):    215(ptr) Variable Function
             218:  214(fvec4) Load 217(f16v1)
             219:  214(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 218
                              Store 216(f16v2) 219
             220:  214(fvec4) Load 217(f16v1)
             221:  214(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 220
                              Store 216(f16v2) 221
             222:  214(fvec4) Load 217(f16v1)
             223:  214(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 222
                              Store 216(f16v2) 223
             224:  214(fvec4) Load 217(f16v1)
             225:  214(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 224
                              Store 216(f16v2) 225
             226:  214(fvec4) Load 217(f16v1)
             227:  214(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 226
                              Store 216(f16v2) 227
             228:  214(fvec4) Load 217(f16v1)
             229:  214(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 228
                              Store 216(f16v2) 229
             230:  214(fvec4) Load 217(f16v1)
             231:  214(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 230
                              Store 216(f16v2) 231
             232:  214(fvec4) Load 217(f16v1)
             233:  214(fvec4) Load 216(f16v2)
             234:  214(fvec4) ExtInst 1(GLSL.std.450) 25(Atan2) 232 233
                              Store 216(f16v2) 234
             235:  214(fvec4) Load 217(f16v1)
             236:  214(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 235
                              Store 216(f16v2) 236
             237:  214(fvec4) Load 217(f16v1)
             238:  214(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 237
                              Store 216(f16v2) 238
             239:  214(fvec4) Load 217(f16v1)
             240:  214(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 239
                              Store 216(f16v2) 240
             241:  214(fvec4) Load 217(f16v1)
             242:  214(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 241
                              Store 216(f16v2) 242
             243:  214(fvec4) Load 217(f16v1)
             244:  214(fvec4) ExtInst 1(GLSL.std.450) 22(Asinh) 243
                              Store 216(f16v2) 244
             245:  214(fvec4) Load 217(f16v1)
             246:  214(fvec4) ExtInst 1(GLSL.std.450) 23(Acosh) 245
                              Store 216(f16v2) 246
             247:  214(fvec4) Load 217(f16v1)
             248:  214(fvec4) ExtInst 1(GLSL.std.450) 24(Atanh) 247
                              Store 216(f16v2) 248
                              Return
                              FunctionEnd
14(builtinExpFuncs():           2 Function None 3
              15:             Label
      249(f16v2):     30(ptr) Variable Function
      250(f16v1):     30(ptr) Variable Function
             251:   29(fvec2) Load 250(f16v1)
             252:   29(fvec2) Load 249(f16v2)
             253:   29(fvec2) ExtInst 1(GLSL.std.450) 26(Pow) 251 252
                              Store 249(f16v2) 253
             254:   29(fvec2) Load 250(f16v1)
             255:   29(fvec2) ExtInst 1(GLSL.std.450) 27(Exp) 254
                              Store 249(f16v2) 255
             256:   29(fvec2) Load 250(f16v1)
             257:   29(fvec2) ExtInst 1(GLSL.std.450) 28(Log) 256
                              Store 249(f16v2) 257
             258:   29(fvec2) Load 250(f16v1)
             259:   29(fvec2) ExtInst 1(GLSL.std.450) 29(Exp2) 258
                              Store 249(f16v2) 259
             260:   29(fvec2) Load 250(f16v1)
             261:   29(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 260
                              Store 249(f16v2) 261
             262:   29(fvec2) Load 250(f16v1)
             263:   29(fvec2) ExtInst 1(GLSL.std.450) 31(Sqrt) 262
                              Store 249(f16v2) 263
             264:   29(fvec2) Load 250(f16v1)
             265:   29(fvec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 264
                              Store 249(f16v2) 265
                              Return
                              FunctionEnd
16(builtinCommonFuncs():           2 Function None 3
              17:             Label
      266(f16v2):    152(ptr) Variable Function
      267(f16v1):    152(ptr) Variable Function
        288(f16):     35(ptr) Variable Function
      292(f16v3):    152(ptr) Variable Function
         332(bv):    155(ptr) Variable Function
          353(b):    110(ptr) Variable Function
         363(iv):    185(ptr) Variable Function
             268:  151(fvec3) Load 267(f16v1)
             269:  151(fvec3) ExtInst 1(GLSL.std.450) 4(FAbs) 268
                              Store 266(f16v2) 269
             270:  151(fvec3) Load 267(f16v1)
             271:  151(fvec3) ExtInst 1(GLSL.std.450) 6(FSign) 270
                              Store 266(f16v2) 271
             272:  151(fvec3) Load 267(f16v1)
             273:  151(fvec3) ExtInst 1(GLSL.std.450) 8(Floor) 272
                              Store 266(f16v2) 273
             274:  151(fvec3) Load 267(f16v1)
             275:  151(fvec3) ExtInst 1(GLSL.std.450) 3(Trunc) 274
                              Store 266(f16v2) 275
             276:  151(fvec3) Load 267(f16v1)
             277:  151(fvec3) ExtInst 1(GLSL.std.450) 1(Round) 276
                              Store 266(f16v2) 277
             278:  151(fvec3) Load 267(f16v1)
             279:  151(fvec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 278
                              Store 266(f16v2) 279
             280:  151(fvec3) Load 267(f16v1)
             281:  151(fvec3) ExtInst 1(GLSL.std.450) 9(Ceil) 280
                              Store 266(f16v2) 281
             282:  151(fvec3) Load 267(f16v1)
             283:  151(fvec3) ExtInst 1(GLSL.std.450) 10(Fract) 282
                              Store 266(f16v2) 283
             284:  151(fvec3) Load 267(f16v1)
             285:  151(fvec3) Load 266(f16v2)
             286:  151(fvec3) FMod 284 285
                              Store 266(f16v2) 286
             287:  151(fvec3) Load 267(f16v1)
             289:   28(float) Load 288(f16)
             290:  151(fvec3) CompositeConstruct 289 289 289
             291:  151(fvec3) FMod 287 290
                              Store 266(f16v2) 291
             293:  151(fvec3) Load 267(f16v1)
             294:  151(fvec3) ExtInst 1(GLSL.std.450) 35(Modf) 293 266(f16v2)
                              Store 292(f16v3) 294
             295:  151(fvec3) Load 267(f16v1)
             296:  151(fvec3) Load 266(f16v2)
             297:  151(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 295 296
                              Store 292(f16v3) 297
             298:  151(fvec3) Load 267(f16v1)
             299:   28(float) Load 288(f16)
             300:  151(fvec3) CompositeConstruct 299 299 299
             301:  151(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 298 300
                              Store 292(f16v3) 301
             302:  151(fvec3) Load 267(f16v1)
             303:  151(fvec3) Load 266(f16v2)
             304:  151(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 302 303
                              Store 292(f16v3) 304
             305:  151(fvec3) Load 267(f16v1)
             306:   28(float) Load 288(f16)
             307:  151(fvec3) CompositeConstruct 306 306 306
             308:  151(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 305 307
                              Store 292(f16v3) 308
             309:  151(fvec3) Load 267(f16v1)
             310:   28(float) Load 288(f16)
             311:     35(ptr) AccessChain 266(f16v2) 34
             312:   28(float) Load 311
             313:  151(fvec3) CompositeConstruct 310 310 310
             314:  151(fvec3) CompositeConstruct 312 312 312
             315:  151(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 309 313 314
                              Store 292(f16v3) 315
             316:  151(fvec3) Load 267(f16v1)
             317:  151(fvec3) Load 266(f16v2)
             318:   28(float) Load 288(f16)
             319:  151(fvec3) CompositeConstruct 318 318 318
             320:  151(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 316 317 319
                              Store 292(f16v3) 320
             321:  151(fvec3) Load 267(f16v1)
             322:  151(fvec3) Load 266(f16v2)
             323:   28(float) Load 288(f16)
             324:  151(fvec3) CompositeConstruct 323 323 323
             325:  151(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 321 322 324
                              Store 292(f16v3) 325
             326:  151(fvec3) Load 267(f16v1)
             327:  151(fvec3) Load 266(f16v2)
             328:  151(fvec3) Load 292(f16v3)
             329:  151(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 326 327 328
                              Store 292(f16v3) 329
             330:  151(fvec3) Load 267(f16v1)
             331:  151(fvec3) Load 266(f16v2)
             333:  154(bvec3) Load 332(bv)
             334:  151(fvec3) Select 333 331 330
                              Store 292(f16v3) 334
             335:  151(fvec3) Load 267(f16v1)
             336:  151(fvec3) Load 266(f16v2)
             337:  151(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 335 336
                              Store 292(f16v3) 337
             338:   28(float) Load 288(f16)
             339:  151(fvec3) Load 292(f16v3)
             340:  151(fvec3) CompositeConstruct 338 338 338
             341:  151(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 340 339
                              Store 292(f16v3) 341
             342:  151(fvec3) Load 267(f16v1)
             343:  151(fvec3) Load 266(f16v2)
             344:  151(fvec3) Load 292(f16v3)
             345:  151(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 342 343 344
                              Store 292(f16v3) 345
             346:   28(float) Load 288(f16)
             347:     35(ptr) AccessChain 267(f16v1) 34
             348:   28(float) Load 347
             349:  151(fvec3) Load 266(f16v2)
             350:  151(fvec3) CompositeConstruct 346 346 346
             351:  151(fvec3) CompositeConstruct 348 348 348
             352:  151(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 350 351 349
                              Store 292(f16v3) 352
             354:   28(float) Load 288(f16)
             355:   109(bool) IsNan 354
                              Store 353(b) 355
             356:  151(fvec3) Load 267(f16v1)
             357:  154(bvec3) IsInf 356
                              Store 332(bv) 357
             358:  151(fvec3) Load 267(f16v1)
             359:  151(fvec3) Load 266(f16v2)
             360:  151(fvec3) Load 292(f16v3)
             361:  151(fvec3) ExtInst 1(GLSL.std.450) 50(Fma) 358 359 360
                              Store 292(f16v3) 361
             362:  151(fvec3) Load 267(f16v1)
             365:364(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 362
             366:  184(ivec3) CompositeExtract 365 1
                              Store 363(iv) 366
             367:  151(fvec3) CompositeExtract 365 0
                              Store 266(f16v2) 367
             368:  151(fvec3) Load 267(f16v1)
             369:  184(ivec3) Load 363(iv)
             370:  151(fvec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 368 369
                              Store 266(f16v2) 370
                              Return
                              FunctionEnd
18(builtinPackUnpackFuncs():           2 Function None 3
              19:             Label
          372(u):    371(ptr) Variable Function
       373(f16v):     30(ptr) Variable Function
             374:   29(fvec2) Load 373(f16v)
             375:     33(int) Bitcast 374
                              Store 372(u) 375
             376:     33(int) Load 372(u)
             377:   29(fvec2) Bitcast 376
                              Store 373(f16v) 377
                              Return
                              FunctionEnd
20(builtinGeometryFuncs():           2 Function None 3
              21:             Label
        378(f16):     35(ptr) Variable Function
      379(f16v1):    152(ptr) Variable Function
      383(f16v2):    152(ptr) Variable Function
      389(f16v3):    152(ptr) Variable Function
             380:  151(fvec3) Load 379(f16v1)
             381:   28(float) ExtInst 1(GLSL.std.450) 66(Length) 380
                              Store 378(f16) 381
             382:  151(fvec3) Load 379(f16v1)
             384:  151(fvec3) Load 383(f16v2)
             385:   28(float) ExtInst 1(GLSL.std.450) 67(Distance) 382 384
                              Store 378(f16) 385
             386:  151(fvec3) Load 379(f16v1)
             387:  151(fvec3) Load 383(f16v2)
             388:   28(float) Dot 386 387
                              Store 378(f16) 388
             390:  151(fvec3) Load 379(f16v1)
             391:  151(fvec3) Load 383(f16v2)
             392:  151(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 390 391
                              Store 389(f16v3) 392
             393:  151(fvec3) Load 379(f16v1)
             394:  151(fvec3) ExtInst 1(GLSL.std.450) 69(Normalize) 393
                              Store 383(f16v2) 394
             395:  151(fvec3) Load 379(f16v1)
             396:  151(fvec3) Load 383(f16v2)
             397:  151(fvec3) Load 389(f16v3)
             398:  151(fvec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 395 396 397
                              Store 389(f16v3) 398
             399:  151(fvec3) Load 379(f16v1)
             400:  151(fvec3) Load 383(f16v2)
             401:  151(fvec3) ExtInst 1(GLSL.std.450) 71(Reflect) 399 400
                              Store 389(f16v3) 401
             402:  151(fvec3) Load 379(f16v1)
             403:  151(fvec3) Load 383(f16v2)
             404:   28(float) Load 378(f16)
             405:  151(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 402 403 404
                              Store 389(f16v3) 405
                              Return
                              FunctionEnd
22(builtinMatrixFuncs():           2 Function None 3
              23:             Label
      408(f16m3):    407(ptr) Variable Function
      409(f16m1):    407(ptr) Variable Function
      411(f16m2):    407(ptr) Variable Function
      420(f16v1):    152(ptr) Variable Function
      422(f16v2):     30(ptr) Variable Function
      427(f16m4):    426(ptr) Variable Function
        430(f16):     35(ptr) Variable Function
      433(f16m5):    432(ptr) Variable Function
      438(f16m6):    437(ptr) Variable Function
      439(f16m7):    437(ptr) Variable Function
             410:         406 Load 409(f16m1)
             412:         406 Load 411(f16m2)
             413:  151(fvec3) CompositeExtract 410 0
             414:  151(fvec3) CompositeExtract 412 0
             415:  151(fvec3) FMul 413 414
             416:  151(fvec3) CompositeExtract 410 1
             417:  151(fvec3) CompositeExtract 412 1
             418:  151(fvec3) FMul 416 417
             419:         406 CompositeConstruct 415 418
                              Store 408(f16m3) 419
             421:  151(fvec3) Load 420(f16v1)
             423:   29(fvec2) Load 422(f16v2)
             424:         406 OuterProduct 421 423
                              Store 409(f16m1) 424
             428:         406 Load 409(f16m1)
             429:         425 Transpose 428
                              Store 427(f16m4) 429
             434:         431 Load 433(f16m5)
             435:   28(float) ExtInst 1(GLSL.std.450) 33(Determinant) 434
                              Store 430(f16) 435
             440:         436 Load 439(f16m7)
             441:         436 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 440
                              Store 438(f16m6) 441
                              Return
                              FunctionEnd
24(builtinVecRelFuncs():           2 Function None 3
              25:             Label
         442(bv):    155(ptr) Variable Function
      443(f16v1):    152(ptr) Variable Function
      445(f16v2):    152(ptr) Variable Function
             444:  151(fvec3) Load 443(f16v1)
             446:  151(fvec3) Load 445(f16v2)
             447:  154(bvec3) FOrdLessThan 444 446
                              Store 442(bv) 447
             448:  151(fvec3) Load 443(f16v1)
             449:  151(fvec3) Load 445(f16v2)
             450:  154(bvec3) FOrdLessThanEqual 448 449
                              Store 442(bv) 450
             451:  151(fvec3) Load 443(f16v1)
             452:  151(fvec3) Load 445(f16v2)
             453:  154(bvec3) FOrdGreaterThan 451 452
                              Store 442(bv) 453
             454:  151(fvec3) Load 443(f16v1)
             455:  151(fvec3) Load 445(f16v2)
             456:  154(bvec3) FOrdGreaterThanEqual 454 455
                              Store 442(bv) 456
             457:  151(fvec3) Load 443(f16v1)
             458:  151(fvec3) Load 445(f16v2)
             459:  154(bvec3) FOrdEqual 457 458
                              Store 442(bv) 459
             460:  151(fvec3) Load 443(f16v1)
             461:  151(fvec3) Load 445(f16v2)
             462:  154(bvec3) FOrdNotEqual 460 461
                              Store 442(bv) 462
                              Return
                              FunctionEnd
26(builtinFragProcFuncs():           2 Function None 3
              27:             Label
       463(f16v):    152(ptr) Variable Function
             467:    466(ptr) AccessChain 465(if16v) 34
             468:   28(float) Load 467
             469:   28(float) DPdx 468
             470:     35(ptr) AccessChain 463(f16v) 34
                              Store 470 469
             471:    466(ptr) AccessChain 465(if16v) 90
             472:   28(float) Load 471
             473:   28(float) DPdy 472
             474:     35(ptr) AccessChain 463(f16v) 90
                              Store 474 473
             475:  151(fvec3) Load 465(if16v)
             476:   29(fvec2) VectorShuffle 475 475 0 1
             477:   29(fvec2) DPdxFine 476
             478:  151(fvec3) Load 463(f16v)
             479:  151(fvec3) VectorShuffle 478 477 3 4 2
                              Store 463(f16v) 479
             480:  151(fvec3) Load 465(if16v)
             481:   29(fvec2) VectorShuffle 480 480 0 1
             482:   29(fvec2) DPdyFine 481
             483:  151(fvec3) Load 463(f16v)
             484:  151(fvec3) VectorShuffle 483 482 3 4 2
                              Store 463(f16v) 484
             485:  151(fvec3) Load 465(if16v)
             486:  151(fvec3) DPdxCoarse 485
                              Store 463(f16v) 486
             487:  151(fvec3) Load 465(if16v)
             488:  151(fvec3) DPdxCoarse 487
                              Store 463(f16v) 488
             489:    466(ptr) AccessChain 465(if16v) 34
             490:   28(float) Load 489
             491:   28(float) Fwidth 490
             492:     35(ptr) AccessChain 463(f16v) 34
                              Store 492 491
             493:  151(fvec3) Load 465(if16v)
             494:   29(fvec2) VectorShuffle 493 493 0 1
             495:   29(fvec2) FwidthFine 494
             496:  151(fvec3) Load 463(f16v)
             497:  151(fvec3) VectorShuffle 496 495 3 4 2
                              Store 463(f16v) 497
             498:  151(fvec3) Load 465(if16v)
             499:  151(fvec3) FwidthCoarse 498
                              Store 463(f16v) 499
             500:    466(ptr) AccessChain 465(if16v) 34
             501:   28(float) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 500
             502:     35(ptr) AccessChain 463(f16v) 34
                              Store 502 501
             504:  151(fvec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 465(if16v) 503
             505:   29(fvec2) VectorShuffle 504 504 0 1
             506:  151(fvec3) Load 463(f16v)
             507:  151(fvec3) VectorShuffle 506 505 3 4 2
                              Store 463(f16v) 507
             510:  151(fvec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 465(if16v) 509
                              Store 463(f16v) 510
                              Return
                              FunctionEnd
