remap.basic.dcefunc.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
                              Source GLSL 450
                              Name 4  "main"
                              Name 17  "outf4"
                              Name 19  "inf"
                              Decorate 17(outf4) Location 0
                              Decorate 19(inf) 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(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
