remap.basic.dcefunc.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.


Linked fragment stage:


// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 19

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