spv.specConstantOperations.vert
// Module Version 10000
// Generated by (magic number): 80008
// Id's are bound by 162

                              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 19  "sp_int"
                              Name 27  "array"
                              Name 40  "sp_float"
                              Name 42  "sp_uint"
                              Name 43  "sp_sint"
                              Name 45  "sp_double"
                              Name 46  "float_from_double"
                              Name 47  "double_from_float"
                              Name 49  "bool_from_int"
                              Name 50  "bool_from_uint"
                              Name 51  "int_from_bool"
                              Name 53  "uint_from_bool"
                              Name 54  "sp_uint_from_sint"
                              Name 55  "sp_sint_from_uint"
                              Name 56  "negate_int"
                              Name 57  "not_int"
                              Name 58  "sp_int_add_two"
                              Name 61  "sp_int_add_two_sub_three"
                              Name 63  "sp_int_add_two_sub_four"
                              Name 64  "sp_sint_mul_two"
                              Name 66  "sp_uint_mul_two"
                              Name 68  "sp_sint_mul_two_div_five"
                              Name 70  "sp_uint_mul_two_div_five"
                              Name 71  "sp_sint_rem_four"
                              Name 73  "sp_uint_rem_four"
                              Name 75  "sp_sint_mul_three_div_five"
                              Name 77  "sp_sint_shift_right_arithmetic"
                              Name 79  "sp_uint_shift_right_arithmetic"
                              Name 80  "sp_sint_shift_left"
                              Name 81  "sp_uint_shift_left"
                              Name 83  "sp_sint_or_256"
                              Name 85  "sp_uint_xor_512"
                              Name 86  "sp_int_lt_sp_sint"
                              Name 87  "sp_uint_equal_sp_uint"
                              Name 88  "sp_int_gt_sp_sint"
                              Name 91  "iv"
                              Name 95  "uv"
                              Name 98  "bv_from_iv"
                              Name 99  "bv_from_uv"
                              Name 102  "iv_from_bv"
                              Name 104  "uv_from_bv"
                              Name 105  "uv_from_iv"
                              Name 106  "iv_from_uv"
                              Name 107  "not_iv"
                              Name 108  "negate_iv"
                              Name 110  "iv_add_two"
                              Name 113  "iv_add_two_sub_three"
                              Name 115  "iv_add_two_sub_four"
                              Name 116  "iv_mul_two"
                              Name 118  "iv_mul_two_div_five"
                              Name 119  "iv_rem_four"
                              Name 121  "iv_shift_right_arithmetic"
                              Name 122  "iv_shift_left"
                              Name 125  "iv_or_1024"
                              Name 128  "uv_xor_2048"
                              Name 129  "iv_x"
                              Name 131  "iv_yx"
                              Name 133  "iv_zyx"
                              Name 134  "iv_yzxw"
                              Name 135  "a"
                              Name 136  "b"
                              Name 137  "c"
                              Name 142  "ternayArray1"
                              Name 145  "t1"
                              Name 146  "t2"
                              Name 148  "t3"
                              Name 152  "t4"
                              Name 161  "v2"
                              Decorate 19(sp_int) SpecId 201
                              Decorate 40(sp_float) SpecId 200
                              Decorate 42(sp_uint) SpecId 202
                              Decorate 43(sp_sint) SpecId 203
                              Decorate 45(sp_double) SpecId 204
                              Decorate 135(a) SpecId 210
                              Decorate 136(b) SpecId 211
                              Decorate 137(c) SpecId 212
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 1
               7:             TypeFunction 6(int)
              10:             TypePointer Function 6(int)
              12:      6(int) Constant 0
      19(sp_int):      6(int) SpecConstant 10
              20:      6(int) Constant 2
              21:      6(int) SpecConstantOp 128 19(sp_int) 20
              22:             TypeBool
              24:      6(int) SpecConstantOp 128 19(sp_int) 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(sp_int) 32
              39:             TypeFloat 32
    40(sp_float):   39(float) SpecConstant 1078530010
              41:             TypeInt 32 0
     42(sp_uint):     41(int) SpecConstant 100
     43(sp_sint):      6(int) SpecConstant 4294967286
              44:             TypeFloat 64
   45(sp_double):44(float64_t) SpecConstant 2333366019 1074118410
46(float_from_double):   39(float) SpecConstantOp 115 45(sp_double)
47(double_from_float):44(float64_t) SpecConstantOp 115 40(sp_float)
              48:     41(int) Constant 0
