spv.switch.frag
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
WARNING: 0:121: 'switch' : last case/default label not followed by statements 
WARNING: 0:134: 'switch' : last case/default label not followed by statements 
WARNING: 0:139: 'switch' : last case/default label not followed by statements 


Linked fragment stage:


// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 261

                              Source ESSL 310
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4
                              Name 4  "main"
                              Name 16  "foo1(vf4;vf4;i1;"
                              Name 13  "v1"
                              Name 14  "v2"
                              Name 15  "i1"
                              Name 21  "foo2(vf4;vf4;i1;"
                              Name 18  "v1"
                              Name 19  "v2"
                              Name 20  "i1"
                              Name 59  "local"
                              Name 61  "c"
                              Name 72  "f"
                              Name 74  "x"
                              Name 128  "d"
                              Name 154  "i"
                              Name 172  "j"
                              Name 222  "color"
                              Name 228  "v"
                              Name 229  "param"
                              Name 231  "param"
                              Name 233  "param"
                              Name 239  "param"
                              Name 241  "param"
                              Name 243  "param"
                              Decorate 59(local) PrecisionMedium 
                              Decorate 61(c) PrecisionMedium 
                              Decorate 72(f) PrecisionMedium 
                              Decorate 74(x) PrecisionMedium 
                              Decorate 74(x) Smooth 
                              Decorate 128(d) PrecisionMedium 
                              Decorate 154(i) PrecisionMedium 
                              Decorate 172(j) PrecisionMedium 
                              Decorate 222(color) PrecisionMedium 
                              Decorate 228(v) PrecisionMedium 
               2:             TypeVoid
               3:             TypeFunction 2 
               7:             TypeFloat 32
               8:             TypeVector 7(float) 4
               9:             TypePointer Function 8(fvec4)
              10:             TypeInt 32 1
              11:             TypePointer Function 10(int)
              12:             TypeFunction 8(fvec4) 9(ptr) 9(ptr) 11(ptr)
              37:    7(float) Constant 0
              38:    8(fvec4) ConstantComposite 37 37 37 37
              48:    7(float) Constant 1065353216
              49:    8(fvec4) ConstantComposite 48 48 48 48
              60:             TypePointer UniformConstant 10(int)
           61(c):     60(ptr) Variable UniformConstant 
              64:     10(int) Constant 1
              71:             TypePointer Function 7(float)
              73:             TypePointer Input 7(float)
           74(x):     73(ptr) Variable Input 
          128(d):     60(ptr) Variable UniformConstant 
             155:     10(int) Constant 0
             160:     10(int) Constant 10
             161:             TypeBool
             173:     10(int) Constant 20
             178:     10(int) Constant 30
             183:    7(float) Constant 1120429670
             203:    7(float) Constant 1079739679
             221:             TypePointer Output 7(float)
      222(color):    221(ptr) Variable Output 
             227:             TypePointer UniformConstant 8(fvec4)
          228(v):    227(ptr) Variable UniformConstant 
         4(main):           2 Function None 3
               5:             Label
       59(local):     11(ptr) Variable Function 
           72(f):     71(ptr) Variable Function 
          154(i):     11(ptr) Variable Function 
          172(j):     11(ptr) Variable Function 
      229(param):      9(ptr) Variable Function 
      231(param):      9(ptr) Variable Function 
      233(param):     11(ptr) Variable Function 
      239(param):      9(ptr) Variable Function 
      241(param):      9(ptr) Variable Function 
      243(param):     11(ptr) Variable Function 
              62:     10(int) Load 61(c) 
                              Store 59(local) 62 
              63:     10(int) Load 59(local) 
              65:     10(int) IAdd 63 64
                              Store 59(local) 65 
              66:     10(int) Load 61(c) 
                              SelectionMerge 70 None
                              Switch 66 69 
                                     case 1: 67
                                     case 2: 68
              67:               Label
              75:    7(float)   Load 74(x) 
              76:    7(float)   ExtInst 1(GLSL.std.450) 10(sin) 75
                                Store 72(f) 76 
                                Branch 70
              68:               Label
              78:    7(float)   Load 74(x) 
              79:    7(float)   ExtInst 1(GLSL.std.450) 11(cos) 78
                                Store 72(f) 79 
                                Branch 70
              69:               Label
              81:    7(float)   Load 74(x) 
              82:    7(float)   ExtInst 1(GLSL.std.450) 12(tan) 81
                                Store 72(f) 82 
                                Branch 70
              70:             Label
              84:     10(int) Load 61(c) 
                              SelectionMerge 88 None
                              Switch 84 87 
                                     case 1: 85
                                     case 2: 86
              85:               Label
              89:    7(float)   Load 74(x) 
              90:    7(float)   ExtInst 1(GLSL.std.450) 10(sin) 89
              91:    7(float)   Load 72(f) 
              92:    7(float)   FAdd 91 90
                                Store 72(f) 92 
                                Branch 86
              86:               Label
              93:    7(float)   Load 74(x) 
              94:    7(float)   ExtInst 1(GLSL.std.450) 11(cos) 93
              95:    7(float)   Load 72(f) 
              96:    7(float)   FAdd 95 94
                                Store 72(f) 96 
                                Branch 88
              87:               Label
              98:    7(float)   Load 74(x) 
              99:    7(float)   ExtInst 1(GLSL.std.450) 12(tan) 98
             100:    7(float)   Load 72(f) 
             101:    7(float)   FAdd 100 99
                                Store 72(f) 101 
                                Branch 88
              88:             Label
             103:     10(int) Load 61(c) 
                              SelectionMerge 106 None
                              Switch 103 106 
                                     case 1: 104
                                     case 2: 105
             104:               Label
             107:    7(float)   Load 74(x) 
             108:    7(float)   ExtInst 1(GLSL.std.450) 10(sin) 107
             109:    7(float)   Load 72(f) 
             110:    7(float)   FAdd 109 108
                                Store 72(f) 110 
                                Branch 106
             105:               Label
             112:    7(float)   Load 74(x) 
             113:    7(float)   ExtInst 1(GLSL.std.450) 11(cos) 112
             114:    7(float)   Load 72(f) 
             115:    7(float)   FAdd 114 113
                                Store 72(f) 115 
                                Branch 106
             106:             Label
             118:     10(int) Load 61(c) 
                              SelectionMerge 122 None
                              Switch 118 121 
                                     case 1: 119
                                     case 2: 120
             119:               Label
             123:    7(float)   Load 74(x) 
             124:    7(float)   ExtInst 1(GLSL.std.450) 10(sin) 123
             125:    7(float)   Load 72(f) 
             126:    7(float)   FAdd 125 124
                                Store 72(f) 126 
                                Branch 122
             120:               Label
             129:     10(int)   Load 128(d) 
                                SelectionMerge 132 None
                                Switch 129 132 
                                       case 1: 130
                                       case 2: 131
             130:                 Label
             133:    7(float)     Load 74(x) 
             134:    7(float)     Load 74(x) 
             135:    7(float)     FMul 133 134
             136:    7(float)     Load 74(x) 
             137:    7(float)     FMul 135 136
             138:    7(float)     Load 72(f) 
             139:    7(float)     FAdd 138 137
                                  Store 72(f) 139 
                                  Branch 132
             131:                 Label
             141:    7(float)     Load 74(x) 
             142:    7(float)     Load 74(x) 
             143:    7(float)     FMul 141 142
             144:    7(float)     Load 72(f) 
             145:    7(float)     FAdd 144 143
                                  Store 72(f) 145 
                                  Branch 132
             132:               Label
                                Branch 122
             121:               Label
             149:    7(float)   Load 74(x) 
             150:    7(float)   ExtInst 1(GLSL.std.450) 12(tan) 149
             151:    7(float)   Load 72(f) 
             152:    7(float)   FAdd 151 150
                                Store 72(f) 152 
                                Branch 122
             122:             Label
                              Store 154(i) 155 
                              Branch 156
             156:             Label
             159:     10(int) Load 154(i) 
             162:   161(bool) SLessThan 159 160
                              LoopMerge 157 None
                              BranchConditional 162 158 157 
             158:               Label
             163:     10(int)   Load 61(c) 
                                SelectionMerge 167 None
                                Switch 163 166 
                                       case 1: 164
                                       case 2: 165
             164:                 Label
             168:    7(float)     Load 74(x) 
             169:    7(float)     ExtInst 1(GLSL.std.450) 10(sin) 168
             170:    7(float)     Load 72(f) 
             171:    7(float)     FAdd 170 169
                                  Store 72(f) 171 
                                  Store 172(j) 173 
                                  Branch 174
             174:                 Label
             177:     10(int)     Load 172(j) 
             179:   161(bool)     SLessThan 177 178
                                  LoopMerge 175 None
                                  BranchConditional 179 176 175 
             176:                   Label
             180:    7(float)       Load 72(f) 
             181:    7(float)       FAdd 180 48
                                    Store 72(f) 181 
             182:    7(float)       Load 72(f) 
             184:   161(bool)       FOrdLessThan 182 183
                                    SelectionMerge 186 None
                                    BranchConditional 184 185 186 
             185:                     Label
                                      Branch 175
             186:                   Label
             188:     10(int)       Load 172(j) 
             189:     10(int)       IAdd 188 64
                                    Store 172(j) 189 
                                    Branch 174
             175:                 Label
                                  Branch 167
             165:                 Label
             191:    7(float)     Load 74(x) 
             192:    7(float)     ExtInst 1(GLSL.std.450) 11(cos) 191
             193:    7(float)     Load 72(f) 
             194:    7(float)     FAdd 193 192
                                  Store 72(f) 194 
                                  Branch 167
             166:                 Label
             197:    7(float)     Load 74(x) 
             198:    7(float)     ExtInst 1(GLSL.std.450) 12(tan) 197
             199:    7(float)     Load 72(f) 
             200:    7(float)     FAdd 199 198
                                  Store 72(f) 200 
                                  Branch 167
             167:               Label
             202:    7(float)   Load 72(f) 
             204:   161(bool)   FOrdLessThan 202 203
                                SelectionMerge 206 None
                                BranchConditional 204 205 206 
             205:                 Label
                                  Branch 157
             206:               Label
             208:     10(int)   Load 154(i) 
             209:     10(int)   IAdd 208 64
                                Store 154(i) 209 
                                Branch 156
             157:             Label
             210:     10(int) Load 61(c) 
                              SelectionMerge 213 None
                              Switch 210 213 
                                     case 1: 211
                                     case 2: 212
             211:               Label
             214:    7(float)   Load 74(x) 
             215:    7(float)   ExtInst 1(GLSL.std.450) 10(sin) 214
             216:    7(float)   Load 72(f) 
             217:    7(float)   FAdd 216 215
                                Store 72(f) 217 
                                Branch 213
             212:               Label
                                Branch 213
             213:             Label
             223:    7(float) Load 72(f) 
             224:     10(int) Load 59(local) 
             225:    7(float) ConvertSToF 224
             226:    7(float) FAdd 223 225
                              Store 222(color) 226 
             230:    8(fvec4) Load 228(v) 
                              Store 229(param) 230 
             232:    8(fvec4) Load 228(v) 
                              Store 231(param) 232 
             234:     10(int) Load 61(c) 
                              Store 233(param) 234 
             235:    8(fvec4) FunctionCall 16(foo1(vf4;vf4;i1;) 229(param) 231(param) 233(param)
             236:    7(float) CompositeExtract 235 1
             237:    7(float) Load 222(color) 
             238:    7(float) FAdd 237 236
                              Store 222(color) 238 
             240:    8(fvec4) Load 228(v) 
                              Store 239(param) 240 
             242:    8(fvec4) Load 228(v) 
                              Store 241(param) 242 
             244:     10(int) Load 61(c) 
                              Store 243(param) 244 
             245:    8(fvec4) FunctionCall 21(foo2(vf4;vf4;i1;) 239(param) 241(param) 243(param)
             246:    7(float) CompositeExtract 245 2
             247:    7(float) Load 222(color) 
             248:    7(float) FAdd 247 246
                              Store 222(color) 248 
             249:     10(int) Load 61(c) 
                              SelectionMerge 252 None
                              Switch 249 251 
                                     case 0: 250
             250:               Label
                                Branch 252
             251:               Label
                                Branch 252
             252:             Label
             256:     10(int) Load 61(c) 
                              SelectionMerge 258 None
                              Switch 256 257 
             257:               Label
                                Branch 258
             258:             Label
                              Branch 6
               6:             Label
                              Return
                              FunctionEnd
16(foo1(vf4;vf4;i1;):    8(fvec4) Function None 12
          13(v1):      9(ptr) FunctionParameter
          14(v2):      9(ptr) FunctionParameter
          15(i1):     11(ptr) FunctionParameter
              17:             Label
              23:     10(int) Load 15(i1) 
                              SelectionMerge 27 None
                              Switch 23 27 
                                     case 0: 24
                                     case 2: 25
                                     case 1: 25
                                     case 3: 26
              24:               Label
              28:    8(fvec4)   Load 13(v1) 
                                ReturnValue 28
              25:               Label
              30:    8(fvec4)   Load 14(v2) 
                                ReturnValue 30
              26:               Label
              32:    8(fvec4)   Load 13(v1) 
              33:    8(fvec4)   Load 14(v2) 
              34:    8(fvec4)   FMul 32 33
                                ReturnValue 34
              27:             Label
                              ReturnValue 38
                              FunctionEnd
21(foo2(vf4;vf4;i1;):    8(fvec4) Function None 12
          18(v1):      9(ptr) FunctionParameter
          19(v2):      9(ptr) FunctionParameter
          20(i1):     11(ptr) FunctionParameter
              22:             Label
              40:     10(int) Load 20(i1) 
                              SelectionMerge 45 None
                              Switch 40 45 
                                     case 0: 41
                                     case 2: 42
                                     case 1: 43
                                     case 3: 44
              41:               Label
              46:    8(fvec4)   Load 18(v1) 
                                ReturnValue 46
              42:               Label
                                ReturnValue 49
              43:               Label
              51:    8(fvec4)   Load 19(v2) 
                                ReturnValue 51
              44:               Label
              53:    8(fvec4)   Load 18(v1) 
              54:    8(fvec4)   Load 19(v2) 
              55:    8(fvec4)   FMul 53 54
                                ReturnValue 55
              45:             Label
                              ReturnValue 38
                              FunctionEnd
