From 3c24a06c8c49f4ee2bafcc4fa2fa9428dc9e2da8 Mon Sep 17 00:00:00 2001
From: John Kessenich <cepheus@frii.com>
Date: Fri, 11 Dec 2015 15:08:26 -0700
Subject: [PATCH] SPV tests: Turn on some more tests related to currently
 pending issues.

---
 Test/baseResults/spv.Operations.frag.out | 827 +++++++++++++----------
 Test/baseResults/spv.matrix.frag.out     |   4 -
 Test/spv.Operations.frag                 |  57 +-
 Test/spv.length.frag                     |   4 -
 Test/spv.matrix.frag                     |  37 +-
 glslang/Include/revision.h               |   4 +-
 6 files changed, 492 insertions(+), 441 deletions(-)

diff --git a/Test/baseResults/spv.Operations.frag.out b/Test/baseResults/spv.Operations.frag.out
index 97ffce980..3685b73c2 100755
--- a/Test/baseResults/spv.Operations.frag.out
+++ b/Test/baseResults/spv.Operations.frag.out
@@ -1,31 +1,36 @@
 spv.Operations.frag
+Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
+
 
 Linked fragment stage:
 
 
 // Module Version 10000
 // Generated by (magic number): 80001
-// Id's are bound by 418
+// Id's are bound by 503
 
                               Capability Shader
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Fragment 4  "main"
+                              EntryPoint Fragment 4  "main" 479
                               ExecutionMode 4 OriginLowerLeft
-                              Source GLSL 130
+                              Source GLSL 450
                               Name 4  "main"
                               Name 9  "v"
                               Name 11  "uv4"
                               Name 20  "i"
                               Name 22  "ui"
-                              Name 172  "uf"
-                              Name 219  "b"
-                              Name 253  "ub41"
-                              Name 255  "ub42"
-                              Name 318  "f"
-                              Name 397  "gl_FragColor"
-                              Name 415  "uiv4"
-                              Name 417  "ub"
+                              Name 181  "ub41"
+                              Name 188  "f"
+                              Name 211  "uf"
+                              Name 281  "u"
+                              Name 284  "uui"
+                              Name 301  "b"
+                              Name 338  "ub42"
+                              Name 479  "FragColor"
+                              Name 497  "uiv4"
+                              Name 499  "ub"
+                              Name 502  "uuv4"
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
@@ -37,38 +42,45 @@ Linked fragment stage:
               19:             TypePointer Function 18(int)
               21:             TypePointer UniformConstant 18(int)
           22(ui):     21(ptr) Variable UniformConstant
-             129:             TypeInt 32 0
-             130:    129(int) Constant 0
-             131:             TypePointer Function 6(float)
-             171:             TypePointer UniformConstant 6(float)
-         172(uf):    171(ptr) Variable UniformConstant
-             217:             TypeBool
-             218:             TypePointer Function 217(bool)
-             222:             TypeVector 217(bool) 4
-             252:             TypePointer UniformConstant 222(bvec4)
-       253(ub41):    252(ptr) Variable UniformConstant
-       255(ub42):    252(ptr) Variable UniformConstant
-             309:     18(int) Constant 2
-             316:     18(int) Constant 1
-             347:             TypeVector 6(float) 3
-             366:    6(float) Constant 1073741824
-             373:    6(float) Constant 1065353216
-             378:     18(int) Constant 66
-             384:     18(int) Constant 17
-             396:             TypePointer Output 7(fvec4)
-397(gl_FragColor):    396(ptr) Variable Output
-             413:             TypeVector 18(int) 4
-             414:             TypePointer UniformConstant 413(ivec4)
-       415(uiv4):    414(ptr) Variable UniformConstant
-             416:             TypePointer UniformConstant 217(bool)
-         417(ub):    416(ptr) Variable UniformConstant
+             141:             TypeInt 32 0
+             142:    141(int) Constant 0
+             143:             TypePointer Function 6(float)
+             178:             TypeBool
+             179:             TypeVector 178(bool) 4
+             180:             TypePointer UniformConstant 179(bvec4)
+       181(ub41):    180(ptr) Variable UniformConstant
+             210:             TypePointer UniformConstant 6(float)
+         211(uf):    210(ptr) Variable UniformConstant
+             280:             TypePointer Function 141(int)
+             283:             TypePointer UniformConstant 141(int)
+        284(uui):    283(ptr) Variable UniformConstant
+             300:             TypePointer Function 178(bool)
+       338(ub42):    180(ptr) Variable UniformConstant
+             392:     18(int) Constant 2
+             399:     18(int) Constant 1
+             429:             TypeVector 6(float) 3
+             448:    6(float) Constant 1073741824
+             455:    6(float) Constant 1065353216
+             460:     18(int) Constant 66
+             466:     18(int) Constant 17
+             478:             TypePointer Output 7(fvec4)
+  479(FragColor):    478(ptr) Variable Output
+             495:             TypeVector 18(int) 4
+             496:             TypePointer UniformConstant 495(ivec4)
+       497(uiv4):    496(ptr) Variable UniformConstant
+             498:             TypePointer UniformConstant 178(bool)
+         499(ub):    498(ptr) Variable UniformConstant
+             500:             TypeVector 141(int) 4
+             501:             TypePointer UniformConstant 500(ivec4)
+       502(uuv4):    501(ptr) Variable UniformConstant
          4(main):           2 Function None 3
                5:             Label
             9(v):      8(ptr) Variable Function
            20(i):     19(ptr) Variable Function
