remap.basic.none.frag
// Module Version 10000
// Generated by (magic number): 80008
// 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
                              Source GLSL 450
                              Name 4  "main"
                              Name 9  "dead_fn("
                              Name 17  "outf4"
                              Name 19  "inf"
               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(outf4):     16(ptr) Variable Output
              18:             TypePointer Input 6(float)
         19(inf):     18(ptr) Variable Input
         4(main):           2 Function None 3
               5:             Label
              20:    6(float) Load 19(inf)
              21:   15(fvec4) CompositeConstruct 20 20 20 20
                              Store 17(outf4) 21
                              Return
                              FunctionEnd
     9(dead_fn():    7(fvec3) Function None 8
              10:             Label
                              ReturnValue 12
                              FunctionEnd
