spv.specConstant.vert
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.


Linked vertex stage:


// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 72

                              Capability Shader
                              Capability Float64
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main" 17 19 25 50
                              Source GLSL 400
                              Name 4  "main"
                              Name 14  "foo(vf4[s1498];"
                              Name 13  "p"
                              Name 17  "color"
                              Name 19  "ucol"
                              Name 25  "size"
                              Name 44  "param"
                              Name 50  "dupUcol"
                              Decorate 9 SpecId 16
                              Decorate 27 SpecId 17
                              Decorate 31 SpecId 22
                              Decorate 36 SpecId 19
                              Decorate 37 SpecId 18
                              Decorate 47 SpecId 116
                              Decorate 57 SpecId 117
                              Decorate 60 SpecId 122
                              Decorate 64 SpecId 119
                              Decorate 65 SpecId 118
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypeInt 32 1
               9:      8(int) SpecConstant 5
              10:             TypeArray 7(fvec4) 9
              11:             TypePointer Function 10
              12:             TypeFunction 2 11(ptr)
              16:             TypePointer Output 7(fvec4)
       17(color):     16(ptr) Variable Output
              18:             TypePointer Input 10
        19(ucol):     18(ptr) Variable Input
              20:      8(int) Constant 2
              21:             TypePointer Input 7(fvec4)
              24:             TypePointer Output 8(int)
        25(size):     24(ptr) Variable Output
              26:             TypeBool
              27:    26(bool) SpecConstantTrue
              30:             TypeInt 32 0
              31:     30(int) SpecConstant 2
              35:             TypeFloat 64
              36:   35(float) SpecConstant 1413754136 1074340347
              37:    6(float) SpecConstant 1078523331
              47:      8(int) SpecConstant 12
              48:             TypeArray 7(fvec4) 47
              49:             TypePointer Input 48
     50(dupUcol):     49(ptr) Variable Input
              57:    26(bool) SpecConstantTrue
              60:     30(int) SpecConstant 2
              64:   35(float) SpecConstant 1413754136 1074340347
              65:    6(float) SpecConstant 1078523331
         4(main):           2 Function None 3
               5:             Label
       44(param):     11(ptr) Variable Function
              22:     21(ptr) AccessChain 19(ucol) 20
              23:    7(fvec4) Load 22
                              Store 17(color) 23
                              Store 25(size) 9
                              SelectionMerge 29 None
                              BranchConditional 27 28 29
              28:               Label
              32:    6(float)   ConvertUToF 31
              33:    7(fvec4)   Load 17(color)
              34:    7(fvec4)   VectorTimesScalar 33 32
                                Store 17(color) 34
                                Branch 29
              29:             Label
              38:   35(float) FConvert 37
              39:   35(float) FDiv 36 38
              40:    6(float) FConvert 39
              41:    7(fvec4) Load 17(color)
              42:    7(fvec4) CompositeConstruct 40 40 40 40
              43:    7(fvec4) FAdd 41 42
                              Store 17(color) 43
              45:          10 Load 19(ucol)
                              Store 44(param) 45
              46:           2 FunctionCall 14(foo(vf4[s1498];) 44(param)
                              Return
                              FunctionEnd
14(foo(vf4[s1498];):           2 Function None 12
           13(p):     11(ptr) FunctionParameter
              15:             Label
              51:     21(ptr) AccessChain 50(dupUcol) 20
              52:    7(fvec4) Load 51
              53:    7(fvec4) Load 17(color)
              54:    7(fvec4) FAdd 53 52
                              Store 17(color) 54
              55:      8(int) Load 25(size)
              56:      8(int) IAdd 55 47
                              Store 25(size) 56
                              SelectionMerge 59 None
                              BranchConditional 57 58 59
              58:               Label
              61:    6(float)   ConvertUToF 60
              62:    7(fvec4)   Load 17(color)
              63:    7(fvec4)   VectorTimesScalar 62 61
                                Store 17(color) 63
                                Branch 59
              59:             Label
              66:   35(float) FConvert 65
              67:   35(float) FDiv 64 66
              68:    6(float) FConvert 67
              69:    7(fvec4) Load 17(color)
              70:    7(fvec4) CompositeConstruct 68 68 68 68
              71:    7(fvec4) FAdd 69 70
                              Store 17(color) 71
                              Return
                              FunctionEnd
