spv.430.frag
// Module Version 10000
// Generated by (magic number): 80008
// Id's are bound by 24

                              Capability Shader
                              Capability Geometry
                              Capability MultiViewport
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 9 14 19
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 430
                              Name 4  "main"
                              Name 9  "color"
                              Name 14  "gl_Layer"
                              Name 19  "gl_ViewportIndex"
                              Decorate 14(gl_Layer) Flat
                              Decorate 14(gl_Layer) BuiltIn Layer
                              Decorate 19(gl_ViewportIndex) Flat
                              Decorate 19(gl_ViewportIndex) BuiltIn ViewportIndex
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypePointer Output 7(fvec4)
        9(color):      8(ptr) Variable Output
              10:    6(float) Constant 1065353216
              11:    7(fvec4) ConstantComposite 10 10 10 10
              12:             TypeInt 32 1
              13:             TypePointer Input 12(int)
    14(gl_Layer):     13(ptr) Variable Input
19(gl_ViewportIndex):     13(ptr) Variable Input
         4(main):           2 Function None 3
               5:             Label
                              Store 9(color) 11
              15:     12(int) Load 14(gl_Layer)
              16:    6(float) ConvertSToF 15
              17:    7(fvec4) Load 9(color)
              18:    7(fvec4) VectorTimesScalar 17 16
                              Store 9(color) 18
              20:     12(int) Load 19(gl_ViewportIndex)
              21:    6(float) ConvertSToF 20
              22:    7(fvec4) Load 9(color)
              23:    7(fvec4) VectorTimesScalar 22 21
                              Store 9(color) 23
                              Return
                              FunctionEnd
