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