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

                              Capability Shader
                              Capability Float16
                              Capability Int64
                              Capability Int16
                              Capability Int8
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main"
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 460
                              SourceExtension  "GL_EXT_shader_explicit_arithmetic_types_float16"
                              SourceExtension  "GL_EXT_shader_explicit_arithmetic_types_int16"
                              SourceExtension  "GL_EXT_shader_explicit_arithmetic_types_int64"
                              SourceExtension  "GL_EXT_shader_explicit_arithmetic_types_int8"
                              Name 4  "main"
                              Name 8  "i8"
                              Name 11  "u8"
                              Name 14  "i16"
                              Name 17  "u16"
                              Name 20  "i64"
                              Name 23  "u64"
                              Name 26  "f16"
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 8 1
               7:             TypePointer Private 6(int8_t)
           8(i8):      7(ptr) Variable Private
               9:             TypeInt 8 0
              10:             TypePointer Private 9(int8_t)
          11(u8):     10(ptr) Variable Private
              12:             TypeInt 16 1
              13:             TypePointer Private 12(int16_t)
         14(i16):     13(ptr) Variable Private
              15:             TypeInt 16 0
              16:             TypePointer Private 15(int16_t)
         17(u16):     16(ptr) Variable Private
              18:             TypeInt 64 1
              19:             TypePointer Private 18(int64_t)
         20(i64):     19(ptr) Variable Private
              21:             TypeInt 64 0
              22:             TypePointer Private 21(int64_t)
         23(u64):     22(ptr) Variable Private
              24:             TypeFloat 16
              25:             TypePointer Private 24(float16_t)
         26(f16):     25(ptr) Variable Private
         4(main):           2 Function None 3
               5:             Label
                              Return
                              FunctionEnd
