spv.8bitstorage-ssbo.vert
// Module Version 10000
// Generated by (magic number): 80007
// Id's are bound by 28

                              Capability Shader
                              Capability CapabilityUniformAndStorageBuffer8BitAccess
                              Extension  "SPV_KHR_8bit_storage"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main" 9 18
                              Source GLSL 450
                              SourceExtension  "GL_EXT_shader_8bit_storage"
                              Name 4  "main"
                              Name 9  "color"
                              Name 12  "Vertices"
                              MemberName 12(Vertices) 0  "vertices"
                              Name 14  ""
                              Name 18  "gl_VertexIndex"
                              Decorate 9(color) Location 0
                              Decorate 11 ArrayStride 1
                              MemberDecorate 12(Vertices) 0 NonWritable
                              MemberDecorate 12(Vertices) 0 Offset 0
                              Decorate 12(Vertices) BufferBlock
                              Decorate 14 DescriptorSet 0
                              Decorate 14 Binding 0
                              Decorate 18(gl_VertexIndex) BuiltIn VertexIndex
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypePointer Output 7(fvec4)
        9(color):      8(ptr) Variable Output
              10:             TypeInt 8 0
              11:             TypeRuntimeArray 10(int8_t)
    12(Vertices):             TypeStruct 11
              13:             TypePointer Uniform 12(Vertices)
              14:     13(ptr) Variable Uniform
              15:             TypeInt 32 1
              16:     15(int) Constant 0
              17:             TypePointer Input 15(int)
18(gl_VertexIndex):     17(ptr) Variable Input
              20:             TypePointer Uniform 10(int8_t)
              23:             TypeInt 32 0
         4(main):           2 Function None 3
               5:             Label
              19:     15(int) Load 18(gl_VertexIndex)
              21:     20(ptr) AccessChain 14 16 19
              22:  10(int8_t) Load 21
              24:     23(int) UConvert 22
              25:     15(int) Bitcast 24
              26:    6(float) ConvertSToF 25
              27:    7(fvec4) CompositeConstruct 26 26 26 26
                              Store 9(color) 27
                              Return
                              FunctionEnd
