spv.specConstantOperations.vert
Warning, version 450 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 135

                              Capability Shader
                              Capability Float64
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main"
                              Source GLSL 450
                              Name 4  "main"
                              Name 8  "non_const_array_size_from_spec_const("
                              Name 11  "i"
                              Name 27  "array"
                              Decorate 19 SpecId 201
                              Decorate 40 SpecId 200
                              Decorate 42 SpecId 202
                              Decorate 43 SpecId 203
                              Decorate 45 SpecId 204
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 1
               7:             TypeFunction 6(int)
              10:             TypePointer Function 6(int)
              12:      6(int) Constant 0
              19:      6(int) SpecConstant 10
              20:      6(int) Constant 2
              21:      6(int) SpecConstantOp 128 19 20
              22:             TypeBool
              24:      6(int) SpecConstantOp 128 19 20
              25:             TypeArray 6(int) 24
              26:             TypePointer Function 25
              29:      6(int) Constant 1023
              32:      6(int) Constant 1
              34:      6(int) SpecConstantOp 128 19 32
              39:             TypeFloat 32
              40:   39(float) SpecConstant 1078530010
              41:             TypeInt 32 0
              42:     41(int) SpecConstant 100
              43:      6(int) SpecConstant 4294967286
              44:             TypeFloat 64
              45:   44(float) SpecConstant 2333366019 1074118410
              46:   39(float) SpecConstantOp 115 45
              47:   44(float) SpecConstantOp 115 40
              48:     41(int) Constant 0
              49:    22(bool) SpecConstantOp 171 19 48
              50:    22(bool) SpecConstantOp 171 42 48
              51:      6(int) SpecConstantOp 169 49 32 12
              52:     41(int) Constant 1
              53:     41(int) SpecConstantOp 169 49 52 48
              54:     41(int) SpecConstantOp 128 43 48
              55:      6(int) SpecConstantOp 128 42 48
              56:      6(int) SpecConstantOp 126 19
              57:      6(int) SpecConstantOp 200 19
              58:      6(int) SpecConstantOp 128 19 20
              59:      6(int) SpecConstantOp 128 19 20
              60:      6(int) Constant 3
              61:      6(int) SpecConstantOp 130 59 60
              62:      6(int) Constant 4
              63:      6(int) SpecConstantOp 130 58 62
              64:      6(int) SpecConstantOp 132 43 20
              65:     41(int) Constant 2
              66:     41(int) SpecConstantOp 132 42 65
              67:      6(int) Constant 5
              68:      6(int) SpecConstantOp 135 64 67
              69:     41(int) Constant 5
              70:     41(int) SpecConstantOp 134 66 69
              71:      6(int) SpecConstantOp 139 43 62
              72:     41(int) Constant 4
              73:     41(int) SpecConstantOp 137 42 72
              74:      6(int) SpecConstantOp 132 43 60
              75:      6(int) SpecConstantOp 135 74 67
              76:      6(int) Constant 10
              77:      6(int) SpecConstantOp 195 43 76
              78:      6(int) Constant 20
              79:     41(int) SpecConstantOp 194 42 78
              80:      6(int) SpecConstantOp 196 43 32
              81:     41(int) SpecConstantOp 196 42 20
              82:      6(int) Constant 256
              83:      6(int) SpecConstantOp 197 43 82
              84:     41(int) Constant 512
              85:     41(int) SpecConstantOp 198 42 84
              86:    22(bool) SpecConstantOp 177 19 43
              87:    22(bool) SpecConstantOp 170 42 42
              88:    22(bool) SpecConstantOp 173 19 43
              89:      6(int) Constant 30
              90:             TypeVector 6(int) 4
              91:   90(ivec4) SpecConstantComposite 78 89 19 19
              92:     41(int) Constant 4294967295
              93:     41(int) Constant 4294967294
              94:             TypeVector 41(int) 4
              95:   94(ivec4) SpecConstantComposite 42 42 92 93
              96:             TypeVector 22(bool) 4
              97:   94(ivec4) ConstantComposite 48 48 48 48
              98:   96(bvec4) SpecConstantOp 171 91 97
              99:   96(bvec4) SpecConstantOp 171 95 97
             100:   90(ivec4) ConstantComposite 12 12 12 12
             101:   90(ivec4) ConstantComposite 32 32 32 32
             102:   90(ivec4) SpecConstantOp 169 98 101 100
             103:   94(ivec4) ConstantComposite 52 52 52 52
             104:   94(ivec4) SpecConstantOp 169 98 103 97
             105:   94(ivec4) SpecConstantOp 128 91 97
             106:   90(ivec4) SpecConstantOp 128 95 97
             107:   90(ivec4) SpecConstantOp 200 91
             108:   90(ivec4) SpecConstantOp 126 91
             109:   90(ivec4) ConstantComposite 20 20 20 20
             110:   90(ivec4) SpecConstantOp 128 91 109
             111:   90(ivec4) SpecConstantOp 128 91 109
             112:   90(ivec4) ConstantComposite 60 60 60 60
             113:   90(ivec4) SpecConstantOp 130 111 112
             114:   90(ivec4) ConstantComposite 62 62 62 62
             115:   90(ivec4) SpecConstantOp 130 113 114
             116:   90(ivec4) SpecConstantOp 132 91 109
             117:   90(ivec4) ConstantComposite 67 67 67 67
             118:   90(ivec4) SpecConstantOp 135 116 117
             119:   90(ivec4) SpecConstantOp 139 91 114
             120:   90(ivec4) ConstantComposite 76 76 76 76
             121:   90(ivec4) SpecConstantOp 195 91 120
             122:   90(ivec4) SpecConstantOp 196 91 109
             123:      6(int) Constant 1024
             124:   90(ivec4) ConstantComposite 123 123 123 123
             125:   90(ivec4) SpecConstantOp 197 91 124
             126:     41(int) Constant 2048
             127:   94(ivec4) ConstantComposite 126 126 126 126
             128:   94(ivec4) SpecConstantOp 198 95 127
             129:      6(int) SpecConstantOp 81 91 0
             130:             TypeVector 6(int) 2
             131:  130(ivec2) SpecConstantOp 79 91 91 1(GLSL.std.450) 0
             132:             TypeVector 6(int) 3
             133:  132(ivec3) SpecConstantOp 79 91 91 2 1(GLSL.std.450) 0
             134:   90(ivec4) SpecConstantOp 79 91 91 1(GLSL.std.450) 2 0 3
         4(main):           2 Function None 3
               5:             Label
                              Return
                              FunctionEnd
8(non_const_array_size_from_spec_const():      6(int) Function None 7
               9:             Label
           11(i):     10(ptr) Variable Function
       27(array):     26(ptr) Variable Function
                              Store 11(i) 12
                              Branch 13
              13:             Label
                              LoopMerge 15 16 None
                              Branch 17
              17:             Label
              18:      6(int) Load 11(i)
              23:    22(bool) SLessThan 18 21
                              BranchConditional 23 14 15
              14:               Label
              28:      6(int)   Load 11(i)
              30:     10(ptr)   AccessChain 27(array) 28
                                Store 30 29
                                Branch 16
              16:               Label
              31:      6(int)   Load 11(i)
              33:      6(int)   IAdd 31 32
                                Store 11(i) 33
                                Branch 13
              15:             Label
              35:     10(ptr) AccessChain 27(array) 34
              36:      6(int) Load 35
                              ReturnValue 36
                              FunctionEnd
