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

                              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 29  "f(i81;u81;i161;u161;i641;u641;f161;"
                              Name 22  "i8"
                              Name 23  "u8"
                              Name 24  "i16"
                              Name 25  "u16"
                              Name 26  "i64"
                              Name 27  "u64"
                              Name 28  "f16"
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 8 1
               7:             TypePointer Function 6(int8_t)
               8:             TypeInt 8 0
               9:             TypePointer Function 8(int8_t)
              10:             TypeInt 16 1
              11:             TypePointer Function 10(int16_t)
              12:             TypeInt 16 0
              13:             TypePointer Function 12(int16_t)
              14:             TypeInt 64 1
              15:             TypePointer Function 14(int64_t)
              16:             TypeInt 64 0
              17:             TypePointer Function 16(int64_t)
              18:             TypeFloat 16
              19:             TypePointer Function 18(float16_t)
              20:             TypeInt 32 1
              21:             TypeFunction 20(int) 7(ptr) 9(ptr) 11(ptr) 13(ptr) 15(ptr) 17(ptr) 19(ptr)
              31:     20(int) Constant 0
         4(main):           2 Function None 3
               5:             Label
                              Return
                              FunctionEnd
29(f(i81;u81;i161;u161;i641;u641;f161;):     20(int) Function None 21
          22(i8):      7(ptr) FunctionParameter
          23(u8):      9(ptr) FunctionParameter
         24(i16):     11(ptr) FunctionParameter
         25(u16):     13(ptr) FunctionParameter
         26(i64):     15(ptr) FunctionParameter
         27(u64):     17(ptr) FunctionParameter
         28(f16):     19(ptr) FunctionParameter
              30:             Label
                              ReturnValue 31
                              FunctionEnd
