spv.sampleId.frag
// Module Version 10000
// Generated by (magic number): 80007
// Id's are bound by 26

                              Capability Shader
                              Capability SampleRateShading
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 8 18 20
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 450
                              Name 4  "main"
                              Name 8  "gl_SampleID"
                              Name 18  "color"
                              Name 20  "samp"
                              Decorate 8(gl_SampleID) Flat
                              Decorate 8(gl_SampleID) BuiltIn SampleId
                              Decorate 18(color) Location 0
                              Decorate 20(samp) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 1
               7:             TypePointer Input 6(int)
  8(gl_SampleID):      7(ptr) Variable Input
              10:      6(int) Constant 3
              11:             TypeBool
              15:             TypeFloat 32
              16:             TypeVector 15(float) 4
              17:             TypePointer Output 16(fvec4)
       18(color):     17(ptr) Variable Output
              19:             TypePointer Input 16(fvec4)
        20(samp):     19(ptr) Variable Input
              23:   15(float) Constant 1073741824
         4(main):           2 Function None 3
               5:             Label
               9:      6(int) Load 8(gl_SampleID)
              12:    11(bool) SLessThan 9 10
                              SelectionMerge 14 None
                              BranchConditional 12 13 22
              13:               Label
              21:   16(fvec4)   Load 20(samp)
                                Store 18(color) 21
                                Branch 14
              22:               Label
              24:   16(fvec4)   Load 20(samp)
              25:   16(fvec4)   VectorTimesScalar 24 23
                                Store 18(color) 25
                                Branch 14
              14:             Label
                              Return
                              FunctionEnd
