spv.length.frag
// Module Version 10000
// Generated by (magic number): 80006
// Id's are bound by 33

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 14 26
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 140
                              Name 4  "main"
                              Name 9  "t"
                              Name 14  "v"
                              Name 26  "gl_FragColor"
                              Name 32  "u"
                              Decorate 26(gl_FragColor) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 2
               8:             TypePointer Function 7(fvec2)
              10:             TypeInt 32 0
              11:     10(int) Constant 2
              12:             TypeArray 7(fvec2) 11
              13:             TypePointer Input 12
           14(v):     13(ptr) Variable Input
              15:             TypeInt 32 1
              16:     15(int) Constant 0
              17:             TypePointer Input 7(fvec2)
              20:     15(int) Constant 1
              24:             TypeVector 6(float) 4
              25:             TypePointer Output 24(fvec4)
26(gl_FragColor):     25(ptr) Variable Output
              27:    6(float) Constant 1106247680
              28:   24(fvec4) ConstantComposite 27 27 27 27
              29:     10(int) Constant 3
              30:             TypeArray 24(fvec4) 29
              31:             TypePointer Private 30
           32(u):     31(ptr) Variable Private
         4(main):           2 Function None 3
               5:             Label
            9(t):      8(ptr) Variable Function
              18:     17(ptr) AccessChain 14(v) 16
              19:    7(fvec2) Load 18
              21:     17(ptr) AccessChain 14(v) 20
              22:    7(fvec2) Load 21
              23:    7(fvec2) FAdd 19 22
                              Store 9(t) 23
                              Store 26(gl_FragColor) 28
                              Return
                              FunctionEnd
