hlsl.flattenSubset.frag
// Module Version 10000
// Generated by (magic number): 80007
// Id's are bound by 66

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 47 50
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "main"
                              Name 21  "samp"
                              Name 33  "tex"
                              Name 47  "vpos"
                              Name 50  "@entryPointOutput"
                              Decorate 21(samp) DescriptorSet 0
                              Decorate 33(tex) DescriptorSet 0
                              Decorate 47(vpos) Location 0
                              Decorate 50(@entryPointOutput) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
              13:             TypeSampler
              20:             TypePointer UniformConstant 13
        21(samp):     20(ptr) Variable UniformConstant
              31:             TypeImage 6(float) 2D sampled format:Unknown
              32:             TypePointer UniformConstant 31
         33(tex):     32(ptr) Variable UniformConstant
              37:             TypeSampledImage 31
              39:             TypeVector 6(float) 2
              40:    6(float) Constant 1056964608
              41:   39(fvec2) ConstantComposite 40 40
              46:             TypePointer Input 7(fvec4)
        47(vpos):     46(ptr) Variable Input
              49:             TypePointer Output 7(fvec4)
50(@entryPointOutput):     49(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
              57:          13 Load 21(samp)
              61:          31 Load 33(tex)
              64:          37 SampledImage 61 57
              65:    7(fvec4) ImageSampleImplicitLod 64 41
                              Store 50(@entryPointOutput) 65
                              Return
                              FunctionEnd
