remap.basic.strip.frag
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 22

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 17 19
                              ExecutionMode 4 OriginUpperLeft
                              Decorate 17 Location 0
                              Decorate 19 Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 3
               8:             TypeFunction 7(fvec3)
              11:    6(float) Constant 0
              12:    7(fvec3) ConstantComposite 11 11 11
              15:             TypeVector 6(float) 4
              16:             TypePointer Output 15(fvec4)
              17:     16(ptr) Variable Output
              18:             TypePointer Input 6(float)
              19:     18(ptr) Variable Input
               4:           2 Function None 3
               5:             Label
              20:    6(float) Load 19
              21:   15(fvec4) CompositeConstruct 20 20 20 20
                              Store 17 21
                              Return
                              FunctionEnd
               9:    7(fvec3) Function None 8
              10:             Label
                              ReturnValue 12
                              FunctionEnd