49(bool_from_int):    22(bool) SpecConstantOp 171 19(sp_int) 48
50(bool_from_uint):    22(bool) SpecConstantOp 171 42(sp_uint) 48
51(int_from_bool):      6(int) SpecConstantOp 169 49(bool_from_int) 32 12
              52:     41(int) Constant 1
53(uint_from_bool):     41(int) SpecConstantOp 169 49(bool_from_int) 52 48
54(sp_uint_from_sint):     41(int) SpecConstantOp 128 43(sp_sint) 48
55(sp_sint_from_uint):      6(int) SpecConstantOp 128 42(sp_uint) 48
  56(negate_int):      6(int) SpecConstantOp 126 19(sp_int)
     57(not_int):      6(int) SpecConstantOp 200 19(sp_int)
58(sp_int_add_two):      6(int) SpecConstantOp 128 19(sp_int) 20
              59:      6(int) SpecConstantOp 128 19(sp_int) 20
              60:      6(int) Constant 3
61(sp_int_add_two_sub_three):      6(int) SpecConstantOp 130 59 60
              62:      6(int) Constant 4
63(sp_int_add_two_sub_four):      6(int) SpecConstantOp 130 58(sp_int_add_two) 62
64(sp_sint_mul_two):      6(int) SpecConstantOp 132 43(sp_sint) 20
              65:     41(int) Constant 2
66(sp_uint_mul_two):     41(int) SpecConstantOp 132 42(sp_uint) 65
              67:      6(int) Constant 5
68(sp_sint_mul_two_div_five):      6(int) SpecConstantOp 135 64(sp_sint_mul_two) 67
              69:     41(int) Constant 5
70(sp_uint_mul_two_div_five):     41(int) SpecConstantOp 134 66(sp_uint_mul_two) 69
71(sp_sint_rem_four):      6(int) SpecConstantOp 139 43(sp_sint) 62
              72:     41(int) Constant 4
73(sp_uint_rem_four):     41(int) SpecConstantOp 137 42(sp_uint) 72
              74:      6(int) SpecConstantOp 132 43(sp_sint) 60
75(sp_sint_mul_three_div_five):      6(int) SpecConstantOp 135 74 67
              76:      6(int) Constant 10
77(sp_sint_shift_right_arithmetic):      6(int) SpecConstantOp 195 43(sp_sint) 76
              78:      6(int) Constant 20
79(sp_uint_shift_right_arithmetic):     41(int) SpecConstantOp 194 42(sp_uint) 78
80(sp_sint_shift_left):      6(int) SpecConstantOp 196 43(sp_sint) 32
81(sp_uint_shift_left):     41(int) SpecConstantOp 196 42(sp_uint) 20
              82:      6(int) Constant 256
83(sp_sint_or_256):      6(int) SpecConstantOp 197 43(sp_sint) 82
              84:     41(int) Constant 512
85(sp_uint_xor_512):     41(int) SpecConstantOp 198 42(sp_uint) 84
86(sp_int_lt_sp_sint):    22(bool) SpecConstantOp 177 19(sp_int) 43(sp_sint)
87(sp_uint_equal_sp_uint):    22(bool) SpecConstantOp 170 42(sp_uint) 42(sp_uint)
88(sp_int_gt_sp_sint):    22(bool) SpecConstantOp 173 19(sp_int) 43(sp_sint)
              89:      6(int) Constant 30
              90:             TypeVector 6(int) 4
          91(iv):   90(ivec4) SpecConstantComposite 78 89 19(sp_int) 19(sp_int)
              92:     41(int) Constant 4294967295
              93:     41(int) Constant 4294967294
              94:             TypeVector 41(int) 4
          95(uv):   94(ivec4) SpecConstantComposite 42(sp_uint) 42(sp_uint) 92 93
              96:             TypeVector 22(bool) 4
              97:   94(ivec4) ConstantComposite 48 48 48 48
  98(bv_from_iv):   96(bvec4) SpecConstantOp 171 91(iv) 97
  99(bv_from_uv):   96(bvec4) SpecConstantOp 171 95(uv) 97
             100:   90(ivec4) ConstantComposite 12 12 12 12
             101:   90(ivec4) ConstantComposite 32 32 32 32
 102(iv_from_bv):   90(ivec4) SpecConstantOp 169 98(bv_from_iv) 101 100
             103:   94(ivec4) ConstantComposite 52 52 52 52
 104(uv_from_bv):   94(ivec4) SpecConstantOp 169 98(bv_from_iv) 103 97
 105(uv_from_iv):   94(ivec4) SpecConstantOp 128 91(iv) 97
 106(iv_from_uv):   90(ivec4) SpecConstantOp 128 95(uv) 97
     107(not_iv):   90(ivec4) SpecConstantOp 200 91(iv)
  108(negate_iv):   90(ivec4) SpecConstantOp 126 91(iv)
             109:   90(ivec4) ConstantComposite 20 20 20 20
 110(iv_add_two):   90(ivec4) SpecConstantOp 128 91(iv) 109
             111:   90(ivec4) SpecConstantOp 128 91(iv) 109
             112:   90(ivec4) ConstantComposite 60 60 60 60
