hlsl.flattenSubset2.frag
WARNING: AST will form illegal SPIR-V; need to transform to legalize
// Module Version 10000
// Generated by (magic number): 80002
// Id's are bound by 44

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 40 43
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "main"
                              Name 31  "someTex"
                              Name 40  "vpos"
                              Name 43  "@entryPointOutput"
                              Decorate 31(someTex) DescriptorSet 0
                              Decorate 40(vpos) Location 0
                              Decorate 43(@entryPointOutput) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
              17:             TypeImage 6(float) 2D sampled format:Unknown
              30:             TypePointer UniformConstant 17
     31(someTex):     30(ptr) Variable UniformConstant
              34:    6(float) Constant 0
              35:    7(fvec4) ConstantComposite 34 34 34 34
              39:             TypePointer Input 7(fvec4)
        40(vpos):     39(ptr) Variable Input
              42:             TypePointer Output 7(fvec4)
43(@entryPointOutput):     42(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
                              Store 43(@entryPointOutput) 35
                              Return
                              FunctionEnd
