spv.intrinsicsSpecConst.vert
Validation failed
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 13

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main" 10
                              ExecutionModeId 4 DenormFlushToZero 7
                              Source GLSL 450
                              SourceExtension  "GL_EXT_spirv_intrinsics"
                              Name 4  "main"
                              Name 7  "targetWidth"
                              Name 10  "pointSize"
                              Name 11  "builtIn"
                              Decorate 7(targetWidth) SpecId 5
                              Decorate 10(pointSize) Location 0
                              Decorate 11(builtIn) SpecId 6
                              DecorateId 10(pointSize) BuiltIn 11(builtIn)
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 0
  7(targetWidth):      6(int) SpecConstant 32
               8:             TypeFloat 32
               9:             TypePointer Output 8(float)
   10(pointSize):      9(ptr) Variable Output
     11(builtIn):      6(int) SpecConstant 1
              12:    8(float) Constant 1082130432
         4(main):           2 Function None 3
               5:             Label
                              Store 10(pointSize) 12
                              Return
                              FunctionEnd