113(iv_add_two_sub_three):   90(ivec4) SpecConstantOp 130 111 112
             114:   90(ivec4) ConstantComposite 62 62 62 62
115(iv_add_two_sub_four):   90(ivec4) SpecConstantOp 130 113(iv_add_two_sub_three) 114
 116(iv_mul_two):   90(ivec4) SpecConstantOp 132 91(iv) 109
             117:   90(ivec4) ConstantComposite 67 67 67 67
118(iv_mul_two_div_five):   90(ivec4) SpecConstantOp 135 116(iv_mul_two) 117
119(iv_rem_four):   90(ivec4) SpecConstantOp 139 91(iv) 114
             120:   90(ivec4) ConstantComposite 76 76 76 76
121(iv_shift_right_arithmetic):   90(ivec4) SpecConstantOp 195 91(iv) 120
122(iv_shift_left):   90(ivec4) SpecConstantOp 196 91(iv) 109
             123:      6(int) Constant 1024
             124:   90(ivec4) ConstantComposite 123 123 123 123
 125(iv_or_1024):   90(ivec4) SpecConstantOp 197 91(iv) 124
             126:     41(int) Constant 2048
             127:   94(ivec4) ConstantComposite 126 126 126 126
128(uv_xor_2048):   94(ivec4) SpecConstantOp 198 95(uv) 127
       129(iv_x):      6(int) SpecConstantOp 81 91(iv) 0
             130:             TypeVector 6(int) 2
      131(iv_yx):  130(ivec2) SpecConstantOp 79 91(iv) 91(iv) 1(GLSL.std.450) 0
             132:             TypeVector 6(int) 3
     133(iv_zyx):  132(ivec3) SpecConstantOp 79 91(iv) 91(iv) 2 1(GLSL.std.450) 0
    134(iv_yzxw):   90(ivec4) SpecConstantOp 79 91(iv) 91(iv) 1(GLSL.std.450) 2 0 3
          135(a):      6(int) SpecConstant 4
          136(b):      6(int) SpecConstant 6
          137(c):    22(bool) SpecConstantTrue
             138:    22(bool) SpecConstantOp 173 135(a) 136(b)
             139:      6(int) SpecConstantOp 169 138 135(a) 136(b)
             140:             TypeArray 6(int) 139
             141:             TypePointer Private 140
142(ternayArray1):    141(ptr) Variable Private
             143:      6(int) Constant 13
             144:      6(int) Constant 17
         145(t1):      6(int) SpecConstantOp 169 137(c) 143 144
         146(t2):      6(int) SpecConstantOp 169 137(c) 135(a) 144
             147:    22(bool) ConstantTrue
         148(t3):      6(int) SpecConstantOp 169 147 135(a) 144
             149:    22(bool) SpecConstantOp 173 135(a) 136(b)
             150:      6(int) SpecConstantOp 128 143 135(a)
             151:      6(int) SpecConstantOp 132 144 136(b)
         152(t4):      6(int) SpecConstantOp 169 149 150 151
             153:    22(bool) SpecConstantOp 168 137(c)
             154:             TypeVector 39(float) 2
             155:   39(float) Constant 1065353216
             156:  154(fvec2) ConstantComposite 155 155
             157:   39(float) Constant 1073741824
             158:  154(fvec2) ConstantComposite 157 157
             159:             TypeVector 22(bool) 2
             160:  159(bvec2) SpecConstantComposite 153 153
         161(v2):  154(fvec2) SpecConstantOp 169 160 156 158
         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