-          219(b):    218(ptr) Variable Function
-          318(f):    131(ptr) Variable Function
-             398:      8(ptr) Variable Function
+          188(f):    143(ptr) Variable Function
+          281(u):    280(ptr) Variable Function
+          301(b):    300(ptr) Variable Function
+             480:      8(ptr) Variable Function
               12:    7(fvec4) Load 11(uv4)
               13:    7(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 12
                               Store 9(v) 13
@@ -193,362 +205,457 @@ Linked fragment stage:
              114:    7(fvec4) FAdd 113 112
                               Store 9(v) 114
              115:    7(fvec4) Load 9(v)
-             116:    7(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 115
+             116:    7(fvec4) ExtInst 1(GLSL.std.450) 3(Trunc) 115
              117:    7(fvec4) Load 9(v)
              118:    7(fvec4) FAdd 117 116
                               Store 9(v) 118
              119:    7(fvec4) Load 9(v)
-             120:    7(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 119
+             120:    7(fvec4) ExtInst 1(GLSL.std.450) 1(Round) 119
              121:    7(fvec4) Load 9(v)
              122:    7(fvec4) FAdd 121 120
                               Store 9(v) 122
              123:    7(fvec4) Load 9(v)
-             124:    7(fvec4) Load 9(v)
-             125:    7(fvec4) FMod 123 124
-             126:    7(fvec4) Load 9(v)
-             127:    7(fvec4) FAdd 126 125
-                              Store 9(v) 127
-             128:    7(fvec4) Load 9(v)
-             132:    131(ptr) AccessChain 9(v) 130
-             133:    6(float) Load 132
-             134:    7(fvec4) CompositeConstruct 133 133 133 133
-             135:    7(fvec4) FMod 128 134
+             124:    7(fvec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 123
+             125:    7(fvec4) Load 9(v)
+             126:    7(fvec4) FAdd 125 124
+                              Store 9(v) 126
+             127:    7(fvec4) Load 9(v)
+             128:    7(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 127
+             129:    7(fvec4) Load 9(v)
+             130:    7(fvec4) FAdd 129 128
+                              Store 9(v) 130
+             131:    7(fvec4) Load 9(v)
+             132:    7(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 131
+             133:    7(fvec4) Load 9(v)
+             134:    7(fvec4) FAdd 133 132
+                              Store 9(v) 134
+             135:    7(fvec4) Load 9(v)
              136:    7(fvec4) Load 9(v)
-             137:    7(fvec4) FAdd 136 135
-                              Store 9(v) 137
+             137:    7(fvec4) FMod 135 136
              138:    7(fvec4) Load 9(v)
-             139:    7(fvec4) Load 11(uv4)
-             140:    7(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 138 139
-             141:    7(fvec4) Load 9(v)
-             142:    7(fvec4) FAdd 141 140
-                              Store 9(v) 142
-             143:    7(fvec4) Load 9(v)
-             144:    7(fvec4) Load 11(uv4)
-             145:    7(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 143 144
-             146:    7(fvec4) Load 9(v)
-             147:    7(fvec4) FAdd 146 145
-                              Store 9(v) 147
+             139:    7(fvec4) FAdd 138 137
+                              Store 9(v) 139
+             140:    7(fvec4) Load 9(v)
+             144:    143(ptr) AccessChain 9(v) 142
+             145:    6(float) Load 144
+             146:    7(fvec4) CompositeConstruct 145 145 145 145
+             147:    7(fvec4) FMod 140 146
              148:    7(fvec4) Load 9(v)
-             149:    7(fvec4) Load 11(uv4)
-             150:    7(fvec4) Load 11(uv4)
-             151:    7(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 148 149 150
+             149:    7(fvec4) FAdd 148 147
+                              Store 9(v) 149
+             150:    7(fvec4) Load 9(v)
+             151:    7(fvec4) ExtInst 1(GLSL.std.450) 35(Modf) 150 9(v)
              152:    7(fvec4) Load 9(v)
              153:    7(fvec4) FAdd 152 151
                               Store 9(v) 153
              154:    7(fvec4) Load 9(v)
-             155:    7(fvec4) Load 9(v)
-             156:    7(fvec4) Load 9(v)
-             157:    7(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 154 155 156
-             158:    7(fvec4) Load 9(v)
-             159:    7(fvec4) FAdd 158 157
-                              Store 9(v) 159
-             160:    7(fvec4) Load 9(v)
-             161:    7(fvec4) Load 9(v)
-             162:    7(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 160 161
-             163:    7(fvec4) Load 9(v)
-             164:    7(fvec4) FAdd 163 162
-                              Store 9(v) 164
-             165:    7(fvec4) Load 9(v)
-             166:    7(fvec4) Load 9(v)
-             167:    7(fvec4) Load 9(v)
-             168:    7(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 165 166 167
-             169:    7(fvec4) Load 9(v)
-             170:    7(fvec4) FAdd 169 168
-                              Store 9(v) 170
-             173:    6(float) Load 172(uf)
+             155:    7(fvec4) Load 11(uv4)
+             156:    7(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 154 155
+             157:    7(fvec4) Load 9(v)
+             158:    7(fvec4) FAdd 157 156
+                              Store 9(v) 158
+             159:    7(fvec4) Load 9(v)
+             160:    7(fvec4) Load 11(uv4)
+             161:    7(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 159 160
+             162:    7(fvec4) Load 9(v)
+             163:    7(fvec4) FAdd 162 161
+                              Store 9(v) 163
+             164:    7(fvec4) Load 9(v)
+             165:    7(fvec4) Load 11(uv4)
+             166:    7(fvec4) Load 11(uv4)
+             167:    7(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 164 165 166
+             168:    7(fvec4) Load 9(v)
+             169:    7(fvec4) FAdd 168 167
+                              Store 9(v) 169
+             170:    7(fvec4) Load 9(v)
+             171:    7(fvec4) Load 9(v)
+             172:    7(fvec4) Load 9(v)
+             173:    7(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 170 171 172
              174:    7(fvec4) Load 9(v)
-             175:    7(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 173 174
+             175:    7(fvec4) FAdd 174 173
+                              Store 9(v) 175
              176:    7(fvec4) Load 9(v)
-             177:    7(fvec4) FAdd 176 175
-                              Store 9(v) 177
-             178:    6(float) Load 172(uf)
-             179:    6(float) Load 172(uf)
-             180:    7(fvec4) Load 9(v)
-             181:    7(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 178 179 180
-             182:    7(fvec4) Load 9(v)
-             183:    7(fvec4) FAdd 182 181
-                              Store 9(v) 183
+             177:    7(fvec4) Load 9(v)
+             182:  179(bvec4) Load 181(ub41)
+             183:    7(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 176 177 182
              184:    7(fvec4) Load 9(v)
-             185:    7(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 184
+             185:    7(fvec4) FAdd 184 183
+                              Store 9(v) 185
              186:    7(fvec4) Load 9(v)
-             187:    7(fvec4) FAdd 186 185
-                              Store 9(v) 187
-             188:    7(fvec4) Load 9(v)
-             189:    7(fvec4) Load 9(v)
-             190:    7(fvec4) Load 9(v)
-             191:    7(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 188 189 190
-             192:    7(fvec4) Load 9(v)
-             193:    7(fvec4) FAdd 192 191
-                              Store 9(v) 193
-             194:    7(fvec4) Load 9(v)
+             187:    7(fvec4) Load 9(v)
+             189:    6(float) Load 188(f)
+             190:    7(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 186 187 189
+             191:    7(fvec4) Load 9(v)
+             192:    7(fvec4) FAdd 191 190
+                              Store 9(v) 192
+             193:    7(fvec4) Load 9(v)
+             194:    7(fvec4) Load 11(uv4)
              195:    7(fvec4) Load 9(v)
-             196:    7(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 194 195
+             196:    7(fvec4) ExtInst 1(GLSL.std.450) 50(Fma) 193 194 195
              197:    7(fvec4) Load 9(v)
              198:    7(fvec4) FAdd 197 196
                               Store 9(v) 198
              199:    7(fvec4) Load 9(v)
              200:    7(fvec4) Load 9(v)
-             201:    6(float) Load 172(uf)
-             202:    7(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 199 200 201
-             203:    7(fvec4) Load 9(v)
-             204:    7(fvec4) FAdd 203 202
-                              Store 9(v) 204
+             201:    7(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 199 200
+             202:    7(fvec4) Load 9(v)
+             203:    7(fvec4) FAdd 202 201
+                              Store 9(v) 203
+             204:    7(fvec4) Load 9(v)
              205:    7(fvec4) Load 9(v)
-             206:    7(fvec4) DPdx 205
-             207:    7(fvec4) Load 9(v)
-             208:    7(fvec4) FAdd 207 206
-                              Store 9(v) 208
-             209:    7(fvec4) Load 9(v)
-             210:    7(fvec4) DPdy 209
-             211:    7(fvec4) Load 9(v)
-             212:    7(fvec4) FAdd 211 210
-                              Store 9(v) 212
+             206:    7(fvec4) Load 9(v)
+             207:    7(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 204 205 206
+             208:    7(fvec4) Load 9(v)
+             209:    7(fvec4) FAdd 208 207
+                              Store 9(v) 209
+             212:    6(float) Load 211(uf)
              213:    7(fvec4) Load 9(v)
-             214:    7(fvec4) Fwidth 213
+             214:    7(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 212 213
              215:    7(fvec4) Load 9(v)
              216:    7(fvec4) FAdd 215 214
                               Store 9(v) 216
-             220:    7(fvec4) Load 9(v)
-             221:    7(fvec4) Load 11(uv4)
-             223:  222(bvec4) FOrdLessThan 220 221
-             224:   217(bool) Any 223
-                              Store 219(b) 224
-             225:   217(bool) Load 219(b)
-                              SelectionMerge 227 None
-                              BranchConditional 225 226 227
-             226:               Label
-             228:    7(fvec4)   Load 9(v)
-             229:    7(fvec4)   Load 11(uv4)
-             230:  222(bvec4)   FOrdLessThanEqual 228 229
-             231:   217(bool)   Any 230
-                                Branch 227
-             227:             Label
-             232:   217(bool) Phi 225 5 231 226
-                              Store 219(b) 232
-             233:   217(bool) Load 219(b)
-                              SelectionMerge 235 None
-                              BranchConditional 233 234 235
-             234:               Label
-             236:    7(fvec4)   Load 9(v)
-             237:    7(fvec4)   Load 11(uv4)
-             238:  222(bvec4)   FOrdGreaterThan 236 237
-             239:   217(bool)   Any 238
-                                Branch 235
-             235:             Label
-             240:   217(bool) Phi 233 227 239 234
-                              Store 219(b) 240
-             241:   217(bool) Load 219(b)
-                              SelectionMerge 243 None
-                              BranchConditional 241 242 243
-             242:               Label
-             244:    7(fvec4)   Load 9(v)
-             245:    7(fvec4)   Load 11(uv4)
-             246:  222(bvec4)   FOrdGreaterThanEqual 244 245
-             247:   217(bool)   Any 246
-                                Branch 243
-             243:             Label
-             248:   217(bool) Phi 241 235 247 242
-                              Store 219(b) 248
-             249:   217(bool) Load 219(b)
-                              SelectionMerge 251 None
-                              BranchConditional 249 250 251
-             250:               Label
-             254:  222(bvec4)   Load 253(ub41)
-             256:  222(bvec4)   Load 255(ub42)
-             257:  222(bvec4)   IEqual 254 256
-             258:   217(bool)   Any 257
-                                Branch 251
-             251:             Label
-             259:   217(bool) Phi 249 243 258 250
-                              Store 219(b) 259
-             260:   217(bool) Load 219(b)
-                              SelectionMerge 262 None
-                              BranchConditional 260 261 262
-             261:               Label
-             263:  222(bvec4)   Load 253(ub41)
-             264:  222(bvec4)   Load 255(ub42)
-             265:  222(bvec4)   INotEqual 263 264
-             266:   217(bool)   Any 265
-                                Branch 262
-             262:             Label
-             267:   217(bool) Phi 260 251 266 261
-                              Store 219(b) 267
-             268:   217(bool) Load 219(b)
-             269:  222(bvec4) Load 253(ub41)
-             270:   217(bool) Any 269
-             271:   217(bool) LogicalAnd 268 270
-                              Store 219(b) 271
-             272:   217(bool) Load 219(b)
-             273:  222(bvec4) Load 253(ub41)
-             274:   217(bool) All 273
-             275:   217(bool) LogicalAnd 272 274
-                              Store 219(b) 275
-             276:   217(bool) Load 219(b)
-                              SelectionMerge 278 None
-                              BranchConditional 276 277 278
-             277:               Label
-             279:  222(bvec4)   Load 253(ub41)
-             280:  222(bvec4)   LogicalNot 279
-             281:   217(bool)   Any 280
-                                Branch 278
-             278:             Label
-             282:   217(bool) Phi 276 262 281 277
-                              Store 219(b) 282
-             283:     18(int) Load 20(i)
-             284:     18(int) Load 22(ui)
-             285:     18(int) IAdd 283 284
-             286:     18(int) Load 20(i)
-             287:     18(int) IMul 285 286
-             288:     18(int) Load 22(ui)
-             289:     18(int) ISub 287 288
-             290:     18(int) Load 20(i)
-             291:     18(int) SDiv 289 290
-                              Store 20(i) 291
-             292:     18(int) Load 20(i)
-             293:     18(int) Load 22(ui)
-             294:     18(int) SMod 292 293
-                              Store 20(i) 294
-             295:     18(int) Load 20(i)
-             296:     18(int) Load 22(ui)
-             297:   217(bool) IEqual 295 296
-             298:   217(bool) LogicalNot 297
-                              SelectionMerge 300 None
-                              BranchConditional 298 299 300
-             299:               Label
-             301:     18(int)   Load 20(i)
-             302:     18(int)   Load 22(ui)
-             303:   217(bool)   INotEqual 301 302
-             304:     18(int)   Load 20(i)
-             305:     18(int)   Load 22(ui)
-             306:   217(bool)   IEqual 304 305
-             307:   217(bool)   LogicalAnd 303 306
-             308:     18(int)   Load 20(i)
-             310:   217(bool)   INotEqual 308 309
-             311:   217(bool)   LogicalNotEqual 307 310
-                                Branch 300
-             300:             Label
-             312:   217(bool) Phi 297 278 311 299
-                              SelectionMerge 314 None
-                              BranchConditional 312 313 314
-             313:               Label
-             315:     18(int)   Load 20(i)
-             317:     18(int)   IAdd 315 316
-                                Store 20(i) 317
-                                Branch 314
-             314:             Label
-             319:    6(float) Load 172(uf)
-             320:    6(float) Load 172(uf)
-             321:    6(float) FAdd 319 320
-             322:    6(float) Load 172(uf)
-             323:    6(float) FMul 321 322
-             324:    6(float) Load 172(uf)
-             325:    6(float) FSub 323 324
-             326:    6(float) Load 172(uf)
-             327:    6(float) FDiv 325 326
-                              Store 318(f) 327
-             328:    7(fvec4) Load 9(v)
-             329:    6(float) ExtInst 1(GLSL.std.450) 66(Length) 328
-             330:    6(float) Load 318(f)
-             331:    6(float) FAdd 330 329
-                              Store 318(f) 331
-             332:    7(fvec4) Load 9(v)
-             333:    7(fvec4) Load 9(v)
-             334:    6(float) ExtInst 1(GLSL.std.450) 67(Distance) 332 333
-             335:    6(float) Load 318(f)
-             336:    6(float) FAdd 335 334
-                              Store 318(f) 336
-             337:    7(fvec4) Load 9(v)
-             338:    7(fvec4) Load 9(v)
-             339:    6(float) Dot 337 338
-             340:    6(float) Load 318(f)
-             341:    6(float) FAdd 340 339
-                              Store 318(f) 341
-             342:    6(float) Load 318(f)
-             343:    6(float) Load 172(uf)
-             344:    6(float) FMul 342 343
-             345:    6(float) Load 318(f)
-             346:    6(float) FAdd 345 344
-                              Store 318(f) 346
-             348:    7(fvec4) Load 9(v)
-             349:  347(fvec3) VectorShuffle 348 348 0 1 2
-             350:    7(fvec4) Load 9(v)
-             351:  347(fvec3) VectorShuffle 350 350 0 1 2
-             352:  347(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 349 351
-             353:    6(float) CompositeExtract 352 0
-             354:    6(float) Load 318(f)
-             355:    6(float) FAdd 354 353
-                              Store 318(f) 355
-             356:    6(float) Load 318(f)
-             357:    6(float) Load 172(uf)
-             358:   217(bool) FOrdEqual 356 357
-             359:   217(bool) LogicalNot 358
+             217:    6(float) Load 211(uf)
+             218:    6(float) Load 211(uf)
+             219:    7(fvec4) Load 9(v)
+             220:    7(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 217 218 219
+             221:    7(fvec4) Load 9(v)
+             222:    7(fvec4) FAdd 221 220
+                              Store 9(v) 222
+             223:    7(fvec4) Load 9(v)
+             224:    7(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 223
+             225:    7(fvec4) Load 9(v)
+             226:    7(fvec4) FAdd 225 224
+                              Store 9(v) 226
+             227:    7(fvec4) Load 9(v)
+             228:    7(fvec4) Load 9(v)
+             229:    7(fvec4) Load 9(v)
+             230:    7(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 227 228 229
+             231:    7(fvec4) Load 9(v)
+             232:    7(fvec4) FAdd 231 230
+                              Store 9(v) 232
+             233:    7(fvec4) Load 9(v)
+             234:    7(fvec4) Load 9(v)
+             235:    7(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 233 234
+             236:    7(fvec4) Load 9(v)
+             237:    7(fvec4) FAdd 236 235
+                              Store 9(v) 237
+             238:    7(fvec4) Load 9(v)
+             239:    7(fvec4) Load 9(v)
+             240:    6(float) Load 211(uf)
+             241:    7(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 238 239 240
+             242:    7(fvec4) Load 9(v)
+             243:    7(fvec4) FAdd 242 241
+                              Store 9(v) 243
+             244:    7(fvec4) Load 9(v)
+             245:    7(fvec4) DPdx 244
+             246:    7(fvec4) Load 9(v)
+             247:    7(fvec4) FAdd 246 245
+                              Store 9(v) 247
+             248:    7(fvec4) Load 9(v)
+             249:    7(fvec4) DPdy 248
+             250:    7(fvec4) Load 9(v)
+             251:    7(fvec4) FAdd 250 249
+                              Store 9(v) 251
+             252:    7(fvec4) Load 9(v)
+             253:    7(fvec4) Fwidth 252
+             254:    7(fvec4) Load 9(v)
+             255:    7(fvec4) FAdd 254 253
+                              Store 9(v) 255
+             256:     18(int) Load 22(ui)
+             257:     18(int) ExtInst 1(GLSL.std.450) 5(SAbs) 256
+             258:     18(int) Load 20(i)
+             259:     18(int) IAdd 258 257
+                              Store 20(i) 259
+             260:     18(int) Load 20(i)
+             261:     18(int) ExtInst 1(GLSL.std.450) 7(SSign) 260
+             262:     18(int) Load 20(i)
+             263:     18(int) IAdd 262 261
+                              Store 20(i) 263
+             264:     18(int) Load 20(i)
+             265:     18(int) Load 22(ui)
+             266:     18(int) ExtInst 1(GLSL.std.450) 39(SMin) 264 265
+             267:     18(int) Load 20(i)
+             268:     18(int) IAdd 267 266
+                              Store 20(i) 268
+             269:     18(int) Load 20(i)
+             270:     18(int) Load 22(ui)
+             271:     18(int) ExtInst 1(GLSL.std.450) 42(SMax) 269 270
+             272:     18(int) Load 20(i)
+             273:     18(int) IAdd 272 271
+                              Store 20(i) 273
+             274:     18(int) Load 20(i)
+             275:     18(int) Load 22(ui)
+             276:     18(int) Load 22(ui)
+             277:     18(int) ExtInst 1(GLSL.std.450) 45(SClamp) 274 275 276
+             278:     18(int) Load 20(i)
+             279:     18(int) IAdd 278 277
+                              Store 20(i) 279
+             282:    141(int) Load 281(u)
+             285:    141(int) Load 284(uui)
+             286:    141(int) ExtInst 1(GLSL.std.450) 38(UMin) 282 285
+             287:    141(int) Load 281(u)
+             288:    141(int) IAdd 287 286
+                              Store 281(u) 288
+             289:    141(int) Load 281(u)
+             290:    141(int) Load 284(uui)
+             291:    141(int) ExtInst 1(GLSL.std.450) 41(UMax) 289 290
+             292:    141(int) Load 281(u)
+             293:    141(int) IAdd 292 291
+                              Store 281(u) 293
+             294:    141(int) Load 281(u)
+             295:    141(int) Load 284(uui)
+             296:    141(int) Load 284(uui)
+             297:    141(int) ExtInst 1(GLSL.std.450) 44(UClamp) 294 295 296
+             298:    141(int) Load 281(u)
+             299:    141(int) IAdd 298 297
+                              Store 281(u) 299
+             302:    6(float) Load 211(uf)
+             303:   178(bool) IsNan 302
+                              Store 301(b) 303
+             304:    6(float) Load 188(f)
+             305:   178(bool) IsInf 304
+                              Store 301(b) 305
+             306:    7(fvec4) Load 9(v)
+             307:    7(fvec4) Load 11(uv4)
+             308:  179(bvec4) FOrdLessThan 306 307
+             309:   178(bool) Any 308
+                              Store 301(b) 309
+             310:   178(bool) Load 301(b)
+                              SelectionMerge 312 None
+                              BranchConditional 310 311 312
+             311:               Label
+             313:    7(fvec4)   Load 9(v)
+             314:    7(fvec4)   Load 11(uv4)
+             315:  179(bvec4)   FOrdLessThanEqual 313 314
+             316:   178(bool)   Any 315
+                                Branch 312
+             312:             Label
+             317:   178(bool) Phi 310 5 316 311
+                              Store 301(b) 317
+             318:   178(bool) Load 301(b)
+                              SelectionMerge 320 None
+                              BranchConditional 318 319 320
+             319:               Label
+             321:    7(fvec4)   Load 9(v)
+             322:    7(fvec4)   Load 11(uv4)
+             323:  179(bvec4)   FOrdGreaterThan 321 322
+             324:   178(bool)   Any 323
+                                Branch 320
+             320:             Label
+             325:   178(bool) Phi 318 312 324 319
+                              Store 301(b) 325
+             326:   178(bool) Load 301(b)
+                              SelectionMerge 328 None
+                              BranchConditional 326 327 328
+             327:               Label
+             329:    7(fvec4)   Load 9(v)
+             330:    7(fvec4)   Load 11(uv4)
+             331:  179(bvec4)   FOrdGreaterThanEqual 329 330
+             332:   178(bool)   Any 331
+                                Branch 328
+             328:             Label
+             333:   178(bool) Phi 326 320 332 327
+                              Store 301(b) 333
+             334:   178(bool) Load 301(b)
+                              SelectionMerge 336 None
+                              BranchConditional 334 335 336
+             335:               Label
+             337:  179(bvec4)   Load 181(ub41)
+             339:  179(bvec4)   Load 338(ub42)
+             340:  179(bvec4)   IEqual 337 339
+             341:   178(bool)   Any 340
+                                Branch 336
+             336:             Label
+             342:   178(bool) Phi 334 328 341 335
+                              Store 301(b) 342
+             343:   178(bool) Load 301(b)
+                              SelectionMerge 345 None
+                              BranchConditional 343 344 345
+             344:               Label
+             346:  179(bvec4)   Load 181(ub41)
+             347:  179(bvec4)   Load 338(ub42)
+             348:  179(bvec4)   INotEqual 346 347
+             349:   178(bool)   Any 348
+                                Branch 345
+             345:             Label
+             350:   178(bool) Phi 343 336 349 344
+                              Store 301(b) 350
+             351:   178(bool) Load 301(b)
+             352:  179(bvec4) Load 181(ub41)
+             353:   178(bool) Any 352
+             354:   178(bool) LogicalAnd 351 353
+                              Store 301(b) 354
+             355:   178(bool) Load 301(b)
+             356:  179(bvec4) Load 181(ub41)
+             357:   178(bool) All 356
+             358:   178(bool) LogicalAnd 355 357
+                              Store 301(b) 358
+             359:   178(bool) Load 301(b)
                               SelectionMerge 361 None
                               BranchConditional 359 360 361
              360:               Label
-             362:    6(float)   Load 318(f)
-             363:    6(float)   Load 172(uf)
-             364:   217(bool)   FOrdNotEqual 362 363
-             365:    6(float)   Load 318(f)
-             367:   217(bool)   FOrdNotEqual 365 366
-             368:   217(bool)   LogicalAnd 364 367
+             362:  179(bvec4)   Load 181(ub41)
+             363:  179(bvec4)   LogicalNot 362
+             364:   178(bool)   Any 363
                                 Branch 361
              361:             Label
-             369:   217(bool) Phi 358 314 368 360
-                              SelectionMerge 371 None
-                              BranchConditional 369 370 371
-             370:               Label
-             372:    6(float)   Load 318(f)
-             374:    6(float)   FAdd 372 373
-                                Store 318(f) 374
-                                Branch 371
-             371:             Label
-             375:     18(int) Load 22(ui)
-             376:     18(int) Load 20(i)
-             377:     18(int) BitwiseAnd 376 375
+             365:   178(bool) Phi 359 345 364 360
+                              Store 301(b) 365
+             366:     18(int) Load 20(i)
+             367:     18(int) Load 22(ui)
+             368:     18(int) IAdd 366 367
+             369:     18(int) Load 20(i)
+             370:     18(int) IMul 368 369
+             371:     18(int) Load 22(ui)
+             372:     18(int) ISub 370 371
+             373:     18(int) Load 20(i)
+             374:     18(int) SDiv 372 373
+                              Store 20(i) 374
+             375:     18(int) Load 20(i)
+             376:     18(int) Load 22(ui)
+             377:     18(int) SMod 375 376
                               Store 20(i) 377
-             379:     18(int) Load 20(i)
-             380:     18(int) BitwiseOr 379 378
-                              Store 20(i) 380
-             381:     18(int) Load 22(ui)
-             382:     18(int) Load 20(i)
-             383:     18(int) BitwiseXor 382 381
-                              Store 20(i) 383
-             385:     18(int) Load 20(i)
-             386:     18(int) SMod 385 384
-                              Store 20(i) 386
-             387:     18(int) Load 20(i)
-             388:     18(int) ShiftRightArithmetic 387 309
-                              Store 20(i) 388
-             389:     18(int) Load 22(ui)
-             390:     18(int) Load 20(i)
-             391:     18(int) ShiftLeftLogical 390 389
-                              Store 20(i) 391
-             392:     18(int) Load 20(i)
-             393:     18(int) Not 392
-                              Store 20(i) 393
-             394:   217(bool) Load 219(b)
-             395:   217(bool) LogicalNot 394
-                              Store 219(b) 395
-             399:   217(bool) Load 219(b)
-                              SelectionMerge 401 None
-                              BranchConditional 399 400 410
-             400:               Label
-             402:     18(int)   Load 20(i)
-             403:    6(float)   ConvertSToF 402
-             404:    7(fvec4)   CompositeConstruct 403 403 403 403
-             405:    6(float)   Load 318(f)
-             406:    7(fvec4)   CompositeConstruct 405 405 405 405
-             407:    7(fvec4)   FAdd 404 406
-             408:    7(fvec4)   Load 9(v)
-             409:    7(fvec4)   FAdd 407 408
-                                Store 398 409
-                                Branch 401
-             410:               Label
-             411:    7(fvec4)   Load 9(v)
-                                Store 398 411
-                                Branch 401
-             401:             Label
-             412:    7(fvec4) Load 398
-                              Store 397(gl_FragColor) 412
+             378:     18(int) Load 20(i)
+             379:     18(int) Load 22(ui)
+             380:   178(bool) IEqual 378 379
+             381:   178(bool) LogicalNot 380
+                              SelectionMerge 383 None
+                              BranchConditional 381 382 383
+             382:               Label
+             384:     18(int)   Load 20(i)
+             385:     18(int)   Load 22(ui)
+             386:   178(bool)   INotEqual 384 385
+             387:     18(int)   Load 20(i)
+             388:     18(int)   Load 22(ui)
+             389:   178(bool)   IEqual 387 388
+             390:   178(bool)   LogicalAnd 386 389
+             391:     18(int)   Load 20(i)
+             393:   178(bool)   INotEqual 391 392
+             394:   178(bool)   LogicalNotEqual 390 393
+                                Branch 383
+             383:             Label
+             395:   178(bool) Phi 380 361 394 382
+                              SelectionMerge 397 None
+                              BranchConditional 395 396 397
+             396:               Label
+             398:     18(int)   Load 20(i)
+             400:     18(int)   IAdd 398 399
+                                Store 20(i) 400
+                                Branch 397
+             397:             Label
+             401:    6(float) Load 211(uf)
+             402:    6(float) Load 211(uf)
+             403:    6(float) FAdd 401 402
+             404:    6(float) Load 211(uf)
+             405:    6(float) FMul 403 404
+             406:    6(float) Load 211(uf)
+             407:    6(float) FSub 405 406
+             408:    6(float) Load 211(uf)
+             409:    6(float) FDiv 407 408
+                              Store 188(f) 409
+             410:    7(fvec4) Load 9(v)
+             411:    6(float) ExtInst 1(GLSL.std.450) 66(Length) 410
+             412:    6(float) Load 188(f)
+             413:    6(float) FAdd 412 411
+                              Store 188(f) 413
+             414:    7(fvec4) Load 9(v)
+             415:    7(fvec4) Load 9(v)
+             416:    6(float) ExtInst 1(GLSL.std.450) 67(Distance) 414 415
+             417:    6(float) Load 188(f)
+             418:    6(float) FAdd 417 416
+                              Store 188(f) 418
+             419:    7(fvec4) Load 9(v)
+             420:    7(fvec4) Load 9(v)
+             421:    6(float) Dot 419 420
+             422:    6(float) Load 188(f)
+             423:    6(float) FAdd 422 421
+                              Store 188(f) 423
+             424:    6(float) Load 188(f)
+             425:    6(float) Load 211(uf)
+             426:    6(float) FMul 424 425
+             427:    6(float) Load 188(f)
+             428:    6(float) FAdd 427 426
+                              Store 188(f) 428
+             430:    7(fvec4) Load 9(v)
+             431:  429(fvec3) VectorShuffle 430 430 0 1 2
+             432:    7(fvec4) Load 9(v)
+             433:  429(fvec3) VectorShuffle 432 432 0 1 2
+             434:  429(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 431 433
+             435:    6(float) CompositeExtract 434 0
+             436:    6(float) Load 188(f)
+             437:    6(float) FAdd 436 435
+                              Store 188(f) 437
+             438:    6(float) Load 188(f)
+             439:    6(float) Load 211(uf)
+             440:   178(bool) FOrdEqual 438 439
+             441:   178(bool) LogicalNot 440
+                              SelectionMerge 443 None
+                              BranchConditional 441 442 443
+             442:               Label
+             444:    6(float)   Load 188(f)
+             445:    6(float)   Load 211(uf)
+             446:   178(bool)   FOrdNotEqual 444 445
+             447:    6(float)   Load 188(f)
+             449:   178(bool)   FOrdNotEqual 447 448
+             450:   178(bool)   LogicalAnd 446 449
+                                Branch 443
+             443:             Label
+             451:   178(bool) Phi 440 397 450 442
+                              SelectionMerge 453 None
+                              BranchConditional 451 452 453
+             452:               Label
+             454:    6(float)   Load 188(f)
+             456:    6(float)   FAdd 454 455
+                                Store 188(f) 456
+                                Branch 453
+             453:             Label
+             457:     18(int) Load 22(ui)
+             458:     18(int) Load 20(i)
+             459:     18(int) BitwiseAnd 458 457
+                              Store 20(i) 459
+             461:     18(int) Load 20(i)
+             462:     18(int) BitwiseOr 461 460
+                              Store 20(i) 462
+             463:     18(int) Load 22(ui)
+             464:     18(int) Load 20(i)
+             465:     18(int) BitwiseXor 464 463
+                              Store 20(i) 465
+             467:     18(int) Load 20(i)
+             468:     18(int) SMod 467 466
+                              Store 20(i) 468
+             469:     18(int) Load 20(i)
+             470:     18(int) ShiftRightArithmetic 469 392
+                              Store 20(i) 470
+             471:     18(int) Load 22(ui)
+             472:     18(int) Load 20(i)
+             473:     18(int) ShiftLeftLogical 472 471
+                              Store 20(i) 473
+             474:     18(int) Load 20(i)
+             475:     18(int) Not 474
+                              Store 20(i) 475
+             476:   178(bool) Load 301(b)
+             477:   178(bool) LogicalNot 476
+                              Store 301(b) 477
+             481:   178(bool) Load 301(b)
+                              SelectionMerge 483 None
+                              BranchConditional 481 482 492
+             482:               Label
+             484:     18(int)   Load 20(i)
+             485:    6(float)   ConvertSToF 484
+             486:    7(fvec4)   CompositeConstruct 485 485 485 485
+             487:    6(float)   Load 188(f)
+             488:    7(fvec4)   CompositeConstruct 487 487 487 487
+             489:    7(fvec4)   FAdd 486 488
+             490:    7(fvec4)   Load 9(v)
+             491:    7(fvec4)   FAdd 489 490
+                                Store 480 491
+                                Branch 483
+             492:               Label
+             493:    7(fvec4)   Load 9(v)
+                                Store 480 493
+                                Branch 483
+             483:             Label
+             494:    7(fvec4) Load 480
+                              Store 479(FragColor) 494
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.matrix.frag.out b/Test/baseResults/spv.matrix.frag.out
index f879f9726..e9496067c 100644
--- a/Test/baseResults/spv.matrix.frag.out
+++ b/Test/baseResults/spv.matrix.frag.out
@@ -1,8 +1,4 @@
 spv.matrix.frag
-WARNING: 0:6: varying deprecated in version 130; may be removed in future release
-WARNING: 0:17: varying deprecated in version 130; may be removed in future release
-WARNING: 0:22: varying deprecated in version 130; may be removed in future release
-
 
 Linked fragment stage:
 
diff --git a/Test/spv.Operations.frag b/Test/spv.Operations.frag
index 820048f22..de0fa2d6d 100644
--- a/Test/spv.Operations.frag
+++ b/Test/spv.Operations.frag
@@ -1,4 +1,4 @@
-#version 130
+#version 450
 
 uniform ivec4 uiv4;
 uniform vec4 uv4;
@@ -7,10 +7,10 @@ uniform bvec4 ub41, ub42;
 uniform float uf;
 uniform int ui;
 
-#ifdef TEST_POST_110
 uniform uvec4 uuv4;
-uniform unsigned int uui;
-#endif
+uniform uint uui;
+
+out vec4 FragColor;
 
 void main()
 {
@@ -19,9 +19,7 @@ void main()
 	bool b;
 	bvec4 bv4;
 	int i;
-#ifdef TEST_POST_110
 	uint u;
-#endif
 
 	// floating point
     v = radians(uv4);
@@ -51,37 +49,29 @@ void main()
     v += sign(v);
     v += floor(v);
 
-#ifdef TEST_POST_110
     v += trunc(v);
     v += round(v);
     v += roundEven(v);
-#endif
 
     v += ceil(v);
     v += fract(v);
     v += mod(v, v);
 	v += mod(v, v.x);
 
-#ifdef TEST_POST_110
     v += modf(v, v);
-#endif
 
     v += min(v, uv4);
     v += max(v, uv4);
     v += clamp(v, uv4, uv4);
     v += mix(v,v,v);
 
-#ifdef TEST_POST_110
-    v += mix(v,v,ub);
-    v += intBitsToFloat(v);
-    v += uintBitsToFloat(v);
-    v += fma(v);
-    v += frexp(v);
-    v += ldexp(v);
-    v += unpackUnorm2x16(v);
-    v += unpackUnorm4x8(v);
-    v += unpackSnorm4x8(v);
-#endif
+    v += mix(v,v,ub41);
+    v += mix(v,v,f);
+//spv    v += intBitsToFloat(ui);
+//    v += uintBitsToFloat(uui);
+//    i += floatBitsToInt(f);
+//    u += floatBitsToUint(f);
+    v += fma(v, uv4, v);
 
     v += step(v,v);
     v += smoothstep(v,v,v);
@@ -94,9 +84,7 @@ void main()
     v += dFdx(v);
     v += dFdy(v);
     v += fwidth(v);
-	//noise*(v);
 
-#ifdef TEST_POST_110
 	// signed integer
 	i += abs(ui);
 	i += sign(i);
@@ -104,29 +92,14 @@ void main()
 	i += max(i, ui);
 	i += clamp(i, ui, ui);
 
-	floatsBitsToInt(v);
-	packUnorm2x16(v);
-	packUnorm4x8(v);
-	packSnorm4x8(v);
-
 	// unsigned integer
-    u = abs(uui);
-    u += sign(u);
     u += min(u, uui);
     u += max(u, uui);
     u += clamp(u, uui, uui);
-    u += floatsBitToInt(v);
-    u += packUnorm2x16(v);
-    u += packUnorm4x8(v);
-    u += packSnorm4x8(v);
-    u += floatBitsToUInt(v);
-#endif
-
-	// bool
-#ifdef TEST_POST_110
+
+	//// bool
 	b = isnan(uf);
-    b = isinf(v);
-#endif
+    b = isinf(f);
 	b = any(lessThan(v, uv4));
 	b = (b && any(lessThanEqual(v, uv4)));
     b = (b && any(greaterThan(v, uv4)));
@@ -162,5 +135,5 @@ void main()
     i = ~i;
     b = !b;
 
-    gl_FragColor = b ? vec4(i) + vec4(f) + v : v;
+    FragColor = b ? vec4(i) + vec4(f) + v : v;
 }
diff --git a/Test/spv.length.frag b/Test/spv.length.frag
index 74c286f33..956d3be88 100644
--- a/Test/spv.length.frag
+++ b/Test/spv.length.frag
@@ -2,11 +2,7 @@
 
 uniform vec4 u[3];
 
-#ifdef TEST_POST_110
-varying vec2 v[];
-#else
 varying vec2 v[2];
-#endif
 
 void main()
 {
diff --git a/Test/spv.matrix.frag b/Test/spv.matrix.frag
index 150e0434f..381d38343 100644
--- a/Test/spv.matrix.frag
+++ b/Test/spv.matrix.frag
@@ -1,26 +1,15 @@
 #version 130
 
-//#define TEST_POST_110
-
 uniform mat3 colorTransform;
-varying vec3 Color;
+in vec3 Color;
 uniform mat4 m, n;
 
-#ifdef TEST_POST_110
 uniform mat4x3 um43;
 uniform mat3x4 un34;
-#else
-uniform mat4 um43;
-uniform mat4 un34;
-#endif
 
-varying vec4 v;
+in vec4 v;
 
-#ifdef TEST_POST_110
-varying vec3 u;
-#else
-varying vec4 u;
-#endif
+in vec3 u;
 
 void main()
 {
@@ -29,24 +18,14 @@ void main()
 
     if (m != n)
         gl_FragColor += v;
-   else {
+    else {
         gl_FragColor += m * v;
         gl_FragColor += v * (m - n);
-   }
-    
-#ifdef TEST_POST_110
+    }
+
     mat3x4 m34 = outerProduct(v, u);
-    m34 += mat4(v.x);
-    m34 += mat4(u, u.x, u, u.x, u, u.x, u.x);
-#else
-    mat4 m34 = mat4(v.x*u.x, v.x*u.y, v.x*u.z, v.x*u.w, 
-                    v.y*u.x, v.y*u.y, v.y*u.z, v.y*u.w, 
-                    v.z*u.x, v.z*u.y, v.z*u.z, v.z*u.w, 
-                    v.w*u.x, v.w*u.y, v.w*u.z, v.w*u.w);
-    m34 += mat4(v.x);
-    m34 += mat4(u, u.x, u, u.x, u, u.x, u.x);
-
-#endif
+    m34 += mat3x4(v.x);
+    m34 += mat3x4(u, u.x, u, u.x, u, u.x);
 
     if (m34 == un34)
         gl_FragColor += m34 * u;
diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h
index dd8f2d1a4..eee5008f1 100644
--- a/glslang/Include/revision.h
+++ b/glslang/Include/revision.h
@@ -2,5 +2,5 @@
 // For the version, it uses the latest git tag followed by the number of commits.
 // For the date, it uses the current date (when then script is run).
 
-#define GLSLANG_REVISION "SPIRV99.836"
-#define GLSLANG_DATE "09-Dec-2015"
+#define GLSLANG_REVISION "SPIRV99.839"
+#define GLSLANG_DATE "11-Dec-2015"
-- 
GitLab