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
                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main"
                              ExecutionMode 4 OriginLowerLeft
                              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) RelaxedPrecision
                              Decorate 61(c) RelaxedPrecision
                              Decorate 72(f) RelaxedPrecision
                              Decorate 74(x) RelaxedPrecision
                              Decorate 74(x) Smooth
                              Decorate 128(d) RelaxedPrecision
                              Decorate 154(i) RelaxedPrecision
                              Decorate 172(j) RelaxedPrecision
                              Decorate 222(color) RelaxedPrecision
                              Decorate 228(v) RelaxedPrecision
               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) 13(Sin) 75
                                Store 72(f) 76
                                Branch 70
              68:               Label
              78:    7(float)   Load 74(x)
              79:    7(float)   ExtInst 1(GLSL.std.450) 14(Cos) 78
                                Store 72(f) 79
                                Branch 70
              69:               Label
              81:    7(float)   Load 74(x)
              82:    7(float)   ExtInst 1(GLSL.std.450) 15(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) 13(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) 14(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) 15(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) 13(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) 14(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) 13(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) 15(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) 13(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) 14(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) 15(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) 13(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
