spv.hlslDebugInfo.vert
// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 19

                              Capability Shader
               2:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 5  "newMain" 17
               1:             String  "spv.hlslDebugInfo.vert"
                              Source HLSL 500 1  "// OpModuleProcessed entry-point newMain
// OpModuleProcessed shift-sampler-binding 2
// OpModuleProcessed shift-texture-binding 4
// OpModuleProcessed shift-image-binding 1
// OpModuleProcessed shift-UBO-binding 6
// OpModuleProcessed shift-ssbo-binding 3
// OpModuleProcessed shift-uav-binding 5
// OpModuleProcessed no-storage-format
// OpModuleProcessed resource-set-binding t0 0 0
// OpModuleProcessed auto-map-bindings
// OpModuleProcessed auto-map-locations
// OpModuleProcessed flatten-uniform-arrays
// OpModuleProcessed hlsl-iomap
// OpModuleProcessed client vulkan100
// OpModuleProcessed target-env vulkan1.0
// OpModuleProcessed source-entrypoint origMain
// OpModuleProcessed hlsl-offsets
#line 1
float4 origMain() : SV_Position
{
    return (float4)0;
}
"
                              Name 5  "newMain"
                              Name 10  "@newMain("
                              Name 17  "@entryPointOutput"
                              Decorate 17(@entryPointOutput) BuiltIn Position
               3:             TypeVoid
               4:             TypeFunction 3
               7:             TypeFloat 32
               8:             TypeVector 7(float) 4
               9:             TypeFunction 8(fvec4)
              12:    7(float) Constant 0
              13:    8(fvec4) ConstantComposite 12 12 12 12
              16:             TypePointer Output 8(fvec4)
17(@entryPointOutput):     16(ptr) Variable Output
                              Line 1 2 1
      5(newMain):           3 Function None 4
               6:             Label
                              Line 1 2 0
              18:    8(fvec4) FunctionCall 10(@newMain()
                              Store 17(@entryPointOutput) 18
                              Return
                              FunctionEnd
                              Line 1 2 1
   10(@newMain():    8(fvec4) Function None 9
              11:             Label
                              Line 1 3 0
                              ReturnValue 13
                              FunctionEnd
