hlsl.flattenSubset2.frag
// Module Version 10000
// Generated by (magic number): 80008
// Id's are bound by 53

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 49 52
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "main"
                              Name 49  "vpos"
                              Name 52  "@entryPointOutput"
                              Decorate 49(vpos) Location 0
                              Decorate 52(@entryPointOutput) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
              43:    6(float) Constant 0
              44:    7(fvec4) ConstantComposite 43 43 43 43
              48:             TypePointer Input 7(fvec4)
        49(vpos):     48(ptr) Variable Input
              51:             TypePointer Output 7(fvec4)
52(@entryPointOutput):     51(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
                              Store 52(@entryPointOutput) 44
                              Return
                              FunctionEnd
