summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/glslang/src/Test
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/glslang/src/Test')
-rw-r--r--chromium/third_party/glslang/src/Test/100.conf28
-rw-r--r--chromium/third_party/glslang/src/Test/100.frag221
-rw-r--r--chromium/third_party/glslang/src/Test/100Limits.vert76
-rw-r--r--chromium/third_party/glslang/src/Test/100scope.vert76
-rw-r--r--chromium/third_party/glslang/src/Test/110scope.vert74
-rw-r--r--chromium/third_party/glslang/src/Test/120.frag238
-rw-r--r--chromium/third_party/glslang/src/Test/120.vert201
-rw-r--r--chromium/third_party/glslang/src/Test/130.frag169
-rw-r--r--chromium/third_party/glslang/src/Test/130.vert78
-rw-r--r--chromium/third_party/glslang/src/Test/140.frag53
-rw-r--r--chromium/third_party/glslang/src/Test/140.vert59
-rw-r--r--chromium/third_party/glslang/src/Test/150.frag50
-rw-r--r--chromium/third_party/glslang/src/Test/150.geom139
-rw-r--r--chromium/third_party/glslang/src/Test/150.tesc34
-rw-r--r--chromium/third_party/glslang/src/Test/150.tese35
-rw-r--r--chromium/third_party/glslang/src/Test/150.vert25
-rw-r--r--chromium/third_party/glslang/src/Test/300.frag161
-rw-r--r--chromium/third_party/glslang/src/Test/300.vert187
-rw-r--r--chromium/third_party/glslang/src/Test/300BuiltIns.frag76
-rw-r--r--chromium/third_party/glslang/src/Test/300block.frag58
-rw-r--r--chromium/third_party/glslang/src/Test/300layout.frag19
-rw-r--r--chromium/third_party/glslang/src/Test/300layout.vert57
-rw-r--r--chromium/third_party/glslang/src/Test/300link.frag8
-rw-r--r--chromium/third_party/glslang/src/Test/300link2.frag11
-rw-r--r--chromium/third_party/glslang/src/Test/300link3.frag7
-rw-r--r--chromium/third_party/glslang/src/Test/300operations.frag135
-rw-r--r--chromium/third_party/glslang/src/Test/300scope.vert74
-rw-r--r--chromium/third_party/glslang/src/Test/310.comp240
-rw-r--r--chromium/third_party/glslang/src/Test/310.frag431
-rw-r--r--chromium/third_party/glslang/src/Test/310.geom152
-rw-r--r--chromium/third_party/glslang/src/Test/310.tesc169
-rw-r--r--chromium/third_party/glslang/src/Test/310.tese128
-rw-r--r--chromium/third_party/glslang/src/Test/310.vert403
-rw-r--r--chromium/third_party/glslang/src/Test/310AofA.vert115
-rw-r--r--chromium/third_party/glslang/src/Test/310implicitSizeArrayError.vert8
-rw-r--r--chromium/third_party/glslang/src/Test/330.frag152
-rw-r--r--chromium/third_party/glslang/src/Test/330comp.frag12
-rw-r--r--chromium/third_party/glslang/src/Test/400.frag197
-rw-r--r--chromium/third_party/glslang/src/Test/400.geom330
-rw-r--r--chromium/third_party/glslang/src/Test/400.tesc105
-rw-r--r--chromium/third_party/glslang/src/Test/400.tese105
-rw-r--r--chromium/third_party/glslang/src/Test/400.vert9
-rw-r--r--chromium/third_party/glslang/src/Test/410.geom39
-rw-r--r--chromium/third_party/glslang/src/Test/410.tesc11
-rw-r--r--chromium/third_party/glslang/src/Test/410.vert9
-rwxr-xr-xchromium/third_party/glslang/src/Test/420.comp30
-rw-r--r--chromium/third_party/glslang/src/Test/420.frag12
-rw-r--r--chromium/third_party/glslang/src/Test/420.geom55
-rw-r--r--chromium/third_party/glslang/src/Test/420.tesc43
-rw-r--r--chromium/third_party/glslang/src/Test/420.tese78
-rw-r--r--chromium/third_party/glslang/src/Test/420.vert159
-rw-r--r--chromium/third_party/glslang/src/Test/420_size_gl_in.geom21
-rw-r--r--chromium/third_party/glslang/src/Test/430.comp87
-rw-r--r--chromium/third_party/glslang/src/Test/430.vert223
-rw-r--r--chromium/third_party/glslang/src/Test/430AofA.frag108
-rw-r--r--chromium/third_party/glslang/src/Test/430scope.vert74
-rw-r--r--chromium/third_party/glslang/src/Test/440.frag153
-rw-r--r--chromium/third_party/glslang/src/Test/440.vert177
-rw-r--r--chromium/third_party/glslang/src/Test/450.comp1
-rw-r--r--chromium/third_party/glslang/src/Test/450.frag56
-rw-r--r--chromium/third_party/glslang/src/Test/450.geom14
-rw-r--r--chromium/third_party/glslang/src/Test/450.tesc14
-rw-r--r--chromium/third_party/glslang/src/Test/450.tese14
-rw-r--r--chromium/third_party/glslang/src/Test/450.vert23
-rw-r--r--chromium/third_party/glslang/src/Test/Operations.frag166
-rw-r--r--chromium/third_party/glslang/src/Test/aggOps.frag51
-rw-r--r--chromium/third_party/glslang/src/Test/always-discard.frag36
-rw-r--r--chromium/third_party/glslang/src/Test/always-discard2.frag19
-rw-r--r--chromium/third_party/glslang/src/Test/array.frag106
-rw-r--r--chromium/third_party/glslang/src/Test/array100.frag70
-rw-r--r--chromium/third_party/glslang/src/Test/atomic_uint.frag48
-rw-r--r--chromium/third_party/glslang/src/Test/badChars.frag6
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/100.frag.out734
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/100Limits.vert.out889
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/100LimitsConf.vert.out28
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/100scope.vert.out240
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/110scope.vert.out256
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/120.frag.out1193
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/120.vert.out783
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/130.frag.out782
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/130.vert.out303
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/140.frag.out223
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/140.vert.out270
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/150.frag.out244
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/150.geom.out317
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/150.tesc.out1659
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/150.vert.out95
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/300.frag.out756
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/300.vert.out612
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/300BuiltIns.frag.out418
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/300block.frag.out153
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/300layout.frag.out69
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/300layout.vert.out147
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/300link.frag.out22
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/300link2.frag.out25
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/300link3.frag.out19
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/300operations.frag.out420
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/300scope.vert.out239
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/310.comp.out934
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/310.frag.out1892
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/310.geom.out346
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/310.tesc.out709
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/310.tese.out315
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/310.vert.out1960
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/310AofA.vert.out647
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/310implicitSizeArrayError.vert.out50
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/330.frag.out217
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/330comp.frag.out48
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/400.frag.out998
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/400.geom.out2067
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/400.tesc.out414
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/400.tese.out281
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/400.vert.out34
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/410.geom.out112
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/410.tesc.out31
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/410.vert.out29
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/420.comp.out122
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/420.frag.out42
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/420.geom.out258
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/420.tesc.out230
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/420.tese.out313
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/420.vert.out556
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/420_size_gl_in.geom.out77
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/430.comp.out281
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/430.vert.out469
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/430AofA.frag.out803
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/430scope.vert.out243
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/440.frag.out194
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/440.vert.out241
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/450.comp.out18
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/450.frag.out327
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/450.geom.out72
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/450.tesc.out68
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/450.tese.out68
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/450.vert.out69
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/Operations.frag.out1151
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/aggOps.frag.out298
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/always-discard.frag.out239
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/always-discard2.frag.out121
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/array.frag.out530
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/array100.frag.out296
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/atomic_uint.frag.out145
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/badChars.frag.out26
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/comment.frag.out23
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/conditionalDiscard.frag.out63
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/constErrors.frag.out54
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/constFold.frag.out747
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/conversion.frag.out955
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/cppComplexExpr.vert.out200
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/cppIndent.vert.out84
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/cppNest.vert.out154
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/cppSimple.vert.out317
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/dataOut.frag.out35
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/dataOutIndirect.frag.out35
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/dce.frag.out276
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/decls.frag.out515
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/deepRvalue.frag.out285
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/depthOut.frag.out38
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/discard-dce.frag.out239
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/doWhileLoop.frag.out65
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/earlyReturnDiscard.frag.out257
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/empty.frag.out17
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/errors.frag.out32
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/es-link1.frag.out27
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/flowControl.frag.out81
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/forLoop.frag.out361
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/forwardRef.frag.out125
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/functionCall.frag.out183
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/functionSemantics.frag.out401
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/hlsl.assoc.frag.out113
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/hlsl.attribute.frag.out57
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/hlsl.cast.frag.out86
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/hlsl.doLoop.frag.out116
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/hlsl.float1.frag.out100
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/hlsl.float4.frag.out99
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/hlsl.forLoop.frag.out220
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/hlsl.frag.out160
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/hlsl.if.frag.out223
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/hlsl.intrinsics.frag.out3290
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/hlsl.intrinsics.negative.frag.out702
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/hlsl.intrinsics.negative.vert.out1055
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/hlsl.intrinsics.vert.out2868
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/hlsl.matType.frag.out101
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/hlsl.max.frag.out60
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/hlsl.precedence.frag.out80
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/hlsl.precedence2.frag.out103
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/hlsl.scope.frag.out150
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/hlsl.sin.frag.out53
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/hlsl.struct.frag.out107
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/hlsl.void.frag.out64
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/hlsl.whileLoop.frag.out145
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/length.frag.out61
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/lineContinuation.vert.out309
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/lineContinuation100.vert.out137
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/link1.frag.out162
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/localAggregates.frag.out414
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/loops.frag.out1935
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/loopsArtificial.frag.out433
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/mains1.frag.out72
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/matrix.frag.out507
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/matrix2.frag.out347
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/matrixError.vert.out71
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/max_vertices_0.geom.out35
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/negativeArraySize.comp.out24
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/newTexture.frag.out523
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/noMain.vert.out45
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/nonSquare.vert.out183
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/nonVulkan.frag.out30
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/numeral.frag.out829
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/pointCoord.frag.out69
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/precise.tesc.out768
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/precise_struct_block.vert.out1045
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/precision.frag.out245
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/precision.vert.out99
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/prepost.frag.out271
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/preprocessor.cpp_style___FILE__.vert.err0
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/preprocessor.cpp_style___FILE__.vert.out37
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/preprocessor.cpp_style_line_directive.vert.err15
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/preprocessor.cpp_style_line_directive.vert.out0
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/preprocessor.defined.vert.err4
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/preprocessor.defined.vert.out0
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/preprocessor.edge_cases.vert.err2
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/preprocessor.edge_cases.vert.out16
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/preprocessor.eof_missing.vert.err0
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/preprocessor.eof_missing.vert.out2
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/preprocessor.errors.vert.err8
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/preprocessor.errors.vert.out0
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/preprocessor.extensions.vert.err3
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/preprocessor.extensions.vert.out12
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/preprocessor.function_macro.vert.err2
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/preprocessor.function_macro.vert.out21
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/preprocessor.include.disabled.vert.err13
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/preprocessor.include.disabled.vert.out0
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/preprocessor.include.enabled.vert.err8
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/preprocessor.include.enabled.vert.out0
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/preprocessor.line.frag.err2
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/preprocessor.line.frag.out5
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/preprocessor.line.vert.err0
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/preprocessor.line.vert.out39
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/preprocessor.many.endif.vert.err12
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/preprocessor.many.endif.vert.out0
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/preprocessor.pragma.vert.err2
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/preprocessor.pragma.vert.out12
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/preprocessor.simple.vert.err2
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/preprocessor.simple.vert.out23
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/preprocessor.success_if_parse_would_fail.vert.err0
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/preprocessor.success_if_parse_would_fail.vert.out4
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/recurse1.vert.out397
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/reflection.vert.out104
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/sample.frag.out33
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/sample.vert.out43
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/simpleFunctionCall.frag.out43
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/specExamples.frag.out617
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/specExamples.vert.out602
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.100ops.frag.out104
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.130.frag.out313
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.140.frag.out181
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.150.geom.out149
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.150.vert.out107
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.300BuiltIns.vert.out79
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.300layout.frag.out79
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.300layout.vert.out254
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.300layoutp.vert.out206
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.310.comp.out127
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.330.geom.out71
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.400.frag.out1385
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.400.tesc.out179
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.400.tese.out189
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.420.geom.out132
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.430.vert.out143
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.AofA.frag.out156
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.Operations.frag.out674
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.accessChain.frag.out323
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.aggOps.frag.out310
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.always-discard.frag.out113
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.always-discard2.frag.out66
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.atomic.comp.out205
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.bitCast.frag.out240
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.bool.vert.out94
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.boolInBlock.frag.out169
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.branch-return.vert.out71
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.conditionalDiscard.frag.out63
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.conversion.frag.out577
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.dataOut.frag.out39
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.dataOutIndirect.frag.out51
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.dataOutIndirect.vert.out70
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.deepRvalue.frag.out209
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.depthOut.frag.out40
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.discard-dce.frag.out130
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.do-simple.vert.out46
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.do-while-continue-break.vert.out84
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.doWhileLoop.frag.out63
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.double.comp.out104
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.earlyReturnDiscard.frag.out173
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.flowControl.frag.out73
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.for-complex-condition.vert.out72
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.for-continue-break.vert.out87
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.for-nobody.vert.out54
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.for-notest.vert.out48
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.for-simple.vert.out52
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.forLoop.frag.out215
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.forwardFun.frag.out97
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.functionCall.frag.out127
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.functionSemantics.frag.out232
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.image.frag.out523
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.int64.frag.out626
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.intOps.vert.out361
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.interpOps.frag.out143
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.layoutNested.vert.out242
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.length.frag.out55
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.localAggregates.frag.out256
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.loops.frag.out1108
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.loopsArtificial.frag.out243
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.matFun.vert.out161
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.matrix.frag.out313
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.matrix2.frag.out273
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.memoryQualifier.frag.out181
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.merge-unreachable.frag.out47
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.newTexture.frag.out385
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.noDeadDecorations.vert.out64
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.nonSquare.vert.out116
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.precise.tesc.out122
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.precise.tese.out191
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.precision.frag.out234
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.prepost.frag.out147
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.pushConstant.vert.out67
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.qualifiers.vert.out54
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.queryL.frag.out331
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.separate.frag.out427
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.set.vert.out51
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.shaderBallot.comp.out314
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.shaderGroupVote.comp.out71
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.shiftOps.frag.out70
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.shortCircuit.frag.out241
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.simpleFunctionCall.frag.out39
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.simpleMat.vert.out64
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.sparseTexture.frag.out593
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.sparseTextureClamp.frag.out471
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.specConstant.comp.out55
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.specConstant.vert.out137
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.specConstantComposite.vert.out89
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.specConstantOperations.vert.out164
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.structAssignment.frag.out93
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.structDeref.frag.out191
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.structure.frag.out99
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.subpass.frag.out118
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.switch.frag.out532
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.swizzle.frag.out170
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.test.frag.out90
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.test.vert.out49
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.texture.frag.out385
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.texture.vert.out197
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.types.frag.out340
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.uint.frag.out438
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.uniformArray.frag.out80
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.variableArrayIndex.frag.out172
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.varyingArray.frag.out89
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.varyingArrayIndirect.frag.out102
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.voidFunction.frag.out77
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/spv.while-continue-break.vert.out79
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.while-simple.vert.out48
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/spv.whileLoop.frag.out65
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/structAssignment.frag.out103
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/structDeref.frag.out345
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/structure.frag.out165
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/switch.frag.out691
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/swizzle.frag.out423
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/syntaxError.frag.out24
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/test.conf92
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/test.frag.out115
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/texture.frag.out564
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/tokenLength.vert.out222
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/types.frag.out677
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/uint.frag.out607
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/uniformArray.frag.out97
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/variableArrayIndex.frag.out225
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/varyingArray.frag.out120
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/varyingArrayIndirect.frag.out126
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/versionsClean.frag.out44
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/versionsClean.vert.out49
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/versionsErrors.frag.out44
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/versionsErrors.vert.out58
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/voidFunction.frag.out91
-rwxr-xr-xchromium/third_party/glslang/src/Test/baseResults/vulkan.ast.vert.out324
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/vulkan.comp.out11
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/vulkan.frag.out44
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/vulkan.vert.out33
-rw-r--r--chromium/third_party/glslang/src/Test/baseResults/whileLoop.frag.out65
-rwxr-xr-xchromium/third_party/glslang/src/Test/bump2
-rw-r--r--chromium/third_party/glslang/src/Test/comment.frag19
-rw-r--r--chromium/third_party/glslang/src/Test/conditionalDiscard.frag14
-rw-r--r--chromium/third_party/glslang/src/Test/constErrors.frag35
-rw-r--r--chromium/third_party/glslang/src/Test/constFold.frag141
-rw-r--r--chromium/third_party/glslang/src/Test/conversion.frag112
-rw-r--r--chromium/third_party/glslang/src/Test/cppComplexExpr.vert183
-rw-r--r--chromium/third_party/glslang/src/Test/cppIndent.vert61
-rw-r--r--chromium/third_party/glslang/src/Test/cppNest.vert177
-rw-r--r--chromium/third_party/glslang/src/Test/cppSimple.vert343
-rw-r--r--chromium/third_party/glslang/src/Test/dataOut.frag8
-rw-r--r--chromium/third_party/glslang/src/Test/dataOutIndirect.frag10
-rw-r--r--chromium/third_party/glslang/src/Test/dce.frag56
-rw-r--r--chromium/third_party/glslang/src/Test/decls.frag49
-rw-r--r--chromium/third_party/glslang/src/Test/deepRvalue.frag36
-rw-r--r--chromium/third_party/glslang/src/Test/depthOut.frag10
-rw-r--r--chromium/third_party/glslang/src/Test/discard-dce.frag35
-rw-r--r--chromium/third_party/glslang/src/Test/doWhileLoop.frag16
-rw-r--r--chromium/third_party/glslang/src/Test/earlyReturnDiscard.frag102
-rw-r--r--chromium/third_party/glslang/src/Test/empty.frag0
-rw-r--r--chromium/third_party/glslang/src/Test/empty2.frag1
-rw-r--r--chromium/third_party/glslang/src/Test/empty3.frag1
-rw-r--r--chromium/third_party/glslang/src/Test/errors.frag4
-rw-r--r--chromium/third_party/glslang/src/Test/es-link1.frag8
-rw-r--r--chromium/third_party/glslang/src/Test/es-link2.frag8
-rw-r--r--chromium/third_party/glslang/src/Test/flowControl.frag23
-rw-r--r--chromium/third_party/glslang/src/Test/forLoop.frag41
-rw-r--r--chromium/third_party/glslang/src/Test/forwardRef.frag37
-rw-r--r--chromium/third_party/glslang/src/Test/functionCall.frag44
-rw-r--r--chromium/third_party/glslang/src/Test/functionSemantics.frag70
-rwxr-xr-xchromium/third_party/glslang/src/Test/glslangValidator2
-rw-r--r--chromium/third_party/glslang/src/Test/hlsl.assoc.frag11
-rw-r--r--chromium/third_party/glslang/src/Test/hlsl.attribute.frag13
-rw-r--r--chromium/third_party/glslang/src/Test/hlsl.cast.frag4
-rw-r--r--chromium/third_party/glslang/src/Test/hlsl.doLoop.frag6
-rw-r--r--chromium/third_party/glslang/src/Test/hlsl.float1.frag7
-rw-r--r--chromium/third_party/glslang/src/Test/hlsl.float4.frag11
-rw-r--r--chromium/third_party/glslang/src/Test/hlsl.forLoop.frag8
-rw-r--r--chromium/third_party/glslang/src/Test/hlsl.frag12
-rw-r--r--chromium/third_party/glslang/src/Test/hlsl.if.frag28
-rw-r--r--chromium/third_party/glslang/src/Test/hlsl.intrinsics.frag407
-rw-r--r--chromium/third_party/glslang/src/Test/hlsl.intrinsics.negative.frag137
-rw-r--r--chromium/third_party/glslang/src/Test/hlsl.intrinsics.negative.vert196
-rw-r--r--chromium/third_party/glslang/src/Test/hlsl.intrinsics.vert372
-rw-r--r--chromium/third_party/glslang/src/Test/hlsl.matType.frag10
-rw-r--r--chromium/third_party/glslang/src/Test/hlsl.max.frag4
-rw-r--r--chromium/third_party/glslang/src/Test/hlsl.precedence.frag9
-rw-r--r--chromium/third_party/glslang/src/Test/hlsl.precedence2.frag9
-rw-r--r--chromium/third_party/glslang/src/Test/hlsl.scope.frag30
-rw-r--r--chromium/third_party/glslang/src/Test/hlsl.sin.frag4
-rw-r--r--chromium/third_party/glslang/src/Test/hlsl.struct.frag39
-rw-r--r--chromium/third_party/glslang/src/Test/hlsl.void.frag8
-rw-r--r--chromium/third_party/glslang/src/Test/hlsl.whileLoop.frag7
-rw-r--r--chromium/third_party/glslang/src/Test/length.frag18
-rw-r--r--chromium/third_party/glslang/src/Test/lineContinuation.vert151
-rw-r--r--chromium/third_party/glslang/src/Test/lineContinuation100.vert56
-rw-r--r--chromium/third_party/glslang/src/Test/link1.frag38
-rw-r--r--chromium/third_party/glslang/src/Test/link2.frag36
-rw-r--r--chromium/third_party/glslang/src/Test/link3.frag9
-rw-r--r--chromium/third_party/glslang/src/Test/localAggregates.frag72
-rw-r--r--chromium/third_party/glslang/src/Test/loops.frag320
-rw-r--r--chromium/third_party/glslang/src/Test/loopsArtificial.frag96
-rw-r--r--chromium/third_party/glslang/src/Test/mains.frag9
-rw-r--r--chromium/third_party/glslang/src/Test/mains1.frag5
-rw-r--r--chromium/third_party/glslang/src/Test/mains2.frag5
-rw-r--r--chromium/third_party/glslang/src/Test/makeDoc3
-rw-r--r--chromium/third_party/glslang/src/Test/matrix.frag55
-rw-r--r--chromium/third_party/glslang/src/Test/matrix2.frag50
-rw-r--r--chromium/third_party/glslang/src/Test/matrixError.vert22
-rw-r--r--chromium/third_party/glslang/src/Test/max_vertices_0.geom12
-rw-r--r--chromium/third_party/glslang/src/Test/negativeArraySize.comp10
-rw-r--r--chromium/third_party/glslang/src/Test/newTexture.frag75
-rw-r--r--chromium/third_party/glslang/src/Test/noMain.vert5
-rw-r--r--chromium/third_party/glslang/src/Test/noMain1.geom7
-rw-r--r--chromium/third_party/glslang/src/Test/noMain2.geom7
-rw-r--r--chromium/third_party/glslang/src/Test/nonSquare.vert25
-rw-r--r--chromium/third_party/glslang/src/Test/nonVulkan.frag9
-rw-r--r--chromium/third_party/glslang/src/Test/numeral.frag103
-rw-r--r--chromium/third_party/glslang/src/Test/pointCoord.frag15
-rw-r--r--chromium/third_party/glslang/src/Test/precise.tesc109
-rw-r--r--chromium/third_party/glslang/src/Test/precise_struct_block.vert89
-rw-r--r--chromium/third_party/glslang/src/Test/precision.frag76
-rw-r--r--chromium/third_party/glslang/src/Test/precision.vert25
-rw-r--r--chromium/third_party/glslang/src/Test/prepost.frag38
-rw-r--r--chromium/third_party/glslang/src/Test/preprocessor.cpp_style___FILE__.vert36
-rw-r--r--chromium/third_party/glslang/src/Test/preprocessor.cpp_style_line_directive.vert36
-rw-r--r--chromium/third_party/glslang/src/Test/preprocessor.defined.vert2
-rw-r--r--chromium/third_party/glslang/src/Test/preprocessor.edge_cases.vert15
-rw-r--r--chromium/third_party/glslang/src/Test/preprocessor.eof_missing.vert1
-rw-r--r--chromium/third_party/glslang/src/Test/preprocessor.errors.vert20
-rw-r--r--chromium/third_party/glslang/src/Test/preprocessor.extensions.vert12
-rw-r--r--chromium/third_party/glslang/src/Test/preprocessor.function_macro.vert20
-rw-r--r--chromium/third_party/glslang/src/Test/preprocessor.include.disabled.vert7
-rw-r--r--chromium/third_party/glslang/src/Test/preprocessor.include.enabled.vert7
-rw-r--r--chromium/third_party/glslang/src/Test/preprocessor.line.frag4
-rw-r--r--chromium/third_party/glslang/src/Test/preprocessor.line.vert39
-rw-r--r--chromium/third_party/glslang/src/Test/preprocessor.many.endif.vert10
-rw-r--r--chromium/third_party/glslang/src/Test/preprocessor.pragma.vert11
-rw-r--r--chromium/third_party/glslang/src/Test/preprocessor.simple.vert22
-rw-r--r--chromium/third_party/glslang/src/Test/preprocessor.success_if_parse_would_fail.vert4
-rw-r--r--chromium/third_party/glslang/src/Test/recurse1.frag48
-rw-r--r--chromium/third_party/glslang/src/Test/recurse1.vert44
-rw-r--r--chromium/third_party/glslang/src/Test/recurse2.frag28
-rw-r--r--chromium/third_party/glslang/src/Test/reflection.vert182
-rwxr-xr-xchromium/third_party/glslang/src/Test/runtests130
-rw-r--r--chromium/third_party/glslang/src/Test/sample.frag41
-rw-r--r--chromium/third_party/glslang/src/Test/sample.frag.out15
-rw-r--r--chromium/third_party/glslang/src/Test/sample.vert43
-rw-r--r--chromium/third_party/glslang/src/Test/sample.vert.out20
-rw-r--r--chromium/third_party/glslang/src/Test/simpleFunctionCall.frag15
-rw-r--r--chromium/third_party/glslang/src/Test/specExamples.frag237
-rw-r--r--chromium/third_party/glslang/src/Test/specExamples.vert196
-rw-r--r--chromium/third_party/glslang/src/Test/spv.100ops.frag27
-rw-r--r--chromium/third_party/glslang/src/Test/spv.130.frag93
-rw-r--r--chromium/third_party/glslang/src/Test/spv.140.frag46
-rw-r--r--chromium/third_party/glslang/src/Test/spv.150.geom39
-rw-r--r--chromium/third_party/glslang/src/Test/spv.150.vert38
-rw-r--r--chromium/third_party/glslang/src/Test/spv.300BuiltIns.vert14
-rw-r--r--chromium/third_party/glslang/src/Test/spv.300layout.frag22
-rw-r--r--chromium/third_party/glslang/src/Test/spv.300layout.vert49
-rw-r--r--chromium/third_party/glslang/src/Test/spv.300layoutp.vert49
-rw-r--r--chromium/third_party/glslang/src/Test/spv.310.comp37
-rw-r--r--chromium/third_party/glslang/src/Test/spv.330.geom26
-rw-r--r--chromium/third_party/glslang/src/Test/spv.400.frag263
-rw-r--r--chromium/third_party/glslang/src/Test/spv.400.tesc43
-rw-r--r--chromium/third_party/glslang/src/Test/spv.400.tese52
-rw-r--r--chromium/third_party/glslang/src/Test/spv.420.geom43
-rw-r--r--chromium/third_party/glslang/src/Test/spv.430.vert37
-rw-r--r--chromium/third_party/glslang/src/Test/spv.AofA.frag43
-rw-r--r--chromium/third_party/glslang/src/Test/spv.Operations.frag138
-rw-r--r--chromium/third_party/glslang/src/Test/spv.accessChain.frag94
-rw-r--r--chromium/third_party/glslang/src/Test/spv.aggOps.frag51
-rw-r--r--chromium/third_party/glslang/src/Test/spv.always-discard.frag36
-rw-r--r--chromium/third_party/glslang/src/Test/spv.always-discard2.frag19
-rw-r--r--chromium/third_party/glslang/src/Test/spv.atomic.comp47
-rw-r--r--chromium/third_party/glslang/src/Test/spv.bitCast.frag45
-rw-r--r--chromium/third_party/glslang/src/Test/spv.bool.vert17
-rw-r--r--chromium/third_party/glslang/src/Test/spv.boolInBlock.frag31
-rw-r--r--chromium/third_party/glslang/src/Test/spv.branch-return.vert10
-rw-r--r--chromium/third_party/glslang/src/Test/spv.conditionalDiscard.frag14
-rw-r--r--chromium/third_party/glslang/src/Test/spv.conversion.frag112
-rw-r--r--chromium/third_party/glslang/src/Test/spv.dataOut.frag8
-rw-r--r--chromium/third_party/glslang/src/Test/spv.dataOutIndirect.frag12
-rw-r--r--chromium/third_party/glslang/src/Test/spv.dataOutIndirect.vert12
-rw-r--r--chromium/third_party/glslang/src/Test/spv.deepRvalue.frag36
-rw-r--r--chromium/third_party/glslang/src/Test/spv.depthOut.frag11
-rw-r--r--chromium/third_party/glslang/src/Test/spv.discard-dce.frag35
-rw-r--r--chromium/third_party/glslang/src/Test/spv.do-simple.vert7
-rw-r--r--chromium/third_party/glslang/src/Test/spv.do-while-continue-break.vert20
-rw-r--r--chromium/third_party/glslang/src/Test/spv.doWhileLoop.frag16
-rw-r--r--chromium/third_party/glslang/src/Test/spv.double.comp25
-rw-r--r--chromium/third_party/glslang/src/Test/spv.earlyReturnDiscard.frag102
-rw-r--r--chromium/third_party/glslang/src/Test/spv.flowControl.frag23
-rw-r--r--chromium/third_party/glslang/src/Test/spv.for-complex-condition.vert7
-rw-r--r--chromium/third_party/glslang/src/Test/spv.for-continue-break.vert20
-rw-r--r--chromium/third_party/glslang/src/Test/spv.for-nobody.vert7
-rw-r--r--chromium/third_party/glslang/src/Test/spv.for-notest.vert6
-rw-r--r--chromium/third_party/glslang/src/Test/spv.for-simple.vert8
-rw-r--r--chromium/third_party/glslang/src/Test/spv.forLoop.frag41
-rw-r--r--chromium/third_party/glslang/src/Test/spv.forwardFun.frag39
-rw-r--r--chromium/third_party/glslang/src/Test/spv.functionCall.frag44
-rw-r--r--chromium/third_party/glslang/src/Test/spv.functionSemantics.frag63
-rw-r--r--chromium/third_party/glslang/src/Test/spv.image.frag93
-rw-r--r--chromium/third_party/glslang/src/Test/spv.int64.frag228
-rw-r--r--chromium/third_party/glslang/src/Test/spv.intOps.vert72
-rw-r--r--chromium/third_party/glslang/src/Test/spv.interpOps.frag32
-rw-r--r--chromium/third_party/glslang/src/Test/spv.layoutNested.vert76
-rw-r--r--chromium/third_party/glslang/src/Test/spv.length.frag14
-rw-r--r--chromium/third_party/glslang/src/Test/spv.localAggregates.frag72
-rw-r--r--chromium/third_party/glslang/src/Test/spv.loops.frag302
-rw-r--r--chromium/third_party/glslang/src/Test/spv.loopsArtificial.frag67
-rw-r--r--chromium/third_party/glslang/src/Test/spv.matFun.vert28
-rw-r--r--chromium/third_party/glslang/src/Test/spv.matrix.frag46
-rw-r--r--chromium/third_party/glslang/src/Test/spv.matrix2.frag50
-rw-r--r--chromium/third_party/glslang/src/Test/spv.memoryQualifier.frag38
-rw-r--r--chromium/third_party/glslang/src/Test/spv.merge-unreachable.frag7
-rw-r--r--chromium/third_party/glslang/src/Test/spv.newTexture.frag72
-rw-r--r--chromium/third_party/glslang/src/Test/spv.noDeadDecorations.vert13
-rw-r--r--chromium/third_party/glslang/src/Test/spv.nonSquare.vert25
-rw-r--r--chromium/third_party/glslang/src/Test/spv.precise.tesc24
-rw-r--r--chromium/third_party/glslang/src/Test/spv.precise.tese36
-rw-r--r--chromium/third_party/glslang/src/Test/spv.precision.frag60
-rw-r--r--chromium/third_party/glslang/src/Test/spv.prepost.frag38
-rw-r--r--chromium/third_party/glslang/src/Test/spv.pushConstant.vert17
-rw-r--r--chromium/third_party/glslang/src/Test/spv.qualifiers.vert19
-rw-r--r--chromium/third_party/glslang/src/Test/spv.queryL.frag64
-rw-r--r--chromium/third_party/glslang/src/Test/spv.separate.frag95
-rw-r--r--chromium/third_party/glslang/src/Test/spv.set.vert14
-rw-r--r--chromium/third_party/glslang/src/Test/spv.shaderBallot.comp59
-rw-r--r--chromium/third_party/glslang/src/Test/spv.shaderGroupVote.comp21
-rw-r--r--chromium/third_party/glslang/src/Test/spv.shiftOps.frag18
-rwxr-xr-xchromium/third_party/glslang/src/Test/spv.shortCircuit.frag50
-rw-r--r--chromium/third_party/glslang/src/Test/spv.simpleFunctionCall.frag13
-rw-r--r--chromium/third_party/glslang/src/Test/spv.simpleMat.vert19
-rw-r--r--chromium/third_party/glslang/src/Test/spv.sparseTexture.frag91
-rw-r--r--chromium/third_party/glslang/src/Test/spv.sparseTextureClamp.frag70
-rw-r--r--chromium/third_party/glslang/src/Test/spv.specConstant.comp13
-rw-r--r--chromium/third_party/glslang/src/Test/spv.specConstant.vert51
-rw-r--r--chromium/third_party/glslang/src/Test/spv.specConstantComposite.vert98
-rw-r--r--chromium/third_party/glslang/src/Test/spv.specConstantOperations.vert110
-rw-r--r--chromium/third_party/glslang/src/Test/spv.structAssignment.frag39
-rw-r--r--chromium/third_party/glslang/src/Test/spv.structDeref.frag71
-rw-r--r--chromium/third_party/glslang/src/Test/spv.structure.frag31
-rw-r--r--chromium/third_party/glslang/src/Test/spv.subpass.frag29
-rw-r--r--chromium/third_party/glslang/src/Test/spv.switch.frag142
-rw-r--r--chromium/third_party/glslang/src/Test/spv.swizzle.frag52
-rw-r--r--chromium/third_party/glslang/src/Test/spv.test.frag22
-rw-r--r--chromium/third_party/glslang/src/Test/spv.test.vert14
-rw-r--r--chromium/third_party/glslang/src/Test/spv.texture.frag73
-rw-r--r--chromium/third_party/glslang/src/Test/spv.texture.vert39
-rw-r--r--chromium/third_party/glslang/src/Test/spv.types.frag78
-rw-r--r--chromium/third_party/glslang/src/Test/spv.uint.frag99
-rw-r--r--chromium/third_party/glslang/src/Test/spv.uniformArray.frag17
-rw-r--r--chromium/third_party/glslang/src/Test/spv.variableArrayIndex.frag49
-rw-r--r--chromium/third_party/glslang/src/Test/spv.varyingArray.frag19
-rw-r--r--chromium/third_party/glslang/src/Test/spv.varyingArrayIndirect.frag21
-rw-r--r--chromium/third_party/glslang/src/Test/spv.voidFunction.frag34
-rw-r--r--chromium/third_party/glslang/src/Test/spv.while-continue-break.vert20
-rw-r--r--chromium/third_party/glslang/src/Test/spv.while-simple.vert7
-rw-r--r--chromium/third_party/glslang/src/Test/spv.whileLoop.frag16
-rw-r--r--chromium/third_party/glslang/src/Test/structAssignment.frag39
-rw-r--r--chromium/third_party/glslang/src/Test/structDeref.frag71
-rw-r--r--chromium/third_party/glslang/src/Test/structure.frag31
-rw-r--r--chromium/third_party/glslang/src/Test/switch.frag158
-rw-r--r--chromium/third_party/glslang/src/Test/swizzle.frag52
-rw-r--r--chromium/third_party/glslang/src/Test/syntaxError.frag16
-rw-r--r--chromium/third_party/glslang/src/Test/test-hlsl-spirv-list4
-rw-r--r--chromium/third_party/glslang/src/Test/test-preprocessor-list16
-rw-r--r--chromium/third_party/glslang/src/Test/test-spirv-list115
-rw-r--r--chromium/third_party/glslang/src/Test/test.frag22
-rw-r--r--chromium/third_party/glslang/src/Test/testlist134
-rw-r--r--chromium/third_party/glslang/src/Test/texture.frag73
-rw-r--r--chromium/third_party/glslang/src/Test/tokenLength.vert72
-rw-r--r--chromium/third_party/glslang/src/Test/types.frag81
-rw-r--r--chromium/third_party/glslang/src/Test/uint.frag105
-rw-r--r--chromium/third_party/glslang/src/Test/uniformArray.frag16
-rw-r--r--chromium/third_party/glslang/src/Test/variableArrayIndex.frag48
-rw-r--r--chromium/third_party/glslang/src/Test/varyingArray.frag19
-rw-r--r--chromium/third_party/glslang/src/Test/varyingArrayIndirect.frag21
-rw-r--r--chromium/third_party/glslang/src/Test/versionsClean.frag45
-rw-r--r--chromium/third_party/glslang/src/Test/versionsClean.vert43
-rw-r--r--chromium/third_party/glslang/src/Test/versionsErrors.frag46
-rw-r--r--chromium/third_party/glslang/src/Test/versionsErrors.vert46
-rw-r--r--chromium/third_party/glslang/src/Test/voidFunction.frag34
-rw-r--r--chromium/third_party/glslang/src/Test/vulkan.ast.vert42
-rw-r--r--chromium/third_party/glslang/src/Test/vulkan.comp12
-rw-r--r--chromium/third_party/glslang/src/Test/vulkan.frag75
-rw-r--r--chromium/third_party/glslang/src/Test/vulkan.vert47
-rw-r--r--chromium/third_party/glslang/src/Test/whileLoop.frag16
637 files changed, 101328 insertions, 0 deletions
diff --git a/chromium/third_party/glslang/src/Test/100.conf b/chromium/third_party/glslang/src/Test/100.conf
new file mode 100644
index 00000000000..3899d34366f
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/100.conf
@@ -0,0 +1,28 @@
+MaxLights 32
+MaxClipPlanes 6
+MaxTextureUnits 32
+MaxTextureCoords 32
+MaxVertexAttribs 8
+MaxVertexUniformComponents 4096
+MaxVaryingFloats 64
+MaxVertexTextureImageUnits 0
+MaxCombinedTextureImageUnits 8
+MaxTextureImageUnits 8
+MaxFragmentUniformComponents 4096
+MaxDrawBuffers 1
+MaxVertexUniformVectors 16
+MaxVaryingVectors 8
+MaxFragmentUniformVectors 16
+MaxVertexOutputVectors 16
+MaxFragmentInputVectors 15
+MinProgramTexelOffset -8
+MaxProgramTexelOffset 7
+nonInductiveForLoops 0
+whileLoops 0
+doWhileLoops 0
+generalUniformIndexing 0
+generalAttributeMatrixVectorIndexing 0
+generalVaryingIndexing 0
+generalSamplerIndexing 0
+generalVariableIndexing 0
+generalConstantMatrixVectorIndexing 0
diff --git a/chromium/third_party/glslang/src/Test/100.frag b/chromium/third_party/glslang/src/Test/100.frag
new file mode 100644
index 00000000000..d536343560b
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/100.frag
@@ -0,0 +1,221 @@
+// okay
+#version 100
+int a[3] = { 2, 3, 4, }; // ERROR (lots)
+#version 100
+int uint;
+
+attribute vec4 v[3]; // ERROR
+
+float f = 2; // ERROR
+
+uniform block { // ERROR
+ int x;
+};
+
+void foo(float);
+
+void main()
+{
+ foo(3); // ERROR
+ int s = 1 << 4; // ERROR
+ s = 16 >> 2; // ERROR
+ if (a == a); // ERROR
+ int b, c;
+ b = c & 4; // ERROR
+ b = c % 4; // ERROR
+ b = c | 4; // ERROR
+ b >>= 2; // ERROR
+ b <<= 2; // ERROR
+ b %= 3; // ERROR
+
+ struct S {
+ float f;
+ float a[10];
+ } s1, s2;
+
+ s1 = s2; // ERROR
+ if (s1 == s2); // ERROR
+ if (s1 != s2); // ERROR
+
+ switch(b) { // ERROR
+ }
+}
+
+invariant gl_FragColor;
+float fa[]; // ERROR
+float f13;
+invariant f13; // ERROR
+struct S { int a; };
+invariant S; // ERROR, not an input or output
+invariant float fi; // ERROR
+varying vec4 av;
+invariant av; // okay in v100
+
+void foo10()
+{
+ invariant f; // ERROR
+ invariant float f2; // ERROR
+ float f3;
+ invariant f3; // ERROR
+}
+
+uniform vec2 uv2;
+invariant uv2; // ERROR
+invariant uniform vec3 uv3; // ERROR
+
+sampler2D glob2D; // ERROR
+void f11(sampler2D p2d)
+{
+ sampler2D v2D; // ERROR
+}
+varying sampler2D vary2D; // ERROR
+
+struct sp {
+ highp float f;
+ in float g; // ERROR
+ uniform float h; // ERROR
+ invariant float i; // ERROR
+};
+
+uniform sampler3D s3D; // ERROR
+
+#extension GL_OES_texture_3D : enable
+
+precision highp sampler3D;
+uniform sampler3D s3D2;
+
+void foo234()
+{
+ texture3D(s3D2, vec3(0.2), 0.2);
+ texture3DProj(s3D2, v[1], 0.4);
+ dFdx(v[0]); // ERROR
+ dFdy(3.2); // ERROR
+ fwidth(f13); // ERROR
+}
+
+#extension GL_OES_standard_derivatives : enable
+
+void foo236()
+{
+ dFdx(v[0]);
+ dFdy(3.2);
+ fwidth(f13);
+ gl_FragDepth = f13; // ERROR
+ gl_FragDepthEXT = f13; // ERROR
+}
+
+#extension GL_EXT_frag_depth : enable
+
+void foo239()
+{
+ gl_FragDepth = f13; // ERROR
+ gl_FragDepthEXT = f13;
+}
+
+#extension GL_OES_EGL_image_external : enable
+
+uniform samplerExternalOES sExt;
+
+void foo245()
+{
+ texture2D(sExt, vec2(0.2));
+ texture2DProj(sExt, vec3(f13));
+ texture2DProj(sExt, v[2]);
+}
+
+precision mediump samplerExternalOES;
+uniform samplerExternalOES mediumExt;
+uniform highp samplerExternalOES highExt;
+
+void foo246()
+{
+ texture2D(mediumExt, vec2(0.2));
+ texture2DProj(highExt, v[2]);
+ texture3D(sExt, vec3(f13)); // ERROR
+ texture2DProjLod(sExt, vec3(f13), f13); // ERROR
+ int a;
+ ~a; // ERROR
+ a | a; // ERROR
+ a & a; // ERROR
+}
+
+#extension GL_OES_EGL_image_external : disable
+uniform sampler2D s2Dg;
+
+int foo203940(int a, float b, float a) // ERROR, a redefined
+{
+ texture2DProjGradEXT(s2Dg, vec3(f13), uv2, uv2); // ERROR, extension not enabled
+ return a;
+}
+
+float f123 = 4.0f; // ERROR
+float f124 = 5e10F; // ERROR
+
+#extension GL_EXT_shader_texture_lod : enable
+
+uniform samplerCube sCube;
+
+void foo323433()
+{
+ texture2DLodEXT(s2Dg, uv2, f13);
+ texture2DProjGradEXT(s2Dg, vec3(f13), uv2, uv2);
+ texture2DGradEXT(s2Dg, uv2, uv2, uv2);
+ textureCubeGradEXT(sCube, vec3(f13), vec3(f13), vec3(f13));
+}
+
+int fgfg(float f, mediump int i);
+int fgfg(float f, highp int i) { return 2; } // ERROR, precision qualifier difference
+
+int fffg(float f);
+int fffg(float f); // ERROR, can't have multiple prototypes
+
+int gggf(float f);
+int gggf(float f) { return 2; }
+
+int agggf(float f) { return 2; }
+int agggf(float f);
+int agggf(float f); // ERROR, second prototype
+
+varying struct SSS { float f; } s; // ERROR
+
+int vf(void);
+int vf2();
+int vf3(void v); // ERROR
+int vf4(int, void); // ERROR
+int vf5(int, void v); // ERROR
+
+void badswizzle()
+{
+ vec3 a[5];
+ a.y; // ERROR, no array swizzle
+ a.zy; // ERROR, no array swizzle
+ a.nothing; // ERROR
+ a.length(); // ERROR, not this version
+ a.method(); // ERROR
+}
+
+float fooinit();
+
+float fooinittest()
+{
+ return fooinit();
+}
+
+// Test extra-function initializers
+const float fi1 = 3.0;
+const float fi2 = 4.0;
+const float fi3 = 5.0;
+
+float fooinit()
+{
+ return fi1 + fi2 + fi3; // should make a constant of 12.0
+}
+
+int init1 = gl_FrontFacing ? 1 : 2; // ERROR, non-const initializer
+
+#pragma STDGL invariant(all)
+
+#line 3000
+#error line of this error should be 3000
+
+uniform samplerExternalOES badExt; // syntax ERROR
diff --git a/chromium/third_party/glslang/src/Test/100Limits.vert b/chromium/third_party/glslang/src/Test/100Limits.vert
new file mode 100644
index 00000000000..e42f7684507
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/100Limits.vert
@@ -0,0 +1,76 @@
+#version 100
+
+int ga, gb;
+float f;
+
+uniform sampler2D fsa[3];
+uniform float fua[10];
+attribute mat3 am3;
+attribute vec2 av2;
+varying vec4 va[4];
+
+const mat2 m2 = mat2(1.0);
+const vec3 v3 = vec3(2.0);
+
+void foo(inout float a) {}
+
+int bar()
+{
+ return 1;
+}
+
+void main()
+{
+ while (ga < gb) { }
+
+ do { } while (false);
+
+ for ( ; ; ); // ERROR
+ for ( ; ga==gb; ); // ERROR
+ for ( ; ; f++); // ERROR
+ for ( ga = 0; ; ); // ERROR
+ for ( bool a = false; ; ); // ERROR
+ for (float a = 0.0; a == sin(f); ); // ERROR
+ for ( int a = 0; a < 10; a *= 2); // ERROR
+ for ( int a = 0; a <= 20; a++) --a; // ERROR
+ for ( int a = 0; a <= 20; a++) { if (ga==0) a = 4; } // ERROR
+ for (float a = 0.0; a <= 20.0; a += 2.0);
+ for (float a = 0.0; a != 20.0; a -= 2.0) { if (ga==0) ga = 4; }
+ for (float a = 0.0; a == 20.0; a--) for (float a = 0.0; a == 20.0; a--); // two different 'a's, everything okay
+ for (float a = 0.0; a <= 20.0; a += 2.0);
+ for (float a = 0.0; a <= 20.0; a += 2.0);
+ for (float a = 0.0; a > 2.0 * 20.0; a += v3.y);
+ for (float a = 0.0; a >= 20.0; a += 2.0) foo(a); // ERROR
+
+ int ia[9];
+
+ fsa[ga]; // ERROR
+ fua[ga];
+ am3[ga]; // ERROR
+ av2[ga]; // ERROR
+ va[2+ga]; // ERROR
+ m2[ga]; // ERROR
+ v3[ga/2]; // ERROR
+ ia[ga]; // ERROR
+
+ for (int a = 3; a >= 0; a--) {
+ fsa[a];
+ fua[a+2];
+ am3[3*a];
+ av2[3*a];
+ va[a-1];
+ m2[a/2];
+ v3[a];
+ ia[a];
+ ia[bar()]; // ERROR
+ }
+
+ fsa[2];
+ fua[3];
+ am3[2];
+ av2[1];
+ va[1];
+ m2[1];
+ v3[1];
+ ia[3];
+}
diff --git a/chromium/third_party/glslang/src/Test/100scope.vert b/chromium/third_party/glslang/src/Test/100scope.vert
new file mode 100644
index 00000000000..7ffa7be9d78
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/100scope.vert
@@ -0,0 +1,76 @@
+#version 100
+
+int f(int a, int b, int c)
+{
+ int a = b; // ERROR, redefinition
+
+ {
+ float a = float(a) + 1.0;
+ }
+
+ return a;
+}
+
+int f(int a, int b, int c); // okay to redeclare
+
+bool b;
+float b(int a); // ERROR: redefinition
+
+float c(int a);
+bool c; // ERROR: redefinition
+
+float f; // ERROR: redefinition
+float tan; // okay, built-in is in an outer scope
+float sin(float x); // ERROR: can't redefine built-in functions
+float cos(float x) // ERROR: can't redefine built-in functions
+{
+ return 1.0;
+}
+bool radians(bool x) // okay, can overload built-in functions
+{
+ return true;
+}
+
+invariant gl_Position;
+
+void main()
+{
+ int g(); // ERROR: no local function declarations
+ g();
+
+ float sin; // okay
+ sin;
+ sin(0.7); // ERROR, use of hidden function
+ f(1,2,3);
+
+ float f; // hides f()
+ f = 3.0;
+
+ gl_Position = vec4(f);
+
+ for (int f = 0; f < 10; ++f)
+ ++f;
+
+ int x = 1;
+ {
+ float x = 2.0, /* 2nd x visible here */ y = x; // y is initialized to 2
+ int z = z; // ERROR: z not previously defined.
+ }
+ {
+ int x = x; // x is initialized to '1'
+ }
+
+ struct S
+ {
+ int x;
+ };
+ {
+ S S = S(0); // 'S' is only visible as a struct and constructor
+ S.x; // 'S' is now visible as a variable
+ }
+
+ int degrees;
+ degrees(3.2); // ERROR, use of hidden built-in function
+}
+
+varying struct SSS { float f; } s; // ERROR
diff --git a/chromium/third_party/glslang/src/Test/110scope.vert b/chromium/third_party/glslang/src/Test/110scope.vert
new file mode 100644
index 00000000000..76133efe752
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/110scope.vert
@@ -0,0 +1,74 @@
+#version 110
+
+int f(int a, int b, int c)
+{
+ int a = b; // ERROR, redefinition
+
+ {
+ float a = float(a) + 1.0; // okay
+ }
+
+ return a;
+}
+
+int f(int a, int b, int c); // okay to redeclare
+
+bool b;
+float b(int a); // okay, b and b() are different
+
+float c(int a);
+bool c; // okay, and c() are different
+
+float f; // okay f and f() are different
+float tan; // okay, hides built-in function
+float sin(float x); // okay, can redefine built-in functions
+float cos(float x) // okay, can redefine built-in functions
+{
+ return 1.0;
+}
+bool radians(bool x) // okay, can overload built-in functions
+{
+ return true;
+}
+
+int gi = f(1,2,3); // ERROR, can't call user-defined function from global scope
+
+void main()
+{
+ int g(); // okay
+ g();
+
+ float sin; // okay
+ sin;
+ sin(0.7); // okay
+ f(1,2,3);
+
+ float f;
+ f = 3.0;
+
+ gl_Position = vec4(f);
+
+ for (int f = 0; f < 10; ++f)
+ ++f;
+
+ int x = 1;
+ {
+ float x = 2.0, /* 2nd x visible here */ y = x; // y is initialized to 2
+ int z = z; // ERROR: z not previously defined.
+ }
+ {
+ int x = x; // x is initialized to '1'
+ }
+
+ struct S
+ {
+ int x;
+ };
+ {
+ S S = S(0); // 'S' is only visible as a struct and constructor
+ S.x; // 'S' is now visible as a variable
+ }
+
+ int degrees;
+ degrees(3.2);
+}
diff --git a/chromium/third_party/glslang/src/Test/120.frag b/chromium/third_party/glslang/src/Test/120.frag
new file mode 100644
index 00000000000..9035aed7b41
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/120.frag
@@ -0,0 +1,238 @@
+#version 120
+
+float lowp;
+float mediump;
+float highp;
+
+float precision;
+
+in vec4 i;
+out vec4 o;
+
+uniform sampler2D s2D;
+centroid varying vec2 centTexCoord;
+
+uniform mat4x2 m;
+
+struct s {
+ float f;
+};
+
+void main()
+{
+ mat2x3 m23 = mat2x3(m);
+
+ int a;
+ bool b;
+ s sv = s(a);
+ float[2] ia = float[2](3, i.y);
+ float f1 = 1;
+ float f = a;
+ f = a;
+ ivec3 iv3;
+ vec3 v3 = iv3;
+ f = f + a;
+ f = a - f;
+ f += a;
+ f = a - f;
+ v3 *= iv3;
+ v3 = iv3 / 2.0f;
+ v3 = 3.0 * iv3;
+ v3 = 2 * v3;
+ v3 = v3 - 2;
+ if (f < a ||
+ a <= f ||
+ f > a ||
+ f >= a ||
+ a == f ||
+ f != a);
+ f = b ? a : f;
+ f = b ? f : a;
+ f = b ? a : a;
+ s news = sv;
+
+ i.xy + i.xyz; // ERROR
+ m * i.xyz; // ERROR
+ m + i; // ERROR
+ int aoeu = 1.0; // ERROR
+ f = b; // ERROR
+ f = a + b; // ERROR
+ f = b * a; // ERROR
+ b = a; // ERROR
+ b = b + f; // ERROR
+ f |= b; // ERROR
+
+ gl_FragColor = texture2D(s2D, centTexCoord);
+
+ float flat;
+ float smooth;
+ float noperspective;
+ float uvec2;
+ float uvec3;
+ float uvec4;
+ //packed; // ERROR, reserved word
+
+ {
+ mat4 m;
+ vec4 v;
+ bool b;
+ gl_FragColor += b ? v : m; // ERROR, types don't match around ":"
+ }
+
+ gl_FragColor.xr; // ERROR, swizzlers not from same field space
+ gl_FragColor.xyxyx.xy; // ERROR, cannot make a vec5, even temporarily
+ centTexCoord.z; // ERROR, swizzler out of range
+ (a,b) = true; // ERROR, not an l-value
+}
+
+float imageBuffer;
+float uimage2DRect;
+
+int main() {} // ERROR
+void main(int a) {} // ERROR
+
+const int a; // ERROR
+
+int foo(in float a);
+int foo(out float a) // ERROR
+{
+ return 3.2; // ERROR
+ foo(a); // ERROR
+}
+
+bool gen(vec3 v)
+{
+ if (abs(v[0]) < 1e-4F && abs(v[1]) < 1e-4)
+ return true;
+}
+
+void v1()
+{
+}
+
+void v2()
+{
+ return v1(); // ERROR, no expression allowed, even though void
+}
+
+void atest()
+{
+ vec4 v = gl_TexCoord[1];
+ v += gl_TexCoord[3];
+}
+
+varying vec4 gl_TexCoord[6]; // okay, assigning a size
+varying vec4 gl_TexCoord[5]; // ERROR, changing size
+
+mat2x2 m22;
+mat2x3 m23;
+mat2x4 m24;
+
+mat3x2 m32;
+mat3x3 m33;
+mat3x4 m34;
+
+mat4x2 m42;
+mat4x3 m43;
+mat4x4 m44;
+
+void foo123()
+{
+ mat2 r2 = matrixCompMult(m22, m22);
+ mat3 r3 = matrixCompMult(m33, m33);
+ mat4 r4 = matrixCompMult(m44, m44);
+
+ mat2x3 r23 = matrixCompMult(m23, m23);
+ mat2x4 r24 = matrixCompMult(m24, m24);
+ mat3x2 r32 = matrixCompMult(m32, m32);
+ mat3x4 r34 = matrixCompMult(m34, m34);
+ mat4x2 r42 = matrixCompMult(m42, m42);
+ mat4x3 r43 = matrixCompMult(m43, m43);
+
+ mat3x2 rfoo1 = matrixCompMult(m23, m32); // ERROR
+ mat3x4 rfoo2 = matrixCompMult(m34, m44); // ERROR
+}
+
+void matConst()
+{
+ vec2 v2;
+ vec3 v3;
+ mat4 m4b1 = mat4(v2, v3); // ERROR, not enough
+ mat4 m4b2 = mat4(v2, v3, v3, v3, v3, v2, v2); // ERROR, too much
+ mat4 m4g = mat4(v2, v3, v3, v3, v3, v3);
+ mat4 m4 = mat4(v2, v3, v3, v3, v3, v2);
+ mat3 m3 = mat3(m4);
+ mat3 m3b1 = mat3(m4, v2); // ERROR, extra arg
+ mat3 m3b2 = mat3(m4, m4); // ERROR, extra arg
+ mat3x2 m32 = mat3x2(m4);
+ mat4 m4c = mat4(m32);
+ mat3 m3s = mat3(v2.x);
+
+ mat3 m3a1[2] = mat3[2](m3s, m3s);
+ mat3 m3a2[2] = mat3[2](m3s, m3s, m3s); // ERROR, too many args
+}
+
+uniform sampler3D s3D;
+uniform sampler1D s1D;
+uniform sampler2DShadow s2DS;
+
+void foo2323()
+{
+ vec4 v;
+ vec2 v2;
+ float f;
+ v = texture2DLod(s2D, v2, f); // ERROR
+ v = texture3DProjLod(s3D, v, f); // ERROR
+ v = texture1DProjLod(s1D, v, f); // ERROR
+ v = shadow2DProjLod(s2DS, v, f); // ERROR
+
+ v = texture1DGradARB(s1D, f, f, f); // ERROR
+ v = texture2DProjGradARB(s2D, v, v2, v2); // ERROR
+ v = shadow2DProjGradARB(s2DS, v, v2, v2); // ERROR
+}
+
+#extension GL_ARB_shader_texture_lod : require
+
+void foo2324()
+{
+ vec4 v;
+ vec2 v2;
+ float f;
+ v = texture2DLod(s2D, v2, f);
+ v = texture3DProjLod(s3D, v, f);
+ v = texture1DProjLod(s1D, v, f);
+ v = shadow2DProjLod(s2DS, v, f);
+
+ v = texture1DGradARB(s1D, f, f, f);
+ v = texture2DProjGradARB(s2D, v, v2, v2);
+ v = shadow2DProjGradARB(s2DS, v, v2, v2);
+ v = shadow2DRectProjGradARB(s2DS, v, v2, v2); // ERROR
+}
+
+uniform sampler2DRect s2DRbad; // ERROR
+
+void foo121111()
+{
+ vec2 v2;
+ vec4 v = texture2DRect(s2DRbad, v2);
+}
+
+#extension GL_ARB_texture_rectangle : enable
+
+uniform sampler2DRect s2DR;
+uniform sampler2DRectShadow s2DRS;
+
+void foo12111()
+{
+ vec2 v2;
+ vec3 v3;
+ vec4 v4;
+ vec4 v;
+ v = texture2DRect(s2DR, v2);
+ v = texture2DRectProj(s2DR, v3);
+ v = texture2DRectProj(s2DR, v4);
+ v = shadow2DRect(s2DRS, v3);
+ v = shadow2DRectProj(s2DRS, v4);
+
+ v = shadow2DRectProjGradARB(s2DRS, v, v2, v2);
+}
diff --git a/chromium/third_party/glslang/src/Test/120.vert b/chromium/third_party/glslang/src/Test/120.vert
new file mode 100644
index 00000000000..436a8f632ee
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/120.vert
@@ -0,0 +1,201 @@
+#version 120
+
+in vec4 i; // ERROR
+out vec4 o; // ERROR
+
+attribute vec2 attv2;
+attribute vec4 attv4;
+uniform sampler2D s2D;
+invariant varying vec2 centTexCoord;
+invariant gl_Position;
+centroid gl_Position; // ERROR
+centroid centroid foo; // ERROR
+invariant gl_Position, gl_PointSize;
+
+void main()
+{
+ centTexCoord = attv2;
+ gl_Position = attv4;
+
+ gl_ClipVertex = attv4;
+ gl_ClipDistance[1] = 0.2; // ERROR
+
+ vec3[12] a;
+ vec4[a.length()] b;
+ gl_Position = b[b.length()-1];
+
+ float f[];
+ int a1 = f.length(); // ERROR
+ float f[7];
+ int aa = f.length();
+ int a2 = f.length; // ERROR
+ int a3 = f.length(a); // ERROR
+ int a4 = f.flizbit; // ERROR
+ int a4 = f.flizbit(); // ERROR
+ float md[2][4]; // ERROR
+ float[2] md2[4]; // ERROR
+ float[2][4] md3; // ERROR
+ float md5, md6[2][3]; // ERROR
+ float[2] md4, md7[4]; // ERROR
+ float md9[2][3] = float[2][3](1, 2, 3, 4, 5, 6); // ERROR
+ float md10, md11[2][3] = float[2][3](1, 2, 3, 4, 5, 6); // ERROR
+
+ gl_PointSize = 3.8;
+}
+
+uniform float initted = 3.4; // okay
+
+const float concall = sin(0.3);
+
+int[2][3] foo( // ERROR
+ float[2][3] a, // ERROR
+ float[2] b[3], // ERROR
+ float c[2][3]); // ERROR
+
+int overloadA(in float f);
+int overloadA(out float f); // ERROR, different qualifiers
+float overloadA(float); // ERROR, different return value for same signature
+float overloadA(out float f, int);
+float overloadA(int i);
+
+void overloadB(float, const in float) { }
+
+vec2 overloadC(int, int);
+vec2 overloadC(const in int, float);
+vec2 overloadC(float, int);
+vec2 overloadC(vec2, vec2);
+
+vec3 overloadD(int, float);
+vec3 overloadD(float, in int);
+
+vec3 overloadE(float[2]);
+vec3 overloadE(mat2 m);
+vec3 overloadE(vec2 v);
+
+vec3 overloadF(int);
+vec3 overloadF(float);
+
+void foo()
+{
+ float f;
+ int i;
+
+ overloadB(f, f);
+ overloadB(f, 2);
+ overloadB(1, i);
+
+ overloadC(1); // ERROR
+ overloadC(1, i);
+ overloadC(vec2(1), vec2(2));
+ overloadC(f, 3.0); // ERROR, no way
+ overloadC(ivec2(1), vec2(2));
+
+ overloadD(i, f);
+ overloadD(f, i);
+ overloadD(i, i); // ERROR, ambiguous
+
+ int overloadB; // hiding
+ overloadB(1, i); // ERROR
+
+ sin(1);
+ texture2D(s2D, ivec2(0));
+ clamp(attv4, 0, 1);
+ clamp(ivec4(attv4), 0, 1);
+
+ int a[2];
+ overloadC(a, 3); // ERROR
+ overloadE(a); // ERROR
+ overloadE(3.3); // ERROR
+ overloadE(vec2(3.3));
+ overloadE(mat2(0.5));
+ overloadE(ivec4(1)); // ERROR
+ overloadE(ivec2(1));
+
+ float b[2];
+ overloadE(b);
+
+ overloadF(1, 1); // ERROR
+ overloadF(1);
+}
+
+varying vec4 gl_TexCoord[35]; // ERROR, size too big
+
+// tests for output conversions
+void outFun(in float, out ivec2, in int, out float);
+int outFunRet(in float, out int, const in int, out ivec4);
+ivec2 outFunRet(in float, out ivec4, in int, out ivec4);
+
+void foo2()
+{
+ vec2 v2;
+ vec4 v4;
+ float f;
+ int i;
+
+ outFun(i, v2, i, f);
+ outFunRet(i, f, i, v4);
+ float ret = outFunRet(i, f, i, v4);
+ vec2 ret2 = outFunRet(i, v4, i, v4);
+ bool b = any(lessThan(v4, attv4)); // tests aggregate arg to unary built-in
+}
+
+void noise()
+{
+ float f1 = noise1(1.0);
+ vec2 f2 = noise2(vec2(1.0));
+ vec3 f3 = noise3(vec3(1.0));
+ vec4 f4 = noise4(vec4(1.0));
+}
+
+// version 130 features
+
+uniform int c;
+
+attribute ivec2 x;
+attribute vec2 v2a;
+attribute float c1D;
+attribute vec2 c2D;
+attribute vec3 c3D;
+
+uniform vec4 v4;
+
+void foo213()
+{
+ float f = 3;
+ switch (c) { // ERRORs...
+ case 1:
+ f = sin(f);
+ break;
+ case 2:
+ f = f * f;
+ default:
+ f = 3.0;
+ }
+
+ int i;
+ i << 3 | 0x8A >> 1 & 0xFF; // ERRORs...
+
+ vec3 modfOut, modfIn;
+ vec3 v11 = modf(modfIn, modfOut); // ERRORS...
+ float t = trunc(f);
+ vec2 v12 = round(v2a);
+ vec2 v13 = roundEven(v2a);
+ bvec2 b10 = isnan(v2a);
+ bvec4 b11 = isinf(v4);
+
+ sinh(c1D) + // ERRORS...
+ cosh(c1D) * tanh(c2D);
+ asinh(c4D) + acosh(c4D);
+ atanh(c3D);
+
+ int id = gl_VertexID; // ERROR
+ gl_ClipDistance[1] = 0.3; // ERROR
+}
+
+// token pasting (ERRORS...)
+
+#define mac abc##def
+int mac;
+
+#define macr(A,B) A ## B
+int macr(qrs,tuv);
diff --git a/chromium/third_party/glslang/src/Test/130.frag b/chromium/third_party/glslang/src/Test/130.frag
new file mode 100644
index 00000000000..3e394110b55
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/130.frag
@@ -0,0 +1,169 @@
+#version 130
+
+lowp vec3 a;
+mediump float b;
+highp int c;
+
+precision highp float;
+
+in vec4 i;
+out vec4 o;
+
+flat in float fflat;
+smooth in float fsmooth;
+noperspective in float fnop;
+
+void main()
+{
+ float clip = gl_ClipDistance[3];
+}
+
+uniform samplerCube sampC;
+
+void foo()
+{
+ vec4 s = textureGather(sampC, vec3(0.2));
+}
+
+#extension GL_ARB_texture_gather : enable
+
+void bar()
+{
+ vec4 s = textureGather(sampC, vec3(0.2));
+}
+
+flat in vec3 gl_Color; // ERROR, type
+in vec4 gl_Color;
+flat in vec4 gl_Color;
+flat in vec4 gl_Color[2]; // ERROR, array
+vec4 gl_Color; // ERROR, storage
+
+#extension GL_ARB_texture_gather : warn
+
+void bar2()
+{
+ vec4 s = textureGather(sampC, vec3(0.2));
+
+ uvec3 uv3;
+ bvec3 b3;
+ b3 = lessThan(uv3, uv3);
+ b3 = equal(uv3, uv3);
+ const bvec2 bl1 = greaterThanEqual(uvec2(2, 3), uvec2(3,3));
+ const bvec2 bl2 = equal(uvec2(2, 3), uvec2(3,3));
+ const bvec2 bl3 = equal(bl1, bl2); // yes, equal
+ int a1[int(bl3.x)];
+ int a2[int(bl3.y)];
+ a1[0]; // size 1
+ a2[0]; // size 1
+ const bvec4 bl4 = notEqual(greaterThan(uvec4(1,2,3,4), uvec4(0,2,0,6)), lessThanEqual(uvec4(7,8,9,10), uvec4(6, 8, 0, 11))); // compare (t,f,t,f) with (f,t,f,t)
+ int a3[int(bl4.x)+int(bl4.y)+int(bl4.z)+int(bl4.w)];
+ a3[3]; // size 4
+ b3 != b3;
+ b3 < b3; // ERROR
+ uv3 > uv3; // ERROR
+ uvec2(2, 3) >= uvec2(3,3); // ERROR
+ int(bl4) <= int(bl4); // true
+ int(bl4.x) > int(bl4.y); // false
+}
+
+#extension GL_ARB_texture_gather : enable
+#extension GL_ARB_texture_rectangle : enable
+
+uniform sampler2D samp2D;
+uniform sampler2DShadow samp2DS;
+uniform sampler2DRect samp2DR;
+uniform sampler2DArray samp2DA;
+
+void bar23()
+{
+ vec4 s;
+ s = textureGatherOffset(sampC, vec3(0.3), ivec2(1)); // ERROR
+ s = textureGatherOffset(samp2DR, vec2(0.3), ivec2(1)); // ERROR
+ s = textureGatherOffset(samp2D, vec2(0.3), ivec2(1));
+ s = textureGatherOffset(samp2DA, vec3(0.3), ivec2(1));
+ s = textureGatherOffset(samp2DS, vec2(0.3), 1.3, ivec2(1)); // ERROR
+ s = textureGatherOffset(samp2D, vec2(0.3), ivec2(1), 2); // ERROR
+}
+
+#extension GL_ARB_gpu_shader5 : enable
+
+void bar234()
+{
+ vec4 s;
+ s = textureGatherOffset(samp2D, vec2(0.3), ivec2(1));
+ s = textureGatherOffset(samp2DA, vec3(0.3), ivec2(1));
+ s = textureGatherOffset(samp2DR, vec2(0.3), ivec2(1));
+ s = textureGatherOffset(samp2DS, vec2(0.3), 1.3, ivec2(1));
+ s = textureGatherOffset(samp2D, vec2(0.3), ivec2(1), 2);
+}
+
+#extension GL_ARB_texture_cube_map_array : enable
+
+uniform samplerCubeArray Sca;
+uniform isamplerCubeArray Isca;
+uniform usamplerCubeArray Usca;
+uniform samplerCubeArrayShadow Scas;
+
+void bar235()
+{
+ ivec3 a = textureSize(Sca, 3);
+ vec4 b = texture(Sca, i);
+ ivec4 c = texture(Isca, i, 0.7);
+ uvec4 d = texture(Usca, i);
+
+ b = textureLod(Sca, i, 1.7);
+ a = textureSize(Scas, a.x);
+ float f = texture(Scas, i, b.y);
+ c = textureGrad(Isca, i, vec3(0.1), vec3(0.2));
+}
+
+int \
+ x; // ERROR until 420pack is turned on
+
+#extension GL_ARB_shading_language_420pack : enable
+
+const int ai[3] = { 10, 23, 32 };
+layout(binding=0) uniform blockname { int a; } instanceName; // ERROR
+uniform layout(binding=0) sampler2D bounds;
+
+void bar23444()
+{
+ mat4x3 m43; \
+ float a1 = m43[3].y;
+ vec3 v3;
+ int a2 = m43.length();
+ a2 += m43[1].length();
+ a2 += v3.length();
+ const float b = 2 * a1;
+ a.x = gl_MinProgramTexelOffset + gl_MaxProgramTexelOffset;
+ bool boolb;
+ boolb.length(); // ERROR
+ m43[3][1].length(); // ERROR
+ v3.length; // ERROR
+ v3.length(b); // ERROR
+}
+
+in float gl_FogFragCoord;
+
+#extension GL_ARB_separate_shader_objects : enable
+
+in float gl_FogFragCoord;
+in int gl_FogFragCoord; // ERROR
+
+layout(early_fragment_tests) in; // ERROR
+layout(r32i) uniform iimage2D iimg2Dbad; // ERROR
+
+#extension GL_ARB_shader_image_load_store : enable
+
+layout(early_fragment_tests) in;
+
+layout(r32i) uniform iimage2D iimg2D;
+
+void qux2()
+{
+ int i;
+ imageAtomicCompSwap(iimg2D, ivec2(i,i), i, i);
+ ivec4 pos = imageLoad(iimg2D, ivec2(i,i));
+}
+
+layout(early_fragment_tests) out; // ERROR
diff --git a/chromium/third_party/glslang/src/Test/130.vert b/chromium/third_party/glslang/src/Test/130.vert
new file mode 100644
index 00000000000..287ba6a024a
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/130.vert
@@ -0,0 +1,78 @@
+#version 130
+
+uniform int c;
+uniform usampler2D us2D;
+
+in ivec2 x;
+in vec2 v2a;
+in float c1D;
+in vec2 c2D;
+in vec3 c3D;
+smooth vec4 c4D; // ??
+
+uniform vec4 v4;
+
+void main()
+{
+ float f = 3;
+ switch (c) { // full switch testing in switch.frag
+ case 1:
+ f = sin(f);
+ break;
+ case 2:
+ f = f * f;
+ default:
+ f = 3.0;
+ }
+
+ uint i;
+ i = texture(us2D, x).w; // full uint testing in uint.frag
+ i << 3u | 0x8Au >> 1u & 0xFFu;
+
+ vec3 modfOut, modfIn;
+ vec3 v11 = modf(modfIn, modfOut);
+ float t = trunc(f);
+ vec2 v12 = round(v2a);
+ vec2 v13 = roundEven(v2a);
+ bvec2 b10 = isnan(v2a);
+ bvec4 b11 = isinf(v4);
+
+ sinh(c1D) +
+ cosh(c1D) * tanh(c2D);
+ asinh(c4D) + acosh(c4D);
+ atanh(c3D);
+
+ int id = gl_VertexID;
+ gl_ClipDistance[1] = 0.3;
+}
+
+// version 140 features
+
+//uniform isamplerBuffer sbuf;
+
+//layout(std140) uniform blockName {
+// int anonMem;
+//};
+
+void foo88()
+{
+ int id = gl_InstanceID; // ERROR
+ //id += anonMem;
+ id += texelFetch(id, 8);
+
+ gl_ClipVertex; // these are all present...
+ gl_Color;
+ gl_LightSource[0];
+ gl_DepthRange.far;
+ gl_TexCoord;
+ gl_FogFragCoord;
+ gl_FrontColor;
+}
+
+// token pasting
+
+#define mac abc##def
+int mac;
+
+#define macr(A,B) A##B
+int macr(qrs,tuv);
diff --git a/chromium/third_party/glslang/src/Test/140.frag b/chromium/third_party/glslang/src/Test/140.frag
new file mode 100644
index 00000000000..2bc2f59fe0c
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/140.frag
@@ -0,0 +1,53 @@
+#version 140
+
+varying vec4 v;
+
+in vec4 i;
+out vec4 o;
+
+in float gl_ClipDistance[5];
+
+void main()
+{
+ float clip = gl_ClipDistance[2];
+}
+#ifdef GL_ES
+#error GL_ES is set
+#else
+#error GL_ES is not set
+#endif
+
+in struct S { float f; } s; // ERROR
+
+float patch = 3.1;
+
+layout(location=3) in vec4 vl; // ERROR
+
+layout(location = 3) out vec4 factorBad; // ERROR
+
+#extension GL_ARB_explicit_attrib_location : enable
+
+layout(location = 5) out vec4 factor;
+
+#extension GL_ARB_separate_shader_objects : enable
+
+layout(location=4) in vec4 vl2;
+
+float fooi();
+
+void foo()
+{
+ vec2 r1 = modf(v.xy, v.zw); // ERROR, v.zw not l-value
+ vec2 r2 = modf(o.xy, o.zw);
+ o.z = fooi();
+}
+
+// Test extra-function initializers
+
+float i1 = gl_FrontFacing ? -2.0 : 2.0;
+float i2 = 102;
+
+float fooi()
+{
+ return i1 + i2;
+}
diff --git a/chromium/third_party/glslang/src/Test/140.vert b/chromium/third_party/glslang/src/Test/140.vert
new file mode 100644
index 00000000000..31689fba29d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/140.vert
@@ -0,0 +1,59 @@
+#version 140
+
+uniform isamplerBuffer sbuf;
+
+layout(std140) uniform blockName {
+ int anonMem;
+};
+
+void main()
+{
+ int id = gl_InstanceID;
+ id += anonMem;
+ id += texelFetch(sbuf, 8).w;
+ gl_ClipVertex; // could be ERROR, but compiling under compatibility profile
+ gl_Color; // could be ERROR, but compiling under compatibility profile
+ gl_LightSource[0]; // could be ERROR, but compiling under compatibility profile
+ gl_DepthRange.far;
+ gl_TexCoord; // could be ERROR, but compiling under compatibility profile
+ gl_FogFragCoord; // could be ERROR, but compiling under compatibility profile
+ gl_FrontColor; // could be ERROR, but compiling under compatibility profile
+}
+
+out vec4 gl_Position; // ERROR
+
+layout(location = 9) in vec4 locBad; // ERROR
+
+#extension GL_ARB_explicit_attrib_location : enable
+
+layout(location = 9) in vec4 loc;
+
+#extension GL_ARB_separate_shader_objects : enable
+
+out vec4 gl_Position;
+in vec4 gl_Position; // ERROR
+out vec3 gl_Position; // ERROR
+
+out float gl_PointSize;
+out vec4 gl_ClipVertex;
+out float gl_FogFragCoord;
+
+uniform sampler2DRect s2dr;
+uniform sampler2DRectShadow s2drs;
+in ivec2 itloc2;
+in vec2 tloc2;
+in vec3 tloc3;
+in vec4 tloc4;
+
+void foo()
+{
+ vec4 v = texelFetch(s2dr, itloc2);
+ v += texelFetch(s2dr, itloc2, 0.2); // ERROR, no lod
+ v += texture(s2dr, tloc2);
+ v += texture(s2dr, tloc2, 0.3); // ERROR, no bias
+ v += texture(s2drs, tloc3);
+ v += textureProj(s2dr, tloc3);
+ v += textureProj(s2dr, tloc4);
+ v += textureProjGradOffset(s2dr, tloc4, ivec2(0.0), ivec2(0.0), ivec2(1,2));
+ v += textureProjGradOffset(s2drs, tloc4, ivec2(0.0), ivec2(0.0), ivec2(1,2));
+}
diff --git a/chromium/third_party/glslang/src/Test/150.frag b/chromium/third_party/glslang/src/Test/150.frag
new file mode 100644
index 00000000000..41c988d77f4
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/150.frag
@@ -0,0 +1,50 @@
+#version 150 core
+
+in vec4 gl_FragCoord;
+layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord; // ERROR
+layout(pixel_center_integer) in vec4 gl_FragCoord; // ERROR
+layout(origin_upper_left) in vec4 foo; // ERROR
+layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord;
+
+void main()
+{
+ vec4 c = gl_FragCoord;
+}
+
+layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord; // ERROR, declared after use
+
+in struct S { float f; } s;
+
+float patch = 3.1;
+
+uniform sampler2DMS sms;
+uniform isampler2DMS isms;
+uniform usampler2DMS usms;
+uniform sampler2DMSArray smsa;
+uniform isampler2DMSArray ismsa;
+uniform usampler2DMSArray usmsa;
+
+flat in ivec2 p2;
+flat in ivec3 p3;
+flat in int samp;
+
+void barWxyz()
+{
+ ivec2 t11 = textureSize( sms);
+ ivec2 t12 = textureSize(isms);
+ ivec2 t13 = textureSize(usms);
+ ivec3 t21 = textureSize( smsa);
+ ivec3 t22 = textureSize(ismsa);
+ ivec3 t23 = textureSize(usmsa);
+ vec4 t31 = texelFetch( sms, p2, samp);
+ ivec4 t32 = texelFetch(isms, p2, samp);
+ uvec4 t33 = texelFetch(usms, p2, 3);
+ vec4 t41 = texelFetch( smsa, p3, samp);
+ ivec4 t42 = texelFetch(ismsa, ivec3(2), samp);
+ uvec4 t43 = texelFetch(usmsa, p3, samp);
+}
+
+int primitiveID()
+{
+ return gl_PrimitiveID;
+}
diff --git a/chromium/third_party/glslang/src/Test/150.geom b/chromium/third_party/glslang/src/Test/150.geom
new file mode 100644
index 00000000000..d2ff4eb15f0
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/150.geom
@@ -0,0 +1,139 @@
+#version 150 core
+
+in fromVertex {
+ in vec3 color;
+} fromV[];
+
+out toFragment {
+ out vec3 color;
+} toF;
+
+out fromVertex { // okay to reuse a block name for another block name
+ vec3 color;
+};
+
+out fooB {
+ vec2 color;
+} fromVertex; // ERROR, cannot reuse block name as block instance
+
+int fromVertex; // ERROR, cannot reuse a block name for something else
+
+out fooC {
+ vec2 color;
+} fooC; // ERROR, cannot have same name for block and instance name
+
+void main()
+{
+ EmitVertex();
+ EndPrimitive();
+ EmitStreamVertex(1); // ERROR
+ EndStreamPrimitive(0); // ERROR
+
+ color = fromV[0].color;
+ gl_ClipDistance[3] = gl_in[1].gl_ClipDistance[2];
+ gl_Position = gl_in[0].gl_Position;
+ gl_PointSize = gl_in[3].gl_PointSize;
+ gl_PrimitiveID = gl_PrimitiveIDIn;
+ gl_Layer = 2;
+}
+
+out vec4 ov0; // stream should be 0
+layout(stream = 4) out vec4 ov4;
+out vec4 o1v0; // stream should be 0
+
+layout(stream = 3) uniform; // ERROR
+layout(stream = 3) in; // ERROR
+layout(stream = 3) uniform int ua; // ERROR
+layout(stream = 3) uniform ubb { int ua; } ibb; // ERROR
+
+layout(line_strip, points, triangle_strip, stream = 3, points, triangle_strip) out; // just means "stream = 3, triangle_strip"
+layout(stream = 3, triangle_strip) out;
+out vec4 ov3; // stream should be 3
+
+layout(stream = 6) out ooutb { vec4 a; } ouuaa6;
+
+layout(stream = 6) out ooutb2 {
+ layout(stream = 6) vec4 a;
+} ouua6;
+
+layout(stream = 7) out ooutb3 {
+ layout(stream = 6) vec4 a; // ERROR
+} ouua7;
+
+out vec4 ov2s3; // stream should be 3
+
+layout(max_vertices = 200) out;
+layout(max_vertices = 300) out; // ERROR, too big
+void foo(layout(max_vertices = 4) int a) // ERROR
+{
+ ouuaa6.a = vec4(1.0);
+}
+
+layout(line_strip, points, triangle_strip, stream = 3, points) out; // ERROR, changing output primitive
+layout(line_strip, points, stream = 3) out; // ERROR, changing output primitive
+layout(triangle_strip) in; // ERROR, not an input primitive
+layout(triangle_strip) uniform; // ERROR
+layout(triangle_strip) out vec4 badv4; // ERROR, not on a variable
+layout(triangle_strip) in vec4 bad2v4[]; // ERROR, not on a variable or input
+layout(invocations = 3) out outbn { int a; }; // 2 ERROR, not on a block, not until 4.0
+out outbn2 {
+ layout(invocations = 3) int a; // 2 ERRORs, not on a block member, not until 4.0
+ layout(max_vertices = 3) int b; // ERROR, not on a block member
+ layout(triangle_strip) int c; // ERROR, not on a block member
+} outbi;
+
+layout(lines) out; // ERROR, not on output
+layout(lines_adjacency) in;
+layout(triangles) in; // ERROR, can't change it
+layout(triangles_adjacency) in; // ERROR, can't change it
+layout(invocations = 4) in; // ERROR, not until 4.0
+
+in inbn {
+ layout(stream = 2) int a; // ERROR, stream on input
+} inbi[];
+
+in sameName {
+ int a15;
+} insn[];
+
+out sameName {
+ float f15;
+};
+
+uniform sameName {
+ bool b15;
+};
+
+float summ = gl_MaxVertexAttribs +
+ gl_MaxVertexUniformComponents +
+ gl_MaxVaryingFloats +
+ gl_MaxVaryingComponents +
+ gl_MaxVertexOutputComponents +
+ gl_MaxGeometryInputComponents +
+ gl_MaxGeometryOutputComponents +
+ gl_MaxFragmentInputComponents +
+ gl_MaxVertexTextureImageUnits +
+ gl_MaxCombinedTextureImageUnits +
+ gl_MaxTextureImageUnits +
+ gl_MaxFragmentUniformComponents +
+ gl_MaxDrawBuffers +
+ gl_MaxClipDistances +
+ gl_MaxGeometryTextureImageUnits +
+ gl_MaxGeometryOutputVertices +
+ gl_MaxGeometryTotalOutputComponents +
+ gl_MaxGeometryUniformComponents +
+ gl_MaxGeometryVaryingComponents;
+
+void fooe1()
+{
+ gl_ViewportIndex = gl_MaxViewports - 1;
+}
+
+#extension GL_ARB_viewport_array : enable
+
+void fooe2()
+{
+ gl_ViewportIndex = gl_MaxViewports - 1;
+}
+
+out int gl_ViewportIndex;
diff --git a/chromium/third_party/glslang/src/Test/150.tesc b/chromium/third_party/glslang/src/Test/150.tesc
new file mode 100644
index 00000000000..0acfe32c5b1
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/150.tesc
@@ -0,0 +1,34 @@
+#version 150
+
+#extension GL_ARB_tessellation_shader : enable
+
+layout(vertices = 4) out;
+int outa[gl_out.length()];
+
+patch out vec4 patchOut;
+
+void main()
+{
+ barrier();
+
+ int a = gl_MaxTessControlInputComponents +
+ gl_MaxTessControlOutputComponents +
+ gl_MaxTessControlTextureImageUnits +
+ gl_MaxTessControlUniformComponents +
+ gl_MaxTessControlTotalOutputComponents;
+
+ vec4 p = gl_in[1].gl_Position;
+ float ps = gl_in[1].gl_PointSize;
+ float cd = gl_in[1].gl_ClipDistance[2];
+
+ int pvi = gl_PatchVerticesIn;
+ int pid = gl_PrimitiveID;
+ int iid = gl_InvocationID;
+
+ gl_out[gl_InvocationID].gl_Position = p;
+ gl_out[gl_InvocationID].gl_PointSize = ps;
+ gl_out[gl_InvocationID].gl_ClipDistance[1] = cd;
+
+ gl_TessLevelOuter[3] = 3.2;
+ gl_TessLevelInner[1] = 1.3;
+}
diff --git a/chromium/third_party/glslang/src/Test/150.tese b/chromium/third_party/glslang/src/Test/150.tese
new file mode 100644
index 00000000000..f609697ddbf
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/150.tese
@@ -0,0 +1,35 @@
+#version 150
+
+#extension GL_ARB_tessellation_shader : enable
+
+layout(quads, cw) in;
+layout(fractional_odd_spacing) in;
+layout(point_mode) in;
+patch in vec4 patchIn;
+
+void main()
+{
+ barrier(); // ERROR
+
+ int a = gl_MaxTessEvaluationInputComponents +
+ gl_MaxTessEvaluationOutputComponents +
+ gl_MaxTessEvaluationTextureImageUnits +
+ gl_MaxTessEvaluationUniformComponents +
+ gl_MaxTessPatchComponents +
+ gl_MaxPatchVertices +
+ gl_MaxTessGenLevel;
+
+ vec4 p = gl_in[1].gl_Position;
+ float ps = gl_in[1].gl_PointSize;
+ float cd = gl_in[1].gl_ClipDistance[2];
+
+ int pvi = gl_PatchVerticesIn;
+ int pid = gl_PrimitiveID;
+ vec3 tc = gl_TessCoord;
+ float tlo = gl_TessLevelOuter[3];
+ float tli = gl_TessLevelInner[1];
+
+ gl_Position = p;
+ gl_PointSize = ps;
+ gl_ClipDistance[2] = cd;
+}
diff --git a/chromium/third_party/glslang/src/Test/150.vert b/chromium/third_party/glslang/src/Test/150.vert
new file mode 100644
index 00000000000..602c9931620
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/150.vert
@@ -0,0 +1,25 @@
+#version 150 core
+
+in vec4 iv4;
+
+uniform float ps;
+
+invariant gl_Position;
+
+void main()
+{
+ gl_Position = iv4;
+ gl_PointSize = ps;
+ gl_ClipDistance[2] = iv4.x;
+ gl_ClipVertex = iv4;
+}
+
+out float gl_ClipDistance[4];
+
+uniform foob {
+ int a[];
+};
+int a[5]; // ERROR, resizing user-block member
+
+#line 3000
+#error line of this error should be 3001
diff --git a/chromium/third_party/glslang/src/Test/300.frag b/chromium/third_party/glslang/src/Test/300.frag
new file mode 100644
index 00000000000..ca2e2cb3e56
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/300.frag
@@ -0,0 +1,161 @@
+#version 300 es
+void nodef1(float f); // ERROR, no default precision
+uniform sampler2D s2D;
+uniform lowp sampler3D s3D;
+uniform samplerCube sCube;
+uniform lowp samplerCubeShadow sCubeShadow;
+uniform lowp sampler2DShadow s2DShadow;
+uniform lowp sampler2DArray s2DArray;
+uniform lowp sampler2DArrayShadow s2DArrayShadow;
+
+uniform lowp isampler2D is2D;
+uniform lowp isampler3D is3D;
+uniform lowp isamplerCube isCube;
+uniform lowp isampler2DArray is2DArray;
+
+uniform lowp usampler2D us2D;
+uniform lowp usampler3D us3D;
+uniform lowp usamplerCube usCube;
+uniform lowp usampler2DArray us2DArray;
+precision lowp float;
+in float c1D;
+in vec2 c2D;
+in vec3 c3D;
+smooth vec4 c4D;
+
+flat in int ic1D;
+flat in ivec2 ic2D;
+flat in ivec3 ic3D;
+flat in ivec4 ic4D;
+noperspective in vec4 badv; // ERROR
+in sampler2D bads; // ERROR
+precision lowp uint; // ERROR
+
+struct s {
+ int i;
+ sampler2D s;
+};
+
+in s badout; // ERROR, can't contain a sampler
+ // ERROR, can't have int in struct without flat
+struct S2 {
+ vec3 c;
+ float f;
+};
+
+in S2 s2;
+
+out vec3 sc;
+out float sf;
+
+uniform sampler2D arrayedSampler[5];
+
+void main()
+{
+ float f;
+ vec4 v;
+ v = texture(s2D, c2D);
+ v = textureProj(s3D, c4D);
+ v = textureLod(s2DArray, c3D, 1.2);
+ f = textureOffset(s2DShadow, c3D, ic2D, c1D); // ERROR, offset argument not constant
+ v = texelFetch(s3D, ic3D, ic1D);
+ v = texelFetchOffset(arrayedSampler[2], ic2D, 4, ic2D); // ERROR, offset argument not constant
+ f = textureLodOffset(s2DShadow, c3D, c1D, ic2D);
+ v = textureProjLodOffset(s2D, c3D, c1D, ic2D);
+ v = textureGrad(sCube, c3D, c3D, c3D);
+ f = textureGradOffset(s2DArrayShadow, c4D, c2D, c2D, ic2D);
+ v = textureProjGrad(s3D, c4D, c3D, c3D);
+ v = textureProjGradOffset(s2D, c3D, c2D, c2D, ic2D);
+ v = texture(arrayedSampler[ic1D], c2D); // ERROR
+
+ ivec4 iv;
+ iv = texture(is2D, c2D);
+ iv = textureProjOffset(is2D, c4D, ic2D);
+ iv = textureProjLod(is2D, c3D, c1D);
+ iv = textureProjGrad(is2D, c3D, c2D, c2D);
+ iv = texture(is3D, c3D, 4.2);
+ iv = textureLod(isCube, c3D, c1D);
+ iv = texelFetch(is2DArray, ic3D, ic1D);
+
+ iv.xy = textureSize(sCubeShadow, 2);
+
+ float precise;
+ double boo; // ERROR
+ dvec2 boo2; // ERROR
+ dvec3 boo3; // ERROR
+ dvec4 boo4; // ERROR
+
+ f += gl_FragCoord.y;
+ gl_FragDepth = f;
+
+ sc = s2.c;
+ sf = s2.f;
+
+ sinh(c1D) +
+ cosh(c1D) * tanh(c2D);
+ asinh(c4D) + acosh(c4D);
+ atanh(c3D);
+}
+
+uniform multi {
+ int[2] a[3]; // ERROR
+ int[2][3] b; // ERROR
+ int c[2][3]; // ERROR
+} multiInst[2][3]; // ERROR
+
+out vec4 colors[4];
+
+void foo()
+{
+ colors[2] = c4D;
+ colors[ic1D] = c4D; // ERROR
+}
+
+uniform s st1;
+uniform s st2;
+
+void foo13(s inSt2)
+{
+ if (st1 == st2); // ERROR
+ if (st1 != st2); // ERROR
+ st1.s == st2.s; // ERROR
+ inSt2 = st1; // ERROR
+ inSt2 == st1; // ERROR
+}
+
+void foo23()
+{
+ textureOffset(s2DShadow, c3D, ivec2(-8, 7), c1D);
+ textureOffset(s2DShadow, c3D, ivec2(-9, 8), c1D);
+}
+
+void foo324(void)
+{
+ float p = pow(3.2, 4.6);
+ p += sin(0.4);
+ p += distance(vec2(10.0, 11.0), vec2(13.0, 15.0)); // 5
+ p += dot(vec3(2,3,5), vec3(-2,-1,4)); // 13
+ vec3 c3 = cross(vec3(3,-3,1), vec3(4,9,2)); // (-15, -2, 39)
+ c3 += faceforward(vec3(1,2,3), vec3(2,3,5), vec3(-2,-1,4)); // (-1,-2,-3)
+ c3 += faceforward(vec3(1,2,3), vec3(-2,-3,-5), vec3(-2,-1,4)); // (1,2,3)
+ vec2 c2 = reflect(vec2(1,3), vec2(0,1)); // (1,-3)
+ c2 += refract(vec2(1,3), vec2(0,1), 1.0); // (1,-3)
+ c2 += refract(vec2(1,3), vec2(0,1), 3.0);
+ c2 += refract(vec2(1,0.1), vec2(0,1), 5.0); // (0,0)
+ mat3x2 m32 = outerProduct(vec2(2,3), vec3(5,7,11));// rows: (10, 14, 22), (15, 21, 33)
+}
+
+uniform mediump; // ERROR
+
+layout(early_fragment_tests) in; // ERROR
+
+#ifndef GL_FRAGMENT_PRECISION_HIGH
+#error missing GL_FRAGMENT_PRECISION_HIGH
+#endif
+
+invariant in; // ERROR
+invariant in vec4; // ERROR
+invariant in vec4 fooinv; // ERROR
+
+float imageBuffer; // ERROR, reserved
+float uimage2DRect; // ERROR, reserved
diff --git a/chromium/third_party/glslang/src/Test/300.vert b/chromium/third_party/glslang/src/Test/300.vert
new file mode 100644
index 00000000000..83b9bb112aa
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/300.vert
@@ -0,0 +1,187 @@
+#version 300 es
+
+uniform mat4x3 m43;
+uniform mat3x3 m33;
+uniform mat4x4 m44;
+
+in vec3 v3;
+varying vec2 v2; // ERROR, varying reserved
+in vec4 bad[10]; // ERROR, no arrayed inputs
+highp in vec4 badorder; // ERROR, incorrect qualifier order
+out invariant vec4 badorder2; // ERROR, incorrect qualifier order
+in centroid vec4 badorder4; // ERROR, incorrect qualifier order
+out flat vec4 badorder3; // ERROR, incorrect qualifier order
+void bar(in const float a); // ERROR, incorrect qualifier order
+void bar2(highp in float b); // ERROR, incorrect qualifier order
+smooth flat out vec4 rep; // ERROR, replicating interpolation qualification
+centroid sample out vec4 rep2; // ERROR, replicating auxiliary qualification
+in uniform vec4 rep3; // ERROR, replicating storage qualification
+
+struct S {
+ vec3 c;
+ float f;
+};
+
+out S s;
+
+void main()
+{
+ int id = gl_VertexID + gl_InstanceID;
+
+ int c0 = gl_MaxVertexAttribs;
+ int c1 = gl_MaxVertexUniformVectors;
+ int c2 = gl_MaxVertexOutputVectors;
+ int c3 = gl_MaxFragmentInputVectors;
+ int c4 = gl_MaxVertexTextureImageUnits;
+ int c5 = gl_MaxCombinedTextureImageUnits;
+ int c6 = gl_MaxTextureImageUnits;
+ int c7 = gl_MaxFragmentUniformVectors;
+ int c8 = gl_MaxDrawBuffers;
+ int c9 = gl_MinProgramTexelOffset;
+ int c10 = gl_MaxProgramTexelOffset;
+
+ mat3x4 tm = transpose(m43);
+ highp float dm = determinant(m44);
+ mat3x3 im = inverse(m33);
+
+ mat3x2 op = outerProduct(v2, v3);
+
+ gl_Position = m44[2];
+ gl_PointSize = v2.y;
+
+ s.c = v3;
+ s.f = dm;
+
+#ifdef GL_ES
+#error GL_ES is set
+#else
+#error GL_ES is not set
+#endif
+}
+
+float badsize[]; // ERROR
+float[] badsize2; // ERROR
+uniform ub {
+ int a[]; // ERROR
+} ubInst[]; // ERROR
+void foo(int a[]); // ERROR
+float okayA[] = float[](3.0f, 4.0F); // Okay
+
+out vec3 newV;
+void newVFun()
+{
+ newV = v3;
+}
+
+invariant newV; // ERROR, variable already used
+in vec4 invIn;
+invariant invIn; // ERROR, in v300
+out S s2;
+invariant s2;
+invariant out S s3;
+flat out int;
+
+uniform ub2 {
+ float f;
+} a;
+
+uniform ub2 { // ERROR redeclaration of block name (same instance name)
+ float g;
+} a;
+
+uniform ub2 { // ERROR redeclaration of block name (different instance name)
+ float f;
+} c;
+
+uniform ub2 { // ERROR redeclaration of block name (no instance name)
+ float f123;
+};
+
+uniform ub3 {
+ bool b23;
+};
+
+uniform ub3 { // ERROR redeclaration of block name (no instance name in first or declared)
+ bool b234;
+};
+
+precision lowp sampler3D;
+precision lowp sampler2DShadow;
+precision lowp sampler2DArrayShadow;
+
+uniform sampler2D s2D;
+uniform sampler3D s3D;
+uniform sampler2DShadow s2DS;
+uniform sampler2DArrayShadow s2DAS;
+in vec2 c2D;
+
+void foo23()
+{
+ ivec2 x1 = textureSize(s2D, 2);
+ textureSize(s2D); // ERROR, no lod
+ ivec3 x3 = textureSize(s2DAS, -1);
+ textureSize(s2DAS); // ERROR, no lod
+ vec4 x4 = texture(s2D, c2D);
+ texture(s2D, c2D, 0.2); // ERROR, bias
+ vec4 x5 = textureProjOffset(s3D, vec4(0.2), ivec3(1));
+ textureProjOffset(s3D, vec4(0.2), ivec3(1), .03); // ERROR, bias
+ float x6 = textureProjGradOffset(s2DS, invIn, vec2(4.2), vec2(5.3), ivec2(1));
+}
+
+int fgfg(float f, mediump int i);
+int fgfg(float f, highp int i); // ERROR, precision qualifier difference
+
+int fgfgh(float f, const in mediump int i);
+int fgfgh(float f, in mediump int i); // ERROR, precision qualifier difference
+
+void foo2349()
+{
+ float[] x = float[] (1.0, 2.0, 3.0);
+ float[] y = x;
+ float[3] z = x;
+ float[3] w;
+ w = y;
+}
+
+int[] foo213234(); // ERROR
+int foo234234(float[]); // ERROR
+int foo234235(vec2[] v); // ERROR
+precision highp float[2]; // ERROR
+
+int fffg(float f);
+int fffg(float f);
+
+int gggf(float f);
+int gggf(float f) { return 2; }
+int gggf(float f);
+
+int agggf(float f) { return 2; }
+int agggf(float f);
+
+out struct Ssss { float f; } ssss;
+
+uniform Bblock {
+ int a;
+} Binst;
+int Bfoo;
+
+layout(std140) Binst; // ERROR
+layout(std140) Bblock; // ERROR
+layout(std140) Bfoo; // ERROR
+
+layout(std430) uniform B430 { int a; } B430i; // ERROR
+
+struct SNA {
+ int a[]; // ERROR
+};
+
+void fooDeeparray()
+{
+ float[] x = float[] (1.0, 2.0, 3.0),
+ y = float[] (1.0, 2.0, 3.0, 4.0);
+ float xp[3], yp[4];
+ xp = x;
+ yp = y;
+ xp = y; // ERROR, wrong size
+ yp = x; // ERROR, wrong size
+}
diff --git a/chromium/third_party/glslang/src/Test/300BuiltIns.frag b/chromium/third_party/glslang/src/Test/300BuiltIns.frag
new file mode 100644
index 00000000000..89233e2651e
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/300BuiltIns.frag
@@ -0,0 +1,76 @@
+#version 300 es
+
+int imax, imin;
+uint umax, umin;
+
+vec3 x, y; // ERROR, needs default precision
+bvec3 bv;
+
+uint uy;
+uvec2 uv2c;
+uvec2 uv2y;
+uvec2 uv2x;
+uvec4 uv4y;
+
+ivec3 iv3a;
+ivec3 iv3b;
+
+ivec4 iv4a;
+ivec4 iv4b;
+
+float f;
+
+vec2 v2a, v2b;
+vec4 v4;
+
+void main()
+{
+ // 1.3 int
+ vec3 v = mix(x, y, bv);
+ ivec4 iv10 = abs(iv4a);
+ ivec4 iv11 = sign(iv4a);
+ ivec4 iv12 = min(iv4a, iv4b);
+ ivec4 iv13 = min(iv4a, imin);
+ uvec2 u = min(uv2x, uv2y);
+ uvec4 uv = min(uv4y, uy);
+ ivec3 iv14 = max(iv3a, iv3b);
+ ivec4 iv15 = max(iv4a, imax);
+ uvec2 u10 = max(uv2x, uv2y);
+ uvec2 u11 = max(uv2x, uy);
+ ivec4 iv16 = clamp(iv4a, iv4a, iv4b);
+ ivec4 iv17 = clamp(iv4a, imin, imax);
+ uvec2 u12 = clamp(uv2x, uv2y, uv2c);
+ uvec4 uv10 = clamp(uv4y, umin, umax);
+
+ // 1.3 float
+ vec3 modfOut;
+ vec3 v11 = modf(x, modfOut);
+
+ float t = trunc(f);
+ vec2 v12 = round(v2a);
+ vec2 v13 = roundEven(v2a);
+ bvec2 b10 = isnan(v2a);
+ bvec4 b11 = isinf(v4);
+
+ // 3.3 float
+ int i = floatBitsToInt(f);
+ uvec4 uv11 = floatBitsToUint(v4);
+ vec4 v14 = intBitsToFloat(iv4a);
+ vec2 v15 = uintBitsToFloat(uv2c);
+
+ // 4.0 pack
+ uint u19 = packSnorm2x16(v2a);
+ vec2 v20 = unpackSnorm2x16(uy);
+ uint u15 = packUnorm2x16(v2a);
+ vec2 v16 = unpackUnorm2x16(uy);
+ uint u17 = packHalf2x16(v2b);
+ vec2 v18 = unpackHalf2x16(uy);
+
+ // not present
+ noise2(v18); // ERROR, not present
+
+ float t__; // ERROR, no __ until revision 310
+
+ // ERROR, no __ until revision 310
+ #define __D
+}
diff --git a/chromium/third_party/glslang/src/Test/300block.frag b/chromium/third_party/glslang/src/Test/300block.frag
new file mode 100644
index 00000000000..9820e2a9454
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/300block.frag
@@ -0,0 +1,58 @@
+#version 300 es
+
+precision mediump float;
+
+struct S {
+ vec4 u;
+ uvec4 v;
+ lowp isampler3D sampler;
+ vec3 w;
+ struct T1 { // ERROR
+ int a;
+ } t;
+};
+
+uniform S s;
+
+uniform fooBlock {
+ uvec4 bv;
+ uniform mat2 bm2;
+ lowp isampler2D sampler; // ERROR
+ struct T2 { // ERROR
+ int a;
+ } t;
+ S fbs; // ERROR, contains a sampler
+};
+
+uniform barBlock {
+ uvec4 nbv;
+ int ni;
+} inst;
+
+uniform barBlockArray {
+ uvec4 nbv;
+ int ni;
+} insts[4];
+
+uniform unreferenced {
+ float f;
+ uint u;
+};
+
+void main()
+{
+ texture(s.sampler, vec3(inst.ni, bv.y, insts[2].nbv.z));
+ insts[s.v.x]; // ERROR
+ fooBlock; // ERROR
+ mat4(s); // ERROR
+ int insts;
+ float barBlock;
+ mat4(barBlock);
+ mat4(unreferenced); // ERROR, bad type
+ ++s; // ERROR
+ inst - 1; // ERROR
+ ++barBlock;
+ 2 * barBlockArray; // ERROR
+}
+
+int fooBlock; // ERROR, redef.
diff --git a/chromium/third_party/glslang/src/Test/300layout.frag b/chromium/third_party/glslang/src/Test/300layout.frag
new file mode 100644
index 00000000000..32a6b02672c
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/300layout.frag
@@ -0,0 +1,19 @@
+#version 300 es
+precision mediump float;
+in vec4 pos;
+layout (location = 2) in vec4 color; // ERROR
+
+layout(location = 1) out vec4 c;
+layout(location = 3) out vec4 p;
+layout(location = 4) out vec4 q[2];
+
+void main()
+{
+ c = color;
+ p = pos;
+ q[1] = pos;
+}
+
+layout(location = 40) out float ca[4]; // ERROR, overlap, ERROR too big
+layout(location = 41) out float cb[2]; // ERROR, overlap, ERROR too big
+layout(location = 39) out float cc[6]; // ERROR, overlap, ERROR too big
diff --git a/chromium/third_party/glslang/src/Test/300layout.vert b/chromium/third_party/glslang/src/Test/300layout.vert
new file mode 100644
index 00000000000..06d1206dc18
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/300layout.vert
@@ -0,0 +1,57 @@
+#version 300 es
+
+struct s { vec4 v; };
+
+layout(location = 7) in vec3 c;
+layout(LocatioN = 3) in vec4 p;
+layout(LocatioN = 9) in vec4 q[4]; // ERROR, no array
+layout(LocatioN = 10) in s r[4]; // ERROR, no struct, ERROR, location overlap
+out vec4 pos;
+out vec3 color;
+
+layout(shared, column_major) uniform mat4 badm4; // ERROR
+layout(shared, column_major, row_major) uniform; // default is now shared and row_major
+
+layout(std140) uniform Transform { // layout of this block is std140
+ mat4 M1; // row_major
+ layout(column_major) mat4 M2; // column major
+ mat3 N1; // row_major
+ centroid float badf; // ERROR
+ in float badg; // ERROR
+ layout(std140) float bad1;
+ layout(shared) float bad2;
+ layout(packed) float bad3;
+} tblock;
+
+uniform T2 { // layout of this block is shared
+ bool b;
+ mat4 t2m;
+};
+
+layout(column_major) uniform T3 { // shared and column_major
+ mat4 M3; // column_major
+ layout(row_major) mat4 M4; // row major
+ mat3 N2; // column_major
+ int b; // ERROR, redefinition (needs to be last member of block for testing, following members are skipped)
+};
+
+out badout { // ERROR
+ float f;
+};
+
+layout (location = 10) out vec4 badoutA; // ERROR
+
+void main()
+{
+ pos = p * (tblock.M1 + tblock.M2 + M4 + M3 + t2m);
+ color = c * tblock.N1;
+}
+
+shared vec4 compute_only; // ERROR
+
+layout(packed) uniform;
+
+layout(packed) uniform float aoeuntaoeu; // ERROR, packed on variable
+
+layout(location = 40) in float cd;
+layout(location = 37) in mat4x3 ce; // ERROR, overlap
diff --git a/chromium/third_party/glslang/src/Test/300link.frag b/chromium/third_party/glslang/src/Test/300link.frag
new file mode 100644
index 00000000000..b80d172d396
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/300link.frag
@@ -0,0 +1,8 @@
+#version 300 es
+
+precision highp float;
+
+out vec4 color1;
+out vec4 color2;
+
+void main() {}
diff --git a/chromium/third_party/glslang/src/Test/300link2.frag b/chromium/third_party/glslang/src/Test/300link2.frag
new file mode 100644
index 00000000000..d8ed3352e0e
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/300link2.frag
@@ -0,0 +1,11 @@
+#version 300 es
+precision mediump float;
+in vec4 pos;
+
+layout(location = 1) out vec4 c;
+layout(location = 5) out vec4 p;
+layout(location = 9) out vec4 q[2];
+
+void main()
+{
+}
diff --git a/chromium/third_party/glslang/src/Test/300link3.frag b/chromium/third_party/glslang/src/Test/300link3.frag
new file mode 100644
index 00000000000..e35dcc93a8f
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/300link3.frag
@@ -0,0 +1,7 @@
+#version 300 es
+
+precision highp float;
+
+out vec4 color1;
+
+void main() {}
diff --git a/chromium/third_party/glslang/src/Test/300operations.frag b/chromium/third_party/glslang/src/Test/300operations.frag
new file mode 100644
index 00000000000..5992987aa51
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/300operations.frag
@@ -0,0 +1,135 @@
+#version 300 es
+
+uniform block {
+ mediump float f;
+} instanceName;
+
+struct S {
+ int i;
+} s;
+
+float a[5];
+
+void main()
+{
+ bool b;
+ float f;
+ int i;
+ uint u;
+ bvec3 b3;
+ vec3 v3;
+ ivec3 iv3;
+ uvec3 uv3;
+ vec4 v4;
+ ivec4 iv4;
+ uvec4 uv4;
+ mat2 m2;
+ mat4 m4;
+
+ // These are all errors:
+ instanceName + instanceName;
+ s + s;
+ i + f;
+ u + f;
+ u + i;
+ iv3 *= iv4;
+ iv4 / uv4;
+ i - v3;
+ iv3 + uv3;
+ a * a;
+ b / b;
+
+ f % f;
+ i % f;
+ f % u;
+ instanceName++;
+ ++s;
+ a--;
+ ++b3;
+
+ iv3 < uv3;
+ m2 > m2;
+ m2 != m4;
+ i >= u;
+ a <= a;
+ b > b;
+
+ b && b3;
+ b3 ^^ b3;
+ b3 || b;
+ i && i;
+ u || u;
+ m2 ^^ m2;
+
+ !u;
+ !i;
+ !m2;
+ !v3;
+ !a;
+
+ ~f;
+ ~m4;
+ ~v3;
+ ~a;
+ ~instanceName;
+
+ i << iv3;
+ u << uv3;
+ i >> f;
+ f >> i;
+ m4 >> i;
+ a >> u;
+ iv3 >> iv4;
+
+ i & u;
+ u &= uv3;
+ i | uv3;
+ u & f;
+ m2 | m2;
+ s ^ s;
+ (f = f) = f;
+
+ // These are all okay:
+ f * v4;
+ u + u;
+ uv4 / u;
+ iv3 -= iv3;
+
+ i %= 3;
+ uv3 % 4u;
+ --m2;
+ iv4++;
+
+ m4 != m4;
+ m2 == m2;
+ i <= i;
+ a == a;
+ s != s;
+
+ b && b;
+ b || b;
+ b ^^ b;
+
+ !b, uv3;
+
+ ~i;
+ ~u;
+ ~uv3;
+ ~iv3;
+
+ uv3 <<= i;
+ i >> i;
+ u << u;
+ iv3 >> iv3;
+
+ i & i;
+ u | u;
+ iv3 ^ iv3;
+ u & uv3;
+ uv3 | u;
+ uv3 &= u;
+ int arr[0x222 & 0xf];
+ arr[1]; // size 2
+ int arr2[(uvec2(0, 0x2) | 0x1u).y];
+ arr2[2]; // size 3
+}
diff --git a/chromium/third_party/glslang/src/Test/300scope.vert b/chromium/third_party/glslang/src/Test/300scope.vert
new file mode 100644
index 00000000000..162e99822c8
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/300scope.vert
@@ -0,0 +1,74 @@
+#version 300 es
+
+int f(int a, int b, int c)
+{
+ int a = b; // ERROR, redefinition
+
+ {
+ float a = float(a) + 1.0;
+ }
+
+ return a;
+}
+
+int f(int a, int b, int c); // okay to redeclare
+
+bool b;
+float b(int a); // ERROR: redefinition
+
+float c(int a);
+bool c; // ERROR: redefinition
+
+float f; // ERROR: redefinition
+float tan; // ERROR: redefines built-in function
+float sin(float x); // ERROR: can't redefine built-in functions
+float cos(float x) // ERROR: can't redefine built-in functions
+{
+ return 1.0;
+}
+bool radians(bool x) // ERROR: can't overload built-in functions
+{
+ return true;
+}
+
+invariant gl_Position;
+
+void main()
+{
+ int g(); // ERROR: no local function declarations
+ g();
+
+ float sin; // okay
+ sin;
+ sin(0.7); // ERROR, use of hidden function
+ f(1,2,3);
+
+ float f; // hides f()
+ f = 3.0;
+
+ gl_Position = vec4(f);
+
+ for (int f = 0; f < 10; ++f)
+ ++f;
+
+ int x = 1;
+ {
+ float x = 2.0, /* 2nd x visible here */ y = x; // y is initialized to 2
+ int z = z; // ERROR: z not previously defined.
+ }
+ {
+ int x = x; // x is initialized to '1'
+ }
+
+ struct S
+ {
+ int x;
+ };
+ {
+ S S = S(0); // 'S' is only visible as a struct and constructor
+ S.x; // 'S' is now visible as a variable
+ }
+
+ int degrees;
+ degrees(3.2); // ERROR, use of hidden built-in function
+}
diff --git a/chromium/third_party/glslang/src/Test/310.comp b/chromium/third_party/glslang/src/Test/310.comp
new file mode 100644
index 00000000000..143053ba633
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/310.comp
@@ -0,0 +1,240 @@
+#version 310 es
+
+layout(local_size_x = 2) in;
+layout(local_size_x = 16) in; // ERROR, changing
+layout(local_size_z = 4096) in; // ERROR, too large
+layout(local_size_x = 2) in;
+
+const int total = gl_MaxComputeWorkGroupCount.y
+ + gl_MaxComputeUniformComponents
+ + gl_MaxComputeTextureImageUnits
+ + gl_MaxComputeImageUniforms
+ + gl_MaxComputeAtomicCounters
+ + gl_MaxComputeAtomicCounterBuffers;
+
+buffer ShaderStorageBlock
+{
+ int value;
+ float values[];
+};
+
+buffer InvalidShaderStorageBlock
+{
+ float values[]; // ERROR
+ int value;
+} invalid;
+
+void main()
+{
+ barrier();
+ memoryBarrier();
+ memoryBarrierAtomicCounter();
+ memoryBarrierBuffer();
+ memoryBarrierShared();
+ memoryBarrierImage();
+ groupMemoryBarrier();
+ value = int(values[gl_LocalInvocationIndex]);
+}
+
+layout(location = 2) in vec3 v3; // ERROR
+in float f; // ERROR
+out float fo; // ERROR
+
+shared vec4 s;
+layout(location = 2) shared vec4 sl; // ERROR
+shared float fs = 4.2; // ERROR
+
+layout(local_size_x = 2, local_size_y = 3, local_size_z = 4) out; // ERROR
+
+int arrX[gl_WorkGroupSize.x];
+int arrY[gl_WorkGroupSize.y];
+int arrZ[gl_WorkGroupSize.z];
+
+readonly buffer roblock
+{
+ int value;
+ float values[];
+} ro;
+
+void foo()
+{
+ ro.values[2] = 4.7; // ERROR, readonly
+ ro.values.length();
+ ++s;
+}
+
+buffer vec4 v; // ERROR
+
+uniform usampler2D us2dbad; // ERROR, default precision
+
+precision highp usampler2D;
+precision highp iimage2DArray;
+precision highp iimage2D;
+
+uniform usampler2D us2d;
+
+uniform iimage2DArray ii2dabad; // ERROR, not writeonly
+uniform writeonly iimage2DArray ii2da;
+
+layout(r32i) uniform iimage2D iimg2D;
+layout(rgba32i) uniform readonly iimage2D iimg2Drgba;
+layout(rgba32f) uniform readonly image2D img2Drgba;
+layout(r32ui) uniform uimage2D uimg2D;
+
+void qux()
+{
+ int i = 4;
+ imageAtomicCompSwap(iimg2D, ivec2(i,i), i, i);// ERROR no longer in 310
+ imageAtomicAdd(uimg2D, ivec2(i,i), uint(i)); // ERROR no longer in 310
+ imageAtomicMin(iimg2Drgba, ivec2(i,i), i); // ERROR no longer in 310 // ERROR iimg2Drgba does not have r32i layout
+ imageAtomicMax(img2Drgba, ivec2(i,i), i); // ERROR no longer in 310 // ERROR img2Drgba is not integer image
+ ivec4 pos = imageLoad(iimg2D, ivec2(i,i));
+ imageStore(ii2da, ivec3(i,i,i), ivec4(0));
+ imageLoad(img2Drgba, ivec2(i,i));
+ imageLoad(ii2da, ivec3(i,i,i)); // ERROR, drops writeonly
+}
+
+volatile float vol; // ERROR, not an image
+readonly int vol2; // ERROR, not an image
+
+void passr(coherent readonly iimage2D image)
+{
+}
+
+layout(r32i) coherent readonly uniform iimage2D qualim1;
+layout(r32i) coherent restrict readonly uniform iimage2D qualim2;
+
+void passrc()
+{
+ passr(qualim1);
+ passr(qualim2); // ERROR, drops restrict
+ passr(iimg2D);
+}
+
+layout(rg8i) uniform readonly uimage2D i1bad; // ERROR, type mismatch
+layout(rgba32i) uniform readonly image2D i2bad; // ERROR, type mismatch
+layout(rgba32f) uniform readonly uimage2D i3bad; // ERROR, type mismatch
+layout(r8_snorm) uniform readonly iimage2D i4bad; // ERROR, type mismatch
+layout(rgba32ui) uniform readonly iimage2D i5bad; // ERROR, type mismatch
+layout(r8ui) uniform readonly iimage2D i6bad; // ERROR, type mismatch
+
+layout(binding = 0) uniform atomic_uint counter;
+
+uint func(atomic_uint c)
+{
+ return atomicCounterIncrement(c);
+}
+
+uint func2(out atomic_uint c) // ERROR, output
+{
+ return counter; // ERROR, type mismatch
+ return atomicCounter(counter);
+}
+
+void mainAC()
+{
+ atomic_uint non_uniform_counter; // ERROR
+ uint val = atomicCounter(counter);
+ atomicCounterDecrement(counter);
+}
+
+layout(binding = 1) uniform mediump atomic_uint counterBad; // ERROR, not highp
+
+layout(binding = 2, offset = 4) uniform atomic_uint countArr[4];
+uniform int i;
+
+void opac()
+{
+ int a[3];
+ a[counter]; // ERROR, non-integer
+ countArr[2];
+ countArr[i];
+}
+
+shared int atomi;
+shared uint atomu;
+
+void atoms()
+{
+ int origi = atomicAdd(atomi, 3);
+ uint origu = atomicAnd(atomu, 7u);
+ origi = atomicExchange(atomi, 4);
+ origu = atomicCompSwap(atomu, 10u, 8u);
+}
+
+precision highp atomic_uint;
+precision lowp atomic_uint; // ERROR
+
+precise int pfoo; // ERROR, reserved
+
+dmat2x4 dm; // ERROR
+uniform samplerCubeArray sca; // ERROR
+uniform iimage2DRect i2dr; // ERROR
+uniform image2DMS i2dms; // ERROR
+uniform uimage2DMSArray u2dmsa; // ERROR
+
+layout(r32f) coherent volatile restrict readonly writeonly uniform image2D okay1;
+layout(r32i) coherent volatile restrict readonly uniform iimage2D okay2;
+layout(r32ui) coherent volatile restrict writeonly uniform uimage2D okay3;
+layout(r32f) coherent volatile restrict uniform image2D okay4;
+
+layout(rgba32f) coherent volatile restrict uniform image2D badQ1; // ERROR, bad qualifiers
+layout(rgba8i) coherent volatile restrict uniform iimage2D badQ2; // ERROR, bad qualifiers
+layout(rgba16ui) coherent volatile restrict uniform uimage2D badQ3; // ERROR, bad qualifiers
+
+writeonly buffer woblock
+{
+ int value;
+ float values[];
+} wo;
+
+void foowo()
+{
+ float g;
+ g = wo.values[2]; // ERROR, writeonly
+ float f = wo.values[2]; // ERROR, writeonly
+ ++wo.values[2]; // ERROR, writeonly
+ wo.values[2]--; // ERROR, writeonly
+ f + wo.values[2]; // ERROR, writeonly
+ wo.values[2] - f; // ERROR, writeonly
+ bool b;
+ b ? f : wo.values[2]; // ERROR, writeonly
+ b ? wo.values[2] : f; // ERROR, writeonly
+ if (f == wo.values[2]) // ERROR, writeonly
+ ++f;
+ if (f >= wo.values[2]) // ERROR, writeonly
+ ++f;
+ f = vec3(wo.values[2]).x; // ERROR, writeonly
+ ~wo.value; // ERROR, writeonly
+ wo.values[2] = 3.4;
+}
+
+buffer multioblock
+{
+ readonly int value;
+ writeonly float values[];
+} multio;
+
+void foomultio()
+{
+ float g;
+ g = wo.values[2]; // ERROR, writeonly
+ ~wo.value;
+ wo.values[2] = 3.4;
+ wo.value = 2; // ERROR, readonly
+}
+
+in inb { // ERROR
+ int a;
+} inbi;
+
+out outb { // ERROR
+ int a;
+} outbi;
+
+float t__; // ERROR, no __ until revision 310
+
+ // ERROR, no __ until revision 310
+#define __D
+
+shared vec4 arr[2][3][4];
diff --git a/chromium/third_party/glslang/src/Test/310.frag b/chromium/third_party/glslang/src/Test/310.frag
new file mode 100644
index 00000000000..2290ce17c76
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/310.frag
@@ -0,0 +1,431 @@
+#version 310 es
+highp float nodef3(float); // ERROR, no default precision
+precision mediump float;
+precision highp usampler2D;
+precision highp sampler2D;
+precision highp isampler2DArray;
+
+layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord; // ERROR, not supported
+
+layout(location = 2) in vec3 v3;
+layout(location = 2) in mat4 yi; // ERROR, locations conflict with xi
+
+uniform sampler2D arrayedSampler[5];
+uniform usampler2D usamp2d;
+uniform usampler2DRect samp2dr; // ERROR, reserved
+uniform isampler2DArray isamp2DA;
+
+in vec2 c2D;
+uniform int i;
+
+void main()
+{
+ vec4 v = texture(arrayedSampler[i], c2D); // ERROR
+
+ ivec2 offsets[4];
+ const ivec2 constOffsets[4] = ivec2[4](ivec2(1,2), ivec2(3,4), ivec2(15,16), ivec2(-2,0));
+ uvec4 uv4 = textureGatherOffsets(samp2dr, c2D, offsets, 2); // ERROR, not supported
+ vec4 v4 = textureGather(arrayedSampler[0], c2D);
+ ivec4 iv4 = textureGatherOffset(isamp2DA, vec3(0.1), ivec2(1), 3);
+ iv4 = textureGatherOffset(isamp2DA, vec3(0.1), ivec2(1), i); // ERROR, last argument not const
+ iv4 = textureGatherOffset(isamp2DA, vec3(0.1), ivec2(1), 4); // ERROR, last argument out of range
+ iv4 = textureGatherOffset(isamp2DA, vec3(0.1), ivec2(1), 1+2);
+ iv4 = textureGatherOffset(isamp2DA, vec3(0.1), ivec2(0.5));
+ iv4 = textureGatherOffset(isamp2DA, vec3(0.1), ivec2(i)); // ERROR, offset not constant
+}
+
+out vec4 outp;
+void foo23()
+{
+ const ivec2[3] offsets = ivec2[3](ivec2(1,2), ivec2(3,4), ivec2(15,16));
+
+ textureProjGradOffset(usamp2d, outp, vec2(0.0), vec2(0.0), ivec2(c2D)); // ERROR, offset not constant
+ textureProjGradOffset(usamp2d, outp, vec2(0.0), vec2(0.0), offsets[1]);
+ textureProjGradOffset(usamp2d, outp, vec2(0.0), vec2(0.0), offsets[2]); // ERROR, offset out of range
+ textureProjGradOffset(usamp2d, outp, vec2(0.0), vec2(0.0), ivec2(-10, 20)); // ERROR, offset out of range
+
+ if (gl_HelperInvocation)
+ ++outp;
+
+ int sum = gl_MaxVertexImageUniforms +
+ gl_MaxFragmentImageUniforms +
+ gl_MaxComputeImageUniforms +
+ gl_MaxCombinedImageUniforms +
+ gl_MaxCombinedShaderOutputResources;
+
+ bool b1, b2, b3, b;
+
+ b1 = mix(b2, b3, b);
+ uvec3 um3 = mix(uvec3(i), uvec3(i), bvec3(b));
+ ivec4 im4 = mix(ivec4(i), ivec4(i), bvec4(b));
+}
+
+layout(binding=3) uniform sampler2D s1;
+layout(binding=3) uniform sampler2D s2; // ERROR: overlapping bindings? Don't see that in the 310 spec.
+layout(binding=2) uniform writeonly image2D i2D;
+layout(binding=4) uniform readonly image3D i3D;
+layout(binding=5) uniform imageCube iCube;
+layout(binding=6) uniform image2DArray i2DA;
+layout(binding=6) uniform coherent volatile restrict image2D i2Dqualified;
+
+layout(binding = 1) uniform bb {
+ int foo;
+ layout(binding = 2) float f; // ERROR
+} bbi;
+
+in centroid vec4 centroidIn;
+layout(location = 200000) uniform vec4 bigl; // ERROR, location too big
+
+layout(early_fragment_tests) in;
+
+layout(location = 40) out vec4 bigout1; // ERROR, too big
+layout(location = 40) out vec4 bigout2; // ERROR, overlap
+layout(location = -2) out vec4 neg; // ERROR, negative
+
+layout(std430) buffer b430 {
+ int i;
+} b430i;
+
+layout(shared) uniform bshar {
+ int i;
+} bshari;
+
+in smooth vec4 smoothIn;
+in flat int flatIn;
+
+uniform sampler2DMS s2dms;
+
+void foots()
+{
+ highp ivec2 v2 = textureSize(s1, 2);
+ highp ivec3 v3 = textureSize(isamp2DA, 3);
+ v2 = textureSize(s2dms);
+ v2 = imageSize(i2D);
+ v3 = imageSize(i3D);
+ v2 = imageSize(iCube);
+ v3 = imageSize(i2DA);
+ v2 = imageSize(i2Dqualified);
+}
+
+out bool bout; // ERROR
+out image2D imageOut; // ERROR
+out mat2x3 mout; // ERROR
+
+in bool inb; // ERROR
+in sampler2D ino; // ERROR
+in float ina[4];
+in float inaa[4][2]; // ERROR
+struct S { float f; };
+in S ins;
+in S[4] inasa; // ERROR
+in S insa[4]; // ERROR
+struct SA { float f[4]; };
+in SA inSA; // ERROR
+struct SS { float f; S s; };
+in SS inSS; // ERROR
+
+#ifndef GL_EXT_shader_io_blocks
+#error GL_EXT_shader_io_blocks not defined
+#endif
+
+#extension GL_EXT_shader_io_blocks : enable
+
+out outbname { int a; } outbinst; // ERROR, not out block in fragment shader
+
+in inbname {
+ int a;
+ vec4 v;
+ struct { int b; } s; // ERROR, nested struct definition
+} inbinst;
+
+in inbname2 {
+ layout(location = 12) int aAnon;
+ layout(location = 13) centroid in vec4 vAnon;
+};
+
+in layout(location = 13) vec4 aliased; // ERROR, aliased
+
+in inbname2 { // ERROR, reuse of block name
+ int aAnon;
+ centroid in vec4 vAnon;
+};
+
+in badmember { // ERROR, aAnon already in global scope
+ int aAnon;
+};
+
+int inbname; // ERROR, redefinition of block name
+
+vec4 vAnon; // ERROR, anon in global scope; redefinition
+
+in arrayed {
+ float f;
+} arrayedInst[4];
+
+void fooIO()
+{
+ vec4 v = inbinst.v + vAnon;
+ v *= arrayedInst[2].f;
+ v *= arrayedInst[i].f;
+}
+
+in vec4 gl_FragCoord;
+layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord; // ERROR, non-ES
+
+layout(early_fragment_tests) in;
+out float gl_FragDepth;
+layout(depth_any) out float gl_FragDepth; // ERROR, non-ES
+
+void foo_IO()
+{
+ gl_FragDepth = 0.2; // ERROR, early_fragment_tests declared
+ gl_Layer; // ERROR, not present
+ gl_PrimitiveID; // ERROR, not present
+ bool f = gl_FrontFacing;
+}
+
+out float gl_FragDepth;
+
+#extension GL_OES_geometry_shader : enable
+
+void foo_GS()
+{
+ highp int l = gl_Layer;
+ highp int p = gl_PrimitiveID;
+}
+
+in vec2 inf, ing;
+uniform ivec2 offsets[4];
+uniform sampler2D sArray[4];
+uniform int sIndex;
+layout(binding = 0) uniform atomic_uint auArray[2];
+uniform ubName { int i; } ubInst[4];
+buffer bbName { int i; } bbInst[4];
+uniform writeonly image2D iArray[5];
+const ivec2 constOffsets[4] = ivec2[4](ivec2(0.1), ivec2(0.2), ivec2(0.3), ivec2(0.4));
+
+void pfooBad()
+{
+ precise vec2 h; // ERROR reserved
+ h = fma(inf, ing, h); // ERROR, not available
+ textureGatherOffset(sArray[0], vec2(0.1), ivec2(inf)); // ERROR, offset not constant
+ textureGatherOffsets(sArray[0], vec2(0.1), constOffsets); // ERROR, not available
+}
+
+#extension GL_OES_gpu_shader5 : enable
+
+void pfoo()
+{
+ precise vec2 h;
+ h = fma(inf, ing, h);
+ textureGatherOffset(sArray[0], vec2(0.1), ivec2(inf));
+ textureGatherOffsets(sArray[0], vec2(0.1), constOffsets);
+ textureGatherOffsets(sArray[0], vec2(0.1), offsets); // ERROR, offset not constant
+}
+
+#extension GL_EXT_texture_cube_map_array : enable
+
+precision highp imageCubeArray ;
+precision highp iimageCubeArray ;
+precision highp uimageCubeArray ;
+
+precision highp samplerCubeArray ;
+precision highp samplerCubeArrayShadow;
+precision highp isamplerCubeArray ;
+precision highp usamplerCubeArray ;
+
+uniform writeonly imageCubeArray CA1;
+uniform writeonly iimageCubeArray CA2;
+uniform writeonly uimageCubeArray CA3;
+
+#ifdef GL_EXT_texture_cube_map_array
+uniform samplerCubeArray CA4;
+uniform samplerCubeArrayShadow CA5;
+uniform isamplerCubeArray CA6;
+uniform usamplerCubeArray CA7;
+#endif
+
+void CAT()
+{
+ highp vec4 b4 = texture(CA4, vec4(0.5), 0.24);
+ highp ivec4 b6 = texture(CA6, vec4(0.5), 0.26);
+ highp uvec4 b7 = texture(CA7, vec4(0.5), 0.27);
+}
+
+void badSample()
+{
+ lowp int a1 = gl_SampleID; // ERROR, need extension
+ mediump vec2 a2 = gl_SamplePosition; // ERROR, need extension
+ highp int a3 = gl_SampleMaskIn[0]; // ERROR, need extension
+ gl_SampleMask[0] = a3; // ERROR, need extension
+ mediump int n = gl_NumSamples; // ERROR, need extension
+}
+
+#ifdef GL_OES_sample_variables
+#extension GL_OES_sample_variables : enable
+#endif
+
+void goodSample()
+{
+ lowp int a1 = gl_SampleID;
+ mediump vec2 a2 = gl_SamplePosition;
+ highp int a3 = gl_SampleMaskIn[0];
+ gl_SampleMask[0] = a3;
+ mediump int n1 = gl_MaxSamples;
+ mediump int n2 = gl_NumSamples;
+}
+
+uniform layout(r32f) highp image2D im2Df;
+uniform layout(r32ui) highp uimage2D im2Du;
+uniform layout(r32i) highp iimage2D im2Di;
+uniform ivec2 P;
+
+void badImageAtom()
+{
+ float datf;
+ int dati;
+ uint datu;
+
+ imageAtomicAdd( im2Di, P, dati); // ERROR, need extension
+ imageAtomicAdd( im2Du, P, datu); // ERROR, need extension
+ imageAtomicMin( im2Di, P, dati); // ERROR, need extension
+ imageAtomicMin( im2Du, P, datu); // ERROR, need extension
+ imageAtomicMax( im2Di, P, dati); // ERROR, need extension
+ imageAtomicMax( im2Du, P, datu); // ERROR, need extension
+ imageAtomicAnd( im2Di, P, dati); // ERROR, need extension
+ imageAtomicAnd( im2Du, P, datu); // ERROR, need extension
+ imageAtomicOr( im2Di, P, dati); // ERROR, need extension
+ imageAtomicOr( im2Du, P, datu); // ERROR, need extension
+ imageAtomicXor( im2Di, P, dati); // ERROR, need extension
+ imageAtomicXor( im2Du, P, datu); // ERROR, need extension
+ imageAtomicExchange(im2Di, P, dati); // ERROR, need extension
+ imageAtomicExchange(im2Du, P, datu); // ERROR, need extension
+ imageAtomicExchange(im2Df, P, datf); // ERROR, need extension
+ imageAtomicCompSwap(im2Di, P, 3, dati); // ERROR, need extension
+ imageAtomicCompSwap(im2Du, P, 5u, datu); // ERROR, need extension
+}
+
+#ifdef GL_OES_shader_image_atomic
+#extension GL_OES_shader_image_atomic : enable
+#endif
+
+uniform layout(rgba32f) highp image2D badIm2Df; // ERROR, needs readonly or writeonly
+uniform layout(rgba8ui) highp uimage2D badIm2Du; // ERROR, needs readonly or writeonly
+uniform layout(rgba16i) highp iimage2D badIm2Di; // ERROR, needs readonly or writeonly
+
+void goodImageAtom()
+{
+ float datf;
+ int dati;
+ uint datu;
+
+ imageAtomicAdd( im2Di, P, dati);
+ imageAtomicAdd( im2Du, P, datu);
+ imageAtomicMin( im2Di, P, dati);
+ imageAtomicMin( im2Du, P, datu);
+ imageAtomicMax( im2Di, P, dati);
+ imageAtomicMax( im2Du, P, datu);
+ imageAtomicAnd( im2Di, P, dati);
+ imageAtomicAnd( im2Du, P, datu);
+ imageAtomicOr( im2Di, P, dati);
+ imageAtomicOr( im2Du, P, datu);
+ imageAtomicXor( im2Di, P, dati);
+ imageAtomicXor( im2Du, P, datu);
+ imageAtomicExchange(im2Di, P, dati);
+ imageAtomicExchange(im2Du, P, datu);
+ imageAtomicExchange(im2Df, P, datf);
+ imageAtomicCompSwap(im2Di, P, 3, dati);
+ imageAtomicCompSwap(im2Du, P, 5u, datu);
+
+ imageAtomicMax(badIm2Di, P, dati); // ERROR, not an allowed layout() on the image
+ imageAtomicMax(badIm2Du, P, datu); // ERROR, not an allowed layout() on the image
+ imageAtomicExchange(badIm2Df, P, datf); // ERROR, not an allowed layout() on the image
+}
+
+sample in vec4 colorSampInBad; // ERROR, reserved
+centroid out vec4 colorCentroidBad; // ERROR
+flat out vec4 colorBadFlat; // ERROR
+smooth out vec4 colorBadSmooth; // ERROR
+noperspective out vec4 colorBadNo; // ERROR
+flat centroid in vec2 colorfc;
+in float scalarIn;
+
+void badInterp()
+{
+ interpolateAtCentroid(colorfc); // ERROR, need extension
+ interpolateAtSample(colorfc, 1); // ERROR, need extension
+ interpolateAtOffset(colorfc, vec2(0.2)); // ERROR, need extension
+}
+
+#if defined GL_OES_shader_multisample_interpolation
+#extension GL_OES_shader_multisample_interpolation : enable
+#endif
+
+sample in vec4 colorSampIn;
+sample out vec4 colorSampleBad; // ERROR
+flat sample in vec4 colorfsi;
+sample in vec3 sampInArray[4];
+
+void interp()
+{
+ float res;
+ vec2 res2;
+ vec3 res3;
+ vec4 res4;
+
+ res2 = interpolateAtCentroid(colorfc);
+ res4 = interpolateAtCentroid(colorSampIn);
+ res4 = interpolateAtCentroid(colorfsi);
+ res = interpolateAtCentroid(scalarIn);
+ res3 = interpolateAtCentroid(sampInArray); // ERROR
+ res3 = interpolateAtCentroid(sampInArray[2]);
+ res2 = interpolateAtCentroid(sampInArray[2].xy); // ERROR
+
+ res3 = interpolateAtSample(sampInArray, 1); // ERROR
+ res3 = interpolateAtSample(sampInArray[i], 0);
+ res2 = interpolateAtSample(sampInArray[2].xy, 2); // ERROR
+ res = interpolateAtSample(scalarIn, 1);
+
+ res3 = interpolateAtOffset(sampInArray, vec2(0.2)); // ERROR
+ res3 = interpolateAtOffset(sampInArray[2], vec2(0.2));
+ res2 = interpolateAtOffset(sampInArray[2].xy, vec2(0.2)); // ERROR, no swizzle
+ res = interpolateAtOffset(scalarIn + scalarIn, vec2(0.2)); // ERROR, no binary ops other than dereference
+ res = interpolateAtOffset(scalarIn, vec2(0.2));
+
+ float f;
+ res = interpolateAtCentroid(f); // ERROR, not interpolant
+ res4 = interpolateAtSample(outp, 0); // ERROR, not interpolant
+}
+
+layout(blend_support_softlight) out; // ERROR, need extension
+
+#ifdef GL_KHR_blend_equation_advanced
+#extension GL_KHR_blend_equation_advanced : enable
+#endif
+
+layout(blend_support_multiply) out;
+layout(blend_support_screen) out;
+layout(blend_support_overlay) out;
+layout(blend_support_darken, blend_support_lighten) out;
+layout(blend_support_colordodge) layout(blend_support_colorburn) out;
+layout(blend_support_hardlight) out;
+layout(blend_support_softlight) out;
+layout(blend_support_difference) out;
+layout(blend_support_exclusion) out;
+layout(blend_support_hsl_hue) out;
+layout(blend_support_hsl_saturation) out;
+layout(blend_support_hsl_color) out;
+layout(blend_support_hsl_luminosity) out;
+layout(blend_support_all_equations) out;
+
+layout(blend_support_hsl_luminosity) out; // okay to repeat
+
+layout(blend_support_hsl_luminosity) in; // ERROR, only on "out"
+layout(blend_support_hsl_luminosity) out vec4; // ERROR, only on standalone
+layout(blend_support_hsl_luminosity) out vec4 badout; // ERROR, only on standalone
+layout(blend_support_hsl_luminosity) struct badS {int i;}; // ERROR, only on standalone
+layout(blend_support_hsl_luminosity) void blendFoo() { } // ERROR, only on standalone
+void blendFoo(layout(blend_support_hsl_luminosity) vec3 v) { } // ERROR, only on standalone
+layout(blend_support_flizbit) out; // ERROR, no flizbit
+
+out vec4 outAA[2][2]; // ERROR
diff --git a/chromium/third_party/glslang/src/Test/310.geom b/chromium/third_party/glslang/src/Test/310.geom
new file mode 100644
index 00000000000..f93bdbfa427
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/310.geom
@@ -0,0 +1,152 @@
+#version 310 es
+
+#ifdef GL_EXT_geometry_shader
+#extension GL_EXT_geometry_shader : enable
+#else
+#error no GL_EXT_geometry_shader
+#endif
+
+#ifndef GL_OES_geometry_shader
+#error no GL_OES_geometry_shader
+#endif
+
+precision mediump float;
+
+in fromVertex {
+ in vec3 color;
+} fromV[];
+
+in vec4 nonBlockUnsized[];
+
+out toFragment {
+ out vec3 color;
+} toF;
+
+out fromVertex { // okay to reuse a block name for another block name
+ vec3 color;
+};
+
+out fooB { // ERROR, cannot reuse block name as block instance
+ vec2 color;
+} fromVertex;
+
+int fromVertex; // ERROR, cannot reuse a block name for something else
+
+out fooC { // ERROR, cannot have same name for block and instance name
+ vec2 color;
+} fooC;
+
+void main()
+{
+ EmitVertex();
+ EndPrimitive();
+ EmitStreamVertex(1); // ERROR
+ EndStreamPrimitive(0); // ERROR
+
+ color = fromV[0].color;
+ gl_ClipDistance[3] = // ERROR, no ClipDistance
+ gl_in[1].gl_ClipDistance[2]; // ERROR, no ClipDistance
+ gl_Position = gl_in[0].gl_Position;
+
+ gl_PrimitiveID = gl_PrimitiveIDIn;
+ gl_Layer = 2;
+}
+
+layout(stream = 4) out vec4 ov4; // ERROR, no streams
+
+layout(line_strip, points, triangle_strip, points, triangle_strip) out; // just means triangle_strip"
+
+out ooutb { vec4 a; } ouuaa6;
+
+layout(max_vertices = 200) out;
+layout(max_vertices = 300) out; // ERROR, too big
+void foo(layout(max_vertices = 4) int a) // ERROR
+{
+ ouuaa6.a = vec4(1.0);
+}
+
+layout(line_strip, points, triangle_strip, points) out; // ERROR, changing output primitive
+layout(line_strip, points) out; // ERROR, changing output primitive
+layout(triangle_strip) in; // ERROR, not an input primitive
+layout(triangle_strip) uniform; // ERROR
+layout(triangle_strip) out vec4 badv4; // ERROR, not on a variable
+layout(triangle_strip) in vec4 bad2v4[]; // ERROR, not on a variable or input
+layout(invocations = 3) out outbn { int a; }; // 2 ERROR, not on a block, not until 4.0
+out outbn2 {
+ layout(invocations = 3) int a; // 2 ERRORs, not on a block member, not until 4.0
+ layout(max_vertices = 3) int b; // ERROR, not on a block member
+ layout(triangle_strip) int c; // ERROR, not on a block member
+} outbi;
+
+layout(lines) out; // ERROR, not on output
+layout(lines_adjacency) in;
+layout(triangles) in; // ERROR, can't change it
+layout(triangles_adjacency) in; // ERROR, can't change it
+layout(invocations = 4) in;
+
+in sameName {
+ int a15;
+} insn[];
+
+out sameName {
+ float f15;
+};
+
+uniform sameName {
+ bool b15;
+};
+
+const int summ = gl_MaxVertexAttribs +
+ gl_MaxGeometryInputComponents +
+ gl_MaxGeometryOutputComponents +
+ gl_MaxGeometryImageUniforms +
+ gl_MaxGeometryTextureImageUnits +
+ gl_MaxGeometryOutputVertices +
+ gl_MaxGeometryTotalOutputComponents +
+ gl_MaxGeometryUniformComponents +
+ gl_MaxGeometryAtomicCounters +
+ gl_MaxGeometryAtomicCounterBuffers +
+ gl_MaxVertexTextureImageUnits +
+ gl_MaxCombinedTextureImageUnits +
+ gl_MaxTextureImageUnits +
+ gl_MaxDrawBuffers;
+
+void fooe1()
+{
+ gl_ViewportIndex; // ERROR, not in ES
+ gl_MaxViewports; // ERROR, not in ES
+ insn.length(); // 4: lines_adjacency
+ int inv = gl_InvocationID;
+}
+
+in vec4 explArray[4];
+in vec4 explArrayBad[5]; // ERROR, wrong size
+in vec4 nonArrayed; // ERROR, not an array
+flat out vec3 myColor1;
+centroid out vec3 myColor2;
+centroid in vec3 centr[];
+sample out vec4 perSampleColor; // ERROR without sample extensions
+
+layout(max_vertices = 200) out; // matching redecl
+
+layout(location = 7, component = 2) in float comp[]; // ERROR, es has no component
+
+void notHere()
+{
+ gl_MaxGeometryVaryingComponents; // ERROR, not in ES
+ gl_VerticesIn; // ERROR, not in ES
+}
+
+void pointSize1()
+{
+ highp float ps = gl_in[3].gl_PointSize; // ERROR, need point_size extension
+ gl_PointSize = ps; // ERROR, need point_size extension
+}
+
+#extension GL_OES_geometry_point_size : enable
+
+void pointSize2()
+{
+ highp float ps = gl_in[3].gl_PointSize;
+ gl_PointSize = ps;
+}
diff --git a/chromium/third_party/glslang/src/Test/310.tesc b/chromium/third_party/glslang/src/Test/310.tesc
new file mode 100644
index 00000000000..f3df4b27279
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/310.tesc
@@ -0,0 +1,169 @@
+#version 310 es
+
+#extension GL_OES_tessellation_shader : enable
+
+layout(vertices = 4) out;
+out int outa[gl_out.length()];
+
+layout(quads) in; // ERROR
+layout(ccw) out; // ERROR
+layout(fractional_even_spacing) in; // ERROR
+
+patch in vec4 patchIn; // ERROR
+patch out vec4 patchOut;
+
+void main()
+{
+ barrier();
+
+ int a = gl_MaxTessControlInputComponents +
+ gl_MaxTessControlOutputComponents +
+ gl_MaxTessControlTextureImageUnits +
+ gl_MaxTessControlUniformComponents +
+ gl_MaxTessControlTotalOutputComponents;
+
+ vec4 p = gl_in[1].gl_Position;
+ float ps = gl_in[1].gl_PointSize; // ERROR, need point_size extension
+ float cd = gl_in[1].gl_ClipDistance[2]; // ERROR, not in ES
+
+ int pvi = gl_PatchVerticesIn;
+ int pid = gl_PrimitiveID;
+ int iid = gl_InvocationID;
+
+ gl_out[gl_InvocationID].gl_Position = p;
+ gl_out[gl_InvocationID].gl_PointSize = ps; // ERROR, need point_size extension
+ gl_out[gl_InvocationID].gl_ClipDistance[1] = cd; // ERROR, not in ES
+
+ gl_TessLevelOuter[3] = 3.2;
+ gl_TessLevelInner[1] = 1.3;
+
+ if (a > 10)
+ barrier(); // ERROR
+ else
+ barrier(); // ERROR
+
+ barrier();
+
+ do {
+ barrier(); // ERROR
+ } while (a > 10);
+
+ switch (a) {
+ default:
+ barrier(); // ERROR
+ break;
+ }
+ a < 12 ? a : (barrier(), a); // ERROR
+ {
+ barrier();
+ }
+
+ return;
+
+ barrier(); // ERROR
+}
+
+layout(vertices = 4) in; // ERROR, not on in
+layout(vertices = 5) out; // ERROR, changing #
+
+void foo()
+{
+ gl_out[4].gl_Position; // ERROR, out of range
+
+ barrier(); // ERROR, not in main
+}
+
+in vec2 ina; // ERROR, not array
+in vec2 inb[];
+in vec2 inc[18]; // ERROR, wrong size
+in vec2 ind[gl_MaxPatchVertices];
+patch out float implA[]; // ERROR, not sized
+
+#extension GL_ARB_separate_shader_objects : enable
+
+layout(location = 3) in vec4 ivla[];
+layout(location = 4) in vec4 ivlb[];
+layout(location = 4) in vec4 ivlc[]; // ERROR, overlapping
+
+layout(location = 3) out vec4 ovla[];
+layout(location = 4) out vec4 ovlb[];
+layout(location = 4) out vec4 ovlc[]; // ERROR, overlapping
+
+void foop()
+{
+ precise float d; // ERROR without gpu_shader5
+ d = fma(d, d, d); // ERROR without gpu_shader5
+}
+
+patch out pinbn {
+ int a;
+} pinbi;
+
+centroid out vec3 myColor2[];
+centroid in vec3 centr[];
+sample out vec4 perSampleColor[]; // ERROR without sample extensions
+
+layout(vertices = 4) out float badlay[]; // ERROR, not on a variable
+out float misSized[5]; // ERROR, size doesn't match
+out float okaySize[4];
+
+#extension GL_OES_tessellation_point_size : enable
+
+void pointSize2()
+{
+ float ps = gl_in[1].gl_PointSize;
+ gl_out[gl_InvocationID].gl_PointSize = ps;
+}
+
+#extension GL_OES_gpu_shader5 : enable
+
+precise vec3 pv3;
+
+void goodfoop()
+{
+ precise float d;
+
+ pv3 *= pv3;
+ pv3 = fma(pv3, pv3, pv3);
+ d = fma(d, d, d);
+}
+
+void bbBad()
+{
+ gl_BoundingBoxOES; // ERROR without GL_OES_primitive_bounding_box
+}
+
+#extension GL_OES_primitive_bounding_box : enable
+
+void bb()
+{
+ gl_BoundingBoxOES[0] = vec4(0.0);
+ gl_BoundingBoxOES[1] = vec4(1.0);
+ gl_BoundingBoxOES[2] = vec4(2.0); // ERROR, overflow
+}
+
+out patch badpatchBName { // ERROR, array size required
+ float f;
+} badpatchIName[];
+
+out patch patchBName {
+ float f;
+} patchIName[4];
+
+void outputtingOutparam(out int a)
+{
+ a = 2;
+}
+
+void outputting()
+{
+ outa[gl_InvocationID] = 2;
+ outa[1] = 2; // ERROR, not gl_InvocationID
+ gl_out[0].gl_Position = vec4(1.0); // ERROR, not gl_InvocationID
+ outa[1];
+ gl_out[0];
+ outputtingOutparam(outa[0]); // ERROR, not gl_InvocationID
+ outputtingOutparam(outa[gl_InvocationID]);
+ patchIName[1].f = 3.14;
+ outa[(gl_InvocationID)] = 2;
+}
diff --git a/chromium/third_party/glslang/src/Test/310.tese b/chromium/third_party/glslang/src/Test/310.tese
new file mode 100644
index 00000000000..94030127d1d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/310.tese
@@ -0,0 +1,128 @@
+#version 310 es
+
+#extension GL_EXT_tessellation_shader : enable
+#extension GL_OES_tessellation_shader : enable
+#extension GL_EXT_tessellation_shader : disable
+
+layout(vertices = 4) out; // ERROR
+layout(quads, cw) in;
+layout(triangles) in; // ERROR
+layout(isolines) in; // ERROR
+
+layout(ccw) in; // ERROR
+layout(cw) in;
+
+layout(fractional_odd_spacing) in;
+layout(equal_spacing) in; // ERROR
+layout(fractional_even_spacing) in; // ERROR
+
+layout(point_mode) in;
+
+patch in vec4 patchIn;
+patch out vec4 patchOut; // ERROR
+
+void main()
+{
+ barrier(); // ERROR
+
+ int a = gl_MaxTessEvaluationInputComponents +
+ gl_MaxTessEvaluationOutputComponents +
+ gl_MaxTessEvaluationTextureImageUnits +
+ gl_MaxTessEvaluationUniformComponents +
+ gl_MaxTessPatchComponents +
+ gl_MaxPatchVertices +
+ gl_MaxTessGenLevel;
+
+ vec4 p = gl_in[1].gl_Position;
+ float ps = gl_in[1].gl_PointSize; // ERROR, need point_size extension
+ float cd = gl_in[1].gl_ClipDistance[2]; // ERROR, not in ES
+
+ int pvi = gl_PatchVerticesIn;
+ int pid = gl_PrimitiveID;
+ vec3 tc = gl_TessCoord;
+ float tlo = gl_TessLevelOuter[3];
+ float tli = gl_TessLevelInner[1];
+
+ gl_Position = p;
+ gl_PointSize = ps; // ERROR, need point_size extension
+ gl_ClipDistance[2] = cd; // ERROR, not in ES
+}
+
+smooth patch in vec4 badp1; // ERROR
+flat patch in vec4 badp2; // ERROR
+noperspective patch in vec4 badp3; // ERROR
+patch sample in vec3 badp4; // ERROR
+
+#extension GL_ARB_separate_shader_objects : enable
+
+in gl_PerVertex // ERROR, no size
+{
+ vec4 gl_Position;
+} gl_in[];
+
+in gl_PerVertex // ERROR, second redeclaration of gl_in
+{
+ vec4 gl_Position;
+} gl_in[];
+
+layout(quads, cw) out; // ERROR
+layout(triangles) out; // ERROR
+layout(isolines) out; // ERROR
+layout(cw) out; // ERROR
+layout(fractional_odd_spacing) out; // ERROR
+layout(equal_spacing) out; // ERROR
+layout(fractional_even_spacing) out; // ERROR
+layout(point_mode) out; // ERROR
+
+in vec2 ina; // ERROR, not array
+in vec2 inb[];
+in vec2 inc[18]; // ERROR, wrong size
+in vec2 ind[gl_MaxPatchVertices];
+
+in testbla { // ERROR, not array
+ int f;
+} bla;
+
+in testblb {
+ int f;
+} blb[];
+
+in testblc { // ERROR wrong size
+ int f;
+} blc[18];
+
+in testbld {
+ int f;
+} bld[gl_MaxPatchVertices];
+
+layout(location = 23) in vec4 ivla[];
+layout(location = 24) in vec4 ivlb[];
+layout(location = 24) in vec4 ivlc[]; // ERROR, overlap
+
+layout(location = 23) out vec4 ovla[2];
+layout(location = 24) out vec4 ovlb[2]; // ERROR, overlap
+
+in float gl_TessLevelOuter[4]; // ERROR, can't redeclare
+
+patch in pinbn {
+ int a;
+} pinbi;
+
+centroid out vec3 myColor2;
+centroid in vec3 centr[];
+sample out vec4 perSampleColor; // ERROR without sample extensions
+
+#extension GL_OES_tessellation_point_size : enable
+
+void pointSize2()
+{
+ float ps = gl_in[1].gl_PointSize; // ERROR, not in the redeclaration, but no error on use of gl_PointSize
+ gl_PointSize = ps;
+}
+
+#extension GL_EXT_primitive_bounding_box : enable
+
+void bbbad()
+{
+ gl_BoundingBoxOES; // ERROR, wrong stage
+}
diff --git a/chromium/third_party/glslang/src/Test/310.vert b/chromium/third_party/glslang/src/Test/310.vert
new file mode 100644
index 00000000000..61998fd8b38
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/310.vert
@@ -0,0 +1,403 @@
+#version 310 es
+
+shared vec4 s; // ERROR
+layout(local_size_x = 2) out; // ERROR
+buffer vec4 v; // ERROR
+in int ini;
+layout(location = 2) uniform mat4 x;
+layout(location = 3) uniform mat4 y;
+layout(location = 2) out mat4 xi;
+layout(location = 3) out mat4 yi; // ERROR, locations conflict with xi
+
+void main()
+{
+ uvec2 u2;
+ u2 = uaddCarry(u2, u2, u2);
+ uint u1;
+ u1 = usubBorrow(u1, u1, u1);
+ uvec4 u4;
+ umulExtended(u4, u4, u4, u4);
+ ivec4 i4;
+ imulExtended(i4, i4, i4, i4);
+ int i1;
+ i1 = bitfieldExtract(i1, 4, 5);
+ uvec3 u3;
+ u3 = bitfieldExtract(u3, 4, 5);
+ ivec3 i3;
+ i3 = bitfieldInsert(i3, i3, 4, 5);
+ u1 = bitfieldInsert(u1, u1, 4, 5);
+ ivec2 i2;
+ i2 = bitfieldReverse(i2);
+ u4 = bitfieldReverse(u4);
+ i1 = bitCount(i1);
+ i3 = bitCount(u3);
+ i2 = findLSB(i2);
+ i4 = findLSB(u4);
+ i1 = findMSB(i1);
+ i2 = findMSB(u2);
+
+ vec3 v3;
+ v3 = frexp(v3, i3);
+ vec2 v2;
+ v2 = ldexp(v2, i2);
+
+ mediump vec4 v4;
+ u1 = packUnorm4x8(v4);
+ u1 = packSnorm4x8(v4);
+ v4 = unpackUnorm4x8(u1);
+ v4 = unpackSnorm4x8(u1);
+}
+
+precision highp sampler2DMS;
+precision highp isampler2DMS;
+precision highp usampler2DMS;
+
+uniform sampler2DMS s2dms;
+uniform isampler2DMS is2dms;
+uniform usampler2DMS us2dms;
+uniform usampler2DMSArray us2dmsa; // ERROR
+
+void foo()
+{
+ ivec2 v2;
+ v2 = textureSize(s2dms);
+ v2 = textureSize(us2dms);
+ vec4 v4 = texelFetch(s2dms, v2, 2);
+ ivec4 iv4 = texelFetch(is2dms, v2, 2);
+ textureSamples(s2dms); // ERROR
+ float f;
+ frexp(f, ini); // ERROR, i not writable
+}
+
+out bool outb; // ERROR
+out sampler2D outo; // ERROR
+out float outa[4];
+out float outaa[4][2]; // ERROR
+struct S { float f; };
+out S outs;
+out S[4] outasa; // ERROR
+out S outsa[4]; // ERROR
+struct SA { float f[4]; };
+out SA outSA; // ERROR
+struct SS { float f; S s; };
+out SS outSS; // ERROR
+
+layout(std430) uniform U430 { int a; } U430i; // ERROR
+layout(std430) buffer B430 { int a; } B430i;
+
+#ifndef GL_OES_shader_io_blocks
+#error GL_OES_shader_io_blocks not defined
+#endif
+
+#extension GL_OES_shader_io_blocks : enable
+
+out outbname {
+ int a;
+ out vec4 v;
+ highp sampler2D s; // ERROR, opaque type
+} outbinst;
+
+out outbname2 {
+ layout(location = 12) int aAnon;
+ layout(location = 13) vec4 vAnon;
+};
+
+layout(location = 12) out highp int aliased; // ERROR, aliasing location
+
+in inbname { int a; } inbinst; // ERROR, no in block in vertex shader
+
+out gl_PerVertex { // ERROR, has extra member
+ highp vec4 gl_Position;
+ highp vec4 t;
+};
+
+void foo_IO()
+{
+ int sum = gl_VertexID +
+ gl_InstanceID;
+ gl_Position = vec4(1.0);
+ gl_PointSize = 2.0; // ERROR, removed by redeclaration
+}
+
+out gl_PerVertex { // ERROR, already used and already redeclared
+ highp vec4 gl_Position;
+ highp vec4 t;
+};
+
+smooth out smo { // ERROR, no smooth on a block
+ int i;
+} smon;
+
+flat out fmo { // ERROR, no flat on a block
+ int i;
+} fmon;
+
+centroid out cmo { // ERROR, no centroid on a block
+ int i;
+} cmon;
+
+invariant out imo { // ERROR, no invariant on a block
+ int i;
+} imon;
+
+in vec2 inf, ing;
+uniform ivec2 offsets[4];
+uniform sampler2D sArray[4];
+uniform int sIndex;
+layout(binding = 0) uniform atomic_uint auArray[2];
+uniform ubName { int i; } ubInst[4];
+buffer bbName { int i; } bbInst[4];
+uniform writeonly image2D iArray[5];
+const ivec2 constOffsets[4] = ivec2[4](ivec2(0.1), ivec2(0.2), ivec2(0.3), ivec2(0.4));
+
+void pfooBad()
+{
+ precise vec2 h; // ERROR reserved
+ h = fma(inf, ing, h); // ERROR, not available
+ sArray[sIndex + 1]; // ERRRO, not supported
+ auArray[sIndex + 1];
+ ubInst[1];
+ bbInst[2];
+ ubInst[sIndex + 1]; // ERRRO, not supported
+ bbInst[sIndex]; // ERRRO, not supported
+ iArray[2];
+ iArray[sIndex * 2]; // ERRRO, not supported
+ textureGatherOffset(sArray[0], vec2(0.1), ivec2(inf)); // ERROR, offset not constant
+ textureGatherOffsets(sArray[0], vec2(0.1), constOffsets); // ERROR, not available
+}
+
+#extension GL_OES_gpu_shader5 : enable
+
+void pfoo()
+{
+ precise vec2 h;
+ h = fma(inf, ing, h);
+ sArray[sIndex + 1];
+ ubInst[sIndex + 1];
+ bbInst[sIndex - 2]; // ERROR, still not supported
+ iArray[2];
+ iArray[sIndex - 2];
+ textureGatherOffset(sArray[0], vec2(0.1), ivec2(inf));
+ textureGatherOffsets(sArray[0], vec2(0.1), constOffsets);
+ textureGatherOffsets(sArray[0], vec2(0.1), offsets); // ERROR, offset not constant
+}
+
+uniform samplerBuffer badSamp1; // ERROR, reserved
+uniform isamplerBuffer badSamp2; // ERROR, reserved
+uniform usamplerBuffer badSamp3; // ERROR, reserved
+uniform writeonly imageBuffer badSamp4; // ERROR, reserved
+uniform writeonly iimageBuffer badSamp5; // ERROR, reserved
+uniform writeonly uimageBuffer badSamp6; // ERROR, reserved
+
+#extension GL_OES_texture_buffer : enable
+#extension GL_EXT_texture_buffer : enable
+
+uniform samplerBuffer noPreSamp1; // ERROR, no default precision
+uniform isamplerBuffer noPreSamp2; // ERROR, no default precision
+uniform usamplerBuffer noPreSamp3; // ERROR, no default precision
+uniform writeonly imageBuffer noPreSamp4; // ERROR, no default precision
+uniform writeonly iimageBuffer noPreSamp5; // ERROR, no default precision
+uniform writeonly uimageBuffer noPreSamp6; // ERROR, no default precision
+
+precision highp samplerBuffer;
+precision highp isamplerBuffer;
+precision highp usamplerBuffer;
+precision highp imageBuffer;
+precision highp iimageBuffer;
+precision highp uimageBuffer;
+
+#ifdef GL_OES_texture_buffer
+uniform samplerBuffer bufSamp1;
+uniform isamplerBuffer bufSamp2;
+uniform usamplerBuffer bufSamp3;
+#endif
+#ifdef GL_EXT_texture_buffer
+uniform writeonly imageBuffer bufSamp4;
+uniform writeonly iimageBuffer bufSamp5;
+uniform writeonly uimageBuffer bufSamp6;
+#endif
+
+void bufferT()
+{
+ highp int s1 = textureSize(bufSamp1);
+ highp int s2 = textureSize(bufSamp2);
+ highp int s3 = textureSize(bufSamp3);
+
+ highp int s4 = imageSize(bufSamp4);
+ highp int s5 = imageSize(bufSamp5);
+ highp int s6 = imageSize(bufSamp6);
+
+ highp vec4 f1 = texelFetch(bufSamp1, s1);
+ highp ivec4 f2 = texelFetch(bufSamp2, s2);
+ highp uvec4 f3 = texelFetch(bufSamp3, s3);
+}
+
+uniform writeonly imageCubeArray badCA1; // ERROR, reserved
+uniform writeonly iimageCubeArray badCA2; // ERROR, reserved
+uniform writeonly uimageCubeArray badCA3; // ERROR, reserved
+
+uniform samplerCubeArray badCA4; // ERROR, reserved
+uniform samplerCubeArrayShadow badCA5; // ERROR, reserved
+uniform isamplerCubeArray badCA6; // ERROR, reserved
+uniform usamplerCubeArray badCA7; // ERROR, reserved
+
+#extension GL_OES_texture_cube_map_array : enable
+
+uniform writeonly imageCubeArray noPreCA1; // ERROR, no default precision
+uniform writeonly iimageCubeArray noPreCA2; // ERROR, no default precision
+uniform writeonly uimageCubeArray noPreCA3; // ERROR, no default precision
+
+uniform samplerCubeArray noPreCA4; // ERROR, no default precision
+uniform samplerCubeArrayShadow noPreCA5; // ERROR, no default precision
+uniform isamplerCubeArray noPreCA6; // ERROR, no default precision
+uniform usamplerCubeArray noPreCA7; // ERROR, no default precision
+
+precision highp imageCubeArray ;
+precision highp iimageCubeArray ;
+precision highp uimageCubeArray ;
+
+precision highp samplerCubeArray ;
+precision highp samplerCubeArrayShadow;
+precision highp isamplerCubeArray ;
+precision highp usamplerCubeArray ;
+
+uniform writeonly imageCubeArray CA1;
+uniform writeonly iimageCubeArray CA2;
+uniform writeonly uimageCubeArray CA3;
+
+layout(rgba16f) uniform readonly imageCubeArray rCA1;
+layout(rgba32i) uniform readonly iimageCubeArray rCA2;
+layout(r32ui) uniform readonly uimageCubeArray rCA3;
+
+#ifdef GL_OES_texture_cube_map_array
+uniform samplerCubeArray CA4;
+uniform samplerCubeArrayShadow CA5;
+uniform isamplerCubeArray CA6;
+uniform usamplerCubeArray CA7;
+#endif
+
+void CAT()
+{
+ highp ivec3 s4 = textureSize(CA4, 1);
+ highp ivec3 s5 = textureSize(CA5, 1);
+ highp ivec3 s6 = textureSize(CA6, 1);
+ highp ivec3 s7 = textureSize(CA7, 1);
+
+ highp vec4 t4 = texture(CA4, vec4(0.5));
+ highp float t5 = texture(CA5, vec4(0.5), 3.0);
+ highp ivec4 t6 = texture(CA6, vec4(0.5));
+ highp uvec4 t7 = texture(CA7, vec4(0.5));
+
+ highp vec4 L4 = textureLod(CA4, vec4(0.5), 0.24);
+ highp ivec4 L6 = textureLod(CA6, vec4(0.5), 0.26);
+ highp uvec4 L7 = textureLod(CA7, vec4(0.5), 0.27);
+
+ highp vec4 g4 = textureGrad(CA4, vec4(0.5), vec3(0.1), vec3(0.2));
+ highp ivec4 g6 = textureGrad(CA6, vec4(0.5), vec3(0.1), vec3(0.2));
+ highp uvec4 g7 = textureGrad(CA7, vec4(0.5), vec3(0.1), vec3(0.2));
+
+ highp vec4 gath4 = textureGather(CA4, vec4(0.5));
+ highp vec4 gathC4 = textureGather(CA4, vec4(0.5), 2);
+ highp ivec4 gath6 = textureGather(CA6, vec4(0.5));
+ highp ivec4 gathC6 = textureGather(CA6, vec4(0.5), 1);
+ highp uvec4 gath7 = textureGather(CA7, vec4(0.5));
+ highp uvec4 gathC7 = textureGather(CA7, vec4(0.5), 0);
+
+ highp vec4 gath5 = textureGather(CA5, vec4(0.5), 2.5);
+
+ highp ivec3 s1 = imageSize(CA1);
+ highp ivec3 s2 = imageSize(CA2);
+ highp ivec3 s3 = imageSize(CA3);
+
+ imageStore(CA1, s3, vec4(1));
+ imageStore(CA2, s3, ivec4(1));
+ imageStore(CA3, s3, uvec4(1));
+
+ highp vec4 cl1 = imageLoad(rCA1, s3);
+ highp ivec4 cl2 = imageLoad(rCA2, s3);
+ highp uvec4 cl3 = imageLoad(rCA3, s3);
+}
+
+uniform sampler2DMSArray bad2DMS; // ERROR, reserved
+uniform isampler2DMSArray bad2DMSi; // ERROR, reserved
+uniform usampler2DMSArray bad2DMSu; // ERROR, reserved
+
+#extension GL_OES_texture_storage_multisample_2d_array : enable
+
+#ifdef GL_OES_texture_storage_multisample_2d_array
+
+uniform sampler2DMSArray noPrec2DMS; // ERROR, no default
+uniform isampler2DMSArray noPrec2DMSi; // ERROR, no default
+uniform usampler2DMSArray noPrec2DMSu; // ERROR, no default
+
+#endif
+
+precision highp sampler2DMSArray;
+precision highp isampler2DMSArray;
+precision highp usampler2DMSArray;
+
+uniform sampler2DMSArray samp2DMSA;
+uniform isampler2DMSArray samp2DMSAi;
+uniform usampler2DMSArray samp2DMSAu;
+
+void MSA()
+{
+ vec4 tf = texelFetch(samp2DMSA, ivec3(5), 2);
+ ivec4 tfi = texelFetch(samp2DMSAi, ivec3(5), 2);
+ uvec4 tfu = texelFetch(samp2DMSAu, ivec3(5), 2);
+
+ ivec3 tfs = textureSize(samp2DMSA);
+ ivec3 tfsi = textureSize(samp2DMSAi);
+ ivec3 tfsb = textureSize(samp2DMSAi, 4); // ERROR, no lod
+ ivec3 tfsu = textureSize(samp2DMSAu);
+}
+
+#ifdef GL_OES_shader_image_atomic
+#extension GL_OES_shader_image_atomic : enable
+#endif
+
+uniform layout(r32f) highp image2D im2Df;
+uniform layout(r32ui) highp uimage2D im2Du;
+uniform layout(r32i) highp iimage2D im2Di;
+uniform ivec2 P;
+
+void goodImageAtom()
+{
+ float datf;
+ int dati;
+ uint datu;
+
+ imageAtomicAdd( im2Di, P, dati);
+ imageAtomicAdd( im2Du, P, datu);
+ imageAtomicMin( im2Di, P, dati);
+ imageAtomicMin( im2Du, P, datu);
+ imageAtomicMax( im2Di, P, dati);
+ imageAtomicMax( im2Du, P, datu);
+ imageAtomicAnd( im2Di, P, dati);
+ imageAtomicAnd( im2Du, P, datu);
+ imageAtomicOr( im2Di, P, dati);
+ imageAtomicOr( im2Du, P, datu);
+ imageAtomicXor( im2Di, P, dati);
+ imageAtomicXor( im2Du, P, datu);
+ imageAtomicExchange(im2Di, P, dati);
+ imageAtomicExchange(im2Du, P, datu);
+ imageAtomicExchange(im2Df, P, datf);
+ imageAtomicCompSwap(im2Di, P, 3, dati);
+ imageAtomicCompSwap(im2Du, P, 5u, datu);
+}
+
+sample out vec4 colorSampInBad; // ERROR, reserved
+
+#extension GL_OES_shader_multisample_interpolation : enable
+
+sample out vec4 colorSample;
+flat sample out vec4 colorfsi;
+sample out vec3 sampInArray[4];
+in vec4 inv4;
+
+void badInterp()
+{
+ interpolateAtCentroid(inv4); // ERROR, wrong stage
+ interpolateAtSample(inv4, 1); // ERROR, need extension
+ interpolateAtOffset(inv4, vec2(0.2)); // ERROR, need extension
+}
diff --git a/chromium/third_party/glslang/src/Test/310AofA.vert b/chromium/third_party/glslang/src/Test/310AofA.vert
new file mode 100644
index 00000000000..7e4da1dcae5
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/310AofA.vert
@@ -0,0 +1,115 @@
+#version 310 es
+
+// Check name mangling of functions with parameters that are multi-dimensional arrays.
+
+#define NX 2
+#define NY 3
+#define NZ 4
+void f(bool a, float b, uint[4] c, int[NY][NX] d) {
+}
+
+void main() {
+ int[NY][NX] d;
+ f(false, 12.1, uint[NZ](uint(0),uint(1),uint(1),uint(2)), d);
+}
+
+buffer b {
+ float u[]; // ERROR
+ vec4 v[];
+} name[3];
+
+uniform ub {
+ float u;
+ vec4 v[]; // ERROR
+} uname[3];
+
+buffer b2 {
+ float u;
+ vec4 v[][]; // ERROR
+} name2[3];
+
+buffer b3 {
+ float u;
+ vec4 v[][7];
+} name3[3];
+
+// General arrays of arrays
+
+float[4][5][6] many[1][2][3];
+
+float gu[][7]; // ERROR, size required
+float g4[4][7];
+float g5[5][7];
+
+float[4][7] foo(float a[5][7])
+{
+ float r[7];
+ r = a[2];
+ float[](a[0], a[1], r, a[3]); // ERROR, too few dims
+ float[4][7][4](a[0], a[1], r, a[3]); // ERROR, too many dims
+ return float[4][7](a[0], a[1], r, a[3]);
+ return float[][](a[0], a[1], r, a[3]);
+ return float[][7](a[0], a[1], a[2], a[3]);
+}
+
+void bar(float[5][7]) {}
+
+void foo2()
+{
+ {
+ float gu[3][4][2];
+
+ gu[2][4][1] = 4.0; // ERROR, overflow
+ }
+ vec4 ca4[3][2] = vec4[][](vec4[2](vec4(0.0), vec4(1.0)),
+ vec4[2](vec4(0.0), vec4(1.0)),
+ vec4[2](vec4(0.0), vec4(1.0)));
+ vec4 caim[][2] = vec4[][](vec4[2](vec4(4.0), vec4(2.0)),
+ vec4[2](vec4(4.0), vec4(2.0)),
+ vec4[2](vec4(4.0), vec4(2.0)));
+ vec4 caim2[][] = vec4[][](vec4[2](vec4(4.0), vec4(2.0)),
+ vec4[2](vec4(4.0), vec4(2.0)),
+ vec4[2](vec4(4.0), vec4(2.0)));
+ vec4 caim3[3][] = vec4[][](vec4[2](vec4(4.0), vec4(2.0)),
+ vec4[2](vec4(4.0), vec4(2.0)),
+ vec4[2](vec4(4.0), vec4(2.0)));
+
+ g4 = foo(g5);
+ g5 = g4; // ERROR, wrong types
+ gu = g4; // ERROR, not yet sized
+
+ foo(gu); // ERROR, not yet sized
+ bar(g5);
+
+ if (foo(g5) == g4)
+ ;
+ if (foo(g5) == g5) // ERROR, different types
+ ;
+
+ float u[5][7];
+ u[5][2] = 5.0; // ERROR
+ foo(u);
+
+ vec4 badAss[3];
+ name[1].v[-1]; // ERROR
+ name[1].v[1] = vec4(4.3);
+ name[1].v = badAss; // ERROR, bad assignemnt
+
+ name3[0].v[1].length(); // 7
+ name3[0].v.length(); // run time
+}
+
+struct badS {
+ int sa[]; // ERROR
+ int a[][]; // ERROR
+ int b[][2]; // ERROR
+ int c[2][]; // ERROR
+ int d[][4]; // ERROR
+};
+
+in float inArray[2][3]; // ERROR
+out float outArray[2][3]; // ERROR
+
+uniform ubaa {
+ int a;
+} ubaaname[2][3]; // ERROR
diff --git a/chromium/third_party/glslang/src/Test/310implicitSizeArrayError.vert b/chromium/third_party/glslang/src/Test/310implicitSizeArrayError.vert
new file mode 100644
index 00000000000..f9a3461a367
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/310implicitSizeArrayError.vert
@@ -0,0 +1,8 @@
+#version 310 es
+layout (location=0) uniform Block {
+ highp int a[];
+} uni;
+layout (location=0) out highp int o;
+void main() {
+ o = uni.a[2];
+}
diff --git a/chromium/third_party/glslang/src/Test/330.frag b/chromium/third_party/glslang/src/Test/330.frag
new file mode 100644
index 00000000000..8b0cb25f545
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/330.frag
@@ -0,0 +1,152 @@
+#version 330 compatibility
+
+in vec4 inVar;
+layout(location=0, index=0) out vec4 outVar;
+
+varying vec4 varyingVar;
+
+void main()
+{
+ gl_FragColor = varyingVar; // link ERROR: user output was used
+ gl_FragData[1] = inVar; // link ERROR: user output was used
+ int buffer = 4;
+}
+
+#extension GL_ARB_separate_shader_objects : enable
+
+in gl_PerFragment {
+ vec4 gl_Color;
+};
+
+void foo()
+{
+ vec4 c = gl_Color;
+ outVar = inVar;
+}
+
+in gl_block { // ERROR
+ int gl_i;
+} gl_name;
+
+in myBlock {
+ int gl_i; // ERROR
+} gl_name; // ERROR
+
+in gl_PerVertex { // ERROR
+ vec4 gl_FragCoord;
+} gl_in[];
+
+in gl_PerVertex { // ERROR
+ vec4 gl_FragCoord;
+}; // ERROR
+
+const int start = 6;
+layout(location = -2) in vec4 v1; // ERROR
+layout(location = start + 2) in vec4 v2; // ERROR
+layout(location = 4.7e10) in vec4 v20; // ERROR
+layout(location = +60) in float v21; // ERROR
+layout(location = (2)) in float v22; // ERROR
+
+struct S {
+ float f1;
+ layout(location = 3) float f2; // ERROR
+};
+
+layout(location = 1) in inblock { // ERROR
+ float f1;
+ layout(location = 3) float f2; // ERROR
+};
+
+layout(location = 1) uniform ublock { // ERROR
+ float f1;
+ layout(location = 3) float f2; // ERROR
+} uinst;
+
+#extension GL_ARB_enhanced_layouts : enable
+
+layout(location = start) in vec4 v3;
+layout(location = -2) in vec4 v4; // ERROR
+layout(location = -start) in vec4 v5; // ERROR
+layout(location = start*start - 2 - 4) in vec4 v6;
+layout(location = +61) in float v23;
+layout(location = (62)) in float v24;
+
+struct S2 {
+ float f1;
+ layout(location = 3) float f2; // ERROR
+};
+
+layout(location = 28) in inblock2 {
+ bool b1;
+ float f1;
+ layout(location = 25) float f2;
+ vec4 f3;
+ layout(location = 21) S2 s2;
+ vec4 f4;
+ vec4 f5;
+} ininst2;
+
+layout(location = 13) uniform ublock2 { // ERROR
+ float f1;
+ layout(location = 3) float f2; // ERROR
+} uinst2;
+
+in inblock3 { // ERROR, mix of location internal with no location external
+ float f1;
+ layout(location = 40) float f2;
+} in3;
+
+in ublock4 {
+ layout(location = 50) float f1;
+ layout(location = 51) float f2;
+} in4;
+
+layout(location = 33) in struct SS {
+ vec3 a; // gets location 33
+ mat2 b; // gets locations 34 and 35
+ vec4 c[2]; // gets locations 36 and 37
+ layout (location = 38) vec2 A; // ERROR, can't use on struct member
+} s;
+
+layout(location = 44) in block {
+ vec4 d; // gets location 44
+ vec4 e; // gets location 45
+ layout(location = 47) vec4 f; // gets location 47
+ vec4 g; // gets location 48
+ layout (location = 41) vec4 h; // gets location 41
+ vec4 i; // gets location 42
+ vec4 j; // gets location 43
+ vec4 k; // ERROR, location 44 already used
+};
+
+layout(index=0) out vec4 outVar2; // ERROR: missing explicit location
+layout(location=0, index=1) out vec4 outVar3; // no error even though location is overlapping
+layout(location=0, index=1) out vec4 outVar4; // ERROR overlapping
+layout(location=27, index=0) in vec4 indexIn; // ERROR, not on in
+layout(location=0, index=0) in; // ERROR, not just on in
+layout(location=0, index=0) out; // ERROR, need a variable
+layout(location=26, index=0) out indexBlock { int a; } indexBlockI; // ERROR, not on a block
+
+uniform sampler1D samp1D;
+uniform sampler2DShadow samp2Ds;
+
+void qlod()
+{
+ vec2 lod;
+ float pf;
+ vec2 pf2;
+ vec3 pf3;
+
+ lod = textureQueryLod(samp1D, pf); // ERROR, not until 400
+ lod = textureQueryLod(samp2Ds, pf2); // ERROR, not until 400
+}
+
+int precise; // okay, not a keyword yet
+struct SKeyMem { int precise; } KeyMem; // okay, not a keyword yet
+
+void fooKeyMem()
+{
+ KeyMem.precise;
+}
+
+layout(location=28, index=2) out vec4 outIndex2; // ERROR index out of range \ No newline at end of file
diff --git a/chromium/third_party/glslang/src/Test/330comp.frag b/chromium/third_party/glslang/src/Test/330comp.frag
new file mode 100644
index 00000000000..50b037da66a
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/330comp.frag
@@ -0,0 +1,12 @@
+#version 330 compatibility
+
+in vec4 inVar;
+out vec4 outVar;
+
+varying vec4 varyingVar;
+
+void main()
+{
+ gl_FragColor = varyingVar;
+ gl_FragData[1] = inVar * gl_ModelViewMatrix;
+}
diff --git a/chromium/third_party/glslang/src/Test/400.frag b/chromium/third_party/glslang/src/Test/400.frag
new file mode 100644
index 00000000000..ed8882c5b90
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/400.frag
@@ -0,0 +1,197 @@
+#version 400 core
+
+in vec2 c2D;
+flat in int i;
+out vec4 outp;
+uniform sampler2D arrayedSampler[5];
+uniform usampler2DRect samp2dr;
+uniform isampler2DArray isamp2DA;
+
+void main()
+{
+ vec4 v;
+ v = texture(arrayedSampler[i], c2D);
+ outp.x = gl_ClipDistance[1];
+
+ ivec2 offsets[4];
+ const ivec2 constOffsets[4] = ivec2[4](ivec2(1,2), ivec2(3,4), ivec2(15,16), ivec2(-2,0));
+ uvec4 uv4 = textureGatherOffsets(samp2dr, c2D, offsets, 2); // ERROR, offsets not constant
+ uv4 = textureGatherOffsets(samp2dr, c2D, constOffsets, 2);
+ vec4 v4 = textureGather(arrayedSampler[0], c2D);
+ ivec4 iv4 = textureGatherOffset(isamp2DA, vec3(0.1), ivec2(1), 3);
+ iv4 = textureGatherOffset(isamp2DA, vec3(0.1), ivec2(1), i); // ERROR, last argument not const
+ iv4 = textureGatherOffset(isamp2DA, vec3(0.1), ivec2(1), 4); // ERROR, last argument out of range
+ iv4 = textureGatherOffset(isamp2DA, vec3(0.1), ivec2(1), 1+2);
+ iv4 = textureGatherOffset(isamp2DA, vec3(0.1), ivec2(i));
+
+ vec4 c = gl_FragCoord;
+}
+
+layout(location = 4) in vec4 vl; // ERROR, not supported
+
+#ifdef GL_ARB_separate_shader_objects
+#extension GL_ARB_separate_shader_objects : enable
+#endif
+
+layout(location = 6) in vec4 vl2;
+
+layout(location = 3) uniform vec3 uv3;
+
+layout(location = 5) in vec4 gl_Color; // ERROR, layout
+noperspective in float gl_ClipDistance[4]; // ERROR, can't change qualifier
+
+layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord; // ERROR, declared after use
+
+uniform sampler2DRectShadow u2drs;
+
+void foo23()
+{
+ const ivec2[3] offsets = ivec2[3](ivec2(1,2), ivec2(3,4), ivec2(15,16));
+
+ textureProjGradOffset(u2drs, outp, vec2(0.0), vec2(0.0), ivec2(c2D)); // ERROR, offset not constant
+ textureProjGradOffset(u2drs, outp, vec2(0.0), vec2(0.0), offsets[1]);
+ textureProjGradOffset(u2drs, outp, vec2(0.0), vec2(0.0), offsets[2]); // ERROR, offset out of range
+ textureProjGradOffset(u2drs, outp, vec2(0.0), vec2(0.0), ivec2(-10, 20)); // ERROR, offset out of range
+}
+
+patch in vec4 patchIn; // ERROR
+patch out vec4 patchOut; // ERROR
+
+void foo24()
+{
+ dvec3 df, di;
+ df = modf(dvec3(outp.xyz), di);
+}
+
+in float in1;
+in vec2 in2;
+in vec3 in3;
+in vec4 in4;
+
+void foodc1()
+{
+ vec2 v2 = dFdxFine(in2); // ERROR
+ vec3 v3 = dFdyCoarse(in3); // ERROR
+ vec4 v4 = fwidthCoarse(in4) + fwidthFine(in4); // ERROR
+}
+
+#extension GL_ARB_derivative_control : enable
+
+void foodc2()
+{
+ vec2 v2 = dFdxFine(in2);
+ vec3 v3 = dFdyCoarse(in3);
+ vec4 v4 = fwidthCoarse(in4) + fwidthFine(in4);
+
+ uint u1;
+ ivec3 i3;
+ ivec2 i2;
+ v2 = frexp(v2, i2);
+ v3 = ldexp(v3, i3);
+
+ u1 = packUnorm4x8(v4);
+ u1 = packSnorm4x8(v4);
+ v4 = unpackUnorm4x8(u1);
+ v4 = unpackSnorm4x8(u1);
+
+ double d;
+ uvec2 u2;
+ d = packDouble2x32(u2);
+ u2 = unpackDouble2x32(d);
+}
+
+sample in vec4 colorSampIn;
+sample out vec4 colorSampleBad; // ERROR
+noperspective in vec4 colorfsi;
+sample in vec3 sampInArray[4];
+smooth in float scalarIn;
+flat centroid in vec2 colorfc;
+
+struct S {
+ float x;
+};
+
+in S s1;
+sample S s2;
+
+void interp()
+{
+ interpolateAtCentroid(colorfc);
+ interpolateAtCentroid(colorSampIn);
+ interpolateAtCentroid(colorfsi);
+ interpolateAtCentroid(scalarIn);
+ interpolateAtCentroid(sampInArray); // ERROR
+ interpolateAtCentroid(sampInArray[2]);
+ interpolateAtCentroid(sampInArray[2].xy); // ERROR
+
+ interpolateAtSample(sampInArray, 1); // ERROR
+ interpolateAtSample(sampInArray[i], 0);
+ interpolateAtSample(s1.x, 2);
+ interpolateAtSample(scalarIn, 1);
+
+ interpolateAtOffset(sampInArray, vec2(0.2)); // ERROR
+ interpolateAtOffset(sampInArray[2], vec2(0.2));
+ interpolateAtOffset(sampInArray[2].xy, vec2(0.2)); // ERROR, no swizzle
+ interpolateAtOffset(scalarIn + scalarIn, vec2(0.2)); // ERROR, no binary ops other than dereference
+ interpolateAtOffset(s2.x, vec2(0.2)); // ERROR
+
+ float f;
+ interpolateAtCentroid(f); // ERROR, not interpolant
+ interpolateAtSample(outp, 0); // ERROR, not interpolant
+}
+
+uniform sampler1D samp1D;
+uniform isampler2D isamp2D;
+uniform usampler3D usamp3D;
+uniform samplerCube sampCube;
+uniform isampler1DArray isamp1DA;
+uniform usampler2DArray usamp2DA;
+uniform isamplerCubeArray isampCubeA;
+
+uniform sampler1DShadow samp1Ds;
+uniform sampler2DShadow samp2Ds;
+uniform samplerCubeShadow sampCubes;
+uniform sampler1DArrayShadow samp1DAs;
+uniform sampler2DArrayShadow samp2DAs;
+uniform samplerCubeArrayShadow sampCubeAs;
+
+uniform samplerBuffer sampBuf;
+uniform sampler2DRect sampRect;
+
+void qlod()
+{
+ vec2 lod;
+ float pf;
+ vec2 pf2;
+ vec3 pf3;
+
+ lod = textureQueryLod(samp1D, pf);
+ lod = textureQueryLod(isamp2D, pf2);
+ lod = textureQueryLod(usamp3D, pf3);
+ lod = textureQueryLod(sampCube, pf3);
+ lod = textureQueryLod(isamp1DA, pf);
+ lod = textureQueryLod(usamp2DA, pf2);
+ lod = textureQueryLod(isampCubeA, pf3);
+
+ lod = textureQueryLod(samp1Ds, pf);
+ lod = textureQueryLod(samp2Ds, pf2);
+ lod = textureQueryLod(sampCubes, pf3);
+ lod = textureQueryLod(samp1DAs, pf);
+ lod = textureQueryLod(samp2DAs, pf2);
+ lod = textureQueryLod(sampCubeAs, pf3);
+
+ lod = textureQueryLod(sampBuf, pf); // ERROR
+ lod = textureQueryLod(sampRect, pf2); // ERROR
+}
+
+struct SKeyMem { int precise; } KeyMem; // ERROR, keyword can't be a member
+
+uniform uint uu;
+out int iout;
+
+void bitwiseConv()
+{
+ iout = uu & i;
+ iout += uu ^ i;
+ iout += i | uu;
+}
diff --git a/chromium/third_party/glslang/src/Test/400.geom b/chromium/third_party/glslang/src/Test/400.geom
new file mode 100644
index 00000000000..752e0d60b8d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/400.geom
@@ -0,0 +1,330 @@
+#version 400 core
+
+void main()
+{
+ EmitStreamVertex(1);
+ EndStreamPrimitive(0);
+ EmitVertex();
+ EndPrimitive();
+ int id = gl_InvocationID;
+}
+
+layout(invocations = 4) in outbn { int a; } bn[]; // ERROR, not on a block
+layout(max_vertices = 127) out;
+layout(invocations = 4) in;
+
+#extension GL_ARB_separate_shader_objects : enable
+
+in gl_PerVertex { // testing input arrays with a block redeclaration, see 420.geom for without
+ vec4 gl_Position;
+ layout(std140, location = 3) patch float gl_PointSize; // ERRORs...
+} gl_in[];
+
+void foo()
+{
+ gl_in.length(); // ERROR
+ gl_in[1].gl_Position;
+}
+
+in vec4 color[];
+in vec4 color2[];
+in vec4 colorS[3];
+in vec4 colorBad[4];
+
+void foo2()
+{
+ color.length(); // ERROR
+ colorS.length();
+}
+
+layout(triangles) in; // give ERROR just for colorBad
+
+in vec4 color[3];
+in vec4 color2[3];
+in vec4 colorbad2[2]; // ERROR
+
+void foo3()
+{
+ gl_in.length();
+ color.length();
+ color2.length();
+ colorS.length();
+}
+
+layout(location = 4) in vec4 cva[3];
+layout(location = 5) in vec4 cvb[3];
+layout(location = 2) in mat3 cmc[3]; // ERROR, collision
+
+patch in vec4 patchIn[]; // ERROR
+patch out vec4 patchOut; // ERROR
+
+in float scalar; // ERROR, no array
+
+layout(max_vertices = 127, invocations = 4) out; // ERROR
+layout(invocations = 4, max_vertices = 127) in; // ERROR
+layout(max_vertices = 127, invocations = 4) uniform; // 2 ERRORs
+
+in inblockscalar {
+ int a;
+} inbls; // ERROR, not an array
+
+in inblocka {
+ int a;
+} inbla[17]; // ERROR, wrong array size
+
+void bits()
+{
+ uvec2 u2;
+ u2 = uaddCarry(u2, u2, u2);
+ uint u1;
+ u1 = usubBorrow(u1, u1, u1);
+ uvec4 u4;
+ umulExtended(u4, u4, u4, u4);
+ ivec4 i4;
+ imulExtended(i4, i4, i4, i4);
+ int i1;
+ i1 = bitfieldExtract(i1, 4, 5);
+ uvec3 u3;
+ u3 = bitfieldExtract(u3, 4, 5);
+ ivec3 i3;
+ i3 = bitfieldInsert(i3, i3, 4, 5);
+ u1 = bitfieldInsert(u1, u1, 4, 5);
+ ivec2 i2;
+ i2 = bitfieldReverse(i2);
+ u4 = bitfieldReverse(u4);
+ i1 = bitCount(i1);
+ i3 = bitCount(u3);
+ i2 = findLSB(i2);
+ i4 = findLSB(u4);
+ i1 = findMSB(i1);
+ i2 = findMSB(u2);
+}
+
+layout(location = 7, index = 1) out vec4 indexedOut;
+
+uniform sampler1D samp1D;
+uniform sampler2DShadow samp2Ds;
+
+void qlod()
+{
+ vec2 lod;
+ float pf;
+ vec2 pf2;
+ vec3 pf3;
+
+ lod = textureQueryLod(samp1D, pf); // ERROR, only in fragment
+ lod = textureQueryLod(samp2Ds, pf2); // ERROR, only in fragment
+}
+
+void doubles()
+{
+ double doublev;
+ dvec2 dvec2v;
+ dvec3 dvec3v;
+ dvec4 dvec4v;
+
+ bool boolv;
+ bvec2 bvec2v;
+ bvec3 bvec3v;
+ bvec4 bvec4v;
+
+ doublev = sqrt(2.9);
+ dvec2v = sqrt(dvec2(2.7));
+ dvec3v = sqrt(dvec3(2.0));
+ dvec4v = sqrt(dvec4(2.1));
+
+ doublev += inversesqrt(doublev);
+ dvec2v += inversesqrt(dvec2v);
+ dvec3v += inversesqrt(dvec3v);
+ dvec4v += inversesqrt(dvec4v);
+
+ doublev += abs(doublev);
+ dvec2v += abs(dvec2v);
+ dvec3v += abs(dvec3v);
+ dvec4v += abs(dvec4v);
+
+ doublev += sign(doublev);
+ dvec2v += sign(dvec2v);
+ dvec3v += sign(dvec3v);
+ dvec4v += sign(dvec4v);
+
+ doublev += floor(doublev);
+ dvec2v += floor(dvec2v);
+ dvec3v += floor(dvec3v);
+ dvec4v += floor(dvec4v);
+
+ doublev += trunc(doublev);
+ dvec2v += trunc(dvec2v);
+ dvec3v += trunc(dvec3v);
+ dvec4v += trunc(dvec4v);
+
+ doublev += round(doublev);
+ dvec2v += round(dvec2v);
+ dvec3v += round(dvec3v);
+ dvec4v += round(dvec4v);
+
+ doublev += roundEven(doublev);
+ dvec2v += roundEven(dvec2v);
+ dvec3v += roundEven(dvec3v);
+ dvec4v += roundEven(dvec4v);
+
+ doublev += ceil(doublev);
+ dvec2v += ceil(dvec2v);
+ dvec3v += ceil(dvec3v);
+ dvec4v += ceil(dvec4v);
+
+ doublev += fract(doublev);
+ dvec2v += fract(dvec2v);
+ dvec3v += fract(dvec3v);
+ dvec4v += fract(dvec4v);
+
+ doublev += mod(doublev, doublev);
+ dvec2v += mod(dvec2v, doublev);
+ dvec3v += mod(dvec3v, doublev);
+ dvec4v += mod(dvec4v, doublev);
+ dvec2v += mod(dvec2v, dvec2v);
+ dvec3v += mod(dvec3v, dvec3v);
+ dvec4v += mod(dvec4v, dvec4v);
+
+ doublev += modf(doublev, doublev);
+ dvec2v += modf(dvec2v, dvec2v);
+ dvec3v += modf(dvec3v, dvec3v);
+ dvec4v += modf(dvec4v, dvec4v);
+
+ doublev += min(doublev, doublev);
+ dvec2v += min(dvec2v, doublev);
+ dvec3v += min(dvec3v, doublev);
+ dvec4v += min(dvec4v, doublev);
+ dvec2v += min(dvec2v, dvec2v);
+ dvec3v += min(dvec3v, dvec3v);
+ dvec4v += min(dvec4v, dvec4v);
+
+ doublev += max(doublev, doublev);
+ dvec2v += max(dvec2v, doublev);
+ dvec3v += max(dvec3v, doublev);
+ dvec4v += max(dvec4v, doublev);
+ dvec2v += max(dvec2v, dvec2v);
+ dvec3v += max(dvec3v, dvec3v);
+ dvec4v += max(dvec4v, dvec4v);
+
+ doublev += clamp(doublev, doublev, doublev);
+ dvec2v += clamp(dvec2v, doublev, doublev);
+ dvec3v += clamp(dvec3v, doublev, doublev);
+ dvec4v += clamp(dvec4v, doublev, doublev);
+ dvec2v += clamp(dvec2v, dvec2v, dvec2v);
+ dvec3v += clamp(dvec3v, dvec3v, dvec3v);
+ dvec4v += clamp(dvec4v, dvec4v, dvec4v);
+
+ doublev += mix(doublev, doublev, doublev);
+ dvec2v += mix(dvec2v, dvec2v, doublev);
+ dvec3v += mix(dvec3v, dvec3v, doublev);
+ dvec4v += mix(dvec4v, dvec4v, doublev);
+ dvec2v += mix(dvec2v, dvec2v, dvec2v);
+ dvec3v += mix(dvec3v, dvec3v, dvec3v);
+ dvec4v += mix(dvec4v, dvec4v, dvec4v);
+ doublev += mix(doublev, doublev, boolv);
+ dvec2v += mix(dvec2v, dvec2v, bvec2v);
+ dvec3v += mix(dvec3v, dvec3v, bvec3v);
+ dvec4v += mix(dvec4v, dvec4v, bvec4v);
+
+ doublev += step(doublev, doublev);
+ dvec2v += step(dvec2v, dvec2v);
+ dvec3v += step(dvec3v, dvec3v);
+ dvec4v += step(dvec4v, dvec4v);
+ dvec2v += step(doublev, dvec2v);
+ dvec3v += step(doublev, dvec3v);
+ dvec4v += step(doublev, dvec4v);
+
+ doublev += smoothstep(doublev, doublev, doublev);
+ dvec2v += smoothstep(dvec2v, dvec2v, dvec2v);
+ dvec3v += smoothstep(dvec3v, dvec3v, dvec3v);
+ dvec4v += smoothstep(dvec4v, dvec4v, dvec4v);
+ dvec2v += smoothstep(doublev, doublev, dvec2v);
+ dvec3v += smoothstep(doublev, doublev, dvec3v);
+ dvec4v += smoothstep(doublev, doublev, dvec4v);
+
+ boolv = isnan(doublev);
+ bvec2v = isnan(dvec2v);
+ bvec3v = isnan(dvec3v);
+ bvec4v = isnan(dvec4v);
+
+ boolv = boolv ? isinf(doublev) : false;
+ bvec2v = boolv ? isinf(dvec2v) : bvec2(false);
+ bvec3v = boolv ? isinf(dvec3v) : bvec3(false);
+ bvec4v = boolv ? isinf(dvec4v) : bvec4(false);
+
+ doublev += length(doublev);
+ doublev += length(dvec2v);
+ doublev += length(dvec3v);
+ doublev += length(dvec4v);
+
+ doublev += distance(doublev, doublev);
+ doublev += distance(dvec2v, dvec2v);
+ doublev += distance(dvec3v, dvec3v);
+ doublev += distance(dvec4v, dvec4v);
+
+ doublev += dot(doublev, doublev);
+ doublev += dot(dvec2v, dvec2v);
+ doublev += dot(dvec3v, dvec3v);
+ doublev += dot(dvec4v, dvec4v);
+
+ dvec3v += cross(dvec3v, dvec3v);
+
+ doublev += normalize(doublev);
+ dvec2v += normalize(dvec2v);
+ dvec3v += normalize(dvec3v);
+ dvec4v += normalize(dvec4v);
+
+ doublev += faceforward(doublev, doublev, doublev);
+ dvec2v += faceforward(dvec2v, dvec2v, dvec2v);
+ dvec3v += faceforward(dvec3v, dvec3v, dvec3v);
+ dvec4v += faceforward(dvec4v, dvec4v, dvec4v);
+
+ doublev += reflect(doublev, doublev);
+ dvec2v += reflect(dvec2v, dvec2v);
+ dvec3v += reflect(dvec3v, dvec3v);
+ dvec4v += reflect(dvec4v, dvec4v);
+
+ doublev += refract(doublev, doublev, doublev);
+ dvec2v += refract(dvec2v, dvec2v, doublev);
+ dvec3v += refract(dvec3v, dvec3v, doublev);
+ dvec4v += refract(dvec4v, dvec4v, doublev);
+
+ dmat2 dmat2v = outerProduct(dvec2v, dvec2v);
+ dmat3 dmat3v = outerProduct(dvec3v, dvec3v);
+ dmat4 dmat4v = outerProduct(dvec4v, dvec4v);
+ dmat2x3 dmat2x3v = outerProduct(dvec3v, dvec2v);
+ dmat3x2 dmat3x2v = outerProduct(dvec2v, dvec3v);
+ dmat2x4 dmat2x4v = outerProduct(dvec4v, dvec2v);
+ dmat4x2 dmat4x2v = outerProduct(dvec2v, dvec4v);
+ dmat3x4 dmat3x4v = outerProduct(dvec4v, dvec3v);
+ dmat4x3 dmat4x3v = outerProduct(dvec3v, dvec4v);
+
+ dmat2v *= matrixCompMult(dmat2v, dmat2v);
+ dmat3v *= matrixCompMult(dmat3v, dmat3v);
+ dmat4v *= matrixCompMult(dmat4v, dmat4v);
+ dmat2x3v = matrixCompMult(dmat2x3v, dmat2x3v);
+ dmat2x4v = matrixCompMult(dmat2x4v, dmat2x4v);
+ dmat3x2v = matrixCompMult(dmat3x2v, dmat3x2v);
+ dmat3x4v = matrixCompMult(dmat3x4v, dmat3x4v);
+ dmat4x2v = matrixCompMult(dmat4x2v, dmat4x2v);
+ dmat4x3v = matrixCompMult(dmat4x3v, dmat4x3v);
+
+ dmat2v *= transpose(dmat2v);
+ dmat3v *= transpose(dmat3v);
+ dmat4v *= transpose(dmat4v);
+ dmat2x3v = transpose(dmat3x2v);
+ dmat3x2v = transpose(dmat2x3v);
+ dmat2x4v = transpose(dmat4x2v);
+ dmat4x2v = transpose(dmat2x4v);
+ dmat3x4v = transpose(dmat4x3v);
+ dmat4x3v = transpose(dmat3x4v);
+
+ doublev += determinant(dmat2v);
+ doublev += determinant(dmat3v);
+ doublev += determinant(dmat4v);
+
+ dmat2v *= inverse(dmat2v);
+ dmat3v *= inverse(dmat3v);
+ dmat4v *= inverse(dmat4v);
+}
diff --git a/chromium/third_party/glslang/src/Test/400.tesc b/chromium/third_party/glslang/src/Test/400.tesc
new file mode 100644
index 00000000000..8bfc6979871
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/400.tesc
@@ -0,0 +1,105 @@
+#version 400 core
+
+layout(vertices = 4) out;
+int outa[gl_out.length()];
+
+layout(quads) in; // ERROR
+layout(ccw) out; // ERROR
+layout(fractional_even_spacing) in; // ERROR
+
+patch in vec4 patchIn; // ERROR
+patch out vec4 patchOut;
+
+void main()
+{
+ barrier();
+
+ int a = gl_MaxTessControlInputComponents +
+ gl_MaxTessControlOutputComponents +
+ gl_MaxTessControlTextureImageUnits +
+ gl_MaxTessControlUniformComponents +
+ gl_MaxTessControlTotalOutputComponents;
+
+ vec4 p = gl_in[1].gl_Position;
+ float ps = gl_in[1].gl_PointSize;
+ float cd = gl_in[1].gl_ClipDistance[2];
+
+ int pvi = gl_PatchVerticesIn;
+ int pid = gl_PrimitiveID;
+ int iid = gl_InvocationID;
+
+ gl_out[gl_InvocationID].gl_Position = p;
+ gl_out[gl_InvocationID].gl_PointSize = ps;
+ gl_out[gl_InvocationID].gl_ClipDistance[1] = cd;
+
+ gl_TessLevelOuter[3] = 3.2;
+ gl_TessLevelInner[1] = 1.3;
+
+ if (a > 10)
+ barrier(); // ERROR
+ else
+ barrier(); // ERROR
+
+ barrier();
+
+ do {
+ barrier(); // ERROR
+ } while (a > 10);
+
+ switch (a) {
+ default:
+ barrier(); // ERROR
+ break;
+ }
+ a < 12 ? a : (barrier(), a); // ERROR
+ {
+ barrier();
+ }
+
+ return;
+
+ barrier(); // ERROR
+}
+
+layout(vertices = 4) in; // ERROR
+layout(vertices = 5) out; // ERROR
+
+void foo()
+{
+ gl_out[4].gl_PointSize; // ERROR
+
+ barrier(); // ERROR
+}
+
+in vec2 ina; // ERROR, not array
+in vec2 inb[];
+in vec2 inc[18]; // ERROR, wrong size
+in vec2 ind[gl_MaxPatchVertices];
+
+#extension GL_ARB_separate_shader_objects : enable
+
+layout(location = 3) in vec4 ivla[];
+layout(location = 4) in vec4 ivlb[];
+layout(location = 4) in vec4 ivlc[]; // ERROR, overlapping
+
+layout(location = 3) out vec4 ovla[];
+layout(location = 4) out vec4 ovlb[];
+layout(location = 4) out vec4 ovlc[]; // ERROR, overlapping
+
+precise vec3 pv3;
+
+void foop()
+{
+ precise double d;
+
+ pv3 *= pv3;
+ pv3 = fma(pv3, pv3, pv3);
+ d = fma(d, d, d);
+}
+
+patch out pinbn {
+ int a;
+} pinbi;
+
+invariant precise out vec4 badOrder[]; // ERROR, precise must appear first
+void badp(out precise float f); // ERROR, precise must appear first
diff --git a/chromium/third_party/glslang/src/Test/400.tese b/chromium/third_party/glslang/src/Test/400.tese
new file mode 100644
index 00000000000..7f7792ec9c2
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/400.tese
@@ -0,0 +1,105 @@
+#version 400 core
+
+layout(vertices = 4) out; // ERROR
+layout(quads, cw) in;
+layout(triangles) in; // ERROR
+layout(isolines) in; // ERROR
+
+layout(ccw) in; // ERROR
+layout(cw) in;
+
+layout(fractional_odd_spacing) in;
+layout(equal_spacing) in; // ERROR
+layout(fractional_even_spacing) in; // ERROR
+
+layout(point_mode) in;
+
+patch in vec4 patchIn;
+patch out vec4 patchOut; // ERROR
+
+void main()
+{
+ barrier(); // ERROR
+
+ int a = gl_MaxTessEvaluationInputComponents +
+ gl_MaxTessEvaluationOutputComponents +
+ gl_MaxTessEvaluationTextureImageUnits +
+ gl_MaxTessEvaluationUniformComponents +
+ gl_MaxTessPatchComponents +
+ gl_MaxPatchVertices +
+ gl_MaxTessGenLevel;
+
+ vec4 p = gl_in[1].gl_Position;
+ float ps = gl_in[1].gl_PointSize;
+ float cd = gl_in[1].gl_ClipDistance[2];
+
+ int pvi = gl_PatchVerticesIn;
+ int pid = gl_PrimitiveID;
+ vec3 tc = gl_TessCoord;
+ float tlo = gl_TessLevelOuter[3];
+ float tli = gl_TessLevelInner[1];
+
+ gl_Position = p;
+ gl_PointSize = ps;
+ gl_ClipDistance[2] = cd;
+}
+
+smooth patch in vec4 badp1; // ERROR
+flat patch in vec4 badp2; // ERROR
+noperspective patch in vec4 badp3; // ERROR
+patch sample in vec3 badp4; // ERROR
+
+#extension GL_ARB_separate_shader_objects : enable
+
+in gl_PerVertex // ERROR, no size
+{
+ float gl_ClipDistance[1];
+} gl_in[];
+
+in gl_PerVertex // ERROR, second redeclaration of gl_in
+{
+ float gl_ClipDistance[1];
+} gl_in[];
+
+layout(quads, cw) out; // ERROR
+layout(triangles) out; // ERROR
+layout(isolines) out; // ERROR
+layout(cw) out; // ERROR
+layout(fractional_odd_spacing) out; // ERROR
+layout(equal_spacing) out; // ERROR
+layout(fractional_even_spacing) out; // ERROR
+layout(point_mode) out; // ERROR
+
+in vec2 ina; // ERROR, not array
+in vec2 inb[];
+in vec2 inc[18]; // ERROR, wrong size
+in vec2 ind[gl_MaxPatchVertices];
+
+in testbla {
+ int f;
+} bla; // ERROR, not array
+
+in testblb {
+ int f;
+} blb[];
+
+in testblc {
+ int f;
+} blc[18]; // ERROR wrong size
+
+in testbld {
+ int f;
+} bld[gl_MaxPatchVertices];
+
+layout(location = 23) in vec4 ivla[];
+layout(location = 24) in vec4 ivlb[];
+layout(location = 24) in vec4 ivlc[]; // ERROR
+
+layout(location = 23) out vec4 ovla[2];
+layout(location = 24) out vec4 ovlb[2]; // ERROR
+
+in float gl_TessLevelOuter[4]; // ERROR, can't redeclare
+
+patch in pinbn {
+ int a;
+} pinbi;
diff --git a/chromium/third_party/glslang/src/Test/400.vert b/chromium/third_party/glslang/src/Test/400.vert
new file mode 100644
index 00000000000..2c3dd0424fe
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/400.vert
@@ -0,0 +1,9 @@
+#version 400 core
+
+in double d; // ERROR, no doubles
+in dvec3 d3; // ERROR, no doubles
+in dmat4 dm4; // ERROR, no doubles
+
+void main()
+{
+}
diff --git a/chromium/third_party/glslang/src/Test/410.geom b/chromium/third_party/glslang/src/Test/410.geom
new file mode 100644
index 00000000000..7aadc390199
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/410.geom
@@ -0,0 +1,39 @@
+#version 410 core
+
+void main()
+{
+ gl_ViewportIndex = 7;
+}
+
+in gl_PerVertex {
+ float gl_PointSize;
+} myIn[]; // ERROR, can't redeclare a different name
+
+in gl_PerVertex {
+ float gl_PointSize;
+} gl_myIn[]; // ERROR, can't redeclare a different name
+
+in gl_PerVertex {
+ float gl_PointSize;
+} gl_in[];
+
+in gl_PerVertex {
+ float gl_PointSize;
+} gl_in[]; // ERROR, can't do it again
+
+out gl_PerVertex {
+ float gl_PointSize;
+};
+
+void foo()
+{
+ float p = gl_in[1].gl_PointSize; // use of redeclared
+ gl_PointSize = p; // use of redeclared
+ vec4 v = gl_in[1].gl_Position; // ERROR, not included in the redeclaration
+ gl_Position = vec4(1.0); // ERROR, not included in the redeclaration
+}
+
+float foo5()
+{
+ return 4; // implicit conversion of return type
+}
diff --git a/chromium/third_party/glslang/src/Test/410.tesc b/chromium/third_party/glslang/src/Test/410.tesc
new file mode 100644
index 00000000000..edb2af96b0a
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/410.tesc
@@ -0,0 +1,11 @@
+#version 400 core
+
+// no layout(vertices = ...) out;
+int outa[gl_out.length()]; // ERROR
+
+patch out vec4 patchOut;
+
+void main()
+{
+
+}
diff --git a/chromium/third_party/glslang/src/Test/410.vert b/chromium/third_party/glslang/src/Test/410.vert
new file mode 100644
index 00000000000..0ecf4768ae5
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/410.vert
@@ -0,0 +1,9 @@
+#version 410 core
+
+in double d;
+in dvec3 d3;
+in dmat4 dm4;
+
+void main()
+{
+}
diff --git a/chromium/third_party/glslang/src/Test/420.comp b/chromium/third_party/glslang/src/Test/420.comp
new file mode 100755
index 00000000000..b189310b78f
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/420.comp
@@ -0,0 +1,30 @@
+#version 420
+
+layout(local_size_x = 2) in; // ERROR, no compute
+
+#extension GL_ARB_compute_shader : enable
+
+layout(local_size_x = 2, local_size_y = 4, local_size_z = 6) in;
+
+shared vec3 sfoo;
+
+void main()
+{
+ sfoo = vec3(gl_WorkGroupSize.x, gl_WorkGroupSize.y, gl_WorkGroupSize.z);
+ sfoo += gl_WorkGroupSize + gl_NumWorkGroups + gl_WorkGroupID + gl_LocalInvocationID + gl_GlobalInvocationID;
+ sfoo *= gl_LocalInvocationIndex;
+ sfoo += gl_MaxComputeWorkGroupCount + gl_MaxComputeWorkGroupSize;
+ sfoo *= gl_MaxComputeUniformComponents +
+ gl_MaxComputeTextureImageUnits +
+ gl_MaxComputeImageUniforms +
+ gl_MaxComputeAtomicCounters +
+ gl_MaxComputeAtomicCounterBuffers;
+
+ barrier();
+ memoryBarrier();
+ memoryBarrierAtomicCounter();
+ memoryBarrierBuffer();
+ memoryBarrierImage();
+ memoryBarrierShared();
+ groupMemoryBarrier();
+} \ No newline at end of file
diff --git a/chromium/third_party/glslang/src/Test/420.frag b/chromium/third_party/glslang/src/Test/420.frag
new file mode 100644
index 00000000000..98ddf3d2e52
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/420.frag
@@ -0,0 +1,12 @@
+#version 420 core
+
+layout(depth_any) out float gl_FragDepth;
+layout(depth_greater) out float gl_FragDepth; // ERROR: redeclaration with different qualifier
+
+void main()
+{
+ gl_FragDepth = 0.3;
+}
+
+layout(depth_less) in float depth; // ERROR: depth_less only applies to gl_FragDepth
+layout(depth_any) out float gl_FragDepth; // ERROR, done after use
diff --git a/chromium/third_party/glslang/src/Test/420.geom b/chromium/third_party/glslang/src/Test/420.geom
new file mode 100644
index 00000000000..8195a11a56b
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/420.geom
@@ -0,0 +1,55 @@
+#version 420 core
+
+// testing input arrays without a gl_in[] block redeclaration, see 400.geom for with
+
+int i;
+
+void foo()
+{
+ gl_in.length(); // ERROR
+ gl_in[1].gl_Position;
+ gl_in[i].gl_Position; // ERROR
+}
+
+layout(triangles) in;
+
+in vec4 color3[3];
+
+void foo3()
+{
+ gl_in.length();
+ gl_in[i].gl_Position;
+ color3.length();
+}
+
+uniform sampler2D s2D;
+in vec2 coord[];
+uniform vec4 v4;
+
+void foo4()
+{
+ const ivec2 offsets[5] =
+ {
+ ivec2(0,1),
+ ivec2(1,-2),
+ ivec2(0,3),
+ ivec2(-3,0),
+ ivec2(2,1)
+ };
+
+ vec4 v = textureGatherOffset(s2D, coord[0], offsets[i].xy);
+
+ offsets[i].xy = ivec2(3); // ERROR
+ v4.x = 3.2; // ERROR
+ v4.xy; // should have non-uniform type
+}
+
+out gl_PerVertex {
+ float gl_PointSize[1]; // ERROR, adding array
+ float gl_ClipDistance; // ERROR, removing array
+};
+
+float foo5()
+{
+ return i; // implicit conversion of return type
+}
diff --git a/chromium/third_party/glslang/src/Test/420.tesc b/chromium/third_party/glslang/src/Test/420.tesc
new file mode 100644
index 00000000000..7271d7f91c2
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/420.tesc
@@ -0,0 +1,43 @@
+#version 420 core
+
+#extension GL_ARB_separate_shader_objects : enable
+
+layout(vertices = 4) out;
+
+out gl_PerVertex {
+ vec4 gl_Position;
+} gl_out[3]; // ERROR, wrong size
+
+out int a[gl_out.length()];
+out int outb[5]; // ERROR, wrong size
+out int outc[];
+
+void main()
+{
+ vec4 p = gl_in[1].gl_Position;
+ float ps = gl_in[1].gl_PointSize;
+ float cd = gl_in[1].gl_ClipDistance[2];
+
+ int pvi = gl_PatchVerticesIn;
+ int pid = gl_PrimitiveID;
+ int iid = gl_InvocationID;
+
+ gl_out[gl_InvocationID].gl_Position = p;
+ gl_out[gl_InvocationID].gl_PointSize = ps; // ERROR
+}
+
+out float outf; // ERROR, no array
+
+layout (location = 0) in dmat2x4 vs_tcs_first[];
+layout (location = 12) in dmat2x4 vs_tcs_last[];
+
+void foo()
+{
+ if ((dmat2x4(dvec4(-0.625, -0.5, -0.375lf, -0.25), dvec4(-0.375, -0.25, -0.125, 0)) != vs_tcs_first[0]) ||
+ (dmat2x4(dvec4(0.375, 0.5, 0.625, 0.75), dvec4(0.625, 0.75, 0.875, -0.625)) != vs_tcs_last[0]))
+ {
+ ;
+ }
+}
+
+layout(vertices = 0) out; // ERROR, can't be 0
diff --git a/chromium/third_party/glslang/src/Test/420.tese b/chromium/third_party/glslang/src/Test/420.tese
new file mode 100644
index 00000000000..99c086ae8e9
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/420.tese
@@ -0,0 +1,78 @@
+#version 420 core
+
+const mat2x2 a = mat2( vec2( 1.0, 0.0 ), vec2( 0.0, 1.0 ) );
+mat2x2 b = { vec2( 1.0, 0.0 ), vec2( 0.0, 1.0 ) };
+const mat2x2 c = { { 1.0, 0.0, }, { 0.0, 1.0 } };
+
+float a2[2] = { 3.4, 4.2, 5.0 }; // illegal
+vec2 b2 = { 1.0, 2.0, 3.0 }; // illegal
+mat3x3 c2 = { vec3(0.0), vec3(1.0), vec3(2.0), vec3(3.0) }; // illegal
+mat2x2 d = { 1.0, 0.0, 0.0, 1.0 }; // illegal, can't flatten nesting
+
+struct {
+ float a;
+ int b;
+} e = { 1.2, 2, };
+
+struct {
+ float a;
+ int b;
+} e2 = { 1, 3 }; // legal, first initializer is converted
+
+struct {
+ float a;
+ int b;
+} e3 = { 1.2, 2, 3 }; // illegal
+
+int a3 = true; // illegal
+vec4 b3[2] = { vec4(0.0), 1.0 }; // illegal
+vec4 b4[2] = vec4[2](vec4(0.0), mat2x2(1.0)); // illegal
+mat4x2 c3 = { vec3(0.0), vec3(1.0) }; // illegal
+
+struct S1 {
+ vec4 a;
+ vec4 b;
+};
+
+struct {
+ float s;
+ float t;
+} d2[] = { S1(vec4(0.0), vec4(1.1)) }; // illegal
+
+float b5[] = { 3.4, 4.2, 5.0, 5.2, 1.1 };
+
+struct S3 {
+ float f;
+ mat2x3 m23;
+};
+
+struct S4 {
+ uvec2 uv2;
+ S3 s[2];
+};
+
+const S4 constructed = S4(uvec2(1, 2),
+ S3[2](S3(3.0, mat2x3(4.0)),
+ S3(5.0, mat2x3(6.0))));
+
+const S4 curlybad1 = { {1, 2},
+ { {3, {4.0, 0, 0.0}, {0.0, 4.0, 0.0 } }, // ERROR, the mat2x3 isn't isolated
+ {5.0, {6, 0.0, 0.0}, {0.0, 6.0, 0.0 } } } };
+
+const S4 curlyInit = { {1, 2},
+ { {3, { {4.0, 0, 0.0}, {0.0, 4.0, 0.0 } } },
+ {5.0, { {6, 0.0, 0.0}, {0.0, 6.0, 0.0 } } } } };
+
+float vc1, vc2, vc3;
+vec3 av3 = vec3(vc1, vc2, vc3);
+vec3 bv3 = { vc1, vc2, vc3 };
+
+void main()
+{
+ memoryBarrier();
+
+ if (constructed == curlybad1)
+ ;
+ if (constructed == curlyInit)
+ ;
+}
diff --git a/chromium/third_party/glslang/src/Test/420.vert b/chromium/third_party/glslang/src/Test/420.vert
new file mode 100644
index 00000000000..d3e583cab20
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/420.vert
@@ -0,0 +1,159 @@
+#version 420 core
+#version 420 core
+varying vec2 v2; // ERROR, varying reserved
+in vec4 bad[10];
+highp in vec4 badorder;
+out invariant vec4 badorder2;
+in centroid vec4 badorder4; // ERROR, no centroid input to vertex stage
+out flat vec4 badorder3;
+void bar(in const float a);
+void bar2(highp in float b);
+smooth flat out vec4 rep; // ERROR, replicating interpolation qualification
+centroid sample out vec4 rep2; // ERROR, replicating auxiliary qualification
+in uniform vec4 rep3; // ERROR, replicating storage qualification
+
+int anonconst;
+const int aconst = 5;
+const int a = aconst;
+const int b = anonconst; // ERROR at global scope
+
+const int foo() // ERROR, no const functions
+{
+ const int a = aconst;
+ const int b = anonconst;
+ const int c = a; // still compile-time const
+ const int d = b; // not a compile-time const
+ float x[c]; // okay
+ float y[d]; // ERROR
+
+ return b;
+}
+
+void main()
+{
+ int i;
+ if (i == 3)
+ int j = i;
+ else
+ int k = j; // ERROR, j is undeclared
+ int m = k; // ERROR, k is undeclared
+ int n = j; // ERROR, j is undeclared
+
+ while (true)
+ int jj;
+ int kk = jj; // ERROR, jj is undeclared
+}
+
+const float cx = 4.20;
+const float dx = 4.20;
+
+void bar(in highp volatile vec4 v)
+{
+ int s;
+ s.x; // okay
+ s.y; // ERROR
+ if (bad[0].x == cx.x)
+ ;
+ if (cx.x == dx.x)
+ badorder3 = bad[0];
+
+ float f;
+ vec3 smeared = f.xxx;
+ f.xxxxx; // ERROR
+ f.xxy; // ERROR
+}
+
+layout(binding = 3) uniform; // ERROR
+layout(binding = 3) uniform boundblock { int aoeu; } boundInst;
+layout(binding = 7) uniform anonblock { int aoeu; } ;
+layout(location = 1) in; // ERROR
+layout(binding = 1) in inblock { int aoeua; }; // ERROR
+layout(binding = 100000) uniform anonblock2 { int aooeu; } ;
+layout(binding = 4) uniform sampler2D sampb1;
+layout(binding = 5) uniform sampler2D sampb2[10];
+layout(binding = 80) uniform sampler2D sampb3; // ERROR, binding too big
+layout(binding = 31) uniform sampler2D sampb4;
+layout(binding = 79) uniform sampler2D sampb5[2]; // ERROR, binding too big
+
+int fgfg(float f, mediump int i);
+int fgfg(float f, highp int i);
+
+out gl_PerVertex {
+ float gl_ClipDistance[4];
+};
+
+patch in vec4 patchIn; // ERROR
+patch out vec4 patchOut; // ERROR
+
+void bar23444()
+{
+ mat4x3 m43; \
+ float a1 = m43[3].y;
+ vec3 v3;
+ int a2 = m43.length();
+ a2 += m43[1].length();
+ a2 += v3.length();
+ const float b = 2 * a1;
+ int a = gl_MinProgramTexelOffset + gl_MaxProgramTexelOffset;
+}
+
+const int comma0 = (2, 3); // ERROR
+int comma1[(2, 3)]; // ERROR
+
+layout(r32i) uniform iimage2D iimg2D;
+layout(rgba32i) uniform iimage2D iimg2Drgba;
+layout(rgba32f) uniform image2D img2Drgba;
+layout(r32ui) uniform uimage2D uimg2D;
+uniform image2DMS img2DMS; // ERROR image variables not declared writeonly must have format layout qualifier
+uniform writeonly image2DMS img2DMSWO;
+void qux()
+{
+ int i = aoeu;
+ imageAtomicCompSwap(iimg2D, ivec2(i,i), i, i);
+ imageAtomicAdd(uimg2D, ivec2(i,i), uint(i));
+ imageAtomicMin(iimg2Drgba, ivec2(i,i), i); // ERROR iimg2Drgba does not have r32i layout
+ imageAtomicMax(img2Drgba, ivec2(i,i), i); // ERROR img2Drgba is not integer image
+ ivec4 pos = imageLoad(iimg2D, ivec2(i,i));
+ vec4 col = imageLoad(img2DMS, ivec2(i,i), i);
+ imageStore(img2DMSWO, ivec2(i,i), i, vec4(0));
+ imageLoad(img2DMSWO, ivec2(i,i), i); // ERROR, drops writeonly
+}
+
+volatile float vol; // ERROR, not an image
+readonly int vol2; // ERROR, not an image
+
+void passr(coherent readonly iimage2D image)
+{
+}
+
+layout(r32i) coherent readonly uniform iimage2D qualim1;
+layout(r32i) coherent volatile readonly uniform iimage2D qualim2;
+
+void passrc()
+{
+ passr(qualim1);
+ passr(qualim2); // ERROR, drops volatile
+ passr(iimg2D);
+}
+
+layout(rg8i) uniform uimage2D i1bad; // ERROR, type mismatch
+layout(rgba32i) uniform image2D i2bad; // ERROR, type mismatch
+layout(rgba32f) uniform uimage2D i3bad; // ERROR, type mismatch
+layout(r8_snorm) uniform iimage2D i4bad; // ERROR, type mismatch
+layout(rgba32ui) uniform iimage2D i5bad; // ERROR, type mismatch
+layout(r8ui) uniform iimage2D i6bad; // ERROR, type mismatch
+
+uniform offcheck {
+ layout(offset = 16) int foo; // ERROR
+} offcheckI;
+
+uniform sampler1D samp1D;
+uniform sampler1DShadow samp1Ds;
+
+void qlod()
+{
+ int levels;
+
+ levels = textureQueryLevels(samp1D); // ERROR, not until 430
+ levels = textureQueryLevels(samp1Ds); // ERROR, not until 430
+} \ No newline at end of file
diff --git a/chromium/third_party/glslang/src/Test/420_size_gl_in.geom b/chromium/third_party/glslang/src/Test/420_size_gl_in.geom
new file mode 100644
index 00000000000..0fc1cd96ca3
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/420_size_gl_in.geom
@@ -0,0 +1,21 @@
+#version 420 core
+
+// testing input arrays without a gl_in[] block redeclaration, see 400.geom for with
+
+int i;
+
+layout(triangles) in;
+in vec4 colorun[];
+in vec4 color3[3];
+
+void foo()
+{
+ gl_in.length();
+ gl_in[1].gl_Position;
+ gl_in.length();
+ gl_in[i].gl_Position; // should be sized to 3 by 'triangles'
+}
+
+in gl_PerVertex { // ERROR, already used
+ vec4 gl_Position;
+} gl_in[];
diff --git a/chromium/third_party/glslang/src/Test/430.comp b/chromium/third_party/glslang/src/Test/430.comp
new file mode 100644
index 00000000000..a27fe647e76
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/430.comp
@@ -0,0 +1,87 @@
+#version 430 core
+
+layout(local_size_x = 2) in;
+layout(local_size_x = 16) in; // ERROR, changing
+layout(local_size_z = 4096) in; // ERROR, too large
+layout(local_size_x = 2) in;
+
+const int total = gl_MaxComputeWorkGroupCount.y
+ + gl_MaxComputeUniformComponents
+ + gl_MaxComputeTextureImageUnits
+ + gl_MaxComputeImageUniforms
+ + gl_MaxComputeAtomicCounters
+ + gl_MaxComputeAtomicCounterBuffers;
+
+buffer ShaderStorageBlock
+{
+ int value;
+ float values[];
+};
+
+buffer InvalidShaderStorageBlock
+{
+ float values[];
+ int value;
+} invalid;
+
+void main()
+{
+ barrier();
+ memoryBarrier();
+ memoryBarrierAtomicCounter();
+ memoryBarrierBuffer();
+ memoryBarrierShared();
+ memoryBarrierImage();
+ groupMemoryBarrier();
+ value = int(values[gl_LocalInvocationIndex]);
+
+ int a;
+ if (a > 10)
+ barrier();
+}
+
+layout(location = 2) in vec3 v3; // ERROR
+in float f; // ERROR
+out float fo; // ERROR
+
+shared vec4 s;
+layout(location = 2) shared vec4 sl; // ERROR
+shared float fs = 4.2; // ERROR
+
+layout(local_size_x = 2, local_size_y = 3, local_size_z = 4) out; // ERROR
+
+int arrX[gl_WorkGroupSize.x];
+int arrY[gl_WorkGroupSize.y];
+int arrZ[gl_WorkGroupSize.z];
+
+readonly buffer roblock
+{
+ int value;
+ float values[];
+} ro;
+
+void foo()
+{
+ ro.values[2] = 4.7; // ERROR, readonly
+ ro.values.length();
+ barrier();
+}
+
+uniform double roll;
+uniform writeonly image2D destTex;
+void fooaoeu() {
+ ivec2 storePos = ivec2(gl_GlobalInvocationID.xy);
+ double localCoef = length(vec2(ivec2(gl_LocalInvocationID.xy)-8)/8.0);
+ dvec4 aa = dvec4(0.4, 0.2, 0.3, 0.4);
+ double globalCoef = 1.0;
+ int i = globalCoef; // ERROR, can't convert from double to int
+ double di = i;
+}
+
+in inb { // ERROR
+ int a;
+} inbi;
+
+out outb { // ERROR
+ int a;
+} outbi;
diff --git a/chromium/third_party/glslang/src/Test/430.vert b/chromium/third_party/glslang/src/Test/430.vert
new file mode 100644
index 00000000000..13d180639e2
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/430.vert
@@ -0,0 +1,223 @@
+#version 430 core
+
+layout(location = 3) vec4 v4; // ERROR
+
+layout(location = 4) uniform vec4 uv4;
+
+layout(location = 2) in inb1 { vec4 v; } b1; // ERROR
+layout(location = 2) out outb1 { vec4 v; } b2; // ERROR
+
+out gl_PerVertex {
+ float gl_ClipDistance[];
+};
+
+void foo()
+{
+ gl_ClipDistance[2] = 3.7;
+}
+
+struct sp {
+ highp float f;
+ in float g; // ERROR
+ uniform float h; // ERROR
+ invariant float i; // ERROR
+ volatile float j; // ERROR
+ layout(row_major) mat3 m3; // ERROR
+};
+
+void foo3(invariant vec4 v4, // ERROR
+ volatile vec3 v3,
+ layout(location = 3) vec2 v2, // ERROR
+ centroid vec3 cv3) // ERROR
+{
+}
+
+struct S {
+ mat3x2 m[7]; // needs 7*3 locations
+ float f; // needs 1 location
+}; // needs 22 locations
+
+layout(location = 10) out S cs[2]; // 10 through 10 + 2 * 22 - 1 = 53
+layout(location = 54) out float cf;
+layout(location = 53) out float cg; // ERROR, collision at 31
+
+layout(location = 10) in vec4 alias1;
+layout(location = 10) in vec4 alias2; // okay for vertex input on desktop
+
+out float gl_ClipDistance[17]; // ERROR, size too big
+
+// enhanced_layouts (most tests are in 440.*)
+
+layout(location = start*start - 2 - 4) in vec4 v6e; // ERROR
+
+layout(location = 28) in inblock2e {
+ layout(location = 25) float f2; // ERROR
+} ininst2e;
+
+in ublock4e {
+ layout(location = 50) float f1; // ERROR
+ layout(location = 51) float f2; // ERROR
+} in4e;
+
+layout(align=16, std140) uniform ubl4e { int a; } inst4e;// ERROR
+
+layout(align=32) uniform ubl9e { // ERROR
+ layout(offset=12, align=4) float f; // ERROR
+ layout(offset=20) float g; // ERROR
+} inst9e;
+
+layout(std140) uniform blocke {
+ vec4 a;
+ layout(offset = 32) vec3 b; // ERROR
+} spinste;
+
+int aconste[gl_MaxTransformFeedbackBuffers]; // ERROR
+int bconste[gl_MaxTransformFeedbackInterleavedComponents]; // ERROR
+
+out bblck2 {
+ layout(xfb_offset=64) vec4 bbv; // ERROR
+} bbinst2;
+
+layout(xfb_buffer = 3, xfb_stride = 64) out; // ERROR
+
+layout(xfb_buffer=2, xfb_offset=48, xfb_stride=80) out vec4 bge; // ERROR
+layout( xfb_offset=32, xfb_stride=64) out vec4 bhe; // ERROR
+
+layout(xfb_stride=80, xfb_buffer=2, xfb_offset=16) out bblck4e { // ERROR
+ vec4 bbv1;
+ vec4 bbv2;
+} bbinst4e;
+
+out bblck5e {
+ layout(xfb_offset=0) vec4 bbv1; // ERROR
+ layout(xfb_stride=64, xfb_buffer=3, xfb_offset=48) vec4 bbv2; // ERROR
+} bbinst5e;
+
+#extension GL_ARB_enhanced_layouts : enable
+
+layout(align=16, std140) uniform ubl4 { int a; } inst4;
+layout(std430) uniform;
+
+layout(align=32) uniform ubl9 {
+ layout(offset=12, align=4) float f;
+ layout(offset=20) float g;
+} inst9;
+
+layout(std140) uniform block {
+ vec4 a; // a takes offsets 0-15
+ layout(offset = 32) vec3 b; // b takes offsets 32-43
+} spinst;
+
+int aconst[gl_MaxTransformFeedbackBuffers];
+int bconst[gl_MaxTransformFeedbackInterleavedComponents];
+
+const int start2 = 5;
+layout(location = start2 * start2 - 2 - 4) in vec4 v6;
+
+layout(location = 28) in inblock2 { // ERROR, input block in vertex shader, other errors are valid checks still...
+ bool b1;
+ float f1;
+ layout(location = 25) float f2;
+} ininst2;
+
+in ublock4 { // ERROR, input block in vertex shader, other errors are valid checks still...
+ layout(location = 50) float f1;
+ layout(location = 51) float f2;
+} in4;
+
+out bblck2g {
+ layout(xfb_offset=64) vec4 bbv;
+} bbinst2g;
+
+layout(xfb_buffer = 1, xfb_stride = 80) out; // default buffer is 3
+
+layout(xfb_buffer=1, xfb_offset=48, xfb_stride=80) out vec4 bg;
+layout( xfb_offset=32, xfb_stride=80) out vec4 bh;
+
+layout(xfb_stride=80, xfb_buffer=1, xfb_offset=16) out bblck4 {
+ vec4 bbv1;
+} bbinst4;
+
+out bblck5 {
+ layout(xfb_offset=0) vec4 bbv1;
+ layout(xfb_stride=80, xfb_buffer=1, xfb_offset=64) vec4 bbv2;
+} bbinst5;
+
+shared vec4 sharedv; // ERROR
+
+void fooBarrier()
+{
+ barrier(); // ERROR
+ memoryBarrier();
+ memoryBarrierAtomicCounter();
+ memoryBarrierBuffer();
+ memoryBarrierShared(); // ERROR
+ memoryBarrierImage();
+ groupMemoryBarrier(); // ERROR
+}
+
+buffer vec4 v; // ERROR
+
+uniform sampler2DMS s2dms;
+uniform usampler2DMSArray us2dmsa;
+layout(rgba32i) uniform iimage2DMS ii2dms;
+layout(rgba32f) uniform image2DMSArray i2dmsa;
+
+void fooq()
+{
+ int s = textureSamples(s2dms); // ERROR
+ s += textureSamples(us2dmsa); // ERROR
+ s += imageSamples(ii2dms); // ERROR
+ s += imageSamples(i2dmsa); // ERROR
+}
+
+#extension GL_ARB_shader_texture_image_samples : enable
+
+void fooq2()
+{
+ int s = textureSamples(s2dms);
+ s += textureSamples(us2dmsa);
+ s += imageSamples(ii2dms);
+ s += imageSamples(i2dmsa);
+}
+
+uniform sampler1D samp1D;
+uniform usampler2D usamp2D;
+uniform isampler3D isamp3D;
+uniform isamplerCube isampCube;
+uniform isampler1DArray isamp1DA;
+uniform sampler2DArray samp2DA;
+uniform usamplerCubeArray usampCubeA;
+
+uniform sampler1DShadow samp1Ds;
+uniform sampler2DShadow samp2Ds;
+uniform samplerCubeShadow sampCubes;
+uniform sampler1DArrayShadow samp1DAs;
+uniform sampler2DArrayShadow samp2DAs;
+uniform samplerCubeArrayShadow sampCubeAs;
+
+uniform samplerBuffer sampBuf;
+uniform sampler2DRect sampRect;
+
+void qlod()
+{
+ int levels;
+
+ levels = textureQueryLevels(samp1D);
+ levels = textureQueryLevels(usamp2D);
+ levels = textureQueryLevels(isamp3D);
+ levels = textureQueryLevels(isampCube);
+ levels = textureQueryLevels(isamp1DA);
+ levels = textureQueryLevels(samp2DA);
+ levels = textureQueryLevels(usampCubeA);
+
+ levels = textureQueryLevels(samp1Ds);
+ levels = textureQueryLevels(samp2Ds);
+ levels = textureQueryLevels(sampCubes);
+ levels = textureQueryLevels(samp1DAs);
+ levels = textureQueryLevels(samp2DAs);
+ levels = textureQueryLevels(sampCubeAs);
+
+ levels = textureQueryLevels(sampBuf); // ERROR
+ levels = textureQueryLevels(sampRect); // ERROR
+}
diff --git a/chromium/third_party/glslang/src/Test/430AofA.frag b/chromium/third_party/glslang/src/Test/430AofA.frag
new file mode 100644
index 00000000000..c081ea80023
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/430AofA.frag
@@ -0,0 +1,108 @@
+#version 430
+
+float[4][5][6] many[1][2][3];
+
+float gu[][7];
+float gimp[][]; // ERROR, implicit inner
+float g4[4][7];
+float g5[5][7];
+
+float[4][7] foo(float a[5][7])
+{
+ float r[7];
+ r = a[2];
+ float[](a[0], a[1], r, a[3]); // ERROR, too few dims
+ float[4][7][4](a[0], a[1], r, a[3]); // ERROR, too many dims
+ return float[4][7](a[0], a[1], r, a[3]);
+ return float[][](a[0], a[1], r, a[3]);
+ return float[][7](a[0], a[1], a[2], a[3]);
+}
+
+void bar(float[5][7]) {}
+
+void main()
+{
+ {
+ float gu[3][4][2];
+
+ gu[2][4][1] = 4.0; // ERROR, overflow
+ }
+ vec4 ca4[3][2] = vec4[][](vec4[2](vec4(0.0), vec4(1.0)),
+ vec4[2](vec4(0.0), vec4(1.0)),
+ vec4[2](vec4(0.0), vec4(1.0)));
+ vec4 caim[][2] = vec4[][](vec4[2](vec4(4.0), vec4(2.0)),
+ vec4[2](vec4(4.0), vec4(2.0)),
+ vec4[2](vec4(4.0), vec4(2.0)));
+ vec4 caim2[][] = vec4[][](vec4[2](vec4(4.0), vec4(2.0)),
+ vec4[2](vec4(4.0), vec4(2.0)),
+ vec4[2](vec4(4.0), vec4(2.0)));
+ vec4 caim3[3][] = vec4[][](vec4[2](vec4(4.0), vec4(2.0)),
+ vec4[2](vec4(4.0), vec4(2.0)),
+ vec4[2](vec4(4.0), vec4(2.0)));
+
+ vec4 a4[3][2] = {vec4[](vec4(0.0), vec4(1.0)),
+ vec4[2](vec4(0.0), vec4(1.0)),
+ vec4[2](vec4(0.0), vec4(1.0)) };
+ vec4 aim[][2] = {vec4[2](vec4(4.0), vec4(2.0)),
+ vec4[](vec4(4.0), vec4(2.0)),
+ vec4[2](vec4(4.0), vec4(2.0)) };
+ vec4 aim2[][] = {vec4[2](vec4(4.0), vec4(2.0)),
+ vec4[2](vec4(4.0), vec4(2.0)),
+ vec4[](vec4(4.0), vec4(2.0)) };
+ vec4 aim3[3][] = {vec4[2](vec4(4.0), vec4(2.0)),
+ vec4[2](vec4(4.0), vec4(2.0)),
+ vec4[2](vec4(4.0), vec4(2.0)) };
+
+ vec4 bad2[3][] = {vec4[2](vec4(4.0), vec4(2.0)), // ERROR
+ vec4[3](vec4(4.0), vec4(2.0), vec4(5.0)),
+ vec4[2](vec4(4.0), vec4(2.0)) };
+
+ vec4 bad3[3][] = {vec4[3](vec4(4.0), vec4(2.0), vec4(5.0)), // ERROR
+ vec4[2](vec4(4.0), vec4(2.0)),
+ vec4[2](vec4(4.0), vec4(2.0)) };
+
+ vec4 bad4[4][] = {vec4[2](vec4(4.0), vec4(2.0)), // ERROR
+ vec4[2](vec4(4.0), vec4(2.0)),
+ vec4[2](vec4(4.0), vec4(2.0)) };
+
+
+ g4 = foo(g5);
+ g5 = g4; // ERROR, wrong types
+ gu = g4; // ERROR, not yet sized
+
+ foo(gu); // ERROR, not yet sized
+ bar(g5);
+
+ if (foo(g5) == g4)
+ ;
+ if (foo(g5) == g5) // ERROR, different types
+ ;
+
+ float u[][7];
+ u[2][2] = 3.0;
+ float u[5][7];
+ u[5][2] = 5.0; // ERROR
+ foo(u);
+}
+
+void foo3()
+{
+ float resize1[][5][7];
+ resize1.length(); // ERROR
+ resize1[1][4][5] = 2.0;
+ resize1.length(); // ERROR
+ float resize1[3][5][7];
+ resize1.length(); // 3 in AST
+ resize1[1].length(); // 5 in AST
+ resize1[1][1].length(); // 7 in AST
+ resize1[1][1][1].length(); // ERROR
+
+ float resize2[][5][7];
+ float resize2[3][4][7]; // ERROR, inner dim change
+
+ float resize3[][5][7];
+ float resize3[3][5][9]; // ERROR, inner dim changed
+
+ float resize4[][5][7];
+ int resize4[3][5][7]; // ERROR, element type
+}
diff --git a/chromium/third_party/glslang/src/Test/430scope.vert b/chromium/third_party/glslang/src/Test/430scope.vert
new file mode 100644
index 00000000000..7efa1623d60
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/430scope.vert
@@ -0,0 +1,74 @@
+#version 430 core
+
+int f(int a, int b, int c)
+{
+ int a = b; // ERROR, redefinition
+
+ {
+ float a = float(a) + 1.0; // okay
+ }
+
+ return a;
+}
+
+int f(int a, int b, int c); // okay to redeclare
+
+bool b;
+float b(int a); // ERROR: redefinition
+
+float c(int a);
+bool c; // ERROR: redefinition
+
+float f; // ERROR: redefinition
+float tan; // okay, hides built-in function
+float sin(float x); // okay, can redefine built-in functions
+float cos(float x) // okay, can redefine built-in functions
+{
+ return 1.0;
+}
+bool radians(bool x) // okay, can overload built-in functions
+{
+ return true;
+}
+
+invariant gl_Position;
+
+void main()
+{
+ int g(); // okay
+ g();
+
+ float sin; // okay
+ sin;
+ sin(0.7); // ERROR, use of hidden function
+ f(1,2,3);
+
+ float f; // hides f()
+ f = 3.0;
+
+ gl_Position = vec4(f);
+
+ for (int f = 0; f < 10; ++f)
+ ++f;
+
+ int x = 1;
+ {
+ float x = 2.0, /* 2nd x visible here */ y = x; // y is initialized to 2
+ int z = z; // ERROR: z not previously defined.
+ }
+ {
+ int x = x; // x is initialized to '1'
+ }
+
+ struct S
+ {
+ int x;
+ };
+ {
+ S S = S(0); // 'S' is only visible as a struct and constructor
+ S.x; // 'S' is now visible as a variable
+ }
+
+ int degrees;
+ degrees(3.2); // ERROR, use of hidden built-in function
+}
diff --git a/chromium/third_party/glslang/src/Test/440.frag b/chromium/third_party/glslang/src/Test/440.frag
new file mode 100644
index 00000000000..143c0caad8d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/440.frag
@@ -0,0 +1,153 @@
+#version 440
+
+// Note 'location'-only tests for enhanced layouts are in 330.frag
+// Generic 'component' tests are in 440.vert
+
+// a consumes components 2 and 3 of location 4
+layout(location = 4, component = 2) in vec2 a;
+
+// b consumes component 1 of location 4
+layout(location = 4, component = 1) in float b;
+layout(location = 4, component = 2) in vec2 h; // ERROR, component overlap not okay for fragment in
+
+layout(location = 3, component = 2) in vec3 c; // ERROR: c overflows components 2 and 3
+
+// e consumes beginning (components 0, 1 and 2) of each of 6 slots
+layout(location = 20, component = 0) in vec3 e[6];
+
+// f consumes last component of the same 6 slots
+layout(location = 20, component = 3) in float f[6];
+
+layout(location = 30, component = 3) out int be;
+layout(location = 30, component = 0) out vec3 bf; // ERROR, not the same basic type
+
+writeonly uniform; // ERROR
+readonly in; // ERROR
+flat out; // ERROR
+mediump uniform;
+
+layout(offset=12) uniform; // ERROR
+layout(offset=12) in; // ERROR
+layout(offset=12) out; // ERROR
+
+layout(align=16) uniform; // ERROR
+layout(align=16) in; // ERROR
+layout(align=16) out; // ERROR
+
+layout(offset=12) uniform ubl1 { int a; } inst1; // ERROR
+layout(offset=12) in inbl2 { int a; } inst2; // ERROR
+layout(offset=12) out inbl3 { int a; } inst3; // ERROR
+
+layout(align=16, std140) uniform ubl4 { int a; } inst4;
+layout(align=16) uniform ubl8 { int a; } inst8; // ERROR, no packing
+layout(align=16) in inbl5 { int a; } inst5; // ERROR
+layout(align=16) out inbl6 { int a; } inst6; // ERROR
+
+layout(offset=12) uniform vec4 v1; // ERROR
+layout(offset=12) in vec4 v2; // ERROR
+layout(offset=12) out vec4 v3; // ERROR
+
+layout(align=16) uniform vec4 v4; // ERROR
+layout(align=16) in vec4 v5; // ERROR
+layout(align=16) out vec4 v6; // ERROR
+
+layout(std140) in; // ERROR
+layout(std140) uniform vec4 v7; // ERROR
+
+layout(align=48) uniform ubl7 { // ERROR, not power of 2
+ layout(offset=12, align=4) float f; // ERROR, no packing
+} inst7;
+
+in ibl10 {
+ layout(offset=12) float f; // ERROR
+ layout(align=4) float g; // ERROR
+} inst10;
+
+layout(std430) uniform;
+
+layout(align=32) uniform ubl9 {
+ float e;
+ layout(offset=12, align=4) float f;
+ layout(offset=20) float g;
+ float h;
+} inst9;
+
+uniform ubl11 {
+ layout(offset=12, align=4) float f;
+ float g;
+} inst11;
+
+layout(std140) uniform block {
+ vec4 a; // a takes offsets 0-15
+ layout(offset = 32) vec3 b; // b takes offsets 32-43
+ layout(offset = 40) vec2 c; // ERROR, lies within previous member
+ layout(align = 6) double g; // ERROR, 6 is not a power of 2
+ layout(offset=68) double h; // ERROR, offset not aligned
+} specExampleErrors;
+
+layout(std140) uniform block2 {
+ vec4 a; // a takes offsets 0-15
+ layout(offset = 32) vec3 b; // b takes offsets 32-43
+ layout(offset = 48) vec2 d; // d takes offsets 48-55
+ layout(align = 16) float e; // e takes offsets 64-67
+ layout(align = 2) double f; // f takes offsets 72-79
+ layout(offset = 80) float h; // h takes offsets 80-83
+ layout(align = 64) dvec3 i; // i takes offsets 128-151
+ layout(offset = 164, align = 8) float j; // j takes offsets 168-171
+} specExample;
+
+layout(std430) buffer block430 {
+ vec4 a; // a takes offsets 0-15
+ layout(offset = 32) vec3 b; // b takes offsets 32-43
+ layout(offset = 40) vec2 c; // ERROR, lies within previous member
+ layout(align = 6) double g; // ERROR, 6 is not a power of 2
+ layout(offset=68) double h; // ERROR, offset not aligned
+ layout(align = 0) double i; // ERROR, 0 not a power of 2
+} specExampleErrors430;
+
+layout(std430) buffer block2430 {
+ vec4 a; // a takes offsets 0-15
+ layout(offset = 32) vec3 b; // b takes offsets 32-43
+ layout(offset = 48) vec2 d; // d takes offsets 48-55
+ layout(align = 16) float e; // e takes offsets 64-67
+ layout(align = 2) double f; // f takes offsets 72-79
+ layout(offset = 80) float h; // h takes offsets 80-83
+ layout(align = 64) dvec3 i; // i takes offsets 128-151
+ layout(offset = 164, align = 8) float j; // j takes offsets 168-171
+} specExample430;
+
+layout(std430, align = 128) buffer block24300 {
+ vec4 a;
+ vec3 b;
+ vec2 d;
+ float e;
+ double f;
+ float h;
+ dvec3 i;
+} specExample4300;
+
+layout(std430, align = 128) buffer block24301 {
+ vec4 a;
+ vec3 b;
+ vec2 d;
+ layout(offset=388) float e;
+ layout(align=8) double f;
+ float h;
+ dvec3 i;
+} specExample4301;
+
+int aconst[gl_MaxTransformFeedbackBuffers];
+int bconst[gl_MaxTransformFeedbackInterleavedComponents];
+
+sample in vec3 sampInArray[4];
+
+void interp()
+{
+ interpolateAtCentroid(sampInArray[2].xy);
+ interpolateAtSample(sampInArray[2].x.x, 2);
+}
+
+int layer()
+{
+ return gl_Layer;
+}
diff --git a/chromium/third_party/glslang/src/Test/440.vert b/chromium/third_party/glslang/src/Test/440.vert
new file mode 100644
index 00000000000..d0a055dae97
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/440.vert
@@ -0,0 +1,177 @@
+#version 440
+
+// Note 'location' tests for enhanced layouts are in 330.frag
+
+layout(location = 2, component = 2) in vec2 a;
+layout(location = 2, component = 1) in float b;
+
+layout(location = 3, component = 2) in vec3 c; // ERROR: c overflows components 2 and 3
+
+layout(location = 0, component = 3) in float d[4];
+
+layout(location = 4, component = 0) in vec3 e[5];
+layout(location = 4, component = 3) in float f[5];
+
+layout(location = 9, component = 4) in float g[6]; // ERROR, component too big
+
+layout(location = 4, component = 2) in vec2 h; // component overlap okay for vertex in
+
+layout(location = 3, component = 2) out vec2 i;
+layout(location = 3, component = 0) out vec2 j;
+
+layout(location = 4, component = 2) out vec2 k;
+layout(location = 4, component = 2) out vec2 m; // ERROR, component overlap
+
+layout(location = 2, component = 2) out vec2 n;
+layout(location = 2, component = 0) out vec3 p; // ERROR, component overlap
+
+layout(location = 10, component = 3) out float q[6];
+layout(location = 10, component = 0) out vec3 r[6];
+
+layout(location = 15, component = 3) out float s; // ERROR, overlap
+layout(location = 10, component = 1) out float t; // ERROR, overlap
+
+layout(location = 20, component = 2) out float u;
+layout(location = 20, component = 0) out float v;
+layout(location = 20, component = 3) out float w;
+layout(location = 20, component = 1) out vec2 x; // ERROR, overlap
+
+layout(location = 30, component = 3) out vec2 y; // ERROR, goes to component 4
+layout(location = 31, component = 1) out vec4 z; // ERROR, goes to component 4
+
+layout(location = 32, component = 1) out mat4 ba; // ERROR
+layout(location = 33, component = 1) out struct S {int a;} Ss; // ERROR
+layout(location = 34, component = 1) out bn { int a;} bb; // ERROR
+
+layout(component = 1) out float bc; // ERROR, no location
+
+out blockname {
+ layout(location = 40, component = 2) out float u;
+ layout(location = 40, component = 0) out float v;
+ layout(location = 40, component = 3) out float w;
+ layout(location = 40, component = 1) out vec2 x; // ERROR, overlap
+
+ layout(location = 41, component = 3) out vec2 y; // ERROR, goes to component 4
+ layout(location = 42, component = 1) out vec4 z; // ERROR, goes to component 4
+
+ layout(location = 42, component = 1) out mat4 ba; // ERROR
+ layout(location = 43, component = 1) out S Ss; // ERROR
+} bd;
+
+layout(location = 1, component = 1) out; // ERROR, no global setting
+
+layout(location = 50, component = 3) out int be;
+layout(location = 50, component = 0) out vec3 bf;
+
+out bblck1 {
+ vec4 bbv;
+} bbinst1;
+
+out bblck2 {
+ layout(xfb_offset=64) vec4 bbv;
+} bbinst2;
+
+layout(xfb_buffer = 3, xfb_stride = 64) out; // default buffer is 3
+
+out bblck3 {
+ layout(xfb_offset=16) vec4 bbv; // in xfb_buffer 3
+} bbinst3;
+
+uniform ubblck3 {
+ layout(xfb_offset=16) vec4 bbv; // ERROR, not in a uniform
+} ubbinst3;
+
+layout(xfb_buffer=2, xfb_offset=48, xfb_stride=80) out vec4 bg;
+layout( xfb_offset=32, xfb_stride=64) out vec4 bh;
+
+layout(xfb_offset=48) out; // ERROR
+
+layout(xfb_stride=80, xfb_buffer=2, xfb_offset=16) out bblck4 {
+ vec4 bbv1;
+ vec4 bbv2;
+} bbinst4;
+
+out bblck5 {
+ layout(xfb_offset=0) vec4 bbv1;
+ layout(xfb_stride=64, xfb_buffer=3, xfb_offset=48) vec4 bbv2;
+ layout(xfb_buffer=2) vec4 bbv3; // ERROR, wrong buffer
+} bbinst5;
+
+out layout(xfb_buffer=2) bblck6 {
+ layout(xfb_offset=0) vec4 bbv1;
+ layout(xfb_stride=64, xfb_buffer=3, xfb_offset=32) vec4 bbv2; // ERROR, overlap 32 from bh, and buffer contradiction
+ layout(xfb_buffer=2, xfb_offset=0) vec4 bbv3; // ERROR, overlap 0 from bbinst5
+ layout(xfb_buffer=2) vec4 bbv5;
+ layout(xfb_offset=24) float bbf6; // ERROR, overlap 24 from bbv1 in bbinst4
+} bbinst6;
+
+layout(xfb_stride=48) out; // ERROR, stride of buffer 3
+
+layout(xfb_buffer=1) out; // default buffer is 1
+layout(xfb_offset=4) out float bj;
+layout(xfb_offset=0) out ivec2 bk; // ERROR, overlap 4
+
+layout(xfb_buffer=3, xfb_stride=48) out; // ERROR, stride of buffer 3 (default is now 3)
+layout(xfb_stride=48) out float bl; // ERROR, stride of buffer 3
+
+layout(xfb_stride=48) out bblck7 { // ERROR, stride of buffer 3
+ layout(xfb_stride=64) vec4 bbv1;
+ layout(xfb_stride=32) vec4 bbv2; // ERROR, stride of buffer 3
+} bbinst7;
+
+struct S5 {
+ int i; // 4 bytes plus 4 byte hole
+ double d; // 8 bytes
+ float f; // 4 bytes
+}; // total size = 20
+
+struct T {
+ bool b; // 4 plus 4 byte hole
+ S5 s; // 20
+ vec2 v2; // 8
+}; // total size = 36
+
+out layout(xfb_buffer=0, xfb_offset=0, xfb_stride=92) bblck8 { // ERROR, stride not multiple of 8
+ bool b; // offset 0
+ T t; // offset 8, size 40
+ int i; // offset 40 + 4 = 48
+ mat3x3 m3; // offset 52
+ float f; // offset 52 + 9*4 = 88
+ float g; // ERROR, overflow stride
+} bbinst8;
+
+out layout(xfb_buffer=4) bblck9 {
+ layout(xfb_offset=1) bool b; // ERROR
+ layout(xfb_offset=12) T t; // ERROR
+ layout(xfb_offset=52) mat3x3 m3; // non-multiple of 8 okay
+ layout(xfb_offset=90) int i; // ERROR
+ layout(xfb_offset=98) double d; // ERROR
+ layout(xfb_offset=108) S s; // non-multiple of 8 okay
+} bbinst9;
+
+layout(xfb_buffer=5, xfb_stride=6) out; // link ERROR, stride not multiple of 4
+layout(xfb_offset=0) out float bm;
+
+layout(xfb_buffer=6, xfb_stride=2000) out; // ERROR, stride too big
+
+out layout(xfb_buffer=7, xfb_offset=0) bblck10 { // link ERROR, implicit stride too big
+ dmat4x4 m1;
+ dmat4x4 m2;
+ float f;
+} bbinst10;
+
+int drawParamsBad()
+{
+ return gl_BaseVertexARB + gl_BaseInstanceARB + gl_DrawIDARB; // ERROR, extension not requested
+}
+
+#extension GL_ARB_shader_draw_parameters: enable
+
+int drawParams()
+{
+ return gl_BaseVertexARB + gl_BaseInstanceARB + gl_DrawIDARB;
+ gl_BaseVertexARB = 3; // ERROR, can't write to shader 'in'
+ gl_BaseInstanceARB = 3; // ERROR, can't write to shader 'in'
+ gl_DrawIDARB = 3; // ERROR, can't write to shader 'in'
+ glBaseInstanceARB; // ERROR, not defined
+}
diff --git a/chromium/third_party/glslang/src/Test/450.comp b/chromium/third_party/glslang/src/Test/450.comp
new file mode 100644
index 00000000000..4872fb92a0a
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/450.comp
@@ -0,0 +1 @@
+#version 450 core
diff --git a/chromium/third_party/glslang/src/Test/450.frag b/chromium/third_party/glslang/src/Test/450.frag
new file mode 100644
index 00000000000..e9c67466f26
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/450.frag
@@ -0,0 +1,56 @@
+#version 450 core
+
+in float in1;
+in vec2 in2;
+in vec3 in3;
+in vec4 in4;
+
+void main()
+{
+ vec2 v2 = dFdxFine(in2);
+ vec3 v3 = dFdyCoarse(in3);
+ vec4 v4 = fwidth(in4);
+ v4 = dFdyFine(in4);
+ v3 = dFdyFine(in3);
+ float f = dFdx(in1) + dFdxFine(in1) + dFdxCoarse(in1);
+ v4 = fwidthCoarse(in4) + fwidthFine(in4);
+
+ float cull = gl_CullDistance[2];
+ float consts = gl_MaxCullDistances + gl_MaxCombinedClipAndCullDistances + gl_MaxSamples;
+
+ if (gl_HelperInvocation)
+ ++v4;
+
+ int sum = gl_MaxVertexImageUniforms +
+ gl_MaxFragmentImageUniforms +
+ gl_MaxComputeImageUniforms +
+ gl_MaxCombinedImageUniforms +
+ gl_MaxCombinedShaderOutputResources;
+
+ bool b1, b3, b;
+ uint uin;
+ bvec2 b2 = mix(bvec2(b1), bvec2(b3), bvec2(b));
+ uint um = mix(uin, uin, b);
+ ivec3 im3 = mix(ivec3(uin), ivec3(uin), bvec3(b));
+}
+
+uniform sampler2DMS s2dms;
+uniform usampler2DMSArray us2dmsa;
+layout(rgba32i) uniform iimage2DMS ii2dms;
+layout(rgba32f) uniform image2DMSArray i2dmsa;
+
+void foo()
+{
+ int s = textureSamples(s2dms);
+ s += textureSamples(us2dmsa);
+ s += imageSamples(ii2dms);
+ s += imageSamples(i2dmsa);
+ float f = imageAtomicExchange(i2dmsa, ivec3(in3), 2, 4.5);
+}
+
+in float gl_CullDistance[6];
+
+float cull(int i)
+{
+ return (i >= 6) ? gl_CullDistance[5] : gl_CullDistance[i];
+}
diff --git a/chromium/third_party/glslang/src/Test/450.geom b/chromium/third_party/glslang/src/Test/450.geom
new file mode 100644
index 00000000000..a74a9f99479
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/450.geom
@@ -0,0 +1,14 @@
+#version 450 core
+
+in gl_PerVertex {
+ float gl_CullDistance[3];
+} gl_in[];
+
+out gl_PerVertex {
+ float gl_CullDistance[3];
+};
+
+void main()
+{
+ gl_CullDistance[2] = gl_in[1].gl_CullDistance[2];
+}
diff --git a/chromium/third_party/glslang/src/Test/450.tesc b/chromium/third_party/glslang/src/Test/450.tesc
new file mode 100644
index 00000000000..161f80230b1
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/450.tesc
@@ -0,0 +1,14 @@
+#version 450 core
+
+in gl_PerVertex {
+ float gl_CullDistance[3];
+} gl_in[gl_MaxPatchVertices];
+
+out gl_PerVertex {
+ float gl_CullDistance[3];
+} gl_out[4];
+
+void main()
+{
+ gl_out[gl_InvocationID].gl_CullDistance[2] = gl_in[1].gl_CullDistance[2];
+}
diff --git a/chromium/third_party/glslang/src/Test/450.tese b/chromium/third_party/glslang/src/Test/450.tese
new file mode 100644
index 00000000000..cfc142751e0
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/450.tese
@@ -0,0 +1,14 @@
+#version 450 core
+
+in gl_PerVertex {
+ float gl_CullDistance[3];
+} gl_in[gl_MaxPatchVertices];
+
+out gl_PerVertex {
+ float gl_CullDistance[3];
+};
+
+void main()
+{
+ gl_CullDistance[2] = gl_in[1].gl_CullDistance[2];
+}
diff --git a/chromium/third_party/glslang/src/Test/450.vert b/chromium/third_party/glslang/src/Test/450.vert
new file mode 100644
index 00000000000..3844a5e176d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/450.vert
@@ -0,0 +1,23 @@
+#version 450 core
+
+out gl_PerVertex {
+ float gl_CullDistance[3];
+};
+
+void main()
+{
+ gl_CullDistance[2] = 4.5;
+}
+
+out bool outb; // ERROR
+out sampler2D outo; // ERROR
+out float outa[4];
+out float outaa[4][2];
+struct S { float f; };
+out S outs;
+out S[4] outasa;
+out S outsa[4];
+struct SA { float f[4]; };
+out SA outSA;
+struct SS { float f; S s; };
+out SS outSS;
diff --git a/chromium/third_party/glslang/src/Test/Operations.frag b/chromium/third_party/glslang/src/Test/Operations.frag
new file mode 100644
index 00000000000..1ae33903da9
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/Operations.frag
@@ -0,0 +1,166 @@
+#version 130
+
+uniform ivec4 uiv4;
+uniform vec4 uv4;
+uniform bool ub;
+uniform bvec4 ub41, ub42;
+uniform float uf;
+uniform int ui;
+
+
+uniform uvec4 uuv4;
+uniform uint uui;
+
+
+void main()
+{
+ vec4 v;
+ float f;
+ bool b;
+ bvec4 bv4;
+ int i;
+
+ uint u;
+
+
+ // floating point
+ v = radians(uv4);
+ v += degrees(v);
+ v += (i = ui*ui, sin(v));
+ v += cos(v);
+ v += tan(v);
+ v += asin(v);
+ v += acos(v);
+
+ v += atan(v);
+ v += sinh(v);
+ v += cosh(v);
+ v += tanh(v);
+ v += asinh(v);
+ v += acosh(v);
+ v += atanh(v);
+
+ v += pow(v, v);
+ v += exp(v);
+ v += log(v);
+ v += exp2(v);
+ v += log2(v);
+ v += sqrt(v);
+ v += inversesqrt(v);
+ v += abs(v);
+ v += sign(v);
+ v += floor(v);
+
+
+ v += trunc(v);
+ v += round(v);
+ v += roundEven(v);
+
+
+ v += ceil(v);
+ v += fract(v);
+ v += mod(v, v);
+ v += mod(v, v.x);
+
+
+ v += modf(v, v);
+
+
+ v += min(v, uv4);
+ v += max(v, uv4);
+ v += clamp(v, uv4, uv4);
+ v += mix(v,v,v);
+
+
+ v += mix(v,v,bv4);
+ v += intBitsToFloat(ivec4(i));
+ v += uintBitsToFloat(uv4);
+ v += fma(v,v,v);
+ v += frexp(v);
+ v += ldexp(v);
+ v += unpackUnorm2x16(v);
+ v += unpackUnorm4x8(v);
+ v += unpackSnorm4x8(v);
+
+
+ v += step(v,v);
+ v += smoothstep(v,v,v);
+ v += step(uf,v);
+ v += smoothstep(uf,uf,v);
+ v += normalize(v);
+ v += faceforward(v, v, v);
+ v += reflect(v, v);
+ v += refract(v, v, uf);
+ v += dFdx(v);
+ v += dFdy(v);
+ v += fwidth(v);
+ //noise*(v);
+
+
+ // signed integer
+ i += abs(ui);
+ i += sign(i);
+ i += min(i, ui);
+ 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);
+ i += uui & i; // ERRORs, no int/uint conversions before 400
+ i += uui ^ i;
+ i += i | uui;
+
+ // bool
+
+ b = isnan(uf);
+ b = isinf(v.y);
+
+ b = any(lessThan(v, uv4));
+ b = (b && any(lessThanEqual(v, uv4)));
+ b = (b && any(greaterThan(v, uv4)));
+ b = (b && any(greaterThanEqual(v, uv4)));
+ b = (b && any(equal(ub41, ub42)));
+ b = (b && any(notEqual(ub41, ub42)));
+ b = (b && any(ub41));
+ b = (b && all(ub41));
+ b = (b && any(not(ub41)));
+
+ i = ((i + ui) * i - ui) / i;
+ i = i % ui;
+ if (i == ui || i != ui && i == ui ^^ i != 2)
+ ++i;
+
+ f = ((uf + uf) * uf - uf) / uf;
+
+ f += length(v);
+ f += distance(v, v);
+ f += dot(v, v);
+ f += dot(f, uf);
+ f += cross(v.xyz, v.xyz).x;
+
+ if (f == uf || f != uf && f != 2.0)
+ ++f;
+
+ i &= ui;
+ i |= 0x42;
+ i ^= ui;
+ i %= 17;
+ i >>= 2;
+ i <<= ui;
+ i = ~i;
+ b = !b;
+
+ gl_FragColor = b ? vec4(i) + vec4(f) + v : v;
+}
diff --git a/chromium/third_party/glslang/src/Test/aggOps.frag b/chromium/third_party/glslang/src/Test/aggOps.frag
new file mode 100644
index 00000000000..7e8fa21679d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/aggOps.frag
@@ -0,0 +1,51 @@
+#version 130
+
+uniform sampler2D sampler;
+varying mediump vec2 coord;
+
+varying vec4 u, w;
+
+struct s1 {
+ int i;
+ float f;
+};
+
+struct s2 {
+ int i;
+ float f;
+ s1 s1_1;
+};
+
+uniform s1 foo1;
+uniform s2 foo2a;
+uniform s2 foo2b;
+
+void main()
+{
+ vec4 v;
+ s1 a[3], b[3];
+ a = s1[3](s1(int(u.x), u.y), s1(int(u.z), u.w), s1(14, 14.0));
+ b = s1[3](s1(17, 17.0), s1(int(w.x), w.y), s1(int(w.z), w.w));
+
+ if (foo2a == foo2b)
+ v = texture2D(sampler, coord);
+ else
+ v = texture2D(sampler, 2.0*coord);
+
+ if (u == v)
+ v *= 3.0;
+
+ if (u != v)
+ v *= 4.0;
+
+ if (coord == v.yw)
+ v *= 5.0;
+
+ if (a == b)
+ v *= 6.0;
+
+ if (a != b)
+ v *= 7.0;
+
+ gl_FragColor = v;
+}
diff --git a/chromium/third_party/glslang/src/Test/always-discard.frag b/chromium/third_party/glslang/src/Test/always-discard.frag
new file mode 100644
index 00000000000..9ec493a5874
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/always-discard.frag
@@ -0,0 +1,36 @@
+#version 110
+varying vec2 tex_coord;
+
+void main (void)
+{
+ vec4 white = vec4(1.0);
+ vec4 black = vec4(0.2);
+ vec4 color = white;
+
+ // First, cut out our circle
+ float x = tex_coord.x*2.0 - 1.0;
+ float y = tex_coord.y*2.0 - 1.0;
+
+ float radius = sqrt(x*x + y*y);
+ if (radius > 1.0) {
+ if (radius > 1.1) {
+ ++color;
+ }
+
+ gl_FragColor = color;
+
+ if (radius > 1.2) {
+ ++color;
+ }
+
+ }
+
+ discard;
+
+ // If we're near an edge, darken us a tiny bit
+ if (radius >= 0.75)
+ color -= abs(pow(radius, 16.0)/2.0);
+
+ gl_FragColor = color;
+
+}
diff --git a/chromium/third_party/glslang/src/Test/always-discard2.frag b/chromium/third_party/glslang/src/Test/always-discard2.frag
new file mode 100644
index 00000000000..4d9e957f888
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/always-discard2.frag
@@ -0,0 +1,19 @@
+#version 110
+varying vec2 tex_coord;
+
+void main (void)
+{
+ vec4 white = vec4(1.0);
+ vec4 black = vec4(0.2);
+ vec4 color = white;
+
+ // First, cut out our circle
+ float x = tex_coord.x*2.0 - 1.0;
+ float y = tex_coord.y*2.0 - 1.0;
+
+ discard;
+
+
+ gl_FragColor = color;
+
+}
diff --git a/chromium/third_party/glslang/src/Test/array.frag b/chromium/third_party/glslang/src/Test/array.frag
new file mode 100644
index 00000000000..7f0e43210d8
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/array.frag
@@ -0,0 +1,106 @@
+#version 130
+
+float gu[];
+float g4[4];
+float g5[5];
+
+uniform int a;
+
+float[4] foo(float a[5])
+{
+ return float[](a[0], a[1], a[2], a[3]);
+}
+
+void bar(float[5]) {}
+
+void main()
+{
+ {
+ float gu[2]; // okay, new scope
+
+ gu[2] = 4.0; // ERROR, overflow
+ }
+
+ gu[2] = 4.0; // okay
+
+ gu[3] = 3.0;
+ gu[a] = 5.0; // ERROR
+
+ g4 = foo(g5);
+ g5 = g4; // ERROR
+ gu = g4; // ERROR
+
+ foo(gu); // ERROR
+ bar(g5);
+
+ if (float[4](1.0, 2.0, 3.0, 4.0) == g4)
+ gu[0] = 2.0;
+
+ float u[];
+ u[2] = 3.0; // okay
+ float u[5];
+ u[5] = 5.0; // ERROR
+ foo(u); // okay
+
+ gl_FragData[1000] = vec4(1.0); // ERROR
+ gl_FragData[-1] = vec4(1.0); // ERROR
+ gl_FragData[3] = vec4(1.0);
+
+ const int ca[] = int[](3, 2);
+ int sum = ca[0];
+ sum += ca[1];
+ sum += ca[2]; // ERROR
+
+ const int ca3[3] = int[](3, 2); // ERROR
+ int ica[] = int[](3, 2);
+ int ica3[3] = int[](3, 2); // ERROR
+ ica[3.1] = 3; // ERROR
+ ica[u[1]] = 4; // ERROR
+}
+
+int[] foo213234(); // ERROR
+int foo234234(float[]); // ERROR
+int foo234235(vec2[] v); // ERROR
+
+vec3 guns[];
+float f = guns[7];
+
+void foo()
+{
+ int uns[];
+ uns[3] = 40;
+ uns[1] = 30;
+ guns[2] = vec3(2.4);
+
+ float unsf[];
+ bar(unsf); // ERROR
+}
+
+float[] foo2() // ERROR
+{
+ float f[];
+ return f;
+ float g[9];
+ return g; // ERROR
+}
+
+float gUnusedUnsized[];
+
+void foo3()
+{
+ float resize1[];
+ resize1[2] = 4.0;
+ resize1.length(); // ERROR
+ float resize1[3];
+ resize1.length();
+
+ float resize2[];
+ resize2[5] = 4.0;
+ float resize2[5]; // should be ERROR, but is not
+ resize2.length();
+ resize2[5] = 4.0; // ERROR
+}
+
+int[] i = int[](); // ERROR, need constructor arguments
+float emptyA[];
+float b = vec4(emptyA); // ERROR, array can't be a constructor argument
diff --git a/chromium/third_party/glslang/src/Test/array100.frag b/chromium/third_party/glslang/src/Test/array100.frag
new file mode 100644
index 00000000000..b77aedf6e54
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/array100.frag
@@ -0,0 +1,70 @@
+#version 100
+
+float gu[]; // ERROR
+float g4[4];
+float g5[5];
+
+uniform int a;
+
+float[4] foo(float[5] a) // ERROR // ERROR
+{
+ return float[](a[0], a[1], a[2], a[3]); // ERROR
+}
+
+void bar(float[5]) {}
+
+void main()
+{
+ {
+ float gu[2]; // okay, new scope
+
+ gu[2] = 4.0; // ERROR, overflow
+ }
+
+ g4 = foo(g5); // ERROR
+ g5 = g4; // ERROR
+ gu = g4; // ERROR
+
+ foo(gu); // ERROR
+ bar(g5);
+
+ if (float[4](1.0, 2.0, 3.0, 4.0) == g4) // ERROR
+ gu[0] = 2.0;
+
+ float u[5];
+ u[5] = 5.0; // ERROR
+ foo(u); // okay
+
+ gl_FragData[1000] = vec4(1.0); // ERROR
+ gl_FragData[-1] = vec4(1.0); // ERROR
+ gl_FragData[3] = vec4(1.0);
+}
+
+struct SA {
+ vec3 v3;
+ vec2 v2[4];
+};
+
+struct SB {
+ vec4 v4;
+ SA sa;
+};
+
+SB bar9()
+{
+ SB s;
+ return s; // ERROR
+}
+
+void bar10(SB s) // okay
+{
+}
+
+void bar11()
+{
+ SB s1, s2;
+ s1 = s2; // ERROR
+ bar10(s1);
+ s2 = bar9(); // ERROR
+ SB initSb = s1; // ERROR
+}
diff --git a/chromium/third_party/glslang/src/Test/atomic_uint.frag b/chromium/third_party/glslang/src/Test/atomic_uint.frag
new file mode 100644
index 00000000000..1234435695c
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/atomic_uint.frag
@@ -0,0 +1,48 @@
+#version 420 core
+
+layout(binding = 0) uniform atomic_uint counter;
+
+uint func(atomic_uint c)
+{
+ return atomicCounterIncrement(c);
+}
+
+uint func2(out atomic_uint c) // ERROR
+{
+ return counter; // ERROR, type mismatch
+ return atomicCounter(counter);
+}
+
+void main()
+{
+ atomic_uint non_uniform_counter; // ERROR
+ uint val = atomicCounter(counter);
+ atomicCounterDecrement(counter);
+}
+
+layout(binding = 1, offset = 3) uniform atomic_uint countArr[4];
+uniform int i;
+
+void opac()
+{
+ counter + counter; // ERROR
+ -counter; // ERROR
+ int a[3];
+ a[counter]; // ERROR
+ countArr[2];
+ countArr[i];
+ counter = 4; // ERROR
+}
+
+in atomic_uint acin; // ERROR
+atomic_uint acg; // ERROR
+uniform atomic_uint;
+uniform atomic_uint aNoBind; // ERROR, no binding
+layout(binding=0, offset=32) uniform atomic_uint aOffset;
+layout(binding=0, offset=4) uniform atomic_uint;
+layout(binding=0) uniform atomic_uint bar3; // offset is 4
+layout(binding=0) uniform atomic_uint ac[3]; // offset = 8
+layout(binding=0) uniform atomic_uint ad; // offset = 20
+layout(offset=8) uniform atomic_uint bar4; // ERROR, no binding
+layout(binding = 0, offset = 12) uniform atomic_uint overlap; // ERROR, overlapping offsets
+layout(binding = 20) uniform atomic_uint bigBind; // ERROR, binding too big
diff --git a/chromium/third_party/glslang/src/Test/badChars.frag b/chromium/third_party/glslang/src/Test/badChars.frag
new file mode 100644
index 00000000000..d67bf3a5e0b
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/badChars.frag
@@ -0,0 +1,6 @@
+#ifþ
+#endif
+#error AÿB
+#if
+#endif
+int aÿ
diff --git a/chromium/third_party/glslang/src/Test/baseResults/100.frag.out b/chromium/third_party/glslang/src/Test/baseResults/100.frag.out
new file mode 100644
index 00000000000..7af716d84b7
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/100.frag.out
@@ -0,0 +1,734 @@
+100.frag
+ERROR: 0:3: '{ } style initializers' : not supported with this profile: es
+ERROR: 0:3: 'initializer' : not supported for this version or the enabled extensions
+ERROR: 0:3: 'array initializer' : not supported for this version or the enabled extensions
+ERROR: 0:4: '#version' : must occur first in shader
+ERROR: 0:7: 'attribute' : not supported in this stage: fragment
+ERROR: 0:7: 'float' : type requires declaration of default precision qualifier
+ERROR: 0:9: '=' : cannot convert from 'const int' to 'global mediump float'
+ERROR: 0:11: 'uniform block' : not supported for this version or the enabled extensions
+ERROR: 0:19: 'foo' : no matching overloaded function found
+ERROR: 0:20: 'bit shift left' : not supported for this version or the enabled extensions
+ERROR: 0:21: 'bit shift right' : not supported for this version or the enabled extensions
+ERROR: 0:22: 'array comparison' : not supported for this version or the enabled extensions
+ERROR: 0:24: 'bitwise and' : not supported for this version or the enabled extensions
+ERROR: 0:25: '%' : not supported for this version or the enabled extensions
+ERROR: 0:26: 'bitwise inclusive or' : not supported for this version or the enabled extensions
+ERROR: 0:27: 'bit-shift right assign' : not supported for this version or the enabled extensions
+ERROR: 0:28: 'bit-shift left assign' : not supported for this version or the enabled extensions
+ERROR: 0:29: '%=' : not supported for this version or the enabled extensions
+ERROR: 0:36: 'array assignment' : not supported for this version or the enabled extensions
+ERROR: 0:37: 'array comparison' : not supported for this version or the enabled extensions
+ERROR: 0:38: 'array comparison' : not supported for this version or the enabled extensions
+ERROR: 0:40: 'switch' : Reserved word.
+ERROR: 0:40: 'switch statements' : not supported for this version or the enabled extensions
+ERROR: 0:45: '' : array size required
+ERROR: 0:47: 'invariant' : can only apply to an output, or to an input in a non-vertex stage
+
+ERROR: 0:49: 'invariant' : can only apply to an output, or to an input in a non-vertex stage
+
+ERROR: 0:50: 'invariant' : can only apply to an output, or to an input in a non-vertex stage
+
+ERROR: 0:56: 'invariant' : not allowed in nested scope
+ERROR: 0:56: 'invariant' : can only apply to an output, or to an input in a non-vertex stage
+
+ERROR: 0:57: 'invariant' : not allowed in nested scope
+ERROR: 0:57: 'invariant' : can only apply to an output, or to an input in a non-vertex stage
+
+ERROR: 0:59: 'invariant' : not allowed in nested scope
+ERROR: 0:59: 'invariant' : can only apply to an output, or to an input in a non-vertex stage
+
+ERROR: 0:63: 'invariant' : can only apply to an output, or to an input in a non-vertex stage
+
+ERROR: 0:64: 'invariant' : can only apply to an output, or to an input in a non-vertex stage
+
+ERROR: 0:66: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: glob2D
+ERROR: 0:69: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: v2D
+ERROR: 0:71: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: vary2D
+ERROR: 0:75: 'in for stage inputs' : not supported for this version or the enabled extensions
+ERROR: 0:77: 'invariant' : can only apply to an output, or to an input in a non-vertex stage
+
+ERROR: 0:75: 'g' : cannot use storage or interpolation qualifiers on structure members
+ERROR: 0:76: 'h' : cannot use storage or interpolation qualifiers on structure members
+ERROR: 0:77: 'i' : cannot use invariant qualifier on structure members
+ERROR: 0:80: 'sampler3D' : Reserved word.
+ERROR: 0:80: 'sampler/image' : type requires declaration of default precision qualifier
+ERROR: 0:91: 'dFdx' : required extension not requested: GL_OES_standard_derivatives
+ERROR: 0:92: 'dFdy' : required extension not requested: GL_OES_standard_derivatives
+ERROR: 0:93: 'fwidth' : required extension not requested: GL_OES_standard_derivatives
+ERROR: 0:103: 'gl_FragDepth' : undeclared identifier
+ERROR: 0:104: 'gl_FragDepthEXT' : required extension not requested: GL_EXT_frag_depth
+ERROR: 0:111: 'gl_FragDepth' : undeclared identifier
+ERROR: 0:134: 'texture3D' : no matching overloaded function found
+ERROR: 0:135: 'texture2DProjLod' : no matching overloaded function found
+ERROR: 0:137: 'bitwise not' : not supported for this version or the enabled extensions
+ERROR: 0:138: 'bitwise inclusive or' : not supported for this version or the enabled extensions
+ERROR: 0:139: 'bitwise and' : not supported for this version or the enabled extensions
+ERROR: 0:145: 'a' : redefinition
+ERROR: 0:147: 'texture2DProjGradEXT' : required extension not requested: GL_EXT_shader_texture_lod
+ERROR: 0:151: 'floating-point suffix' : not supported for this version or the enabled extensions
+ERROR: 0:152: 'floating-point suffix' : not supported for this version or the enabled extensions
+ERROR: 0:167: 'highp' : overloaded functions must have the same parameter precision qualifiers for argument 2
+ERROR: 0:170: 'multiple prototypes for same function' : not supported for this version or the enabled extensions
+ERROR: 0:177: 'multiple prototypes for same function' : not supported for this version or the enabled extensions
+ERROR: 0:179: 'fragment-shader struct input' : not supported for this version or the enabled extensions
+ERROR: 0:183: 'v' : illegal use of type 'void'
+ERROR: 0:184: 'void' : cannot be an argument type except for '(void)'
+ERROR: 0:185: 'v' : illegal use of type 'void'
+ERROR: 0:185: 'void' : cannot be an argument type except for '(void)'
+ERROR: 0:190: '.' : cannot apply to an array: y
+ERROR: 0:191: '.' : cannot apply to an array: zy
+ERROR: 0:192: '.' : cannot apply to an array: nothing
+ERROR: 0:193: '.length' : not supported for this version or the enabled extensions
+ERROR: 0:194: '.' : cannot apply to an array: method
+ERROR: 0:194: 'a' : can't use function syntax on variable
+ERROR: 0:214: 'non-constant global initializer' : not supported with this profile: es
+ERROR: 0:3000: '#error' : line of this error should be 3000
+ERROR: 0:3002: '' : syntax error
+ERROR: 77 compilation errors. No code generated.
+
+
+Shader version: 100
+Requested GL_EXT_frag_depth
+Requested GL_EXT_shader_texture_lod
+Requested GL_OES_EGL_image_external
+Requested GL_OES_standard_derivatives
+Requested GL_OES_texture_3D
+ERROR: node is still EOpNull!
+0:3 Sequence
+0:3 move second child to first child (temp 3-element array of mediump int)
+0:3 'a' (global 3-element array of mediump int)
+0:3 Constant:
+0:3 2 (const int)
+0:3 3 (const int)
+0:3 4 (const int)
+0:17 Function Definition: main( (global void)
+0:17 Function Parameters:
+0:19 Sequence
+0:19 Constant:
+0:19 0.000000
+0:20 Sequence
+0:20 move second child to first child (temp mediump int)
+0:20 's' (temp mediump int)
+0:20 Constant:
+0:20 16 (const int)
+0:21 move second child to first child (temp mediump int)
+0:21 's' (temp mediump int)
+0:21 Constant:
+0:21 4 (const int)
+0:22 Test condition and select (temp void)
+0:22 Condition
+0:22 Compare Equal (temp bool)
+0:22 'a' (global 3-element array of mediump int)
+0:22 'a' (global 3-element array of mediump int)
+0:22 true case is null
+0:24 move second child to first child (temp mediump int)
+0:24 'b' (temp mediump int)
+0:24 bitwise and (temp mediump int)
+0:24 'c' (temp mediump int)
+0:24 Constant:
+0:24 4 (const int)
+0:25 move second child to first child (temp mediump int)
+0:25 'b' (temp mediump int)
+0:25 mod (temp mediump int)
+0:25 'c' (temp mediump int)
+0:25 Constant:
+0:25 4 (const int)
+0:26 move second child to first child (temp mediump int)
+0:26 'b' (temp mediump int)
+0:26 inclusive-or (temp mediump int)
+0:26 'c' (temp mediump int)
+0:26 Constant:
+0:26 4 (const int)
+0:27 right shift second child into first child (temp mediump int)
+0:27 'b' (temp mediump int)
+0:27 Constant:
+0:27 2 (const int)
+0:28 left shift second child into first child (temp mediump int)
+0:28 'b' (temp mediump int)
+0:28 Constant:
+0:28 2 (const int)
+0:29 mod second child into first child (temp mediump int)
+0:29 'b' (temp mediump int)
+0:29 Constant:
+0:29 3 (const int)
+0:36 move second child to first child (temp structure{temp mediump float f, temp 10-element array of mediump float a})
+0:36 's1' (temp structure{temp mediump float f, temp 10-element array of mediump float a})
+0:36 's2' (temp structure{temp mediump float f, temp 10-element array of mediump float a})
+0:37 Test condition and select (temp void)
+0:37 Condition
+0:37 Compare Equal (temp bool)
+0:37 's1' (temp structure{temp mediump float f, temp 10-element array of mediump float a})
+0:37 's2' (temp structure{temp mediump float f, temp 10-element array of mediump float a})
+0:37 true case is null
+0:38 Test condition and select (temp void)
+0:38 Condition
+0:38 Compare Not Equal (temp bool)
+0:38 's1' (temp structure{temp mediump float f, temp 10-element array of mediump float a})
+0:38 's2' (temp structure{temp mediump float f, temp 10-element array of mediump float a})
+0:38 true case is null
+0:40 'b' (temp mediump int)
+0:54 Function Definition: foo10( (global void)
+0:54 Function Parameters:
+0:67 Function Definition: f11(s21; (global void)
+0:67 Function Parameters:
+0:67 'p2d' (in lowp sampler2D)
+0:87 Function Definition: foo234( (global void)
+0:87 Function Parameters:
+0:89 Sequence
+0:89 texture (global highp 4-component vector of float)
+0:89 's3D2' (uniform highp sampler3D)
+0:89 Constant:
+0:89 0.200000
+0:89 0.200000
+0:89 0.200000
+0:89 Constant:
+0:89 0.200000
+0:90 textureProj (global highp 4-component vector of float)
+0:90 's3D2' (uniform highp sampler3D)
+0:90 direct index (smooth temp mediump 4-component vector of float)
+0:90 'v' (smooth in 3-element array of mediump 4-component vector of float)
+0:90 Constant:
+0:90 1 (const int)
+0:90 Constant:
+0:90 0.400000
+0:91 dPdx (global mediump 4-component vector of float)
+0:91 direct index (smooth temp mediump 4-component vector of float)
+0:91 'v' (smooth in 3-element array of mediump 4-component vector of float)
+0:91 Constant:
+0:91 0 (const int)
+0:92 Constant:
+0:92 0.000000
+0:93 fwidth (global mediump float)
+0:93 'f13' (invariant global mediump float)
+0:98 Function Definition: foo236( (global void)
+0:98 Function Parameters:
+0:100 Sequence
+0:100 dPdx (global mediump 4-component vector of float)
+0:100 direct index (smooth temp mediump 4-component vector of float)
+0:100 'v' (smooth in 3-element array of mediump 4-component vector of float)
+0:100 Constant:
+0:100 0 (const int)
+0:101 Constant:
+0:101 0.000000
+0:102 fwidth (global mediump float)
+0:102 'f13' (invariant global mediump float)
+0:103 move second child to first child (temp mediump float)
+0:103 'gl_FragDepth' (temp mediump float)
+0:103 'f13' (invariant global mediump float)
+0:104 move second child to first child (temp highp float)
+0:104 'gl_FragDepthEXT' (gl_FragDepth highp float FragDepth)
+0:104 'f13' (invariant global mediump float)
+0:109 Function Definition: foo239( (global void)
+0:109 Function Parameters:
+0:111 Sequence
+0:111 move second child to first child (temp mediump float)
+0:111 'gl_FragDepth' (temp mediump float)
+0:111 'f13' (invariant global mediump float)
+0:112 move second child to first child (temp highp float)
+0:112 'gl_FragDepthEXT' (gl_FragDepth highp float FragDepth)
+0:112 'f13' (invariant global mediump float)
+0:119 Function Definition: foo245( (global void)
+0:119 Function Parameters:
+0:121 Sequence
+0:121 texture (global lowp 4-component vector of float)
+0:121 'sExt' (uniform lowp samplerExternalOES)
+0:121 Constant:
+0:121 0.200000
+0:121 0.200000
+0:122 textureProj (global lowp 4-component vector of float)
+0:122 'sExt' (uniform lowp samplerExternalOES)
+0:122 Construct vec3 (temp lowp 3-component vector of float)
+0:122 'f13' (invariant global mediump float)
+0:123 textureProj (global lowp 4-component vector of float)
+0:123 'sExt' (uniform lowp samplerExternalOES)
+0:123 direct index (smooth temp mediump 4-component vector of float)
+0:123 'v' (smooth in 3-element array of mediump 4-component vector of float)
+0:123 Constant:
+0:123 2 (const int)
+0:130 Function Definition: foo246( (global void)
+0:130 Function Parameters:
+0:132 Sequence
+0:132 texture (global mediump 4-component vector of float)
+0:132 'mediumExt' (uniform mediump samplerExternalOES)
+0:132 Constant:
+0:132 0.200000
+0:132 0.200000
+0:133 textureProj (global highp 4-component vector of float)
+0:133 'highExt' (uniform highp samplerExternalOES)
+0:133 direct index (smooth temp mediump 4-component vector of float)
+0:133 'v' (smooth in 3-element array of mediump 4-component vector of float)
+0:133 Constant:
+0:133 2 (const int)
+0:134 Constant:
+0:134 0.000000
+0:135 Constant:
+0:135 0.000000
+0:137 Bitwise not (temp mediump int)
+0:137 'a' (temp mediump int)
+0:138 inclusive-or (temp mediump int)
+0:138 'a' (temp mediump int)
+0:138 'a' (temp mediump int)
+0:139 bitwise and (temp mediump int)
+0:139 'a' (temp mediump int)
+0:139 'a' (temp mediump int)
+0:145 Function Definition: foo203940(i1;f1;f1; (global mediump int)
+0:145 Function Parameters:
+0:145 'a' (in mediump int)
+0:145 'b' (in mediump float)
+0:147 Sequence
+0:147 textureProjGrad (global lowp 4-component vector of float)
+0:147 's2Dg' (uniform lowp sampler2D)
+0:147 Construct vec3 (temp mediump 3-component vector of float)
+0:147 'f13' (invariant global mediump float)
+0:147 'uv2' (invariant uniform mediump 2-component vector of float)
+0:147 'uv2' (invariant uniform mediump 2-component vector of float)
+0:148 Branch: Return with expression
+0:148 'a' (in mediump int)
+0:151 Sequence
+0:151 move second child to first child (temp mediump float)
+0:151 'f123' (global mediump float)
+0:151 Constant:
+0:151 4.000000
+0:152 Sequence
+0:152 move second child to first child (temp mediump float)
+0:152 'f124' (global mediump float)
+0:152 Constant:
+0:152 50000000000.000000
+0:158 Function Definition: foo323433( (global void)
+0:158 Function Parameters:
+0:160 Sequence
+0:160 textureLod (global lowp 4-component vector of float)
+0:160 's2Dg' (uniform lowp sampler2D)
+0:160 'uv2' (invariant uniform mediump 2-component vector of float)
+0:160 'f13' (invariant global mediump float)
+0:161 textureProjGrad (global lowp 4-component vector of float)
+0:161 's2Dg' (uniform lowp sampler2D)
+0:161 Construct vec3 (temp mediump 3-component vector of float)
+0:161 'f13' (invariant global mediump float)
+0:161 'uv2' (invariant uniform mediump 2-component vector of float)
+0:161 'uv2' (invariant uniform mediump 2-component vector of float)
+0:162 textureGrad (global lowp 4-component vector of float)
+0:162 's2Dg' (uniform lowp sampler2D)
+0:162 'uv2' (invariant uniform mediump 2-component vector of float)
+0:162 'uv2' (invariant uniform mediump 2-component vector of float)
+0:162 'uv2' (invariant uniform mediump 2-component vector of float)
+0:163 textureGrad (global lowp 4-component vector of float)
+0:163 'sCube' (uniform lowp samplerCube)
+0:163 Construct vec3 (temp lowp 3-component vector of float)
+0:163 'f13' (invariant global mediump float)
+0:163 Construct vec3 (temp lowp 3-component vector of float)
+0:163 'f13' (invariant global mediump float)
+0:163 Construct vec3 (temp lowp 3-component vector of float)
+0:163 'f13' (invariant global mediump float)
+0:167 Function Definition: fgfg(f1;i1; (global mediump int)
+0:167 Function Parameters:
+0:167 'f' (in mediump float)
+0:167 'i' (in highp int)
+0:167 Sequence
+0:167 Branch: Return with expression
+0:167 Constant:
+0:167 2 (const int)
+0:173 Function Definition: gggf(f1; (global mediump int)
+0:173 Function Parameters:
+0:173 'f' (in mediump float)
+0:173 Sequence
+0:173 Branch: Return with expression
+0:173 Constant:
+0:173 2 (const int)
+0:175 Function Definition: agggf(f1; (global mediump int)
+0:175 Function Parameters:
+0:175 'f' (in mediump float)
+0:175 Sequence
+0:175 Branch: Return with expression
+0:175 Constant:
+0:175 2 (const int)
+0:187 Function Definition: badswizzle( (global void)
+0:187 Function Parameters:
+0:? Sequence
+0:190 'a' (temp 5-element array of mediump 3-component vector of float)
+0:191 'a' (temp 5-element array of mediump 3-component vector of float)
+0:192 'a' (temp 5-element array of mediump 3-component vector of float)
+0:193 Constant:
+0:193 5 (const int)
+0:194 Constant:
+0:194 0.000000
+0:199 Function Definition: fooinittest( (global mediump float)
+0:199 Function Parameters:
+0:201 Sequence
+0:201 Branch: Return with expression
+0:201 Function Call: fooinit( (global mediump float)
+0:209 Function Definition: fooinit( (global mediump float)
+0:209 Function Parameters:
+0:211 Sequence
+0:211 Branch: Return with expression
+0:211 Constant:
+0:211 12.000000
+0:214 Sequence
+0:214 move second child to first child (temp mediump int)
+0:214 'init1' (global mediump int)
+0:214 Test condition and select (temp mediump int)
+0:214 Condition
+0:214 'gl_FrontFacing' (gl_FrontFacing bool Face)
+0:214 true case
+0:214 Constant:
+0:214 1 (const int)
+0:214 false case
+0:214 Constant:
+0:214 2 (const int)
+0:? Linker Objects
+0:? 'a' (global 3-element array of mediump int)
+0:? 'uint' (global mediump int)
+0:? 'v' (smooth in 3-element array of mediump 4-component vector of float)
+0:? 'f' (global mediump float)
+0:? 'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump int x})
+0:? 'fa' (global implicitly-sized array of mediump float)
+0:? 'f13' (global mediump float)
+0:? 'fi' (invariant temp mediump float)
+0:? 'av' (smooth in mediump 4-component vector of float)
+0:? 'uv2' (uniform mediump 2-component vector of float)
+0:? 'uv3' (invariant uniform mediump 3-component vector of float)
+0:? 'glob2D' (global lowp sampler2D)
+0:? 'vary2D' (smooth in lowp sampler2D)
+0:? 's3D' (uniform mediump sampler3D)
+0:? 's3D2' (uniform highp sampler3D)
+0:? 'sExt' (uniform lowp samplerExternalOES)
+0:? 'mediumExt' (uniform mediump samplerExternalOES)
+0:? 'highExt' (uniform highp samplerExternalOES)
+0:? 's2Dg' (uniform lowp sampler2D)
+0:? 'f123' (global mediump float)
+0:? 'f124' (global mediump float)
+0:? 'sCube' (uniform lowp samplerCube)
+0:? 's' (smooth in structure{global mediump float f})
+0:? 'fi1' (const mediump float)
+0:? 3.000000
+0:? 'fi2' (const mediump float)
+0:? 4.000000
+0:? 'fi3' (const mediump float)
+0:? 5.000000
+0:? 'init1' (global mediump int)
+
+
+Linked fragment stage:
+
+
+Shader version: 100
+Requested GL_EXT_frag_depth
+Requested GL_EXT_shader_texture_lod
+Requested GL_OES_EGL_image_external
+Requested GL_OES_standard_derivatives
+Requested GL_OES_texture_3D
+ERROR: node is still EOpNull!
+0:3 Sequence
+0:3 move second child to first child (temp 3-element array of mediump int)
+0:3 'a' (global 3-element array of mediump int)
+0:3 Constant:
+0:3 2 (const int)
+0:3 3 (const int)
+0:3 4 (const int)
+0:17 Function Definition: main( (global void)
+0:17 Function Parameters:
+0:19 Sequence
+0:19 Constant:
+0:19 0.000000
+0:20 Sequence
+0:20 move second child to first child (temp mediump int)
+0:20 's' (temp mediump int)
+0:20 Constant:
+0:20 16 (const int)
+0:21 move second child to first child (temp mediump int)
+0:21 's' (temp mediump int)
+0:21 Constant:
+0:21 4 (const int)
+0:22 Test condition and select (temp void)
+0:22 Condition
+0:22 Compare Equal (temp bool)
+0:22 'a' (global 3-element array of mediump int)
+0:22 'a' (global 3-element array of mediump int)
+0:22 true case is null
+0:24 move second child to first child (temp mediump int)
+0:24 'b' (temp mediump int)
+0:24 bitwise and (temp mediump int)
+0:24 'c' (temp mediump int)
+0:24 Constant:
+0:24 4 (const int)
+0:25 move second child to first child (temp mediump int)
+0:25 'b' (temp mediump int)
+0:25 mod (temp mediump int)
+0:25 'c' (temp mediump int)
+0:25 Constant:
+0:25 4 (const int)
+0:26 move second child to first child (temp mediump int)
+0:26 'b' (temp mediump int)
+0:26 inclusive-or (temp mediump int)
+0:26 'c' (temp mediump int)
+0:26 Constant:
+0:26 4 (const int)
+0:27 right shift second child into first child (temp mediump int)
+0:27 'b' (temp mediump int)
+0:27 Constant:
+0:27 2 (const int)
+0:28 left shift second child into first child (temp mediump int)
+0:28 'b' (temp mediump int)
+0:28 Constant:
+0:28 2 (const int)
+0:29 mod second child into first child (temp mediump int)
+0:29 'b' (temp mediump int)
+0:29 Constant:
+0:29 3 (const int)
+0:36 move second child to first child (temp structure{temp mediump float f, temp 10-element array of mediump float a})
+0:36 's1' (temp structure{temp mediump float f, temp 10-element array of mediump float a})
+0:36 's2' (temp structure{temp mediump float f, temp 10-element array of mediump float a})
+0:37 Test condition and select (temp void)
+0:37 Condition
+0:37 Compare Equal (temp bool)
+0:37 's1' (temp structure{temp mediump float f, temp 10-element array of mediump float a})
+0:37 's2' (temp structure{temp mediump float f, temp 10-element array of mediump float a})
+0:37 true case is null
+0:38 Test condition and select (temp void)
+0:38 Condition
+0:38 Compare Not Equal (temp bool)
+0:38 's1' (temp structure{temp mediump float f, temp 10-element array of mediump float a})
+0:38 's2' (temp structure{temp mediump float f, temp 10-element array of mediump float a})
+0:38 true case is null
+0:40 'b' (temp mediump int)
+0:54 Function Definition: foo10( (global void)
+0:54 Function Parameters:
+0:67 Function Definition: f11(s21; (global void)
+0:67 Function Parameters:
+0:67 'p2d' (in lowp sampler2D)
+0:87 Function Definition: foo234( (global void)
+0:87 Function Parameters:
+0:89 Sequence
+0:89 texture (global highp 4-component vector of float)
+0:89 's3D2' (uniform highp sampler3D)
+0:89 Constant:
+0:89 0.200000
+0:89 0.200000
+0:89 0.200000
+0:89 Constant:
+0:89 0.200000
+0:90 textureProj (global highp 4-component vector of float)
+0:90 's3D2' (uniform highp sampler3D)
+0:90 direct index (smooth temp mediump 4-component vector of float)
+0:90 'v' (smooth in 3-element array of mediump 4-component vector of float)
+0:90 Constant:
+0:90 1 (const int)
+0:90 Constant:
+0:90 0.400000
+0:91 dPdx (global mediump 4-component vector of float)
+0:91 direct index (smooth temp mediump 4-component vector of float)
+0:91 'v' (smooth in 3-element array of mediump 4-component vector of float)
+0:91 Constant:
+0:91 0 (const int)
+0:92 Constant:
+0:92 0.000000
+0:93 fwidth (global mediump float)
+0:93 'f13' (invariant global mediump float)
+0:98 Function Definition: foo236( (global void)
+0:98 Function Parameters:
+0:100 Sequence
+0:100 dPdx (global mediump 4-component vector of float)
+0:100 direct index (smooth temp mediump 4-component vector of float)
+0:100 'v' (smooth in 3-element array of mediump 4-component vector of float)
+0:100 Constant:
+0:100 0 (const int)
+0:101 Constant:
+0:101 0.000000
+0:102 fwidth (global mediump float)
+0:102 'f13' (invariant global mediump float)
+0:103 move second child to first child (temp mediump float)
+0:103 'gl_FragDepth' (temp mediump float)
+0:103 'f13' (invariant global mediump float)
+0:104 move second child to first child (temp highp float)
+0:104 'gl_FragDepthEXT' (gl_FragDepth highp float FragDepth)
+0:104 'f13' (invariant global mediump float)
+0:109 Function Definition: foo239( (global void)
+0:109 Function Parameters:
+0:111 Sequence
+0:111 move second child to first child (temp mediump float)
+0:111 'gl_FragDepth' (temp mediump float)
+0:111 'f13' (invariant global mediump float)
+0:112 move second child to first child (temp highp float)
+0:112 'gl_FragDepthEXT' (gl_FragDepth highp float FragDepth)
+0:112 'f13' (invariant global mediump float)
+0:119 Function Definition: foo245( (global void)
+0:119 Function Parameters:
+0:121 Sequence
+0:121 texture (global lowp 4-component vector of float)
+0:121 'sExt' (uniform lowp samplerExternalOES)
+0:121 Constant:
+0:121 0.200000
+0:121 0.200000
+0:122 textureProj (global lowp 4-component vector of float)
+0:122 'sExt' (uniform lowp samplerExternalOES)
+0:122 Construct vec3 (temp lowp 3-component vector of float)
+0:122 'f13' (invariant global mediump float)
+0:123 textureProj (global lowp 4-component vector of float)
+0:123 'sExt' (uniform lowp samplerExternalOES)
+0:123 direct index (smooth temp mediump 4-component vector of float)
+0:123 'v' (smooth in 3-element array of mediump 4-component vector of float)
+0:123 Constant:
+0:123 2 (const int)
+0:130 Function Definition: foo246( (global void)
+0:130 Function Parameters:
+0:132 Sequence
+0:132 texture (global mediump 4-component vector of float)
+0:132 'mediumExt' (uniform mediump samplerExternalOES)
+0:132 Constant:
+0:132 0.200000
+0:132 0.200000
+0:133 textureProj (global highp 4-component vector of float)
+0:133 'highExt' (uniform highp samplerExternalOES)
+0:133 direct index (smooth temp mediump 4-component vector of float)
+0:133 'v' (smooth in 3-element array of mediump 4-component vector of float)
+0:133 Constant:
+0:133 2 (const int)
+0:134 Constant:
+0:134 0.000000
+0:135 Constant:
+0:135 0.000000
+0:137 Bitwise not (temp mediump int)
+0:137 'a' (temp mediump int)
+0:138 inclusive-or (temp mediump int)
+0:138 'a' (temp mediump int)
+0:138 'a' (temp mediump int)
+0:139 bitwise and (temp mediump int)
+0:139 'a' (temp mediump int)
+0:139 'a' (temp mediump int)
+0:145 Function Definition: foo203940(i1;f1;f1; (global mediump int)
+0:145 Function Parameters:
+0:145 'a' (in mediump int)
+0:145 'b' (in mediump float)
+0:147 Sequence
+0:147 textureProjGrad (global lowp 4-component vector of float)
+0:147 's2Dg' (uniform lowp sampler2D)
+0:147 Construct vec3 (temp mediump 3-component vector of float)
+0:147 'f13' (invariant global mediump float)
+0:147 'uv2' (invariant uniform mediump 2-component vector of float)
+0:147 'uv2' (invariant uniform mediump 2-component vector of float)
+0:148 Branch: Return with expression
+0:148 'a' (in mediump int)
+0:151 Sequence
+0:151 move second child to first child (temp mediump float)
+0:151 'f123' (global mediump float)
+0:151 Constant:
+0:151 4.000000
+0:152 Sequence
+0:152 move second child to first child (temp mediump float)
+0:152 'f124' (global mediump float)
+0:152 Constant:
+0:152 50000000000.000000
+0:158 Function Definition: foo323433( (global void)
+0:158 Function Parameters:
+0:160 Sequence
+0:160 textureLod (global lowp 4-component vector of float)
+0:160 's2Dg' (uniform lowp sampler2D)
+0:160 'uv2' (invariant uniform mediump 2-component vector of float)
+0:160 'f13' (invariant global mediump float)
+0:161 textureProjGrad (global lowp 4-component vector of float)
+0:161 's2Dg' (uniform lowp sampler2D)
+0:161 Construct vec3 (temp mediump 3-component vector of float)
+0:161 'f13' (invariant global mediump float)
+0:161 'uv2' (invariant uniform mediump 2-component vector of float)
+0:161 'uv2' (invariant uniform mediump 2-component vector of float)
+0:162 textureGrad (global lowp 4-component vector of float)
+0:162 's2Dg' (uniform lowp sampler2D)
+0:162 'uv2' (invariant uniform mediump 2-component vector of float)
+0:162 'uv2' (invariant uniform mediump 2-component vector of float)
+0:162 'uv2' (invariant uniform mediump 2-component vector of float)
+0:163 textureGrad (global lowp 4-component vector of float)
+0:163 'sCube' (uniform lowp samplerCube)
+0:163 Construct vec3 (temp lowp 3-component vector of float)
+0:163 'f13' (invariant global mediump float)
+0:163 Construct vec3 (temp lowp 3-component vector of float)
+0:163 'f13' (invariant global mediump float)
+0:163 Construct vec3 (temp lowp 3-component vector of float)
+0:163 'f13' (invariant global mediump float)
+0:167 Function Definition: fgfg(f1;i1; (global mediump int)
+0:167 Function Parameters:
+0:167 'f' (in mediump float)
+0:167 'i' (in highp int)
+0:167 Sequence
+0:167 Branch: Return with expression
+0:167 Constant:
+0:167 2 (const int)
+0:173 Function Definition: gggf(f1; (global mediump int)
+0:173 Function Parameters:
+0:173 'f' (in mediump float)
+0:173 Sequence
+0:173 Branch: Return with expression
+0:173 Constant:
+0:173 2 (const int)
+0:175 Function Definition: agggf(f1; (global mediump int)
+0:175 Function Parameters:
+0:175 'f' (in mediump float)
+0:175 Sequence
+0:175 Branch: Return with expression
+0:175 Constant:
+0:175 2 (const int)
+0:187 Function Definition: badswizzle( (global void)
+0:187 Function Parameters:
+0:? Sequence
+0:190 'a' (temp 5-element array of mediump 3-component vector of float)
+0:191 'a' (temp 5-element array of mediump 3-component vector of float)
+0:192 'a' (temp 5-element array of mediump 3-component vector of float)
+0:193 Constant:
+0:193 5 (const int)
+0:194 Constant:
+0:194 0.000000
+0:199 Function Definition: fooinittest( (global mediump float)
+0:199 Function Parameters:
+0:201 Sequence
+0:201 Branch: Return with expression
+0:201 Function Call: fooinit( (global mediump float)
+0:209 Function Definition: fooinit( (global mediump float)
+0:209 Function Parameters:
+0:211 Sequence
+0:211 Branch: Return with expression
+0:211 Constant:
+0:211 12.000000
+0:214 Sequence
+0:214 move second child to first child (temp mediump int)
+0:214 'init1' (global mediump int)
+0:214 Test condition and select (temp mediump int)
+0:214 Condition
+0:214 'gl_FrontFacing' (gl_FrontFacing bool Face)
+0:214 true case
+0:214 Constant:
+0:214 1 (const int)
+0:214 false case
+0:214 Constant:
+0:214 2 (const int)
+0:? Linker Objects
+0:? 'a' (global 3-element array of mediump int)
+0:? 'uint' (global mediump int)
+0:? 'v' (smooth in 3-element array of mediump 4-component vector of float)
+0:? 'f' (global mediump float)
+0:? 'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump int x})
+0:? 'fa' (global 1-element array of mediump float)
+0:? 'f13' (global mediump float)
+0:? 'fi' (invariant temp mediump float)
+0:? 'av' (smooth in mediump 4-component vector of float)
+0:? 'uv2' (uniform mediump 2-component vector of float)
+0:? 'uv3' (invariant uniform mediump 3-component vector of float)
+0:? 'glob2D' (global lowp sampler2D)
+0:? 'vary2D' (smooth in lowp sampler2D)
+0:? 's3D' (uniform mediump sampler3D)
+0:? 's3D2' (uniform highp sampler3D)
+0:? 'sExt' (uniform lowp samplerExternalOES)
+0:? 'mediumExt' (uniform mediump samplerExternalOES)
+0:? 'highExt' (uniform highp samplerExternalOES)
+0:? 's2Dg' (uniform lowp sampler2D)
+0:? 'f123' (global mediump float)
+0:? 'f124' (global mediump float)
+0:? 'sCube' (uniform lowp samplerCube)
+0:? 's' (smooth in structure{global mediump float f})
+0:? 'fi1' (const mediump float)
+0:? 3.000000
+0:? 'fi2' (const mediump float)
+0:? 4.000000
+0:? 'fi3' (const mediump float)
+0:? 5.000000
+0:? 'init1' (global mediump int)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/100Limits.vert.out b/chromium/third_party/glslang/src/Test/baseResults/100Limits.vert.out
new file mode 100644
index 00000000000..46c256075ac
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/100Limits.vert.out
@@ -0,0 +1,889 @@
+100Limits.vert
+Shader version: 100
+0:? Sequence
+0:15 Function Definition: foo(f1; (global void)
+0:15 Function Parameters:
+0:15 'a' (inout highp float)
+0:17 Function Definition: bar( (global highp int)
+0:17 Function Parameters:
+0:19 Sequence
+0:19 Branch: Return with expression
+0:19 Constant:
+0:19 1 (const int)
+0:22 Function Definition: main( (global void)
+0:22 Function Parameters:
+0:24 Sequence
+0:24 Loop with condition tested first
+0:24 Loop Condition
+0:24 Compare Less Than (temp bool)
+0:24 'ga' (global highp int)
+0:24 'gb' (global highp int)
+0:24 No loop body
+0:26 Loop with condition not tested first
+0:26 Loop Condition
+0:26 Constant:
+0:26 false (const bool)
+0:26 No loop body
+0:28 Sequence
+0:28 Loop with condition tested first
+0:28 No loop condition
+0:28 No loop body
+0:29 Sequence
+0:29 Loop with condition tested first
+0:29 Loop Condition
+0:29 Compare Equal (temp bool)
+0:29 'ga' (global highp int)
+0:29 'gb' (global highp int)
+0:29 No loop body
+0:30 Sequence
+0:30 Loop with condition tested first
+0:30 No loop condition
+0:30 No loop body
+0:30 Loop Terminal Expression
+0:30 Post-Increment (temp highp float)
+0:30 'f' (global highp float)
+0:31 Sequence
+0:31 move second child to first child (temp highp int)
+0:31 'ga' (global highp int)
+0:31 Constant:
+0:31 0 (const int)
+0:31 Loop with condition tested first
+0:31 No loop condition
+0:31 No loop body
+0:32 Sequence
+0:32 Sequence
+0:32 move second child to first child (temp bool)
+0:32 'a' (temp bool)
+0:32 Constant:
+0:32 false (const bool)
+0:32 Loop with condition tested first
+0:32 No loop condition
+0:32 No loop body
+0:33 Sequence
+0:33 Sequence
+0:33 move second child to first child (temp highp float)
+0:33 'a' (temp highp float)
+0:33 Constant:
+0:33 0.000000
+0:33 Loop with condition tested first
+0:33 Loop Condition
+0:33 Compare Equal (temp bool)
+0:33 'a' (temp highp float)
+0:33 sine (global highp float)
+0:33 'f' (global highp float)
+0:33 No loop body
+0:34 Sequence
+0:34 Sequence
+0:34 move second child to first child (temp highp int)
+0:34 'a' (temp highp int)
+0:34 Constant:
+0:34 0 (const int)
+0:34 Loop with condition tested first
+0:34 Loop Condition
+0:34 Compare Less Than (temp bool)
+0:34 'a' (temp highp int)
+0:34 Constant:
+0:34 10 (const int)
+0:34 No loop body
+0:34 Loop Terminal Expression
+0:34 multiply second child into first child (temp highp int)
+0:34 'a' (temp highp int)
+0:34 Constant:
+0:34 2 (const int)
+0:35 Sequence
+0:35 Sequence
+0:35 move second child to first child (temp highp int)
+0:35 'a' (temp highp int)
+0:35 Constant:
+0:35 0 (const int)
+0:35 Loop with condition tested first
+0:35 Loop Condition
+0:35 Compare Less Than or Equal (temp bool)
+0:35 'a' (temp highp int)
+0:35 Constant:
+0:35 20 (const int)
+0:35 Loop Body
+0:35 Pre-Decrement (temp highp int)
+0:35 'a' (temp highp int)
+0:35 Loop Terminal Expression
+0:35 Post-Increment (temp highp int)
+0:35 'a' (temp highp int)
+0:36 Sequence
+0:36 Sequence
+0:36 move second child to first child (temp highp int)
+0:36 'a' (temp highp int)
+0:36 Constant:
+0:36 0 (const int)
+0:36 Loop with condition tested first
+0:36 Loop Condition
+0:36 Compare Less Than or Equal (temp bool)
+0:36 'a' (temp highp int)
+0:36 Constant:
+0:36 20 (const int)
+0:36 Loop Body
+0:36 Sequence
+0:36 Test condition and select (temp void)
+0:36 Condition
+0:36 Compare Equal (temp bool)
+0:36 'ga' (global highp int)
+0:36 Constant:
+0:36 0 (const int)
+0:36 true case
+0:36 move second child to first child (temp highp int)
+0:36 'a' (temp highp int)
+0:36 Constant:
+0:36 4 (const int)
+0:36 Loop Terminal Expression
+0:36 Post-Increment (temp highp int)
+0:36 'a' (temp highp int)
+0:37 Sequence
+0:37 Sequence
+0:37 move second child to first child (temp highp float)
+0:37 'a' (temp highp float)
+0:37 Constant:
+0:37 0.000000
+0:37 Loop with condition tested first
+0:37 Loop Condition
+0:37 Compare Less Than or Equal (temp bool)
+0:37 'a' (temp highp float)
+0:37 Constant:
+0:37 20.000000
+0:37 No loop body
+0:37 Loop Terminal Expression
+0:37 add second child into first child (temp highp float)
+0:37 'a' (temp highp float)
+0:37 Constant:
+0:37 2.000000
+0:38 Sequence
+0:38 Sequence
+0:38 move second child to first child (temp highp float)
+0:38 'a' (temp highp float)
+0:38 Constant:
+0:38 0.000000
+0:38 Loop with condition tested first
+0:38 Loop Condition
+0:38 Compare Not Equal (temp bool)
+0:38 'a' (temp highp float)
+0:38 Constant:
+0:38 20.000000
+0:38 Loop Body
+0:38 Sequence
+0:38 Test condition and select (temp void)
+0:38 Condition
+0:38 Compare Equal (temp bool)
+0:38 'ga' (global highp int)
+0:38 Constant:
+0:38 0 (const int)
+0:38 true case
+0:38 move second child to first child (temp highp int)
+0:38 'ga' (global highp int)
+0:38 Constant:
+0:38 4 (const int)
+0:38 Loop Terminal Expression
+0:38 subtract second child into first child (temp highp float)
+0:38 'a' (temp highp float)
+0:38 Constant:
+0:38 2.000000
+0:39 Sequence
+0:39 Sequence
+0:39 move second child to first child (temp highp float)
+0:39 'a' (temp highp float)
+0:39 Constant:
+0:39 0.000000
+0:39 Loop with condition tested first
+0:39 Loop Condition
+0:39 Compare Equal (temp bool)
+0:39 'a' (temp highp float)
+0:39 Constant:
+0:39 20.000000
+0:39 Loop Body
+0:39 Sequence
+0:39 Sequence
+0:39 move second child to first child (temp highp float)
+0:39 'a' (temp highp float)
+0:39 Constant:
+0:39 0.000000
+0:39 Loop with condition tested first
+0:39 Loop Condition
+0:39 Compare Equal (temp bool)
+0:39 'a' (temp highp float)
+0:39 Constant:
+0:39 20.000000
+0:39 No loop body
+0:39 Loop Terminal Expression
+0:39 Post-Decrement (temp highp float)
+0:39 'a' (temp highp float)
+0:39 Loop Terminal Expression
+0:39 Post-Decrement (temp highp float)
+0:39 'a' (temp highp float)
+0:40 Sequence
+0:40 Sequence
+0:40 move second child to first child (temp highp float)
+0:40 'a' (temp highp float)
+0:40 Constant:
+0:40 0.000000
+0:40 Loop with condition tested first
+0:40 Loop Condition
+0:40 Compare Less Than or Equal (temp bool)
+0:40 'a' (temp highp float)
+0:40 Constant:
+0:40 20.000000
+0:40 No loop body
+0:40 Loop Terminal Expression
+0:40 add second child into first child (temp highp float)
+0:40 'a' (temp highp float)
+0:40 Constant:
+0:40 2.000000
+0:41 Sequence
+0:41 Sequence
+0:41 move second child to first child (temp highp float)
+0:41 'a' (temp highp float)
+0:41 Constant:
+0:41 0.000000
+0:41 Loop with condition tested first
+0:41 Loop Condition
+0:41 Compare Less Than or Equal (temp bool)
+0:41 'a' (temp highp float)
+0:41 Constant:
+0:41 20.000000
+0:41 No loop body
+0:41 Loop Terminal Expression
+0:41 add second child into first child (temp highp float)
+0:41 'a' (temp highp float)
+0:41 Constant:
+0:41 2.000000
+0:42 Sequence
+0:42 Sequence
+0:42 move second child to first child (temp highp float)
+0:42 'a' (temp highp float)
+0:42 Constant:
+0:42 0.000000
+0:42 Loop with condition tested first
+0:42 Loop Condition
+0:42 Compare Greater Than (temp bool)
+0:42 'a' (temp highp float)
+0:42 Constant:
+0:42 40.000000
+0:42 No loop body
+0:42 Loop Terminal Expression
+0:42 add second child into first child (temp highp float)
+0:42 'a' (temp highp float)
+0:42 Constant:
+0:42 2.000000
+0:43 Sequence
+0:43 Sequence
+0:43 move second child to first child (temp highp float)
+0:43 'a' (temp highp float)
+0:43 Constant:
+0:43 0.000000
+0:43 Loop with condition tested first
+0:43 Loop Condition
+0:43 Compare Greater Than or Equal (temp bool)
+0:43 'a' (temp highp float)
+0:43 Constant:
+0:43 20.000000
+0:43 Loop Body
+0:43 Function Call: foo(f1; (global void)
+0:43 'a' (temp highp float)
+0:43 Loop Terminal Expression
+0:43 add second child into first child (temp highp float)
+0:43 'a' (temp highp float)
+0:43 Constant:
+0:43 2.000000
+0:47 indirect index (temp lowp sampler2D)
+0:47 'fsa' (uniform 3-element array of lowp sampler2D)
+0:47 'ga' (global highp int)
+0:48 indirect index (temp highp float)
+0:48 'fua' (uniform 10-element array of highp float)
+0:48 'ga' (global highp int)
+0:49 indirect index (temp highp 3-component vector of float)
+0:49 'am3' (in highp 3X3 matrix of float)
+0:49 'ga' (global highp int)
+0:50 indirect index (temp highp float)
+0:50 'av2' (in highp 2-component vector of float)
+0:50 'ga' (global highp int)
+0:51 indirect index (smooth temp highp 4-component vector of float)
+0:51 'va' (smooth out 4-element array of highp 4-component vector of float)
+0:51 add (temp highp int)
+0:51 Constant:
+0:51 2 (const int)
+0:51 'ga' (global highp int)
+0:52 indirect index (temp highp 2-component vector of float)
+0:52 Constant:
+0:52 1.000000
+0:52 0.000000
+0:52 0.000000
+0:52 1.000000
+0:52 'ga' (global highp int)
+0:53 indirect index (temp highp float)
+0:53 Constant:
+0:53 2.000000
+0:53 2.000000
+0:53 2.000000
+0:53 divide (temp highp int)
+0:53 'ga' (global highp int)
+0:53 Constant:
+0:53 2 (const int)
+0:54 indirect index (temp highp int)
+0:54 'ia' (temp 9-element array of highp int)
+0:54 'ga' (global highp int)
+0:56 Sequence
+0:56 Sequence
+0:56 move second child to first child (temp highp int)
+0:56 'a' (temp highp int)
+0:56 Constant:
+0:56 3 (const int)
+0:56 Loop with condition tested first
+0:56 Loop Condition
+0:56 Compare Greater Than or Equal (temp bool)
+0:56 'a' (temp highp int)
+0:56 Constant:
+0:56 0 (const int)
+0:56 Loop Body
+0:57 Sequence
+0:57 indirect index (temp lowp sampler2D)
+0:57 'fsa' (uniform 3-element array of lowp sampler2D)
+0:57 'a' (temp highp int)
+0:58 indirect index (temp highp float)
+0:58 'fua' (uniform 10-element array of highp float)
+0:58 add (temp highp int)
+0:58 'a' (temp highp int)
+0:58 Constant:
+0:58 2 (const int)
+0:59 indirect index (temp highp 3-component vector of float)
+0:59 'am3' (in highp 3X3 matrix of float)
+0:59 component-wise multiply (temp highp int)
+0:59 Constant:
+0:59 3 (const int)
+0:59 'a' (temp highp int)
+0:60 indirect index (temp highp float)
+0:60 'av2' (in highp 2-component vector of float)
+0:60 component-wise multiply (temp highp int)
+0:60 Constant:
+0:60 3 (const int)
+0:60 'a' (temp highp int)
+0:61 indirect index (smooth temp highp 4-component vector of float)
+0:61 'va' (smooth out 4-element array of highp 4-component vector of float)
+0:61 subtract (temp highp int)
+0:61 'a' (temp highp int)
+0:61 Constant:
+0:61 1 (const int)
+0:62 indirect index (temp highp 2-component vector of float)
+0:62 Constant:
+0:62 1.000000
+0:62 0.000000
+0:62 0.000000
+0:62 1.000000
+0:62 divide (temp highp int)
+0:62 'a' (temp highp int)
+0:62 Constant:
+0:62 2 (const int)
+0:63 indirect index (temp highp float)
+0:63 Constant:
+0:63 2.000000
+0:63 2.000000
+0:63 2.000000
+0:63 'a' (temp highp int)
+0:64 indirect index (temp highp int)
+0:64 'ia' (temp 9-element array of highp int)
+0:64 'a' (temp highp int)
+0:65 indirect index (temp highp int)
+0:65 'ia' (temp 9-element array of highp int)
+0:65 Function Call: bar( (global highp int)
+0:56 Loop Terminal Expression
+0:56 Post-Decrement (temp highp int)
+0:56 'a' (temp highp int)
+0:68 direct index (temp lowp sampler2D)
+0:68 'fsa' (uniform 3-element array of lowp sampler2D)
+0:68 Constant:
+0:68 2 (const int)
+0:69 direct index (temp highp float)
+0:69 'fua' (uniform 10-element array of highp float)
+0:69 Constant:
+0:69 3 (const int)
+0:70 direct index (temp highp 3-component vector of float)
+0:70 'am3' (in highp 3X3 matrix of float)
+0:70 Constant:
+0:70 2 (const int)
+0:71 direct index (temp highp float)
+0:71 'av2' (in highp 2-component vector of float)
+0:71 Constant:
+0:71 1 (const int)
+0:72 direct index (smooth temp highp 4-component vector of float)
+0:72 'va' (smooth out 4-element array of highp 4-component vector of float)
+0:72 Constant:
+0:72 1 (const int)
+0:73 Constant:
+0:73 0.000000
+0:73 1.000000
+0:74 Constant:
+0:74 2.000000
+0:75 direct index (temp highp int)
+0:75 'ia' (temp 9-element array of highp int)
+0:75 Constant:
+0:75 3 (const int)
+0:? Linker Objects
+0:? 'ga' (global highp int)
+0:? 'gb' (global highp int)
+0:? 'f' (global highp float)
+0:? 'fsa' (uniform 3-element array of lowp sampler2D)
+0:? 'fua' (uniform 10-element array of highp float)
+0:? 'am3' (in highp 3X3 matrix of float)
+0:? 'av2' (in highp 2-component vector of float)
+0:? 'va' (smooth out 4-element array of highp 4-component vector of float)
+0:? 'm2' (const highp 2X2 matrix of float)
+0:? 1.000000
+0:? 0.000000
+0:? 0.000000
+0:? 1.000000
+0:? 'v3' (const highp 3-component vector of float)
+0:? 2.000000
+0:? 2.000000
+0:? 2.000000
+
+
+Linked vertex stage:
+
+
+Shader version: 100
+0:? Sequence
+0:15 Function Definition: foo(f1; (global void)
+0:15 Function Parameters:
+0:15 'a' (inout highp float)
+0:17 Function Definition: bar( (global highp int)
+0:17 Function Parameters:
+0:19 Sequence
+0:19 Branch: Return with expression
+0:19 Constant:
+0:19 1 (const int)
+0:22 Function Definition: main( (global void)
+0:22 Function Parameters:
+0:24 Sequence
+0:24 Loop with condition tested first
+0:24 Loop Condition
+0:24 Compare Less Than (temp bool)
+0:24 'ga' (global highp int)
+0:24 'gb' (global highp int)
+0:24 No loop body
+0:26 Loop with condition not tested first
+0:26 Loop Condition
+0:26 Constant:
+0:26 false (const bool)
+0:26 No loop body
+0:28 Sequence
+0:28 Loop with condition tested first
+0:28 No loop condition
+0:28 No loop body
+0:29 Sequence
+0:29 Loop with condition tested first
+0:29 Loop Condition
+0:29 Compare Equal (temp bool)
+0:29 'ga' (global highp int)
+0:29 'gb' (global highp int)
+0:29 No loop body
+0:30 Sequence
+0:30 Loop with condition tested first
+0:30 No loop condition
+0:30 No loop body
+0:30 Loop Terminal Expression
+0:30 Post-Increment (temp highp float)
+0:30 'f' (global highp float)
+0:31 Sequence
+0:31 move second child to first child (temp highp int)
+0:31 'ga' (global highp int)
+0:31 Constant:
+0:31 0 (const int)
+0:31 Loop with condition tested first
+0:31 No loop condition
+0:31 No loop body
+0:32 Sequence
+0:32 Sequence
+0:32 move second child to first child (temp bool)
+0:32 'a' (temp bool)
+0:32 Constant:
+0:32 false (const bool)
+0:32 Loop with condition tested first
+0:32 No loop condition
+0:32 No loop body
+0:33 Sequence
+0:33 Sequence
+0:33 move second child to first child (temp highp float)
+0:33 'a' (temp highp float)
+0:33 Constant:
+0:33 0.000000
+0:33 Loop with condition tested first
+0:33 Loop Condition
+0:33 Compare Equal (temp bool)
+0:33 'a' (temp highp float)
+0:33 sine (global highp float)
+0:33 'f' (global highp float)
+0:33 No loop body
+0:34 Sequence
+0:34 Sequence
+0:34 move second child to first child (temp highp int)
+0:34 'a' (temp highp int)
+0:34 Constant:
+0:34 0 (const int)
+0:34 Loop with condition tested first
+0:34 Loop Condition
+0:34 Compare Less Than (temp bool)
+0:34 'a' (temp highp int)
+0:34 Constant:
+0:34 10 (const int)
+0:34 No loop body
+0:34 Loop Terminal Expression
+0:34 multiply second child into first child (temp highp int)
+0:34 'a' (temp highp int)
+0:34 Constant:
+0:34 2 (const int)
+0:35 Sequence
+0:35 Sequence
+0:35 move second child to first child (temp highp int)
+0:35 'a' (temp highp int)
+0:35 Constant:
+0:35 0 (const int)
+0:35 Loop with condition tested first
+0:35 Loop Condition
+0:35 Compare Less Than or Equal (temp bool)
+0:35 'a' (temp highp int)
+0:35 Constant:
+0:35 20 (const int)
+0:35 Loop Body
+0:35 Pre-Decrement (temp highp int)
+0:35 'a' (temp highp int)
+0:35 Loop Terminal Expression
+0:35 Post-Increment (temp highp int)
+0:35 'a' (temp highp int)
+0:36 Sequence
+0:36 Sequence
+0:36 move second child to first child (temp highp int)
+0:36 'a' (temp highp int)
+0:36 Constant:
+0:36 0 (const int)
+0:36 Loop with condition tested first
+0:36 Loop Condition
+0:36 Compare Less Than or Equal (temp bool)
+0:36 'a' (temp highp int)
+0:36 Constant:
+0:36 20 (const int)
+0:36 Loop Body
+0:36 Sequence
+0:36 Test condition and select (temp void)
+0:36 Condition
+0:36 Compare Equal (temp bool)
+0:36 'ga' (global highp int)
+0:36 Constant:
+0:36 0 (const int)
+0:36 true case
+0:36 move second child to first child (temp highp int)
+0:36 'a' (temp highp int)
+0:36 Constant:
+0:36 4 (const int)
+0:36 Loop Terminal Expression
+0:36 Post-Increment (temp highp int)
+0:36 'a' (temp highp int)
+0:37 Sequence
+0:37 Sequence
+0:37 move second child to first child (temp highp float)
+0:37 'a' (temp highp float)
+0:37 Constant:
+0:37 0.000000
+0:37 Loop with condition tested first
+0:37 Loop Condition
+0:37 Compare Less Than or Equal (temp bool)
+0:37 'a' (temp highp float)
+0:37 Constant:
+0:37 20.000000
+0:37 No loop body
+0:37 Loop Terminal Expression
+0:37 add second child into first child (temp highp float)
+0:37 'a' (temp highp float)
+0:37 Constant:
+0:37 2.000000
+0:38 Sequence
+0:38 Sequence
+0:38 move second child to first child (temp highp float)
+0:38 'a' (temp highp float)
+0:38 Constant:
+0:38 0.000000
+0:38 Loop with condition tested first
+0:38 Loop Condition
+0:38 Compare Not Equal (temp bool)
+0:38 'a' (temp highp float)
+0:38 Constant:
+0:38 20.000000
+0:38 Loop Body
+0:38 Sequence
+0:38 Test condition and select (temp void)
+0:38 Condition
+0:38 Compare Equal (temp bool)
+0:38 'ga' (global highp int)
+0:38 Constant:
+0:38 0 (const int)
+0:38 true case
+0:38 move second child to first child (temp highp int)
+0:38 'ga' (global highp int)
+0:38 Constant:
+0:38 4 (const int)
+0:38 Loop Terminal Expression
+0:38 subtract second child into first child (temp highp float)
+0:38 'a' (temp highp float)
+0:38 Constant:
+0:38 2.000000
+0:39 Sequence
+0:39 Sequence
+0:39 move second child to first child (temp highp float)
+0:39 'a' (temp highp float)
+0:39 Constant:
+0:39 0.000000
+0:39 Loop with condition tested first
+0:39 Loop Condition
+0:39 Compare Equal (temp bool)
+0:39 'a' (temp highp float)
+0:39 Constant:
+0:39 20.000000
+0:39 Loop Body
+0:39 Sequence
+0:39 Sequence
+0:39 move second child to first child (temp highp float)
+0:39 'a' (temp highp float)
+0:39 Constant:
+0:39 0.000000
+0:39 Loop with condition tested first
+0:39 Loop Condition
+0:39 Compare Equal (temp bool)
+0:39 'a' (temp highp float)
+0:39 Constant:
+0:39 20.000000
+0:39 No loop body
+0:39 Loop Terminal Expression
+0:39 Post-Decrement (temp highp float)
+0:39 'a' (temp highp float)
+0:39 Loop Terminal Expression
+0:39 Post-Decrement (temp highp float)
+0:39 'a' (temp highp float)
+0:40 Sequence
+0:40 Sequence
+0:40 move second child to first child (temp highp float)
+0:40 'a' (temp highp float)
+0:40 Constant:
+0:40 0.000000
+0:40 Loop with condition tested first
+0:40 Loop Condition
+0:40 Compare Less Than or Equal (temp bool)
+0:40 'a' (temp highp float)
+0:40 Constant:
+0:40 20.000000
+0:40 No loop body
+0:40 Loop Terminal Expression
+0:40 add second child into first child (temp highp float)
+0:40 'a' (temp highp float)
+0:40 Constant:
+0:40 2.000000
+0:41 Sequence
+0:41 Sequence
+0:41 move second child to first child (temp highp float)
+0:41 'a' (temp highp float)
+0:41 Constant:
+0:41 0.000000
+0:41 Loop with condition tested first
+0:41 Loop Condition
+0:41 Compare Less Than or Equal (temp bool)
+0:41 'a' (temp highp float)
+0:41 Constant:
+0:41 20.000000
+0:41 No loop body
+0:41 Loop Terminal Expression
+0:41 add second child into first child (temp highp float)
+0:41 'a' (temp highp float)
+0:41 Constant:
+0:41 2.000000
+0:42 Sequence
+0:42 Sequence
+0:42 move second child to first child (temp highp float)
+0:42 'a' (temp highp float)
+0:42 Constant:
+0:42 0.000000
+0:42 Loop with condition tested first
+0:42 Loop Condition
+0:42 Compare Greater Than (temp bool)
+0:42 'a' (temp highp float)
+0:42 Constant:
+0:42 40.000000
+0:42 No loop body
+0:42 Loop Terminal Expression
+0:42 add second child into first child (temp highp float)
+0:42 'a' (temp highp float)
+0:42 Constant:
+0:42 2.000000
+0:43 Sequence
+0:43 Sequence
+0:43 move second child to first child (temp highp float)
+0:43 'a' (temp highp float)
+0:43 Constant:
+0:43 0.000000
+0:43 Loop with condition tested first
+0:43 Loop Condition
+0:43 Compare Greater Than or Equal (temp bool)
+0:43 'a' (temp highp float)
+0:43 Constant:
+0:43 20.000000
+0:43 Loop Body
+0:43 Function Call: foo(f1; (global void)
+0:43 'a' (temp highp float)
+0:43 Loop Terminal Expression
+0:43 add second child into first child (temp highp float)
+0:43 'a' (temp highp float)
+0:43 Constant:
+0:43 2.000000
+0:47 indirect index (temp lowp sampler2D)
+0:47 'fsa' (uniform 3-element array of lowp sampler2D)
+0:47 'ga' (global highp int)
+0:48 indirect index (temp highp float)
+0:48 'fua' (uniform 10-element array of highp float)
+0:48 'ga' (global highp int)
+0:49 indirect index (temp highp 3-component vector of float)
+0:49 'am3' (in highp 3X3 matrix of float)
+0:49 'ga' (global highp int)
+0:50 indirect index (temp highp float)
+0:50 'av2' (in highp 2-component vector of float)
+0:50 'ga' (global highp int)
+0:51 indirect index (smooth temp highp 4-component vector of float)
+0:51 'va' (smooth out 4-element array of highp 4-component vector of float)
+0:51 add (temp highp int)
+0:51 Constant:
+0:51 2 (const int)
+0:51 'ga' (global highp int)
+0:52 indirect index (temp highp 2-component vector of float)
+0:52 Constant:
+0:52 1.000000
+0:52 0.000000
+0:52 0.000000
+0:52 1.000000
+0:52 'ga' (global highp int)
+0:53 indirect index (temp highp float)
+0:53 Constant:
+0:53 2.000000
+0:53 2.000000
+0:53 2.000000
+0:53 divide (temp highp int)
+0:53 'ga' (global highp int)
+0:53 Constant:
+0:53 2 (const int)
+0:54 indirect index (temp highp int)
+0:54 'ia' (temp 9-element array of highp int)
+0:54 'ga' (global highp int)
+0:56 Sequence
+0:56 Sequence
+0:56 move second child to first child (temp highp int)
+0:56 'a' (temp highp int)
+0:56 Constant:
+0:56 3 (const int)
+0:56 Loop with condition tested first
+0:56 Loop Condition
+0:56 Compare Greater Than or Equal (temp bool)
+0:56 'a' (temp highp int)
+0:56 Constant:
+0:56 0 (const int)
+0:56 Loop Body
+0:57 Sequence
+0:57 indirect index (temp lowp sampler2D)
+0:57 'fsa' (uniform 3-element array of lowp sampler2D)
+0:57 'a' (temp highp int)
+0:58 indirect index (temp highp float)
+0:58 'fua' (uniform 10-element array of highp float)
+0:58 add (temp highp int)
+0:58 'a' (temp highp int)
+0:58 Constant:
+0:58 2 (const int)
+0:59 indirect index (temp highp 3-component vector of float)
+0:59 'am3' (in highp 3X3 matrix of float)
+0:59 component-wise multiply (temp highp int)
+0:59 Constant:
+0:59 3 (const int)
+0:59 'a' (temp highp int)
+0:60 indirect index (temp highp float)
+0:60 'av2' (in highp 2-component vector of float)
+0:60 component-wise multiply (temp highp int)
+0:60 Constant:
+0:60 3 (const int)
+0:60 'a' (temp highp int)
+0:61 indirect index (smooth temp highp 4-component vector of float)
+0:61 'va' (smooth out 4-element array of highp 4-component vector of float)
+0:61 subtract (temp highp int)
+0:61 'a' (temp highp int)
+0:61 Constant:
+0:61 1 (const int)
+0:62 indirect index (temp highp 2-component vector of float)
+0:62 Constant:
+0:62 1.000000
+0:62 0.000000
+0:62 0.000000
+0:62 1.000000
+0:62 divide (temp highp int)
+0:62 'a' (temp highp int)
+0:62 Constant:
+0:62 2 (const int)
+0:63 indirect index (temp highp float)
+0:63 Constant:
+0:63 2.000000
+0:63 2.000000
+0:63 2.000000
+0:63 'a' (temp highp int)
+0:64 indirect index (temp highp int)
+0:64 'ia' (temp 9-element array of highp int)
+0:64 'a' (temp highp int)
+0:65 indirect index (temp highp int)
+0:65 'ia' (temp 9-element array of highp int)
+0:65 Function Call: bar( (global highp int)
+0:56 Loop Terminal Expression
+0:56 Post-Decrement (temp highp int)
+0:56 'a' (temp highp int)
+0:68 direct index (temp lowp sampler2D)
+0:68 'fsa' (uniform 3-element array of lowp sampler2D)
+0:68 Constant:
+0:68 2 (const int)
+0:69 direct index (temp highp float)
+0:69 'fua' (uniform 10-element array of highp float)
+0:69 Constant:
+0:69 3 (const int)
+0:70 direct index (temp highp 3-component vector of float)
+0:70 'am3' (in highp 3X3 matrix of float)
+0:70 Constant:
+0:70 2 (const int)
+0:71 direct index (temp highp float)
+0:71 'av2' (in highp 2-component vector of float)
+0:71 Constant:
+0:71 1 (const int)
+0:72 direct index (smooth temp highp 4-component vector of float)
+0:72 'va' (smooth out 4-element array of highp 4-component vector of float)
+0:72 Constant:
+0:72 1 (const int)
+0:73 Constant:
+0:73 0.000000
+0:73 1.000000
+0:74 Constant:
+0:74 2.000000
+0:75 direct index (temp highp int)
+0:75 'ia' (temp 9-element array of highp int)
+0:75 Constant:
+0:75 3 (const int)
+0:? Linker Objects
+0:? 'ga' (global highp int)
+0:? 'gb' (global highp int)
+0:? 'f' (global highp float)
+0:? 'fsa' (uniform 3-element array of lowp sampler2D)
+0:? 'fua' (uniform 10-element array of highp float)
+0:? 'am3' (in highp 3X3 matrix of float)
+0:? 'av2' (in highp 2-component vector of float)
+0:? 'va' (smooth out 4-element array of highp 4-component vector of float)
+0:? 'm2' (const highp 2X2 matrix of float)
+0:? 1.000000
+0:? 0.000000
+0:? 0.000000
+0:? 1.000000
+0:? 'v3' (const highp 3-component vector of float)
+0:? 2.000000
+0:? 2.000000
+0:? 2.000000
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/100LimitsConf.vert.out b/chromium/third_party/glslang/src/Test/baseResults/100LimitsConf.vert.out
new file mode 100644
index 00000000000..e27c2cc70cf
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/100LimitsConf.vert.out
@@ -0,0 +1,28 @@
+100Limits.vert
+ERROR: 0:24: 'limitation' : while loops not available
+ERROR: 0:26: 'limitation' : do-while loops not available
+ERROR: 0:28: 'limitations' : inductive-loop init-declaration requires the form "type-specifier loop-index = constant-expression"
+ERROR: 0:29: 'limitations' : inductive-loop init-declaration requires the form "type-specifier loop-index = constant-expression"
+ERROR: 0:30: 'limitations' : inductive-loop init-declaration requires the form "type-specifier loop-index = constant-expression"
+ERROR: 0:31: 'limitations' : inductive-loop init-declaration requires the form "type-specifier loop-index = constant-expression"
+ERROR: 0:32: 'limitations' : inductive loop requires a scalar 'int' or 'float' loop index
+ERROR: 0:33: 'limitations' : inductive-loop condition requires the form "loop-index <comparison-op> constant-expression"
+ERROR: 0:34: 'limitations' : inductive-loop termination requires the form "loop-index++, loop-index--, loop-index += constant-expression, or loop-index -= constant-expression"
+ERROR: 0:35: 'limitations' : inductive loop index modified
+ERROR: 0:36: 'limitations' : inductive loop index modified
+ERROR: 0:43: 'limitations' : inductive loop index modified
+ERROR: 0:47: 'limitations' : Non-constant-index-expression
+ERROR: 0:49: 'limitations' : Non-constant-index-expression
+ERROR: 0:50: 'limitations' : Non-constant-index-expression
+ERROR: 0:51: 'limitations' : Non-constant-index-expression
+ERROR: 0:52: 'limitations' : Non-constant-index-expression
+ERROR: 0:53: 'limitations' : Non-constant-index-expression
+ERROR: 0:54: 'limitations' : Non-constant-index-expression
+ERROR: 0:65: 'limitations' : Non-constant-index-expression
+ERROR: 20 compilation errors. No code generated.
+
+
+
+Linked vertex stage:
+
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/100scope.vert.out b/chromium/third_party/glslang/src/Test/baseResults/100scope.vert.out
new file mode 100644
index 00000000000..2b542b0c679
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/100scope.vert.out
@@ -0,0 +1,240 @@
+100scope.vert
+ERROR: 0:5: 'a' : redefinition
+ERROR: 0:17: 'b' : function name is redeclaration of existing name
+ERROR: 0:20: 'c' : redefinition
+ERROR: 0:22: 'f' : redefinition
+ERROR: 0:24: 'redefinition of built-in function' : not supported with this profile: es
+ERROR: 0:24: 'highp' : overloaded functions must have the same parameter precision qualifiers for argument 1
+ERROR: 0:25: 'redefinition of built-in function' : not supported with this profile: es
+ERROR: 0:25: 'highp' : overloaded functions must have the same parameter precision qualifiers for argument 1
+ERROR: 0:38: 'local function declaration' : not supported with this profile: es
+ERROR: 0:43: 'sin' : can't use function syntax on variable
+ERROR: 0:57: 'z' : undeclared identifier
+ERROR: 0:57: 'z' : redefinition
+ERROR: 0:73: 'degrees' : can't use function syntax on variable
+ERROR: 0:76: 'vertex-shader struct output' : not supported for this version or the enabled extensions
+ERROR: 14 compilation errors. No code generated.
+
+
+Shader version: 100
+ERROR: node is still EOpNull!
+0:3 Function Definition: f(i1;i1;i1; (global highp int)
+0:3 Function Parameters:
+0:3 'a' (in highp int)
+0:3 'b' (in highp int)
+0:3 'c' (in highp int)
+0:? Sequence
+0:8 Sequence
+0:8 Sequence
+0:8 move second child to first child (temp highp float)
+0:8 'a' (temp highp float)
+0:8 add (temp highp float)
+0:8 Convert int to float (temp highp float)
+0:8 'a' (in highp int)
+0:8 Constant:
+0:8 1.000000
+0:11 Branch: Return with expression
+0:11 'a' (in highp int)
+0:25 Function Definition: cos(f1; (global highp float)
+0:25 Function Parameters:
+0:25 'x' (in highp float)
+0:27 Sequence
+0:27 Branch: Return with expression
+0:27 Constant:
+0:27 1.000000
+0:29 Function Definition: radians(b1; (global bool)
+0:29 Function Parameters:
+0:29 'x' (in bool)
+0:31 Sequence
+0:31 Branch: Return with expression
+0:31 Constant:
+0:31 true (const bool)
+0:36 Function Definition: main( (global void)
+0:36 Function Parameters:
+0:? Sequence
+0:39 Function Call: g( (temp highp int)
+0:42 'sin' (temp highp float)
+0:43 Constant:
+0:43 0.000000
+0:44 Function Call: f(i1;i1;i1; (global highp int)
+0:44 Constant:
+0:44 1 (const int)
+0:44 Constant:
+0:44 2 (const int)
+0:44 Constant:
+0:44 3 (const int)
+0:47 move second child to first child (temp highp float)
+0:47 'f' (temp highp float)
+0:47 Constant:
+0:47 3.000000
+0:49 move second child to first child (temp highp 4-component vector of float)
+0:49 'gl_Position' (invariant gl_Position highp 4-component vector of float Position)
+0:49 Construct vec4 (temp highp 4-component vector of float)
+0:49 'f' (temp highp float)
+0:51 Sequence
+0:51 Sequence
+0:51 move second child to first child (temp highp int)
+0:51 'f' (temp highp int)
+0:51 Constant:
+0:51 0 (const int)
+0:51 Loop with condition tested first
+0:51 Loop Condition
+0:51 Compare Less Than (temp bool)
+0:51 'f' (temp highp int)
+0:51 Constant:
+0:51 10 (const int)
+0:51 Loop Body
+0:52 Pre-Increment (temp highp int)
+0:52 'f' (temp highp int)
+0:51 Loop Terminal Expression
+0:51 Pre-Increment (temp highp int)
+0:51 'f' (temp highp int)
+0:54 Sequence
+0:54 move second child to first child (temp highp int)
+0:54 'x' (temp highp int)
+0:54 Constant:
+0:54 1 (const int)
+0:56 Sequence
+0:56 Sequence
+0:56 move second child to first child (temp highp float)
+0:56 'x' (temp highp float)
+0:56 Constant:
+0:56 2.000000
+0:56 move second child to first child (temp highp float)
+0:56 'y' (temp highp float)
+0:56 'x' (temp highp float)
+0:60 Sequence
+0:60 Sequence
+0:60 move second child to first child (temp highp int)
+0:60 'x' (temp highp int)
+0:60 'x' (temp highp int)
+0:68 Sequence
+0:68 Sequence
+0:68 move second child to first child (temp structure{temp highp int x})
+0:68 'S' (temp structure{temp highp int x})
+0:68 Constant:
+0:68 0 (const int)
+0:69 x: direct index for structure (temp highp int)
+0:69 'S' (temp structure{temp highp int x})
+0:69 Constant:
+0:69 0 (const int)
+0:73 Constant:
+0:73 0.000000
+0:? Linker Objects
+0:? 'b' (global bool)
+0:? 'tan' (global highp float)
+0:? 's' (smooth out structure{global highp float f})
+
+
+Linked vertex stage:
+
+
+Shader version: 100
+ERROR: node is still EOpNull!
+0:3 Function Definition: f(i1;i1;i1; (global highp int)
+0:3 Function Parameters:
+0:3 'a' (in highp int)
+0:3 'b' (in highp int)
+0:3 'c' (in highp int)
+0:? Sequence
+0:8 Sequence
+0:8 Sequence
+0:8 move second child to first child (temp highp float)
+0:8 'a' (temp highp float)
+0:8 add (temp highp float)
+0:8 Convert int to float (temp highp float)
+0:8 'a' (in highp int)
+0:8 Constant:
+0:8 1.000000
+0:11 Branch: Return with expression
+0:11 'a' (in highp int)
+0:25 Function Definition: cos(f1; (global highp float)
+0:25 Function Parameters:
+0:25 'x' (in highp float)
+0:27 Sequence
+0:27 Branch: Return with expression
+0:27 Constant:
+0:27 1.000000
+0:29 Function Definition: radians(b1; (global bool)
+0:29 Function Parameters:
+0:29 'x' (in bool)
+0:31 Sequence
+0:31 Branch: Return with expression
+0:31 Constant:
+0:31 true (const bool)
+0:36 Function Definition: main( (global void)
+0:36 Function Parameters:
+0:? Sequence
+0:39 Function Call: g( (temp highp int)
+0:42 'sin' (temp highp float)
+0:43 Constant:
+0:43 0.000000
+0:44 Function Call: f(i1;i1;i1; (global highp int)
+0:44 Constant:
+0:44 1 (const int)
+0:44 Constant:
+0:44 2 (const int)
+0:44 Constant:
+0:44 3 (const int)
+0:47 move second child to first child (temp highp float)
+0:47 'f' (temp highp float)
+0:47 Constant:
+0:47 3.000000
+0:49 move second child to first child (temp highp 4-component vector of float)
+0:49 'gl_Position' (invariant gl_Position highp 4-component vector of float Position)
+0:49 Construct vec4 (temp highp 4-component vector of float)
+0:49 'f' (temp highp float)
+0:51 Sequence
+0:51 Sequence
+0:51 move second child to first child (temp highp int)
+0:51 'f' (temp highp int)
+0:51 Constant:
+0:51 0 (const int)
+0:51 Loop with condition tested first
+0:51 Loop Condition
+0:51 Compare Less Than (temp bool)
+0:51 'f' (temp highp int)
+0:51 Constant:
+0:51 10 (const int)
+0:51 Loop Body
+0:52 Pre-Increment (temp highp int)
+0:52 'f' (temp highp int)
+0:51 Loop Terminal Expression
+0:51 Pre-Increment (temp highp int)
+0:51 'f' (temp highp int)
+0:54 Sequence
+0:54 move second child to first child (temp highp int)
+0:54 'x' (temp highp int)
+0:54 Constant:
+0:54 1 (const int)
+0:56 Sequence
+0:56 Sequence
+0:56 move second child to first child (temp highp float)
+0:56 'x' (temp highp float)
+0:56 Constant:
+0:56 2.000000
+0:56 move second child to first child (temp highp float)
+0:56 'y' (temp highp float)
+0:56 'x' (temp highp float)
+0:60 Sequence
+0:60 Sequence
+0:60 move second child to first child (temp highp int)
+0:60 'x' (temp highp int)
+0:60 'x' (temp highp int)
+0:68 Sequence
+0:68 Sequence
+0:68 move second child to first child (temp structure{temp highp int x})
+0:68 'S' (temp structure{temp highp int x})
+0:68 Constant:
+0:68 0 (const int)
+0:69 x: direct index for structure (temp highp int)
+0:69 'S' (temp structure{temp highp int x})
+0:69 Constant:
+0:69 0 (const int)
+0:73 Constant:
+0:73 0.000000
+0:? Linker Objects
+0:? 'b' (global bool)
+0:? 'tan' (global highp float)
+0:? 's' (smooth out structure{global highp float f})
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/110scope.vert.out b/chromium/third_party/glslang/src/Test/baseResults/110scope.vert.out
new file mode 100644
index 00000000000..5f41b86bae7
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/110scope.vert.out
@@ -0,0 +1,256 @@
+110scope.vert
+ERROR: 0:5: 'a' : redefinition
+ERROR: 0:34: 'f' : can't call user function from global scope
+ERROR: 0:57: 'z' : undeclared identifier
+ERROR: 0:57: 'z' : redefinition
+ERROR: 4 compilation errors. No code generated.
+
+
+Shader version: 110
+ERROR: node is still EOpNull!
+0:3 Function Definition: f(i1;i1;i1; (global int)
+0:3 Function Parameters:
+0:3 'a' (in int)
+0:3 'b' (in int)
+0:3 'c' (in int)
+0:? Sequence
+0:8 Sequence
+0:8 Sequence
+0:8 move second child to first child (temp float)
+0:8 'a' (temp float)
+0:8 add (temp float)
+0:8 Convert int to float (temp float)
+0:8 'a' (in int)
+0:8 Constant:
+0:8 1.000000
+0:11 Branch: Return with expression
+0:11 'a' (in int)
+0:25 Function Definition: cos(f1; (global float)
+0:25 Function Parameters:
+0:25 'x' (in float)
+0:27 Sequence
+0:27 Branch: Return with expression
+0:27 Constant:
+0:27 1.000000
+0:29 Function Definition: radians(b1; (global bool)
+0:29 Function Parameters:
+0:29 'x' (in bool)
+0:31 Sequence
+0:31 Branch: Return with expression
+0:31 Constant:
+0:31 true (const bool)
+0:34 Sequence
+0:34 move second child to first child (temp int)
+0:34 'gi' (global int)
+0:34 Function Call: f(i1;i1;i1; (global int)
+0:34 Constant:
+0:34 1 (const int)
+0:34 Constant:
+0:34 2 (const int)
+0:34 Constant:
+0:34 3 (const int)
+0:36 Function Definition: main( (global void)
+0:36 Function Parameters:
+0:? Sequence
+0:39 Function Call: g( (temp int)
+0:42 'sin' (temp float)
+0:43 Function Call: sin(f1; (global float)
+0:43 Constant:
+0:43 0.700000
+0:44 Function Call: f(i1;i1;i1; (global int)
+0:44 Constant:
+0:44 1 (const int)
+0:44 Constant:
+0:44 2 (const int)
+0:44 Constant:
+0:44 3 (const int)
+0:47 move second child to first child (temp float)
+0:47 'f' (temp float)
+0:47 Constant:
+0:47 3.000000
+0:49 move second child to first child (temp 4-component vector of float)
+0:49 'gl_Position' (gl_Position 4-component vector of float Position)
+0:49 Construct vec4 (temp 4-component vector of float)
+0:49 'f' (temp float)
+0:51 Sequence
+0:51 Sequence
+0:51 move second child to first child (temp int)
+0:51 'f' (temp int)
+0:51 Constant:
+0:51 0 (const int)
+0:51 Loop with condition tested first
+0:51 Loop Condition
+0:51 Compare Less Than (temp bool)
+0:51 'f' (temp int)
+0:51 Constant:
+0:51 10 (const int)
+0:51 Loop Body
+0:52 Pre-Increment (temp int)
+0:52 'f' (temp int)
+0:51 Loop Terminal Expression
+0:51 Pre-Increment (temp int)
+0:51 'f' (temp int)
+0:54 Sequence
+0:54 move second child to first child (temp int)
+0:54 'x' (temp int)
+0:54 Constant:
+0:54 1 (const int)
+0:56 Sequence
+0:56 Sequence
+0:56 move second child to first child (temp float)
+0:56 'x' (temp float)
+0:56 Constant:
+0:56 2.000000
+0:56 move second child to first child (temp float)
+0:56 'y' (temp float)
+0:56 'x' (temp float)
+0:60 Sequence
+0:60 Sequence
+0:60 move second child to first child (temp int)
+0:60 'x' (temp int)
+0:60 'x' (temp int)
+0:68 Sequence
+0:68 Sequence
+0:68 move second child to first child (temp structure{temp int x})
+0:68 'S' (temp structure{temp int x})
+0:68 Constant:
+0:68 0 (const int)
+0:69 x: direct index for structure (temp int)
+0:69 'S' (temp structure{temp int x})
+0:69 Constant:
+0:69 0 (const int)
+0:73 Constant:
+0:73 183.346494
+0:? Linker Objects
+0:? 'b' (global bool)
+0:? 'c' (global bool)
+0:? 'f' (global float)
+0:? 'tan' (global float)
+0:? 'gi' (global int)
+
+
+Linked vertex stage:
+
+
+Shader version: 110
+ERROR: node is still EOpNull!
+0:3 Function Definition: f(i1;i1;i1; (global int)
+0:3 Function Parameters:
+0:3 'a' (in int)
+0:3 'b' (in int)
+0:3 'c' (in int)
+0:? Sequence
+0:8 Sequence
+0:8 Sequence
+0:8 move second child to first child (temp float)
+0:8 'a' (temp float)
+0:8 add (temp float)
+0:8 Convert int to float (temp float)
+0:8 'a' (in int)
+0:8 Constant:
+0:8 1.000000
+0:11 Branch: Return with expression
+0:11 'a' (in int)
+0:25 Function Definition: cos(f1; (global float)
+0:25 Function Parameters:
+0:25 'x' (in float)
+0:27 Sequence
+0:27 Branch: Return with expression
+0:27 Constant:
+0:27 1.000000
+0:29 Function Definition: radians(b1; (global bool)
+0:29 Function Parameters:
+0:29 'x' (in bool)
+0:31 Sequence
+0:31 Branch: Return with expression
+0:31 Constant:
+0:31 true (const bool)
+0:34 Sequence
+0:34 move second child to first child (temp int)
+0:34 'gi' (global int)
+0:34 Function Call: f(i1;i1;i1; (global int)
+0:34 Constant:
+0:34 1 (const int)
+0:34 Constant:
+0:34 2 (const int)
+0:34 Constant:
+0:34 3 (const int)
+0:36 Function Definition: main( (global void)
+0:36 Function Parameters:
+0:? Sequence
+0:39 Function Call: g( (temp int)
+0:42 'sin' (temp float)
+0:43 Function Call: sin(f1; (global float)
+0:43 Constant:
+0:43 0.700000
+0:44 Function Call: f(i1;i1;i1; (global int)
+0:44 Constant:
+0:44 1 (const int)
+0:44 Constant:
+0:44 2 (const int)
+0:44 Constant:
+0:44 3 (const int)
+0:47 move second child to first child (temp float)
+0:47 'f' (temp float)
+0:47 Constant:
+0:47 3.000000
+0:49 move second child to first child (temp 4-component vector of float)
+0:49 'gl_Position' (gl_Position 4-component vector of float Position)
+0:49 Construct vec4 (temp 4-component vector of float)
+0:49 'f' (temp float)
+0:51 Sequence
+0:51 Sequence
+0:51 move second child to first child (temp int)
+0:51 'f' (temp int)
+0:51 Constant:
+0:51 0 (const int)
+0:51 Loop with condition tested first
+0:51 Loop Condition
+0:51 Compare Less Than (temp bool)
+0:51 'f' (temp int)
+0:51 Constant:
+0:51 10 (const int)
+0:51 Loop Body
+0:52 Pre-Increment (temp int)
+0:52 'f' (temp int)
+0:51 Loop Terminal Expression
+0:51 Pre-Increment (temp int)
+0:51 'f' (temp int)
+0:54 Sequence
+0:54 move second child to first child (temp int)
+0:54 'x' (temp int)
+0:54 Constant:
+0:54 1 (const int)
+0:56 Sequence
+0:56 Sequence
+0:56 move second child to first child (temp float)
+0:56 'x' (temp float)
+0:56 Constant:
+0:56 2.000000
+0:56 move second child to first child (temp float)
+0:56 'y' (temp float)
+0:56 'x' (temp float)
+0:60 Sequence
+0:60 Sequence
+0:60 move second child to first child (temp int)
+0:60 'x' (temp int)
+0:60 'x' (temp int)
+0:68 Sequence
+0:68 Sequence
+0:68 move second child to first child (temp structure{temp int x})
+0:68 'S' (temp structure{temp int x})
+0:68 Constant:
+0:68 0 (const int)
+0:69 x: direct index for structure (temp int)
+0:69 'S' (temp structure{temp int x})
+0:69 Constant:
+0:69 0 (const int)
+0:73 Constant:
+0:73 183.346494
+0:? Linker Objects
+0:? 'b' (global bool)
+0:? 'c' (global bool)
+0:? 'f' (global float)
+0:? 'tan' (global float)
+0:? 'gi' (global int)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/120.frag.out b/chromium/third_party/glslang/src/Test/baseResults/120.frag.out
new file mode 100644
index 00000000000..0d10b0e9fbe
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/120.frag.out
@@ -0,0 +1,1193 @@
+120.frag
+ERROR: 0:9: 'in for stage inputs' : not supported for this version or the enabled extensions
+ERROR: 0:10: 'out for stage outputs' : not supported for this version or the enabled extensions
+ERROR: 0:54: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type 'temp 2-component vector of float' and a right operand of type 'temp 3-component vector of float' (or there is no acceptable conversion)
+ERROR: 0:55: '*' : wrong operand types: no operation '*' exists that takes a left-hand operand of type 'uniform 4X2 matrix of float' and a right operand of type 'temp 3-component vector of float' (or there is no acceptable conversion)
+ERROR: 0:56: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type 'uniform 4X2 matrix of float' and a right operand of type 'smooth in 4-component vector of float' (or there is no acceptable conversion)
+ERROR: 0:57: '=' : cannot convert from 'const float' to 'temp int'
+ERROR: 0:58: 'assign' : cannot convert from 'temp bool' to 'temp float'
+ERROR: 0:59: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type 'temp int' and a right operand of type 'temp bool' (or there is no acceptable conversion)
+ERROR: 0:60: '*' : wrong operand types: no operation '*' exists that takes a left-hand operand of type 'temp bool' and a right operand of type 'temp int' (or there is no acceptable conversion)
+ERROR: 0:60: 'assign' : cannot convert from 'temp bool' to 'temp float'
+ERROR: 0:61: 'assign' : cannot convert from 'temp int' to 'temp bool'
+ERROR: 0:62: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type 'temp bool' and a right operand of type 'temp float' (or there is no acceptable conversion)
+ERROR: 0:63: 'bitwise-or assign' : not supported for this version or the enabled extensions
+ERROR: 0:63: 'assign' : cannot convert from 'temp bool' to 'temp float'
+ERROR: 0:79: ':' : wrong operand types: no operation ':' exists that takes a left-hand operand of type 'temp 4-component vector of float' and a right operand of type 'temp 4X4 matrix of float' (or there is no acceptable conversion)
+ERROR: 0:79: 'assign' : cannot convert from 'temp 4X4 matrix of float' to 'fragColor 4-component vector of float FragColor'
+ERROR: 0:82: 'xr' : illegal - vector component fields not from the same set
+ERROR: 0:83: 'xyxyx' : illegal vector field selection
+ERROR: 0:83: 'scalar swizzle' : not supported for this version or the enabled extensions
+ERROR: 0:83: 'xy' : vector field selection out of range
+ERROR: 0:84: 'z' : vector field selection out of range
+ERROR: 0:85: 'assign' : l-value required
+ERROR: 0:91: 'int' : overloaded functions must have the same return type
+ERROR: 0:91: 'main' : function already has a body
+ERROR: 0:91: 'int' : main function cannot return a value
+ERROR: 0:92: 'main' : function cannot take any parameter(s)
+ERROR: 0:94: 'a' : variables with qualifier 'const' must be initialized
+ERROR: 0:97: 'out' : overloaded functions must have the same parameter storage qualifiers for argument 1
+ERROR: 0:99: 'return' : type does not match, or is not convertible to, the function's return type
+ERROR: 0:115: 'return' : void function cannot return a value
+ERROR: 0:125: 'gl_TexCoord' : redeclaration of array with size
+ERROR: 0:152: 'matrixCompMult' : no matching overloaded function found
+ERROR: 0:152: '=' : cannot convert from 'const float' to 'temp 3X2 matrix of float'
+ERROR: 0:153: 'matrixCompMult' : no matching overloaded function found
+ERROR: 0:153: '=' : cannot convert from 'const float' to 'temp 3X4 matrix of float'
+ERROR: 0:160: 'constructor' : not enough data provided for construction
+ERROR: 0:160: '=' : cannot convert from 'const float' to 'temp 4X4 matrix of float'
+ERROR: 0:161: 'constructor' : too many arguments
+ERROR: 0:161: '=' : cannot convert from 'const float' to 'temp 4X4 matrix of float'
+ERROR: 0:165: 'constructor' : matrix constructed from matrix can only have one argument
+ERROR: 0:166: 'constructor' : matrix constructed from matrix can only have one argument
+ERROR: 0:172: 'constructor' : array constructor needs one argument per array element
+ERROR: 0:172: '=' : cannot convert from 'const float' to 'temp 2-element array of 3X3 matrix of float'
+ERROR: 0:184: 'texture2DLod' : required extension not requested: GL_ARB_shader_texture_lod
+ERROR: 0:185: 'texture3DProjLod' : required extension not requested: GL_ARB_shader_texture_lod
+ERROR: 0:186: 'texture1DProjLod' : required extension not requested: GL_ARB_shader_texture_lod
+ERROR: 0:187: 'shadow2DProjLod' : required extension not requested: GL_ARB_shader_texture_lod
+ERROR: 0:189: 'texture1DGradARB' : required extension not requested: GL_ARB_shader_texture_lod
+ERROR: 0:190: 'texture2DProjGradARB' : required extension not requested: GL_ARB_shader_texture_lod
+ERROR: 0:191: 'shadow2DProjGradARB' : required extension not requested: GL_ARB_shader_texture_lod
+ERROR: 0:209: 'shadow2DRectProjGradARB' : no matching overloaded function found
+ERROR: 0:209: 'assign' : cannot convert from 'const float' to 'temp 4-component vector of float'
+ERROR: 0:212: 'sampler2DRect' : Reserved word.
+ERROR: 53 compilation errors. No code generated.
+
+
+Shader version: 120
+Requested GL_ARB_shader_texture_lod
+Requested GL_ARB_texture_rectangle
+ERROR: node is still EOpNull!
+0:21 Function Definition: main( (global void)
+0:21 Function Parameters:
+0:23 Sequence
+0:23 Sequence
+0:23 move second child to first child (temp 2X3 matrix of float)
+0:23 'm23' (temp 2X3 matrix of float)
+0:23 Construct mat2x3 (temp 2X3 matrix of float)
+0:23 'm' (uniform 4X2 matrix of float)
+0:27 Sequence
+0:27 move second child to first child (temp structure{global float f})
+0:27 'sv' (temp structure{global float f})
+0:27 Construct structure (temp structure{global float f})
+0:27 Convert int to float (temp float)
+0:27 'a' (temp int)
+0:28 Sequence
+0:28 move second child to first child (temp 2-element array of float)
+0:28 'ia' (temp 2-element array of float)
+0:28 Construct float (temp 2-element array of float)
+0:28 Constant:
+0:28 3.000000
+0:28 direct index (temp float)
+0:28 'i' (smooth in 4-component vector of float)
+0:28 Constant:
+0:28 1 (const int)
+0:29 Sequence
+0:29 move second child to first child (temp float)
+0:29 'f1' (temp float)
+0:29 Constant:
+0:29 1.000000
+0:30 Sequence
+0:30 move second child to first child (temp float)
+0:30 'f' (temp float)
+0:30 Convert int to float (temp float)
+0:30 'a' (temp int)
+0:31 move second child to first child (temp float)
+0:31 'f' (temp float)
+0:31 Convert int to float (temp float)
+0:31 'a' (temp int)
+0:33 Sequence
+0:33 move second child to first child (temp 3-component vector of float)
+0:33 'v3' (temp 3-component vector of float)
+0:33 Convert int to float (temp 3-component vector of float)
+0:33 'iv3' (temp 3-component vector of int)
+0:34 move second child to first child (temp float)
+0:34 'f' (temp float)
+0:34 add (temp float)
+0:34 'f' (temp float)
+0:34 Convert int to float (temp float)
+0:34 'a' (temp int)
+0:35 move second child to first child (temp float)
+0:35 'f' (temp float)
+0:35 subtract (temp float)
+0:35 Convert int to float (temp float)
+0:35 'a' (temp int)
+0:35 'f' (temp float)
+0:36 add second child into first child (temp float)
+0:36 'f' (temp float)
+0:36 Convert int to float (temp float)
+0:36 'a' (temp int)
+0:37 move second child to first child (temp float)
+0:37 'f' (temp float)
+0:37 subtract (temp float)
+0:37 Convert int to float (temp float)
+0:37 'a' (temp int)
+0:37 'f' (temp float)
+0:38 multiply second child into first child (temp 3-component vector of float)
+0:38 'v3' (temp 3-component vector of float)
+0:38 Convert int to float (temp 3-component vector of float)
+0:38 'iv3' (temp 3-component vector of int)
+0:39 move second child to first child (temp 3-component vector of float)
+0:39 'v3' (temp 3-component vector of float)
+0:39 divide (temp 3-component vector of float)
+0:39 Convert int to float (temp 3-component vector of float)
+0:39 'iv3' (temp 3-component vector of int)
+0:39 Constant:
+0:39 2.000000
+0:40 move second child to first child (temp 3-component vector of float)
+0:40 'v3' (temp 3-component vector of float)
+0:40 vector-scale (temp 3-component vector of float)
+0:40 Constant:
+0:40 3.000000
+0:40 Convert int to float (temp 3-component vector of float)
+0:40 'iv3' (temp 3-component vector of int)
+0:41 move second child to first child (temp 3-component vector of float)
+0:41 'v3' (temp 3-component vector of float)
+0:41 vector-scale (temp 3-component vector of float)
+0:41 Constant:
+0:41 2.000000
+0:41 'v3' (temp 3-component vector of float)
+0:42 move second child to first child (temp 3-component vector of float)
+0:42 'v3' (temp 3-component vector of float)
+0:42 subtract (temp 3-component vector of float)
+0:42 'v3' (temp 3-component vector of float)
+0:42 Constant:
+0:42 2.000000
+0:43 Test condition and select (temp void)
+0:43 Condition
+0:47 logical-or (temp bool)
+0:46 logical-or (temp bool)
+0:45 logical-or (temp bool)
+0:44 logical-or (temp bool)
+0:43 logical-or (temp bool)
+0:43 Compare Less Than (temp bool)
+0:43 'f' (temp float)
+0:43 Convert int to float (temp float)
+0:43 'a' (temp int)
+0:44 Compare Less Than or Equal (temp bool)
+0:44 Convert int to float (temp float)
+0:44 'a' (temp int)
+0:44 'f' (temp float)
+0:45 Compare Greater Than (temp bool)
+0:45 'f' (temp float)
+0:45 Convert int to float (temp float)
+0:45 'a' (temp int)
+0:46 Compare Greater Than or Equal (temp bool)
+0:46 'f' (temp float)
+0:46 Convert int to float (temp float)
+0:46 'a' (temp int)
+0:47 Compare Equal (temp bool)
+0:47 Convert int to float (temp float)
+0:47 'a' (temp int)
+0:47 'f' (temp float)
+0:48 Compare Not Equal (temp bool)
+0:48 'f' (temp float)
+0:48 Convert int to float (temp float)
+0:48 'a' (temp int)
+0:43 true case is null
+0:49 move second child to first child (temp float)
+0:49 'f' (temp float)
+0:49 Test condition and select (temp float)
+0:49 Condition
+0:49 'b' (temp bool)
+0:49 true case
+0:49 Convert int to float (temp float)
+0:49 'a' (temp int)
+0:49 false case
+0:49 'f' (temp float)
+0:50 move second child to first child (temp float)
+0:50 'f' (temp float)
+0:50 Test condition and select (temp float)
+0:50 Condition
+0:50 'b' (temp bool)
+0:50 true case
+0:50 'f' (temp float)
+0:50 false case
+0:50 Convert int to float (temp float)
+0:50 'a' (temp int)
+0:51 move second child to first child (temp float)
+0:51 'f' (temp float)
+0:51 Convert int to float (temp float)
+0:51 Test condition and select (temp int)
+0:51 Condition
+0:51 'b' (temp bool)
+0:51 true case
+0:51 'a' (temp int)
+0:51 false case
+0:51 'a' (temp int)
+0:52 Sequence
+0:52 move second child to first child (temp structure{global float f})
+0:52 'news' (temp structure{global float f})
+0:52 'sv' (temp structure{global float f})
+0:54 vector swizzle (temp 2-component vector of float)
+0:54 'i' (smooth in 4-component vector of float)
+0:54 Sequence
+0:54 Constant:
+0:54 0 (const int)
+0:54 Constant:
+0:54 1 (const int)
+0:55 'm' (uniform 4X2 matrix of float)
+0:56 'm' (uniform 4X2 matrix of float)
+0:58 'f' (temp float)
+0:59 move second child to first child (temp float)
+0:59 'f' (temp float)
+0:59 Convert int to float (temp float)
+0:59 'a' (temp int)
+0:60 'f' (temp float)
+0:61 'b' (temp bool)
+0:62 move second child to first child (temp bool)
+0:62 'b' (temp bool)
+0:62 'b' (temp bool)
+0:63 'f' (temp float)
+0:65 move second child to first child (temp 4-component vector of float)
+0:65 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:65 texture (global 4-component vector of float)
+0:65 's2D' (uniform sampler2D)
+0:65 'centTexCoord' (centroid smooth in 2-component vector of float)
+0:? Sequence
+0:79 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:82 direct index (temp float)
+0:82 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:82 Constant:
+0:82 0 (const int)
+0:83 direct index (temp float)
+0:83 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:83 Constant:
+0:83 0 (const int)
+0:84 direct index (temp float)
+0:84 'centTexCoord' (centroid smooth in 2-component vector of float)
+0:84 Constant:
+0:84 0 (const int)
+0:85 move second child to first child (temp bool)
+0:85 Comma (temp bool)
+0:85 'a' (temp int)
+0:85 'b' (temp bool)
+0:85 Constant:
+0:85 true (const bool)
+0:91 Function Definition: main( (global int)
+0:91 Function Parameters:
+0:92 Function Definition: main(i1; (global void)
+0:92 Function Parameters:
+0:92 'a' (in int)
+0:97 Function Definition: foo(f1; (global int)
+0:97 Function Parameters:
+0:97 'a' (out float)
+0:99 Sequence
+0:99 Branch: Return with expression
+0:99 Constant:
+0:99 3.200000
+0:100 Function Call: foo(f1; (global int)
+0:100 'a' (out float)
+0:103 Function Definition: gen(vf3; (global bool)
+0:103 Function Parameters:
+0:103 'v' (in 3-component vector of float)
+0:105 Sequence
+0:105 Test condition and select (temp void)
+0:105 Condition
+0:105 logical-and (temp bool)
+0:105 Compare Less Than (temp bool)
+0:105 Absolute value (global float)
+0:105 direct index (temp float)
+0:105 'v' (in 3-component vector of float)
+0:105 Constant:
+0:105 0 (const int)
+0:105 Constant:
+0:105 0.000100
+0:105 Compare Less Than (temp bool)
+0:105 Absolute value (global float)
+0:105 direct index (temp float)
+0:105 'v' (in 3-component vector of float)
+0:105 Constant:
+0:105 1 (const int)
+0:105 Constant:
+0:105 0.000100
+0:105 true case
+0:106 Branch: Return with expression
+0:106 Constant:
+0:106 true (const bool)
+0:109 Function Definition: v1( (global void)
+0:109 Function Parameters:
+0:113 Function Definition: v2( (global void)
+0:113 Function Parameters:
+0:115 Sequence
+0:115 Branch: Return
+0:118 Function Definition: atest( (global void)
+0:118 Function Parameters:
+0:120 Sequence
+0:120 Sequence
+0:120 move second child to first child (temp 4-component vector of float)
+0:120 'v' (temp 4-component vector of float)
+0:120 direct index (smooth temp 4-component vector of float TexCoord)
+0:120 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:120 Constant:
+0:120 1 (const int)
+0:121 add second child into first child (temp 4-component vector of float)
+0:121 'v' (temp 4-component vector of float)
+0:121 direct index (smooth temp 4-component vector of float TexCoord)
+0:121 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:121 Constant:
+0:121 3 (const int)
+0:139 Function Definition: foo123( (global void)
+0:139 Function Parameters:
+0:141 Sequence
+0:141 Sequence
+0:141 move second child to first child (temp 2X2 matrix of float)
+0:141 'r2' (temp 2X2 matrix of float)
+0:141 component-wise multiply (global 2X2 matrix of float)
+0:141 'm22' (global 2X2 matrix of float)
+0:141 'm22' (global 2X2 matrix of float)
+0:142 Sequence
+0:142 move second child to first child (temp 3X3 matrix of float)
+0:142 'r3' (temp 3X3 matrix of float)
+0:142 component-wise multiply (global 3X3 matrix of float)
+0:142 'm33' (global 3X3 matrix of float)
+0:142 'm33' (global 3X3 matrix of float)
+0:143 Sequence
+0:143 move second child to first child (temp 4X4 matrix of float)
+0:143 'r4' (temp 4X4 matrix of float)
+0:143 component-wise multiply (global 4X4 matrix of float)
+0:143 'm44' (global 4X4 matrix of float)
+0:143 'm44' (global 4X4 matrix of float)
+0:145 Sequence
+0:145 move second child to first child (temp 2X3 matrix of float)
+0:145 'r23' (temp 2X3 matrix of float)
+0:145 component-wise multiply (global 2X3 matrix of float)
+0:145 'm23' (global 2X3 matrix of float)
+0:145 'm23' (global 2X3 matrix of float)
+0:146 Sequence
+0:146 move second child to first child (temp 2X4 matrix of float)
+0:146 'r24' (temp 2X4 matrix of float)
+0:146 component-wise multiply (global 2X4 matrix of float)
+0:146 'm24' (global 2X4 matrix of float)
+0:146 'm24' (global 2X4 matrix of float)
+0:147 Sequence
+0:147 move second child to first child (temp 3X2 matrix of float)
+0:147 'r32' (temp 3X2 matrix of float)
+0:147 component-wise multiply (global 3X2 matrix of float)
+0:147 'm32' (global 3X2 matrix of float)
+0:147 'm32' (global 3X2 matrix of float)
+0:148 Sequence
+0:148 move second child to first child (temp 3X4 matrix of float)
+0:148 'r34' (temp 3X4 matrix of float)
+0:148 component-wise multiply (global 3X4 matrix of float)
+0:148 'm34' (global 3X4 matrix of float)
+0:148 'm34' (global 3X4 matrix of float)
+0:149 Sequence
+0:149 move second child to first child (temp 4X2 matrix of float)
+0:149 'r42' (temp 4X2 matrix of float)
+0:149 component-wise multiply (global 4X2 matrix of float)
+0:149 'm42' (global 4X2 matrix of float)
+0:149 'm42' (global 4X2 matrix of float)
+0:150 Sequence
+0:150 move second child to first child (temp 4X3 matrix of float)
+0:150 'r43' (temp 4X3 matrix of float)
+0:150 component-wise multiply (global 4X3 matrix of float)
+0:150 'm43' (global 4X3 matrix of float)
+0:150 'm43' (global 4X3 matrix of float)
+0:156 Function Definition: matConst( (global void)
+0:156 Function Parameters:
+0:? Sequence
+0:162 Sequence
+0:162 move second child to first child (temp 4X4 matrix of float)
+0:162 'm4g' (temp 4X4 matrix of float)
+0:162 Construct mat4 (temp 4X4 matrix of float)
+0:162 'v2' (temp 2-component vector of float)
+0:162 'v3' (temp 3-component vector of float)
+0:162 'v3' (temp 3-component vector of float)
+0:162 'v3' (temp 3-component vector of float)
+0:162 'v3' (temp 3-component vector of float)
+0:162 'v3' (temp 3-component vector of float)
+0:163 Sequence
+0:163 move second child to first child (temp 4X4 matrix of float)
+0:163 'm4' (temp 4X4 matrix of float)
+0:163 Construct mat4 (temp 4X4 matrix of float)
+0:163 'v2' (temp 2-component vector of float)
+0:163 'v3' (temp 3-component vector of float)
+0:163 'v3' (temp 3-component vector of float)
+0:163 'v3' (temp 3-component vector of float)
+0:163 'v3' (temp 3-component vector of float)
+0:163 'v2' (temp 2-component vector of float)
+0:164 Sequence
+0:164 move second child to first child (temp 3X3 matrix of float)
+0:164 'm3' (temp 3X3 matrix of float)
+0:164 Construct mat3 (temp 3X3 matrix of float)
+0:164 'm4' (temp 4X4 matrix of float)
+0:165 Sequence
+0:165 move second child to first child (temp 3X3 matrix of float)
+0:165 'm3b1' (temp 3X3 matrix of float)
+0:165 Construct mat3 (temp 3X3 matrix of float)
+0:165 'm4' (temp 4X4 matrix of float)
+0:165 'v2' (temp 2-component vector of float)
+0:166 Sequence
+0:166 move second child to first child (temp 3X3 matrix of float)
+0:166 'm3b2' (temp 3X3 matrix of float)
+0:166 Construct mat3 (temp 3X3 matrix of float)
+0:166 'm4' (temp 4X4 matrix of float)
+0:166 'm4' (temp 4X4 matrix of float)
+0:167 Sequence
+0:167 move second child to first child (temp 3X2 matrix of float)
+0:167 'm32' (temp 3X2 matrix of float)
+0:167 Construct mat3x2 (temp 3X2 matrix of float)
+0:167 'm4' (temp 4X4 matrix of float)
+0:168 Sequence
+0:168 move second child to first child (temp 4X4 matrix of float)
+0:168 'm4c' (temp 4X4 matrix of float)
+0:168 Construct mat4 (temp 4X4 matrix of float)
+0:168 'm32' (temp 3X2 matrix of float)
+0:169 Sequence
+0:169 move second child to first child (temp 3X3 matrix of float)
+0:169 'm3s' (temp 3X3 matrix of float)
+0:169 Construct mat3 (temp 3X3 matrix of float)
+0:169 direct index (temp float)
+0:169 'v2' (temp 2-component vector of float)
+0:169 Constant:
+0:169 0 (const int)
+0:171 Sequence
+0:171 move second child to first child (temp 2-element array of 3X3 matrix of float)
+0:171 'm3a1' (temp 2-element array of 3X3 matrix of float)
+0:171 Construct mat3 (temp 2-element array of 3X3 matrix of float)
+0:171 'm3s' (temp 3X3 matrix of float)
+0:171 'm3s' (temp 3X3 matrix of float)
+0:179 Function Definition: foo2323( (global void)
+0:179 Function Parameters:
+0:? Sequence
+0:184 move second child to first child (temp 4-component vector of float)
+0:184 'v' (temp 4-component vector of float)
+0:184 textureLod (global 4-component vector of float)
+0:184 's2D' (uniform sampler2D)
+0:184 'v2' (temp 2-component vector of float)
+0:184 'f' (temp float)
+0:185 move second child to first child (temp 4-component vector of float)
+0:185 'v' (temp 4-component vector of float)
+0:185 textureProjLod (global 4-component vector of float)
+0:185 's3D' (uniform sampler3D)
+0:185 'v' (temp 4-component vector of float)
+0:185 'f' (temp float)
+0:186 move second child to first child (temp 4-component vector of float)
+0:186 'v' (temp 4-component vector of float)
+0:186 textureProjLod (global 4-component vector of float)
+0:186 's1D' (uniform sampler1D)
+0:186 'v' (temp 4-component vector of float)
+0:186 'f' (temp float)
+0:187 move second child to first child (temp 4-component vector of float)
+0:187 'v' (temp 4-component vector of float)
+0:187 textureProjLod (global 4-component vector of float)
+0:187 's2DS' (uniform sampler2DShadow)
+0:187 'v' (temp 4-component vector of float)
+0:187 'f' (temp float)
+0:189 move second child to first child (temp 4-component vector of float)
+0:189 'v' (temp 4-component vector of float)
+0:189 textureGrad (global 4-component vector of float)
+0:189 's1D' (uniform sampler1D)
+0:189 'f' (temp float)
+0:189 'f' (temp float)
+0:189 'f' (temp float)
+0:190 move second child to first child (temp 4-component vector of float)
+0:190 'v' (temp 4-component vector of float)
+0:190 textureProjGrad (global 4-component vector of float)
+0:190 's2D' (uniform sampler2D)
+0:190 'v' (temp 4-component vector of float)
+0:190 'v2' (temp 2-component vector of float)
+0:190 'v2' (temp 2-component vector of float)
+0:191 move second child to first child (temp 4-component vector of float)
+0:191 'v' (temp 4-component vector of float)
+0:191 textureProjGrad (global 4-component vector of float)
+0:191 's2DS' (uniform sampler2DShadow)
+0:191 'v' (temp 4-component vector of float)
+0:191 'v2' (temp 2-component vector of float)
+0:191 'v2' (temp 2-component vector of float)
+0:196 Function Definition: foo2324( (global void)
+0:196 Function Parameters:
+0:? Sequence
+0:201 move second child to first child (temp 4-component vector of float)
+0:201 'v' (temp 4-component vector of float)
+0:201 textureLod (global 4-component vector of float)
+0:201 's2D' (uniform sampler2D)
+0:201 'v2' (temp 2-component vector of float)
+0:201 'f' (temp float)
+0:202 move second child to first child (temp 4-component vector of float)
+0:202 'v' (temp 4-component vector of float)
+0:202 textureProjLod (global 4-component vector of float)
+0:202 's3D' (uniform sampler3D)
+0:202 'v' (temp 4-component vector of float)
+0:202 'f' (temp float)
+0:203 move second child to first child (temp 4-component vector of float)
+0:203 'v' (temp 4-component vector of float)
+0:203 textureProjLod (global 4-component vector of float)
+0:203 's1D' (uniform sampler1D)
+0:203 'v' (temp 4-component vector of float)
+0:203 'f' (temp float)
+0:204 move second child to first child (temp 4-component vector of float)
+0:204 'v' (temp 4-component vector of float)
+0:204 textureProjLod (global 4-component vector of float)
+0:204 's2DS' (uniform sampler2DShadow)
+0:204 'v' (temp 4-component vector of float)
+0:204 'f' (temp float)
+0:206 move second child to first child (temp 4-component vector of float)
+0:206 'v' (temp 4-component vector of float)
+0:206 textureGrad (global 4-component vector of float)
+0:206 's1D' (uniform sampler1D)
+0:206 'f' (temp float)
+0:206 'f' (temp float)
+0:206 'f' (temp float)
+0:207 move second child to first child (temp 4-component vector of float)
+0:207 'v' (temp 4-component vector of float)
+0:207 textureProjGrad (global 4-component vector of float)
+0:207 's2D' (uniform sampler2D)
+0:207 'v' (temp 4-component vector of float)
+0:207 'v2' (temp 2-component vector of float)
+0:207 'v2' (temp 2-component vector of float)
+0:208 move second child to first child (temp 4-component vector of float)
+0:208 'v' (temp 4-component vector of float)
+0:208 textureProjGrad (global 4-component vector of float)
+0:208 's2DS' (uniform sampler2DShadow)
+0:208 'v' (temp 4-component vector of float)
+0:208 'v2' (temp 2-component vector of float)
+0:208 'v2' (temp 2-component vector of float)
+0:209 'v' (temp 4-component vector of float)
+0:214 Function Definition: foo121111( (global void)
+0:214 Function Parameters:
+0:? Sequence
+0:217 Sequence
+0:217 move second child to first child (temp 4-component vector of float)
+0:217 'v' (temp 4-component vector of float)
+0:217 texture (global 4-component vector of float)
+0:217 's2DRbad' (uniform sampler2DRect)
+0:217 'v2' (temp 2-component vector of float)
+0:225 Function Definition: foo12111( (global void)
+0:225 Function Parameters:
+0:? Sequence
+0:231 move second child to first child (temp 4-component vector of float)
+0:231 'v' (temp 4-component vector of float)
+0:231 texture (global 4-component vector of float)
+0:231 's2DR' (uniform sampler2DRect)
+0:231 'v2' (temp 2-component vector of float)
+0:232 move second child to first child (temp 4-component vector of float)
+0:232 'v' (temp 4-component vector of float)
+0:232 textureProj (global 4-component vector of float)
+0:232 's2DR' (uniform sampler2DRect)
+0:232 'v3' (temp 3-component vector of float)
+0:233 move second child to first child (temp 4-component vector of float)
+0:233 'v' (temp 4-component vector of float)
+0:233 textureProj (global 4-component vector of float)
+0:233 's2DR' (uniform sampler2DRect)
+0:233 'v4' (temp 4-component vector of float)
+0:234 move second child to first child (temp 4-component vector of float)
+0:234 'v' (temp 4-component vector of float)
+0:234 texture (global 4-component vector of float)
+0:234 's2DRS' (uniform sampler2DRectShadow)
+0:234 'v3' (temp 3-component vector of float)
+0:235 move second child to first child (temp 4-component vector of float)
+0:235 'v' (temp 4-component vector of float)
+0:235 textureProj (global 4-component vector of float)
+0:235 's2DRS' (uniform sampler2DRectShadow)
+0:235 'v4' (temp 4-component vector of float)
+0:237 move second child to first child (temp 4-component vector of float)
+0:237 'v' (temp 4-component vector of float)
+0:237 textureProjGrad (global 4-component vector of float)
+0:237 's2DRS' (uniform sampler2DRectShadow)
+0:237 'v' (temp 4-component vector of float)
+0:237 'v2' (temp 2-component vector of float)
+0:237 'v2' (temp 2-component vector of float)
+0:? Linker Objects
+0:? 'lowp' (global float)
+0:? 'mediump' (global float)
+0:? 'highp' (global float)
+0:? 'precision' (global float)
+0:? 'i' (smooth in 4-component vector of float)
+0:? 'o' (out 4-component vector of float)
+0:? 's2D' (uniform sampler2D)
+0:? 'centTexCoord' (centroid smooth in 2-component vector of float)
+0:? 'm' (uniform 4X2 matrix of float)
+0:? 'imageBuffer' (global float)
+0:? 'uimage2DRect' (global float)
+0:? 'a' (temp int)
+0:? 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:? 'm22' (global 2X2 matrix of float)
+0:? 'm23' (global 2X3 matrix of float)
+0:? 'm24' (global 2X4 matrix of float)
+0:? 'm32' (global 3X2 matrix of float)
+0:? 'm33' (global 3X3 matrix of float)
+0:? 'm34' (global 3X4 matrix of float)
+0:? 'm42' (global 4X2 matrix of float)
+0:? 'm43' (global 4X3 matrix of float)
+0:? 'm44' (global 4X4 matrix of float)
+0:? 's3D' (uniform sampler3D)
+0:? 's1D' (uniform sampler1D)
+0:? 's2DS' (uniform sampler2DShadow)
+0:? 's2DRbad' (uniform sampler2DRect)
+0:? 's2DR' (uniform sampler2DRect)
+0:? 's2DRS' (uniform sampler2DRectShadow)
+
+
+Linked fragment stage:
+
+ERROR: Linking fragment stage: Recursion detected:
+ foo(f1; calling foo(f1;
+
+Shader version: 120
+Requested GL_ARB_shader_texture_lod
+Requested GL_ARB_texture_rectangle
+ERROR: node is still EOpNull!
+0:21 Function Definition: main( (global void)
+0:21 Function Parameters:
+0:23 Sequence
+0:23 Sequence
+0:23 move second child to first child (temp 2X3 matrix of float)
+0:23 'm23' (temp 2X3 matrix of float)
+0:23 Construct mat2x3 (temp 2X3 matrix of float)
+0:23 'm' (uniform 4X2 matrix of float)
+0:27 Sequence
+0:27 move second child to first child (temp structure{global float f})
+0:27 'sv' (temp structure{global float f})
+0:27 Construct structure (temp structure{global float f})
+0:27 Convert int to float (temp float)
+0:27 'a' (temp int)
+0:28 Sequence
+0:28 move second child to first child (temp 2-element array of float)
+0:28 'ia' (temp 2-element array of float)
+0:28 Construct float (temp 2-element array of float)
+0:28 Constant:
+0:28 3.000000
+0:28 direct index (temp float)
+0:28 'i' (smooth in 4-component vector of float)
+0:28 Constant:
+0:28 1 (const int)
+0:29 Sequence
+0:29 move second child to first child (temp float)
+0:29 'f1' (temp float)
+0:29 Constant:
+0:29 1.000000
+0:30 Sequence
+0:30 move second child to first child (temp float)
+0:30 'f' (temp float)
+0:30 Convert int to float (temp float)
+0:30 'a' (temp int)
+0:31 move second child to first child (temp float)
+0:31 'f' (temp float)
+0:31 Convert int to float (temp float)
+0:31 'a' (temp int)
+0:33 Sequence
+0:33 move second child to first child (temp 3-component vector of float)
+0:33 'v3' (temp 3-component vector of float)
+0:33 Convert int to float (temp 3-component vector of float)
+0:33 'iv3' (temp 3-component vector of int)
+0:34 move second child to first child (temp float)
+0:34 'f' (temp float)
+0:34 add (temp float)
+0:34 'f' (temp float)
+0:34 Convert int to float (temp float)
+0:34 'a' (temp int)
+0:35 move second child to first child (temp float)
+0:35 'f' (temp float)
+0:35 subtract (temp float)
+0:35 Convert int to float (temp float)
+0:35 'a' (temp int)
+0:35 'f' (temp float)
+0:36 add second child into first child (temp float)
+0:36 'f' (temp float)
+0:36 Convert int to float (temp float)
+0:36 'a' (temp int)
+0:37 move second child to first child (temp float)
+0:37 'f' (temp float)
+0:37 subtract (temp float)
+0:37 Convert int to float (temp float)
+0:37 'a' (temp int)
+0:37 'f' (temp float)
+0:38 multiply second child into first child (temp 3-component vector of float)
+0:38 'v3' (temp 3-component vector of float)
+0:38 Convert int to float (temp 3-component vector of float)
+0:38 'iv3' (temp 3-component vector of int)
+0:39 move second child to first child (temp 3-component vector of float)
+0:39 'v3' (temp 3-component vector of float)
+0:39 divide (temp 3-component vector of float)
+0:39 Convert int to float (temp 3-component vector of float)
+0:39 'iv3' (temp 3-component vector of int)
+0:39 Constant:
+0:39 2.000000
+0:40 move second child to first child (temp 3-component vector of float)
+0:40 'v3' (temp 3-component vector of float)
+0:40 vector-scale (temp 3-component vector of float)
+0:40 Constant:
+0:40 3.000000
+0:40 Convert int to float (temp 3-component vector of float)
+0:40 'iv3' (temp 3-component vector of int)
+0:41 move second child to first child (temp 3-component vector of float)
+0:41 'v3' (temp 3-component vector of float)
+0:41 vector-scale (temp 3-component vector of float)
+0:41 Constant:
+0:41 2.000000
+0:41 'v3' (temp 3-component vector of float)
+0:42 move second child to first child (temp 3-component vector of float)
+0:42 'v3' (temp 3-component vector of float)
+0:42 subtract (temp 3-component vector of float)
+0:42 'v3' (temp 3-component vector of float)
+0:42 Constant:
+0:42 2.000000
+0:43 Test condition and select (temp void)
+0:43 Condition
+0:47 logical-or (temp bool)
+0:46 logical-or (temp bool)
+0:45 logical-or (temp bool)
+0:44 logical-or (temp bool)
+0:43 logical-or (temp bool)
+0:43 Compare Less Than (temp bool)
+0:43 'f' (temp float)
+0:43 Convert int to float (temp float)
+0:43 'a' (temp int)
+0:44 Compare Less Than or Equal (temp bool)
+0:44 Convert int to float (temp float)
+0:44 'a' (temp int)
+0:44 'f' (temp float)
+0:45 Compare Greater Than (temp bool)
+0:45 'f' (temp float)
+0:45 Convert int to float (temp float)
+0:45 'a' (temp int)
+0:46 Compare Greater Than or Equal (temp bool)
+0:46 'f' (temp float)
+0:46 Convert int to float (temp float)
+0:46 'a' (temp int)
+0:47 Compare Equal (temp bool)
+0:47 Convert int to float (temp float)
+0:47 'a' (temp int)
+0:47 'f' (temp float)
+0:48 Compare Not Equal (temp bool)
+0:48 'f' (temp float)
+0:48 Convert int to float (temp float)
+0:48 'a' (temp int)
+0:43 true case is null
+0:49 move second child to first child (temp float)
+0:49 'f' (temp float)
+0:49 Test condition and select (temp float)
+0:49 Condition
+0:49 'b' (temp bool)
+0:49 true case
+0:49 Convert int to float (temp float)
+0:49 'a' (temp int)
+0:49 false case
+0:49 'f' (temp float)
+0:50 move second child to first child (temp float)
+0:50 'f' (temp float)
+0:50 Test condition and select (temp float)
+0:50 Condition
+0:50 'b' (temp bool)
+0:50 true case
+0:50 'f' (temp float)
+0:50 false case
+0:50 Convert int to float (temp float)
+0:50 'a' (temp int)
+0:51 move second child to first child (temp float)
+0:51 'f' (temp float)
+0:51 Convert int to float (temp float)
+0:51 Test condition and select (temp int)
+0:51 Condition
+0:51 'b' (temp bool)
+0:51 true case
+0:51 'a' (temp int)
+0:51 false case
+0:51 'a' (temp int)
+0:52 Sequence
+0:52 move second child to first child (temp structure{global float f})
+0:52 'news' (temp structure{global float f})
+0:52 'sv' (temp structure{global float f})
+0:54 vector swizzle (temp 2-component vector of float)
+0:54 'i' (smooth in 4-component vector of float)
+0:54 Sequence
+0:54 Constant:
+0:54 0 (const int)
+0:54 Constant:
+0:54 1 (const int)
+0:55 'm' (uniform 4X2 matrix of float)
+0:56 'm' (uniform 4X2 matrix of float)
+0:58 'f' (temp float)
+0:59 move second child to first child (temp float)
+0:59 'f' (temp float)
+0:59 Convert int to float (temp float)
+0:59 'a' (temp int)
+0:60 'f' (temp float)
+0:61 'b' (temp bool)
+0:62 move second child to first child (temp bool)
+0:62 'b' (temp bool)
+0:62 'b' (temp bool)
+0:63 'f' (temp float)
+0:65 move second child to first child (temp 4-component vector of float)
+0:65 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:65 texture (global 4-component vector of float)
+0:65 's2D' (uniform sampler2D)
+0:65 'centTexCoord' (centroid smooth in 2-component vector of float)
+0:? Sequence
+0:79 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:82 direct index (temp float)
+0:82 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:82 Constant:
+0:82 0 (const int)
+0:83 direct index (temp float)
+0:83 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:83 Constant:
+0:83 0 (const int)
+0:84 direct index (temp float)
+0:84 'centTexCoord' (centroid smooth in 2-component vector of float)
+0:84 Constant:
+0:84 0 (const int)
+0:85 move second child to first child (temp bool)
+0:85 Comma (temp bool)
+0:85 'a' (temp int)
+0:85 'b' (temp bool)
+0:85 Constant:
+0:85 true (const bool)
+0:91 Function Definition: main( (global int)
+0:91 Function Parameters:
+0:92 Function Definition: main(i1; (global void)
+0:92 Function Parameters:
+0:92 'a' (in int)
+0:97 Function Definition: foo(f1; (global int)
+0:97 Function Parameters:
+0:97 'a' (out float)
+0:99 Sequence
+0:99 Branch: Return with expression
+0:99 Constant:
+0:99 3.200000
+0:100 Function Call: foo(f1; (global int)
+0:100 'a' (out float)
+0:103 Function Definition: gen(vf3; (global bool)
+0:103 Function Parameters:
+0:103 'v' (in 3-component vector of float)
+0:105 Sequence
+0:105 Test condition and select (temp void)
+0:105 Condition
+0:105 logical-and (temp bool)
+0:105 Compare Less Than (temp bool)
+0:105 Absolute value (global float)
+0:105 direct index (temp float)
+0:105 'v' (in 3-component vector of float)
+0:105 Constant:
+0:105 0 (const int)
+0:105 Constant:
+0:105 0.000100
+0:105 Compare Less Than (temp bool)
+0:105 Absolute value (global float)
+0:105 direct index (temp float)
+0:105 'v' (in 3-component vector of float)
+0:105 Constant:
+0:105 1 (const int)
+0:105 Constant:
+0:105 0.000100
+0:105 true case
+0:106 Branch: Return with expression
+0:106 Constant:
+0:106 true (const bool)
+0:109 Function Definition: v1( (global void)
+0:109 Function Parameters:
+0:113 Function Definition: v2( (global void)
+0:113 Function Parameters:
+0:115 Sequence
+0:115 Branch: Return
+0:118 Function Definition: atest( (global void)
+0:118 Function Parameters:
+0:120 Sequence
+0:120 Sequence
+0:120 move second child to first child (temp 4-component vector of float)
+0:120 'v' (temp 4-component vector of float)
+0:120 direct index (smooth temp 4-component vector of float TexCoord)
+0:120 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:120 Constant:
+0:120 1 (const int)
+0:121 add second child into first child (temp 4-component vector of float)
+0:121 'v' (temp 4-component vector of float)
+0:121 direct index (smooth temp 4-component vector of float TexCoord)
+0:121 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:121 Constant:
+0:121 3 (const int)
+0:139 Function Definition: foo123( (global void)
+0:139 Function Parameters:
+0:141 Sequence
+0:141 Sequence
+0:141 move second child to first child (temp 2X2 matrix of float)
+0:141 'r2' (temp 2X2 matrix of float)
+0:141 component-wise multiply (global 2X2 matrix of float)
+0:141 'm22' (global 2X2 matrix of float)
+0:141 'm22' (global 2X2 matrix of float)
+0:142 Sequence
+0:142 move second child to first child (temp 3X3 matrix of float)
+0:142 'r3' (temp 3X3 matrix of float)
+0:142 component-wise multiply (global 3X3 matrix of float)
+0:142 'm33' (global 3X3 matrix of float)
+0:142 'm33' (global 3X3 matrix of float)
+0:143 Sequence
+0:143 move second child to first child (temp 4X4 matrix of float)
+0:143 'r4' (temp 4X4 matrix of float)
+0:143 component-wise multiply (global 4X4 matrix of float)
+0:143 'm44' (global 4X4 matrix of float)
+0:143 'm44' (global 4X4 matrix of float)
+0:145 Sequence
+0:145 move second child to first child (temp 2X3 matrix of float)
+0:145 'r23' (temp 2X3 matrix of float)
+0:145 component-wise multiply (global 2X3 matrix of float)
+0:145 'm23' (global 2X3 matrix of float)
+0:145 'm23' (global 2X3 matrix of float)
+0:146 Sequence
+0:146 move second child to first child (temp 2X4 matrix of float)
+0:146 'r24' (temp 2X4 matrix of float)
+0:146 component-wise multiply (global 2X4 matrix of float)
+0:146 'm24' (global 2X4 matrix of float)
+0:146 'm24' (global 2X4 matrix of float)
+0:147 Sequence
+0:147 move second child to first child (temp 3X2 matrix of float)
+0:147 'r32' (temp 3X2 matrix of float)
+0:147 component-wise multiply (global 3X2 matrix of float)
+0:147 'm32' (global 3X2 matrix of float)
+0:147 'm32' (global 3X2 matrix of float)
+0:148 Sequence
+0:148 move second child to first child (temp 3X4 matrix of float)
+0:148 'r34' (temp 3X4 matrix of float)
+0:148 component-wise multiply (global 3X4 matrix of float)
+0:148 'm34' (global 3X4 matrix of float)
+0:148 'm34' (global 3X4 matrix of float)
+0:149 Sequence
+0:149 move second child to first child (temp 4X2 matrix of float)
+0:149 'r42' (temp 4X2 matrix of float)
+0:149 component-wise multiply (global 4X2 matrix of float)
+0:149 'm42' (global 4X2 matrix of float)
+0:149 'm42' (global 4X2 matrix of float)
+0:150 Sequence
+0:150 move second child to first child (temp 4X3 matrix of float)
+0:150 'r43' (temp 4X3 matrix of float)
+0:150 component-wise multiply (global 4X3 matrix of float)
+0:150 'm43' (global 4X3 matrix of float)
+0:150 'm43' (global 4X3 matrix of float)
+0:156 Function Definition: matConst( (global void)
+0:156 Function Parameters:
+0:? Sequence
+0:162 Sequence
+0:162 move second child to first child (temp 4X4 matrix of float)
+0:162 'm4g' (temp 4X4 matrix of float)
+0:162 Construct mat4 (temp 4X4 matrix of float)
+0:162 'v2' (temp 2-component vector of float)
+0:162 'v3' (temp 3-component vector of float)
+0:162 'v3' (temp 3-component vector of float)
+0:162 'v3' (temp 3-component vector of float)
+0:162 'v3' (temp 3-component vector of float)
+0:162 'v3' (temp 3-component vector of float)
+0:163 Sequence
+0:163 move second child to first child (temp 4X4 matrix of float)
+0:163 'm4' (temp 4X4 matrix of float)
+0:163 Construct mat4 (temp 4X4 matrix of float)
+0:163 'v2' (temp 2-component vector of float)
+0:163 'v3' (temp 3-component vector of float)
+0:163 'v3' (temp 3-component vector of float)
+0:163 'v3' (temp 3-component vector of float)
+0:163 'v3' (temp 3-component vector of float)
+0:163 'v2' (temp 2-component vector of float)
+0:164 Sequence
+0:164 move second child to first child (temp 3X3 matrix of float)
+0:164 'm3' (temp 3X3 matrix of float)
+0:164 Construct mat3 (temp 3X3 matrix of float)
+0:164 'm4' (temp 4X4 matrix of float)
+0:165 Sequence
+0:165 move second child to first child (temp 3X3 matrix of float)
+0:165 'm3b1' (temp 3X3 matrix of float)
+0:165 Construct mat3 (temp 3X3 matrix of float)
+0:165 'm4' (temp 4X4 matrix of float)
+0:165 'v2' (temp 2-component vector of float)
+0:166 Sequence
+0:166 move second child to first child (temp 3X3 matrix of float)
+0:166 'm3b2' (temp 3X3 matrix of float)
+0:166 Construct mat3 (temp 3X3 matrix of float)
+0:166 'm4' (temp 4X4 matrix of float)
+0:166 'm4' (temp 4X4 matrix of float)
+0:167 Sequence
+0:167 move second child to first child (temp 3X2 matrix of float)
+0:167 'm32' (temp 3X2 matrix of float)
+0:167 Construct mat3x2 (temp 3X2 matrix of float)
+0:167 'm4' (temp 4X4 matrix of float)
+0:168 Sequence
+0:168 move second child to first child (temp 4X4 matrix of float)
+0:168 'm4c' (temp 4X4 matrix of float)
+0:168 Construct mat4 (temp 4X4 matrix of float)
+0:168 'm32' (temp 3X2 matrix of float)
+0:169 Sequence
+0:169 move second child to first child (temp 3X3 matrix of float)
+0:169 'm3s' (temp 3X3 matrix of float)
+0:169 Construct mat3 (temp 3X3 matrix of float)
+0:169 direct index (temp float)
+0:169 'v2' (temp 2-component vector of float)
+0:169 Constant:
+0:169 0 (const int)
+0:171 Sequence
+0:171 move second child to first child (temp 2-element array of 3X3 matrix of float)
+0:171 'm3a1' (temp 2-element array of 3X3 matrix of float)
+0:171 Construct mat3 (temp 2-element array of 3X3 matrix of float)
+0:171 'm3s' (temp 3X3 matrix of float)
+0:171 'm3s' (temp 3X3 matrix of float)
+0:179 Function Definition: foo2323( (global void)
+0:179 Function Parameters:
+0:? Sequence
+0:184 move second child to first child (temp 4-component vector of float)
+0:184 'v' (temp 4-component vector of float)
+0:184 textureLod (global 4-component vector of float)
+0:184 's2D' (uniform sampler2D)
+0:184 'v2' (temp 2-component vector of float)
+0:184 'f' (temp float)
+0:185 move second child to first child (temp 4-component vector of float)
+0:185 'v' (temp 4-component vector of float)
+0:185 textureProjLod (global 4-component vector of float)
+0:185 's3D' (uniform sampler3D)
+0:185 'v' (temp 4-component vector of float)
+0:185 'f' (temp float)
+0:186 move second child to first child (temp 4-component vector of float)
+0:186 'v' (temp 4-component vector of float)
+0:186 textureProjLod (global 4-component vector of float)
+0:186 's1D' (uniform sampler1D)
+0:186 'v' (temp 4-component vector of float)
+0:186 'f' (temp float)
+0:187 move second child to first child (temp 4-component vector of float)
+0:187 'v' (temp 4-component vector of float)
+0:187 textureProjLod (global 4-component vector of float)
+0:187 's2DS' (uniform sampler2DShadow)
+0:187 'v' (temp 4-component vector of float)
+0:187 'f' (temp float)
+0:189 move second child to first child (temp 4-component vector of float)
+0:189 'v' (temp 4-component vector of float)
+0:189 textureGrad (global 4-component vector of float)
+0:189 's1D' (uniform sampler1D)
+0:189 'f' (temp float)
+0:189 'f' (temp float)
+0:189 'f' (temp float)
+0:190 move second child to first child (temp 4-component vector of float)
+0:190 'v' (temp 4-component vector of float)
+0:190 textureProjGrad (global 4-component vector of float)
+0:190 's2D' (uniform sampler2D)
+0:190 'v' (temp 4-component vector of float)
+0:190 'v2' (temp 2-component vector of float)
+0:190 'v2' (temp 2-component vector of float)
+0:191 move second child to first child (temp 4-component vector of float)
+0:191 'v' (temp 4-component vector of float)
+0:191 textureProjGrad (global 4-component vector of float)
+0:191 's2DS' (uniform sampler2DShadow)
+0:191 'v' (temp 4-component vector of float)
+0:191 'v2' (temp 2-component vector of float)
+0:191 'v2' (temp 2-component vector of float)
+0:196 Function Definition: foo2324( (global void)
+0:196 Function Parameters:
+0:? Sequence
+0:201 move second child to first child (temp 4-component vector of float)
+0:201 'v' (temp 4-component vector of float)
+0:201 textureLod (global 4-component vector of float)
+0:201 's2D' (uniform sampler2D)
+0:201 'v2' (temp 2-component vector of float)
+0:201 'f' (temp float)
+0:202 move second child to first child (temp 4-component vector of float)
+0:202 'v' (temp 4-component vector of float)
+0:202 textureProjLod (global 4-component vector of float)
+0:202 's3D' (uniform sampler3D)
+0:202 'v' (temp 4-component vector of float)
+0:202 'f' (temp float)
+0:203 move second child to first child (temp 4-component vector of float)
+0:203 'v' (temp 4-component vector of float)
+0:203 textureProjLod (global 4-component vector of float)
+0:203 's1D' (uniform sampler1D)
+0:203 'v' (temp 4-component vector of float)
+0:203 'f' (temp float)
+0:204 move second child to first child (temp 4-component vector of float)
+0:204 'v' (temp 4-component vector of float)
+0:204 textureProjLod (global 4-component vector of float)
+0:204 's2DS' (uniform sampler2DShadow)
+0:204 'v' (temp 4-component vector of float)
+0:204 'f' (temp float)
+0:206 move second child to first child (temp 4-component vector of float)
+0:206 'v' (temp 4-component vector of float)
+0:206 textureGrad (global 4-component vector of float)
+0:206 's1D' (uniform sampler1D)
+0:206 'f' (temp float)
+0:206 'f' (temp float)
+0:206 'f' (temp float)
+0:207 move second child to first child (temp 4-component vector of float)
+0:207 'v' (temp 4-component vector of float)
+0:207 textureProjGrad (global 4-component vector of float)
+0:207 's2D' (uniform sampler2D)
+0:207 'v' (temp 4-component vector of float)
+0:207 'v2' (temp 2-component vector of float)
+0:207 'v2' (temp 2-component vector of float)
+0:208 move second child to first child (temp 4-component vector of float)
+0:208 'v' (temp 4-component vector of float)
+0:208 textureProjGrad (global 4-component vector of float)
+0:208 's2DS' (uniform sampler2DShadow)
+0:208 'v' (temp 4-component vector of float)
+0:208 'v2' (temp 2-component vector of float)
+0:208 'v2' (temp 2-component vector of float)
+0:209 'v' (temp 4-component vector of float)
+0:214 Function Definition: foo121111( (global void)
+0:214 Function Parameters:
+0:? Sequence
+0:217 Sequence
+0:217 move second child to first child (temp 4-component vector of float)
+0:217 'v' (temp 4-component vector of float)
+0:217 texture (global 4-component vector of float)
+0:217 's2DRbad' (uniform sampler2DRect)
+0:217 'v2' (temp 2-component vector of float)
+0:225 Function Definition: foo12111( (global void)
+0:225 Function Parameters:
+0:? Sequence
+0:231 move second child to first child (temp 4-component vector of float)
+0:231 'v' (temp 4-component vector of float)
+0:231 texture (global 4-component vector of float)
+0:231 's2DR' (uniform sampler2DRect)
+0:231 'v2' (temp 2-component vector of float)
+0:232 move second child to first child (temp 4-component vector of float)
+0:232 'v' (temp 4-component vector of float)
+0:232 textureProj (global 4-component vector of float)
+0:232 's2DR' (uniform sampler2DRect)
+0:232 'v3' (temp 3-component vector of float)
+0:233 move second child to first child (temp 4-component vector of float)
+0:233 'v' (temp 4-component vector of float)
+0:233 textureProj (global 4-component vector of float)
+0:233 's2DR' (uniform sampler2DRect)
+0:233 'v4' (temp 4-component vector of float)
+0:234 move second child to first child (temp 4-component vector of float)
+0:234 'v' (temp 4-component vector of float)
+0:234 texture (global 4-component vector of float)
+0:234 's2DRS' (uniform sampler2DRectShadow)
+0:234 'v3' (temp 3-component vector of float)
+0:235 move second child to first child (temp 4-component vector of float)
+0:235 'v' (temp 4-component vector of float)
+0:235 textureProj (global 4-component vector of float)
+0:235 's2DRS' (uniform sampler2DRectShadow)
+0:235 'v4' (temp 4-component vector of float)
+0:237 move second child to first child (temp 4-component vector of float)
+0:237 'v' (temp 4-component vector of float)
+0:237 textureProjGrad (global 4-component vector of float)
+0:237 's2DRS' (uniform sampler2DRectShadow)
+0:237 'v' (temp 4-component vector of float)
+0:237 'v2' (temp 2-component vector of float)
+0:237 'v2' (temp 2-component vector of float)
+0:? Linker Objects
+0:? 'lowp' (global float)
+0:? 'mediump' (global float)
+0:? 'highp' (global float)
+0:? 'precision' (global float)
+0:? 'i' (smooth in 4-component vector of float)
+0:? 'o' (out 4-component vector of float)
+0:? 's2D' (uniform sampler2D)
+0:? 'centTexCoord' (centroid smooth in 2-component vector of float)
+0:? 'm' (uniform 4X2 matrix of float)
+0:? 'imageBuffer' (global float)
+0:? 'uimage2DRect' (global float)
+0:? 'a' (temp int)
+0:? 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:? 'm22' (global 2X2 matrix of float)
+0:? 'm23' (global 2X3 matrix of float)
+0:? 'm24' (global 2X4 matrix of float)
+0:? 'm32' (global 3X2 matrix of float)
+0:? 'm33' (global 3X3 matrix of float)
+0:? 'm34' (global 3X4 matrix of float)
+0:? 'm42' (global 4X2 matrix of float)
+0:? 'm43' (global 4X3 matrix of float)
+0:? 'm44' (global 4X4 matrix of float)
+0:? 's3D' (uniform sampler3D)
+0:? 's1D' (uniform sampler1D)
+0:? 's2DS' (uniform sampler2DShadow)
+0:? 's2DRbad' (uniform sampler2DRect)
+0:? 's2DR' (uniform sampler2DRect)
+0:? 's2DRS' (uniform sampler2DRectShadow)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/120.vert.out b/chromium/third_party/glslang/src/Test/baseResults/120.vert.out
new file mode 100644
index 00000000000..6c63744fedc
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/120.vert.out
@@ -0,0 +1,783 @@
+120.vert
+ERROR: 0:3: 'in for stage inputs' : not supported for this version or the enabled extensions
+ERROR: 0:4: 'out for stage outputs' : not supported for this version or the enabled extensions
+ERROR: 0:11: 'gl_Position' : cannot add storage, auxiliary, memory, interpolation, layout, or precision qualifier to an existing variable
+ERROR: 0:12: '' : can only have one auxiliary qualifier (centroid, patch, and sample)
+ERROR: 0:12: '' : replicated qualifiers
+ERROR: 0:12: 'foo' : identifier not previously declared
+ERROR: 0:21: 'gl_ClipDistance' : undeclared identifier
+ERROR: 0:21: 'gl_ClipDistance' : left of '[' is not of type array, matrix, or vector
+ERROR: 0:21: 'assign' : l-value required (can't modify a const)
+ERROR: 0:28: 'length' : array must be declared with a size before using this method
+ERROR: 0:31: 'length' : incomplete method syntax
+ERROR: 0:32: 'length' : method does not accept any arguments
+ERROR: 0:33: '.' : cannot apply to an array: flizbit
+ERROR: 0:33: '=' : cannot convert from 'temp 7-element array of float' to 'temp int'
+ERROR: 0:34: '.' : cannot apply to an array: flizbit
+ERROR: 0:34: 'f' : can't use function syntax on variable
+ERROR: 0:34: 'a4' : redefinition
+ERROR: 0:35: 'arrays of arrays' : not supported with this profile: none
+ERROR: 0:36: 'arrays of arrays' : not supported with this profile: none
+ERROR: 0:37: 'arrays of arrays' : not supported with this profile: none
+ERROR: 0:38: 'arrays of arrays' : not supported with this profile: none
+ERROR: 0:39: 'arrays of arrays' : not supported with this profile: none
+ERROR: 0:40: 'arrays of arrays' : not supported with this profile: none
+ERROR: 0:40: 'constructor' : array constructor needs one argument per array element
+ERROR: 0:40: 'arrays of arrays' : not supported with this profile: none
+ERROR: 0:40: '=' : cannot convert from 'const float' to 'temp 2-element array of 3-element array of float'
+ERROR: 0:41: 'arrays of arrays' : not supported with this profile: none
+ERROR: 0:41: 'constructor' : array constructor needs one argument per array element
+ERROR: 0:41: 'arrays of arrays' : not supported with this profile: none
+ERROR: 0:41: '=' : cannot convert from 'const float' to 'temp 2-element array of 3-element array of float'
+ERROR: 0:50: 'arrays of arrays' : not supported with this profile: none
+ERROR: 0:51: 'arrays of arrays' : not supported with this profile: none
+ERROR: 0:52: 'arrays of arrays' : not supported with this profile: none
+ERROR: 0:53: 'arrays of arrays' : not supported with this profile: none
+ERROR: 0:56: 'out' : overloaded functions must have the same parameter storage qualifiers for argument 1
+ERROR: 0:57: 'float' : overloaded functions must have the same return type
+ERROR: 0:87: 'overloadC' : no matching overloaded function found
+ERROR: 0:90: 'overloadC' : no matching overloaded function found
+ERROR: 0:95: 'overloadD' : ambiguous function signature match: multiple signatures match under implicit type conversion
+ERROR: 0:98: 'overloadB' : can't use function syntax on variable
+ERROR: 0:106: 'overloadC' : no matching overloaded function found
+ERROR: 0:107: 'overloadE' : no matching overloaded function found
+ERROR: 0:108: 'overloadE' : no matching overloaded function found
+ERROR: 0:111: 'overloadE' : no matching overloaded function found
+ERROR: 0:117: 'overloadF' : no matching overloaded function found
+ERROR: 0:121: 'gl_TexCoord array size' : must be less than gl_MaxTextureCoords (32)
+ERROR: 0:165: 'switch' : Reserved word.
+ERROR: 0:171: 'default' : Reserved word.
+ERROR: 0:165: 'switch statements' : not supported for this version or the enabled extensions
+ERROR: 0:176: 'bit shift left' : not supported for this version or the enabled extensions
+ERROR: 0:176: 'bit shift right' : not supported for this version or the enabled extensions
+ERROR: 0:176: 'bitwise and' : not supported for this version or the enabled extensions
+ERROR: 0:176: 'bitwise inclusive or' : not supported for this version or the enabled extensions
+ERROR: 0:179: 'modf' : no matching overloaded function found
+ERROR: 0:179: '=' : cannot convert from 'const float' to 'temp 3-component vector of float'
+ERROR: 0:180: 'trunc' : no matching overloaded function found
+ERROR: 0:181: 'round' : no matching overloaded function found
+ERROR: 0:181: '=' : cannot convert from 'const float' to 'temp 2-component vector of float'
+ERROR: 0:182: 'roundEven' : no matching overloaded function found
+ERROR: 0:182: '=' : cannot convert from 'const float' to 'temp 2-component vector of float'
+ERROR: 0:183: 'isnan' : no matching overloaded function found
+ERROR: 0:183: '=' : cannot convert from 'const float' to 'temp 2-component vector of bool'
+ERROR: 0:184: 'isinf' : no matching overloaded function found
+ERROR: 0:184: '=' : cannot convert from 'const float' to 'temp 4-component vector of bool'
+ERROR: 0:186: 'sinh' : no matching overloaded function found
+ERROR: 0:187: 'cosh' : no matching overloaded function found
+ERROR: 0:187: 'tanh' : no matching overloaded function found
+ERROR: 0:188: 'c4D' : undeclared identifier
+ERROR: 0:188: 'asinh' : no matching overloaded function found
+ERROR: 0:188: 'acosh' : no matching overloaded function found
+ERROR: 0:189: 'atanh' : no matching overloaded function found
+ERROR: 0:191: 'gl_VertexID' : undeclared identifier
+ERROR: 0:191: '=' : cannot convert from 'temp float' to 'temp int'
+ERROR: 0:192: 'gl_ClipDistance' : undeclared identifier
+ERROR: 0:192: 'gl_ClipDistance' : left of '[' is not of type array, matrix, or vector
+ERROR: 0:192: 'assign' : l-value required (can't modify a const)
+ERROR: 0:198: 'token pasting (##)' : not supported for this version or the enabled extensions
+ERROR: 0:198: '##' : token pasting not implemented (internal error)
+ERROR: 0:198: '' : syntax error
+ERROR: 79 compilation errors. No code generated.
+
+
+Shader version: 120
+ERROR: node is still EOpNull!
+0:15 Function Definition: main( (global void)
+0:15 Function Parameters:
+0:17 Sequence
+0:17 move second child to first child (temp 2-component vector of float)
+0:17 'centTexCoord' (invariant smooth out 2-component vector of float)
+0:17 'attv2' (in 2-component vector of float)
+0:18 move second child to first child (temp 4-component vector of float)
+0:18 'gl_Position' (invariant gl_Position 4-component vector of float Position)
+0:18 'attv4' (in 4-component vector of float)
+0:20 move second child to first child (temp 4-component vector of float)
+0:20 'gl_ClipVertex' (gl_ClipVertex 4-component vector of float ClipVertex)
+0:20 'attv4' (in 4-component vector of float)
+0:21 move second child to first child (temp float)
+0:21 Constant:
+0:21 0.000000
+0:21 Constant:
+0:21 0.200000
+0:25 move second child to first child (temp 4-component vector of float)
+0:25 'gl_Position' (invariant gl_Position 4-component vector of float Position)
+0:25 direct index (temp 4-component vector of float)
+0:25 'b' (temp 12-element array of 4-component vector of float)
+0:25 Constant:
+0:25 11 (const int)
+0:28 Sequence
+0:28 move second child to first child (temp int)
+0:28 'a1' (temp int)
+0:28 Constant:
+0:28 1 (const int)
+0:30 Sequence
+0:30 move second child to first child (temp int)
+0:30 'aa' (temp int)
+0:30 Constant:
+0:30 7 (const int)
+0:31 Sequence
+0:31 move second child to first child (temp int)
+0:31 'a2' (temp int)
+0:32 Sequence
+0:32 move second child to first child (temp int)
+0:32 'a3' (temp int)
+0:32 Constant:
+0:32 1 (const int)
+0:43 move second child to first child (temp float)
+0:43 'gl_PointSize' (invariant gl_PointSize float PointSize)
+0:43 Constant:
+0:43 3.800000
+0:61 Function Definition: overloadB(f1;f1; (global void)
+0:61 Function Parameters:
+0:61 '' (in float)
+0:61 '' (const (read only) float)
+0:78 Function Definition: foo( (global void)
+0:78 Function Parameters:
+0:? Sequence
+0:83 Function Call: overloadB(f1;f1; (global void)
+0:83 'f' (temp float)
+0:83 'f' (temp float)
+0:84 Function Call: overloadB(f1;f1; (global void)
+0:84 'f' (temp float)
+0:84 Constant:
+0:84 2.000000
+0:85 Function Call: overloadB(f1;f1; (global void)
+0:85 Constant:
+0:85 1.000000
+0:85 Convert int to float (temp float)
+0:85 'i' (temp int)
+0:87 Constant:
+0:87 0.000000
+0:88 Function Call: overloadC(i1;i1; (global 2-component vector of float)
+0:88 Constant:
+0:88 1 (const int)
+0:88 'i' (temp int)
+0:89 Function Call: overloadC(vf2;vf2; (global 2-component vector of float)
+0:89 Constant:
+0:89 1.000000
+0:89 1.000000
+0:89 Constant:
+0:89 2.000000
+0:89 2.000000
+0:90 Constant:
+0:90 0.000000
+0:91 Function Call: overloadC(vf2;vf2; (global 2-component vector of float)
+0:91 Constant:
+0:91 1.000000
+0:91 1.000000
+0:91 Constant:
+0:91 2.000000
+0:91 2.000000
+0:93 Function Call: overloadD(i1;f1; (global 3-component vector of float)
+0:93 'i' (temp int)
+0:93 'f' (temp float)
+0:94 Function Call: overloadD(f1;i1; (global 3-component vector of float)
+0:94 'f' (temp float)
+0:94 'i' (temp int)
+0:95 Function Call: overloadD(f1;i1; (global 3-component vector of float)
+0:95 Convert int to float (temp float)
+0:95 'i' (temp int)
+0:95 'i' (temp int)
+0:98 Constant:
+0:98 0.000000
+0:100 Constant:
+0:100 0.841471
+0:101 texture (global 4-component vector of float)
+0:101 's2D' (uniform sampler2D)
+0:101 Constant:
+0:101 0.000000
+0:101 0.000000
+0:102 clamp (global 4-component vector of float)
+0:102 'attv4' (in 4-component vector of float)
+0:102 Constant:
+0:102 0.000000
+0:102 Constant:
+0:102 1.000000
+0:103 clamp (global 4-component vector of float)
+0:103 Convert int to float (temp 4-component vector of float)
+0:103 Convert float to int (temp 4-component vector of int)
+0:103 'attv4' (in 4-component vector of float)
+0:103 Constant:
+0:103 0.000000
+0:103 Constant:
+0:103 1.000000
+0:106 Constant:
+0:106 0.000000
+0:107 Constant:
+0:107 0.000000
+0:108 Constant:
+0:108 0.000000
+0:109 Function Call: overloadE(vf2; (global 3-component vector of float)
+0:109 Constant:
+0:109 3.300000
+0:109 3.300000
+0:110 Function Call: overloadE(mf22; (global 3-component vector of float)
+0:110 Constant:
+0:110 0.500000
+0:110 0.000000
+0:110 0.000000
+0:110 0.500000
+0:111 Constant:
+0:111 0.000000
+0:112 Function Call: overloadE(vf2; (global 3-component vector of float)
+0:112 Constant:
+0:112 1.000000
+0:112 1.000000
+0:115 Function Call: overloadE(f1[2]; (global 3-component vector of float)
+0:115 'b' (temp 2-element array of float)
+0:117 Constant:
+0:117 0.000000
+0:118 Function Call: overloadF(i1; (global 3-component vector of float)
+0:118 Constant:
+0:118 1 (const int)
+0:128 Function Definition: foo2( (global void)
+0:128 Function Parameters:
+0:? Sequence
+0:135 Comma (global void)
+0:135 Function Call: outFun(f1;vi2;i1;f1; (global void)
+0:135 Convert int to float (temp float)
+0:135 'i' (temp int)
+0:135 'tempArg' (temp 2-component vector of int)
+0:135 'i' (temp int)
+0:135 'f' (temp float)
+0:135 move second child to first child (temp 2-component vector of float)
+0:135 'v2' (temp 2-component vector of float)
+0:135 Convert int to float (temp 2-component vector of float)
+0:135 'tempArg' (temp 2-component vector of int)
+0:136 Comma (global int)
+0:136 move second child to first child (temp int)
+0:136 'tempReturn' (global int)
+0:136 Function Call: outFunRet(f1;i1;i1;vi4; (global int)
+0:136 Convert int to float (temp float)
+0:136 'i' (temp int)
+0:136 'tempArg' (temp int)
+0:136 'i' (temp int)
+0:136 'tempArg' (temp 4-component vector of int)
+0:136 move second child to first child (temp float)
+0:136 'f' (temp float)
+0:136 Convert int to float (temp float)
+0:136 'tempArg' (temp int)
+0:136 move second child to first child (temp 4-component vector of float)
+0:136 'v4' (temp 4-component vector of float)
+0:136 Convert int to float (temp 4-component vector of float)
+0:136 'tempArg' (temp 4-component vector of int)
+0:136 'tempReturn' (global int)
+0:137 Sequence
+0:137 move second child to first child (temp float)
+0:137 'ret' (temp float)
+0:137 Convert int to float (temp float)
+0:137 Comma (global int)
+0:137 move second child to first child (temp int)
+0:137 'tempReturn' (global int)
+0:137 Function Call: outFunRet(f1;i1;i1;vi4; (global int)
+0:137 Convert int to float (temp float)
+0:137 'i' (temp int)
+0:137 'tempArg' (temp int)
+0:137 'i' (temp int)
+0:137 'tempArg' (temp 4-component vector of int)
+0:137 move second child to first child (temp float)
+0:137 'f' (temp float)
+0:137 Convert int to float (temp float)
+0:137 'tempArg' (temp int)
+0:137 move second child to first child (temp 4-component vector of float)
+0:137 'v4' (temp 4-component vector of float)
+0:137 Convert int to float (temp 4-component vector of float)
+0:137 'tempArg' (temp 4-component vector of int)
+0:137 'tempReturn' (global int)
+0:138 Sequence
+0:138 move second child to first child (temp 2-component vector of float)
+0:138 'ret2' (temp 2-component vector of float)
+0:138 Convert int to float (temp 2-component vector of float)
+0:138 Comma (global 2-component vector of int)
+0:138 move second child to first child (temp 2-component vector of int)
+0:138 'tempReturn' (global 2-component vector of int)
+0:138 Function Call: outFunRet(f1;vi4;i1;vi4; (global 2-component vector of int)
+0:138 Convert int to float (temp float)
+0:138 'i' (temp int)
+0:138 'tempArg' (temp 4-component vector of int)
+0:138 'i' (temp int)
+0:138 'tempArg' (temp 4-component vector of int)
+0:138 move second child to first child (temp 4-component vector of float)
+0:138 'v4' (temp 4-component vector of float)
+0:138 Convert int to float (temp 4-component vector of float)
+0:138 'tempArg' (temp 4-component vector of int)
+0:138 move second child to first child (temp 4-component vector of float)
+0:138 'v4' (temp 4-component vector of float)
+0:138 Convert int to float (temp 4-component vector of float)
+0:138 'tempArg' (temp 4-component vector of int)
+0:138 'tempReturn' (global 2-component vector of int)
+0:139 Sequence
+0:139 move second child to first child (temp bool)
+0:139 'b' (temp bool)
+0:139 any (global bool)
+0:139 Compare Less Than (global 4-component vector of bool)
+0:139 'v4' (temp 4-component vector of float)
+0:139 'attv4' (in 4-component vector of float)
+0:142 Function Definition: noise( (global void)
+0:142 Function Parameters:
+0:144 Sequence
+0:144 Sequence
+0:144 move second child to first child (temp float)
+0:144 'f1' (temp float)
+0:144 noise (global float)
+0:144 Constant:
+0:144 1.000000
+0:145 Sequence
+0:145 move second child to first child (temp 2-component vector of float)
+0:145 'f2' (temp 2-component vector of float)
+0:145 noise (global 2-component vector of float)
+0:145 Constant:
+0:145 1.000000
+0:145 1.000000
+0:146 Sequence
+0:146 move second child to first child (temp 3-component vector of float)
+0:146 'f3' (temp 3-component vector of float)
+0:146 noise (global 3-component vector of float)
+0:146 Constant:
+0:146 1.000000
+0:146 1.000000
+0:146 1.000000
+0:147 Sequence
+0:147 move second child to first child (temp 4-component vector of float)
+0:147 'f4' (temp 4-component vector of float)
+0:147 noise (global 4-component vector of float)
+0:147 Constant:
+0:147 1.000000
+0:147 1.000000
+0:147 1.000000
+0:147 1.000000
+0:162 Function Definition: foo213( (global void)
+0:162 Function Parameters:
+0:164 Sequence
+0:164 Sequence
+0:164 move second child to first child (temp float)
+0:164 'f' (temp float)
+0:164 Constant:
+0:164 3.000000
+0:165 switch
+0:165 condition
+0:165 'c' (uniform int)
+0:165 body
+0:165 Sequence
+0:166 case: with expression
+0:166 Constant:
+0:166 1 (const int)
+0:? Sequence
+0:167 move second child to first child (temp float)
+0:167 'f' (temp float)
+0:167 sine (global float)
+0:167 'f' (temp float)
+0:168 Branch: Break
+0:169 case: with expression
+0:169 Constant:
+0:169 2 (const int)
+0:? Sequence
+0:170 move second child to first child (temp float)
+0:170 'f' (temp float)
+0:170 component-wise multiply (temp float)
+0:170 'f' (temp float)
+0:170 'f' (temp float)
+0:171 default:
+0:? Sequence
+0:172 move second child to first child (temp float)
+0:172 'f' (temp float)
+0:172 Constant:
+0:172 3.000000
+0:176 inclusive-or (temp int)
+0:176 left-shift (temp int)
+0:176 'i' (temp int)
+0:176 Constant:
+0:176 3 (const int)
+0:176 Constant:
+0:176 69 (const int)
+0:180 Sequence
+0:180 move second child to first child (temp float)
+0:180 't' (temp float)
+0:180 Constant:
+0:180 0.000000
+0:186 Constant:
+0:186 0.000000
+0:188 Constant:
+0:188 0.000000
+0:189 Constant:
+0:189 0.000000
+0:192 move second child to first child (temp float)
+0:192 Constant:
+0:192 0.000000
+0:192 Constant:
+0:192 0.300000
+0:? Linker Objects
+0:? 'i' (in 4-component vector of float)
+0:? 'o' (smooth out 4-component vector of float)
+0:? 'attv2' (in 2-component vector of float)
+0:? 'attv4' (in 4-component vector of float)
+0:? 's2D' (uniform sampler2D)
+0:? 'centTexCoord' (invariant smooth out 2-component vector of float)
+0:? 'initted' (uniform float)
+0:? 3.400000
+0:? 'concall' (const float)
+0:? 0.295520
+0:? 'gl_TexCoord' (smooth out 35-element array of 4-component vector of float TexCoord)
+0:? 'gl_TexCoord' (smooth out 35-element array of 4-component vector of float TexCoord)
+0:? 'c' (uniform int)
+0:? 'x' (in 2-component vector of int)
+0:? 'v2a' (in 2-component vector of float)
+0:? 'c1D' (in float)
+0:? 'c2D' (in 2-component vector of float)
+0:? 'c3D' (in 3-component vector of float)
+0:? 'v4' (uniform 4-component vector of float)
+0:? 'abc' (global int)
+
+
+Linked vertex stage:
+
+
+Shader version: 120
+ERROR: node is still EOpNull!
+0:15 Function Definition: main( (global void)
+0:15 Function Parameters:
+0:17 Sequence
+0:17 move second child to first child (temp 2-component vector of float)
+0:17 'centTexCoord' (invariant smooth out 2-component vector of float)
+0:17 'attv2' (in 2-component vector of float)
+0:18 move second child to first child (temp 4-component vector of float)
+0:18 'gl_Position' (invariant gl_Position 4-component vector of float Position)
+0:18 'attv4' (in 4-component vector of float)
+0:20 move second child to first child (temp 4-component vector of float)
+0:20 'gl_ClipVertex' (gl_ClipVertex 4-component vector of float ClipVertex)
+0:20 'attv4' (in 4-component vector of float)
+0:21 move second child to first child (temp float)
+0:21 Constant:
+0:21 0.000000
+0:21 Constant:
+0:21 0.200000
+0:25 move second child to first child (temp 4-component vector of float)
+0:25 'gl_Position' (invariant gl_Position 4-component vector of float Position)
+0:25 direct index (temp 4-component vector of float)
+0:25 'b' (temp 12-element array of 4-component vector of float)
+0:25 Constant:
+0:25 11 (const int)
+0:28 Sequence
+0:28 move second child to first child (temp int)
+0:28 'a1' (temp int)
+0:28 Constant:
+0:28 1 (const int)
+0:30 Sequence
+0:30 move second child to first child (temp int)
+0:30 'aa' (temp int)
+0:30 Constant:
+0:30 7 (const int)
+0:31 Sequence
+0:31 move second child to first child (temp int)
+0:31 'a2' (temp int)
+0:32 Sequence
+0:32 move second child to first child (temp int)
+0:32 'a3' (temp int)
+0:32 Constant:
+0:32 1 (const int)
+0:43 move second child to first child (temp float)
+0:43 'gl_PointSize' (invariant gl_PointSize float PointSize)
+0:43 Constant:
+0:43 3.800000
+0:61 Function Definition: overloadB(f1;f1; (global void)
+0:61 Function Parameters:
+0:61 '' (in float)
+0:61 '' (const (read only) float)
+0:78 Function Definition: foo( (global void)
+0:78 Function Parameters:
+0:? Sequence
+0:83 Function Call: overloadB(f1;f1; (global void)
+0:83 'f' (temp float)
+0:83 'f' (temp float)
+0:84 Function Call: overloadB(f1;f1; (global void)
+0:84 'f' (temp float)
+0:84 Constant:
+0:84 2.000000
+0:85 Function Call: overloadB(f1;f1; (global void)
+0:85 Constant:
+0:85 1.000000
+0:85 Convert int to float (temp float)
+0:85 'i' (temp int)
+0:87 Constant:
+0:87 0.000000
+0:88 Function Call: overloadC(i1;i1; (global 2-component vector of float)
+0:88 Constant:
+0:88 1 (const int)
+0:88 'i' (temp int)
+0:89 Function Call: overloadC(vf2;vf2; (global 2-component vector of float)
+0:89 Constant:
+0:89 1.000000
+0:89 1.000000
+0:89 Constant:
+0:89 2.000000
+0:89 2.000000
+0:90 Constant:
+0:90 0.000000
+0:91 Function Call: overloadC(vf2;vf2; (global 2-component vector of float)
+0:91 Constant:
+0:91 1.000000
+0:91 1.000000
+0:91 Constant:
+0:91 2.000000
+0:91 2.000000
+0:93 Function Call: overloadD(i1;f1; (global 3-component vector of float)
+0:93 'i' (temp int)
+0:93 'f' (temp float)
+0:94 Function Call: overloadD(f1;i1; (global 3-component vector of float)
+0:94 'f' (temp float)
+0:94 'i' (temp int)
+0:95 Function Call: overloadD(f1;i1; (global 3-component vector of float)
+0:95 Convert int to float (temp float)
+0:95 'i' (temp int)
+0:95 'i' (temp int)
+0:98 Constant:
+0:98 0.000000
+0:100 Constant:
+0:100 0.841471
+0:101 texture (global 4-component vector of float)
+0:101 's2D' (uniform sampler2D)
+0:101 Constant:
+0:101 0.000000
+0:101 0.000000
+0:102 clamp (global 4-component vector of float)
+0:102 'attv4' (in 4-component vector of float)
+0:102 Constant:
+0:102 0.000000
+0:102 Constant:
+0:102 1.000000
+0:103 clamp (global 4-component vector of float)
+0:103 Convert int to float (temp 4-component vector of float)
+0:103 Convert float to int (temp 4-component vector of int)
+0:103 'attv4' (in 4-component vector of float)
+0:103 Constant:
+0:103 0.000000
+0:103 Constant:
+0:103 1.000000
+0:106 Constant:
+0:106 0.000000
+0:107 Constant:
+0:107 0.000000
+0:108 Constant:
+0:108 0.000000
+0:109 Function Call: overloadE(vf2; (global 3-component vector of float)
+0:109 Constant:
+0:109 3.300000
+0:109 3.300000
+0:110 Function Call: overloadE(mf22; (global 3-component vector of float)
+0:110 Constant:
+0:110 0.500000
+0:110 0.000000
+0:110 0.000000
+0:110 0.500000
+0:111 Constant:
+0:111 0.000000
+0:112 Function Call: overloadE(vf2; (global 3-component vector of float)
+0:112 Constant:
+0:112 1.000000
+0:112 1.000000
+0:115 Function Call: overloadE(f1[2]; (global 3-component vector of float)
+0:115 'b' (temp 2-element array of float)
+0:117 Constant:
+0:117 0.000000
+0:118 Function Call: overloadF(i1; (global 3-component vector of float)
+0:118 Constant:
+0:118 1 (const int)
+0:128 Function Definition: foo2( (global void)
+0:128 Function Parameters:
+0:? Sequence
+0:135 Comma (global void)
+0:135 Function Call: outFun(f1;vi2;i1;f1; (global void)
+0:135 Convert int to float (temp float)
+0:135 'i' (temp int)
+0:135 'tempArg' (temp 2-component vector of int)
+0:135 'i' (temp int)
+0:135 'f' (temp float)
+0:135 move second child to first child (temp 2-component vector of float)
+0:135 'v2' (temp 2-component vector of float)
+0:135 Convert int to float (temp 2-component vector of float)
+0:135 'tempArg' (temp 2-component vector of int)
+0:136 Comma (global int)
+0:136 move second child to first child (temp int)
+0:136 'tempReturn' (global int)
+0:136 Function Call: outFunRet(f1;i1;i1;vi4; (global int)
+0:136 Convert int to float (temp float)
+0:136 'i' (temp int)
+0:136 'tempArg' (temp int)
+0:136 'i' (temp int)
+0:136 'tempArg' (temp 4-component vector of int)
+0:136 move second child to first child (temp float)
+0:136 'f' (temp float)
+0:136 Convert int to float (temp float)
+0:136 'tempArg' (temp int)
+0:136 move second child to first child (temp 4-component vector of float)
+0:136 'v4' (temp 4-component vector of float)
+0:136 Convert int to float (temp 4-component vector of float)
+0:136 'tempArg' (temp 4-component vector of int)
+0:136 'tempReturn' (global int)
+0:137 Sequence
+0:137 move second child to first child (temp float)
+0:137 'ret' (temp float)
+0:137 Convert int to float (temp float)
+0:137 Comma (global int)
+0:137 move second child to first child (temp int)
+0:137 'tempReturn' (global int)
+0:137 Function Call: outFunRet(f1;i1;i1;vi4; (global int)
+0:137 Convert int to float (temp float)
+0:137 'i' (temp int)
+0:137 'tempArg' (temp int)
+0:137 'i' (temp int)
+0:137 'tempArg' (temp 4-component vector of int)
+0:137 move second child to first child (temp float)
+0:137 'f' (temp float)
+0:137 Convert int to float (temp float)
+0:137 'tempArg' (temp int)
+0:137 move second child to first child (temp 4-component vector of float)
+0:137 'v4' (temp 4-component vector of float)
+0:137 Convert int to float (temp 4-component vector of float)
+0:137 'tempArg' (temp 4-component vector of int)
+0:137 'tempReturn' (global int)
+0:138 Sequence
+0:138 move second child to first child (temp 2-component vector of float)
+0:138 'ret2' (temp 2-component vector of float)
+0:138 Convert int to float (temp 2-component vector of float)
+0:138 Comma (global 2-component vector of int)
+0:138 move second child to first child (temp 2-component vector of int)
+0:138 'tempReturn' (global 2-component vector of int)
+0:138 Function Call: outFunRet(f1;vi4;i1;vi4; (global 2-component vector of int)
+0:138 Convert int to float (temp float)
+0:138 'i' (temp int)
+0:138 'tempArg' (temp 4-component vector of int)
+0:138 'i' (temp int)
+0:138 'tempArg' (temp 4-component vector of int)
+0:138 move second child to first child (temp 4-component vector of float)
+0:138 'v4' (temp 4-component vector of float)
+0:138 Convert int to float (temp 4-component vector of float)
+0:138 'tempArg' (temp 4-component vector of int)
+0:138 move second child to first child (temp 4-component vector of float)
+0:138 'v4' (temp 4-component vector of float)
+0:138 Convert int to float (temp 4-component vector of float)
+0:138 'tempArg' (temp 4-component vector of int)
+0:138 'tempReturn' (global 2-component vector of int)
+0:139 Sequence
+0:139 move second child to first child (temp bool)
+0:139 'b' (temp bool)
+0:139 any (global bool)
+0:139 Compare Less Than (global 4-component vector of bool)
+0:139 'v4' (temp 4-component vector of float)
+0:139 'attv4' (in 4-component vector of float)
+0:142 Function Definition: noise( (global void)
+0:142 Function Parameters:
+0:144 Sequence
+0:144 Sequence
+0:144 move second child to first child (temp float)
+0:144 'f1' (temp float)
+0:144 noise (global float)
+0:144 Constant:
+0:144 1.000000
+0:145 Sequence
+0:145 move second child to first child (temp 2-component vector of float)
+0:145 'f2' (temp 2-component vector of float)
+0:145 noise (global 2-component vector of float)
+0:145 Constant:
+0:145 1.000000
+0:145 1.000000
+0:146 Sequence
+0:146 move second child to first child (temp 3-component vector of float)
+0:146 'f3' (temp 3-component vector of float)
+0:146 noise (global 3-component vector of float)
+0:146 Constant:
+0:146 1.000000
+0:146 1.000000
+0:146 1.000000
+0:147 Sequence
+0:147 move second child to first child (temp 4-component vector of float)
+0:147 'f4' (temp 4-component vector of float)
+0:147 noise (global 4-component vector of float)
+0:147 Constant:
+0:147 1.000000
+0:147 1.000000
+0:147 1.000000
+0:147 1.000000
+0:162 Function Definition: foo213( (global void)
+0:162 Function Parameters:
+0:164 Sequence
+0:164 Sequence
+0:164 move second child to first child (temp float)
+0:164 'f' (temp float)
+0:164 Constant:
+0:164 3.000000
+0:165 switch
+0:165 condition
+0:165 'c' (uniform int)
+0:165 body
+0:165 Sequence
+0:166 case: with expression
+0:166 Constant:
+0:166 1 (const int)
+0:? Sequence
+0:167 move second child to first child (temp float)
+0:167 'f' (temp float)
+0:167 sine (global float)
+0:167 'f' (temp float)
+0:168 Branch: Break
+0:169 case: with expression
+0:169 Constant:
+0:169 2 (const int)
+0:? Sequence
+0:170 move second child to first child (temp float)
+0:170 'f' (temp float)
+0:170 component-wise multiply (temp float)
+0:170 'f' (temp float)
+0:170 'f' (temp float)
+0:171 default:
+0:? Sequence
+0:172 move second child to first child (temp float)
+0:172 'f' (temp float)
+0:172 Constant:
+0:172 3.000000
+0:176 inclusive-or (temp int)
+0:176 left-shift (temp int)
+0:176 'i' (temp int)
+0:176 Constant:
+0:176 3 (const int)
+0:176 Constant:
+0:176 69 (const int)
+0:180 Sequence
+0:180 move second child to first child (temp float)
+0:180 't' (temp float)
+0:180 Constant:
+0:180 0.000000
+0:186 Constant:
+0:186 0.000000
+0:188 Constant:
+0:188 0.000000
+0:189 Constant:
+0:189 0.000000
+0:192 move second child to first child (temp float)
+0:192 Constant:
+0:192 0.000000
+0:192 Constant:
+0:192 0.300000
+0:? Linker Objects
+0:? 'i' (in 4-component vector of float)
+0:? 'o' (smooth out 4-component vector of float)
+0:? 'attv2' (in 2-component vector of float)
+0:? 'attv4' (in 4-component vector of float)
+0:? 's2D' (uniform sampler2D)
+0:? 'centTexCoord' (invariant smooth out 2-component vector of float)
+0:? 'initted' (uniform float)
+0:? 3.400000
+0:? 'concall' (const float)
+0:? 0.295520
+0:? 'gl_TexCoord' (smooth out 35-element array of 4-component vector of float TexCoord)
+0:? 'gl_TexCoord' (smooth out 35-element array of 4-component vector of float TexCoord)
+0:? 'c' (uniform int)
+0:? 'x' (in 2-component vector of int)
+0:? 'v2a' (in 2-component vector of float)
+0:? 'c1D' (in float)
+0:? 'c2D' (in 2-component vector of float)
+0:? 'c3D' (in 3-component vector of float)
+0:? 'v4' (uniform 4-component vector of float)
+0:? 'abc' (global int)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/130.frag.out b/chromium/third_party/glslang/src/Test/baseResults/130.frag.out
new file mode 100644
index 00000000000..b2b4dd06567
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/130.frag.out
@@ -0,0 +1,782 @@
+130.frag
+ERROR: 0:25: 'textureGather(...)' : not supported for this version or the enabled extensions
+ERROR: 0:35: 'redeclaration' : cannot change the type of gl_Color
+ERROR: 0:38: 'gl_Color' : redeclaring non-array as array
+ERROR: 0:39: 'redeclaration' : cannot change storage, memory, or auxiliary qualification of gl_Color
+WARNING: 0:45: extension GL_ARB_texture_gather is being used for textureGather(...)
+ERROR: 0:62: '<' : wrong operand types: no operation '<' exists that takes a left-hand operand of type 'temp 3-component vector of bool' and a right operand of type 'temp 3-component vector of bool' (or there is no acceptable conversion)
+ERROR: 0:63: '>' : wrong operand types: no operation '>' exists that takes a left-hand operand of type 'temp 3-component vector of uint' and a right operand of type 'temp 3-component vector of uint' (or there is no acceptable conversion)
+ERROR: 0:64: '>=' : wrong operand types: no operation '>=' exists that takes a left-hand operand of type 'const 2-component vector of uint' and a right operand of type 'const 2-component vector of uint' (or there is no acceptable conversion)
+ERROR: 0:80: 'textureGatherOffset' : no matching overloaded function found
+ERROR: 0:80: 'assign' : cannot convert from 'const float' to 'temp 4-component vector of float'
+ERROR: 0:81: 'textureGatherOffset(...)' : not supported for this version or the enabled extensions
+ERROR: 0:84: 'textureGatherOffset(...)' : not supported for this version or the enabled extensions
+ERROR: 0:85: 'textureGatherOffset(...)' : not supported for this version or the enabled extensions
+WARNING: 0:88: '#extension' : extension is only partially supported: GL_ARB_gpu_shader5
+ERROR: 0:120: 'line continuation' : not supported for this version or the enabled extensions
+ERROR: 0:126: 'uniform block' : not supported for this version or the enabled extensions
+ERROR: 0:140: 'length' : does not operate on this type: temp bool
+ERROR: 0:140: 'boolb' : can't use function syntax on variable
+ERROR: 0:141: 'length' : does not operate on this type: temp float
+ERROR: 0:141: '' : function call, method, or subroutine call expected
+ERROR: 0:141: '' : no matching overloaded function found
+ERROR: 0:142: 'length' : incomplete method syntax
+ERROR: 0:143: 'length' : method does not accept any arguments
+ERROR: 0:146: 'gl_FogFragCoord' : identifiers starting with "gl_" are reserved
+ERROR: 0:151: 'int' : must be qualified as flat in
+ERROR: 0:151: 'redeclaration' : cannot change the type of gl_FogFragCoord
+ERROR: 0:153: 'early_fragment_tests' : not supported for this version or the enabled extensions
+ERROR: 0:154: 'image load store' : not supported for this version or the enabled extensions
+ERROR: 0:154: 'iimage2D' : Reserved word.
+ERROR: 0:169: 'early_fragment_tests' : can only apply to 'in'
+ERROR: 28 compilation errors. No code generated.
+
+
+Shader version: 130
+Requested GL_ARB_gpu_shader5
+Requested GL_ARB_separate_shader_objects
+Requested GL_ARB_shader_image_load_store
+Requested GL_ARB_shading_language_420pack
+Requested GL_ARB_texture_cube_map_array
+Requested GL_ARB_texture_gather
+Requested GL_ARB_texture_rectangle
+using early_fragment_tests
+ERROR: node is still EOpNull!
+0:16 Function Definition: main( (global void)
+0:16 Function Parameters:
+0:18 Sequence
+0:18 Sequence
+0:18 move second child to first child (temp float)
+0:18 'clip' (temp float)
+0:18 direct index (smooth temp float ClipDistance)
+0:18 'gl_ClipDistance' (smooth in implicitly-sized array of float ClipDistance)
+0:18 Constant:
+0:18 3 (const int)
+0:23 Function Definition: foo( (global void)
+0:23 Function Parameters:
+0:25 Sequence
+0:25 Sequence
+0:25 move second child to first child (temp 4-component vector of float)
+0:25 's' (temp 4-component vector of float)
+0:25 textureGather (global 4-component vector of float)
+0:25 'sampC' (uniform samplerCube)
+0:25 Constant:
+0:25 0.200000
+0:25 0.200000
+0:25 0.200000
+0:30 Function Definition: bar( (global void)
+0:30 Function Parameters:
+0:32 Sequence
+0:32 Sequence
+0:32 move second child to first child (temp 4-component vector of float)
+0:32 's' (temp 4-component vector of float)
+0:32 textureGather (global 4-component vector of float)
+0:32 'sampC' (uniform samplerCube)
+0:32 Constant:
+0:32 0.200000
+0:32 0.200000
+0:32 0.200000
+0:43 Function Definition: bar2( (global void)
+0:43 Function Parameters:
+0:45 Sequence
+0:45 Sequence
+0:45 move second child to first child (temp 4-component vector of float)
+0:45 's' (temp 4-component vector of float)
+0:45 textureGather (global 4-component vector of float)
+0:45 'sampC' (uniform samplerCube)
+0:45 Constant:
+0:45 0.200000
+0:45 0.200000
+0:45 0.200000
+0:49 move second child to first child (temp 3-component vector of bool)
+0:49 'b3' (temp 3-component vector of bool)
+0:49 Compare Less Than (global 3-component vector of bool)
+0:49 'uv3' (temp 3-component vector of uint)
+0:49 'uv3' (temp 3-component vector of uint)
+0:50 move second child to first child (temp 3-component vector of bool)
+0:50 'b3' (temp 3-component vector of bool)
+0:50 Equal (global 3-component vector of bool)
+0:50 'uv3' (temp 3-component vector of uint)
+0:50 'uv3' (temp 3-component vector of uint)
+0:56 direct index (temp int)
+0:56 'a1' (temp 1-element array of int)
+0:56 Constant:
+0:56 0 (const int)
+0:57 direct index (temp int)
+0:57 'a2' (temp 1-element array of int)
+0:57 Constant:
+0:57 0 (const int)
+0:60 direct index (temp int)
+0:60 'a3' (temp 4-element array of int)
+0:60 Constant:
+0:60 3 (const int)
+0:61 Compare Not Equal (temp bool)
+0:61 'b3' (temp 3-component vector of bool)
+0:61 'b3' (temp 3-component vector of bool)
+0:62 Constant:
+0:62 false (const bool)
+0:63 Constant:
+0:63 false (const bool)
+0:64 Constant:
+0:64 false (const bool)
+0:65 Constant:
+0:65 true (const bool)
+0:66 Constant:
+0:66 false (const bool)
+0:77 Function Definition: bar23( (global void)
+0:77 Function Parameters:
+0:? Sequence
+0:80 's' (temp 4-component vector of float)
+0:81 move second child to first child (temp 4-component vector of float)
+0:81 's' (temp 4-component vector of float)
+0:81 textureGatherOffset (global 4-component vector of float)
+0:81 'samp2DR' (uniform sampler2DRect)
+0:81 Constant:
+0:81 0.300000
+0:81 0.300000
+0:81 Constant:
+0:81 1 (const int)
+0:81 1 (const int)
+0:82 move second child to first child (temp 4-component vector of float)
+0:82 's' (temp 4-component vector of float)
+0:82 textureGatherOffset (global 4-component vector of float)
+0:82 'samp2D' (uniform sampler2D)
+0:82 Constant:
+0:82 0.300000
+0:82 0.300000
+0:82 Constant:
+0:82 1 (const int)
+0:82 1 (const int)
+0:83 move second child to first child (temp 4-component vector of float)
+0:83 's' (temp 4-component vector of float)
+0:83 textureGatherOffset (global 4-component vector of float)
+0:83 'samp2DA' (uniform sampler2DArray)
+0:83 Constant:
+0:83 0.300000
+0:83 0.300000
+0:83 0.300000
+0:83 Constant:
+0:83 1 (const int)
+0:83 1 (const int)
+0:84 move second child to first child (temp 4-component vector of float)
+0:84 's' (temp 4-component vector of float)
+0:84 textureGatherOffset (global 4-component vector of float)
+0:84 'samp2DS' (uniform sampler2DShadow)
+0:84 Constant:
+0:84 0.300000
+0:84 0.300000
+0:84 Constant:
+0:84 1.300000
+0:84 Constant:
+0:84 1 (const int)
+0:84 1 (const int)
+0:85 move second child to first child (temp 4-component vector of float)
+0:85 's' (temp 4-component vector of float)
+0:85 textureGatherOffset (global 4-component vector of float)
+0:85 'samp2D' (uniform sampler2D)
+0:85 Constant:
+0:85 0.300000
+0:85 0.300000
+0:85 Constant:
+0:85 1 (const int)
+0:85 1 (const int)
+0:85 Constant:
+0:85 2 (const int)
+0:90 Function Definition: bar234( (global void)
+0:90 Function Parameters:
+0:? Sequence
+0:93 move second child to first child (temp 4-component vector of float)
+0:93 's' (temp 4-component vector of float)
+0:93 textureGatherOffset (global 4-component vector of float)
+0:93 'samp2D' (uniform sampler2D)
+0:93 Constant:
+0:93 0.300000
+0:93 0.300000
+0:93 Constant:
+0:93 1 (const int)
+0:93 1 (const int)
+0:94 move second child to first child (temp 4-component vector of float)
+0:94 's' (temp 4-component vector of float)
+0:94 textureGatherOffset (global 4-component vector of float)
+0:94 'samp2DA' (uniform sampler2DArray)
+0:94 Constant:
+0:94 0.300000
+0:94 0.300000
+0:94 0.300000
+0:94 Constant:
+0:94 1 (const int)
+0:94 1 (const int)
+0:95 move second child to first child (temp 4-component vector of float)
+0:95 's' (temp 4-component vector of float)
+0:95 textureGatherOffset (global 4-component vector of float)
+0:95 'samp2DR' (uniform sampler2DRect)
+0:95 Constant:
+0:95 0.300000
+0:95 0.300000
+0:95 Constant:
+0:95 1 (const int)
+0:95 1 (const int)
+0:96 move second child to first child (temp 4-component vector of float)
+0:96 's' (temp 4-component vector of float)
+0:96 textureGatherOffset (global 4-component vector of float)
+0:96 'samp2DS' (uniform sampler2DShadow)
+0:96 Constant:
+0:96 0.300000
+0:96 0.300000
+0:96 Constant:
+0:96 1.300000
+0:96 Constant:
+0:96 1 (const int)
+0:96 1 (const int)
+0:97 move second child to first child (temp 4-component vector of float)
+0:97 's' (temp 4-component vector of float)
+0:97 textureGatherOffset (global 4-component vector of float)
+0:97 'samp2D' (uniform sampler2D)
+0:97 Constant:
+0:97 0.300000
+0:97 0.300000
+0:97 Constant:
+0:97 1 (const int)
+0:97 1 (const int)
+0:97 Constant:
+0:97 2 (const int)
+0:107 Function Definition: bar235( (global void)
+0:107 Function Parameters:
+0:109 Sequence
+0:109 Sequence
+0:109 move second child to first child (temp 3-component vector of int)
+0:109 'a' (temp 3-component vector of int)
+0:109 textureSize (global 3-component vector of int)
+0:109 'Sca' (uniform samplerCubeArray)
+0:109 Constant:
+0:109 3 (const int)
+0:110 Sequence
+0:110 move second child to first child (temp 4-component vector of float)
+0:110 'b' (temp 4-component vector of float)
+0:110 texture (global 4-component vector of float)
+0:110 'Sca' (uniform samplerCubeArray)
+0:110 'i' (smooth in 4-component vector of float)
+0:111 Sequence
+0:111 move second child to first child (temp 4-component vector of int)
+0:111 'c' (temp 4-component vector of int)
+0:111 texture (global 4-component vector of int)
+0:111 'Isca' (uniform isamplerCubeArray)
+0:111 'i' (smooth in 4-component vector of float)
+0:111 Constant:
+0:111 0.700000
+0:112 Sequence
+0:112 move second child to first child (temp 4-component vector of uint)
+0:112 'd' (temp 4-component vector of uint)
+0:112 texture (global 4-component vector of uint)
+0:112 'Usca' (uniform usamplerCubeArray)
+0:112 'i' (smooth in 4-component vector of float)
+0:114 move second child to first child (temp 4-component vector of float)
+0:114 'b' (temp 4-component vector of float)
+0:114 textureLod (global 4-component vector of float)
+0:114 'Sca' (uniform samplerCubeArray)
+0:114 'i' (smooth in 4-component vector of float)
+0:114 Constant:
+0:114 1.700000
+0:115 move second child to first child (temp 3-component vector of int)
+0:115 'a' (temp 3-component vector of int)
+0:115 textureSize (global 3-component vector of int)
+0:115 'Scas' (uniform samplerCubeArrayShadow)
+0:115 direct index (temp int)
+0:115 'a' (temp 3-component vector of int)
+0:115 Constant:
+0:115 0 (const int)
+0:116 Sequence
+0:116 move second child to first child (temp float)
+0:116 'f' (temp float)
+0:116 texture (global float)
+0:116 'Scas' (uniform samplerCubeArrayShadow)
+0:116 'i' (smooth in 4-component vector of float)
+0:116 direct index (temp float)
+0:116 'b' (temp 4-component vector of float)
+0:116 Constant:
+0:116 1 (const int)
+0:117 move second child to first child (temp 4-component vector of int)
+0:117 'c' (temp 4-component vector of int)
+0:117 textureGrad (global 4-component vector of int)
+0:117 'Isca' (uniform isamplerCubeArray)
+0:117 'i' (smooth in 4-component vector of float)
+0:117 Constant:
+0:117 0.100000
+0:117 0.100000
+0:117 0.100000
+0:117 Constant:
+0:117 0.200000
+0:117 0.200000
+0:117 0.200000
+0:129 Function Definition: bar23444( (global void)
+0:129 Function Parameters:
+0:? Sequence
+0:132 Sequence
+0:132 move second child to first child (temp float)
+0:132 'a1' (temp float)
+0:132 direct index (temp float)
+0:132 direct index (temp 3-component vector of float)
+0:132 'm43' (temp 4X3 matrix of float)
+0:132 Constant:
+0:132 3 (const int)
+0:132 Constant:
+0:132 1 (const int)
+0:134 Sequence
+0:134 move second child to first child (temp int)
+0:134 'a2' (temp int)
+0:134 Constant:
+0:134 4 (const int)
+0:135 add second child into first child (temp int)
+0:135 'a2' (temp int)
+0:135 Constant:
+0:135 3 (const int)
+0:136 add second child into first child (temp int)
+0:136 'a2' (temp int)
+0:136 Constant:
+0:136 3 (const int)
+0:137 Sequence
+0:137 move second child to first child (temp float)
+0:137 'b' (const (read only) float)
+0:137 component-wise multiply (temp float)
+0:137 Constant:
+0:137 2.000000
+0:137 'a1' (temp float)
+0:138 move second child to first child (temp float)
+0:138 direct index (temp float)
+0:138 'a' (global 3-component vector of float)
+0:138 Constant:
+0:138 0 (const int)
+0:138 Constant:
+0:138 -1.000000
+0:140 Constant:
+0:140 0.000000
+0:141 Constant:
+0:141 0.000000
+0:143 Constant:
+0:143 1 (const int)
+0:162 Function Definition: qux2( (global void)
+0:162 Function Parameters:
+0:? Sequence
+0:165 imageAtomicCompSwap (global int)
+0:165 'iimg2D' (layout(r32i ) uniform iimage2D)
+0:165 Construct ivec2 (temp 2-component vector of int)
+0:165 'i' (temp int)
+0:165 'i' (temp int)
+0:165 'i' (temp int)
+0:165 'i' (temp int)
+0:166 Sequence
+0:166 move second child to first child (temp 4-component vector of int)
+0:166 'pos' (temp 4-component vector of int)
+0:166 imageLoad (global 4-component vector of int)
+0:166 'iimg2D' (layout(r32i ) uniform iimage2D)
+0:166 Construct ivec2 (temp 2-component vector of int)
+0:166 'i' (temp int)
+0:166 'i' (temp int)
+0:? Linker Objects
+0:? 'a' (global 3-component vector of float)
+0:? 'b' (global float)
+0:? 'c' (global int)
+0:? 'i' (smooth in 4-component vector of float)
+0:? 'o' (out 4-component vector of float)
+0:? 'fflat' (flat in float)
+0:? 'fsmooth' (smooth in float)
+0:? 'fnop' (noperspective in float)
+0:? 'gl_ClipDistance' (smooth in implicitly-sized array of float ClipDistance)
+0:? 'sampC' (uniform samplerCube)
+0:? 'gl_Color' (smooth in 4-component vector of float Color)
+0:? 'gl_Color' (flat in 4-component vector of float Color)
+0:? 'samp2D' (uniform sampler2D)
+0:? 'samp2DS' (uniform sampler2DShadow)
+0:? 'samp2DR' (uniform sampler2DRect)
+0:? 'samp2DA' (uniform sampler2DArray)
+0:? 'Sca' (uniform samplerCubeArray)
+0:? 'Isca' (uniform isamplerCubeArray)
+0:? 'Usca' (uniform usamplerCubeArray)
+0:? 'Scas' (uniform samplerCubeArrayShadow)
+0:? 'x' (global int)
+0:? 'ai' (const 3-element array of int)
+0:? 10 (const int)
+0:? 23 (const int)
+0:? 32 (const int)
+0:? 'instanceName' (layout(binding=0 column_major shared ) uniform block{layout(column_major shared ) uniform int a})
+0:? 'bounds' (layout(binding=0 ) uniform sampler2D)
+0:? 'gl_FogFragCoord' (smooth in float)
+0:? 'iimg2Dbad' (layout(r32i ) uniform iimage2D)
+0:? 'iimg2D' (layout(r32i ) uniform iimage2D)
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+Requested GL_ARB_gpu_shader5
+Requested GL_ARB_separate_shader_objects
+Requested GL_ARB_shader_image_load_store
+Requested GL_ARB_shading_language_420pack
+Requested GL_ARB_texture_cube_map_array
+Requested GL_ARB_texture_gather
+Requested GL_ARB_texture_rectangle
+using early_fragment_tests
+ERROR: node is still EOpNull!
+0:16 Function Definition: main( (global void)
+0:16 Function Parameters:
+0:18 Sequence
+0:18 Sequence
+0:18 move second child to first child (temp float)
+0:18 'clip' (temp float)
+0:18 direct index (smooth temp float ClipDistance)
+0:18 'gl_ClipDistance' (smooth in 4-element array of float ClipDistance)
+0:18 Constant:
+0:18 3 (const int)
+0:23 Function Definition: foo( (global void)
+0:23 Function Parameters:
+0:25 Sequence
+0:25 Sequence
+0:25 move second child to first child (temp 4-component vector of float)
+0:25 's' (temp 4-component vector of float)
+0:25 textureGather (global 4-component vector of float)
+0:25 'sampC' (uniform samplerCube)
+0:25 Constant:
+0:25 0.200000
+0:25 0.200000
+0:25 0.200000
+0:30 Function Definition: bar( (global void)
+0:30 Function Parameters:
+0:32 Sequence
+0:32 Sequence
+0:32 move second child to first child (temp 4-component vector of float)
+0:32 's' (temp 4-component vector of float)
+0:32 textureGather (global 4-component vector of float)
+0:32 'sampC' (uniform samplerCube)
+0:32 Constant:
+0:32 0.200000
+0:32 0.200000
+0:32 0.200000
+0:43 Function Definition: bar2( (global void)
+0:43 Function Parameters:
+0:45 Sequence
+0:45 Sequence
+0:45 move second child to first child (temp 4-component vector of float)
+0:45 's' (temp 4-component vector of float)
+0:45 textureGather (global 4-component vector of float)
+0:45 'sampC' (uniform samplerCube)
+0:45 Constant:
+0:45 0.200000
+0:45 0.200000
+0:45 0.200000
+0:49 move second child to first child (temp 3-component vector of bool)
+0:49 'b3' (temp 3-component vector of bool)
+0:49 Compare Less Than (global 3-component vector of bool)
+0:49 'uv3' (temp 3-component vector of uint)
+0:49 'uv3' (temp 3-component vector of uint)
+0:50 move second child to first child (temp 3-component vector of bool)
+0:50 'b3' (temp 3-component vector of bool)
+0:50 Equal (global 3-component vector of bool)
+0:50 'uv3' (temp 3-component vector of uint)
+0:50 'uv3' (temp 3-component vector of uint)
+0:56 direct index (temp int)
+0:56 'a1' (temp 1-element array of int)
+0:56 Constant:
+0:56 0 (const int)
+0:57 direct index (temp int)
+0:57 'a2' (temp 1-element array of int)
+0:57 Constant:
+0:57 0 (const int)
+0:60 direct index (temp int)
+0:60 'a3' (temp 4-element array of int)
+0:60 Constant:
+0:60 3 (const int)
+0:61 Compare Not Equal (temp bool)
+0:61 'b3' (temp 3-component vector of bool)
+0:61 'b3' (temp 3-component vector of bool)
+0:62 Constant:
+0:62 false (const bool)
+0:63 Constant:
+0:63 false (const bool)
+0:64 Constant:
+0:64 false (const bool)
+0:65 Constant:
+0:65 true (const bool)
+0:66 Constant:
+0:66 false (const bool)
+0:77 Function Definition: bar23( (global void)
+0:77 Function Parameters:
+0:? Sequence
+0:80 's' (temp 4-component vector of float)
+0:81 move second child to first child (temp 4-component vector of float)
+0:81 's' (temp 4-component vector of float)
+0:81 textureGatherOffset (global 4-component vector of float)
+0:81 'samp2DR' (uniform sampler2DRect)
+0:81 Constant:
+0:81 0.300000
+0:81 0.300000
+0:81 Constant:
+0:81 1 (const int)
+0:81 1 (const int)
+0:82 move second child to first child (temp 4-component vector of float)
+0:82 's' (temp 4-component vector of float)
+0:82 textureGatherOffset (global 4-component vector of float)
+0:82 'samp2D' (uniform sampler2D)
+0:82 Constant:
+0:82 0.300000
+0:82 0.300000
+0:82 Constant:
+0:82 1 (const int)
+0:82 1 (const int)
+0:83 move second child to first child (temp 4-component vector of float)
+0:83 's' (temp 4-component vector of float)
+0:83 textureGatherOffset (global 4-component vector of float)
+0:83 'samp2DA' (uniform sampler2DArray)
+0:83 Constant:
+0:83 0.300000
+0:83 0.300000
+0:83 0.300000
+0:83 Constant:
+0:83 1 (const int)
+0:83 1 (const int)
+0:84 move second child to first child (temp 4-component vector of float)
+0:84 's' (temp 4-component vector of float)
+0:84 textureGatherOffset (global 4-component vector of float)
+0:84 'samp2DS' (uniform sampler2DShadow)
+0:84 Constant:
+0:84 0.300000
+0:84 0.300000
+0:84 Constant:
+0:84 1.300000
+0:84 Constant:
+0:84 1 (const int)
+0:84 1 (const int)
+0:85 move second child to first child (temp 4-component vector of float)
+0:85 's' (temp 4-component vector of float)
+0:85 textureGatherOffset (global 4-component vector of float)
+0:85 'samp2D' (uniform sampler2D)
+0:85 Constant:
+0:85 0.300000
+0:85 0.300000
+0:85 Constant:
+0:85 1 (const int)
+0:85 1 (const int)
+0:85 Constant:
+0:85 2 (const int)
+0:90 Function Definition: bar234( (global void)
+0:90 Function Parameters:
+0:? Sequence
+0:93 move second child to first child (temp 4-component vector of float)
+0:93 's' (temp 4-component vector of float)
+0:93 textureGatherOffset (global 4-component vector of float)
+0:93 'samp2D' (uniform sampler2D)
+0:93 Constant:
+0:93 0.300000
+0:93 0.300000
+0:93 Constant:
+0:93 1 (const int)
+0:93 1 (const int)
+0:94 move second child to first child (temp 4-component vector of float)
+0:94 's' (temp 4-component vector of float)
+0:94 textureGatherOffset (global 4-component vector of float)
+0:94 'samp2DA' (uniform sampler2DArray)
+0:94 Constant:
+0:94 0.300000
+0:94 0.300000
+0:94 0.300000
+0:94 Constant:
+0:94 1 (const int)
+0:94 1 (const int)
+0:95 move second child to first child (temp 4-component vector of float)
+0:95 's' (temp 4-component vector of float)
+0:95 textureGatherOffset (global 4-component vector of float)
+0:95 'samp2DR' (uniform sampler2DRect)
+0:95 Constant:
+0:95 0.300000
+0:95 0.300000
+0:95 Constant:
+0:95 1 (const int)
+0:95 1 (const int)
+0:96 move second child to first child (temp 4-component vector of float)
+0:96 's' (temp 4-component vector of float)
+0:96 textureGatherOffset (global 4-component vector of float)
+0:96 'samp2DS' (uniform sampler2DShadow)
+0:96 Constant:
+0:96 0.300000
+0:96 0.300000
+0:96 Constant:
+0:96 1.300000
+0:96 Constant:
+0:96 1 (const int)
+0:96 1 (const int)
+0:97 move second child to first child (temp 4-component vector of float)
+0:97 's' (temp 4-component vector of float)
+0:97 textureGatherOffset (global 4-component vector of float)
+0:97 'samp2D' (uniform sampler2D)
+0:97 Constant:
+0:97 0.300000
+0:97 0.300000
+0:97 Constant:
+0:97 1 (const int)
+0:97 1 (const int)
+0:97 Constant:
+0:97 2 (const int)
+0:107 Function Definition: bar235( (global void)
+0:107 Function Parameters:
+0:109 Sequence
+0:109 Sequence
+0:109 move second child to first child (temp 3-component vector of int)
+0:109 'a' (temp 3-component vector of int)
+0:109 textureSize (global 3-component vector of int)
+0:109 'Sca' (uniform samplerCubeArray)
+0:109 Constant:
+0:109 3 (const int)
+0:110 Sequence
+0:110 move second child to first child (temp 4-component vector of float)
+0:110 'b' (temp 4-component vector of float)
+0:110 texture (global 4-component vector of float)
+0:110 'Sca' (uniform samplerCubeArray)
+0:110 'i' (smooth in 4-component vector of float)
+0:111 Sequence
+0:111 move second child to first child (temp 4-component vector of int)
+0:111 'c' (temp 4-component vector of int)
+0:111 texture (global 4-component vector of int)
+0:111 'Isca' (uniform isamplerCubeArray)
+0:111 'i' (smooth in 4-component vector of float)
+0:111 Constant:
+0:111 0.700000
+0:112 Sequence
+0:112 move second child to first child (temp 4-component vector of uint)
+0:112 'd' (temp 4-component vector of uint)
+0:112 texture (global 4-component vector of uint)
+0:112 'Usca' (uniform usamplerCubeArray)
+0:112 'i' (smooth in 4-component vector of float)
+0:114 move second child to first child (temp 4-component vector of float)
+0:114 'b' (temp 4-component vector of float)
+0:114 textureLod (global 4-component vector of float)
+0:114 'Sca' (uniform samplerCubeArray)
+0:114 'i' (smooth in 4-component vector of float)
+0:114 Constant:
+0:114 1.700000
+0:115 move second child to first child (temp 3-component vector of int)
+0:115 'a' (temp 3-component vector of int)
+0:115 textureSize (global 3-component vector of int)
+0:115 'Scas' (uniform samplerCubeArrayShadow)
+0:115 direct index (temp int)
+0:115 'a' (temp 3-component vector of int)
+0:115 Constant:
+0:115 0 (const int)
+0:116 Sequence
+0:116 move second child to first child (temp float)
+0:116 'f' (temp float)
+0:116 texture (global float)
+0:116 'Scas' (uniform samplerCubeArrayShadow)
+0:116 'i' (smooth in 4-component vector of float)
+0:116 direct index (temp float)
+0:116 'b' (temp 4-component vector of float)
+0:116 Constant:
+0:116 1 (const int)
+0:117 move second child to first child (temp 4-component vector of int)
+0:117 'c' (temp 4-component vector of int)
+0:117 textureGrad (global 4-component vector of int)
+0:117 'Isca' (uniform isamplerCubeArray)
+0:117 'i' (smooth in 4-component vector of float)
+0:117 Constant:
+0:117 0.100000
+0:117 0.100000
+0:117 0.100000
+0:117 Constant:
+0:117 0.200000
+0:117 0.200000
+0:117 0.200000
+0:129 Function Definition: bar23444( (global void)
+0:129 Function Parameters:
+0:? Sequence
+0:132 Sequence
+0:132 move second child to first child (temp float)
+0:132 'a1' (temp float)
+0:132 direct index (temp float)
+0:132 direct index (temp 3-component vector of float)
+0:132 'm43' (temp 4X3 matrix of float)
+0:132 Constant:
+0:132 3 (const int)
+0:132 Constant:
+0:132 1 (const int)
+0:134 Sequence
+0:134 move second child to first child (temp int)
+0:134 'a2' (temp int)
+0:134 Constant:
+0:134 4 (const int)
+0:135 add second child into first child (temp int)
+0:135 'a2' (temp int)
+0:135 Constant:
+0:135 3 (const int)
+0:136 add second child into first child (temp int)
+0:136 'a2' (temp int)
+0:136 Constant:
+0:136 3 (const int)
+0:137 Sequence
+0:137 move second child to first child (temp float)
+0:137 'b' (const (read only) float)
+0:137 component-wise multiply (temp float)
+0:137 Constant:
+0:137 2.000000
+0:137 'a1' (temp float)
+0:138 move second child to first child (temp float)
+0:138 direct index (temp float)
+0:138 'a' (global 3-component vector of float)
+0:138 Constant:
+0:138 0 (const int)
+0:138 Constant:
+0:138 -1.000000
+0:140 Constant:
+0:140 0.000000
+0:141 Constant:
+0:141 0.000000
+0:143 Constant:
+0:143 1 (const int)
+0:162 Function Definition: qux2( (global void)
+0:162 Function Parameters:
+0:? Sequence
+0:165 imageAtomicCompSwap (global int)
+0:165 'iimg2D' (layout(r32i ) uniform iimage2D)
+0:165 Construct ivec2 (temp 2-component vector of int)
+0:165 'i' (temp int)
+0:165 'i' (temp int)
+0:165 'i' (temp int)
+0:165 'i' (temp int)
+0:166 Sequence
+0:166 move second child to first child (temp 4-component vector of int)
+0:166 'pos' (temp 4-component vector of int)
+0:166 imageLoad (global 4-component vector of int)
+0:166 'iimg2D' (layout(r32i ) uniform iimage2D)
+0:166 Construct ivec2 (temp 2-component vector of int)
+0:166 'i' (temp int)
+0:166 'i' (temp int)
+0:? Linker Objects
+0:? 'a' (global 3-component vector of float)
+0:? 'b' (global float)
+0:? 'c' (global int)
+0:? 'i' (smooth in 4-component vector of float)
+0:? 'o' (out 4-component vector of float)
+0:? 'fflat' (flat in float)
+0:? 'fsmooth' (smooth in float)
+0:? 'fnop' (noperspective in float)
+0:? 'gl_ClipDistance' (smooth in 4-element array of float ClipDistance)
+0:? 'sampC' (uniform samplerCube)
+0:? 'gl_Color' (smooth in 4-component vector of float Color)
+0:? 'gl_Color' (flat in 4-component vector of float Color)
+0:? 'samp2D' (uniform sampler2D)
+0:? 'samp2DS' (uniform sampler2DShadow)
+0:? 'samp2DR' (uniform sampler2DRect)
+0:? 'samp2DA' (uniform sampler2DArray)
+0:? 'Sca' (uniform samplerCubeArray)
+0:? 'Isca' (uniform isamplerCubeArray)
+0:? 'Usca' (uniform usamplerCubeArray)
+0:? 'Scas' (uniform samplerCubeArrayShadow)
+0:? 'x' (global int)
+0:? 'ai' (const 3-element array of int)
+0:? 10 (const int)
+0:? 23 (const int)
+0:? 32 (const int)
+0:? 'instanceName' (layout(binding=0 column_major shared ) uniform block{layout(column_major shared ) uniform int a})
+0:? 'bounds' (layout(binding=0 ) uniform sampler2D)
+0:? 'gl_FogFragCoord' (smooth in float)
+0:? 'iimg2Dbad' (layout(r32i ) uniform iimage2D)
+0:? 'iimg2D' (layout(r32i ) uniform iimage2D)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/130.vert.out b/chromium/third_party/glslang/src/Test/baseResults/130.vert.out
new file mode 100644
index 00000000000..7cfeb19d8e3
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/130.vert.out
@@ -0,0 +1,303 @@
+130.vert
+ERROR: 0:59: 'gl_InstanceID' : undeclared identifier
+ERROR: 0:59: '=' : cannot convert from 'temp float' to 'temp int'
+ERROR: 0:61: 'texelFetch' : no matching overloaded function found
+ERROR: 0:61: 'assign' : cannot convert from 'const float' to 'temp int'
+ERROR: 0:75: '##' : token pasting not implemented (internal error)
+ERROR: 0:75: '' : syntax error
+ERROR: 6 compilation errors. No code generated.
+
+
+Shader version: 130
+ERROR: node is still EOpNull!
+0:15 Function Definition: main( (global void)
+0:15 Function Parameters:
+0:17 Sequence
+0:17 Sequence
+0:17 move second child to first child (temp float)
+0:17 'f' (temp float)
+0:17 Constant:
+0:17 3.000000
+0:18 switch
+0:18 condition
+0:18 'c' (uniform int)
+0:18 body
+0:18 Sequence
+0:19 case: with expression
+0:19 Constant:
+0:19 1 (const int)
+0:? Sequence
+0:20 move second child to first child (temp float)
+0:20 'f' (temp float)
+0:20 sine (global float)
+0:20 'f' (temp float)
+0:21 Branch: Break
+0:22 case: with expression
+0:22 Constant:
+0:22 2 (const int)
+0:? Sequence
+0:23 move second child to first child (temp float)
+0:23 'f' (temp float)
+0:23 component-wise multiply (temp float)
+0:23 'f' (temp float)
+0:23 'f' (temp float)
+0:24 default:
+0:? Sequence
+0:25 move second child to first child (temp float)
+0:25 'f' (temp float)
+0:25 Constant:
+0:25 3.000000
+0:29 move second child to first child (temp uint)
+0:29 'i' (temp uint)
+0:29 direct index (temp uint)
+0:29 texture (global 4-component vector of uint)
+0:29 'us2D' (uniform usampler2D)
+0:29 Convert int to float (temp 2-component vector of float)
+0:29 'x' (in 2-component vector of int)
+0:29 Constant:
+0:29 3 (const int)
+0:30 inclusive-or (temp uint)
+0:30 left-shift (temp uint)
+0:30 'i' (temp uint)
+0:30 Constant:
+0:30 3 (const uint)
+0:30 Constant:
+0:30 69 (const uint)
+0:33 Sequence
+0:33 move second child to first child (temp 3-component vector of float)
+0:33 'v11' (temp 3-component vector of float)
+0:33 modf (global 3-component vector of float)
+0:33 'modfIn' (temp 3-component vector of float)
+0:33 'modfOut' (temp 3-component vector of float)
+0:34 Sequence
+0:34 move second child to first child (temp float)
+0:34 't' (temp float)
+0:34 trunc (global float)
+0:34 'f' (temp float)
+0:35 Sequence
+0:35 move second child to first child (temp 2-component vector of float)
+0:35 'v12' (temp 2-component vector of float)
+0:35 round (global 2-component vector of float)
+0:35 'v2a' (in 2-component vector of float)
+0:36 Sequence
+0:36 move second child to first child (temp 2-component vector of float)
+0:36 'v13' (temp 2-component vector of float)
+0:36 roundEven (global 2-component vector of float)
+0:36 'v2a' (in 2-component vector of float)
+0:37 Sequence
+0:37 move second child to first child (temp 2-component vector of bool)
+0:37 'b10' (temp 2-component vector of bool)
+0:37 isnan (global 2-component vector of bool)
+0:37 'v2a' (in 2-component vector of float)
+0:38 Sequence
+0:38 move second child to first child (temp 4-component vector of bool)
+0:38 'b11' (temp 4-component vector of bool)
+0:38 isinf (global 4-component vector of bool)
+0:38 'v4' (uniform 4-component vector of float)
+0:40 add (temp 2-component vector of float)
+0:40 hyp. sine (global float)
+0:40 'c1D' (in float)
+0:41 vector-scale (temp 2-component vector of float)
+0:41 hyp. cosine (global float)
+0:41 'c1D' (in float)
+0:41 hyp. tangent (global 2-component vector of float)
+0:41 'c2D' (in 2-component vector of float)
+0:42 add (temp 4-component vector of float)
+0:42 arc hyp. sine (global 4-component vector of float)
+0:42 'c4D' (smooth temp 4-component vector of float)
+0:42 arc hyp. cosine (global 4-component vector of float)
+0:42 'c4D' (smooth temp 4-component vector of float)
+0:43 arc hyp. tangent (global 3-component vector of float)
+0:43 'c3D' (in 3-component vector of float)
+0:45 Sequence
+0:45 move second child to first child (temp int)
+0:45 'id' (temp int)
+0:45 'gl_VertexID' (gl_VertexId int VertexId)
+0:46 move second child to first child (temp float)
+0:46 direct index (smooth temp float ClipDistance)
+0:46 'gl_ClipDistance' (smooth out implicitly-sized array of float ClipDistance)
+0:46 Constant:
+0:46 1 (const int)
+0:46 Constant:
+0:46 0.300000
+0:57 Function Definition: foo88( (global void)
+0:57 Function Parameters:
+0:? Sequence
+0:61 'id' (temp int)
+0:63 'gl_ClipVertex' (gl_ClipVertex 4-component vector of float ClipVertex)
+0:64 'gl_Color' (in 4-component vector of float Color)
+0:65 direct index (temp structure{global 4-component vector of float ambient, global 4-component vector of float diffuse, global 4-component vector of float specular, global 4-component vector of float position, global 4-component vector of float halfVector, global 3-component vector of float spotDirection, global float spotExponent, global float spotCutoff, global float spotCosCutoff, global float constantAttenuation, global float linearAttenuation, global float quadraticAttenuation})
+0:65 'gl_LightSource' (uniform 32-element array of structure{global 4-component vector of float ambient, global 4-component vector of float diffuse, global 4-component vector of float specular, global 4-component vector of float position, global 4-component vector of float halfVector, global 3-component vector of float spotDirection, global float spotExponent, global float spotCutoff, global float spotCosCutoff, global float constantAttenuation, global float linearAttenuation, global float quadraticAttenuation})
+0:65 Constant:
+0:65 0 (const int)
+0:66 far: direct index for structure (global float)
+0:66 'gl_DepthRange' (uniform structure{global float near, global float far, global float diff})
+0:66 Constant:
+0:66 1 (const int)
+0:67 'gl_TexCoord' (smooth out implicitly-sized array of 4-component vector of float TexCoord)
+0:68 'gl_FogFragCoord' (smooth out float FogFragCoord)
+0:69 'gl_FrontColor' (smooth out 4-component vector of float FrontColor)
+0:? Linker Objects
+0:? 'c' (uniform int)
+0:? 'us2D' (uniform usampler2D)
+0:? 'x' (in 2-component vector of int)
+0:? 'v2a' (in 2-component vector of float)
+0:? 'c1D' (in float)
+0:? 'c2D' (in 2-component vector of float)
+0:? 'c3D' (in 3-component vector of float)
+0:? 'c4D' (smooth temp 4-component vector of float)
+0:? 'v4' (uniform 4-component vector of float)
+0:? 'gl_ClipDistance' (smooth out implicitly-sized array of float ClipDistance)
+0:? 'gl_TexCoord' (smooth out implicitly-sized array of 4-component vector of float TexCoord)
+0:? 'abc' (global int)
+0:? 'gl_VertexID' (gl_VertexId int VertexId)
+
+
+Linked vertex stage:
+
+ERROR: Linking vertex stage: Can only use one of gl_ClipDistance or gl_ClipVertex (gl_ClipDistance is preferred)
+
+Shader version: 130
+ERROR: node is still EOpNull!
+0:15 Function Definition: main( (global void)
+0:15 Function Parameters:
+0:17 Sequence
+0:17 Sequence
+0:17 move second child to first child (temp float)
+0:17 'f' (temp float)
+0:17 Constant:
+0:17 3.000000
+0:18 switch
+0:18 condition
+0:18 'c' (uniform int)
+0:18 body
+0:18 Sequence
+0:19 case: with expression
+0:19 Constant:
+0:19 1 (const int)
+0:? Sequence
+0:20 move second child to first child (temp float)
+0:20 'f' (temp float)
+0:20 sine (global float)
+0:20 'f' (temp float)
+0:21 Branch: Break
+0:22 case: with expression
+0:22 Constant:
+0:22 2 (const int)
+0:? Sequence
+0:23 move second child to first child (temp float)
+0:23 'f' (temp float)
+0:23 component-wise multiply (temp float)
+0:23 'f' (temp float)
+0:23 'f' (temp float)
+0:24 default:
+0:? Sequence
+0:25 move second child to first child (temp float)
+0:25 'f' (temp float)
+0:25 Constant:
+0:25 3.000000
+0:29 move second child to first child (temp uint)
+0:29 'i' (temp uint)
+0:29 direct index (temp uint)
+0:29 texture (global 4-component vector of uint)
+0:29 'us2D' (uniform usampler2D)
+0:29 Convert int to float (temp 2-component vector of float)
+0:29 'x' (in 2-component vector of int)
+0:29 Constant:
+0:29 3 (const int)
+0:30 inclusive-or (temp uint)
+0:30 left-shift (temp uint)
+0:30 'i' (temp uint)
+0:30 Constant:
+0:30 3 (const uint)
+0:30 Constant:
+0:30 69 (const uint)
+0:33 Sequence
+0:33 move second child to first child (temp 3-component vector of float)
+0:33 'v11' (temp 3-component vector of float)
+0:33 modf (global 3-component vector of float)
+0:33 'modfIn' (temp 3-component vector of float)
+0:33 'modfOut' (temp 3-component vector of float)
+0:34 Sequence
+0:34 move second child to first child (temp float)
+0:34 't' (temp float)
+0:34 trunc (global float)
+0:34 'f' (temp float)
+0:35 Sequence
+0:35 move second child to first child (temp 2-component vector of float)
+0:35 'v12' (temp 2-component vector of float)
+0:35 round (global 2-component vector of float)
+0:35 'v2a' (in 2-component vector of float)
+0:36 Sequence
+0:36 move second child to first child (temp 2-component vector of float)
+0:36 'v13' (temp 2-component vector of float)
+0:36 roundEven (global 2-component vector of float)
+0:36 'v2a' (in 2-component vector of float)
+0:37 Sequence
+0:37 move second child to first child (temp 2-component vector of bool)
+0:37 'b10' (temp 2-component vector of bool)
+0:37 isnan (global 2-component vector of bool)
+0:37 'v2a' (in 2-component vector of float)
+0:38 Sequence
+0:38 move second child to first child (temp 4-component vector of bool)
+0:38 'b11' (temp 4-component vector of bool)
+0:38 isinf (global 4-component vector of bool)
+0:38 'v4' (uniform 4-component vector of float)
+0:40 add (temp 2-component vector of float)
+0:40 hyp. sine (global float)
+0:40 'c1D' (in float)
+0:41 vector-scale (temp 2-component vector of float)
+0:41 hyp. cosine (global float)
+0:41 'c1D' (in float)
+0:41 hyp. tangent (global 2-component vector of float)
+0:41 'c2D' (in 2-component vector of float)
+0:42 add (temp 4-component vector of float)
+0:42 arc hyp. sine (global 4-component vector of float)
+0:42 'c4D' (smooth temp 4-component vector of float)
+0:42 arc hyp. cosine (global 4-component vector of float)
+0:42 'c4D' (smooth temp 4-component vector of float)
+0:43 arc hyp. tangent (global 3-component vector of float)
+0:43 'c3D' (in 3-component vector of float)
+0:45 Sequence
+0:45 move second child to first child (temp int)
+0:45 'id' (temp int)
+0:45 'gl_VertexID' (gl_VertexId int VertexId)
+0:46 move second child to first child (temp float)
+0:46 direct index (smooth temp float ClipDistance)
+0:46 'gl_ClipDistance' (smooth out 2-element array of float ClipDistance)
+0:46 Constant:
+0:46 1 (const int)
+0:46 Constant:
+0:46 0.300000
+0:57 Function Definition: foo88( (global void)
+0:57 Function Parameters:
+0:? Sequence
+0:61 'id' (temp int)
+0:63 'gl_ClipVertex' (gl_ClipVertex 4-component vector of float ClipVertex)
+0:64 'gl_Color' (in 4-component vector of float Color)
+0:65 direct index (temp structure{global 4-component vector of float ambient, global 4-component vector of float diffuse, global 4-component vector of float specular, global 4-component vector of float position, global 4-component vector of float halfVector, global 3-component vector of float spotDirection, global float spotExponent, global float spotCutoff, global float spotCosCutoff, global float constantAttenuation, global float linearAttenuation, global float quadraticAttenuation})
+0:65 'gl_LightSource' (uniform 32-element array of structure{global 4-component vector of float ambient, global 4-component vector of float diffuse, global 4-component vector of float specular, global 4-component vector of float position, global 4-component vector of float halfVector, global 3-component vector of float spotDirection, global float spotExponent, global float spotCutoff, global float spotCosCutoff, global float constantAttenuation, global float linearAttenuation, global float quadraticAttenuation})
+0:65 Constant:
+0:65 0 (const int)
+0:66 far: direct index for structure (global float)
+0:66 'gl_DepthRange' (uniform structure{global float near, global float far, global float diff})
+0:66 Constant:
+0:66 1 (const int)
+0:67 'gl_TexCoord' (smooth out 1-element array of 4-component vector of float TexCoord)
+0:68 'gl_FogFragCoord' (smooth out float FogFragCoord)
+0:69 'gl_FrontColor' (smooth out 4-component vector of float FrontColor)
+0:? Linker Objects
+0:? 'c' (uniform int)
+0:? 'us2D' (uniform usampler2D)
+0:? 'x' (in 2-component vector of int)
+0:? 'v2a' (in 2-component vector of float)
+0:? 'c1D' (in float)
+0:? 'c2D' (in 2-component vector of float)
+0:? 'c3D' (in 3-component vector of float)
+0:? 'c4D' (smooth temp 4-component vector of float)
+0:? 'v4' (uniform 4-component vector of float)
+0:? 'gl_ClipDistance' (smooth out 2-element array of float ClipDistance)
+0:? 'gl_TexCoord' (smooth out 1-element array of 4-component vector of float TexCoord)
+0:? 'abc' (global int)
+0:? 'gl_VertexID' (gl_VertexId int VertexId)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/140.frag.out b/chromium/third_party/glslang/src/Test/baseResults/140.frag.out
new file mode 100644
index 00000000000..fbeee83a764
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/140.frag.out
@@ -0,0 +1,223 @@
+140.frag
+WARNING: 0:3: varying deprecated in version 130; may be removed in future release
+ERROR: 0:17: '#error' : GL_ES is not set
+ERROR: 0:20: 'fragment-shader struct input' : not supported for this version or the enabled extensions
+ERROR: 0:24: 'location' : not supported for this version or the enabled extensions
+ERROR: 0:24: 'location qualifier on input' : not supported for this version or the enabled extensions
+ERROR: 0:26: 'location' : not supported for this version or the enabled extensions
+ERROR: 0:26: 'location qualifier on output' : not supported for this version or the enabled extensions
+ERROR: 0:40: 'assign' : l-value required "v" (can't modify shader input)
+ERROR: 0:40: 'out' : Non-L-value cannot be passed for 'out' or 'inout' parameters.
+ERROR: 8 compilation errors. No code generated.
+
+
+Shader version: 140
+Requested GL_ARB_explicit_attrib_location
+Requested GL_ARB_separate_shader_objects
+ERROR: node is still EOpNull!
+0:10 Function Definition: main( (global void)
+0:10 Function Parameters:
+0:12 Sequence
+0:12 Sequence
+0:12 move second child to first child (temp float)
+0:12 'clip' (temp float)
+0:12 direct index (smooth temp float ClipDistance)
+0:12 'gl_ClipDistance' (smooth in 5-element array of float ClipDistance)
+0:12 Constant:
+0:12 2 (const int)
+0:22 Sequence
+0:22 move second child to first child (temp float)
+0:22 'patch' (global float)
+0:22 Constant:
+0:22 3.100000
+0:38 Function Definition: foo( (global void)
+0:38 Function Parameters:
+0:40 Sequence
+0:40 Sequence
+0:40 move second child to first child (temp 2-component vector of float)
+0:40 'r1' (temp 2-component vector of float)
+0:40 modf (global 2-component vector of float)
+0:40 vector swizzle (temp 2-component vector of float)
+0:40 'v' (smooth in 4-component vector of float)
+0:40 Sequence
+0:40 Constant:
+0:40 0 (const int)
+0:40 Constant:
+0:40 1 (const int)
+0:40 vector swizzle (temp 2-component vector of float)
+0:40 'v' (smooth in 4-component vector of float)
+0:40 Sequence
+0:40 Constant:
+0:40 2 (const int)
+0:40 Constant:
+0:40 3 (const int)
+0:41 Sequence
+0:41 move second child to first child (temp 2-component vector of float)
+0:41 'r2' (temp 2-component vector of float)
+0:41 modf (global 2-component vector of float)
+0:41 vector swizzle (temp 2-component vector of float)
+0:41 'o' (out 4-component vector of float)
+0:41 Sequence
+0:41 Constant:
+0:41 0 (const int)
+0:41 Constant:
+0:41 1 (const int)
+0:41 vector swizzle (temp 2-component vector of float)
+0:41 'o' (out 4-component vector of float)
+0:41 Sequence
+0:41 Constant:
+0:41 2 (const int)
+0:41 Constant:
+0:41 3 (const int)
+0:42 move second child to first child (temp float)
+0:42 direct index (temp float)
+0:42 'o' (out 4-component vector of float)
+0:42 Constant:
+0:42 2 (const int)
+0:42 Function Call: fooi( (global float)
+0:47 Sequence
+0:47 move second child to first child (temp float)
+0:47 'i1' (global float)
+0:47 Test condition and select (temp float)
+0:47 Condition
+0:47 'gl_FrontFacing' (gl_FrontFacing bool Face)
+0:47 true case
+0:47 Constant:
+0:47 -2.000000
+0:47 false case
+0:47 Constant:
+0:47 2.000000
+0:48 Sequence
+0:48 move second child to first child (temp float)
+0:48 'i2' (global float)
+0:48 Constant:
+0:48 102.000000
+0:50 Function Definition: fooi( (global float)
+0:50 Function Parameters:
+0:52 Sequence
+0:52 Branch: Return with expression
+0:52 add (temp float)
+0:52 'i1' (global float)
+0:52 'i2' (global float)
+0:? Linker Objects
+0:? 'v' (smooth in 4-component vector of float)
+0:? 'i' (smooth in 4-component vector of float)
+0:? 'o' (out 4-component vector of float)
+0:? 'gl_ClipDistance' (smooth in 5-element array of float ClipDistance)
+0:? 'gl_ClipDistance' (smooth in 5-element array of float ClipDistance)
+0:? 's' (smooth in structure{global float f})
+0:? 'patch' (global float)
+0:? 'vl' (layout(location=3 ) smooth in 4-component vector of float)
+0:? 'factorBad' (layout(location=3 ) out 4-component vector of float)
+0:? 'factor' (layout(location=5 ) out 4-component vector of float)
+0:? 'vl2' (layout(location=4 ) smooth in 4-component vector of float)
+0:? 'i1' (global float)
+0:? 'i2' (global float)
+
+
+Linked fragment stage:
+
+
+Shader version: 140
+Requested GL_ARB_explicit_attrib_location
+Requested GL_ARB_separate_shader_objects
+ERROR: node is still EOpNull!
+0:10 Function Definition: main( (global void)
+0:10 Function Parameters:
+0:12 Sequence
+0:12 Sequence
+0:12 move second child to first child (temp float)
+0:12 'clip' (temp float)
+0:12 direct index (smooth temp float ClipDistance)
+0:12 'gl_ClipDistance' (smooth in 5-element array of float ClipDistance)
+0:12 Constant:
+0:12 2 (const int)
+0:22 Sequence
+0:22 move second child to first child (temp float)
+0:22 'patch' (global float)
+0:22 Constant:
+0:22 3.100000
+0:38 Function Definition: foo( (global void)
+0:38 Function Parameters:
+0:40 Sequence
+0:40 Sequence
+0:40 move second child to first child (temp 2-component vector of float)
+0:40 'r1' (temp 2-component vector of float)
+0:40 modf (global 2-component vector of float)
+0:40 vector swizzle (temp 2-component vector of float)
+0:40 'v' (smooth in 4-component vector of float)
+0:40 Sequence
+0:40 Constant:
+0:40 0 (const int)
+0:40 Constant:
+0:40 1 (const int)
+0:40 vector swizzle (temp 2-component vector of float)
+0:40 'v' (smooth in 4-component vector of float)
+0:40 Sequence
+0:40 Constant:
+0:40 2 (const int)
+0:40 Constant:
+0:40 3 (const int)
+0:41 Sequence
+0:41 move second child to first child (temp 2-component vector of float)
+0:41 'r2' (temp 2-component vector of float)
+0:41 modf (global 2-component vector of float)
+0:41 vector swizzle (temp 2-component vector of float)
+0:41 'o' (out 4-component vector of float)
+0:41 Sequence
+0:41 Constant:
+0:41 0 (const int)
+0:41 Constant:
+0:41 1 (const int)
+0:41 vector swizzle (temp 2-component vector of float)
+0:41 'o' (out 4-component vector of float)
+0:41 Sequence
+0:41 Constant:
+0:41 2 (const int)
+0:41 Constant:
+0:41 3 (const int)
+0:42 move second child to first child (temp float)
+0:42 direct index (temp float)
+0:42 'o' (out 4-component vector of float)
+0:42 Constant:
+0:42 2 (const int)
+0:42 Function Call: fooi( (global float)
+0:47 Sequence
+0:47 move second child to first child (temp float)
+0:47 'i1' (global float)
+0:47 Test condition and select (temp float)
+0:47 Condition
+0:47 'gl_FrontFacing' (gl_FrontFacing bool Face)
+0:47 true case
+0:47 Constant:
+0:47 -2.000000
+0:47 false case
+0:47 Constant:
+0:47 2.000000
+0:48 Sequence
+0:48 move second child to first child (temp float)
+0:48 'i2' (global float)
+0:48 Constant:
+0:48 102.000000
+0:50 Function Definition: fooi( (global float)
+0:50 Function Parameters:
+0:52 Sequence
+0:52 Branch: Return with expression
+0:52 add (temp float)
+0:52 'i1' (global float)
+0:52 'i2' (global float)
+0:? Linker Objects
+0:? 'v' (smooth in 4-component vector of float)
+0:? 'i' (smooth in 4-component vector of float)
+0:? 'o' (out 4-component vector of float)
+0:? 'gl_ClipDistance' (smooth in 5-element array of float ClipDistance)
+0:? 'gl_ClipDistance' (smooth in 5-element array of float ClipDistance)
+0:? 's' (smooth in structure{global float f})
+0:? 'patch' (global float)
+0:? 'vl' (layout(location=3 ) smooth in 4-component vector of float)
+0:? 'factorBad' (layout(location=3 ) out 4-component vector of float)
+0:? 'factor' (layout(location=5 ) out 4-component vector of float)
+0:? 'vl2' (layout(location=4 ) smooth in 4-component vector of float)
+0:? 'i1' (global float)
+0:? 'i2' (global float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/140.vert.out b/chromium/third_party/glslang/src/Test/baseResults/140.vert.out
new file mode 100644
index 00000000000..634458cd11d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/140.vert.out
@@ -0,0 +1,270 @@
+140.vert
+ERROR: 0:23: 'gl_Position' : identifiers starting with "gl_" are reserved
+ERROR: 0:25: 'location' : not supported for this version or the enabled extensions
+ERROR: 0:25: 'location qualifier on input' : not supported for this version or the enabled extensions
+ERROR: 0:34: 'redeclaration' : cannot change storage, memory, or auxiliary qualification of gl_Position
+ERROR: 0:34: 'redeclaration' : cannot change interpolation qualification of gl_Position
+ERROR: 0:35: 'redeclaration' : cannot change the type of gl_Position
+ERROR: 0:38: 'gl_ClipVertex' : cannot redeclare after use
+ERROR: 0:39: 'gl_FogFragCoord' : cannot redeclare after use
+ERROR: 0:51: 'texelFetch' : no matching overloaded function found
+ERROR: 0:53: 'texture' : no matching overloaded function found
+ERROR: 10 compilation errors. No code generated.
+
+
+Shader version: 140
+Requested GL_ARB_explicit_attrib_location
+Requested GL_ARB_separate_shader_objects
+ERROR: node is still EOpNull!
+0:9 Function Definition: main( (global void)
+0:9 Function Parameters:
+0:11 Sequence
+0:11 Sequence
+0:11 move second child to first child (temp int)
+0:11 'id' (temp int)
+0:11 'gl_InstanceID' (gl_InstanceId int InstanceId)
+0:12 add second child into first child (temp int)
+0:12 'id' (temp int)
+0:12 anonMem: direct index for structure (layout(column_major std140 offset=0 ) uniform int)
+0:12 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 offset=0 ) uniform int anonMem})
+0:12 Constant:
+0:12 0 (const uint)
+0:13 add second child into first child (temp int)
+0:13 'id' (temp int)
+0:13 direct index (temp int)
+0:13 textureFetch (global 4-component vector of int)
+0:13 'sbuf' (uniform isamplerBuffer)
+0:13 Constant:
+0:13 8 (const int)
+0:13 Constant:
+0:13 3 (const int)
+0:14 'gl_ClipVertex' (gl_ClipVertex 4-component vector of float ClipVertex)
+0:15 'gl_Color' (in 4-component vector of float Color)
+0:16 direct index (temp structure{global 4-component vector of float ambient, global 4-component vector of float diffuse, global 4-component vector of float specular, global 4-component vector of float position, global 4-component vector of float halfVector, global 3-component vector of float spotDirection, global float spotExponent, global float spotCutoff, global float spotCosCutoff, global float constantAttenuation, global float linearAttenuation, global float quadraticAttenuation})
+0:16 'gl_LightSource' (uniform 32-element array of structure{global 4-component vector of float ambient, global 4-component vector of float diffuse, global 4-component vector of float specular, global 4-component vector of float position, global 4-component vector of float halfVector, global 3-component vector of float spotDirection, global float spotExponent, global float spotCutoff, global float spotCosCutoff, global float constantAttenuation, global float linearAttenuation, global float quadraticAttenuation})
+0:16 Constant:
+0:16 0 (const int)
+0:17 far: direct index for structure (global float)
+0:17 'gl_DepthRange' (uniform structure{global float near, global float far, global float diff})
+0:17 Constant:
+0:17 1 (const int)
+0:18 'gl_TexCoord' (smooth out implicitly-sized array of 4-component vector of float TexCoord)
+0:19 'gl_FogFragCoord' (smooth out float FogFragCoord)
+0:20 'gl_FrontColor' (smooth out 4-component vector of float FrontColor)
+0:48 Function Definition: foo( (global void)
+0:48 Function Parameters:
+0:50 Sequence
+0:50 Sequence
+0:50 move second child to first child (temp 4-component vector of float)
+0:50 'v' (temp 4-component vector of float)
+0:50 textureFetch (global 4-component vector of float)
+0:50 's2dr' (uniform sampler2DRect)
+0:50 'itloc2' (in 2-component vector of int)
+0:51 add second child into first child (temp 4-component vector of float)
+0:51 'v' (temp 4-component vector of float)
+0:51 Constant:
+0:51 0.000000
+0:52 add second child into first child (temp 4-component vector of float)
+0:52 'v' (temp 4-component vector of float)
+0:52 texture (global 4-component vector of float)
+0:52 's2dr' (uniform sampler2DRect)
+0:52 'tloc2' (in 2-component vector of float)
+0:53 add second child into first child (temp 4-component vector of float)
+0:53 'v' (temp 4-component vector of float)
+0:53 Constant:
+0:53 0.000000
+0:54 add second child into first child (temp 4-component vector of float)
+0:54 'v' (temp 4-component vector of float)
+0:54 texture (global float)
+0:54 's2drs' (uniform sampler2DRectShadow)
+0:54 'tloc3' (in 3-component vector of float)
+0:55 add second child into first child (temp 4-component vector of float)
+0:55 'v' (temp 4-component vector of float)
+0:55 textureProj (global 4-component vector of float)
+0:55 's2dr' (uniform sampler2DRect)
+0:55 'tloc3' (in 3-component vector of float)
+0:56 add second child into first child (temp 4-component vector of float)
+0:56 'v' (temp 4-component vector of float)
+0:56 textureProj (global 4-component vector of float)
+0:56 's2dr' (uniform sampler2DRect)
+0:56 'tloc4' (in 4-component vector of float)
+0:57 add second child into first child (temp 4-component vector of float)
+0:57 'v' (temp 4-component vector of float)
+0:57 textureProjGradOffset (global 4-component vector of float)
+0:57 's2dr' (uniform sampler2DRect)
+0:57 'tloc4' (in 4-component vector of float)
+0:57 Constant:
+0:57 0.000000
+0:57 0.000000
+0:57 Constant:
+0:57 0.000000
+0:57 0.000000
+0:57 Constant:
+0:57 1 (const int)
+0:57 2 (const int)
+0:58 add second child into first child (temp 4-component vector of float)
+0:58 'v' (temp 4-component vector of float)
+0:58 textureProjGradOffset (global float)
+0:58 's2drs' (uniform sampler2DRectShadow)
+0:58 'tloc4' (in 4-component vector of float)
+0:58 Constant:
+0:58 0.000000
+0:58 0.000000
+0:58 Constant:
+0:58 0.000000
+0:58 0.000000
+0:58 Constant:
+0:58 1 (const int)
+0:58 2 (const int)
+0:? Linker Objects
+0:? 'sbuf' (uniform isamplerBuffer)
+0:? 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 offset=0 ) uniform int anonMem})
+0:? 'gl_TexCoord' (smooth out implicitly-sized array of 4-component vector of float TexCoord)
+0:? 'gl_Position' (smooth out 4-component vector of float)
+0:? 'locBad' (layout(location=9 ) in 4-component vector of float)
+0:? 'loc' (layout(location=9 ) in 4-component vector of float)
+0:? 'gl_PointSize' (gl_PointSize float PointSize)
+0:? 'gl_PointSize' (gl_PointSize float PointSize)
+0:? 'gl_ClipVertex' (gl_ClipVertex 4-component vector of float ClipVertex)
+0:? 'gl_ClipVertex' (gl_ClipVertex 4-component vector of float ClipVertex)
+0:? 'gl_FogFragCoord' (smooth out float FogFragCoord)
+0:? 'gl_FogFragCoord' (smooth out float FogFragCoord)
+0:? 's2dr' (uniform sampler2DRect)
+0:? 's2drs' (uniform sampler2DRectShadow)
+0:? 'itloc2' (in 2-component vector of int)
+0:? 'tloc2' (in 2-component vector of float)
+0:? 'tloc3' (in 3-component vector of float)
+0:? 'tloc4' (in 4-component vector of float)
+0:? 'gl_VertexID' (gl_VertexId int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
+
+
+Linked vertex stage:
+
+
+Shader version: 140
+Requested GL_ARB_explicit_attrib_location
+Requested GL_ARB_separate_shader_objects
+ERROR: node is still EOpNull!
+0:9 Function Definition: main( (global void)
+0:9 Function Parameters:
+0:11 Sequence
+0:11 Sequence
+0:11 move second child to first child (temp int)
+0:11 'id' (temp int)
+0:11 'gl_InstanceID' (gl_InstanceId int InstanceId)
+0:12 add second child into first child (temp int)
+0:12 'id' (temp int)
+0:12 anonMem: direct index for structure (layout(column_major std140 offset=0 ) uniform int)
+0:12 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 offset=0 ) uniform int anonMem})
+0:12 Constant:
+0:12 0 (const uint)
+0:13 add second child into first child (temp int)
+0:13 'id' (temp int)
+0:13 direct index (temp int)
+0:13 textureFetch (global 4-component vector of int)
+0:13 'sbuf' (uniform isamplerBuffer)
+0:13 Constant:
+0:13 8 (const int)
+0:13 Constant:
+0:13 3 (const int)
+0:14 'gl_ClipVertex' (gl_ClipVertex 4-component vector of float ClipVertex)
+0:15 'gl_Color' (in 4-component vector of float Color)
+0:16 direct index (temp structure{global 4-component vector of float ambient, global 4-component vector of float diffuse, global 4-component vector of float specular, global 4-component vector of float position, global 4-component vector of float halfVector, global 3-component vector of float spotDirection, global float spotExponent, global float spotCutoff, global float spotCosCutoff, global float constantAttenuation, global float linearAttenuation, global float quadraticAttenuation})
+0:16 'gl_LightSource' (uniform 32-element array of structure{global 4-component vector of float ambient, global 4-component vector of float diffuse, global 4-component vector of float specular, global 4-component vector of float position, global 4-component vector of float halfVector, global 3-component vector of float spotDirection, global float spotExponent, global float spotCutoff, global float spotCosCutoff, global float constantAttenuation, global float linearAttenuation, global float quadraticAttenuation})
+0:16 Constant:
+0:16 0 (const int)
+0:17 far: direct index for structure (global float)
+0:17 'gl_DepthRange' (uniform structure{global float near, global float far, global float diff})
+0:17 Constant:
+0:17 1 (const int)
+0:18 'gl_TexCoord' (smooth out 1-element array of 4-component vector of float TexCoord)
+0:19 'gl_FogFragCoord' (smooth out float FogFragCoord)
+0:20 'gl_FrontColor' (smooth out 4-component vector of float FrontColor)
+0:48 Function Definition: foo( (global void)
+0:48 Function Parameters:
+0:50 Sequence
+0:50 Sequence
+0:50 move second child to first child (temp 4-component vector of float)
+0:50 'v' (temp 4-component vector of float)
+0:50 textureFetch (global 4-component vector of float)
+0:50 's2dr' (uniform sampler2DRect)
+0:50 'itloc2' (in 2-component vector of int)
+0:51 add second child into first child (temp 4-component vector of float)
+0:51 'v' (temp 4-component vector of float)
+0:51 Constant:
+0:51 0.000000
+0:52 add second child into first child (temp 4-component vector of float)
+0:52 'v' (temp 4-component vector of float)
+0:52 texture (global 4-component vector of float)
+0:52 's2dr' (uniform sampler2DRect)
+0:52 'tloc2' (in 2-component vector of float)
+0:53 add second child into first child (temp 4-component vector of float)
+0:53 'v' (temp 4-component vector of float)
+0:53 Constant:
+0:53 0.000000
+0:54 add second child into first child (temp 4-component vector of float)
+0:54 'v' (temp 4-component vector of float)
+0:54 texture (global float)
+0:54 's2drs' (uniform sampler2DRectShadow)
+0:54 'tloc3' (in 3-component vector of float)
+0:55 add second child into first child (temp 4-component vector of float)
+0:55 'v' (temp 4-component vector of float)
+0:55 textureProj (global 4-component vector of float)
+0:55 's2dr' (uniform sampler2DRect)
+0:55 'tloc3' (in 3-component vector of float)
+0:56 add second child into first child (temp 4-component vector of float)
+0:56 'v' (temp 4-component vector of float)
+0:56 textureProj (global 4-component vector of float)
+0:56 's2dr' (uniform sampler2DRect)
+0:56 'tloc4' (in 4-component vector of float)
+0:57 add second child into first child (temp 4-component vector of float)
+0:57 'v' (temp 4-component vector of float)
+0:57 textureProjGradOffset (global 4-component vector of float)
+0:57 's2dr' (uniform sampler2DRect)
+0:57 'tloc4' (in 4-component vector of float)
+0:57 Constant:
+0:57 0.000000
+0:57 0.000000
+0:57 Constant:
+0:57 0.000000
+0:57 0.000000
+0:57 Constant:
+0:57 1 (const int)
+0:57 2 (const int)
+0:58 add second child into first child (temp 4-component vector of float)
+0:58 'v' (temp 4-component vector of float)
+0:58 textureProjGradOffset (global float)
+0:58 's2drs' (uniform sampler2DRectShadow)
+0:58 'tloc4' (in 4-component vector of float)
+0:58 Constant:
+0:58 0.000000
+0:58 0.000000
+0:58 Constant:
+0:58 0.000000
+0:58 0.000000
+0:58 Constant:
+0:58 1 (const int)
+0:58 2 (const int)
+0:? Linker Objects
+0:? 'sbuf' (uniform isamplerBuffer)
+0:? 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 offset=0 ) uniform int anonMem})
+0:? 'gl_TexCoord' (smooth out 1-element array of 4-component vector of float TexCoord)
+0:? 'gl_Position' (smooth out 4-component vector of float)
+0:? 'locBad' (layout(location=9 ) in 4-component vector of float)
+0:? 'loc' (layout(location=9 ) in 4-component vector of float)
+0:? 'gl_PointSize' (gl_PointSize float PointSize)
+0:? 'gl_PointSize' (gl_PointSize float PointSize)
+0:? 'gl_ClipVertex' (gl_ClipVertex 4-component vector of float ClipVertex)
+0:? 'gl_ClipVertex' (gl_ClipVertex 4-component vector of float ClipVertex)
+0:? 'gl_FogFragCoord' (smooth out float FogFragCoord)
+0:? 'gl_FogFragCoord' (smooth out float FogFragCoord)
+0:? 's2dr' (uniform sampler2DRect)
+0:? 's2drs' (uniform sampler2DRectShadow)
+0:? 'itloc2' (in 2-component vector of int)
+0:? 'tloc2' (in 2-component vector of float)
+0:? 'tloc3' (in 3-component vector of float)
+0:? 'tloc4' (in 4-component vector of float)
+0:? 'gl_VertexID' (gl_VertexId int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/150.frag.out b/chromium/third_party/glslang/src/Test/baseResults/150.frag.out
new file mode 100644
index 00000000000..082a8274c00
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/150.frag.out
@@ -0,0 +1,244 @@
+150.frag
+ERROR: 0:4: 'redeclaration' : cannot redeclare with different qualification: gl_FragCoord
+ERROR: 0:5: 'redeclaration' : cannot redeclare with different qualification: gl_FragCoord
+ERROR: 0:6: 'layout qualifier' : can only apply origin_upper_left and pixel_center_origin to gl_FragCoord
+ERROR: 0:14: 'gl_FragCoord' : cannot redeclare after use
+ERROR: 4 compilation errors. No code generated.
+
+
+Shader version: 150
+gl_FragCoord pixel center is integer
+gl_FragCoord origin is upper left
+ERROR: node is still EOpNull!
+0:9 Function Definition: main( (global void)
+0:9 Function Parameters:
+0:11 Sequence
+0:11 Sequence
+0:11 move second child to first child (temp 4-component vector of float)
+0:11 'c' (temp 4-component vector of float)
+0:11 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
+0:18 Sequence
+0:18 move second child to first child (temp float)
+0:18 'patch' (global float)
+0:18 Constant:
+0:18 3.100000
+0:31 Function Definition: barWxyz( (global void)
+0:31 Function Parameters:
+0:33 Sequence
+0:33 Sequence
+0:33 move second child to first child (temp 2-component vector of int)
+0:33 't11' (temp 2-component vector of int)
+0:33 textureSize (global 2-component vector of int)
+0:33 'sms' (uniform sampler2DMS)
+0:34 Sequence
+0:34 move second child to first child (temp 2-component vector of int)
+0:34 't12' (temp 2-component vector of int)
+0:34 textureSize (global 2-component vector of int)
+0:34 'isms' (uniform isampler2DMS)
+0:35 Sequence
+0:35 move second child to first child (temp 2-component vector of int)
+0:35 't13' (temp 2-component vector of int)
+0:35 textureSize (global 2-component vector of int)
+0:35 'usms' (uniform usampler2DMS)
+0:36 Sequence
+0:36 move second child to first child (temp 3-component vector of int)
+0:36 't21' (temp 3-component vector of int)
+0:36 textureSize (global 3-component vector of int)
+0:36 'smsa' (uniform sampler2DMSArray)
+0:37 Sequence
+0:37 move second child to first child (temp 3-component vector of int)
+0:37 't22' (temp 3-component vector of int)
+0:37 textureSize (global 3-component vector of int)
+0:37 'ismsa' (uniform isampler2DMSArray)
+0:38 Sequence
+0:38 move second child to first child (temp 3-component vector of int)
+0:38 't23' (temp 3-component vector of int)
+0:38 textureSize (global 3-component vector of int)
+0:38 'usmsa' (uniform usampler2DMSArray)
+0:39 Sequence
+0:39 move second child to first child (temp 4-component vector of float)
+0:39 't31' (temp 4-component vector of float)
+0:39 textureFetch (global 4-component vector of float)
+0:39 'sms' (uniform sampler2DMS)
+0:39 'p2' (flat in 2-component vector of int)
+0:39 'samp' (flat in int)
+0:40 Sequence
+0:40 move second child to first child (temp 4-component vector of int)
+0:40 't32' (temp 4-component vector of int)
+0:40 textureFetch (global 4-component vector of int)
+0:40 'isms' (uniform isampler2DMS)
+0:40 'p2' (flat in 2-component vector of int)
+0:40 'samp' (flat in int)
+0:41 Sequence
+0:41 move second child to first child (temp 4-component vector of uint)
+0:41 't33' (temp 4-component vector of uint)
+0:41 textureFetch (global 4-component vector of uint)
+0:41 'usms' (uniform usampler2DMS)
+0:41 'p2' (flat in 2-component vector of int)
+0:41 Constant:
+0:41 3 (const int)
+0:42 Sequence
+0:42 move second child to first child (temp 4-component vector of float)
+0:42 't41' (temp 4-component vector of float)
+0:42 textureFetch (global 4-component vector of float)
+0:42 'smsa' (uniform sampler2DMSArray)
+0:42 'p3' (flat in 3-component vector of int)
+0:42 'samp' (flat in int)
+0:43 Sequence
+0:43 move second child to first child (temp 4-component vector of int)
+0:43 't42' (temp 4-component vector of int)
+0:43 textureFetch (global 4-component vector of int)
+0:43 'ismsa' (uniform isampler2DMSArray)
+0:43 Constant:
+0:43 2 (const int)
+0:43 2 (const int)
+0:43 2 (const int)
+0:43 'samp' (flat in int)
+0:44 Sequence
+0:44 move second child to first child (temp 4-component vector of uint)
+0:44 't43' (temp 4-component vector of uint)
+0:44 textureFetch (global 4-component vector of uint)
+0:44 'usmsa' (uniform usampler2DMSArray)
+0:44 'p3' (flat in 3-component vector of int)
+0:44 'samp' (flat in int)
+0:47 Function Definition: primitiveID( (global int)
+0:47 Function Parameters:
+0:49 Sequence
+0:49 Branch: Return with expression
+0:49 'gl_PrimitiveID' (flat in int PrimitiveID)
+0:? Linker Objects
+0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
+0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
+0:? 'foo' (smooth in 4-component vector of float)
+0:? 's' (smooth in structure{global float f})
+0:? 'patch' (global float)
+0:? 'sms' (uniform sampler2DMS)
+0:? 'isms' (uniform isampler2DMS)
+0:? 'usms' (uniform usampler2DMS)
+0:? 'smsa' (uniform sampler2DMSArray)
+0:? 'ismsa' (uniform isampler2DMSArray)
+0:? 'usmsa' (uniform usampler2DMSArray)
+0:? 'p2' (flat in 2-component vector of int)
+0:? 'p3' (flat in 3-component vector of int)
+0:? 'samp' (flat in int)
+
+
+Linked fragment stage:
+
+
+Shader version: 150
+gl_FragCoord pixel center is integer
+gl_FragCoord origin is upper left
+ERROR: node is still EOpNull!
+0:9 Function Definition: main( (global void)
+0:9 Function Parameters:
+0:11 Sequence
+0:11 Sequence
+0:11 move second child to first child (temp 4-component vector of float)
+0:11 'c' (temp 4-component vector of float)
+0:11 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
+0:18 Sequence
+0:18 move second child to first child (temp float)
+0:18 'patch' (global float)
+0:18 Constant:
+0:18 3.100000
+0:31 Function Definition: barWxyz( (global void)
+0:31 Function Parameters:
+0:33 Sequence
+0:33 Sequence
+0:33 move second child to first child (temp 2-component vector of int)
+0:33 't11' (temp 2-component vector of int)
+0:33 textureSize (global 2-component vector of int)
+0:33 'sms' (uniform sampler2DMS)
+0:34 Sequence
+0:34 move second child to first child (temp 2-component vector of int)
+0:34 't12' (temp 2-component vector of int)
+0:34 textureSize (global 2-component vector of int)
+0:34 'isms' (uniform isampler2DMS)
+0:35 Sequence
+0:35 move second child to first child (temp 2-component vector of int)
+0:35 't13' (temp 2-component vector of int)
+0:35 textureSize (global 2-component vector of int)
+0:35 'usms' (uniform usampler2DMS)
+0:36 Sequence
+0:36 move second child to first child (temp 3-component vector of int)
+0:36 't21' (temp 3-component vector of int)
+0:36 textureSize (global 3-component vector of int)
+0:36 'smsa' (uniform sampler2DMSArray)
+0:37 Sequence
+0:37 move second child to first child (temp 3-component vector of int)
+0:37 't22' (temp 3-component vector of int)
+0:37 textureSize (global 3-component vector of int)
+0:37 'ismsa' (uniform isampler2DMSArray)
+0:38 Sequence
+0:38 move second child to first child (temp 3-component vector of int)
+0:38 't23' (temp 3-component vector of int)
+0:38 textureSize (global 3-component vector of int)
+0:38 'usmsa' (uniform usampler2DMSArray)
+0:39 Sequence
+0:39 move second child to first child (temp 4-component vector of float)
+0:39 't31' (temp 4-component vector of float)
+0:39 textureFetch (global 4-component vector of float)
+0:39 'sms' (uniform sampler2DMS)
+0:39 'p2' (flat in 2-component vector of int)
+0:39 'samp' (flat in int)
+0:40 Sequence
+0:40 move second child to first child (temp 4-component vector of int)
+0:40 't32' (temp 4-component vector of int)
+0:40 textureFetch (global 4-component vector of int)
+0:40 'isms' (uniform isampler2DMS)
+0:40 'p2' (flat in 2-component vector of int)
+0:40 'samp' (flat in int)
+0:41 Sequence
+0:41 move second child to first child (temp 4-component vector of uint)
+0:41 't33' (temp 4-component vector of uint)
+0:41 textureFetch (global 4-component vector of uint)
+0:41 'usms' (uniform usampler2DMS)
+0:41 'p2' (flat in 2-component vector of int)
+0:41 Constant:
+0:41 3 (const int)
+0:42 Sequence
+0:42 move second child to first child (temp 4-component vector of float)
+0:42 't41' (temp 4-component vector of float)
+0:42 textureFetch (global 4-component vector of float)
+0:42 'smsa' (uniform sampler2DMSArray)
+0:42 'p3' (flat in 3-component vector of int)
+0:42 'samp' (flat in int)
+0:43 Sequence
+0:43 move second child to first child (temp 4-component vector of int)
+0:43 't42' (temp 4-component vector of int)
+0:43 textureFetch (global 4-component vector of int)
+0:43 'ismsa' (uniform isampler2DMSArray)
+0:43 Constant:
+0:43 2 (const int)
+0:43 2 (const int)
+0:43 2 (const int)
+0:43 'samp' (flat in int)
+0:44 Sequence
+0:44 move second child to first child (temp 4-component vector of uint)
+0:44 't43' (temp 4-component vector of uint)
+0:44 textureFetch (global 4-component vector of uint)
+0:44 'usmsa' (uniform usampler2DMSArray)
+0:44 'p3' (flat in 3-component vector of int)
+0:44 'samp' (flat in int)
+0:47 Function Definition: primitiveID( (global int)
+0:47 Function Parameters:
+0:49 Sequence
+0:49 Branch: Return with expression
+0:49 'gl_PrimitiveID' (flat in int PrimitiveID)
+0:? Linker Objects
+0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
+0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
+0:? 'foo' (smooth in 4-component vector of float)
+0:? 's' (smooth in structure{global float f})
+0:? 'patch' (global float)
+0:? 'sms' (uniform sampler2DMS)
+0:? 'isms' (uniform isampler2DMS)
+0:? 'usms' (uniform usampler2DMS)
+0:? 'smsa' (uniform sampler2DMSArray)
+0:? 'ismsa' (uniform isampler2DMSArray)
+0:? 'usmsa' (uniform usampler2DMSArray)
+0:? 'p2' (flat in 2-component vector of int)
+0:? 'p3' (flat in 3-component vector of int)
+0:? 'samp' (flat in int)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/150.geom.out b/chromium/third_party/glslang/src/Test/baseResults/150.geom.out
new file mode 100644
index 00000000000..48b7925fc4d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/150.geom.out
@@ -0,0 +1,317 @@
+150.geom
+ERROR: 0:15: 'fromVertex' : block instance name redefinition
+ERROR: 0:19: 'fromVertex' : redefinition
+ERROR: 0:21: 'fooC' : block instance name redefinition
+ERROR: 0:29: 'EmitStreamVertex' : no matching overloaded function found
+ERROR: 0:30: 'EndStreamPrimitive' : no matching overloaded function found
+ERROR: 0:44: 'stream' : can only be used on an output
+ERROR: 0:45: 'stream' : can only be used on an output
+ERROR: 0:46: 'stream' : can only be used on an output
+ERROR: 0:47: 'stream' : can only be used on an output
+ERROR: 0:47: 'stream' : can only be used on an output
+ERROR: 0:60: 'stream' : member cannot contradict block
+ERROR: 0:66: 'max_vertices' : too large, must be less than gl_MaxGeometryOutputVertices
+ERROR: 0:66: 'max_vertices' : cannot change previously set layout value
+ERROR: 0:67: 'max_vertices' : can only apply to a standalone qualifier
+ERROR: 0:72: 'points' : cannot change previously set output primitive
+ERROR: 0:73: 'points' : cannot change previously set output primitive
+ERROR: 0:74: 'triangle_strip' : cannot apply to input
+ERROR: 0:75: 'triangle_strip' : cannot apply to: uniform
+ERROR: 0:76: 'triangle_strip' : can only apply to a standalone qualifier
+ERROR: 0:77: 'triangle_strip' : can only apply to a standalone qualifier
+ERROR: 0:78: 'invocations' : not supported for this version or the enabled extensions
+ERROR: 0:78: 'invocations' : can only apply to a standalone qualifier
+ERROR: 0:80: 'invocations' : not supported for this version or the enabled extensions
+ERROR: 0:80: 'invocations' : can only apply to a standalone qualifier
+ERROR: 0:81: 'max_vertices' : can only apply to a standalone qualifier
+ERROR: 0:82: 'triangle_strip' : can only apply to a standalone qualifier
+ERROR: 0:85: 'lines' : cannot apply to 'out'
+ERROR: 0:87: 'triangles' : cannot change previously set input primitive
+ERROR: 0:88: 'triangles_adjacency' : cannot change previously set input primitive
+ERROR: 0:89: 'invocations' : not supported for this version or the enabled extensions
+ERROR: 0:92: 'stream' : member cannot contradict block
+ERROR: 0:92: 'stream' : can only be used on an output
+ERROR: 0:129: 'gl_ViewportIndex' : required extension not requested: GL_ARB_viewport_array
+ERROR: 0:129: 'gl_MaxViewports' : required extension not requested: GL_ARB_viewport_array
+ERROR: 0:139: 'gl_ViewportIndex' : identifiers starting with "gl_" are reserved
+ERROR: 35 compilation errors. No code generated.
+
+
+Shader version: 150
+Requested GL_ARB_viewport_array
+invocations = 4
+max_vertices = 200
+input primitive = lines_adjacency
+output primitive = triangle_strip
+ERROR: node is still EOpNull!
+0:25 Function Definition: main( (global void)
+0:25 Function Parameters:
+0:27 Sequence
+0:27 EmitVertex (global void)
+0:28 EndPrimitive (global void)
+0:29 Constant:
+0:29 0.000000
+0:30 Constant:
+0:30 0.000000
+0:32 move second child to first child (temp 3-component vector of float)
+0:32 color: direct index for structure (layout(stream=0 ) out 3-component vector of float)
+0:32 'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out 3-component vector of float color})
+0:32 Constant:
+0:32 0 (const uint)
+0:32 color: direct index for structure (in 3-component vector of float)
+0:32 direct index (temp block{in 3-component vector of float color})
+0:32 'fromV' (in 4-element array of block{in 3-component vector of float color})
+0:32 Constant:
+0:32 0 (const int)
+0:32 Constant:
+0:32 0 (const int)
+0:33 move second child to first child (temp float)
+0:33 direct index (layout(stream=0 ) temp float ClipDistance)
+0:33 gl_ClipDistance: direct index for structure (layout(stream=0 ) out implicitly-sized array of float ClipDistance)
+0:33 'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, layout(stream=0 ) out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:33 Constant:
+0:33 2 (const uint)
+0:33 Constant:
+0:33 3 (const int)
+0:33 direct index (temp float ClipDistance)
+0:33 gl_ClipDistance: direct index for structure (in implicitly-sized array of float ClipDistance)
+0:33 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:33 'gl_in' (in 4-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:33 Constant:
+0:33 1 (const int)
+0:33 Constant:
+0:33 2 (const int)
+0:33 Constant:
+0:33 2 (const int)
+0:34 move second child to first child (temp 4-component vector of float)
+0:34 gl_Position: direct index for structure (layout(stream=0 ) gl_Position 4-component vector of float Position)
+0:34 'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, layout(stream=0 ) out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:34 Constant:
+0:34 0 (const uint)
+0:34 gl_Position: direct index for structure (in 4-component vector of float Position)
+0:34 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:34 'gl_in' (in 4-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:34 Constant:
+0:34 0 (const int)
+0:34 Constant:
+0:34 0 (const int)
+0:35 move second child to first child (temp float)
+0:35 gl_PointSize: direct index for structure (layout(stream=0 ) gl_PointSize float PointSize)
+0:35 'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, layout(stream=0 ) out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:35 Constant:
+0:35 1 (const uint)
+0:35 gl_PointSize: direct index for structure (in float PointSize)
+0:35 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:35 'gl_in' (in 4-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:35 Constant:
+0:35 3 (const int)
+0:35 Constant:
+0:35 1 (const int)
+0:36 move second child to first child (temp int)
+0:36 'gl_PrimitiveID' (layout(stream=0 ) out int PrimitiveID)
+0:36 'gl_PrimitiveIDIn' (in int PrimitiveID)
+0:37 move second child to first child (temp int)
+0:37 'gl_Layer' (layout(stream=0 ) out int Layer)
+0:37 Constant:
+0:37 2 (const int)
+0:67 Function Definition: foo(i1; (global void)
+0:67 Function Parameters:
+0:67 'a' (in int)
+0:69 Sequence
+0:69 move second child to first child (temp 4-component vector of float)
+0:69 a: direct index for structure (layout(stream=6 ) out 4-component vector of float)
+0:69 'ouuaa6' (layout(stream=6 ) out block{layout(stream=6 ) out 4-component vector of float a})
+0:69 Constant:
+0:69 0 (const int)
+0:69 Constant:
+0:69 1.000000
+0:69 1.000000
+0:69 1.000000
+0:69 1.000000
+0:107 Sequence
+0:107 move second child to first child (temp float)
+0:107 'summ' (global float)
+0:107 Constant:
+0:107 11332.000000
+0:127 Function Definition: fooe1( (global void)
+0:127 Function Parameters:
+0:129 Sequence
+0:129 move second child to first child (temp int)
+0:129 'gl_ViewportIndex' (layout(stream=0 ) out int ViewportIndex)
+0:129 Constant:
+0:129 15 (const int)
+0:134 Function Definition: fooe2( (global void)
+0:134 Function Parameters:
+0:136 Sequence
+0:136 move second child to first child (temp int)
+0:136 'gl_ViewportIndex' (layout(stream=0 ) out int ViewportIndex)
+0:136 Constant:
+0:136 15 (const int)
+0:? Linker Objects
+0:? 'fromV' (in 4-element array of block{in 3-component vector of float color})
+0:? 'toF' (layout(stream=0 ) out block{layout(stream=0 ) out 3-component vector of float color})
+0:? 'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out 3-component vector of float color})
+0:? 'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, layout(stream=0 ) out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:? 'gl_in' (in 4-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:? 'ov0' (layout(stream=0 ) out 4-component vector of float)
+0:? 'ov4' (layout(stream=4 ) out 4-component vector of float)
+0:? 'o1v0' (layout(stream=0 ) out 4-component vector of float)
+0:? 'ua' (layout(stream=3 ) uniform int)
+0:? 'ibb' (layout(stream=3 column_major shared ) uniform block{layout(stream=3 column_major shared ) uniform int ua})
+0:? 'ov3' (layout(stream=3 ) out 4-component vector of float)
+0:? 'ouuaa6' (layout(stream=6 ) out block{layout(stream=6 ) out 4-component vector of float a})
+0:? 'ouua6' (layout(stream=6 ) out block{layout(stream=6 ) out 4-component vector of float a})
+0:? 'ouua7' (layout(stream=7 ) out block{layout(stream=6 ) out 4-component vector of float a})
+0:? 'ov2s3' (layout(stream=3 ) out 4-component vector of float)
+0:? 'badv4' (layout(stream=3 ) out 4-component vector of float)
+0:? 'bad2v4' (in 4-element array of 4-component vector of float)
+0:? 'anon@2' (layout(stream=3 ) out block{layout(stream=3 ) out int a})
+0:? 'outbi' (layout(stream=3 ) out block{layout(stream=3 ) out int a, layout(stream=3 ) out int b, layout(stream=3 ) out int c})
+0:? 'inbi' (in 4-element array of block{layout(stream=2 ) in int a})
+0:? 'insn' (in 4-element array of block{in int a15})
+0:? 'anon@3' (layout(stream=3 ) out block{layout(stream=3 ) out float f15})
+0:? 'anon@4' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform bool b15})
+0:? 'summ' (global float)
+0:? 'gl_ViewportIndex' (layout(stream=3 ) out int)
+
+
+Linked geometry stage:
+
+
+Shader version: 150
+Requested GL_ARB_viewport_array
+invocations = 4
+max_vertices = 200
+input primitive = lines_adjacency
+output primitive = triangle_strip
+ERROR: node is still EOpNull!
+0:25 Function Definition: main( (global void)
+0:25 Function Parameters:
+0:27 Sequence
+0:27 EmitVertex (global void)
+0:28 EndPrimitive (global void)
+0:29 Constant:
+0:29 0.000000
+0:30 Constant:
+0:30 0.000000
+0:32 move second child to first child (temp 3-component vector of float)
+0:32 color: direct index for structure (layout(stream=0 ) out 3-component vector of float)
+0:32 'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out 3-component vector of float color})
+0:32 Constant:
+0:32 0 (const uint)
+0:32 color: direct index for structure (in 3-component vector of float)
+0:32 direct index (temp block{in 3-component vector of float color})
+0:32 'fromV' (in 4-element array of block{in 3-component vector of float color})
+0:32 Constant:
+0:32 0 (const int)
+0:32 Constant:
+0:32 0 (const int)
+0:33 move second child to first child (temp float)
+0:33 direct index (layout(stream=0 ) temp float ClipDistance)
+0:33 gl_ClipDistance: direct index for structure (layout(stream=0 ) out 4-element array of float ClipDistance)
+0:33 'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, layout(stream=0 ) out 4-element array of float ClipDistance gl_ClipDistance})
+0:33 Constant:
+0:33 2 (const uint)
+0:33 Constant:
+0:33 3 (const int)
+0:33 direct index (temp float ClipDistance)
+0:33 gl_ClipDistance: direct index for structure (in 3-element array of float ClipDistance)
+0:33 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:33 'gl_in' (in 4-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:33 Constant:
+0:33 1 (const int)
+0:33 Constant:
+0:33 2 (const int)
+0:33 Constant:
+0:33 2 (const int)
+0:34 move second child to first child (temp 4-component vector of float)
+0:34 gl_Position: direct index for structure (layout(stream=0 ) gl_Position 4-component vector of float Position)
+0:34 'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, layout(stream=0 ) out 4-element array of float ClipDistance gl_ClipDistance})
+0:34 Constant:
+0:34 0 (const uint)
+0:34 gl_Position: direct index for structure (in 4-component vector of float Position)
+0:34 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:34 'gl_in' (in 4-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:34 Constant:
+0:34 0 (const int)
+0:34 Constant:
+0:34 0 (const int)
+0:35 move second child to first child (temp float)
+0:35 gl_PointSize: direct index for structure (layout(stream=0 ) gl_PointSize float PointSize)
+0:35 'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, layout(stream=0 ) out 4-element array of float ClipDistance gl_ClipDistance})
+0:35 Constant:
+0:35 1 (const uint)
+0:35 gl_PointSize: direct index for structure (in float PointSize)
+0:35 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:35 'gl_in' (in 4-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:35 Constant:
+0:35 3 (const int)
+0:35 Constant:
+0:35 1 (const int)
+0:36 move second child to first child (temp int)
+0:36 'gl_PrimitiveID' (layout(stream=0 ) out int PrimitiveID)
+0:36 'gl_PrimitiveIDIn' (in int PrimitiveID)
+0:37 move second child to first child (temp int)
+0:37 'gl_Layer' (layout(stream=0 ) out int Layer)
+0:37 Constant:
+0:37 2 (const int)
+0:67 Function Definition: foo(i1; (global void)
+0:67 Function Parameters:
+0:67 'a' (in int)
+0:69 Sequence
+0:69 move second child to first child (temp 4-component vector of float)
+0:69 a: direct index for structure (layout(stream=6 ) out 4-component vector of float)
+0:69 'ouuaa6' (layout(stream=6 ) out block{layout(stream=6 ) out 4-component vector of float a})
+0:69 Constant:
+0:69 0 (const int)
+0:69 Constant:
+0:69 1.000000
+0:69 1.000000
+0:69 1.000000
+0:69 1.000000
+0:107 Sequence
+0:107 move second child to first child (temp float)
+0:107 'summ' (global float)
+0:107 Constant:
+0:107 11332.000000
+0:127 Function Definition: fooe1( (global void)
+0:127 Function Parameters:
+0:129 Sequence
+0:129 move second child to first child (temp int)
+0:129 'gl_ViewportIndex' (layout(stream=0 ) out int ViewportIndex)
+0:129 Constant:
+0:129 15 (const int)
+0:134 Function Definition: fooe2( (global void)
+0:134 Function Parameters:
+0:136 Sequence
+0:136 move second child to first child (temp int)
+0:136 'gl_ViewportIndex' (layout(stream=0 ) out int ViewportIndex)
+0:136 Constant:
+0:136 15 (const int)
+0:? Linker Objects
+0:? 'fromV' (in 4-element array of block{in 3-component vector of float color})
+0:? 'toF' (layout(stream=0 ) out block{layout(stream=0 ) out 3-component vector of float color})
+0:? 'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out 3-component vector of float color})
+0:? 'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, layout(stream=0 ) out 4-element array of float ClipDistance gl_ClipDistance})
+0:? 'gl_in' (in 4-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:? 'ov0' (layout(stream=0 ) out 4-component vector of float)
+0:? 'ov4' (layout(stream=4 ) out 4-component vector of float)
+0:? 'o1v0' (layout(stream=0 ) out 4-component vector of float)
+0:? 'ua' (layout(stream=3 ) uniform int)
+0:? 'ibb' (layout(stream=3 column_major shared ) uniform block{layout(stream=3 column_major shared ) uniform int ua})
+0:? 'ov3' (layout(stream=3 ) out 4-component vector of float)
+0:? 'ouuaa6' (layout(stream=6 ) out block{layout(stream=6 ) out 4-component vector of float a})
+0:? 'ouua6' (layout(stream=6 ) out block{layout(stream=6 ) out 4-component vector of float a})
+0:? 'ouua7' (layout(stream=7 ) out block{layout(stream=6 ) out 4-component vector of float a})
+0:? 'ov2s3' (layout(stream=3 ) out 4-component vector of float)
+0:? 'badv4' (layout(stream=3 ) out 4-component vector of float)
+0:? 'bad2v4' (in 4-element array of 4-component vector of float)
+0:? 'anon@2' (layout(stream=3 ) out block{layout(stream=3 ) out int a})
+0:? 'outbi' (layout(stream=3 ) out block{layout(stream=3 ) out int a, layout(stream=3 ) out int b, layout(stream=3 ) out int c})
+0:? 'inbi' (in 4-element array of block{layout(stream=2 ) in int a})
+0:? 'insn' (in 4-element array of block{in int a15})
+0:? 'anon@3' (layout(stream=3 ) out block{layout(stream=3 ) out float f15})
+0:? 'anon@4' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform bool b15})
+0:? 'summ' (global float)
+0:? 'gl_ViewportIndex' (layout(stream=3 ) out int)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/150.tesc.out b/chromium/third_party/glslang/src/Test/baseResults/150.tesc.out
new file mode 100644
index 00000000000..78020e1254a
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/150.tesc.out
@@ -0,0 +1,1659 @@
+150.tesc
+Shader version: 150
+Requested GL_ARB_tessellation_shader
+vertices = 4
+0:? Sequence
+0:10 Function Definition: main( (global void)
+0:10 Function Parameters:
+0:12 Sequence
+0:12 Barrier (global void)
+0:14 Sequence
+0:14 move second child to first child (temp int)
+0:14 'a' (temp int)
+0:14 Constant:
+0:14 5392 (const int)
+0:20 Sequence
+0:20 move second child to first child (temp 4-component vector of float)
+0:20 'p' (temp 4-component vector of float)
+0:20 gl_Position: direct index for structure (in 4-component vector of float Position)
+0:20 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:20 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:20 Constant:
+0:20 1 (const int)
+0:20 Constant:
+0:20 0 (const int)
+0:21 Sequence
+0:21 move second child to first child (temp float)
+0:21 'ps' (temp float)
+0:21 gl_PointSize: direct index for structure (in float PointSize)
+0:21 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:21 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:21 Constant:
+0:21 1 (const int)
+0:21 Constant:
+0:21 1 (const int)
+0:22 Sequence
+0:22 move second child to first child (temp float)
+0:22 'cd' (temp float)
+0:22 direct index (temp float ClipDistance)
+0:22 gl_ClipDistance: direct index for structure (in implicitly-sized array of float ClipDistance)
+0:22 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:22 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:22 Constant:
+0:22 1 (const int)
+0:22 Constant:
+0:22 2 (const int)
+0:22 Constant:
+0:22 2 (const int)
+0:24 Sequence
+0:24 move second child to first child (temp int)
+0:24 'pvi' (temp int)
+0:24 'gl_PatchVerticesIn' (in int PatchVertices)
+0:25 Sequence
+0:25 move second child to first child (temp int)
+0:25 'pid' (temp int)
+0:25 'gl_PrimitiveID' (in int PrimitiveID)
+0:26 Sequence
+0:26 move second child to first child (temp int)
+0:26 'iid' (temp int)
+0:26 'gl_InvocationID' (in int InvocationID)
+0:28 move second child to first child (temp 4-component vector of float)
+0:28 gl_Position: direct index for structure (out 4-component vector of float Position)
+0:28 indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:28 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:28 'gl_InvocationID' (in int InvocationID)
+0:28 Constant:
+0:28 0 (const int)
+0:28 'p' (temp 4-component vector of float)
+0:29 move second child to first child (temp float)
+0:29 gl_PointSize: direct index for structure (out float PointSize)
+0:29 indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:29 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:29 'gl_InvocationID' (in int InvocationID)
+0:29 Constant:
+0:29 1 (const int)
+0:29 'ps' (temp float)
+0:30 move second child to first child (temp float)
+0:30 direct index (temp float ClipDistance)
+0:30 gl_ClipDistance: direct index for structure (out implicitly-sized array of float ClipDistance)
+0:30 indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:30 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:30 'gl_InvocationID' (in int InvocationID)
+0:30 Constant:
+0:30 2 (const int)
+0:30 Constant:
+0:30 1 (const int)
+0:30 'cd' (temp float)
+0:32 move second child to first child (temp float)
+0:32 direct index (patch temp float TessLevelOuter)
+0:32 'gl_TessLevelOuter' (patch out 4-element array of float TessLevelOuter)
+0:32 Constant:
+0:32 3 (const int)
+0:32 Constant:
+0:32 3.200000
+0:33 move second child to first child (temp float)
+0:33 direct index (patch temp float TessLevelInner)
+0:33 'gl_TessLevelInner' (patch out 2-element array of float TessLevelInner)
+0:33 Constant:
+0:33 1 (const int)
+0:33 Constant:
+0:33 1.300000
+0:? Linker Objects
+0:? 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:? 'outa' (global 4-element array of int)
+0:? 'patchOut' (patch out 4-component vector of float)
+
+150.tese
+ERROR: 0:12: 'barrier' : no matching overloaded function found
+ERROR: 1 compilation errors. No code generated.
+
+
+Shader version: 150
+Requested GL_ARB_tessellation_shader
+input primitive = quads
+vertex spacing = fractional_odd_spacing
+triangle order = cw
+using point mode
+ERROR: node is still EOpNull!
+0:10 Function Definition: main( (global void)
+0:10 Function Parameters:
+0:12 Sequence
+0:12 Constant:
+0:12 0.000000
+0:14 Sequence
+0:14 move second child to first child (temp int)
+0:14 'a' (temp int)
+0:14 Constant:
+0:14 1512 (const int)
+0:22 Sequence
+0:22 move second child to first child (temp 4-component vector of float)
+0:22 'p' (temp 4-component vector of float)
+0:22 gl_Position: direct index for structure (in 4-component vector of float Position)
+0:22 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:22 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:22 Constant:
+0:22 1 (const int)
+0:22 Constant:
+0:22 0 (const int)
+0:23 Sequence
+0:23 move second child to first child (temp float)
+0:23 'ps' (temp float)
+0:23 gl_PointSize: direct index for structure (in float PointSize)
+0:23 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:23 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:23 Constant:
+0:23 1 (const int)
+0:23 Constant:
+0:23 1 (const int)
+0:24 Sequence
+0:24 move second child to first child (temp float)
+0:24 'cd' (temp float)
+0:24 direct index (temp float ClipDistance)
+0:24 gl_ClipDistance: direct index for structure (in implicitly-sized array of float ClipDistance)
+0:24 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:24 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:24 Constant:
+0:24 1 (const int)
+0:24 Constant:
+0:24 2 (const int)
+0:24 Constant:
+0:24 2 (const int)
+0:26 Sequence
+0:26 move second child to first child (temp int)
+0:26 'pvi' (temp int)
+0:26 'gl_PatchVerticesIn' (in int PatchVertices)
+0:27 Sequence
+0:27 move second child to first child (temp int)
+0:27 'pid' (temp int)
+0:27 'gl_PrimitiveID' (in int PrimitiveID)
+0:28 Sequence
+0:28 move second child to first child (temp 3-component vector of float)
+0:28 'tc' (temp 3-component vector of float)
+0:28 'gl_TessCoord' (in 3-component vector of float TessCoord)
+0:29 Sequence
+0:29 move second child to first child (temp float)
+0:29 'tlo' (temp float)
+0:29 direct index (patch temp float TessLevelOuter)
+0:29 'gl_TessLevelOuter' (patch in 4-element array of float TessLevelOuter)
+0:29 Constant:
+0:29 3 (const int)
+0:30 Sequence
+0:30 move second child to first child (temp float)
+0:30 'tli' (temp float)
+0:30 direct index (patch temp float TessLevelInner)
+0:30 'gl_TessLevelInner' (patch in 2-element array of float TessLevelInner)
+0:30 Constant:
+0:30 1 (const int)
+0:32 move second child to first child (temp 4-component vector of float)
+0:32 gl_Position: direct index for structure (gl_Position 4-component vector of float Position)
+0:32 'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:32 Constant:
+0:32 0 (const uint)
+0:32 'p' (temp 4-component vector of float)
+0:33 move second child to first child (temp float)
+0:33 gl_PointSize: direct index for structure (gl_PointSize float PointSize)
+0:33 'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:33 Constant:
+0:33 1 (const uint)
+0:33 'ps' (temp float)
+0:34 move second child to first child (temp float)
+0:34 direct index (temp float ClipDistance)
+0:34 gl_ClipDistance: direct index for structure (out implicitly-sized array of float ClipDistance)
+0:34 'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:34 Constant:
+0:34 2 (const uint)
+0:34 Constant:
+0:34 2 (const int)
+0:34 'cd' (temp float)
+0:? Linker Objects
+0:? 'patchIn' (patch in 4-component vector of float)
+0:? 'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+
+400.tesc
+Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:6: 'quads' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)
+ERROR: 0:7: 'ccw' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)
+ERROR: 0:8: 'fractional_even_spacing' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)
+ERROR: 0:10: 'patch' : can only use on output in tessellation-control shader
+ERROR: 0:39: '' : tessellation control barrier() cannot be placed within flow control
+ERROR: 0:41: '' : tessellation control barrier() cannot be placed within flow control
+ERROR: 0:46: '' : tessellation control barrier() cannot be placed within flow control
+ERROR: 0:51: '' : tessellation control barrier() cannot be placed within flow control
+ERROR: 0:54: '' : tessellation control barrier() cannot be placed within flow control
+ERROR: 0:61: '' : tessellation control barrier() cannot be placed after a return from main()
+ERROR: 0:64: 'vertices' : can only apply to 'out'
+ERROR: 0:65: 'vertices' : cannot change previously set layout value
+ERROR: 0:69: '[' : array index out of range '4'
+ERROR: 0:71: '' : tessellation control barrier() must be in main()
+ERROR: 0:74: 'in' : type must be an array: ina
+ERROR: 0:76: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized
+ERROR: 0:83: 'location' : overlapping use of location 4
+ERROR: 0:87: 'location' : overlapping use of location 4
+ERROR: 0:104: '' : precise qualifier must appear first
+ERROR: 0:105: '' : precise qualifier must appear first
+ERROR: 0:105: '' : precise qualifier must appear first
+ERROR: 21 compilation errors. No code generated.
+
+
+Shader version: 400
+Requested GL_ARB_separate_shader_objects
+vertices = 4
+ERROR: node is still EOpNull!
+0:13 Function Definition: main( (global void)
+0:13 Function Parameters:
+0:15 Sequence
+0:15 Barrier (global void)
+0:17 Sequence
+0:17 move second child to first child (temp int)
+0:17 'a' (temp int)
+0:17 Constant:
+0:17 5392 (const int)
+0:23 Sequence
+0:23 move second child to first child (temp 4-component vector of float)
+0:23 'p' (temp 4-component vector of float)
+0:23 gl_Position: direct index for structure (in 4-component vector of float Position)
+0:23 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:23 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:23 Constant:
+0:23 1 (const int)
+0:23 Constant:
+0:23 0 (const int)
+0:24 Sequence
+0:24 move second child to first child (temp float)
+0:24 'ps' (temp float)
+0:24 gl_PointSize: direct index for structure (in float PointSize)
+0:24 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:24 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:24 Constant:
+0:24 1 (const int)
+0:24 Constant:
+0:24 1 (const int)
+0:25 Sequence
+0:25 move second child to first child (temp float)
+0:25 'cd' (temp float)
+0:25 direct index (temp float ClipDistance)
+0:25 gl_ClipDistance: direct index for structure (in implicitly-sized array of float ClipDistance)
+0:25 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:25 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:25 Constant:
+0:25 1 (const int)
+0:25 Constant:
+0:25 2 (const int)
+0:25 Constant:
+0:25 2 (const int)
+0:27 Sequence
+0:27 move second child to first child (temp int)
+0:27 'pvi' (temp int)
+0:27 'gl_PatchVerticesIn' (in int PatchVertices)
+0:28 Sequence
+0:28 move second child to first child (temp int)
+0:28 'pid' (temp int)
+0:28 'gl_PrimitiveID' (in int PrimitiveID)
+0:29 Sequence
+0:29 move second child to first child (temp int)
+0:29 'iid' (temp int)
+0:29 'gl_InvocationID' (in int InvocationID)
+0:31 move second child to first child (temp 4-component vector of float)
+0:31 gl_Position: direct index for structure (out 4-component vector of float Position)
+0:31 indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:31 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:31 'gl_InvocationID' (in int InvocationID)
+0:31 Constant:
+0:31 0 (const int)
+0:31 'p' (temp 4-component vector of float)
+0:32 move second child to first child (temp float)
+0:32 gl_PointSize: direct index for structure (out float PointSize)
+0:32 indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:32 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:32 'gl_InvocationID' (in int InvocationID)
+0:32 Constant:
+0:32 1 (const int)
+0:32 'ps' (temp float)
+0:33 move second child to first child (temp float)
+0:33 direct index (temp float ClipDistance)
+0:33 gl_ClipDistance: direct index for structure (out implicitly-sized array of float ClipDistance)
+0:33 indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:33 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:33 'gl_InvocationID' (in int InvocationID)
+0:33 Constant:
+0:33 2 (const int)
+0:33 Constant:
+0:33 1 (const int)
+0:33 'cd' (temp float)
+0:35 move second child to first child (temp float)
+0:35 direct index (patch temp float TessLevelOuter)
+0:35 'gl_TessLevelOuter' (patch out 4-element array of float TessLevelOuter)
+0:35 Constant:
+0:35 3 (const int)
+0:35 Constant:
+0:35 3.200000
+0:36 move second child to first child (temp float)
+0:36 direct index (patch temp float TessLevelInner)
+0:36 'gl_TessLevelInner' (patch out 2-element array of float TessLevelInner)
+0:36 Constant:
+0:36 1 (const int)
+0:36 Constant:
+0:36 1.300000
+0:38 Test condition and select (temp void)
+0:38 Condition
+0:38 Compare Greater Than (temp bool)
+0:38 'a' (temp int)
+0:38 Constant:
+0:38 10 (const int)
+0:38 true case
+0:39 Barrier (global void)
+0:38 false case
+0:41 Barrier (global void)
+0:43 Barrier (global void)
+0:47 Loop with condition not tested first
+0:47 Loop Condition
+0:47 Compare Greater Than (temp bool)
+0:47 'a' (temp int)
+0:47 Constant:
+0:47 10 (const int)
+0:47 Loop Body
+0:46 Sequence
+0:46 Barrier (global void)
+0:49 switch
+0:49 condition
+0:49 'a' (temp int)
+0:49 body
+0:49 Sequence
+0:50 default:
+0:? Sequence
+0:51 Barrier (global void)
+0:52 Branch: Break
+0:54 Test condition and select (temp int)
+0:54 Condition
+0:54 Compare Less Than (temp bool)
+0:54 'a' (temp int)
+0:54 Constant:
+0:54 12 (const int)
+0:54 true case
+0:54 'a' (temp int)
+0:54 false case
+0:54 Comma (temp int)
+0:54 Barrier (global void)
+0:54 'a' (temp int)
+0:56 Sequence
+0:56 Barrier (global void)
+0:59 Branch: Return
+0:61 Barrier (global void)
+0:67 Function Definition: foo( (global void)
+0:67 Function Parameters:
+0:69 Sequence
+0:69 gl_PointSize: direct index for structure (out float PointSize)
+0:69 direct index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:69 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:69 Constant:
+0:69 4 (const int)
+0:69 Constant:
+0:69 1 (const int)
+0:71 Barrier (global void)
+0:91 Function Definition: foop( (global void)
+0:91 Function Parameters:
+0:? Sequence
+0:95 multiply second child into first child (temp 3-component vector of float)
+0:95 'pv3' (noContraction temp 3-component vector of float)
+0:95 'pv3' (noContraction temp 3-component vector of float)
+0:96 move second child to first child (temp 3-component vector of float)
+0:96 'pv3' (noContraction temp 3-component vector of float)
+0:96 fma (global 3-component vector of float)
+0:96 'pv3' (noContraction temp 3-component vector of float)
+0:96 'pv3' (noContraction temp 3-component vector of float)
+0:96 'pv3' (noContraction temp 3-component vector of float)
+0:97 move second child to first child (temp double)
+0:97 'd' (noContraction temp double)
+0:97 fma (global double)
+0:97 'd' (noContraction temp double)
+0:97 'd' (noContraction temp double)
+0:97 'd' (noContraction temp double)
+0:? Linker Objects
+0:? 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:? 'outa' (global 4-element array of int)
+0:? 'patchIn' (patch in 4-component vector of float)
+0:? 'patchOut' (patch out 4-component vector of float)
+0:? 'ina' (in 2-component vector of float)
+0:? 'inb' (in 32-element array of 2-component vector of float)
+0:? 'inc' (in 32-element array of 2-component vector of float)
+0:? 'ind' (in 32-element array of 2-component vector of float)
+0:? 'ivla' (layout(location=3 ) in 32-element array of 4-component vector of float)
+0:? 'ivlb' (layout(location=4 ) in 32-element array of 4-component vector of float)
+0:? 'ivlc' (layout(location=4 ) in 32-element array of 4-component vector of float)
+0:? 'ovla' (layout(location=3 ) out 4-element array of 4-component vector of float)
+0:? 'ovlb' (layout(location=4 ) out 4-element array of 4-component vector of float)
+0:? 'ovlc' (layout(location=4 ) out 4-element array of 4-component vector of float)
+0:? 'pv3' (noContraction temp 3-component vector of float)
+0:? 'pinbi' (patch out block{out int a})
+0:? 'badOrder' (invariant noContraction out 4-element array of 4-component vector of float)
+
+400.tese
+Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:3: 'vertices' : there is no such layout identifier for this stage taking an assigned value
+ERROR: 0:5: 'triangles' : cannot change previously set input primitive
+ERROR: 0:6: 'isolines' : cannot change previously set input primitive
+ERROR: 0:8: 'ccw' : cannot change previously set vertex order
+ERROR: 0:12: 'equal_spacing' : cannot change previously set vertex spacing
+ERROR: 0:13: 'fractional_even_spacing' : cannot change previously set vertex spacing
+ERROR: 0:18: 'patch' : can only use on input in tessellation-evaluation shader
+ERROR: 0:22: 'barrier' : no matching overloaded function found
+ERROR: 0:47: 'patch' : cannot use interpolation qualifiers with patch
+ERROR: 0:48: 'patch' : cannot use interpolation qualifiers with patch
+ERROR: 0:49: 'patch' : cannot use interpolation qualifiers with patch
+ERROR: 0:50: '' : can only have one auxiliary qualifier (centroid, patch, and sample)
+ERROR: 0:54: 'gl_PerVertex' : block already declared with size, can't redeclare as implicitly-sized
+ERROR: 0:59: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use
+ERROR: 0:64: 'quads' : cannot apply to 'out'
+ERROR: 0:64: 'cw' : can only apply to 'in'
+ERROR: 0:65: 'triangles' : cannot apply to 'out'
+ERROR: 0:66: 'isolines' : cannot apply to 'out'
+ERROR: 0:67: 'cw' : can only apply to 'in'
+ERROR: 0:68: 'fractional_odd_spacing' : can only apply to 'in'
+ERROR: 0:69: 'equal_spacing' : can only apply to 'in'
+ERROR: 0:70: 'fractional_even_spacing' : can only apply to 'in'
+ERROR: 0:71: 'point_mode' : can only apply to 'in'
+ERROR: 0:73: 'in' : type must be an array: ina
+ERROR: 0:75: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized
+ERROR: 0:78: 'in' : type must be an array: bla
+ERROR: 0:86: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized
+ERROR: 0:96: 'location' : overlapping use of location 24
+ERROR: 0:99: 'location' : overlapping use of location 24
+ERROR: 0:101: 'gl_TessLevelOuter' : identifiers starting with "gl_" are reserved
+ERROR: 30 compilation errors. No code generated.
+
+
+Shader version: 400
+Requested GL_ARB_separate_shader_objects
+input primitive = quads
+vertex spacing = fractional_odd_spacing
+triangle order = cw
+using point mode
+ERROR: node is still EOpNull!
+0:20 Function Definition: main( (global void)
+0:20 Function Parameters:
+0:22 Sequence
+0:22 Constant:
+0:22 0.000000
+0:24 Sequence
+0:24 move second child to first child (temp int)
+0:24 'a' (temp int)
+0:24 Constant:
+0:24 1512 (const int)
+0:32 Sequence
+0:32 move second child to first child (temp 4-component vector of float)
+0:32 'p' (temp 4-component vector of float)
+0:32 gl_Position: direct index for structure (in 4-component vector of float Position)
+0:32 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:32 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:32 Constant:
+0:32 1 (const int)
+0:32 Constant:
+0:32 0 (const int)
+0:33 Sequence
+0:33 move second child to first child (temp float)
+0:33 'ps' (temp float)
+0:33 gl_PointSize: direct index for structure (in float PointSize)
+0:33 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:33 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:33 Constant:
+0:33 1 (const int)
+0:33 Constant:
+0:33 1 (const int)
+0:34 Sequence
+0:34 move second child to first child (temp float)
+0:34 'cd' (temp float)
+0:34 direct index (temp float ClipDistance)
+0:34 gl_ClipDistance: direct index for structure (in implicitly-sized array of float ClipDistance)
+0:34 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:34 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:34 Constant:
+0:34 1 (const int)
+0:34 Constant:
+0:34 2 (const int)
+0:34 Constant:
+0:34 2 (const int)
+0:36 Sequence
+0:36 move second child to first child (temp int)
+0:36 'pvi' (temp int)
+0:36 'gl_PatchVerticesIn' (in int PatchVertices)
+0:37 Sequence
+0:37 move second child to first child (temp int)
+0:37 'pid' (temp int)
+0:37 'gl_PrimitiveID' (in int PrimitiveID)
+0:38 Sequence
+0:38 move second child to first child (temp 3-component vector of float)
+0:38 'tc' (temp 3-component vector of float)
+0:38 'gl_TessCoord' (in 3-component vector of float TessCoord)
+0:39 Sequence
+0:39 move second child to first child (temp float)
+0:39 'tlo' (temp float)
+0:39 direct index (patch temp float TessLevelOuter)
+0:39 'gl_TessLevelOuter' (patch in 4-element array of float TessLevelOuter)
+0:39 Constant:
+0:39 3 (const int)
+0:40 Sequence
+0:40 move second child to first child (temp float)
+0:40 'tli' (temp float)
+0:40 direct index (patch temp float TessLevelInner)
+0:40 'gl_TessLevelInner' (patch in 2-element array of float TessLevelInner)
+0:40 Constant:
+0:40 1 (const int)
+0:42 move second child to first child (temp 4-component vector of float)
+0:42 gl_Position: direct index for structure (gl_Position 4-component vector of float Position)
+0:42 'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:42 Constant:
+0:42 0 (const uint)
+0:42 'p' (temp 4-component vector of float)
+0:43 move second child to first child (temp float)
+0:43 gl_PointSize: direct index for structure (gl_PointSize float PointSize)
+0:43 'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:43 Constant:
+0:43 1 (const uint)
+0:43 'ps' (temp float)
+0:44 move second child to first child (temp float)
+0:44 direct index (temp float ClipDistance)
+0:44 gl_ClipDistance: direct index for structure (out implicitly-sized array of float ClipDistance)
+0:44 'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:44 Constant:
+0:44 2 (const uint)
+0:44 Constant:
+0:44 2 (const int)
+0:44 'cd' (temp float)
+0:? Linker Objects
+0:? 'patchIn' (patch in 4-component vector of float)
+0:? 'patchOut' (patch out 4-component vector of float)
+0:? 'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:? 'badp1' (smooth patch in 4-component vector of float)
+0:? 'badp2' (flat patch in 4-component vector of float)
+0:? 'badp3' (noperspective patch in 4-component vector of float)
+0:? 'badp4' (patch sample in 3-component vector of float)
+0:? 'gl_in' (in 32-element array of block{in 1-element array of float ClipDistance gl_ClipDistance})
+0:? 'ina' (in 2-component vector of float)
+0:? 'inb' (in 32-element array of 2-component vector of float)
+0:? 'inc' (in 32-element array of 2-component vector of float)
+0:? 'ind' (in 32-element array of 2-component vector of float)
+0:? 'bla' (in block{in int f})
+0:? 'blb' (in 32-element array of block{in int f})
+0:? 'blc' (in 32-element array of block{in int f})
+0:? 'bld' (in 32-element array of block{in int f})
+0:? 'ivla' (layout(location=23 ) in 32-element array of 4-component vector of float)
+0:? 'ivlb' (layout(location=24 ) in 32-element array of 4-component vector of float)
+0:? 'ivlc' (layout(location=24 ) in 32-element array of 4-component vector of float)
+0:? 'ovla' (layout(location=23 ) out 2-element array of 4-component vector of float)
+0:? 'ovlb' (layout(location=24 ) out 2-element array of 4-component vector of float)
+0:? 'pinbi' (patch in block{in int a})
+
+410.tesc
+Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:4: 'length' : array must first be sized by a redeclaration or layout qualifier
+ERROR: 1 compilation errors. No code generated.
+
+
+Shader version: 400
+vertices = -1
+ERROR: node is still EOpNull!
+0:8 Function Definition: main( (global void)
+0:8 Function Parameters:
+0:? Linker Objects
+0:? 'gl_out' (out implicitly-sized array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:? 'outa' (global 1-element array of int)
+0:? 'patchOut' (patch out 4-component vector of float)
+
+420.tesc
+Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:7: 'vertices' : inconsistent output number of vertices for array size of gl_out
+ERROR: 0:11: 'vertices' : inconsistent output number of vertices for array size of a
+ERROR: 0:12: 'vertices' : inconsistent output number of vertices for array size of outb
+ERROR: 0:26: 'gl_PointSize' : no such field in structure
+ERROR: 0:26: 'assign' : cannot convert from 'temp float' to 'temp block{out 4-component vector of float Position gl_Position}'
+ERROR: 0:29: 'out' : type must be an array: outf
+ERROR: 0:43: 'vertices' : must be greater than 0
+ERROR: 7 compilation errors. No code generated.
+
+
+Shader version: 420
+Requested GL_ARB_separate_shader_objects
+vertices = 4
+ERROR: node is still EOpNull!
+0:15 Function Definition: main( (global void)
+0:15 Function Parameters:
+0:17 Sequence
+0:17 Sequence
+0:17 move second child to first child (temp 4-component vector of float)
+0:17 'p' (temp 4-component vector of float)
+0:17 gl_Position: direct index for structure (in 4-component vector of float Position)
+0:17 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:17 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:17 Constant:
+0:17 1 (const int)
+0:17 Constant:
+0:17 0 (const int)
+0:18 Sequence
+0:18 move second child to first child (temp float)
+0:18 'ps' (temp float)
+0:18 gl_PointSize: direct index for structure (in float PointSize)
+0:18 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:18 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:18 Constant:
+0:18 1 (const int)
+0:18 Constant:
+0:18 1 (const int)
+0:19 Sequence
+0:19 move second child to first child (temp float)
+0:19 'cd' (temp float)
+0:19 direct index (temp float ClipDistance)
+0:19 gl_ClipDistance: direct index for structure (in implicitly-sized array of float ClipDistance)
+0:19 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:19 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:19 Constant:
+0:19 1 (const int)
+0:19 Constant:
+0:19 2 (const int)
+0:19 Constant:
+0:19 2 (const int)
+0:21 Sequence
+0:21 move second child to first child (temp int)
+0:21 'pvi' (temp int)
+0:21 'gl_PatchVerticesIn' (in int PatchVertices)
+0:22 Sequence
+0:22 move second child to first child (temp int)
+0:22 'pid' (temp int)
+0:22 'gl_PrimitiveID' (in int PrimitiveID)
+0:23 Sequence
+0:23 move second child to first child (temp int)
+0:23 'iid' (temp int)
+0:23 'gl_InvocationID' (in int InvocationID)
+0:25 move second child to first child (temp 4-component vector of float)
+0:25 gl_Position: direct index for structure (out 4-component vector of float Position)
+0:25 indirect index (temp block{out 4-component vector of float Position gl_Position})
+0:25 'gl_out' (out 3-element array of block{out 4-component vector of float Position gl_Position})
+0:25 'gl_InvocationID' (in int InvocationID)
+0:25 Constant:
+0:25 0 (const int)
+0:25 'p' (temp 4-component vector of float)
+0:26 indirect index (temp block{out 4-component vector of float Position gl_Position})
+0:26 'gl_out' (out 3-element array of block{out 4-component vector of float Position gl_Position})
+0:26 'gl_InvocationID' (in int InvocationID)
+0:34 Function Definition: foo( (global void)
+0:34 Function Parameters:
+0:36 Sequence
+0:36 Test condition and select (temp void)
+0:36 Condition
+0:36 logical-or (temp bool)
+0:36 Compare Not Equal (temp bool)
+0:36 Constant:
+0:36 -0.625000
+0:36 -0.500000
+0:36 -0.375000
+0:36 -0.250000
+0:36 -0.375000
+0:36 -0.250000
+0:36 -0.125000
+0:36 0.000000
+0:36 direct index (layout(location=0 ) temp 2X4 matrix of double)
+0:36 'vs_tcs_first' (layout(location=0 ) in 32-element array of 2X4 matrix of double)
+0:36 Constant:
+0:36 0 (const int)
+0:37 Compare Not Equal (temp bool)
+0:37 Constant:
+0:37 0.375000
+0:37 0.500000
+0:37 0.625000
+0:37 0.750000
+0:37 0.625000
+0:37 0.750000
+0:37 0.875000
+0:37 -0.625000
+0:37 direct index (layout(location=12 ) temp 2X4 matrix of double)
+0:37 'vs_tcs_last' (layout(location=12 ) in 32-element array of 2X4 matrix of double)
+0:37 Constant:
+0:37 0 (const int)
+0:36 true case is null
+0:? Linker Objects
+0:? 'gl_out' (out 3-element array of block{out 4-component vector of float Position gl_Position})
+0:? 'a' (out 3-element array of int)
+0:? 'outb' (out 5-element array of int)
+0:? 'outc' (out 4-element array of int)
+0:? 'outf' (out float)
+0:? 'vs_tcs_first' (layout(location=0 ) in 32-element array of 2X4 matrix of double)
+0:? 'vs_tcs_last' (layout(location=12 ) in 32-element array of 2X4 matrix of double)
+
+420.tese
+Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:7: '=' : cannot convert from 'const 3-element array of float' to 'global 2-element array of float'
+ERROR: 0:8: 'initializer list' : wrong vector size (or rows in a matrix column): temp 2-component vector of float
+ERROR: 0:9: 'initializer list' : wrong number of matrix columns: temp 3X3 matrix of float
+ERROR: 0:10: 'initializer list' : wrong number of matrix columns: temp 2X2 matrix of float
+ERROR: 0:25: 'initializer list' : wrong number of structure members
+ERROR: 0:27: '=' : cannot convert from 'const bool' to 'global int'
+ERROR: 0:28: 'constructor' : cannot convert parameter 2 from 'const float' to 'temp 4-component vector of float'
+ERROR: 0:29: 'constructor' : cannot convert parameter 2 from 'const 2X2 matrix of float' to 'const 4-component vector of float'
+ERROR: 0:29: 'const 2-element array of 4-component vector of float' : cannot construct with these arguments
+ERROR: 0:29: '=' : cannot convert from 'const float' to 'global 2-element array of 4-component vector of float'
+ERROR: 0:30: 'initializer list' : wrong number of matrix columns: temp 4X2 matrix of float
+ERROR: 0:40: 'constructor' : cannot convert parameter 1 from 'temp float' to 'temp structure{global float s, global float t}'
+ERROR: 0:58: 'initializer list' : wrong number of structure members
+ERROR: 13 compilation errors. No code generated.
+
+
+Shader version: 420
+input primitive = none
+vertex spacing = none
+triangle order = none
+ERROR: node is still EOpNull!
+0:4 Sequence
+0:4 move second child to first child (temp 2X2 matrix of float)
+0:4 'b' (global 2X2 matrix of float)
+0:4 Constant:
+0:4 1.000000
+0:4 0.000000
+0:4 0.000000
+0:4 1.000000
+0:15 Sequence
+0:15 move second child to first child (temp structure{global float a, global int b})
+0:15 'e' (global structure{global float a, global int b})
+0:15 Constant:
+0:15 1.200000
+0:15 2 (const int)
+0:20 Sequence
+0:20 move second child to first child (temp structure{global float a, global int b})
+0:20 'e2' (global structure{global float a, global int b})
+0:20 Constant:
+0:20 1.000000
+0:20 3 (const int)
+0:42 Sequence
+0:42 move second child to first child (temp 5-element array of float)
+0:42 'b5' (global 5-element array of float)
+0:42 Constant:
+0:42 3.400000
+0:42 4.200000
+0:42 5.000000
+0:42 5.200000
+0:42 1.100000
+0:67 Sequence
+0:67 move second child to first child (temp 3-component vector of float)
+0:67 'av3' (global 3-component vector of float)
+0:67 Construct vec3 (global 3-component vector of float)
+0:67 'vc1' (global float)
+0:67 'vc2' (global float)
+0:67 'vc3' (global float)
+0:68 Sequence
+0:68 move second child to first child (temp 3-component vector of float)
+0:68 'bv3' (global 3-component vector of float)
+0:68 Construct vec3 (temp 3-component vector of float)
+0:68 'vc1' (global float)
+0:68 'vc2' (global float)
+0:68 'vc3' (global float)
+0:70 Function Definition: main( (global void)
+0:70 Function Parameters:
+0:72 Sequence
+0:72 MemoryBarrier (global void)
+0:74 Test condition and select (temp void)
+0:74 Condition
+0:74 Compare Equal (temp bool)
+0:74 Constant:
+0:74 1 (const uint)
+0:74 2 (const uint)
+0:74 3.000000
+0:74 4.000000
+0:74 0.000000
+0:74 0.000000
+0:74 0.000000
+0:74 4.000000
+0:74 0.000000
+0:74 5.000000
+0:74 6.000000
+0:74 0.000000
+0:74 0.000000
+0:74 0.000000
+0:74 6.000000
+0:74 0.000000
+0:74 'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
+0:74 true case is null
+0:76 Test condition and select (temp void)
+0:76 Condition
+0:76 Constant:
+0:76 true (const bool)
+0:76 true case is null
+0:? Linker Objects
+0:? 'a' (const 2X2 matrix of float)
+0:? 1.000000
+0:? 0.000000
+0:? 0.000000
+0:? 1.000000
+0:? 'b' (global 2X2 matrix of float)
+0:? 'c' (const 2X2 matrix of float)
+0:? 1.000000
+0:? 0.000000
+0:? 0.000000
+0:? 1.000000
+0:? 'a2' (global 2-element array of float)
+0:? 'b2' (global 2-component vector of float)
+0:? 'c2' (global 3X3 matrix of float)
+0:? 'd' (global 2X2 matrix of float)
+0:? 'e' (global structure{global float a, global int b})
+0:? 'e2' (global structure{global float a, global int b})
+0:? 'e3' (global structure{global float a, global int b})
+0:? 'a3' (global int)
+0:? 'b3' (global 2-element array of 4-component vector of float)
+0:? 'b4' (global 2-element array of 4-component vector of float)
+0:? 'c3' (global 4X2 matrix of float)
+0:? 'd2' (global implicitly-sized array of structure{global float s, global float t})
+0:? 'b5' (global 5-element array of float)
+0:? 'constructed' (const structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
+0:? 1 (const uint)
+0:? 2 (const uint)
+0:? 3.000000
+0:? 4.000000
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:? 4.000000
+0:? 0.000000
+0:? 5.000000
+0:? 6.000000
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:? 6.000000
+0:? 0.000000
+0:? 'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
+0:? 'curlyInit' (const structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
+0:? 1 (const uint)
+0:? 2 (const uint)
+0:? 3.000000
+0:? 4.000000
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:? 4.000000
+0:? 0.000000
+0:? 5.000000
+0:? 6.000000
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:? 6.000000
+0:? 0.000000
+0:? 'vc1' (global float)
+0:? 'vc2' (global float)
+0:? 'vc3' (global float)
+0:? 'av3' (global 3-component vector of float)
+0:? 'bv3' (global 3-component vector of float)
+
+
+Linked tessellation control stage:
+
+ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:
+ main(
+ERROR: Linking tessellation control stage: Contradictory layout vertices values
+ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:
+ main(
+ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:
+ main(
+ERROR: Linking tessellation control stage: Types must match:
+ gl_out: "out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance}" versus "out implicitly-sized array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance}"
+ERROR: Linking tessellation control stage: Types must match:
+ outa: "global 4-element array of int" versus "global 1-element array of int"
+ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:
+ main(
+ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:
+ main(
+ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:
+ foo(
+ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:
+ main(
+ERROR: Linking tessellation control stage: Types must match:
+ gl_out: "out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance}" versus "out 3-element array of block{out 4-component vector of float Position gl_Position}"
+
+Linked tessellation evaluation stage:
+
+ERROR: Linking tessellation evaluation stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:
+ main(
+ERROR: Linking tessellation evaluation stage: Contradictory input layout primitives
+ERROR: Linking tessellation evaluation stage: Contradictory input vertex spacing
+ERROR: Linking tessellation evaluation stage: Contradictory triangle ordering
+ERROR: Linking tessellation evaluation stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:
+ main(
+ERROR: Linking tessellation evaluation stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:
+ main(
+
+Shader version: 420
+Requested GL_ARB_separate_shader_objects
+Requested GL_ARB_tessellation_shader
+vertices = 4
+0:? Sequence
+0:10 Function Definition: main( (global void)
+0:10 Function Parameters:
+0:12 Sequence
+0:12 Barrier (global void)
+0:14 Sequence
+0:14 move second child to first child (temp int)
+0:14 'a' (temp int)
+0:14 Constant:
+0:14 5392 (const int)
+0:20 Sequence
+0:20 move second child to first child (temp 4-component vector of float)
+0:20 'p' (temp 4-component vector of float)
+0:20 gl_Position: direct index for structure (in 4-component vector of float Position)
+0:20 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:20 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:20 Constant:
+0:20 1 (const int)
+0:20 Constant:
+0:20 0 (const int)
+0:21 Sequence
+0:21 move second child to first child (temp float)
+0:21 'ps' (temp float)
+0:21 gl_PointSize: direct index for structure (in float PointSize)
+0:21 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:21 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:21 Constant:
+0:21 1 (const int)
+0:21 Constant:
+0:21 1 (const int)
+0:22 Sequence
+0:22 move second child to first child (temp float)
+0:22 'cd' (temp float)
+0:22 direct index (temp float ClipDistance)
+0:22 gl_ClipDistance: direct index for structure (in 3-element array of float ClipDistance)
+0:22 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:22 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:22 Constant:
+0:22 1 (const int)
+0:22 Constant:
+0:22 2 (const int)
+0:22 Constant:
+0:22 2 (const int)
+0:24 Sequence
+0:24 move second child to first child (temp int)
+0:24 'pvi' (temp int)
+0:24 'gl_PatchVerticesIn' (in int PatchVertices)
+0:25 Sequence
+0:25 move second child to first child (temp int)
+0:25 'pid' (temp int)
+0:25 'gl_PrimitiveID' (in int PrimitiveID)
+0:26 Sequence
+0:26 move second child to first child (temp int)
+0:26 'iid' (temp int)
+0:26 'gl_InvocationID' (in int InvocationID)
+0:28 move second child to first child (temp 4-component vector of float)
+0:28 gl_Position: direct index for structure (out 4-component vector of float Position)
+0:28 indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
+0:28 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
+0:28 'gl_InvocationID' (in int InvocationID)
+0:28 Constant:
+0:28 0 (const int)
+0:28 'p' (temp 4-component vector of float)
+0:29 move second child to first child (temp float)
+0:29 gl_PointSize: direct index for structure (out float PointSize)
+0:29 indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
+0:29 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
+0:29 'gl_InvocationID' (in int InvocationID)
+0:29 Constant:
+0:29 1 (const int)
+0:29 'ps' (temp float)
+0:30 move second child to first child (temp float)
+0:30 direct index (temp float ClipDistance)
+0:30 gl_ClipDistance: direct index for structure (out 2-element array of float ClipDistance)
+0:30 indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
+0:30 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
+0:30 'gl_InvocationID' (in int InvocationID)
+0:30 Constant:
+0:30 2 (const int)
+0:30 Constant:
+0:30 1 (const int)
+0:30 'cd' (temp float)
+0:32 move second child to first child (temp float)
+0:32 direct index (patch temp float TessLevelOuter)
+0:32 'gl_TessLevelOuter' (patch out 4-element array of float TessLevelOuter)
+0:32 Constant:
+0:32 3 (const int)
+0:32 Constant:
+0:32 3.200000
+0:33 move second child to first child (temp float)
+0:33 direct index (patch temp float TessLevelInner)
+0:33 'gl_TessLevelInner' (patch out 2-element array of float TessLevelInner)
+0:33 Constant:
+0:33 1 (const int)
+0:33 Constant:
+0:33 1.300000
+0:13 Function Definition: main( (global void)
+0:13 Function Parameters:
+0:15 Sequence
+0:15 Barrier (global void)
+0:17 Sequence
+0:17 move second child to first child (temp int)
+0:17 'a' (temp int)
+0:17 Constant:
+0:17 5392 (const int)
+0:23 Sequence
+0:23 move second child to first child (temp 4-component vector of float)
+0:23 'p' (temp 4-component vector of float)
+0:23 gl_Position: direct index for structure (in 4-component vector of float Position)
+0:23 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:23 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:23 Constant:
+0:23 1 (const int)
+0:23 Constant:
+0:23 0 (const int)
+0:24 Sequence
+0:24 move second child to first child (temp float)
+0:24 'ps' (temp float)
+0:24 gl_PointSize: direct index for structure (in float PointSize)
+0:24 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:24 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:24 Constant:
+0:24 1 (const int)
+0:24 Constant:
+0:24 1 (const int)
+0:25 Sequence
+0:25 move second child to first child (temp float)
+0:25 'cd' (temp float)
+0:25 direct index (temp float ClipDistance)
+0:25 gl_ClipDistance: direct index for structure (in 3-element array of float ClipDistance)
+0:25 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:25 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:25 Constant:
+0:25 1 (const int)
+0:25 Constant:
+0:25 2 (const int)
+0:25 Constant:
+0:25 2 (const int)
+0:27 Sequence
+0:27 move second child to first child (temp int)
+0:27 'pvi' (temp int)
+0:27 'gl_PatchVerticesIn' (in int PatchVertices)
+0:28 Sequence
+0:28 move second child to first child (temp int)
+0:28 'pid' (temp int)
+0:28 'gl_PrimitiveID' (in int PrimitiveID)
+0:29 Sequence
+0:29 move second child to first child (temp int)
+0:29 'iid' (temp int)
+0:29 'gl_InvocationID' (in int InvocationID)
+0:31 move second child to first child (temp 4-component vector of float)
+0:31 gl_Position: direct index for structure (out 4-component vector of float Position)
+0:31 indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
+0:31 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
+0:31 'gl_InvocationID' (in int InvocationID)
+0:31 Constant:
+0:31 0 (const int)
+0:31 'p' (temp 4-component vector of float)
+0:32 move second child to first child (temp float)
+0:32 gl_PointSize: direct index for structure (out float PointSize)
+0:32 indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
+0:32 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
+0:32 'gl_InvocationID' (in int InvocationID)
+0:32 Constant:
+0:32 1 (const int)
+0:32 'ps' (temp float)
+0:33 move second child to first child (temp float)
+0:33 direct index (temp float ClipDistance)
+0:33 gl_ClipDistance: direct index for structure (out 2-element array of float ClipDistance)
+0:33 indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
+0:33 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
+0:33 'gl_InvocationID' (in int InvocationID)
+0:33 Constant:
+0:33 2 (const int)
+0:33 Constant:
+0:33 1 (const int)
+0:33 'cd' (temp float)
+0:35 move second child to first child (temp float)
+0:35 direct index (patch temp float TessLevelOuter)
+0:35 'gl_TessLevelOuter' (patch out 4-element array of float TessLevelOuter)
+0:35 Constant:
+0:35 3 (const int)
+0:35 Constant:
+0:35 3.200000
+0:36 move second child to first child (temp float)
+0:36 direct index (patch temp float TessLevelInner)
+0:36 'gl_TessLevelInner' (patch out 2-element array of float TessLevelInner)
+0:36 Constant:
+0:36 1 (const int)
+0:36 Constant:
+0:36 1.300000
+0:38 Test condition and select (temp void)
+0:38 Condition
+0:38 Compare Greater Than (temp bool)
+0:38 'a' (temp int)
+0:38 Constant:
+0:38 10 (const int)
+0:38 true case
+0:39 Barrier (global void)
+0:38 false case
+0:41 Barrier (global void)
+0:43 Barrier (global void)
+0:47 Loop with condition not tested first
+0:47 Loop Condition
+0:47 Compare Greater Than (temp bool)
+0:47 'a' (temp int)
+0:47 Constant:
+0:47 10 (const int)
+0:47 Loop Body
+0:46 Sequence
+0:46 Barrier (global void)
+0:49 switch
+0:49 condition
+0:49 'a' (temp int)
+0:49 body
+0:49 Sequence
+0:50 default:
+0:? Sequence
+0:51 Barrier (global void)
+0:52 Branch: Break
+0:54 Test condition and select (temp int)
+0:54 Condition
+0:54 Compare Less Than (temp bool)
+0:54 'a' (temp int)
+0:54 Constant:
+0:54 12 (const int)
+0:54 true case
+0:54 'a' (temp int)
+0:54 false case
+0:54 Comma (temp int)
+0:54 Barrier (global void)
+0:54 'a' (temp int)
+0:56 Sequence
+0:56 Barrier (global void)
+0:59 Branch: Return
+0:61 Barrier (global void)
+0:67 Function Definition: foo( (global void)
+0:67 Function Parameters:
+0:69 Sequence
+0:69 gl_PointSize: direct index for structure (out float PointSize)
+0:69 direct index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
+0:69 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
+0:69 Constant:
+0:69 4 (const int)
+0:69 Constant:
+0:69 1 (const int)
+0:71 Barrier (global void)
+0:91 Function Definition: foop( (global void)
+0:91 Function Parameters:
+0:? Sequence
+0:95 multiply second child into first child (temp 3-component vector of float)
+0:95 'pv3' (noContraction temp 3-component vector of float)
+0:95 'pv3' (noContraction temp 3-component vector of float)
+0:96 move second child to first child (temp 3-component vector of float)
+0:96 'pv3' (noContraction temp 3-component vector of float)
+0:96 fma (global 3-component vector of float)
+0:96 'pv3' (noContraction temp 3-component vector of float)
+0:96 'pv3' (noContraction temp 3-component vector of float)
+0:96 'pv3' (noContraction temp 3-component vector of float)
+0:97 move second child to first child (temp double)
+0:97 'd' (noContraction temp double)
+0:97 fma (global double)
+0:97 'd' (noContraction temp double)
+0:97 'd' (noContraction temp double)
+0:97 'd' (noContraction temp double)
+0:8 Function Definition: main( (global void)
+0:8 Function Parameters:
+0:15 Function Definition: main( (global void)
+0:15 Function Parameters:
+0:17 Sequence
+0:17 Sequence
+0:17 move second child to first child (temp 4-component vector of float)
+0:17 'p' (temp 4-component vector of float)
+0:17 gl_Position: direct index for structure (in 4-component vector of float Position)
+0:17 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:17 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:17 Constant:
+0:17 1 (const int)
+0:17 Constant:
+0:17 0 (const int)
+0:18 Sequence
+0:18 move second child to first child (temp float)
+0:18 'ps' (temp float)
+0:18 gl_PointSize: direct index for structure (in float PointSize)
+0:18 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:18 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:18 Constant:
+0:18 1 (const int)
+0:18 Constant:
+0:18 1 (const int)
+0:19 Sequence
+0:19 move second child to first child (temp float)
+0:19 'cd' (temp float)
+0:19 direct index (temp float ClipDistance)
+0:19 gl_ClipDistance: direct index for structure (in 3-element array of float ClipDistance)
+0:19 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:19 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:19 Constant:
+0:19 1 (const int)
+0:19 Constant:
+0:19 2 (const int)
+0:19 Constant:
+0:19 2 (const int)
+0:21 Sequence
+0:21 move second child to first child (temp int)
+0:21 'pvi' (temp int)
+0:21 'gl_PatchVerticesIn' (in int PatchVertices)
+0:22 Sequence
+0:22 move second child to first child (temp int)
+0:22 'pid' (temp int)
+0:22 'gl_PrimitiveID' (in int PrimitiveID)
+0:23 Sequence
+0:23 move second child to first child (temp int)
+0:23 'iid' (temp int)
+0:23 'gl_InvocationID' (in int InvocationID)
+0:25 move second child to first child (temp 4-component vector of float)
+0:25 gl_Position: direct index for structure (out 4-component vector of float Position)
+0:25 indirect index (temp block{out 4-component vector of float Position gl_Position})
+0:25 'gl_out' (out 3-element array of block{out 4-component vector of float Position gl_Position})
+0:25 'gl_InvocationID' (in int InvocationID)
+0:25 Constant:
+0:25 0 (const int)
+0:25 'p' (temp 4-component vector of float)
+0:26 indirect index (temp block{out 4-component vector of float Position gl_Position})
+0:26 'gl_out' (out 3-element array of block{out 4-component vector of float Position gl_Position})
+0:26 'gl_InvocationID' (in int InvocationID)
+0:34 Function Definition: foo( (global void)
+0:34 Function Parameters:
+0:36 Sequence
+0:36 Test condition and select (temp void)
+0:36 Condition
+0:36 logical-or (temp bool)
+0:36 Compare Not Equal (temp bool)
+0:36 Constant:
+0:36 -0.625000
+0:36 -0.500000
+0:36 -0.375000
+0:36 -0.250000
+0:36 -0.375000
+0:36 -0.250000
+0:36 -0.125000
+0:36 0.000000
+0:36 direct index (layout(location=0 ) temp 2X4 matrix of double)
+0:36 'vs_tcs_first' (layout(location=0 ) in 32-element array of 2X4 matrix of double)
+0:36 Constant:
+0:36 0 (const int)
+0:37 Compare Not Equal (temp bool)
+0:37 Constant:
+0:37 0.375000
+0:37 0.500000
+0:37 0.625000
+0:37 0.750000
+0:37 0.625000
+0:37 0.750000
+0:37 0.875000
+0:37 -0.625000
+0:37 direct index (layout(location=12 ) temp 2X4 matrix of double)
+0:37 'vs_tcs_last' (layout(location=12 ) in 32-element array of 2X4 matrix of double)
+0:37 Constant:
+0:37 0 (const int)
+0:36 true case is null
+0:? Linker Objects
+0:? 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
+0:? 'outa' (global 4-element array of int)
+0:? 'patchOut' (patch out 4-component vector of float)
+0:? 'patchIn' (patch in 4-component vector of float)
+0:? 'ina' (in 2-component vector of float)
+0:? 'inb' (in 32-element array of 2-component vector of float)
+0:? 'inc' (in 32-element array of 2-component vector of float)
+0:? 'ind' (in 32-element array of 2-component vector of float)
+0:? 'ivla' (layout(location=3 ) in 32-element array of 4-component vector of float)
+0:? 'ivlb' (layout(location=4 ) in 32-element array of 4-component vector of float)
+0:? 'ivlc' (layout(location=4 ) in 32-element array of 4-component vector of float)
+0:? 'ovla' (layout(location=3 ) out 4-element array of 4-component vector of float)
+0:? 'ovlb' (layout(location=4 ) out 4-element array of 4-component vector of float)
+0:? 'ovlc' (layout(location=4 ) out 4-element array of 4-component vector of float)
+0:? 'pv3' (noContraction temp 3-component vector of float)
+0:? 'pinbi' (patch out block{out int a})
+0:? 'badOrder' (invariant noContraction out 4-element array of 4-component vector of float)
+0:? 'a' (out 3-element array of int)
+0:? 'outb' (out 5-element array of int)
+0:? 'outc' (out 4-element array of int)
+0:? 'outf' (out float)
+0:? 'vs_tcs_first' (layout(location=0 ) in 32-element array of 2X4 matrix of double)
+0:? 'vs_tcs_last' (layout(location=12 ) in 32-element array of 2X4 matrix of double)
+Shader version: 420
+Requested GL_ARB_separate_shader_objects
+Requested GL_ARB_tessellation_shader
+input primitive = quads
+vertex spacing = fractional_odd_spacing
+triangle order = cw
+using point mode
+ERROR: node is still EOpNull!
+0:10 Function Definition: main( (global void)
+0:10 Function Parameters:
+0:12 Sequence
+0:12 Constant:
+0:12 0.000000
+0:14 Sequence
+0:14 move second child to first child (temp int)
+0:14 'a' (temp int)
+0:14 Constant:
+0:14 1512 (const int)
+0:22 Sequence
+0:22 move second child to first child (temp 4-component vector of float)
+0:22 'p' (temp 4-component vector of float)
+0:22 gl_Position: direct index for structure (in 4-component vector of float Position)
+0:22 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:22 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:22 Constant:
+0:22 1 (const int)
+0:22 Constant:
+0:22 0 (const int)
+0:23 Sequence
+0:23 move second child to first child (temp float)
+0:23 'ps' (temp float)
+0:23 gl_PointSize: direct index for structure (in float PointSize)
+0:23 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:23 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:23 Constant:
+0:23 1 (const int)
+0:23 Constant:
+0:23 1 (const int)
+0:24 Sequence
+0:24 move second child to first child (temp float)
+0:24 'cd' (temp float)
+0:24 direct index (temp float ClipDistance)
+0:24 gl_ClipDistance: direct index for structure (in 3-element array of float ClipDistance)
+0:24 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:24 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:24 Constant:
+0:24 1 (const int)
+0:24 Constant:
+0:24 2 (const int)
+0:24 Constant:
+0:24 2 (const int)
+0:26 Sequence
+0:26 move second child to first child (temp int)
+0:26 'pvi' (temp int)
+0:26 'gl_PatchVerticesIn' (in int PatchVertices)
+0:27 Sequence
+0:27 move second child to first child (temp int)
+0:27 'pid' (temp int)
+0:27 'gl_PrimitiveID' (in int PrimitiveID)
+0:28 Sequence
+0:28 move second child to first child (temp 3-component vector of float)
+0:28 'tc' (temp 3-component vector of float)
+0:28 'gl_TessCoord' (in 3-component vector of float TessCoord)
+0:29 Sequence
+0:29 move second child to first child (temp float)
+0:29 'tlo' (temp float)
+0:29 direct index (patch temp float TessLevelOuter)
+0:29 'gl_TessLevelOuter' (patch in 4-element array of float TessLevelOuter)
+0:29 Constant:
+0:29 3 (const int)
+0:30 Sequence
+0:30 move second child to first child (temp float)
+0:30 'tli' (temp float)
+0:30 direct index (patch temp float TessLevelInner)
+0:30 'gl_TessLevelInner' (patch in 2-element array of float TessLevelInner)
+0:30 Constant:
+0:30 1 (const int)
+0:32 move second child to first child (temp 4-component vector of float)
+0:32 gl_Position: direct index for structure (gl_Position 4-component vector of float Position)
+0:32 'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance})
+0:32 Constant:
+0:32 0 (const uint)
+0:32 'p' (temp 4-component vector of float)
+0:33 move second child to first child (temp float)
+0:33 gl_PointSize: direct index for structure (gl_PointSize float PointSize)
+0:33 'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance})
+0:33 Constant:
+0:33 1 (const uint)
+0:33 'ps' (temp float)
+0:34 move second child to first child (temp float)
+0:34 direct index (temp float ClipDistance)
+0:34 gl_ClipDistance: direct index for structure (out 3-element array of float ClipDistance)
+0:34 'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance})
+0:34 Constant:
+0:34 2 (const uint)
+0:34 Constant:
+0:34 2 (const int)
+0:34 'cd' (temp float)
+0:20 Function Definition: main( (global void)
+0:20 Function Parameters:
+0:22 Sequence
+0:22 Constant:
+0:22 0.000000
+0:24 Sequence
+0:24 move second child to first child (temp int)
+0:24 'a' (temp int)
+0:24 Constant:
+0:24 1512 (const int)
+0:32 Sequence
+0:32 move second child to first child (temp 4-component vector of float)
+0:32 'p' (temp 4-component vector of float)
+0:32 gl_Position: direct index for structure (in 4-component vector of float Position)
+0:32 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:32 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:32 Constant:
+0:32 1 (const int)
+0:32 Constant:
+0:32 0 (const int)
+0:33 Sequence
+0:33 move second child to first child (temp float)
+0:33 'ps' (temp float)
+0:33 gl_PointSize: direct index for structure (in float PointSize)
+0:33 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:33 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:33 Constant:
+0:33 1 (const int)
+0:33 Constant:
+0:33 1 (const int)
+0:34 Sequence
+0:34 move second child to first child (temp float)
+0:34 'cd' (temp float)
+0:34 direct index (temp float ClipDistance)
+0:34 gl_ClipDistance: direct index for structure (in 3-element array of float ClipDistance)
+0:34 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:34 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:34 Constant:
+0:34 1 (const int)
+0:34 Constant:
+0:34 2 (const int)
+0:34 Constant:
+0:34 2 (const int)
+0:36 Sequence
+0:36 move second child to first child (temp int)
+0:36 'pvi' (temp int)
+0:36 'gl_PatchVerticesIn' (in int PatchVertices)
+0:37 Sequence
+0:37 move second child to first child (temp int)
+0:37 'pid' (temp int)
+0:37 'gl_PrimitiveID' (in int PrimitiveID)
+0:38 Sequence
+0:38 move second child to first child (temp 3-component vector of float)
+0:38 'tc' (temp 3-component vector of float)
+0:38 'gl_TessCoord' (in 3-component vector of float TessCoord)
+0:39 Sequence
+0:39 move second child to first child (temp float)
+0:39 'tlo' (temp float)
+0:39 direct index (patch temp float TessLevelOuter)
+0:39 'gl_TessLevelOuter' (patch in 4-element array of float TessLevelOuter)
+0:39 Constant:
+0:39 3 (const int)
+0:40 Sequence
+0:40 move second child to first child (temp float)
+0:40 'tli' (temp float)
+0:40 direct index (patch temp float TessLevelInner)
+0:40 'gl_TessLevelInner' (patch in 2-element array of float TessLevelInner)
+0:40 Constant:
+0:40 1 (const int)
+0:42 move second child to first child (temp 4-component vector of float)
+0:42 gl_Position: direct index for structure (gl_Position 4-component vector of float Position)
+0:42 'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance})
+0:42 Constant:
+0:42 0 (const uint)
+0:42 'p' (temp 4-component vector of float)
+0:43 move second child to first child (temp float)
+0:43 gl_PointSize: direct index for structure (gl_PointSize float PointSize)
+0:43 'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance})
+0:43 Constant:
+0:43 1 (const uint)
+0:43 'ps' (temp float)
+0:44 move second child to first child (temp float)
+0:44 direct index (temp float ClipDistance)
+0:44 gl_ClipDistance: direct index for structure (out 3-element array of float ClipDistance)
+0:44 'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance})
+0:44 Constant:
+0:44 2 (const uint)
+0:44 Constant:
+0:44 2 (const int)
+0:44 'cd' (temp float)
+0:4 Sequence
+0:4 move second child to first child (temp 2X2 matrix of float)
+0:4 'b' (global 2X2 matrix of float)
+0:4 Constant:
+0:4 1.000000
+0:4 0.000000
+0:4 0.000000
+0:4 1.000000
+0:15 Sequence
+0:15 move second child to first child (temp structure{global float a, global int b})
+0:15 'e' (global structure{global float a, global int b})
+0:15 Constant:
+0:15 1.200000
+0:15 2 (const int)
+0:20 Sequence
+0:20 move second child to first child (temp structure{global float a, global int b})
+0:20 'e2' (global structure{global float a, global int b})
+0:20 Constant:
+0:20 1.000000
+0:20 3 (const int)
+0:42 Sequence
+0:42 move second child to first child (temp 5-element array of float)
+0:42 'b5' (global 5-element array of float)
+0:42 Constant:
+0:42 3.400000
+0:42 4.200000
+0:42 5.000000
+0:42 5.200000
+0:42 1.100000
+0:67 Sequence
+0:67 move second child to first child (temp 3-component vector of float)
+0:67 'av3' (global 3-component vector of float)
+0:67 Construct vec3 (global 3-component vector of float)
+0:67 'vc1' (global float)
+0:67 'vc2' (global float)
+0:67 'vc3' (global float)
+0:68 Sequence
+0:68 move second child to first child (temp 3-component vector of float)
+0:68 'bv3' (global 3-component vector of float)
+0:68 Construct vec3 (temp 3-component vector of float)
+0:68 'vc1' (global float)
+0:68 'vc2' (global float)
+0:68 'vc3' (global float)
+0:70 Function Definition: main( (global void)
+0:70 Function Parameters:
+0:72 Sequence
+0:72 MemoryBarrier (global void)
+0:74 Test condition and select (temp void)
+0:74 Condition
+0:74 Compare Equal (temp bool)
+0:74 Constant:
+0:74 1 (const uint)
+0:74 2 (const uint)
+0:74 3.000000
+0:74 4.000000
+0:74 0.000000
+0:74 0.000000
+0:74 0.000000
+0:74 4.000000
+0:74 0.000000
+0:74 5.000000
+0:74 6.000000
+0:74 0.000000
+0:74 0.000000
+0:74 0.000000
+0:74 6.000000
+0:74 0.000000
+0:74 'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
+0:74 true case is null
+0:76 Test condition and select (temp void)
+0:76 Condition
+0:76 Constant:
+0:76 true (const bool)
+0:76 true case is null
+0:? Linker Objects
+0:? 'patchIn' (patch in 4-component vector of float)
+0:? 'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance})
+0:? 'patchOut' (patch out 4-component vector of float)
+0:? 'badp1' (smooth patch in 4-component vector of float)
+0:? 'badp2' (flat patch in 4-component vector of float)
+0:? 'badp3' (noperspective patch in 4-component vector of float)
+0:? 'badp4' (patch sample in 3-component vector of float)
+0:? 'gl_in' (in 32-element array of block{in 1-element array of float ClipDistance gl_ClipDistance})
+0:? 'ina' (in 2-component vector of float)
+0:? 'inb' (in 32-element array of 2-component vector of float)
+0:? 'inc' (in 32-element array of 2-component vector of float)
+0:? 'ind' (in 32-element array of 2-component vector of float)
+0:? 'bla' (in block{in int f})
+0:? 'blb' (in 32-element array of block{in int f})
+0:? 'blc' (in 32-element array of block{in int f})
+0:? 'bld' (in 32-element array of block{in int f})
+0:? 'ivla' (layout(location=23 ) in 32-element array of 4-component vector of float)
+0:? 'ivlb' (layout(location=24 ) in 32-element array of 4-component vector of float)
+0:? 'ivlc' (layout(location=24 ) in 32-element array of 4-component vector of float)
+0:? 'ovla' (layout(location=23 ) out 2-element array of 4-component vector of float)
+0:? 'ovlb' (layout(location=24 ) out 2-element array of 4-component vector of float)
+0:? 'pinbi' (patch in block{in int a})
+0:? 'a' (const 2X2 matrix of float)
+0:? 1.000000
+0:? 0.000000
+0:? 0.000000
+0:? 1.000000
+0:? 'b' (global 2X2 matrix of float)
+0:? 'c' (const 2X2 matrix of float)
+0:? 1.000000
+0:? 0.000000
+0:? 0.000000
+0:? 1.000000
+0:? 'a2' (global 2-element array of float)
+0:? 'b2' (global 2-component vector of float)
+0:? 'c2' (global 3X3 matrix of float)
+0:? 'd' (global 2X2 matrix of float)
+0:? 'e' (global structure{global float a, global int b})
+0:? 'e2' (global structure{global float a, global int b})
+0:? 'e3' (global structure{global float a, global int b})
+0:? 'a3' (global int)
+0:? 'b3' (global 2-element array of 4-component vector of float)
+0:? 'b4' (global 2-element array of 4-component vector of float)
+0:? 'c3' (global 4X2 matrix of float)
+0:? 'd2' (global 1-element array of structure{global float s, global float t})
+0:? 'b5' (global 5-element array of float)
+0:? 'constructed' (const structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
+0:? 1 (const uint)
+0:? 2 (const uint)
+0:? 3.000000
+0:? 4.000000
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:? 4.000000
+0:? 0.000000
+0:? 5.000000
+0:? 6.000000
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:? 6.000000
+0:? 0.000000
+0:? 'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
+0:? 'curlyInit' (const structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
+0:? 1 (const uint)
+0:? 2 (const uint)
+0:? 3.000000
+0:? 4.000000
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:? 4.000000
+0:? 0.000000
+0:? 5.000000
+0:? 6.000000
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:? 6.000000
+0:? 0.000000
+0:? 'vc1' (global float)
+0:? 'vc2' (global float)
+0:? 'vc3' (global float)
+0:? 'av3' (global 3-component vector of float)
+0:? 'bv3' (global 3-component vector of float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/150.vert.out b/chromium/third_party/glslang/src/Test/baseResults/150.vert.out
new file mode 100644
index 00000000000..a82e7896fec
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/150.vert.out
@@ -0,0 +1,95 @@
+150.vert
+ERROR: 0:22: 'a' : cannot redeclare a user-block member array
+ERROR: 0:3001: '#error' : line of this error should be 3001
+ERROR: 2 compilation errors. No code generated.
+
+
+Shader version: 150
+ERROR: node is still EOpNull!
+0:9 Function Definition: main( (global void)
+0:9 Function Parameters:
+0:11 Sequence
+0:11 move second child to first child (temp 4-component vector of float)
+0:11 gl_Position: direct index for structure (invariant gl_Position 4-component vector of float Position)
+0:11 'anon@0' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:11 Constant:
+0:11 0 (const uint)
+0:11 'iv4' (in 4-component vector of float)
+0:12 move second child to first child (temp float)
+0:12 gl_PointSize: direct index for structure (gl_PointSize float PointSize)
+0:12 'anon@0' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:12 Constant:
+0:12 1 (const uint)
+0:12 'ps' (uniform float)
+0:13 move second child to first child (temp float)
+0:13 direct index (temp float ClipDistance)
+0:13 gl_ClipDistance: direct index for structure (out 4-element array of float ClipDistance)
+0:13 'anon@0' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:13 Constant:
+0:13 2 (const uint)
+0:13 Constant:
+0:13 2 (const int)
+0:13 direct index (temp float)
+0:13 'iv4' (in 4-component vector of float)
+0:13 Constant:
+0:13 0 (const int)
+0:14 move second child to first child (temp 4-component vector of float)
+0:14 gl_ClipVertex: direct index for structure (gl_ClipVertex 4-component vector of float ClipVertex)
+0:14 'anon@0' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:14 Constant:
+0:14 3 (const uint)
+0:14 'iv4' (in 4-component vector of float)
+0:? Linker Objects
+0:? 'iv4' (in 4-component vector of float)
+0:? 'ps' (uniform float)
+0:? 'anon@1' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform implicitly-sized array of int a})
+0:? 'gl_VertexID' (gl_VertexId int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
+
+
+Linked vertex stage:
+
+ERROR: Linking vertex stage: Can only use one of gl_ClipDistance or gl_ClipVertex (gl_ClipDistance is preferred)
+
+Shader version: 150
+ERROR: node is still EOpNull!
+0:9 Function Definition: main( (global void)
+0:9 Function Parameters:
+0:11 Sequence
+0:11 move second child to first child (temp 4-component vector of float)
+0:11 gl_Position: direct index for structure (invariant gl_Position 4-component vector of float Position)
+0:11 'anon@0' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:11 Constant:
+0:11 0 (const uint)
+0:11 'iv4' (in 4-component vector of float)
+0:12 move second child to first child (temp float)
+0:12 gl_PointSize: direct index for structure (gl_PointSize float PointSize)
+0:12 'anon@0' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:12 Constant:
+0:12 1 (const uint)
+0:12 'ps' (uniform float)
+0:13 move second child to first child (temp float)
+0:13 direct index (temp float ClipDistance)
+0:13 gl_ClipDistance: direct index for structure (out 4-element array of float ClipDistance)
+0:13 'anon@0' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:13 Constant:
+0:13 2 (const uint)
+0:13 Constant:
+0:13 2 (const int)
+0:13 direct index (temp float)
+0:13 'iv4' (in 4-component vector of float)
+0:13 Constant:
+0:13 0 (const int)
+0:14 move second child to first child (temp 4-component vector of float)
+0:14 gl_ClipVertex: direct index for structure (gl_ClipVertex 4-component vector of float ClipVertex)
+0:14 'anon@0' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:14 Constant:
+0:14 3 (const uint)
+0:14 'iv4' (in 4-component vector of float)
+0:? Linker Objects
+0:? 'iv4' (in 4-component vector of float)
+0:? 'ps' (uniform float)
+0:? 'anon@1' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform 1-element array of int a})
+0:? 'gl_VertexID' (gl_VertexId int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/300.frag.out b/chromium/third_party/glslang/src/Test/baseResults/300.frag.out
new file mode 100644
index 00000000000..a0c2615de20
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/300.frag.out
@@ -0,0 +1,756 @@
+300.frag
+ERROR: 0:2: 'float' : type requires declaration of default precision qualifier
+ERROR: 0:30: 'noperspective' : Reserved word.
+ERROR: 0:30: 'noperspective' : not supported with this profile: es
+ERROR: 0:31: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: bads
+ERROR: 0:32: 'uint' : cannot apply precision statement to this type; use 'float', 'int' or a sampler type
+ERROR: 0:39: 'structure' : must be qualified as flat in
+ERROR: 0:39: 'structure' : non-uniform struct contains a sampler or image: badout
+ERROR: 0:60: 'texel offset' : argument must be compile-time constant
+ERROR: 0:62: 'texel offset' : argument must be compile-time constant
+ERROR: 0:63: 'texel offset' : argument must be compile-time constant
+ERROR: 0:64: 'texel offset' : argument must be compile-time constant
+ERROR: 0:66: 'texel offset' : argument must be compile-time constant
+ERROR: 0:68: 'texel offset' : argument must be compile-time constant
+ERROR: 0:69: 'variable indexing sampler array' : not supported for this version or the enabled extensions
+ERROR: 0:73: 'texel offset' : argument must be compile-time constant
+ERROR: 0:83: 'double' : Reserved word.
+ERROR: 0:83: 'double' : not supported with this profile: es
+ERROR: 0:84: 'dvec2' : Reserved word.
+ERROR: 0:84: 'double vector' : not supported with this profile: es
+ERROR: 0:85: 'dvec3' : Reserved word.
+ERROR: 0:85: 'double vector' : not supported with this profile: es
+ERROR: 0:86: 'dvec4' : Reserved word.
+ERROR: 0:86: 'double vector' : not supported with this profile: es
+ERROR: 0:101: 'arrays of arrays' : not supported for this version or the enabled extensions
+ERROR: 0:102: 'arrays of arrays' : not supported for this version or the enabled extensions
+ERROR: 0:102: 'arrays of arrays' : not supported for this version or the enabled extensions
+ERROR: 0:103: 'arrays of arrays' : not supported for this version or the enabled extensions
+ERROR: 0:100: 'arrays of arrays' : not supported for this version or the enabled extensions
+ERROR: 0:100: 'array-of-array of block' : not supported with this profile: es
+ERROR: 0:111: 'variable indexing fragment shader ouput array' : not supported with this profile: es
+ERROR: 0:119: '==' : can't use with samplers or structs containing samplers
+ERROR: 0:120: '!=' : can't use with samplers or structs containing samplers
+ERROR: 0:121: '==' : can't use with samplers or structs containing samplers
+ERROR: 0:121: '==' : wrong operand types: no operation '==' exists that takes a left-hand operand of type 'global lowp sampler2D' and a right operand of type 'global lowp sampler2D' (or there is no acceptable conversion)
+ERROR: 0:122: '=' : can't use with samplers or structs containing samplers
+ERROR: 0:123: '==' : can't use with samplers or structs containing samplers
+ERROR: 0:129: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]
+ERROR: 0:129: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]
+ERROR: 0:148: 'qualifier' : cannot use auxiliary, memory, interpolation, or precision qualifier in a default qualifier declaration (declaration with no type)
+ERROR: 0:150: 'early_fragment_tests' : not supported for this version or the enabled extensions
+ERROR: 0:156: 'invariant' : can only apply to an output
+ERROR: 0:157: 'invariant' : can only apply to an output
+ERROR: 0:158: 'invariant' : can only apply to an output
+ERROR: 0:160: 'imageBuffer' : Reserved word.
+ERROR: 0:160: '' : syntax error
+ERROR: 45 compilation errors. No code generated.
+
+
+Shader version: 300
+using early_fragment_tests
+ERROR: node is still EOpNull!
+0:53 Function Definition: main( (global void)
+0:53 Function Parameters:
+0:? Sequence
+0:57 move second child to first child (temp lowp 4-component vector of float)
+0:57 'v' (temp lowp 4-component vector of float)
+0:57 texture (global lowp 4-component vector of float)
+0:57 's2D' (uniform lowp sampler2D)
+0:57 'c2D' (smooth in lowp 2-component vector of float)
+0:58 move second child to first child (temp lowp 4-component vector of float)
+0:58 'v' (temp lowp 4-component vector of float)
+0:58 textureProj (global lowp 4-component vector of float)
+0:58 's3D' (uniform lowp sampler3D)
+0:58 'c4D' (smooth temp lowp 4-component vector of float)
+0:59 move second child to first child (temp lowp 4-component vector of float)
+0:59 'v' (temp lowp 4-component vector of float)
+0:59 textureLod (global lowp 4-component vector of float)
+0:59 's2DArray' (uniform lowp sampler2DArray)
+0:59 'c3D' (smooth in lowp 3-component vector of float)
+0:59 Constant:
+0:59 1.200000
+0:60 move second child to first child (temp lowp float)
+0:60 'f' (temp lowp float)
+0:60 textureOffset (global lowp float)
+0:60 's2DShadow' (uniform lowp sampler2DShadow)
+0:60 'c3D' (smooth in lowp 3-component vector of float)
+0:60 'ic2D' (flat in mediump 2-component vector of int)
+0:60 'c1D' (smooth in lowp float)
+0:61 move second child to first child (temp lowp 4-component vector of float)
+0:61 'v' (temp lowp 4-component vector of float)
+0:61 textureFetch (global lowp 4-component vector of float)
+0:61 's3D' (uniform lowp sampler3D)
+0:61 'ic3D' (flat in mediump 3-component vector of int)
+0:61 'ic1D' (flat in mediump int)
+0:62 move second child to first child (temp lowp 4-component vector of float)
+0:62 'v' (temp lowp 4-component vector of float)
+0:62 textureFetchOffset (global lowp 4-component vector of float)
+0:62 direct index (temp lowp sampler2D)
+0:62 'arrayedSampler' (uniform 5-element array of lowp sampler2D)
+0:62 Constant:
+0:62 2 (const int)
+0:62 'ic2D' (flat in mediump 2-component vector of int)
+0:62 Constant:
+0:62 4 (const int)
+0:62 'ic2D' (flat in mediump 2-component vector of int)
+0:63 move second child to first child (temp lowp float)
+0:63 'f' (temp lowp float)
+0:63 textureLodOffset (global lowp float)
+0:63 's2DShadow' (uniform lowp sampler2DShadow)
+0:63 'c3D' (smooth in lowp 3-component vector of float)
+0:63 'c1D' (smooth in lowp float)
+0:63 'ic2D' (flat in mediump 2-component vector of int)
+0:64 move second child to first child (temp lowp 4-component vector of float)
+0:64 'v' (temp lowp 4-component vector of float)
+0:64 textureProjLodOffset (global lowp 4-component vector of float)
+0:64 's2D' (uniform lowp sampler2D)
+0:64 'c3D' (smooth in lowp 3-component vector of float)
+0:64 'c1D' (smooth in lowp float)
+0:64 'ic2D' (flat in mediump 2-component vector of int)
+0:65 move second child to first child (temp lowp 4-component vector of float)
+0:65 'v' (temp lowp 4-component vector of float)
+0:65 textureGrad (global lowp 4-component vector of float)
+0:65 'sCube' (uniform lowp samplerCube)
+0:65 'c3D' (smooth in lowp 3-component vector of float)
+0:65 'c3D' (smooth in lowp 3-component vector of float)
+0:65 'c3D' (smooth in lowp 3-component vector of float)
+0:66 move second child to first child (temp lowp float)
+0:66 'f' (temp lowp float)
+0:66 textureGradOffset (global lowp float)
+0:66 's2DArrayShadow' (uniform lowp sampler2DArrayShadow)
+0:66 'c4D' (smooth temp lowp 4-component vector of float)
+0:66 'c2D' (smooth in lowp 2-component vector of float)
+0:66 'c2D' (smooth in lowp 2-component vector of float)
+0:66 'ic2D' (flat in mediump 2-component vector of int)
+0:67 move second child to first child (temp lowp 4-component vector of float)
+0:67 'v' (temp lowp 4-component vector of float)
+0:67 textureProjGrad (global lowp 4-component vector of float)
+0:67 's3D' (uniform lowp sampler3D)
+0:67 'c4D' (smooth temp lowp 4-component vector of float)
+0:67 'c3D' (smooth in lowp 3-component vector of float)
+0:67 'c3D' (smooth in lowp 3-component vector of float)
+0:68 move second child to first child (temp lowp 4-component vector of float)
+0:68 'v' (temp lowp 4-component vector of float)
+0:68 textureProjGradOffset (global lowp 4-component vector of float)
+0:68 's2D' (uniform lowp sampler2D)
+0:68 'c3D' (smooth in lowp 3-component vector of float)
+0:68 'c2D' (smooth in lowp 2-component vector of float)
+0:68 'c2D' (smooth in lowp 2-component vector of float)
+0:68 'ic2D' (flat in mediump 2-component vector of int)
+0:69 move second child to first child (temp lowp 4-component vector of float)
+0:69 'v' (temp lowp 4-component vector of float)
+0:69 texture (global lowp 4-component vector of float)
+0:69 indirect index (temp lowp sampler2D)
+0:69 'arrayedSampler' (uniform 5-element array of lowp sampler2D)
+0:69 'ic1D' (flat in mediump int)
+0:69 'c2D' (smooth in lowp 2-component vector of float)
+0:72 move second child to first child (temp mediump 4-component vector of int)
+0:72 'iv' (temp mediump 4-component vector of int)
+0:72 texture (global lowp 4-component vector of int)
+0:72 'is2D' (uniform lowp isampler2D)
+0:72 'c2D' (smooth in lowp 2-component vector of float)
+0:73 move second child to first child (temp mediump 4-component vector of int)
+0:73 'iv' (temp mediump 4-component vector of int)
+0:73 textureProjOffset (global lowp 4-component vector of int)
+0:73 'is2D' (uniform lowp isampler2D)
+0:73 'c4D' (smooth temp lowp 4-component vector of float)
+0:73 'ic2D' (flat in mediump 2-component vector of int)
+0:74 move second child to first child (temp mediump 4-component vector of int)
+0:74 'iv' (temp mediump 4-component vector of int)
+0:74 textureProjLod (global lowp 4-component vector of int)
+0:74 'is2D' (uniform lowp isampler2D)
+0:74 'c3D' (smooth in lowp 3-component vector of float)
+0:74 'c1D' (smooth in lowp float)
+0:75 move second child to first child (temp mediump 4-component vector of int)
+0:75 'iv' (temp mediump 4-component vector of int)
+0:75 textureProjGrad (global lowp 4-component vector of int)
+0:75 'is2D' (uniform lowp isampler2D)
+0:75 'c3D' (smooth in lowp 3-component vector of float)
+0:75 'c2D' (smooth in lowp 2-component vector of float)
+0:75 'c2D' (smooth in lowp 2-component vector of float)
+0:76 move second child to first child (temp mediump 4-component vector of int)
+0:76 'iv' (temp mediump 4-component vector of int)
+0:76 texture (global lowp 4-component vector of int)
+0:76 'is3D' (uniform lowp isampler3D)
+0:76 'c3D' (smooth in lowp 3-component vector of float)
+0:76 Constant:
+0:76 4.200000
+0:77 move second child to first child (temp mediump 4-component vector of int)
+0:77 'iv' (temp mediump 4-component vector of int)
+0:77 textureLod (global lowp 4-component vector of int)
+0:77 'isCube' (uniform lowp isamplerCube)
+0:77 'c3D' (smooth in lowp 3-component vector of float)
+0:77 'c1D' (smooth in lowp float)
+0:78 move second child to first child (temp mediump 4-component vector of int)
+0:78 'iv' (temp mediump 4-component vector of int)
+0:78 textureFetch (global lowp 4-component vector of int)
+0:78 'is2DArray' (uniform lowp isampler2DArray)
+0:78 'ic3D' (flat in mediump 3-component vector of int)
+0:78 'ic1D' (flat in mediump int)
+0:80 move second child to first child (temp highp 2-component vector of int)
+0:80 vector swizzle (temp mediump 2-component vector of int)
+0:80 'iv' (temp mediump 4-component vector of int)
+0:80 Sequence
+0:80 Constant:
+0:80 0 (const int)
+0:80 Constant:
+0:80 1 (const int)
+0:80 textureSize (global highp 2-component vector of int)
+0:80 'sCubeShadow' (uniform lowp samplerCubeShadow)
+0:80 Constant:
+0:80 2 (const int)
+0:88 add second child into first child (temp highp float)
+0:88 'f' (temp lowp float)
+0:88 direct index (temp highp float)
+0:88 'gl_FragCoord' (gl_FragCoord highp 4-component vector of float FragCoord)
+0:88 Constant:
+0:88 1 (const int)
+0:89 move second child to first child (temp highp float)
+0:89 'gl_FragDepth' (gl_FragDepth highp float FragDepth)
+0:89 'f' (temp lowp float)
+0:91 move second child to first child (temp lowp 3-component vector of float)
+0:91 'sc' (out lowp 3-component vector of float)
+0:91 c: direct index for structure (global lowp 3-component vector of float)
+0:91 's2' (smooth in structure{global lowp 3-component vector of float c, global lowp float f})
+0:91 Constant:
+0:91 0 (const int)
+0:92 move second child to first child (temp lowp float)
+0:92 'sf' (out lowp float)
+0:92 f: direct index for structure (global lowp float)
+0:92 's2' (smooth in structure{global lowp 3-component vector of float c, global lowp float f})
+0:92 Constant:
+0:92 1 (const int)
+0:94 add (temp lowp 2-component vector of float)
+0:94 hyp. sine (global lowp float)
+0:94 'c1D' (smooth in lowp float)
+0:95 vector-scale (temp lowp 2-component vector of float)
+0:95 hyp. cosine (global lowp float)
+0:95 'c1D' (smooth in lowp float)
+0:95 hyp. tangent (global lowp 2-component vector of float)
+0:95 'c2D' (smooth in lowp 2-component vector of float)
+0:96 add (temp lowp 4-component vector of float)
+0:96 arc hyp. sine (global lowp 4-component vector of float)
+0:96 'c4D' (smooth temp lowp 4-component vector of float)
+0:96 arc hyp. cosine (global lowp 4-component vector of float)
+0:96 'c4D' (smooth temp lowp 4-component vector of float)
+0:97 arc hyp. tangent (global lowp 3-component vector of float)
+0:97 'c3D' (smooth in lowp 3-component vector of float)
+0:108 Function Definition: foo( (global void)
+0:108 Function Parameters:
+0:110 Sequence
+0:110 move second child to first child (temp lowp 4-component vector of float)
+0:110 direct index (temp lowp 4-component vector of float)
+0:110 'colors' (out 4-element array of lowp 4-component vector of float)
+0:110 Constant:
+0:110 2 (const int)
+0:110 'c4D' (smooth temp lowp 4-component vector of float)
+0:111 move second child to first child (temp lowp 4-component vector of float)
+0:111 indirect index (temp lowp 4-component vector of float)
+0:111 'colors' (out 4-element array of lowp 4-component vector of float)
+0:111 'ic1D' (flat in mediump int)
+0:111 'c4D' (smooth temp lowp 4-component vector of float)
+0:117 Function Definition: foo13(struct-s-i1-s211; (global void)
+0:117 Function Parameters:
+0:117 'inSt2' (in structure{global mediump int i, global lowp sampler2D s})
+0:119 Sequence
+0:119 Test condition and select (temp void)
+0:119 Condition
+0:119 Compare Equal (temp bool)
+0:119 'st1' (uniform structure{global mediump int i, global lowp sampler2D s})
+0:119 'st2' (uniform structure{global mediump int i, global lowp sampler2D s})
+0:119 true case is null
+0:120 Test condition and select (temp void)
+0:120 Condition
+0:120 Compare Not Equal (temp bool)
+0:120 'st1' (uniform structure{global mediump int i, global lowp sampler2D s})
+0:120 'st2' (uniform structure{global mediump int i, global lowp sampler2D s})
+0:120 true case is null
+0:121 Constant:
+0:121 false (const bool)
+0:122 move second child to first child (temp structure{global mediump int i, global lowp sampler2D s})
+0:122 'inSt2' (in structure{global mediump int i, global lowp sampler2D s})
+0:122 'st1' (uniform structure{global mediump int i, global lowp sampler2D s})
+0:123 Compare Equal (temp bool)
+0:123 'inSt2' (in structure{global mediump int i, global lowp sampler2D s})
+0:123 'st1' (uniform structure{global mediump int i, global lowp sampler2D s})
+0:126 Function Definition: foo23( (global void)
+0:126 Function Parameters:
+0:128 Sequence
+0:128 textureOffset (global lowp float)
+0:128 's2DShadow' (uniform lowp sampler2DShadow)
+0:128 'c3D' (smooth in lowp 3-component vector of float)
+0:128 Constant:
+0:128 -8 (const int)
+0:128 7 (const int)
+0:128 'c1D' (smooth in lowp float)
+0:129 textureOffset (global lowp float)
+0:129 's2DShadow' (uniform lowp sampler2DShadow)
+0:129 'c3D' (smooth in lowp 3-component vector of float)
+0:129 Constant:
+0:129 -9 (const int)
+0:129 8 (const int)
+0:129 'c1D' (smooth in lowp float)
+0:132 Function Definition: foo324( (global void)
+0:132 Function Parameters:
+0:134 Sequence
+0:134 Sequence
+0:134 move second child to first child (temp lowp float)
+0:134 'p' (temp lowp float)
+0:134 Constant:
+0:134 210.712306
+0:135 add second child into first child (temp lowp float)
+0:135 'p' (temp lowp float)
+0:135 Constant:
+0:135 0.389418
+0:136 add second child into first child (temp lowp float)
+0:136 'p' (temp lowp float)
+0:136 Constant:
+0:136 5.000000
+0:137 add second child into first child (temp lowp float)
+0:137 'p' (temp lowp float)
+0:137 Constant:
+0:137 13.000000
+0:138 Sequence
+0:138 move second child to first child (temp lowp 3-component vector of float)
+0:138 'c3' (temp lowp 3-component vector of float)
+0:138 Constant:
+0:138 -15.000000
+0:138 -2.000000
+0:138 39.000000
+0:139 add second child into first child (temp lowp 3-component vector of float)
+0:139 'c3' (temp lowp 3-component vector of float)
+0:139 Constant:
+0:139 -1.000000
+0:139 -2.000000
+0:139 -3.000000
+0:140 add second child into first child (temp lowp 3-component vector of float)
+0:140 'c3' (temp lowp 3-component vector of float)
+0:140 Constant:
+0:140 1.000000
+0:140 2.000000
+0:140 3.000000
+0:141 Sequence
+0:141 move second child to first child (temp lowp 2-component vector of float)
+0:141 'c2' (temp lowp 2-component vector of float)
+0:141 Constant:
+0:141 1.000000
+0:141 -3.000000
+0:142 add second child into first child (temp lowp 2-component vector of float)
+0:142 'c2' (temp lowp 2-component vector of float)
+0:142 Constant:
+0:142 1.000000
+0:142 -3.000000
+0:143 add second child into first child (temp lowp 2-component vector of float)
+0:143 'c2' (temp lowp 2-component vector of float)
+0:143 Constant:
+0:143 3.000000
+0:143 -8.544004
+0:144 add second child into first child (temp lowp 2-component vector of float)
+0:144 'c2' (temp lowp 2-component vector of float)
+0:144 Constant:
+0:144 0.000000
+0:144 0.000000
+0:145 Sequence
+0:145 move second child to first child (temp lowp 3X2 matrix of float)
+0:145 'm32' (temp lowp 3X2 matrix of float)
+0:145 Constant:
+0:145 10.000000
+0:145 15.000000
+0:145 14.000000
+0:145 21.000000
+0:145 22.000000
+0:145 33.000000
+0:? Linker Objects
+0:? 's2D' (uniform lowp sampler2D)
+0:? 's3D' (uniform lowp sampler3D)
+0:? 'sCube' (uniform lowp samplerCube)
+0:? 'sCubeShadow' (uniform lowp samplerCubeShadow)
+0:? 's2DShadow' (uniform lowp sampler2DShadow)
+0:? 's2DArray' (uniform lowp sampler2DArray)
+0:? 's2DArrayShadow' (uniform lowp sampler2DArrayShadow)
+0:? 'is2D' (uniform lowp isampler2D)
+0:? 'is3D' (uniform lowp isampler3D)
+0:? 'isCube' (uniform lowp isamplerCube)
+0:? 'is2DArray' (uniform lowp isampler2DArray)
+0:? 'us2D' (uniform lowp usampler2D)
+0:? 'us3D' (uniform lowp usampler3D)
+0:? 'usCube' (uniform lowp usamplerCube)
+0:? 'us2DArray' (uniform lowp usampler2DArray)
+0:? 'c1D' (smooth in lowp float)
+0:? 'c2D' (smooth in lowp 2-component vector of float)
+0:? 'c3D' (smooth in lowp 3-component vector of float)
+0:? 'c4D' (smooth temp lowp 4-component vector of float)
+0:? 'ic1D' (flat in mediump int)
+0:? 'ic2D' (flat in mediump 2-component vector of int)
+0:? 'ic3D' (flat in mediump 3-component vector of int)
+0:? 'ic4D' (flat in mediump 4-component vector of int)
+0:? 'badv' (noperspective in lowp 4-component vector of float)
+0:? 'bads' (smooth in lowp sampler2D)
+0:? 'badout' (smooth in structure{global mediump int i, global lowp sampler2D s})
+0:? 's2' (smooth in structure{global lowp 3-component vector of float c, global lowp float f})
+0:? 'sc' (out lowp 3-component vector of float)
+0:? 'sf' (out lowp float)
+0:? 'arrayedSampler' (uniform 5-element array of lowp sampler2D)
+0:? 'multiInst' (layout(column_major shared ) uniform 2-element array of 3-element array of block{layout(column_major shared ) uniform 2-element array of mediump int a, layout(column_major shared ) uniform 2-element array of 3-element array of mediump int b, layout(column_major shared ) uniform 2-element array of 3-element array of mediump int c})
+0:? 'colors' (out 4-element array of lowp 4-component vector of float)
+0:? 'st1' (uniform structure{global mediump int i, global lowp sampler2D s})
+0:? 'st2' (uniform structure{global mediump int i, global lowp sampler2D s})
+0:? 'fooinv' (invariant smooth in lowp 4-component vector of float)
+
+
+Linked fragment stage:
+
+ERROR: Linking fragment stage: when more than one fragment shader output, all must have location qualifiers
+
+Shader version: 300
+using early_fragment_tests
+ERROR: node is still EOpNull!
+0:53 Function Definition: main( (global void)
+0:53 Function Parameters:
+0:? Sequence
+0:57 move second child to first child (temp lowp 4-component vector of float)
+0:57 'v' (temp lowp 4-component vector of float)
+0:57 texture (global lowp 4-component vector of float)
+0:57 's2D' (uniform lowp sampler2D)
+0:57 'c2D' (smooth in lowp 2-component vector of float)
+0:58 move second child to first child (temp lowp 4-component vector of float)
+0:58 'v' (temp lowp 4-component vector of float)
+0:58 textureProj (global lowp 4-component vector of float)
+0:58 's3D' (uniform lowp sampler3D)
+0:58 'c4D' (smooth temp lowp 4-component vector of float)
+0:59 move second child to first child (temp lowp 4-component vector of float)
+0:59 'v' (temp lowp 4-component vector of float)
+0:59 textureLod (global lowp 4-component vector of float)
+0:59 's2DArray' (uniform lowp sampler2DArray)
+0:59 'c3D' (smooth in lowp 3-component vector of float)
+0:59 Constant:
+0:59 1.200000
+0:60 move second child to first child (temp lowp float)
+0:60 'f' (temp lowp float)
+0:60 textureOffset (global lowp float)
+0:60 's2DShadow' (uniform lowp sampler2DShadow)
+0:60 'c3D' (smooth in lowp 3-component vector of float)
+0:60 'ic2D' (flat in mediump 2-component vector of int)
+0:60 'c1D' (smooth in lowp float)
+0:61 move second child to first child (temp lowp 4-component vector of float)
+0:61 'v' (temp lowp 4-component vector of float)
+0:61 textureFetch (global lowp 4-component vector of float)
+0:61 's3D' (uniform lowp sampler3D)
+0:61 'ic3D' (flat in mediump 3-component vector of int)
+0:61 'ic1D' (flat in mediump int)
+0:62 move second child to first child (temp lowp 4-component vector of float)
+0:62 'v' (temp lowp 4-component vector of float)
+0:62 textureFetchOffset (global lowp 4-component vector of float)
+0:62 direct index (temp lowp sampler2D)
+0:62 'arrayedSampler' (uniform 5-element array of lowp sampler2D)
+0:62 Constant:
+0:62 2 (const int)
+0:62 'ic2D' (flat in mediump 2-component vector of int)
+0:62 Constant:
+0:62 4 (const int)
+0:62 'ic2D' (flat in mediump 2-component vector of int)
+0:63 move second child to first child (temp lowp float)
+0:63 'f' (temp lowp float)
+0:63 textureLodOffset (global lowp float)
+0:63 's2DShadow' (uniform lowp sampler2DShadow)
+0:63 'c3D' (smooth in lowp 3-component vector of float)
+0:63 'c1D' (smooth in lowp float)
+0:63 'ic2D' (flat in mediump 2-component vector of int)
+0:64 move second child to first child (temp lowp 4-component vector of float)
+0:64 'v' (temp lowp 4-component vector of float)
+0:64 textureProjLodOffset (global lowp 4-component vector of float)
+0:64 's2D' (uniform lowp sampler2D)
+0:64 'c3D' (smooth in lowp 3-component vector of float)
+0:64 'c1D' (smooth in lowp float)
+0:64 'ic2D' (flat in mediump 2-component vector of int)
+0:65 move second child to first child (temp lowp 4-component vector of float)
+0:65 'v' (temp lowp 4-component vector of float)
+0:65 textureGrad (global lowp 4-component vector of float)
+0:65 'sCube' (uniform lowp samplerCube)
+0:65 'c3D' (smooth in lowp 3-component vector of float)
+0:65 'c3D' (smooth in lowp 3-component vector of float)
+0:65 'c3D' (smooth in lowp 3-component vector of float)
+0:66 move second child to first child (temp lowp float)
+0:66 'f' (temp lowp float)
+0:66 textureGradOffset (global lowp float)
+0:66 's2DArrayShadow' (uniform lowp sampler2DArrayShadow)
+0:66 'c4D' (smooth temp lowp 4-component vector of float)
+0:66 'c2D' (smooth in lowp 2-component vector of float)
+0:66 'c2D' (smooth in lowp 2-component vector of float)
+0:66 'ic2D' (flat in mediump 2-component vector of int)
+0:67 move second child to first child (temp lowp 4-component vector of float)
+0:67 'v' (temp lowp 4-component vector of float)
+0:67 textureProjGrad (global lowp 4-component vector of float)
+0:67 's3D' (uniform lowp sampler3D)
+0:67 'c4D' (smooth temp lowp 4-component vector of float)
+0:67 'c3D' (smooth in lowp 3-component vector of float)
+0:67 'c3D' (smooth in lowp 3-component vector of float)
+0:68 move second child to first child (temp lowp 4-component vector of float)
+0:68 'v' (temp lowp 4-component vector of float)
+0:68 textureProjGradOffset (global lowp 4-component vector of float)
+0:68 's2D' (uniform lowp sampler2D)
+0:68 'c3D' (smooth in lowp 3-component vector of float)
+0:68 'c2D' (smooth in lowp 2-component vector of float)
+0:68 'c2D' (smooth in lowp 2-component vector of float)
+0:68 'ic2D' (flat in mediump 2-component vector of int)
+0:69 move second child to first child (temp lowp 4-component vector of float)
+0:69 'v' (temp lowp 4-component vector of float)
+0:69 texture (global lowp 4-component vector of float)
+0:69 indirect index (temp lowp sampler2D)
+0:69 'arrayedSampler' (uniform 5-element array of lowp sampler2D)
+0:69 'ic1D' (flat in mediump int)
+0:69 'c2D' (smooth in lowp 2-component vector of float)
+0:72 move second child to first child (temp mediump 4-component vector of int)
+0:72 'iv' (temp mediump 4-component vector of int)
+0:72 texture (global lowp 4-component vector of int)
+0:72 'is2D' (uniform lowp isampler2D)
+0:72 'c2D' (smooth in lowp 2-component vector of float)
+0:73 move second child to first child (temp mediump 4-component vector of int)
+0:73 'iv' (temp mediump 4-component vector of int)
+0:73 textureProjOffset (global lowp 4-component vector of int)
+0:73 'is2D' (uniform lowp isampler2D)
+0:73 'c4D' (smooth temp lowp 4-component vector of float)
+0:73 'ic2D' (flat in mediump 2-component vector of int)
+0:74 move second child to first child (temp mediump 4-component vector of int)
+0:74 'iv' (temp mediump 4-component vector of int)
+0:74 textureProjLod (global lowp 4-component vector of int)
+0:74 'is2D' (uniform lowp isampler2D)
+0:74 'c3D' (smooth in lowp 3-component vector of float)
+0:74 'c1D' (smooth in lowp float)
+0:75 move second child to first child (temp mediump 4-component vector of int)
+0:75 'iv' (temp mediump 4-component vector of int)
+0:75 textureProjGrad (global lowp 4-component vector of int)
+0:75 'is2D' (uniform lowp isampler2D)
+0:75 'c3D' (smooth in lowp 3-component vector of float)
+0:75 'c2D' (smooth in lowp 2-component vector of float)
+0:75 'c2D' (smooth in lowp 2-component vector of float)
+0:76 move second child to first child (temp mediump 4-component vector of int)
+0:76 'iv' (temp mediump 4-component vector of int)
+0:76 texture (global lowp 4-component vector of int)
+0:76 'is3D' (uniform lowp isampler3D)
+0:76 'c3D' (smooth in lowp 3-component vector of float)
+0:76 Constant:
+0:76 4.200000
+0:77 move second child to first child (temp mediump 4-component vector of int)
+0:77 'iv' (temp mediump 4-component vector of int)
+0:77 textureLod (global lowp 4-component vector of int)
+0:77 'isCube' (uniform lowp isamplerCube)
+0:77 'c3D' (smooth in lowp 3-component vector of float)
+0:77 'c1D' (smooth in lowp float)
+0:78 move second child to first child (temp mediump 4-component vector of int)
+0:78 'iv' (temp mediump 4-component vector of int)
+0:78 textureFetch (global lowp 4-component vector of int)
+0:78 'is2DArray' (uniform lowp isampler2DArray)
+0:78 'ic3D' (flat in mediump 3-component vector of int)
+0:78 'ic1D' (flat in mediump int)
+0:80 move second child to first child (temp highp 2-component vector of int)
+0:80 vector swizzle (temp mediump 2-component vector of int)
+0:80 'iv' (temp mediump 4-component vector of int)
+0:80 Sequence
+0:80 Constant:
+0:80 0 (const int)
+0:80 Constant:
+0:80 1 (const int)
+0:80 textureSize (global highp 2-component vector of int)
+0:80 'sCubeShadow' (uniform lowp samplerCubeShadow)
+0:80 Constant:
+0:80 2 (const int)
+0:88 add second child into first child (temp highp float)
+0:88 'f' (temp lowp float)
+0:88 direct index (temp highp float)
+0:88 'gl_FragCoord' (gl_FragCoord highp 4-component vector of float FragCoord)
+0:88 Constant:
+0:88 1 (const int)
+0:89 move second child to first child (temp highp float)
+0:89 'gl_FragDepth' (gl_FragDepth highp float FragDepth)
+0:89 'f' (temp lowp float)
+0:91 move second child to first child (temp lowp 3-component vector of float)
+0:91 'sc' (out lowp 3-component vector of float)
+0:91 c: direct index for structure (global lowp 3-component vector of float)
+0:91 's2' (smooth in structure{global lowp 3-component vector of float c, global lowp float f})
+0:91 Constant:
+0:91 0 (const int)
+0:92 move second child to first child (temp lowp float)
+0:92 'sf' (out lowp float)
+0:92 f: direct index for structure (global lowp float)
+0:92 's2' (smooth in structure{global lowp 3-component vector of float c, global lowp float f})
+0:92 Constant:
+0:92 1 (const int)
+0:94 add (temp lowp 2-component vector of float)
+0:94 hyp. sine (global lowp float)
+0:94 'c1D' (smooth in lowp float)
+0:95 vector-scale (temp lowp 2-component vector of float)
+0:95 hyp. cosine (global lowp float)
+0:95 'c1D' (smooth in lowp float)
+0:95 hyp. tangent (global lowp 2-component vector of float)
+0:95 'c2D' (smooth in lowp 2-component vector of float)
+0:96 add (temp lowp 4-component vector of float)
+0:96 arc hyp. sine (global lowp 4-component vector of float)
+0:96 'c4D' (smooth temp lowp 4-component vector of float)
+0:96 arc hyp. cosine (global lowp 4-component vector of float)
+0:96 'c4D' (smooth temp lowp 4-component vector of float)
+0:97 arc hyp. tangent (global lowp 3-component vector of float)
+0:97 'c3D' (smooth in lowp 3-component vector of float)
+0:108 Function Definition: foo( (global void)
+0:108 Function Parameters:
+0:110 Sequence
+0:110 move second child to first child (temp lowp 4-component vector of float)
+0:110 direct index (temp lowp 4-component vector of float)
+0:110 'colors' (out 4-element array of lowp 4-component vector of float)
+0:110 Constant:
+0:110 2 (const int)
+0:110 'c4D' (smooth temp lowp 4-component vector of float)
+0:111 move second child to first child (temp lowp 4-component vector of float)
+0:111 indirect index (temp lowp 4-component vector of float)
+0:111 'colors' (out 4-element array of lowp 4-component vector of float)
+0:111 'ic1D' (flat in mediump int)
+0:111 'c4D' (smooth temp lowp 4-component vector of float)
+0:117 Function Definition: foo13(struct-s-i1-s211; (global void)
+0:117 Function Parameters:
+0:117 'inSt2' (in structure{global mediump int i, global lowp sampler2D s})
+0:119 Sequence
+0:119 Test condition and select (temp void)
+0:119 Condition
+0:119 Compare Equal (temp bool)
+0:119 'st1' (uniform structure{global mediump int i, global lowp sampler2D s})
+0:119 'st2' (uniform structure{global mediump int i, global lowp sampler2D s})
+0:119 true case is null
+0:120 Test condition and select (temp void)
+0:120 Condition
+0:120 Compare Not Equal (temp bool)
+0:120 'st1' (uniform structure{global mediump int i, global lowp sampler2D s})
+0:120 'st2' (uniform structure{global mediump int i, global lowp sampler2D s})
+0:120 true case is null
+0:121 Constant:
+0:121 false (const bool)
+0:122 move second child to first child (temp structure{global mediump int i, global lowp sampler2D s})
+0:122 'inSt2' (in structure{global mediump int i, global lowp sampler2D s})
+0:122 'st1' (uniform structure{global mediump int i, global lowp sampler2D s})
+0:123 Compare Equal (temp bool)
+0:123 'inSt2' (in structure{global mediump int i, global lowp sampler2D s})
+0:123 'st1' (uniform structure{global mediump int i, global lowp sampler2D s})
+0:126 Function Definition: foo23( (global void)
+0:126 Function Parameters:
+0:128 Sequence
+0:128 textureOffset (global lowp float)
+0:128 's2DShadow' (uniform lowp sampler2DShadow)
+0:128 'c3D' (smooth in lowp 3-component vector of float)
+0:128 Constant:
+0:128 -8 (const int)
+0:128 7 (const int)
+0:128 'c1D' (smooth in lowp float)
+0:129 textureOffset (global lowp float)
+0:129 's2DShadow' (uniform lowp sampler2DShadow)
+0:129 'c3D' (smooth in lowp 3-component vector of float)
+0:129 Constant:
+0:129 -9 (const int)
+0:129 8 (const int)
+0:129 'c1D' (smooth in lowp float)
+0:132 Function Definition: foo324( (global void)
+0:132 Function Parameters:
+0:134 Sequence
+0:134 Sequence
+0:134 move second child to first child (temp lowp float)
+0:134 'p' (temp lowp float)
+0:134 Constant:
+0:134 210.712306
+0:135 add second child into first child (temp lowp float)
+0:135 'p' (temp lowp float)
+0:135 Constant:
+0:135 0.389418
+0:136 add second child into first child (temp lowp float)
+0:136 'p' (temp lowp float)
+0:136 Constant:
+0:136 5.000000
+0:137 add second child into first child (temp lowp float)
+0:137 'p' (temp lowp float)
+0:137 Constant:
+0:137 13.000000
+0:138 Sequence
+0:138 move second child to first child (temp lowp 3-component vector of float)
+0:138 'c3' (temp lowp 3-component vector of float)
+0:138 Constant:
+0:138 -15.000000
+0:138 -2.000000
+0:138 39.000000
+0:139 add second child into first child (temp lowp 3-component vector of float)
+0:139 'c3' (temp lowp 3-component vector of float)
+0:139 Constant:
+0:139 -1.000000
+0:139 -2.000000
+0:139 -3.000000
+0:140 add second child into first child (temp lowp 3-component vector of float)
+0:140 'c3' (temp lowp 3-component vector of float)
+0:140 Constant:
+0:140 1.000000
+0:140 2.000000
+0:140 3.000000
+0:141 Sequence
+0:141 move second child to first child (temp lowp 2-component vector of float)
+0:141 'c2' (temp lowp 2-component vector of float)
+0:141 Constant:
+0:141 1.000000
+0:141 -3.000000
+0:142 add second child into first child (temp lowp 2-component vector of float)
+0:142 'c2' (temp lowp 2-component vector of float)
+0:142 Constant:
+0:142 1.000000
+0:142 -3.000000
+0:143 add second child into first child (temp lowp 2-component vector of float)
+0:143 'c2' (temp lowp 2-component vector of float)
+0:143 Constant:
+0:143 3.000000
+0:143 -8.544004
+0:144 add second child into first child (temp lowp 2-component vector of float)
+0:144 'c2' (temp lowp 2-component vector of float)
+0:144 Constant:
+0:144 0.000000
+0:144 0.000000
+0:145 Sequence
+0:145 move second child to first child (temp lowp 3X2 matrix of float)
+0:145 'm32' (temp lowp 3X2 matrix of float)
+0:145 Constant:
+0:145 10.000000
+0:145 15.000000
+0:145 14.000000
+0:145 21.000000
+0:145 22.000000
+0:145 33.000000
+0:? Linker Objects
+0:? 's2D' (uniform lowp sampler2D)
+0:? 's3D' (uniform lowp sampler3D)
+0:? 'sCube' (uniform lowp samplerCube)
+0:? 'sCubeShadow' (uniform lowp samplerCubeShadow)
+0:? 's2DShadow' (uniform lowp sampler2DShadow)
+0:? 's2DArray' (uniform lowp sampler2DArray)
+0:? 's2DArrayShadow' (uniform lowp sampler2DArrayShadow)
+0:? 'is2D' (uniform lowp isampler2D)
+0:? 'is3D' (uniform lowp isampler3D)
+0:? 'isCube' (uniform lowp isamplerCube)
+0:? 'is2DArray' (uniform lowp isampler2DArray)
+0:? 'us2D' (uniform lowp usampler2D)
+0:? 'us3D' (uniform lowp usampler3D)
+0:? 'usCube' (uniform lowp usamplerCube)
+0:? 'us2DArray' (uniform lowp usampler2DArray)
+0:? 'c1D' (smooth in lowp float)
+0:? 'c2D' (smooth in lowp 2-component vector of float)
+0:? 'c3D' (smooth in lowp 3-component vector of float)
+0:? 'c4D' (smooth temp lowp 4-component vector of float)
+0:? 'ic1D' (flat in mediump int)
+0:? 'ic2D' (flat in mediump 2-component vector of int)
+0:? 'ic3D' (flat in mediump 3-component vector of int)
+0:? 'ic4D' (flat in mediump 4-component vector of int)
+0:? 'badv' (noperspective in lowp 4-component vector of float)
+0:? 'bads' (smooth in lowp sampler2D)
+0:? 'badout' (smooth in structure{global mediump int i, global lowp sampler2D s})
+0:? 's2' (smooth in structure{global lowp 3-component vector of float c, global lowp float f})
+0:? 'sc' (out lowp 3-component vector of float)
+0:? 'sf' (out lowp float)
+0:? 'arrayedSampler' (uniform 5-element array of lowp sampler2D)
+0:? 'multiInst' (layout(column_major shared ) uniform 2-element array of 3-element array of block{layout(column_major shared ) uniform 2-element array of mediump int a, layout(column_major shared ) uniform 2-element array of 3-element array of mediump int b, layout(column_major shared ) uniform 2-element array of 3-element array of mediump int c})
+0:? 'colors' (out 4-element array of lowp 4-component vector of float)
+0:? 'st1' (uniform structure{global mediump int i, global lowp sampler2D s})
+0:? 'st2' (uniform structure{global mediump int i, global lowp sampler2D s})
+0:? 'fooinv' (invariant smooth in lowp 4-component vector of float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/300.vert.out b/chromium/third_party/glslang/src/Test/baseResults/300.vert.out
new file mode 100644
index 00000000000..80745abedcd
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/300.vert.out
@@ -0,0 +1,612 @@
+300.vert
+ERROR: 0:8: 'varying' : Reserved word.
+ERROR: 0:8: 'varying' : no longer supported in es profile; removed in version 300
+ERROR: 0:9: 'vertex input arrays' : not supported with this profile: es
+ERROR: 0:10: '' : precision qualifier must appear as last qualifier
+ERROR: 0:11: '' : invariant qualifier must appear before interpolation, storage, and precision qualifiers
+ERROR: 0:12: '' : Auxiliary qualifiers (centroid, patch, and sample) must appear before storage and precision qualifiers
+ERROR: 0:12: '' : vertex input cannot be further qualified
+ERROR: 0:13: '' : interpolation qualifiers must appear before storage and precision qualifiers
+ERROR: 0:14: '' : in/out must appear before const
+ERROR: 0:15: '' : precision qualifier must appear as last qualifier
+ERROR: 0:16: '' : can only have one interpolation qualifier (flat, smooth, noperspective)
+ERROR: 0:17: 'sample' : Reserved word.
+ERROR: 0:17: '' : can only have one auxiliary qualifier (centroid, patch, and sample)
+ERROR: 0:18: 'uniform' : too many storage qualifiers
+ERROR: 0:56: '#error' : GL_ES is set
+ERROR: 0:62: '' : array size required
+ERROR: 0:63: '' : array size required
+ERROR: 0:64: '' : array size required
+ERROR: 0:65: '' : array size required
+ERROR: 0:67: '' : array size required
+ERROR: 0:76: 'invariant' : cannot change qualification after use
+ERROR: 0:78: 'invariant' : can only apply to an output
+ERROR: 0:88: 'ub2' : Cannot reuse block name within the same interface: uniform
+ERROR: 0:92: 'ub2' : Cannot reuse block name within the same interface: uniform
+ERROR: 0:96: 'ub2' : Cannot reuse block name within the same interface: uniform
+ERROR: 0:104: 'ub3' : Cannot reuse block name within the same interface: uniform
+ERROR: 0:121: 'textureSize' : no matching overloaded function found
+ERROR: 0:123: 'textureSize' : no matching overloaded function found
+ERROR: 0:125: 'texture' : no matching overloaded function found
+ERROR: 0:127: 'textureProjOffset' : no matching overloaded function found
+ERROR: 0:132: 'highp' : overloaded functions must have the same parameter precision qualifiers for argument 2
+ERROR: 0:135: 'in' : overloaded functions must have the same parameter storage qualifiers for argument 2
+ERROR: 0:146: '' : array size required
+ERROR: 0:147: '' : array size required
+ERROR: 0:148: '' : array size required
+ERROR: 0:149: 'float' : cannot apply precision statement to this type; use 'float', 'int' or a sampler type
+ERROR: 0:168: 'Binst' : cannot add storage, auxiliary, memory, interpolation, layout, or precision qualifier to an existing variable
+ERROR: 0:169: 'Bblock' : cannot add storage, auxiliary, memory, interpolation, layout, or precision qualifier to an existing variable
+ERROR: 0:170: 'Bfoo' : cannot add storage, auxiliary, memory, interpolation, layout, or precision qualifier to an existing variable
+ERROR: 0:172: 'std430' : not supported for this version or the enabled extensions
+ERROR: 0:172: 'std430' : requires the 'buffer' storage qualifier
+ERROR: 0:175: '' : array size required
+ERROR: 0:185: 'assign' : cannot convert from 'temp 4-element array of highp float' to 'temp 3-element array of highp float'
+ERROR: 0:186: 'assign' : cannot convert from 'temp 3-element array of highp float' to 'temp 4-element array of highp float'
+ERROR: 44 compilation errors. No code generated.
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:27 Function Definition: main( (global void)
+0:27 Function Parameters:
+0:29 Sequence
+0:29 Sequence
+0:29 move second child to first child (temp highp int)
+0:29 'id' (temp highp int)
+0:29 add (temp highp int)
+0:29 'gl_VertexID' (gl_VertexId highp int VertexId)
+0:29 'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+0:31 Sequence
+0:31 move second child to first child (temp highp int)
+0:31 'c0' (temp highp int)
+0:31 Constant:
+0:31 64 (const int)
+0:32 Sequence
+0:32 move second child to first child (temp highp int)
+0:32 'c1' (temp highp int)
+0:32 Constant:
+0:32 128 (const int)
+0:33 Sequence
+0:33 move second child to first child (temp highp int)
+0:33 'c2' (temp highp int)
+0:33 Constant:
+0:33 16 (const int)
+0:34 Sequence
+0:34 move second child to first child (temp highp int)
+0:34 'c3' (temp highp int)
+0:34 Constant:
+0:34 15 (const int)
+0:35 Sequence
+0:35 move second child to first child (temp highp int)
+0:35 'c4' (temp highp int)
+0:35 Constant:
+0:35 32 (const int)
+0:36 Sequence
+0:36 move second child to first child (temp highp int)
+0:36 'c5' (temp highp int)
+0:36 Constant:
+0:36 80 (const int)
+0:37 Sequence
+0:37 move second child to first child (temp highp int)
+0:37 'c6' (temp highp int)
+0:37 Constant:
+0:37 32 (const int)
+0:38 Sequence
+0:38 move second child to first child (temp highp int)
+0:38 'c7' (temp highp int)
+0:38 Constant:
+0:38 16 (const int)
+0:39 Sequence
+0:39 move second child to first child (temp highp int)
+0:39 'c8' (temp highp int)
+0:39 Constant:
+0:39 32 (const int)
+0:40 Sequence
+0:40 move second child to first child (temp highp int)
+0:40 'c9' (temp highp int)
+0:40 Constant:
+0:40 -8 (const int)
+0:41 Sequence
+0:41 move second child to first child (temp highp int)
+0:41 'c10' (temp highp int)
+0:41 Constant:
+0:41 7 (const int)
+0:43 Sequence
+0:43 move second child to first child (temp highp 3X4 matrix of float)
+0:43 'tm' (temp highp 3X4 matrix of float)
+0:43 transpose (global highp 3X4 matrix of float)
+0:43 'm43' (uniform highp 4X3 matrix of float)
+0:44 Sequence
+0:44 move second child to first child (temp highp float)
+0:44 'dm' (temp highp float)
+0:44 determinant (global highp float)
+0:44 'm44' (uniform highp 4X4 matrix of float)
+0:45 Sequence
+0:45 move second child to first child (temp highp 3X3 matrix of float)
+0:45 'im' (temp highp 3X3 matrix of float)
+0:45 inverse (global highp 3X3 matrix of float)
+0:45 'm33' (uniform highp 3X3 matrix of float)
+0:47 Sequence
+0:47 move second child to first child (temp highp 3X2 matrix of float)
+0:47 'op' (temp highp 3X2 matrix of float)
+0:47 outer product (global highp 3X2 matrix of float)
+0:47 'v2' (smooth out highp 2-component vector of float)
+0:47 'v3' (in highp 3-component vector of float)
+0:49 move second child to first child (temp highp 4-component vector of float)
+0:49 'gl_Position' (gl_Position highp 4-component vector of float Position)
+0:49 direct index (temp highp 4-component vector of float)
+0:49 'm44' (uniform highp 4X4 matrix of float)
+0:49 Constant:
+0:49 2 (const int)
+0:50 move second child to first child (temp highp float)
+0:50 'gl_PointSize' (gl_PointSize highp float PointSize)
+0:50 direct index (temp highp float)
+0:50 'v2' (smooth out highp 2-component vector of float)
+0:50 Constant:
+0:50 1 (const int)
+0:52 move second child to first child (temp highp 3-component vector of float)
+0:52 c: direct index for structure (global highp 3-component vector of float)
+0:52 's' (smooth out structure{global highp 3-component vector of float c, global highp float f})
+0:52 Constant:
+0:52 0 (const int)
+0:52 'v3' (in highp 3-component vector of float)
+0:53 move second child to first child (temp highp float)
+0:53 f: direct index for structure (global highp float)
+0:53 's' (smooth out structure{global highp 3-component vector of float c, global highp float f})
+0:53 Constant:
+0:53 1 (const int)
+0:53 'dm' (temp highp float)
+0:68 Sequence
+0:68 move second child to first child (temp 2-element array of highp float)
+0:68 'okayA' (global 2-element array of highp float)
+0:68 Constant:
+0:68 3.000000
+0:68 4.000000
+0:71 Function Definition: newVFun( (global void)
+0:71 Function Parameters:
+0:73 Sequence
+0:73 move second child to first child (temp highp 3-component vector of float)
+0:73 'newV' (smooth out highp 3-component vector of float)
+0:73 'v3' (in highp 3-component vector of float)
+0:118 Function Definition: foo23( (global void)
+0:118 Function Parameters:
+0:120 Sequence
+0:120 Sequence
+0:120 move second child to first child (temp highp 2-component vector of int)
+0:120 'x1' (temp highp 2-component vector of int)
+0:120 textureSize (global highp 2-component vector of int)
+0:120 's2D' (uniform lowp sampler2D)
+0:120 Constant:
+0:120 2 (const int)
+0:121 Constant:
+0:121 0.000000
+0:122 Sequence
+0:122 move second child to first child (temp highp 3-component vector of int)
+0:122 'x3' (temp highp 3-component vector of int)
+0:122 textureSize (global highp 3-component vector of int)
+0:122 's2DAS' (uniform lowp sampler2DArrayShadow)
+0:122 Constant:
+0:122 -1 (const int)
+0:123 Constant:
+0:123 0.000000
+0:124 Sequence
+0:124 move second child to first child (temp highp 4-component vector of float)
+0:124 'x4' (temp highp 4-component vector of float)
+0:124 texture (global lowp 4-component vector of float)
+0:124 's2D' (uniform lowp sampler2D)
+0:124 'c2D' (in highp 2-component vector of float)
+0:125 Constant:
+0:125 0.000000
+0:126 Sequence
+0:126 move second child to first child (temp highp 4-component vector of float)
+0:126 'x5' (temp highp 4-component vector of float)
+0:126 textureProjOffset (global lowp 4-component vector of float)
+0:126 's3D' (uniform lowp sampler3D)
+0:126 Constant:
+0:126 0.200000
+0:126 0.200000
+0:126 0.200000
+0:126 0.200000
+0:126 Constant:
+0:126 1 (const int)
+0:126 1 (const int)
+0:126 1 (const int)
+0:127 Constant:
+0:127 0.000000
+0:128 Sequence
+0:128 move second child to first child (temp highp float)
+0:128 'x6' (temp highp float)
+0:128 textureProjGradOffset (global lowp float)
+0:128 's2DS' (uniform lowp sampler2DShadow)
+0:128 'invIn' (invariant in highp 4-component vector of float)
+0:128 Constant:
+0:128 4.200000
+0:128 4.200000
+0:128 Constant:
+0:128 5.300000
+0:128 5.300000
+0:128 Constant:
+0:128 1 (const int)
+0:128 1 (const int)
+0:137 Function Definition: foo2349( (global void)
+0:137 Function Parameters:
+0:139 Sequence
+0:139 Sequence
+0:139 move second child to first child (temp 3-element array of highp float)
+0:139 'x' (temp 3-element array of highp float)
+0:139 Constant:
+0:139 1.000000
+0:139 2.000000
+0:139 3.000000
+0:140 Sequence
+0:140 move second child to first child (temp 3-element array of highp float)
+0:140 'y' (temp 3-element array of highp float)
+0:140 'x' (temp 3-element array of highp float)
+0:141 Sequence
+0:141 move second child to first child (temp 3-element array of highp float)
+0:141 'z' (temp 3-element array of highp float)
+0:141 'x' (temp 3-element array of highp float)
+0:143 move second child to first child (temp 3-element array of highp float)
+0:143 'w' (temp 3-element array of highp float)
+0:143 'y' (temp 3-element array of highp float)
+0:155 Function Definition: gggf(f1; (global highp int)
+0:155 Function Parameters:
+0:155 'f' (in highp float)
+0:155 Sequence
+0:155 Branch: Return with expression
+0:155 Constant:
+0:155 2 (const int)
+0:158 Function Definition: agggf(f1; (global highp int)
+0:158 Function Parameters:
+0:158 'f' (in highp float)
+0:158 Sequence
+0:158 Branch: Return with expression
+0:158 Constant:
+0:158 2 (const int)
+0:178 Function Definition: fooDeeparray( (global void)
+0:178 Function Parameters:
+0:181 Sequence
+0:181 Sequence
+0:180 move second child to first child (temp 3-element array of highp float)
+0:180 'x' (temp 3-element array of highp float)
+0:180 Constant:
+0:180 1.000000
+0:180 2.000000
+0:180 3.000000
+0:181 move second child to first child (temp 4-element array of highp float)
+0:181 'y' (temp 4-element array of highp float)
+0:181 Constant:
+0:181 1.000000
+0:181 2.000000
+0:181 3.000000
+0:181 4.000000
+0:183 move second child to first child (temp 3-element array of highp float)
+0:183 'xp' (temp 3-element array of highp float)
+0:183 'x' (temp 3-element array of highp float)
+0:184 move second child to first child (temp 4-element array of highp float)
+0:184 'yp' (temp 4-element array of highp float)
+0:184 'y' (temp 4-element array of highp float)
+0:185 'xp' (temp 3-element array of highp float)
+0:186 'yp' (temp 4-element array of highp float)
+0:? Linker Objects
+0:? 'm43' (uniform highp 4X3 matrix of float)
+0:? 'm33' (uniform highp 3X3 matrix of float)
+0:? 'm44' (uniform highp 4X4 matrix of float)
+0:? 'v3' (in highp 3-component vector of float)
+0:? 'v2' (smooth out highp 2-component vector of float)
+0:? 'bad' (in 10-element array of highp 4-component vector of float)
+0:? 'badorder' (in highp 4-component vector of float)
+0:? 'badorder2' (invariant smooth out highp 4-component vector of float)
+0:? 'badorder4' (centroid in highp 4-component vector of float)
+0:? 'badorder3' (flat out highp 4-component vector of float)
+0:? 'rep' (smooth flat out highp 4-component vector of float)
+0:? 'rep2' (centroid smooth sample out highp 4-component vector of float)
+0:? 'rep3' (in highp 4-component vector of float)
+0:? 's' (smooth out structure{global highp 3-component vector of float c, global highp float f})
+0:? 'badsize' (global implicitly-sized array of highp float)
+0:? 'badsize2' (global implicitly-sized array of highp float)
+0:? 'ubInst' (layout(column_major shared ) uniform implicitly-sized array of block{layout(column_major shared ) uniform implicitly-sized array of highp int a})
+0:? 'okayA' (global 2-element array of highp float)
+0:? 'newV' (smooth out highp 3-component vector of float)
+0:? 'invIn' (in highp 4-component vector of float)
+0:? 's2' (smooth out structure{global highp 3-component vector of float c, global highp float f})
+0:? 's3' (invariant smooth out structure{global highp 3-component vector of float c, global highp float f})
+0:? 'a' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform highp float f})
+0:? 'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform bool b23})
+0:? 's2D' (uniform lowp sampler2D)
+0:? 's3D' (uniform lowp sampler3D)
+0:? 's2DS' (uniform lowp sampler2DShadow)
+0:? 's2DAS' (uniform lowp sampler2DArrayShadow)
+0:? 'c2D' (in highp 2-component vector of float)
+0:? 'ssss' (smooth out structure{global highp float f})
+0:? 'Binst' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform highp int a})
+0:? 'Bfoo' (global highp int)
+0:? 'B430i' (layout(column_major std430 ) uniform block{layout(column_major std430 offset=0 ) uniform highp int a})
+0:? 'gl_VertexID' (gl_VertexId highp int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+
+
+Linked vertex stage:
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:27 Function Definition: main( (global void)
+0:27 Function Parameters:
+0:29 Sequence
+0:29 Sequence
+0:29 move second child to first child (temp highp int)
+0:29 'id' (temp highp int)
+0:29 add (temp highp int)
+0:29 'gl_VertexID' (gl_VertexId highp int VertexId)
+0:29 'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+0:31 Sequence
+0:31 move second child to first child (temp highp int)
+0:31 'c0' (temp highp int)
+0:31 Constant:
+0:31 64 (const int)
+0:32 Sequence
+0:32 move second child to first child (temp highp int)
+0:32 'c1' (temp highp int)
+0:32 Constant:
+0:32 128 (const int)
+0:33 Sequence
+0:33 move second child to first child (temp highp int)
+0:33 'c2' (temp highp int)
+0:33 Constant:
+0:33 16 (const int)
+0:34 Sequence
+0:34 move second child to first child (temp highp int)
+0:34 'c3' (temp highp int)
+0:34 Constant:
+0:34 15 (const int)
+0:35 Sequence
+0:35 move second child to first child (temp highp int)
+0:35 'c4' (temp highp int)
+0:35 Constant:
+0:35 32 (const int)
+0:36 Sequence
+0:36 move second child to first child (temp highp int)
+0:36 'c5' (temp highp int)
+0:36 Constant:
+0:36 80 (const int)
+0:37 Sequence
+0:37 move second child to first child (temp highp int)
+0:37 'c6' (temp highp int)
+0:37 Constant:
+0:37 32 (const int)
+0:38 Sequence
+0:38 move second child to first child (temp highp int)
+0:38 'c7' (temp highp int)
+0:38 Constant:
+0:38 16 (const int)
+0:39 Sequence
+0:39 move second child to first child (temp highp int)
+0:39 'c8' (temp highp int)
+0:39 Constant:
+0:39 32 (const int)
+0:40 Sequence
+0:40 move second child to first child (temp highp int)
+0:40 'c9' (temp highp int)
+0:40 Constant:
+0:40 -8 (const int)
+0:41 Sequence
+0:41 move second child to first child (temp highp int)
+0:41 'c10' (temp highp int)
+0:41 Constant:
+0:41 7 (const int)
+0:43 Sequence
+0:43 move second child to first child (temp highp 3X4 matrix of float)
+0:43 'tm' (temp highp 3X4 matrix of float)
+0:43 transpose (global highp 3X4 matrix of float)
+0:43 'm43' (uniform highp 4X3 matrix of float)
+0:44 Sequence
+0:44 move second child to first child (temp highp float)
+0:44 'dm' (temp highp float)
+0:44 determinant (global highp float)
+0:44 'm44' (uniform highp 4X4 matrix of float)
+0:45 Sequence
+0:45 move second child to first child (temp highp 3X3 matrix of float)
+0:45 'im' (temp highp 3X3 matrix of float)
+0:45 inverse (global highp 3X3 matrix of float)
+0:45 'm33' (uniform highp 3X3 matrix of float)
+0:47 Sequence
+0:47 move second child to first child (temp highp 3X2 matrix of float)
+0:47 'op' (temp highp 3X2 matrix of float)
+0:47 outer product (global highp 3X2 matrix of float)
+0:47 'v2' (smooth out highp 2-component vector of float)
+0:47 'v3' (in highp 3-component vector of float)
+0:49 move second child to first child (temp highp 4-component vector of float)
+0:49 'gl_Position' (gl_Position highp 4-component vector of float Position)
+0:49 direct index (temp highp 4-component vector of float)
+0:49 'm44' (uniform highp 4X4 matrix of float)
+0:49 Constant:
+0:49 2 (const int)
+0:50 move second child to first child (temp highp float)
+0:50 'gl_PointSize' (gl_PointSize highp float PointSize)
+0:50 direct index (temp highp float)
+0:50 'v2' (smooth out highp 2-component vector of float)
+0:50 Constant:
+0:50 1 (const int)
+0:52 move second child to first child (temp highp 3-component vector of float)
+0:52 c: direct index for structure (global highp 3-component vector of float)
+0:52 's' (smooth out structure{global highp 3-component vector of float c, global highp float f})
+0:52 Constant:
+0:52 0 (const int)
+0:52 'v3' (in highp 3-component vector of float)
+0:53 move second child to first child (temp highp float)
+0:53 f: direct index for structure (global highp float)
+0:53 's' (smooth out structure{global highp 3-component vector of float c, global highp float f})
+0:53 Constant:
+0:53 1 (const int)
+0:53 'dm' (temp highp float)
+0:68 Sequence
+0:68 move second child to first child (temp 2-element array of highp float)
+0:68 'okayA' (global 2-element array of highp float)
+0:68 Constant:
+0:68 3.000000
+0:68 4.000000
+0:71 Function Definition: newVFun( (global void)
+0:71 Function Parameters:
+0:73 Sequence
+0:73 move second child to first child (temp highp 3-component vector of float)
+0:73 'newV' (smooth out highp 3-component vector of float)
+0:73 'v3' (in highp 3-component vector of float)
+0:118 Function Definition: foo23( (global void)
+0:118 Function Parameters:
+0:120 Sequence
+0:120 Sequence
+0:120 move second child to first child (temp highp 2-component vector of int)
+0:120 'x1' (temp highp 2-component vector of int)
+0:120 textureSize (global highp 2-component vector of int)
+0:120 's2D' (uniform lowp sampler2D)
+0:120 Constant:
+0:120 2 (const int)
+0:121 Constant:
+0:121 0.000000
+0:122 Sequence
+0:122 move second child to first child (temp highp 3-component vector of int)
+0:122 'x3' (temp highp 3-component vector of int)
+0:122 textureSize (global highp 3-component vector of int)
+0:122 's2DAS' (uniform lowp sampler2DArrayShadow)
+0:122 Constant:
+0:122 -1 (const int)
+0:123 Constant:
+0:123 0.000000
+0:124 Sequence
+0:124 move second child to first child (temp highp 4-component vector of float)
+0:124 'x4' (temp highp 4-component vector of float)
+0:124 texture (global lowp 4-component vector of float)
+0:124 's2D' (uniform lowp sampler2D)
+0:124 'c2D' (in highp 2-component vector of float)
+0:125 Constant:
+0:125 0.000000
+0:126 Sequence
+0:126 move second child to first child (temp highp 4-component vector of float)
+0:126 'x5' (temp highp 4-component vector of float)
+0:126 textureProjOffset (global lowp 4-component vector of float)
+0:126 's3D' (uniform lowp sampler3D)
+0:126 Constant:
+0:126 0.200000
+0:126 0.200000
+0:126 0.200000
+0:126 0.200000
+0:126 Constant:
+0:126 1 (const int)
+0:126 1 (const int)
+0:126 1 (const int)
+0:127 Constant:
+0:127 0.000000
+0:128 Sequence
+0:128 move second child to first child (temp highp float)
+0:128 'x6' (temp highp float)
+0:128 textureProjGradOffset (global lowp float)
+0:128 's2DS' (uniform lowp sampler2DShadow)
+0:128 'invIn' (invariant in highp 4-component vector of float)
+0:128 Constant:
+0:128 4.200000
+0:128 4.200000
+0:128 Constant:
+0:128 5.300000
+0:128 5.300000
+0:128 Constant:
+0:128 1 (const int)
+0:128 1 (const int)
+0:137 Function Definition: foo2349( (global void)
+0:137 Function Parameters:
+0:139 Sequence
+0:139 Sequence
+0:139 move second child to first child (temp 3-element array of highp float)
+0:139 'x' (temp 3-element array of highp float)
+0:139 Constant:
+0:139 1.000000
+0:139 2.000000
+0:139 3.000000
+0:140 Sequence
+0:140 move second child to first child (temp 3-element array of highp float)
+0:140 'y' (temp 3-element array of highp float)
+0:140 'x' (temp 3-element array of highp float)
+0:141 Sequence
+0:141 move second child to first child (temp 3-element array of highp float)
+0:141 'z' (temp 3-element array of highp float)
+0:141 'x' (temp 3-element array of highp float)
+0:143 move second child to first child (temp 3-element array of highp float)
+0:143 'w' (temp 3-element array of highp float)
+0:143 'y' (temp 3-element array of highp float)
+0:155 Function Definition: gggf(f1; (global highp int)
+0:155 Function Parameters:
+0:155 'f' (in highp float)
+0:155 Sequence
+0:155 Branch: Return with expression
+0:155 Constant:
+0:155 2 (const int)
+0:158 Function Definition: agggf(f1; (global highp int)
+0:158 Function Parameters:
+0:158 'f' (in highp float)
+0:158 Sequence
+0:158 Branch: Return with expression
+0:158 Constant:
+0:158 2 (const int)
+0:178 Function Definition: fooDeeparray( (global void)
+0:178 Function Parameters:
+0:181 Sequence
+0:181 Sequence
+0:180 move second child to first child (temp 3-element array of highp float)
+0:180 'x' (temp 3-element array of highp float)
+0:180 Constant:
+0:180 1.000000
+0:180 2.000000
+0:180 3.000000
+0:181 move second child to first child (temp 4-element array of highp float)
+0:181 'y' (temp 4-element array of highp float)
+0:181 Constant:
+0:181 1.000000
+0:181 2.000000
+0:181 3.000000
+0:181 4.000000
+0:183 move second child to first child (temp 3-element array of highp float)
+0:183 'xp' (temp 3-element array of highp float)
+0:183 'x' (temp 3-element array of highp float)
+0:184 move second child to first child (temp 4-element array of highp float)
+0:184 'yp' (temp 4-element array of highp float)
+0:184 'y' (temp 4-element array of highp float)
+0:185 'xp' (temp 3-element array of highp float)
+0:186 'yp' (temp 4-element array of highp float)
+0:? Linker Objects
+0:? 'm43' (uniform highp 4X3 matrix of float)
+0:? 'm33' (uniform highp 3X3 matrix of float)
+0:? 'm44' (uniform highp 4X4 matrix of float)
+0:? 'v3' (in highp 3-component vector of float)
+0:? 'v2' (smooth out highp 2-component vector of float)
+0:? 'bad' (in 10-element array of highp 4-component vector of float)
+0:? 'badorder' (in highp 4-component vector of float)
+0:? 'badorder2' (invariant smooth out highp 4-component vector of float)
+0:? 'badorder4' (centroid in highp 4-component vector of float)
+0:? 'badorder3' (flat out highp 4-component vector of float)
+0:? 'rep' (smooth flat out highp 4-component vector of float)
+0:? 'rep2' (centroid smooth sample out highp 4-component vector of float)
+0:? 'rep3' (in highp 4-component vector of float)
+0:? 's' (smooth out structure{global highp 3-component vector of float c, global highp float f})
+0:? 'badsize' (global 1-element array of highp float)
+0:? 'badsize2' (global 1-element array of highp float)
+0:? 'ubInst' (layout(column_major shared ) uniform 1-element array of block{layout(column_major shared ) uniform 1-element array of highp int a})
+0:? 'okayA' (global 2-element array of highp float)
+0:? 'newV' (smooth out highp 3-component vector of float)
+0:? 'invIn' (in highp 4-component vector of float)
+0:? 's2' (smooth out structure{global highp 3-component vector of float c, global highp float f})
+0:? 's3' (invariant smooth out structure{global highp 3-component vector of float c, global highp float f})
+0:? 'a' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform highp float f})
+0:? 'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform bool b23})
+0:? 's2D' (uniform lowp sampler2D)
+0:? 's3D' (uniform lowp sampler3D)
+0:? 's2DS' (uniform lowp sampler2DShadow)
+0:? 's2DAS' (uniform lowp sampler2DArrayShadow)
+0:? 'c2D' (in highp 2-component vector of float)
+0:? 'ssss' (smooth out structure{global highp float f})
+0:? 'Binst' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform highp int a})
+0:? 'Bfoo' (global highp int)
+0:? 'B430i' (layout(column_major std430 ) uniform block{layout(column_major std430 offset=0 ) uniform highp int a})
+0:? 'gl_VertexID' (gl_VertexId highp int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/300BuiltIns.frag.out b/chromium/third_party/glslang/src/Test/baseResults/300BuiltIns.frag.out
new file mode 100644
index 00000000000..2bb4cf5ebe0
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/300BuiltIns.frag.out
@@ -0,0 +1,418 @@
+300BuiltIns.frag
+ERROR: 0:6: 'float' : type requires declaration of default precision qualifier
+ERROR: 0:70: 'noise2' : no matching overloaded function found
+ERROR: 0:72: 't__' : identifiers containing consecutive underscores ("__") are reserved, and an error if version <= 300
+ERROR: 0:75: '#define' : names containing consecutive underscores are reserved, and an error if version <= 300: __D
+ERROR: 4 compilation errors. No code generated.
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:26 Function Definition: main( (global void)
+0:26 Function Parameters:
+0:29 Sequence
+0:29 Sequence
+0:29 move second child to first child (temp mediump 3-component vector of float)
+0:29 'v' (temp mediump 3-component vector of float)
+0:29 mix (global mediump 3-component vector of float)
+0:29 'x' (global mediump 3-component vector of float)
+0:29 'y' (global mediump 3-component vector of float)
+0:29 'bv' (global 3-component vector of bool)
+0:30 Sequence
+0:30 move second child to first child (temp mediump 4-component vector of int)
+0:30 'iv10' (temp mediump 4-component vector of int)
+0:30 Absolute value (global mediump 4-component vector of int)
+0:30 'iv4a' (global mediump 4-component vector of int)
+0:31 Sequence
+0:31 move second child to first child (temp mediump 4-component vector of int)
+0:31 'iv11' (temp mediump 4-component vector of int)
+0:31 Sign (global mediump 4-component vector of int)
+0:31 'iv4a' (global mediump 4-component vector of int)
+0:32 Sequence
+0:32 move second child to first child (temp mediump 4-component vector of int)
+0:32 'iv12' (temp mediump 4-component vector of int)
+0:32 min (global mediump 4-component vector of int)
+0:32 'iv4a' (global mediump 4-component vector of int)
+0:32 'iv4b' (global mediump 4-component vector of int)
+0:33 Sequence
+0:33 move second child to first child (temp mediump 4-component vector of int)
+0:33 'iv13' (temp mediump 4-component vector of int)
+0:33 min (global mediump 4-component vector of int)
+0:33 'iv4a' (global mediump 4-component vector of int)
+0:33 'imin' (global mediump int)
+0:34 Sequence
+0:34 move second child to first child (temp mediump 2-component vector of uint)
+0:34 'u' (temp mediump 2-component vector of uint)
+0:34 min (global mediump 2-component vector of uint)
+0:34 'uv2x' (global mediump 2-component vector of uint)
+0:34 'uv2y' (global mediump 2-component vector of uint)
+0:35 Sequence
+0:35 move second child to first child (temp mediump 4-component vector of uint)
+0:35 'uv' (temp mediump 4-component vector of uint)
+0:35 min (global mediump 4-component vector of uint)
+0:35 'uv4y' (global mediump 4-component vector of uint)
+0:35 'uy' (global mediump uint)
+0:36 Sequence
+0:36 move second child to first child (temp mediump 3-component vector of int)
+0:36 'iv14' (temp mediump 3-component vector of int)
+0:36 max (global mediump 3-component vector of int)
+0:36 'iv3a' (global mediump 3-component vector of int)
+0:36 'iv3b' (global mediump 3-component vector of int)
+0:37 Sequence
+0:37 move second child to first child (temp mediump 4-component vector of int)
+0:37 'iv15' (temp mediump 4-component vector of int)
+0:37 max (global mediump 4-component vector of int)
+0:37 'iv4a' (global mediump 4-component vector of int)
+0:37 'imax' (global mediump int)
+0:38 Sequence
+0:38 move second child to first child (temp mediump 2-component vector of uint)
+0:38 'u10' (temp mediump 2-component vector of uint)
+0:38 max (global mediump 2-component vector of uint)
+0:38 'uv2x' (global mediump 2-component vector of uint)
+0:38 'uv2y' (global mediump 2-component vector of uint)
+0:39 Sequence
+0:39 move second child to first child (temp mediump 2-component vector of uint)
+0:39 'u11' (temp mediump 2-component vector of uint)
+0:39 max (global mediump 2-component vector of uint)
+0:39 'uv2x' (global mediump 2-component vector of uint)
+0:39 'uy' (global mediump uint)
+0:40 Sequence
+0:40 move second child to first child (temp mediump 4-component vector of int)
+0:40 'iv16' (temp mediump 4-component vector of int)
+0:40 clamp (global mediump 4-component vector of int)
+0:40 'iv4a' (global mediump 4-component vector of int)
+0:40 'iv4a' (global mediump 4-component vector of int)
+0:40 'iv4b' (global mediump 4-component vector of int)
+0:41 Sequence
+0:41 move second child to first child (temp mediump 4-component vector of int)
+0:41 'iv17' (temp mediump 4-component vector of int)
+0:41 clamp (global mediump 4-component vector of int)
+0:41 'iv4a' (global mediump 4-component vector of int)
+0:41 'imin' (global mediump int)
+0:41 'imax' (global mediump int)
+0:42 Sequence
+0:42 move second child to first child (temp mediump 2-component vector of uint)
+0:42 'u12' (temp mediump 2-component vector of uint)
+0:42 clamp (global mediump 2-component vector of uint)
+0:42 'uv2x' (global mediump 2-component vector of uint)
+0:42 'uv2y' (global mediump 2-component vector of uint)
+0:42 'uv2c' (global mediump 2-component vector of uint)
+0:43 Sequence
+0:43 move second child to first child (temp mediump 4-component vector of uint)
+0:43 'uv10' (temp mediump 4-component vector of uint)
+0:43 clamp (global mediump 4-component vector of uint)
+0:43 'uv4y' (global mediump 4-component vector of uint)
+0:43 'umin' (global mediump uint)
+0:43 'umax' (global mediump uint)
+0:47 Sequence
+0:47 move second child to first child (temp mediump 3-component vector of float)
+0:47 'v11' (temp mediump 3-component vector of float)
+0:47 modf (global mediump 3-component vector of float)
+0:47 'x' (global mediump 3-component vector of float)
+0:47 'modfOut' (temp mediump 3-component vector of float)
+0:49 Sequence
+0:49 move second child to first child (temp mediump float)
+0:49 't' (temp mediump float)
+0:49 trunc (global mediump float)
+0:49 'f' (global mediump float)
+0:50 Sequence
+0:50 move second child to first child (temp mediump 2-component vector of float)
+0:50 'v12' (temp mediump 2-component vector of float)
+0:50 round (global mediump 2-component vector of float)
+0:50 'v2a' (global mediump 2-component vector of float)
+0:51 Sequence
+0:51 move second child to first child (temp mediump 2-component vector of float)
+0:51 'v13' (temp mediump 2-component vector of float)
+0:51 roundEven (global mediump 2-component vector of float)
+0:51 'v2a' (global mediump 2-component vector of float)
+0:52 Sequence
+0:52 move second child to first child (temp 2-component vector of bool)
+0:52 'b10' (temp 2-component vector of bool)
+0:52 isnan (global 2-component vector of bool)
+0:52 'v2a' (global mediump 2-component vector of float)
+0:53 Sequence
+0:53 move second child to first child (temp 4-component vector of bool)
+0:53 'b11' (temp 4-component vector of bool)
+0:53 isinf (global 4-component vector of bool)
+0:53 'v4' (global mediump 4-component vector of float)
+0:56 Sequence
+0:56 move second child to first child (temp mediump int)
+0:56 'i' (temp mediump int)
+0:56 floatBitsToInt (global mediump int)
+0:56 'f' (global mediump float)
+0:57 Sequence
+0:57 move second child to first child (temp mediump 4-component vector of uint)
+0:57 'uv11' (temp mediump 4-component vector of uint)
+0:57 floatBitsToUint (global mediump 4-component vector of uint)
+0:57 'v4' (global mediump 4-component vector of float)
+0:58 Sequence
+0:58 move second child to first child (temp mediump 4-component vector of float)
+0:58 'v14' (temp mediump 4-component vector of float)
+0:58 intBitsToFloat (global mediump 4-component vector of float)
+0:58 'iv4a' (global mediump 4-component vector of int)
+0:59 Sequence
+0:59 move second child to first child (temp mediump 2-component vector of float)
+0:59 'v15' (temp mediump 2-component vector of float)
+0:59 uintBitsToFloat (global mediump 2-component vector of float)
+0:59 'uv2c' (global mediump 2-component vector of uint)
+0:62 Sequence
+0:62 move second child to first child (temp highp uint)
+0:62 'u19' (temp mediump uint)
+0:62 packSnorm2x16 (global highp uint)
+0:62 'v2a' (global mediump 2-component vector of float)
+0:63 Sequence
+0:63 move second child to first child (temp highp 2-component vector of float)
+0:63 'v20' (temp mediump 2-component vector of float)
+0:63 unpackSnorm2x16 (global highp 2-component vector of float)
+0:63 'uy' (global mediump uint)
+0:64 Sequence
+0:64 move second child to first child (temp highp uint)
+0:64 'u15' (temp mediump uint)
+0:64 packUnorm2x16 (global highp uint)
+0:64 'v2a' (global mediump 2-component vector of float)
+0:65 Sequence
+0:65 move second child to first child (temp highp 2-component vector of float)
+0:65 'v16' (temp mediump 2-component vector of float)
+0:65 unpackUnorm2x16 (global highp 2-component vector of float)
+0:65 'uy' (global mediump uint)
+0:66 Sequence
+0:66 move second child to first child (temp highp uint)
+0:66 'u17' (temp mediump uint)
+0:66 packHalf2x16 (global highp uint)
+0:66 'v2b' (global mediump 2-component vector of float)
+0:67 Sequence
+0:67 move second child to first child (temp mediump 2-component vector of float)
+0:67 'v18' (temp mediump 2-component vector of float)
+0:67 unpackHalf2x16 (global mediump 2-component vector of float)
+0:67 'uy' (global mediump uint)
+0:70 Constant:
+0:70 0.000000
+0:? Linker Objects
+0:? 'imax' (global mediump int)
+0:? 'imin' (global mediump int)
+0:? 'umax' (global mediump uint)
+0:? 'umin' (global mediump uint)
+0:? 'x' (global mediump 3-component vector of float)
+0:? 'y' (global mediump 3-component vector of float)
+0:? 'bv' (global 3-component vector of bool)
+0:? 'uy' (global mediump uint)
+0:? 'uv2c' (global mediump 2-component vector of uint)
+0:? 'uv2y' (global mediump 2-component vector of uint)
+0:? 'uv2x' (global mediump 2-component vector of uint)
+0:? 'uv4y' (global mediump 4-component vector of uint)
+0:? 'iv3a' (global mediump 3-component vector of int)
+0:? 'iv3b' (global mediump 3-component vector of int)
+0:? 'iv4a' (global mediump 4-component vector of int)
+0:? 'iv4b' (global mediump 4-component vector of int)
+0:? 'f' (global mediump float)
+0:? 'v2a' (global mediump 2-component vector of float)
+0:? 'v2b' (global mediump 2-component vector of float)
+0:? 'v4' (global mediump 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:26 Function Definition: main( (global void)
+0:26 Function Parameters:
+0:29 Sequence
+0:29 Sequence
+0:29 move second child to first child (temp mediump 3-component vector of float)
+0:29 'v' (temp mediump 3-component vector of float)
+0:29 mix (global mediump 3-component vector of float)
+0:29 'x' (global mediump 3-component vector of float)
+0:29 'y' (global mediump 3-component vector of float)
+0:29 'bv' (global 3-component vector of bool)
+0:30 Sequence
+0:30 move second child to first child (temp mediump 4-component vector of int)
+0:30 'iv10' (temp mediump 4-component vector of int)
+0:30 Absolute value (global mediump 4-component vector of int)
+0:30 'iv4a' (global mediump 4-component vector of int)
+0:31 Sequence
+0:31 move second child to first child (temp mediump 4-component vector of int)
+0:31 'iv11' (temp mediump 4-component vector of int)
+0:31 Sign (global mediump 4-component vector of int)
+0:31 'iv4a' (global mediump 4-component vector of int)
+0:32 Sequence
+0:32 move second child to first child (temp mediump 4-component vector of int)
+0:32 'iv12' (temp mediump 4-component vector of int)
+0:32 min (global mediump 4-component vector of int)
+0:32 'iv4a' (global mediump 4-component vector of int)
+0:32 'iv4b' (global mediump 4-component vector of int)
+0:33 Sequence
+0:33 move second child to first child (temp mediump 4-component vector of int)
+0:33 'iv13' (temp mediump 4-component vector of int)
+0:33 min (global mediump 4-component vector of int)
+0:33 'iv4a' (global mediump 4-component vector of int)
+0:33 'imin' (global mediump int)
+0:34 Sequence
+0:34 move second child to first child (temp mediump 2-component vector of uint)
+0:34 'u' (temp mediump 2-component vector of uint)
+0:34 min (global mediump 2-component vector of uint)
+0:34 'uv2x' (global mediump 2-component vector of uint)
+0:34 'uv2y' (global mediump 2-component vector of uint)
+0:35 Sequence
+0:35 move second child to first child (temp mediump 4-component vector of uint)
+0:35 'uv' (temp mediump 4-component vector of uint)
+0:35 min (global mediump 4-component vector of uint)
+0:35 'uv4y' (global mediump 4-component vector of uint)
+0:35 'uy' (global mediump uint)
+0:36 Sequence
+0:36 move second child to first child (temp mediump 3-component vector of int)
+0:36 'iv14' (temp mediump 3-component vector of int)
+0:36 max (global mediump 3-component vector of int)
+0:36 'iv3a' (global mediump 3-component vector of int)
+0:36 'iv3b' (global mediump 3-component vector of int)
+0:37 Sequence
+0:37 move second child to first child (temp mediump 4-component vector of int)
+0:37 'iv15' (temp mediump 4-component vector of int)
+0:37 max (global mediump 4-component vector of int)
+0:37 'iv4a' (global mediump 4-component vector of int)
+0:37 'imax' (global mediump int)
+0:38 Sequence
+0:38 move second child to first child (temp mediump 2-component vector of uint)
+0:38 'u10' (temp mediump 2-component vector of uint)
+0:38 max (global mediump 2-component vector of uint)
+0:38 'uv2x' (global mediump 2-component vector of uint)
+0:38 'uv2y' (global mediump 2-component vector of uint)
+0:39 Sequence
+0:39 move second child to first child (temp mediump 2-component vector of uint)
+0:39 'u11' (temp mediump 2-component vector of uint)
+0:39 max (global mediump 2-component vector of uint)
+0:39 'uv2x' (global mediump 2-component vector of uint)
+0:39 'uy' (global mediump uint)
+0:40 Sequence
+0:40 move second child to first child (temp mediump 4-component vector of int)
+0:40 'iv16' (temp mediump 4-component vector of int)
+0:40 clamp (global mediump 4-component vector of int)
+0:40 'iv4a' (global mediump 4-component vector of int)
+0:40 'iv4a' (global mediump 4-component vector of int)
+0:40 'iv4b' (global mediump 4-component vector of int)
+0:41 Sequence
+0:41 move second child to first child (temp mediump 4-component vector of int)
+0:41 'iv17' (temp mediump 4-component vector of int)
+0:41 clamp (global mediump 4-component vector of int)
+0:41 'iv4a' (global mediump 4-component vector of int)
+0:41 'imin' (global mediump int)
+0:41 'imax' (global mediump int)
+0:42 Sequence
+0:42 move second child to first child (temp mediump 2-component vector of uint)
+0:42 'u12' (temp mediump 2-component vector of uint)
+0:42 clamp (global mediump 2-component vector of uint)
+0:42 'uv2x' (global mediump 2-component vector of uint)
+0:42 'uv2y' (global mediump 2-component vector of uint)
+0:42 'uv2c' (global mediump 2-component vector of uint)
+0:43 Sequence
+0:43 move second child to first child (temp mediump 4-component vector of uint)
+0:43 'uv10' (temp mediump 4-component vector of uint)
+0:43 clamp (global mediump 4-component vector of uint)
+0:43 'uv4y' (global mediump 4-component vector of uint)
+0:43 'umin' (global mediump uint)
+0:43 'umax' (global mediump uint)
+0:47 Sequence
+0:47 move second child to first child (temp mediump 3-component vector of float)
+0:47 'v11' (temp mediump 3-component vector of float)
+0:47 modf (global mediump 3-component vector of float)
+0:47 'x' (global mediump 3-component vector of float)
+0:47 'modfOut' (temp mediump 3-component vector of float)
+0:49 Sequence
+0:49 move second child to first child (temp mediump float)
+0:49 't' (temp mediump float)
+0:49 trunc (global mediump float)
+0:49 'f' (global mediump float)
+0:50 Sequence
+0:50 move second child to first child (temp mediump 2-component vector of float)
+0:50 'v12' (temp mediump 2-component vector of float)
+0:50 round (global mediump 2-component vector of float)
+0:50 'v2a' (global mediump 2-component vector of float)
+0:51 Sequence
+0:51 move second child to first child (temp mediump 2-component vector of float)
+0:51 'v13' (temp mediump 2-component vector of float)
+0:51 roundEven (global mediump 2-component vector of float)
+0:51 'v2a' (global mediump 2-component vector of float)
+0:52 Sequence
+0:52 move second child to first child (temp 2-component vector of bool)
+0:52 'b10' (temp 2-component vector of bool)
+0:52 isnan (global 2-component vector of bool)
+0:52 'v2a' (global mediump 2-component vector of float)
+0:53 Sequence
+0:53 move second child to first child (temp 4-component vector of bool)
+0:53 'b11' (temp 4-component vector of bool)
+0:53 isinf (global 4-component vector of bool)
+0:53 'v4' (global mediump 4-component vector of float)
+0:56 Sequence
+0:56 move second child to first child (temp mediump int)
+0:56 'i' (temp mediump int)
+0:56 floatBitsToInt (global mediump int)
+0:56 'f' (global mediump float)
+0:57 Sequence
+0:57 move second child to first child (temp mediump 4-component vector of uint)
+0:57 'uv11' (temp mediump 4-component vector of uint)
+0:57 floatBitsToUint (global mediump 4-component vector of uint)
+0:57 'v4' (global mediump 4-component vector of float)
+0:58 Sequence
+0:58 move second child to first child (temp mediump 4-component vector of float)
+0:58 'v14' (temp mediump 4-component vector of float)
+0:58 intBitsToFloat (global mediump 4-component vector of float)
+0:58 'iv4a' (global mediump 4-component vector of int)
+0:59 Sequence
+0:59 move second child to first child (temp mediump 2-component vector of float)
+0:59 'v15' (temp mediump 2-component vector of float)
+0:59 uintBitsToFloat (global mediump 2-component vector of float)
+0:59 'uv2c' (global mediump 2-component vector of uint)
+0:62 Sequence
+0:62 move second child to first child (temp highp uint)
+0:62 'u19' (temp mediump uint)
+0:62 packSnorm2x16 (global highp uint)
+0:62 'v2a' (global mediump 2-component vector of float)
+0:63 Sequence
+0:63 move second child to first child (temp highp 2-component vector of float)
+0:63 'v20' (temp mediump 2-component vector of float)
+0:63 unpackSnorm2x16 (global highp 2-component vector of float)
+0:63 'uy' (global mediump uint)
+0:64 Sequence
+0:64 move second child to first child (temp highp uint)
+0:64 'u15' (temp mediump uint)
+0:64 packUnorm2x16 (global highp uint)
+0:64 'v2a' (global mediump 2-component vector of float)
+0:65 Sequence
+0:65 move second child to first child (temp highp 2-component vector of float)
+0:65 'v16' (temp mediump 2-component vector of float)
+0:65 unpackUnorm2x16 (global highp 2-component vector of float)
+0:65 'uy' (global mediump uint)
+0:66 Sequence
+0:66 move second child to first child (temp highp uint)
+0:66 'u17' (temp mediump uint)
+0:66 packHalf2x16 (global highp uint)
+0:66 'v2b' (global mediump 2-component vector of float)
+0:67 Sequence
+0:67 move second child to first child (temp mediump 2-component vector of float)
+0:67 'v18' (temp mediump 2-component vector of float)
+0:67 unpackHalf2x16 (global mediump 2-component vector of float)
+0:67 'uy' (global mediump uint)
+0:70 Constant:
+0:70 0.000000
+0:? Linker Objects
+0:? 'imax' (global mediump int)
+0:? 'imin' (global mediump int)
+0:? 'umax' (global mediump uint)
+0:? 'umin' (global mediump uint)
+0:? 'x' (global mediump 3-component vector of float)
+0:? 'y' (global mediump 3-component vector of float)
+0:? 'bv' (global 3-component vector of bool)
+0:? 'uy' (global mediump uint)
+0:? 'uv2c' (global mediump 2-component vector of uint)
+0:? 'uv2y' (global mediump 2-component vector of uint)
+0:? 'uv2x' (global mediump 2-component vector of uint)
+0:? 'uv4y' (global mediump 4-component vector of uint)
+0:? 'iv3a' (global mediump 3-component vector of int)
+0:? 'iv3b' (global mediump 3-component vector of int)
+0:? 'iv4a' (global mediump 4-component vector of int)
+0:? 'iv4b' (global mediump 4-component vector of int)
+0:? 'f' (global mediump float)
+0:? 'v2a' (global mediump 2-component vector of float)
+0:? 'v2b' (global mediump 2-component vector of float)
+0:? 'v4' (global mediump 4-component vector of float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/300block.frag.out b/chromium/third_party/glslang/src/Test/baseResults/300block.frag.out
new file mode 100644
index 00000000000..224bd111b86
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/300block.frag.out
@@ -0,0 +1,153 @@
+300block.frag
+ERROR: 0:10: '' : cannot nest a structure definition inside a structure or block
+ERROR: 0:21: '' : cannot nest a structure definition inside a structure or block
+ERROR: 0:20: 'sampler' : member of block cannot be or contain a sampler, image, or atomic_uint type
+ERROR: 0:24: 'fbs' : member of block cannot be or contain a sampler, image, or atomic_uint type
+ERROR: 0:45: 'variable indexing uniform block array' : not supported for this version or the enabled extensions
+ERROR: 0:46: 'fooBlock' : cannot be used (maybe an instance name is needed)
+ERROR: 0:46: 'fooBlock' : undeclared identifier
+ERROR: 0:47: 'constructor' : not enough data provided for construction
+ERROR: 0:51: 'unreferenced' : cannot be used (maybe an instance name is needed)
+ERROR: 0:51: 'unreferenced' : undeclared identifier
+ERROR: 0:52: '++' : l-value required "s" (can't modify a uniform)
+ERROR: 0:52: '++' : wrong operand type no operation '++' exists that takes an operand of type uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t} (or there is no acceptable conversion)
+ERROR: 0:53: '-' : wrong operand types: no operation '-' exists that takes a left-hand operand of type 'layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni}' and a right operand of type 'const int' (or there is no acceptable conversion)
+ERROR: 0:55: 'barBlockArray' : cannot be used (maybe an instance name is needed)
+ERROR: 0:55: 'barBlockArray' : undeclared identifier
+ERROR: 0:55: '*' : wrong operand types: no operation '*' exists that takes a left-hand operand of type 'const int' and a right operand of type 'temp float' (or there is no acceptable conversion)
+ERROR: 0:58: 'fooBlock' : redefinition
+ERROR: 17 compilation errors. No code generated.
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:42 Function Definition: main( (global void)
+0:42 Function Parameters:
+0:44 Sequence
+0:44 texture (global lowp 4-component vector of int)
+0:44 sampler: direct index for structure (global lowp isampler3D)
+0:44 's' (uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t})
+0:44 Constant:
+0:44 2 (const int)
+0:44 Construct vec3 (temp lowp 3-component vector of float)
+0:44 Convert int to float (temp lowp float)
+0:44 ni: direct index for structure (layout(column_major shared ) uniform mediump int)
+0:44 'inst' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
+0:44 Constant:
+0:44 1 (const int)
+0:44 Convert uint to float (temp lowp float)
+0:44 direct index (temp mediump uint)
+0:44 bv: direct index for structure (layout(column_major shared ) uniform mediump 4-component vector of uint)
+0:44 'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint bv, layout(column_major shared ) uniform mediump 2X2 matrix of float bm2, layout(column_major shared ) uniform lowp isampler2D sampler, layout(column_major shared ) uniform structure{global mediump int a} t, layout(column_major shared ) uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t} fbs})
+0:44 Constant:
+0:44 0 (const uint)
+0:44 Constant:
+0:44 1 (const int)
+0:44 Convert uint to float (temp lowp float)
+0:44 direct index (temp mediump uint)
+0:44 nbv: direct index for structure (layout(column_major shared ) uniform mediump 4-component vector of uint)
+0:44 direct index (layout(column_major shared ) temp block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
+0:44 'insts' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
+0:44 Constant:
+0:44 2 (const int)
+0:44 Constant:
+0:44 0 (const int)
+0:44 Constant:
+0:44 2 (const int)
+0:45 indirect index (layout(column_major shared ) temp block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
+0:45 'insts' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
+0:45 direct index (temp mediump uint)
+0:45 v: direct index for structure (global mediump 4-component vector of uint)
+0:45 's' (uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t})
+0:45 Constant:
+0:45 1 (const int)
+0:45 Constant:
+0:45 0 (const int)
+0:46 'fooBlock' (temp float)
+0:47 Constant:
+0:47 0.000000
+0:50 Construct mat4 (temp 4X4 matrix of float)
+0:50 'barBlock' (temp mediump float)
+0:51 Construct mat4 (temp 4X4 matrix of float)
+0:51 'unreferenced' (temp float)
+0:52 's' (uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t})
+0:53 'inst' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
+0:54 Pre-Increment (temp mediump float)
+0:54 'barBlock' (temp mediump float)
+0:55 Constant:
+0:55 2 (const int)
+0:? Linker Objects
+0:? 's' (uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t})
+0:? 'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint bv, layout(column_major shared ) uniform mediump 2X2 matrix of float bm2, layout(column_major shared ) uniform lowp isampler2D sampler, layout(column_major shared ) uniform structure{global mediump int a} t, layout(column_major shared ) uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t} fbs})
+0:? 'inst' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
+0:? 'insts' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
+0:? 'anon@1' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f, layout(column_major shared ) uniform mediump uint u})
+
+
+Linked fragment stage:
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:42 Function Definition: main( (global void)
+0:42 Function Parameters:
+0:44 Sequence
+0:44 texture (global lowp 4-component vector of int)
+0:44 sampler: direct index for structure (global lowp isampler3D)
+0:44 's' (uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t})
+0:44 Constant:
+0:44 2 (const int)
+0:44 Construct vec3 (temp lowp 3-component vector of float)
+0:44 Convert int to float (temp lowp float)
+0:44 ni: direct index for structure (layout(column_major shared ) uniform mediump int)
+0:44 'inst' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
+0:44 Constant:
+0:44 1 (const int)
+0:44 Convert uint to float (temp lowp float)
+0:44 direct index (temp mediump uint)
+0:44 bv: direct index for structure (layout(column_major shared ) uniform mediump 4-component vector of uint)
+0:44 'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint bv, layout(column_major shared ) uniform mediump 2X2 matrix of float bm2, layout(column_major shared ) uniform lowp isampler2D sampler, layout(column_major shared ) uniform structure{global mediump int a} t, layout(column_major shared ) uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t} fbs})
+0:44 Constant:
+0:44 0 (const uint)
+0:44 Constant:
+0:44 1 (const int)
+0:44 Convert uint to float (temp lowp float)
+0:44 direct index (temp mediump uint)
+0:44 nbv: direct index for structure (layout(column_major shared ) uniform mediump 4-component vector of uint)
+0:44 direct index (layout(column_major shared ) temp block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
+0:44 'insts' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
+0:44 Constant:
+0:44 2 (const int)
+0:44 Constant:
+0:44 0 (const int)
+0:44 Constant:
+0:44 2 (const int)
+0:45 indirect index (layout(column_major shared ) temp block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
+0:45 'insts' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
+0:45 direct index (temp mediump uint)
+0:45 v: direct index for structure (global mediump 4-component vector of uint)
+0:45 's' (uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t})
+0:45 Constant:
+0:45 1 (const int)
+0:45 Constant:
+0:45 0 (const int)
+0:46 'fooBlock' (temp float)
+0:47 Constant:
+0:47 0.000000
+0:50 Construct mat4 (temp 4X4 matrix of float)
+0:50 'barBlock' (temp mediump float)
+0:51 Construct mat4 (temp 4X4 matrix of float)
+0:51 'unreferenced' (temp float)
+0:52 's' (uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t})
+0:53 'inst' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
+0:54 Pre-Increment (temp mediump float)
+0:54 'barBlock' (temp mediump float)
+0:55 Constant:
+0:55 2 (const int)
+0:? Linker Objects
+0:? 's' (uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t})
+0:? 'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint bv, layout(column_major shared ) uniform mediump 2X2 matrix of float bm2, layout(column_major shared ) uniform lowp isampler2D sampler, layout(column_major shared ) uniform structure{global mediump int a} t, layout(column_major shared ) uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t} fbs})
+0:? 'inst' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
+0:? 'insts' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
+0:? 'anon@1' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f, layout(column_major shared ) uniform mediump uint u})
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/300layout.frag.out b/chromium/third_party/glslang/src/Test/baseResults/300layout.frag.out
new file mode 100644
index 00000000000..62a0b367d74
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/300layout.frag.out
@@ -0,0 +1,69 @@
+300layout.frag
+ERROR: 0:4: 'location qualifier on input' : not supported in this stage: fragment
+ERROR: 0:4: 'location qualifier on input' : not supported for this version or the enabled extensions
+ERROR: 0:17: 'location' : too large for fragment output
+ERROR: 0:18: 'location' : too large for fragment output
+ERROR: 0:18: 'location' : overlapping use of location 41
+ERROR: 0:19: 'location' : too large for fragment output
+ERROR: 0:19: 'location' : overlapping use of location 40
+ERROR: 7 compilation errors. No code generated.
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:10 Function Definition: main( (global void)
+0:10 Function Parameters:
+0:12 Sequence
+0:12 move second child to first child (temp mediump 4-component vector of float)
+0:12 'c' (layout(location=1 ) out mediump 4-component vector of float)
+0:12 'color' (layout(location=2 ) smooth in mediump 4-component vector of float)
+0:13 move second child to first child (temp mediump 4-component vector of float)
+0:13 'p' (layout(location=3 ) out mediump 4-component vector of float)
+0:13 'pos' (smooth in mediump 4-component vector of float)
+0:14 move second child to first child (temp mediump 4-component vector of float)
+0:14 direct index (layout(location=4 ) temp mediump 4-component vector of float)
+0:14 'q' (layout(location=4 ) out 2-element array of mediump 4-component vector of float)
+0:14 Constant:
+0:14 1 (const int)
+0:14 'pos' (smooth in mediump 4-component vector of float)
+0:? Linker Objects
+0:? 'pos' (smooth in mediump 4-component vector of float)
+0:? 'color' (layout(location=2 ) smooth in mediump 4-component vector of float)
+0:? 'c' (layout(location=1 ) out mediump 4-component vector of float)
+0:? 'p' (layout(location=3 ) out mediump 4-component vector of float)
+0:? 'q' (layout(location=4 ) out 2-element array of mediump 4-component vector of float)
+0:? 'ca' (layout(location=40 ) out 4-element array of mediump float)
+0:? 'cb' (layout(location=41 ) out 2-element array of mediump float)
+0:? 'cc' (layout(location=39 ) out 6-element array of mediump float)
+
+
+Linked fragment stage:
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:10 Function Definition: main( (global void)
+0:10 Function Parameters:
+0:12 Sequence
+0:12 move second child to first child (temp mediump 4-component vector of float)
+0:12 'c' (layout(location=1 ) out mediump 4-component vector of float)
+0:12 'color' (layout(location=2 ) smooth in mediump 4-component vector of float)
+0:13 move second child to first child (temp mediump 4-component vector of float)
+0:13 'p' (layout(location=3 ) out mediump 4-component vector of float)
+0:13 'pos' (smooth in mediump 4-component vector of float)
+0:14 move second child to first child (temp mediump 4-component vector of float)
+0:14 direct index (layout(location=4 ) temp mediump 4-component vector of float)
+0:14 'q' (layout(location=4 ) out 2-element array of mediump 4-component vector of float)
+0:14 Constant:
+0:14 1 (const int)
+0:14 'pos' (smooth in mediump 4-component vector of float)
+0:? Linker Objects
+0:? 'pos' (smooth in mediump 4-component vector of float)
+0:? 'color' (layout(location=2 ) smooth in mediump 4-component vector of float)
+0:? 'c' (layout(location=1 ) out mediump 4-component vector of float)
+0:? 'p' (layout(location=3 ) out mediump 4-component vector of float)
+0:? 'q' (layout(location=4 ) out 2-element array of mediump 4-component vector of float)
+0:? 'ca' (layout(location=40 ) out 4-element array of mediump float)
+0:? 'cb' (layout(location=41 ) out 2-element array of mediump float)
+0:? 'cc' (layout(location=39 ) out 6-element array of mediump float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/300layout.vert.out b/chromium/third_party/glslang/src/Test/baseResults/300layout.vert.out
new file mode 100644
index 00000000000..f69a989b1ff
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/300layout.vert.out
@@ -0,0 +1,147 @@
+300layout.vert
+ERROR: 0:7: 'vertex input arrays' : not supported with this profile: es
+ERROR: 0:8: 'in' : cannot be a structure or array
+ERROR: 0:8: 'vertex input arrays' : not supported with this profile: es
+ERROR: 0:8: 'location' : overlapping use of location 10
+ERROR: 0:12: 'layout' : cannot specify matrix layout on a variable declaration
+ERROR: 0:12: 'layout' : cannot specify packing on a variable declaration
+ERROR: 0:19: 'badf' : member of uniform or buffer block cannot have an auxiliary or interpolation qualifier
+ERROR: 0:20: 'badg' : member storage qualifier cannot contradict block storage qualifier
+ERROR: 0:21: 'bad1' : member of block cannot have a packing layout qualifier
+ERROR: 0:22: 'bad2' : member of block cannot have a packing layout qualifier
+ERROR: 0:23: 'bad3' : member of block cannot have a packing layout qualifier
+ERROR: 0:31: 'T3' : nameless block contains a member that already has a name at global scope
+ERROR: 0:38: 'vertex output block' : not supported for this version or the enabled extensions
+ERROR: 0:42: 'location qualifier on output' : not supported in this stage: vertex
+ERROR: 0:42: 'location qualifier on output' : not supported for this version or the enabled extensions
+ERROR: 0:50: 'shared' : not supported for this version or the enabled extensions
+ERROR: 0:50: 'shared' : not supported in this stage: vertex
+ERROR: 0:54: 'layout' : cannot specify packing on a variable declaration
+ERROR: 0:57: 'location' : overlapping use of location 40
+ERROR: 19 compilation errors. No code generated.
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:44 Function Definition: main( (global void)
+0:44 Function Parameters:
+0:46 Sequence
+0:46 move second child to first child (temp highp 4-component vector of float)
+0:46 'pos' (smooth out highp 4-component vector of float)
+0:46 vector-times-matrix (temp highp 4-component vector of float)
+0:46 'p' (layout(location=3 ) in highp 4-component vector of float)
+0:46 add (temp highp 4X4 matrix of float)
+0:46 add (temp highp 4X4 matrix of float)
+0:46 add (temp highp 4X4 matrix of float)
+0:46 add (temp highp 4X4 matrix of float)
+0:46 M1: direct index for structure (layout(row_major std140 offset=0 ) uniform highp 4X4 matrix of float)
+0:46 'tblock' (layout(row_major std140 ) uniform block{layout(row_major std140 offset=0 ) uniform highp 4X4 matrix of float M1, layout(column_major std140 offset=64 ) uniform highp 4X4 matrix of float M2, layout(row_major std140 offset=128 ) uniform highp 3X3 matrix of float N1, layout(row_major std140 offset=176 ) centroid uniform highp float badf, layout(row_major std140 offset=180 ) uniform highp float badg, layout(row_major std140 offset=184 ) uniform highp float bad1, layout(row_major shared offset=188 ) uniform highp float bad2, layout(row_major packed offset=192 ) uniform highp float bad3})
+0:46 Constant:
+0:46 0 (const int)
+0:46 M2: direct index for structure (layout(column_major std140 offset=64 ) uniform highp 4X4 matrix of float)
+0:46 'tblock' (layout(row_major std140 ) uniform block{layout(row_major std140 offset=0 ) uniform highp 4X4 matrix of float M1, layout(column_major std140 offset=64 ) uniform highp 4X4 matrix of float M2, layout(row_major std140 offset=128 ) uniform highp 3X3 matrix of float N1, layout(row_major std140 offset=176 ) centroid uniform highp float badf, layout(row_major std140 offset=180 ) uniform highp float badg, layout(row_major std140 offset=184 ) uniform highp float bad1, layout(row_major shared offset=188 ) uniform highp float bad2, layout(row_major packed offset=192 ) uniform highp float bad3})
+0:46 Constant:
+0:46 1 (const int)
+0:46 M4: direct index for structure (layout(row_major shared ) uniform highp 4X4 matrix of float)
+0:46 'anon@1' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform highp 4X4 matrix of float M3, layout(row_major shared ) uniform highp 4X4 matrix of float M4, layout(column_major shared ) uniform highp 3X3 matrix of float N2, layout(column_major shared ) uniform highp int b})
+0:46 Constant:
+0:46 1 (const uint)
+0:46 M3: direct index for structure (layout(column_major shared ) uniform highp 4X4 matrix of float)
+0:46 'anon@1' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform highp 4X4 matrix of float M3, layout(row_major shared ) uniform highp 4X4 matrix of float M4, layout(column_major shared ) uniform highp 3X3 matrix of float N2, layout(column_major shared ) uniform highp int b})
+0:46 Constant:
+0:46 0 (const uint)
+0:46 t2m: direct index for structure (layout(row_major shared ) uniform highp 4X4 matrix of float)
+0:46 'anon@0' (layout(row_major shared ) uniform block{layout(row_major shared ) uniform bool b, layout(row_major shared ) uniform highp 4X4 matrix of float t2m})
+0:46 Constant:
+0:46 1 (const uint)
+0:47 move second child to first child (temp highp 3-component vector of float)
+0:47 'color' (smooth out highp 3-component vector of float)
+0:47 vector-times-matrix (temp highp 3-component vector of float)
+0:47 'c' (layout(location=7 ) in highp 3-component vector of float)
+0:47 N1: direct index for structure (layout(row_major std140 offset=128 ) uniform highp 3X3 matrix of float)
+0:47 'tblock' (layout(row_major std140 ) uniform block{layout(row_major std140 offset=0 ) uniform highp 4X4 matrix of float M1, layout(column_major std140 offset=64 ) uniform highp 4X4 matrix of float M2, layout(row_major std140 offset=128 ) uniform highp 3X3 matrix of float N1, layout(row_major std140 offset=176 ) centroid uniform highp float badf, layout(row_major std140 offset=180 ) uniform highp float badg, layout(row_major std140 offset=184 ) uniform highp float bad1, layout(row_major shared offset=188 ) uniform highp float bad2, layout(row_major packed offset=192 ) uniform highp float bad3})
+0:47 Constant:
+0:47 2 (const int)
+0:? Linker Objects
+0:? 'c' (layout(location=7 ) in highp 3-component vector of float)
+0:? 'p' (layout(location=3 ) in highp 4-component vector of float)
+0:? 'q' (layout(location=9 ) in 4-element array of highp 4-component vector of float)
+0:? 'r' (layout(location=10 ) in 4-element array of structure{global highp 4-component vector of float v})
+0:? 'pos' (smooth out highp 4-component vector of float)
+0:? 'color' (smooth out highp 3-component vector of float)
+0:? 'badm4' (layout(column_major shared ) uniform highp 4X4 matrix of float)
+0:? 'tblock' (layout(row_major std140 ) uniform block{layout(row_major std140 offset=0 ) uniform highp 4X4 matrix of float M1, layout(column_major std140 offset=64 ) uniform highp 4X4 matrix of float M2, layout(row_major std140 offset=128 ) uniform highp 3X3 matrix of float N1, layout(row_major std140 offset=176 ) centroid uniform highp float badf, layout(row_major std140 offset=180 ) uniform highp float badg, layout(row_major std140 offset=184 ) uniform highp float bad1, layout(row_major shared offset=188 ) uniform highp float bad2, layout(row_major packed offset=192 ) uniform highp float bad3})
+0:? 'anon@0' (layout(row_major shared ) uniform block{layout(row_major shared ) uniform bool b, layout(row_major shared ) uniform highp 4X4 matrix of float t2m})
+0:? 'anon@2' (out block{out highp float f})
+0:? 'badoutA' (layout(location=10 ) smooth out highp 4-component vector of float)
+0:? 'compute_only' (shared highp 4-component vector of float)
+0:? 'aoeuntaoeu' (layout(packed ) uniform highp float)
+0:? 'cd' (layout(location=40 ) in highp float)
+0:? 'ce' (layout(location=37 ) in highp 4X3 matrix of float)
+0:? 'gl_VertexID' (gl_VertexId highp int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+
+
+Linked vertex stage:
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:44 Function Definition: main( (global void)
+0:44 Function Parameters:
+0:46 Sequence
+0:46 move second child to first child (temp highp 4-component vector of float)
+0:46 'pos' (smooth out highp 4-component vector of float)
+0:46 vector-times-matrix (temp highp 4-component vector of float)
+0:46 'p' (layout(location=3 ) in highp 4-component vector of float)
+0:46 add (temp highp 4X4 matrix of float)
+0:46 add (temp highp 4X4 matrix of float)
+0:46 add (temp highp 4X4 matrix of float)
+0:46 add (temp highp 4X4 matrix of float)
+0:46 M1: direct index for structure (layout(row_major std140 offset=0 ) uniform highp 4X4 matrix of float)
+0:46 'tblock' (layout(row_major std140 ) uniform block{layout(row_major std140 offset=0 ) uniform highp 4X4 matrix of float M1, layout(column_major std140 offset=64 ) uniform highp 4X4 matrix of float M2, layout(row_major std140 offset=128 ) uniform highp 3X3 matrix of float N1, layout(row_major std140 offset=176 ) centroid uniform highp float badf, layout(row_major std140 offset=180 ) uniform highp float badg, layout(row_major std140 offset=184 ) uniform highp float bad1, layout(row_major shared offset=188 ) uniform highp float bad2, layout(row_major packed offset=192 ) uniform highp float bad3})
+0:46 Constant:
+0:46 0 (const int)
+0:46 M2: direct index for structure (layout(column_major std140 offset=64 ) uniform highp 4X4 matrix of float)
+0:46 'tblock' (layout(row_major std140 ) uniform block{layout(row_major std140 offset=0 ) uniform highp 4X4 matrix of float M1, layout(column_major std140 offset=64 ) uniform highp 4X4 matrix of float M2, layout(row_major std140 offset=128 ) uniform highp 3X3 matrix of float N1, layout(row_major std140 offset=176 ) centroid uniform highp float badf, layout(row_major std140 offset=180 ) uniform highp float badg, layout(row_major std140 offset=184 ) uniform highp float bad1, layout(row_major shared offset=188 ) uniform highp float bad2, layout(row_major packed offset=192 ) uniform highp float bad3})
+0:46 Constant:
+0:46 1 (const int)
+0:46 M4: direct index for structure (layout(row_major shared ) uniform highp 4X4 matrix of float)
+0:46 'anon@1' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform highp 4X4 matrix of float M3, layout(row_major shared ) uniform highp 4X4 matrix of float M4, layout(column_major shared ) uniform highp 3X3 matrix of float N2, layout(column_major shared ) uniform highp int b})
+0:46 Constant:
+0:46 1 (const uint)
+0:46 M3: direct index for structure (layout(column_major shared ) uniform highp 4X4 matrix of float)
+0:46 'anon@1' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform highp 4X4 matrix of float M3, layout(row_major shared ) uniform highp 4X4 matrix of float M4, layout(column_major shared ) uniform highp 3X3 matrix of float N2, layout(column_major shared ) uniform highp int b})
+0:46 Constant:
+0:46 0 (const uint)
+0:46 t2m: direct index for structure (layout(row_major shared ) uniform highp 4X4 matrix of float)
+0:46 'anon@0' (layout(row_major shared ) uniform block{layout(row_major shared ) uniform bool b, layout(row_major shared ) uniform highp 4X4 matrix of float t2m})
+0:46 Constant:
+0:46 1 (const uint)
+0:47 move second child to first child (temp highp 3-component vector of float)
+0:47 'color' (smooth out highp 3-component vector of float)
+0:47 vector-times-matrix (temp highp 3-component vector of float)
+0:47 'c' (layout(location=7 ) in highp 3-component vector of float)
+0:47 N1: direct index for structure (layout(row_major std140 offset=128 ) uniform highp 3X3 matrix of float)
+0:47 'tblock' (layout(row_major std140 ) uniform block{layout(row_major std140 offset=0 ) uniform highp 4X4 matrix of float M1, layout(column_major std140 offset=64 ) uniform highp 4X4 matrix of float M2, layout(row_major std140 offset=128 ) uniform highp 3X3 matrix of float N1, layout(row_major std140 offset=176 ) centroid uniform highp float badf, layout(row_major std140 offset=180 ) uniform highp float badg, layout(row_major std140 offset=184 ) uniform highp float bad1, layout(row_major shared offset=188 ) uniform highp float bad2, layout(row_major packed offset=192 ) uniform highp float bad3})
+0:47 Constant:
+0:47 2 (const int)
+0:? Linker Objects
+0:? 'c' (layout(location=7 ) in highp 3-component vector of float)
+0:? 'p' (layout(location=3 ) in highp 4-component vector of float)
+0:? 'q' (layout(location=9 ) in 4-element array of highp 4-component vector of float)
+0:? 'r' (layout(location=10 ) in 4-element array of structure{global highp 4-component vector of float v})
+0:? 'pos' (smooth out highp 4-component vector of float)
+0:? 'color' (smooth out highp 3-component vector of float)
+0:? 'badm4' (layout(column_major shared ) uniform highp 4X4 matrix of float)
+0:? 'tblock' (layout(row_major std140 ) uniform block{layout(row_major std140 offset=0 ) uniform highp 4X4 matrix of float M1, layout(column_major std140 offset=64 ) uniform highp 4X4 matrix of float M2, layout(row_major std140 offset=128 ) uniform highp 3X3 matrix of float N1, layout(row_major std140 offset=176 ) centroid uniform highp float badf, layout(row_major std140 offset=180 ) uniform highp float badg, layout(row_major std140 offset=184 ) uniform highp float bad1, layout(row_major shared offset=188 ) uniform highp float bad2, layout(row_major packed offset=192 ) uniform highp float bad3})
+0:? 'anon@0' (layout(row_major shared ) uniform block{layout(row_major shared ) uniform bool b, layout(row_major shared ) uniform highp 4X4 matrix of float t2m})
+0:? 'anon@2' (out block{out highp float f})
+0:? 'badoutA' (layout(location=10 ) smooth out highp 4-component vector of float)
+0:? 'compute_only' (shared highp 4-component vector of float)
+0:? 'aoeuntaoeu' (layout(packed ) uniform highp float)
+0:? 'cd' (layout(location=40 ) in highp float)
+0:? 'ce' (layout(location=37 ) in highp 4X3 matrix of float)
+0:? 'gl_VertexID' (gl_VertexId highp int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/300link.frag.out b/chromium/third_party/glslang/src/Test/baseResults/300link.frag.out
new file mode 100644
index 00000000000..0713d3df45c
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/300link.frag.out
@@ -0,0 +1,22 @@
+300link.frag
+Shader version: 300
+0:? Sequence
+0:8 Function Definition: main( (global void)
+0:8 Function Parameters:
+0:? Linker Objects
+0:? 'color1' (out highp 4-component vector of float)
+0:? 'color2' (out highp 4-component vector of float)
+
+
+Linked fragment stage:
+
+ERROR: Linking fragment stage: when more than one fragment shader output, all must have location qualifiers
+
+Shader version: 300
+0:? Sequence
+0:8 Function Definition: main( (global void)
+0:8 Function Parameters:
+0:? Linker Objects
+0:? 'color1' (out highp 4-component vector of float)
+0:? 'color2' (out highp 4-component vector of float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/300link2.frag.out b/chromium/third_party/glslang/src/Test/baseResults/300link2.frag.out
new file mode 100644
index 00000000000..aaf71dc4c15
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/300link2.frag.out
@@ -0,0 +1,25 @@
+300link2.frag
+Shader version: 300
+0:? Sequence
+0:9 Function Definition: main( (global void)
+0:9 Function Parameters:
+0:? Linker Objects
+0:? 'pos' (smooth in mediump 4-component vector of float)
+0:? 'c' (layout(location=1 ) out mediump 4-component vector of float)
+0:? 'p' (layout(location=5 ) out mediump 4-component vector of float)
+0:? 'q' (layout(location=9 ) out 2-element array of mediump 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 300
+0:? Sequence
+0:9 Function Definition: main( (global void)
+0:9 Function Parameters:
+0:? Linker Objects
+0:? 'pos' (smooth in mediump 4-component vector of float)
+0:? 'c' (layout(location=1 ) out mediump 4-component vector of float)
+0:? 'p' (layout(location=5 ) out mediump 4-component vector of float)
+0:? 'q' (layout(location=9 ) out 2-element array of mediump 4-component vector of float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/300link3.frag.out b/chromium/third_party/glslang/src/Test/baseResults/300link3.frag.out
new file mode 100644
index 00000000000..3224695121e
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/300link3.frag.out
@@ -0,0 +1,19 @@
+300link3.frag
+Shader version: 300
+0:? Sequence
+0:7 Function Definition: main( (global void)
+0:7 Function Parameters:
+0:? Linker Objects
+0:? 'color1' (out highp 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 300
+0:? Sequence
+0:7 Function Definition: main( (global void)
+0:7 Function Parameters:
+0:? Linker Objects
+0:? 'color1' (out highp 4-component vector of float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/300operations.frag.out b/chromium/third_party/glslang/src/Test/baseResults/300operations.frag.out
new file mode 100644
index 00000000000..ff7663e93ef
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/300operations.frag.out
@@ -0,0 +1,420 @@
+300operations.frag
+ERROR: 0:11: 'float' : type requires declaration of default precision qualifier
+ERROR: 0:30: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type 'layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f}' and a right operand of type 'layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f}' (or there is no acceptable conversion)
+ERROR: 0:31: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type 'global structure{global mediump int i}' and a right operand of type 'global structure{global mediump int i}' (or there is no acceptable conversion)
+ERROR: 0:32: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type 'temp mediump int' and a right operand of type 'temp mediump float' (or there is no acceptable conversion)
+ERROR: 0:33: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type 'temp mediump uint' and a right operand of type 'temp mediump float' (or there is no acceptable conversion)
+ERROR: 0:34: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type 'temp mediump uint' and a right operand of type 'temp mediump int' (or there is no acceptable conversion)
+ERROR: 0:35: 'assign' : cannot convert from 'temp mediump 4-component vector of int' to 'temp mediump 3-component vector of int'
+ERROR: 0:36: '/' : wrong operand types: no operation '/' exists that takes a left-hand operand of type 'temp mediump 4-component vector of int' and a right operand of type 'temp mediump 4-component vector of uint' (or there is no acceptable conversion)
+ERROR: 0:37: '-' : wrong operand types: no operation '-' exists that takes a left-hand operand of type 'temp mediump int' and a right operand of type 'temp mediump 3-component vector of float' (or there is no acceptable conversion)
+ERROR: 0:38: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type 'temp mediump 3-component vector of int' and a right operand of type 'temp mediump 3-component vector of uint' (or there is no acceptable conversion)
+ERROR: 0:39: '*' : wrong operand types: no operation '*' exists that takes a left-hand operand of type 'global 5-element array of mediump float' and a right operand of type 'global 5-element array of mediump float' (or there is no acceptable conversion)
+ERROR: 0:40: '/' : wrong operand types: no operation '/' exists that takes a left-hand operand of type 'temp bool' and a right operand of type 'temp bool' (or there is no acceptable conversion)
+ERROR: 0:42: '%' : wrong operand types: no operation '%' exists that takes a left-hand operand of type 'temp mediump float' and a right operand of type 'temp mediump float' (or there is no acceptable conversion)
+ERROR: 0:43: '%' : wrong operand types: no operation '%' exists that takes a left-hand operand of type 'temp mediump int' and a right operand of type 'temp mediump float' (or there is no acceptable conversion)
+ERROR: 0:44: '%' : wrong operand types: no operation '%' exists that takes a left-hand operand of type 'temp mediump float' and a right operand of type 'temp mediump uint' (or there is no acceptable conversion)
+ERROR: 0:45: '++' : l-value required "instanceName" (can't modify a uniform)
+ERROR: 0:45: '++' : wrong operand type no operation '++' exists that takes an operand of type layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f} (or there is no acceptable conversion)
+ERROR: 0:46: '++' : wrong operand type no operation '++' exists that takes an operand of type global structure{global mediump int i} (or there is no acceptable conversion)
+ERROR: 0:47: '--' : wrong operand type no operation '--' exists that takes an operand of type global 5-element array of mediump float (or there is no acceptable conversion)
+ERROR: 0:48: '++' : wrong operand type no operation '++' exists that takes an operand of type temp 3-component vector of bool (or there is no acceptable conversion)
+ERROR: 0:50: '<' : wrong operand types: no operation '<' exists that takes a left-hand operand of type 'temp mediump 3-component vector of int' and a right operand of type 'temp mediump 3-component vector of uint' (or there is no acceptable conversion)
+ERROR: 0:51: '>' : wrong operand types: no operation '>' exists that takes a left-hand operand of type 'temp mediump 2X2 matrix of float' and a right operand of type 'temp mediump 2X2 matrix of float' (or there is no acceptable conversion)
+ERROR: 0:52: '!=' : wrong operand types: no operation '!=' exists that takes a left-hand operand of type 'temp mediump 2X2 matrix of float' and a right operand of type 'temp mediump 4X4 matrix of float' (or there is no acceptable conversion)
+ERROR: 0:53: '>=' : wrong operand types: no operation '>=' exists that takes a left-hand operand of type 'temp mediump int' and a right operand of type 'temp mediump uint' (or there is no acceptable conversion)
+ERROR: 0:54: '<=' : wrong operand types: no operation '<=' exists that takes a left-hand operand of type 'global 5-element array of mediump float' and a right operand of type 'global 5-element array of mediump float' (or there is no acceptable conversion)
+ERROR: 0:55: '>' : wrong operand types: no operation '>' exists that takes a left-hand operand of type 'temp bool' and a right operand of type 'temp bool' (or there is no acceptable conversion)
+ERROR: 0:57: '&&' : wrong operand types: no operation '&&' exists that takes a left-hand operand of type 'temp bool' and a right operand of type 'temp 3-component vector of bool' (or there is no acceptable conversion)
+ERROR: 0:58: '^^' : wrong operand types: no operation '^^' exists that takes a left-hand operand of type 'temp 3-component vector of bool' and a right operand of type 'temp 3-component vector of bool' (or there is no acceptable conversion)
+ERROR: 0:59: '||' : wrong operand types: no operation '||' exists that takes a left-hand operand of type 'temp 3-component vector of bool' and a right operand of type 'temp bool' (or there is no acceptable conversion)
+ERROR: 0:60: '&&' : wrong operand types: no operation '&&' exists that takes a left-hand operand of type 'temp mediump int' and a right operand of type 'temp mediump int' (or there is no acceptable conversion)
+ERROR: 0:61: '||' : wrong operand types: no operation '||' exists that takes a left-hand operand of type 'temp mediump uint' and a right operand of type 'temp mediump uint' (or there is no acceptable conversion)
+ERROR: 0:62: '^^' : wrong operand types: no operation '^^' exists that takes a left-hand operand of type 'temp mediump 2X2 matrix of float' and a right operand of type 'temp mediump 2X2 matrix of float' (or there is no acceptable conversion)
+ERROR: 0:64: '!' : wrong operand type no operation '!' exists that takes an operand of type temp mediump uint (or there is no acceptable conversion)
+ERROR: 0:65: '!' : wrong operand type no operation '!' exists that takes an operand of type temp mediump int (or there is no acceptable conversion)
+ERROR: 0:66: '!' : wrong operand type no operation '!' exists that takes an operand of type temp mediump 2X2 matrix of float (or there is no acceptable conversion)
+ERROR: 0:67: '!' : wrong operand type no operation '!' exists that takes an operand of type temp mediump 3-component vector of float (or there is no acceptable conversion)
+ERROR: 0:68: '!' : wrong operand type no operation '!' exists that takes an operand of type global 5-element array of mediump float (or there is no acceptable conversion)
+ERROR: 0:70: '~' : wrong operand type no operation '~' exists that takes an operand of type temp mediump float (or there is no acceptable conversion)
+ERROR: 0:71: '~' : wrong operand type no operation '~' exists that takes an operand of type temp mediump 4X4 matrix of float (or there is no acceptable conversion)
+ERROR: 0:72: '~' : wrong operand type no operation '~' exists that takes an operand of type temp mediump 3-component vector of float (or there is no acceptable conversion)
+ERROR: 0:73: '~' : wrong operand type no operation '~' exists that takes an operand of type global 5-element array of mediump float (or there is no acceptable conversion)
+ERROR: 0:74: '~' : wrong operand type no operation '~' exists that takes an operand of type layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f} (or there is no acceptable conversion)
+ERROR: 0:76: '<<' : wrong operand types: no operation '<<' exists that takes a left-hand operand of type 'temp mediump int' and a right operand of type 'temp mediump 3-component vector of int' (or there is no acceptable conversion)
+ERROR: 0:77: '<<' : wrong operand types: no operation '<<' exists that takes a left-hand operand of type 'temp mediump uint' and a right operand of type 'temp mediump 3-component vector of uint' (or there is no acceptable conversion)
+ERROR: 0:78: '>>' : wrong operand types: no operation '>>' exists that takes a left-hand operand of type 'temp mediump int' and a right operand of type 'temp mediump float' (or there is no acceptable conversion)
+ERROR: 0:79: '>>' : wrong operand types: no operation '>>' exists that takes a left-hand operand of type 'temp mediump float' and a right operand of type 'temp mediump int' (or there is no acceptable conversion)
+ERROR: 0:80: '>>' : wrong operand types: no operation '>>' exists that takes a left-hand operand of type 'temp mediump 4X4 matrix of float' and a right operand of type 'temp mediump int' (or there is no acceptable conversion)
+ERROR: 0:81: '>>' : wrong operand types: no operation '>>' exists that takes a left-hand operand of type 'global 5-element array of mediump float' and a right operand of type 'temp mediump uint' (or there is no acceptable conversion)
+ERROR: 0:82: '>>' : wrong operand types: no operation '>>' exists that takes a left-hand operand of type 'temp mediump 3-component vector of int' and a right operand of type 'temp mediump 4-component vector of int' (or there is no acceptable conversion)
+ERROR: 0:84: '&' : wrong operand types: no operation '&' exists that takes a left-hand operand of type 'temp mediump int' and a right operand of type 'temp mediump uint' (or there is no acceptable conversion)
+ERROR: 0:85: 'assign' : cannot convert from 'temp mediump 3-component vector of uint' to 'temp mediump uint'
+ERROR: 0:86: '|' : wrong operand types: no operation '|' exists that takes a left-hand operand of type 'temp mediump int' and a right operand of type 'temp mediump 3-component vector of uint' (or there is no acceptable conversion)
+ERROR: 0:87: '&' : wrong operand types: no operation '&' exists that takes a left-hand operand of type 'temp mediump uint' and a right operand of type 'temp mediump float' (or there is no acceptable conversion)
+ERROR: 0:88: '|' : wrong operand types: no operation '|' exists that takes a left-hand operand of type 'temp mediump 2X2 matrix of float' and a right operand of type 'temp mediump 2X2 matrix of float' (or there is no acceptable conversion)
+ERROR: 0:89: '^' : wrong operand types: no operation '^' exists that takes a left-hand operand of type 'global structure{global mediump int i}' and a right operand of type 'global structure{global mediump int i}' (or there is no acceptable conversion)
+ERROR: 0:90: 'assign' : l-value required
+ERROR: 56 compilation errors. No code generated.
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:13 Function Definition: main( (global void)
+0:13 Function Parameters:
+0:? Sequence
+0:30 'instanceName' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f})
+0:31 's' (global structure{global mediump int i})
+0:32 'i' (temp mediump int)
+0:33 'u' (temp mediump uint)
+0:34 'u' (temp mediump uint)
+0:35 'iv3' (temp mediump 3-component vector of int)
+0:36 'iv4' (temp mediump 4-component vector of int)
+0:37 'i' (temp mediump int)
+0:38 'iv3' (temp mediump 3-component vector of int)
+0:39 'a' (global 5-element array of mediump float)
+0:40 'b' (temp bool)
+0:42 'f' (temp mediump float)
+0:43 'i' (temp mediump int)
+0:44 'f' (temp mediump float)
+0:45 'instanceName' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f})
+0:46 's' (global structure{global mediump int i})
+0:47 'a' (global 5-element array of mediump float)
+0:48 'b3' (temp 3-component vector of bool)
+0:50 Constant:
+0:50 false (const bool)
+0:51 Constant:
+0:51 false (const bool)
+0:52 Constant:
+0:52 false (const bool)
+0:53 Constant:
+0:53 false (const bool)
+0:54 Constant:
+0:54 false (const bool)
+0:55 Constant:
+0:55 false (const bool)
+0:57 Constant:
+0:57 false (const bool)
+0:58 Constant:
+0:58 false (const bool)
+0:59 Constant:
+0:59 false (const bool)
+0:60 Constant:
+0:60 false (const bool)
+0:61 Constant:
+0:61 false (const bool)
+0:62 Constant:
+0:62 false (const bool)
+0:64 'u' (temp mediump uint)
+0:65 'i' (temp mediump int)
+0:66 'm2' (temp mediump 2X2 matrix of float)
+0:67 'v3' (temp mediump 3-component vector of float)
+0:68 'a' (global 5-element array of mediump float)
+0:70 'f' (temp mediump float)
+0:71 'm4' (temp mediump 4X4 matrix of float)
+0:72 'v3' (temp mediump 3-component vector of float)
+0:73 'a' (global 5-element array of mediump float)
+0:74 'instanceName' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f})
+0:76 'i' (temp mediump int)
+0:77 'u' (temp mediump uint)
+0:78 'i' (temp mediump int)
+0:79 'f' (temp mediump float)
+0:80 'm4' (temp mediump 4X4 matrix of float)
+0:81 'a' (global 5-element array of mediump float)
+0:82 'iv3' (temp mediump 3-component vector of int)
+0:84 'i' (temp mediump int)
+0:85 'u' (temp mediump uint)
+0:86 'i' (temp mediump int)
+0:87 'u' (temp mediump uint)
+0:88 'm2' (temp mediump 2X2 matrix of float)
+0:89 's' (global structure{global mediump int i})
+0:90 move second child to first child (temp mediump float)
+0:90 move second child to first child (temp mediump float)
+0:90 'f' (temp mediump float)
+0:90 'f' (temp mediump float)
+0:90 'f' (temp mediump float)
+0:93 vector-scale (temp mediump 4-component vector of float)
+0:93 'f' (temp mediump float)
+0:93 'v4' (temp mediump 4-component vector of float)
+0:94 add (temp mediump uint)
+0:94 'u' (temp mediump uint)
+0:94 'u' (temp mediump uint)
+0:95 divide (temp mediump 4-component vector of uint)
+0:95 'uv4' (temp mediump 4-component vector of uint)
+0:95 'u' (temp mediump uint)
+0:96 subtract second child into first child (temp mediump 3-component vector of int)
+0:96 'iv3' (temp mediump 3-component vector of int)
+0:96 'iv3' (temp mediump 3-component vector of int)
+0:98 mod second child into first child (temp mediump int)
+0:98 'i' (temp mediump int)
+0:98 Constant:
+0:98 3 (const int)
+0:99 mod (temp mediump 3-component vector of uint)
+0:99 'uv3' (temp mediump 3-component vector of uint)
+0:99 Constant:
+0:99 4 (const uint)
+0:100 Pre-Decrement (temp mediump 2X2 matrix of float)
+0:100 'm2' (temp mediump 2X2 matrix of float)
+0:101 Post-Increment (temp mediump 4-component vector of int)
+0:101 'iv4' (temp mediump 4-component vector of int)
+0:103 Compare Not Equal (temp bool)
+0:103 'm4' (temp mediump 4X4 matrix of float)
+0:103 'm4' (temp mediump 4X4 matrix of float)
+0:104 Compare Equal (temp bool)
+0:104 'm2' (temp mediump 2X2 matrix of float)
+0:104 'm2' (temp mediump 2X2 matrix of float)
+0:105 Compare Less Than or Equal (temp bool)
+0:105 'i' (temp mediump int)
+0:105 'i' (temp mediump int)
+0:106 Compare Equal (temp bool)
+0:106 'a' (global 5-element array of mediump float)
+0:106 'a' (global 5-element array of mediump float)
+0:107 Compare Not Equal (temp bool)
+0:107 's' (global structure{global mediump int i})
+0:107 's' (global structure{global mediump int i})
+0:109 logical-and (temp bool)
+0:109 'b' (temp bool)
+0:109 'b' (temp bool)
+0:110 logical-or (temp bool)
+0:110 'b' (temp bool)
+0:110 'b' (temp bool)
+0:111 logical-xor (temp bool)
+0:111 'b' (temp bool)
+0:111 'b' (temp bool)
+0:113 Comma (temp mediump 3-component vector of uint)
+0:113 Negate conditional (temp bool)
+0:113 'b' (temp bool)
+0:113 'uv3' (temp mediump 3-component vector of uint)
+0:115 Bitwise not (temp mediump int)
+0:115 'i' (temp mediump int)
+0:116 Bitwise not (temp mediump uint)
+0:116 'u' (temp mediump uint)
+0:117 Bitwise not (temp mediump 3-component vector of uint)
+0:117 'uv3' (temp mediump 3-component vector of uint)
+0:118 Bitwise not (temp mediump 3-component vector of int)
+0:118 'iv3' (temp mediump 3-component vector of int)
+0:120 left shift second child into first child (temp mediump 3-component vector of uint)
+0:120 'uv3' (temp mediump 3-component vector of uint)
+0:120 'i' (temp mediump int)
+0:121 right-shift (temp mediump int)
+0:121 'i' (temp mediump int)
+0:121 'i' (temp mediump int)
+0:122 left-shift (temp mediump uint)
+0:122 'u' (temp mediump uint)
+0:122 'u' (temp mediump uint)
+0:123 right-shift (temp mediump 3-component vector of int)
+0:123 'iv3' (temp mediump 3-component vector of int)
+0:123 'iv3' (temp mediump 3-component vector of int)
+0:125 bitwise and (temp mediump int)
+0:125 'i' (temp mediump int)
+0:125 'i' (temp mediump int)
+0:126 inclusive-or (temp mediump uint)
+0:126 'u' (temp mediump uint)
+0:126 'u' (temp mediump uint)
+0:127 exclusive-or (temp mediump 3-component vector of int)
+0:127 'iv3' (temp mediump 3-component vector of int)
+0:127 'iv3' (temp mediump 3-component vector of int)
+0:128 bitwise and (temp mediump 3-component vector of uint)
+0:128 'u' (temp mediump uint)
+0:128 'uv3' (temp mediump 3-component vector of uint)
+0:129 inclusive-or (temp mediump 3-component vector of uint)
+0:129 'uv3' (temp mediump 3-component vector of uint)
+0:129 'u' (temp mediump uint)
+0:130 and second child into first child (temp mediump 3-component vector of uint)
+0:130 'uv3' (temp mediump 3-component vector of uint)
+0:130 'u' (temp mediump uint)
+0:132 direct index (temp mediump int)
+0:132 'arr' (temp 2-element array of mediump int)
+0:132 Constant:
+0:132 1 (const int)
+0:134 direct index (temp mediump int)
+0:134 'arr2' (temp 3-element array of mediump int)
+0:134 Constant:
+0:134 2 (const int)
+0:? Linker Objects
+0:? 'instanceName' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f})
+0:? 's' (global structure{global mediump int i})
+0:? 'a' (global 5-element array of mediump float)
+
+
+Linked fragment stage:
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:13 Function Definition: main( (global void)
+0:13 Function Parameters:
+0:? Sequence
+0:30 'instanceName' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f})
+0:31 's' (global structure{global mediump int i})
+0:32 'i' (temp mediump int)
+0:33 'u' (temp mediump uint)
+0:34 'u' (temp mediump uint)
+0:35 'iv3' (temp mediump 3-component vector of int)
+0:36 'iv4' (temp mediump 4-component vector of int)
+0:37 'i' (temp mediump int)
+0:38 'iv3' (temp mediump 3-component vector of int)
+0:39 'a' (global 5-element array of mediump float)
+0:40 'b' (temp bool)
+0:42 'f' (temp mediump float)
+0:43 'i' (temp mediump int)
+0:44 'f' (temp mediump float)
+0:45 'instanceName' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f})
+0:46 's' (global structure{global mediump int i})
+0:47 'a' (global 5-element array of mediump float)
+0:48 'b3' (temp 3-component vector of bool)
+0:50 Constant:
+0:50 false (const bool)
+0:51 Constant:
+0:51 false (const bool)
+0:52 Constant:
+0:52 false (const bool)
+0:53 Constant:
+0:53 false (const bool)
+0:54 Constant:
+0:54 false (const bool)
+0:55 Constant:
+0:55 false (const bool)
+0:57 Constant:
+0:57 false (const bool)
+0:58 Constant:
+0:58 false (const bool)
+0:59 Constant:
+0:59 false (const bool)
+0:60 Constant:
+0:60 false (const bool)
+0:61 Constant:
+0:61 false (const bool)
+0:62 Constant:
+0:62 false (const bool)
+0:64 'u' (temp mediump uint)
+0:65 'i' (temp mediump int)
+0:66 'm2' (temp mediump 2X2 matrix of float)
+0:67 'v3' (temp mediump 3-component vector of float)
+0:68 'a' (global 5-element array of mediump float)
+0:70 'f' (temp mediump float)
+0:71 'm4' (temp mediump 4X4 matrix of float)
+0:72 'v3' (temp mediump 3-component vector of float)
+0:73 'a' (global 5-element array of mediump float)
+0:74 'instanceName' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f})
+0:76 'i' (temp mediump int)
+0:77 'u' (temp mediump uint)
+0:78 'i' (temp mediump int)
+0:79 'f' (temp mediump float)
+0:80 'm4' (temp mediump 4X4 matrix of float)
+0:81 'a' (global 5-element array of mediump float)
+0:82 'iv3' (temp mediump 3-component vector of int)
+0:84 'i' (temp mediump int)
+0:85 'u' (temp mediump uint)
+0:86 'i' (temp mediump int)
+0:87 'u' (temp mediump uint)
+0:88 'm2' (temp mediump 2X2 matrix of float)
+0:89 's' (global structure{global mediump int i})
+0:90 move second child to first child (temp mediump float)
+0:90 move second child to first child (temp mediump float)
+0:90 'f' (temp mediump float)
+0:90 'f' (temp mediump float)
+0:90 'f' (temp mediump float)
+0:93 vector-scale (temp mediump 4-component vector of float)
+0:93 'f' (temp mediump float)
+0:93 'v4' (temp mediump 4-component vector of float)
+0:94 add (temp mediump uint)
+0:94 'u' (temp mediump uint)
+0:94 'u' (temp mediump uint)
+0:95 divide (temp mediump 4-component vector of uint)
+0:95 'uv4' (temp mediump 4-component vector of uint)
+0:95 'u' (temp mediump uint)
+0:96 subtract second child into first child (temp mediump 3-component vector of int)
+0:96 'iv3' (temp mediump 3-component vector of int)
+0:96 'iv3' (temp mediump 3-component vector of int)
+0:98 mod second child into first child (temp mediump int)
+0:98 'i' (temp mediump int)
+0:98 Constant:
+0:98 3 (const int)
+0:99 mod (temp mediump 3-component vector of uint)
+0:99 'uv3' (temp mediump 3-component vector of uint)
+0:99 Constant:
+0:99 4 (const uint)
+0:100 Pre-Decrement (temp mediump 2X2 matrix of float)
+0:100 'm2' (temp mediump 2X2 matrix of float)
+0:101 Post-Increment (temp mediump 4-component vector of int)
+0:101 'iv4' (temp mediump 4-component vector of int)
+0:103 Compare Not Equal (temp bool)
+0:103 'm4' (temp mediump 4X4 matrix of float)
+0:103 'm4' (temp mediump 4X4 matrix of float)
+0:104 Compare Equal (temp bool)
+0:104 'm2' (temp mediump 2X2 matrix of float)
+0:104 'm2' (temp mediump 2X2 matrix of float)
+0:105 Compare Less Than or Equal (temp bool)
+0:105 'i' (temp mediump int)
+0:105 'i' (temp mediump int)
+0:106 Compare Equal (temp bool)
+0:106 'a' (global 5-element array of mediump float)
+0:106 'a' (global 5-element array of mediump float)
+0:107 Compare Not Equal (temp bool)
+0:107 's' (global structure{global mediump int i})
+0:107 's' (global structure{global mediump int i})
+0:109 logical-and (temp bool)
+0:109 'b' (temp bool)
+0:109 'b' (temp bool)
+0:110 logical-or (temp bool)
+0:110 'b' (temp bool)
+0:110 'b' (temp bool)
+0:111 logical-xor (temp bool)
+0:111 'b' (temp bool)
+0:111 'b' (temp bool)
+0:113 Comma (temp mediump 3-component vector of uint)
+0:113 Negate conditional (temp bool)
+0:113 'b' (temp bool)
+0:113 'uv3' (temp mediump 3-component vector of uint)
+0:115 Bitwise not (temp mediump int)
+0:115 'i' (temp mediump int)
+0:116 Bitwise not (temp mediump uint)
+0:116 'u' (temp mediump uint)
+0:117 Bitwise not (temp mediump 3-component vector of uint)
+0:117 'uv3' (temp mediump 3-component vector of uint)
+0:118 Bitwise not (temp mediump 3-component vector of int)
+0:118 'iv3' (temp mediump 3-component vector of int)
+0:120 left shift second child into first child (temp mediump 3-component vector of uint)
+0:120 'uv3' (temp mediump 3-component vector of uint)
+0:120 'i' (temp mediump int)
+0:121 right-shift (temp mediump int)
+0:121 'i' (temp mediump int)
+0:121 'i' (temp mediump int)
+0:122 left-shift (temp mediump uint)
+0:122 'u' (temp mediump uint)
+0:122 'u' (temp mediump uint)
+0:123 right-shift (temp mediump 3-component vector of int)
+0:123 'iv3' (temp mediump 3-component vector of int)
+0:123 'iv3' (temp mediump 3-component vector of int)
+0:125 bitwise and (temp mediump int)
+0:125 'i' (temp mediump int)
+0:125 'i' (temp mediump int)
+0:126 inclusive-or (temp mediump uint)
+0:126 'u' (temp mediump uint)
+0:126 'u' (temp mediump uint)
+0:127 exclusive-or (temp mediump 3-component vector of int)
+0:127 'iv3' (temp mediump 3-component vector of int)
+0:127 'iv3' (temp mediump 3-component vector of int)
+0:128 bitwise and (temp mediump 3-component vector of uint)
+0:128 'u' (temp mediump uint)
+0:128 'uv3' (temp mediump 3-component vector of uint)
+0:129 inclusive-or (temp mediump 3-component vector of uint)
+0:129 'uv3' (temp mediump 3-component vector of uint)
+0:129 'u' (temp mediump uint)
+0:130 and second child into first child (temp mediump 3-component vector of uint)
+0:130 'uv3' (temp mediump 3-component vector of uint)
+0:130 'u' (temp mediump uint)
+0:132 direct index (temp mediump int)
+0:132 'arr' (temp 2-element array of mediump int)
+0:132 Constant:
+0:132 1 (const int)
+0:134 direct index (temp mediump int)
+0:134 'arr2' (temp 3-element array of mediump int)
+0:134 Constant:
+0:134 2 (const int)
+0:? Linker Objects
+0:? 'instanceName' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f})
+0:? 's' (global structure{global mediump int i})
+0:? 'a' (global 5-element array of mediump float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/300scope.vert.out b/chromium/third_party/glslang/src/Test/baseResults/300scope.vert.out
new file mode 100644
index 00000000000..2a9a945d01d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/300scope.vert.out
@@ -0,0 +1,239 @@
+300scope.vert
+ERROR: 0:5: 'a' : redefinition
+ERROR: 0:17: 'b' : function name is redeclaration of existing name
+ERROR: 0:20: 'c' : redefinition
+ERROR: 0:22: 'f' : redefinition
+ERROR: 0:23: 'tan' : redefinition
+ERROR: 0:24: 'redefinition of built-in function' : not supported with this profile: es
+ERROR: 0:24: 'highp' : overloaded functions must have the same parameter precision qualifiers for argument 1
+ERROR: 0:24: 'sin' : function name is redeclaration of existing name
+ERROR: 0:25: 'redefinition of built-in function' : not supported with this profile: es
+ERROR: 0:25: 'highp' : overloaded functions must have the same parameter precision qualifiers for argument 1
+ERROR: 0:25: 'cos' : function name is redeclaration of existing name
+ERROR: 0:25: 'cos' : function already has a body
+ERROR: 0:27: 'return' : void function cannot return a value
+ERROR: 0:29: 'radians' : function name is redeclaration of existing name
+ERROR: 0:29: 'radians' : can't find function
+ERROR: 0:31: 'return' : void function cannot return a value
+ERROR: 0:38: 'local function declaration' : not supported with this profile: es
+ERROR: 0:43: 'sin' : can't use function syntax on variable
+ERROR: 0:57: 'z' : undeclared identifier
+ERROR: 0:57: 'z' : redefinition
+ERROR: 0:73: 'degrees' : can't use function syntax on variable
+ERROR: 21 compilation errors. No code generated.
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:3 Function Definition: f(i1;i1;i1; (global highp int)
+0:3 Function Parameters:
+0:3 'a' (in highp int)
+0:3 'b' (in highp int)
+0:3 'c' (in highp int)
+0:? Sequence
+0:8 Sequence
+0:8 Sequence
+0:8 move second child to first child (temp highp float)
+0:8 'a' (temp highp float)
+0:8 add (temp highp float)
+0:8 Convert int to float (temp highp float)
+0:8 'a' (in highp int)
+0:8 Constant:
+0:8 1.000000
+0:11 Branch: Return with expression
+0:11 'a' (in highp int)
+0:25 Function Definition: cos(f1; (global highp float)
+0:25 Function Parameters:
+0:25 'x' (in highp float)
+0:27 Sequence
+0:27 Branch: Return
+0:29 Function Definition: radians(b1; (global bool)
+0:29 Function Parameters:
+0:29 'x' (in bool)
+0:31 Sequence
+0:31 Branch: Return
+0:36 Function Definition: main( (global void)
+0:36 Function Parameters:
+0:? Sequence
+0:39 Function Call: g( (temp highp int)
+0:42 'sin' (temp highp float)
+0:43 Constant:
+0:43 0.000000
+0:44 Function Call: f(i1;i1;i1; (global highp int)
+0:44 Constant:
+0:44 1 (const int)
+0:44 Constant:
+0:44 2 (const int)
+0:44 Constant:
+0:44 3 (const int)
+0:47 move second child to first child (temp highp float)
+0:47 'f' (temp highp float)
+0:47 Constant:
+0:47 3.000000
+0:49 move second child to first child (temp highp 4-component vector of float)
+0:49 'gl_Position' (invariant gl_Position highp 4-component vector of float Position)
+0:49 Construct vec4 (temp highp 4-component vector of float)
+0:49 'f' (temp highp float)
+0:51 Sequence
+0:51 Sequence
+0:51 move second child to first child (temp highp int)
+0:51 'f' (temp highp int)
+0:51 Constant:
+0:51 0 (const int)
+0:51 Loop with condition tested first
+0:51 Loop Condition
+0:51 Compare Less Than (temp bool)
+0:51 'f' (temp highp int)
+0:51 Constant:
+0:51 10 (const int)
+0:51 Loop Body
+0:52 Pre-Increment (temp highp int)
+0:52 'f' (temp highp int)
+0:51 Loop Terminal Expression
+0:51 Pre-Increment (temp highp int)
+0:51 'f' (temp highp int)
+0:54 Sequence
+0:54 move second child to first child (temp highp int)
+0:54 'x' (temp highp int)
+0:54 Constant:
+0:54 1 (const int)
+0:56 Sequence
+0:56 Sequence
+0:56 move second child to first child (temp highp float)
+0:56 'x' (temp highp float)
+0:56 Constant:
+0:56 2.000000
+0:56 move second child to first child (temp highp float)
+0:56 'y' (temp highp float)
+0:56 'x' (temp highp float)
+0:60 Sequence
+0:60 Sequence
+0:60 move second child to first child (temp highp int)
+0:60 'x' (temp highp int)
+0:60 'x' (temp highp int)
+0:68 Sequence
+0:68 Sequence
+0:68 move second child to first child (temp structure{temp highp int x})
+0:68 'S' (temp structure{temp highp int x})
+0:68 Constant:
+0:68 0 (const int)
+0:69 x: direct index for structure (temp highp int)
+0:69 'S' (temp structure{temp highp int x})
+0:69 Constant:
+0:69 0 (const int)
+0:73 Constant:
+0:73 0.000000
+0:? Linker Objects
+0:? 'b' (global bool)
+0:? 'gl_VertexID' (gl_VertexId highp int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+
+
+Linked vertex stage:
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:3 Function Definition: f(i1;i1;i1; (global highp int)
+0:3 Function Parameters:
+0:3 'a' (in highp int)
+0:3 'b' (in highp int)
+0:3 'c' (in highp int)
+0:? Sequence
+0:8 Sequence
+0:8 Sequence
+0:8 move second child to first child (temp highp float)
+0:8 'a' (temp highp float)
+0:8 add (temp highp float)
+0:8 Convert int to float (temp highp float)
+0:8 'a' (in highp int)
+0:8 Constant:
+0:8 1.000000
+0:11 Branch: Return with expression
+0:11 'a' (in highp int)
+0:25 Function Definition: cos(f1; (global highp float)
+0:25 Function Parameters:
+0:25 'x' (in highp float)
+0:27 Sequence
+0:27 Branch: Return
+0:29 Function Definition: radians(b1; (global bool)
+0:29 Function Parameters:
+0:29 'x' (in bool)
+0:31 Sequence
+0:31 Branch: Return
+0:36 Function Definition: main( (global void)
+0:36 Function Parameters:
+0:? Sequence
+0:39 Function Call: g( (temp highp int)
+0:42 'sin' (temp highp float)
+0:43 Constant:
+0:43 0.000000
+0:44 Function Call: f(i1;i1;i1; (global highp int)
+0:44 Constant:
+0:44 1 (const int)
+0:44 Constant:
+0:44 2 (const int)
+0:44 Constant:
+0:44 3 (const int)
+0:47 move second child to first child (temp highp float)
+0:47 'f' (temp highp float)
+0:47 Constant:
+0:47 3.000000
+0:49 move second child to first child (temp highp 4-component vector of float)
+0:49 'gl_Position' (invariant gl_Position highp 4-component vector of float Position)
+0:49 Construct vec4 (temp highp 4-component vector of float)
+0:49 'f' (temp highp float)
+0:51 Sequence
+0:51 Sequence
+0:51 move second child to first child (temp highp int)
+0:51 'f' (temp highp int)
+0:51 Constant:
+0:51 0 (const int)
+0:51 Loop with condition tested first
+0:51 Loop Condition
+0:51 Compare Less Than (temp bool)
+0:51 'f' (temp highp int)
+0:51 Constant:
+0:51 10 (const int)
+0:51 Loop Body
+0:52 Pre-Increment (temp highp int)
+0:52 'f' (temp highp int)
+0:51 Loop Terminal Expression
+0:51 Pre-Increment (temp highp int)
+0:51 'f' (temp highp int)
+0:54 Sequence
+0:54 move second child to first child (temp highp int)
+0:54 'x' (temp highp int)
+0:54 Constant:
+0:54 1 (const int)
+0:56 Sequence
+0:56 Sequence
+0:56 move second child to first child (temp highp float)
+0:56 'x' (temp highp float)
+0:56 Constant:
+0:56 2.000000
+0:56 move second child to first child (temp highp float)
+0:56 'y' (temp highp float)
+0:56 'x' (temp highp float)
+0:60 Sequence
+0:60 Sequence
+0:60 move second child to first child (temp highp int)
+0:60 'x' (temp highp int)
+0:60 'x' (temp highp int)
+0:68 Sequence
+0:68 Sequence
+0:68 move second child to first child (temp structure{temp highp int x})
+0:68 'S' (temp structure{temp highp int x})
+0:68 Constant:
+0:68 0 (const int)
+0:69 x: direct index for structure (temp highp int)
+0:69 'S' (temp structure{temp highp int x})
+0:69 Constant:
+0:69 0 (const int)
+0:73 Constant:
+0:73 0.000000
+0:? Linker Objects
+0:? 'b' (global bool)
+0:? 'gl_VertexID' (gl_VertexId highp int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/310.comp.out b/chromium/third_party/glslang/src/Test/baseResults/310.comp.out
new file mode 100644
index 00000000000..67129d1d370
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/310.comp.out
@@ -0,0 +1,934 @@
+310.comp
+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:4: 'local_size' : cannot change previously set size
+ERROR: 0:5: 'local_size' : too large; see gl_MaxComputeWorkGroupSize
+ERROR: 0:23: '' : array size required
+ERROR: 0:39: 'in' : global storage input qualifier cannot be used in a compute shader
+ERROR: 0:39: 'location qualifier on input' : not supported in this stage: compute
+ERROR: 0:40: 'in' : global storage input qualifier cannot be used in a compute shader
+ERROR: 0:41: 'out' : global storage output qualifier cannot be used in a compute shader
+ERROR: 0:44: 'shared' : cannot apply layout qualifiers to a shared variable
+ERROR: 0:44: 'location' : can only apply to uniform, buffer, in, or out storage qualifiers
+ERROR: 0:45: 'shared' : cannot initialize this type of qualifier
+ERROR: 0:47: 'local_size' : can only apply to 'in'
+ERROR: 0:47: 'local_size' : can only apply to 'in'
+ERROR: 0:47: 'local_size' : can only apply to 'in'
+ERROR: 0:61: 'assign' : l-value required "ro" (can't modify a readonly buffer)
+ERROR: 0:66: 'buffer' : buffers can be declared only as blocks
+ERROR: 0:68: 'sampler/image' : type requires declaration of default precision qualifier
+ERROR: 0:76: '' : image variables not declared 'writeonly' must have a format layout qualifier
+ERROR: 0:87: 'imageAtomicCompSwap' : required extension not requested: GL_OES_shader_image_atomic
+ERROR: 0:88: 'imageAtomicAdd' : required extension not requested: GL_OES_shader_image_atomic
+ERROR: 0:89: 'imageAtomicMin' : required extension not requested: GL_OES_shader_image_atomic
+ERROR: 0:89: 'readonly' : argument cannot drop memory qualifier when passed to formal parameter
+ERROR: 0:89: 'imageAtomicMin' : only supported on image with format r32i or r32ui
+ERROR: 0:90: 'imageAtomicMax' : no matching overloaded function found
+ERROR: 0:94: 'writeonly' : argument cannot drop memory qualifier when passed to formal parameter
+ERROR: 0:97: '' : memory qualifiers cannot be used on this type
+ERROR: 0:98: '' : memory qualifiers cannot be used on this type
+ERROR: 0:114: 'image load-store format' : not supported with this profile: es
+ERROR: 0:114: 'rg8i' : does not apply to unsigned integer images
+ERROR: 0:115: 'rgba32i' : does not apply to floating point images
+ERROR: 0:116: 'rgba32f' : does not apply to unsigned integer images
+ERROR: 0:117: 'image load-store format' : not supported with this profile: es
+ERROR: 0:117: 'r8_snorm' : does not apply to signed integer images
+ERROR: 0:118: 'rgba32ui' : does not apply to signed integer images
+ERROR: 0:119: 'image load-store format' : not supported with this profile: es
+ERROR: 0:119: 'r8ui' : does not apply to signed integer images
+ERROR: 0:128: 'atomic_uint' : samplers and atomic_uints cannot be output parameters
+ERROR: 0:130: 'return' : type does not match, or is not convertible to, the function's return type
+ERROR: 0:136: 'atomic_uint' : atomic_uints can only be used in uniform variables or function parameters: non_uniform_counter
+ERROR: 0:136: 'atomic_uint' : layout(binding=X) is required
+ERROR: 0:141: 'atomic_uint' : atomic counters can only be highp
+ERROR: 0:141: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings
+ERROR: 0:143: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings
+ERROR: 0:149: '[]' : scalar integer expression required
+ERROR: 0:166: 'precision' : can only apply highp to atomic_uint
+ERROR: 0:168: 'precise' : Reserved word.
+ERROR: 0:168: 'precise' : not supported for this version or the enabled extensions
+ERROR: 0:170: 'dmat2x4' : Reserved word.
+ERROR: 0:170: 'double matrix' : not supported with this profile: es
+ERROR: 0:171: 'samplerCubeArray' : Reserved word.
+ERROR: 0:171: 'sampler/image' : type requires declaration of default precision qualifier
+ERROR: 0:172: 'iimage2DRect' : Reserved word.
+ERROR: 0:172: 'sampler/image' : type requires declaration of default precision qualifier
+ERROR: 0:172: '' : image variables not declared 'writeonly' must have a format layout qualifier
+ERROR: 0:173: 'image2DMS' : Reserved word.
+ERROR: 0:173: '' : image variables not declared 'writeonly' must have a format layout qualifier
+ERROR: 0:174: 'uimage2DMSArray' : Reserved word.
+ERROR: 0:174: 'sampler/image' : type requires declaration of default precision qualifier
+ERROR: 0:174: '' : image variables not declared 'writeonly' must have a format layout qualifier
+ERROR: 0:181: 'rgba32f' : format requires readonly or writeonly memory qualifier
+ERROR: 0:182: 'rgba8i' : format requires readonly or writeonly memory qualifier
+ERROR: 0:183: 'rgba16ui' : format requires readonly or writeonly memory qualifier
+ERROR: 0:194: 'assign' : can't read from writeonly object: wo
+ERROR: 0:195: 'initializer' : can't read from writeonly object: wo
+ERROR: 0:196: '++' : can't read from writeonly object: wo
+ERROR: 0:197: '--' : can't read from writeonly object: wo
+ERROR: 0:198: '+' : can't read from writeonly object: wo
+ERROR: 0:199: '-' : can't read from writeonly object: wo
+ERROR: 0:201: ':' : can't read from writeonly object: wo
+ERROR: 0:202: ':' : can't read from writeonly object: wo
+ERROR: 0:203: '==' : can't read from writeonly object: wo
+ERROR: 0:205: '>=' : can't read from writeonly object: wo
+ERROR: 0:207: 'constructor' : can't read from writeonly object: wo
+ERROR: 0:208: '~' : can't read from writeonly object: wo
+ERROR: 0:221: 'assign' : can't read from writeonly object: wo
+ERROR: 0:222: '~' : can't read from writeonly object: wo
+ERROR: 0:227: 'input block' : not supported in this stage: compute
+ERROR: 0:231: 'output block' : not supported in this stage: compute
+WARNING: 0:235: 't__' : identifiers containing consecutive underscores ("__") are reserved
+WARNING: 0:238: '#define' : names containing consecutive underscores are reserved: __D
+ERROR: 77 compilation errors. No code generated.
+
+
+Shader version: 310
+local_size = (2, 1, 4096)
+ERROR: node is still EOpNull!
+0:27 Function Definition: main( (global void)
+0:27 Function Parameters:
+0:29 Sequence
+0:29 Barrier (global void)
+0:30 MemoryBarrier (global void)
+0:31 MemoryBarrierAtomicCounter (global void)
+0:32 MemoryBarrierBuffer (global void)
+0:33 MemoryBarrierShared (global void)
+0:34 MemoryBarrierImage (global void)
+0:35 GroupMemoryBarrier (global void)
+0:36 move second child to first child (temp highp int)
+0:36 value: direct index for structure (layout(column_major shared ) buffer highp int)
+0:36 'anon@0' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:36 Constant:
+0:36 0 (const uint)
+0:36 Convert float to int (temp highp int)
+0:36 indirect index (layout(column_major shared ) temp highp float)
+0:36 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:36 'anon@0' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:36 Constant:
+0:36 1 (const uint)
+0:36 'gl_LocalInvocationIndex' (in highp uint LocalInvocationIndex)
+0:59 Function Definition: foo( (global void)
+0:59 Function Parameters:
+0:61 Sequence
+0:61 move second child to first child (temp highp float)
+0:61 direct index (layout(column_major shared ) temp highp float)
+0:61 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:61 'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:61 Constant:
+0:61 1 (const int)
+0:61 Constant:
+0:61 2 (const int)
+0:61 Constant:
+0:61 4.700000
+0:62 array length (temp highp int)
+0:62 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:62 'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:62 Constant:
+0:62 1 (const int)
+0:63 Pre-Increment (temp highp 4-component vector of float)
+0:63 's' (shared highp 4-component vector of float)
+0:84 Function Definition: qux( (global void)
+0:84 Function Parameters:
+0:86 Sequence
+0:86 Sequence
+0:86 move second child to first child (temp highp int)
+0:86 'i' (temp highp int)
+0:86 Constant:
+0:86 4 (const int)
+0:87 imageAtomicCompSwap (global highp int)
+0:87 'iimg2D' (layout(r32i ) uniform highp iimage2D)
+0:87 Construct ivec2 (temp highp 2-component vector of int)
+0:87 'i' (temp highp int)
+0:87 'i' (temp highp int)
+0:87 'i' (temp highp int)
+0:87 'i' (temp highp int)
+0:88 imageAtomicAdd (global highp uint)
+0:88 'uimg2D' (layout(r32ui ) uniform highp uimage2D)
+0:88 Construct ivec2 (temp highp 2-component vector of int)
+0:88 'i' (temp highp int)
+0:88 'i' (temp highp int)
+0:88 Convert int to uint (temp highp uint)
+0:88 'i' (temp highp int)
+0:89 imageAtomicMin (global highp int)
+0:89 'iimg2Drgba' (layout(rgba32i ) readonly uniform highp iimage2D)
+0:89 Construct ivec2 (temp highp 2-component vector of int)
+0:89 'i' (temp highp int)
+0:89 'i' (temp highp int)
+0:89 'i' (temp highp int)
+0:90 Constant:
+0:90 0.000000
+0:91 Sequence
+0:91 move second child to first child (temp highp 4-component vector of int)
+0:91 'pos' (temp highp 4-component vector of int)
+0:91 imageLoad (global highp 4-component vector of int)
+0:91 'iimg2D' (layout(r32i ) uniform highp iimage2D)
+0:91 Construct ivec2 (temp highp 2-component vector of int)
+0:91 'i' (temp highp int)
+0:91 'i' (temp highp int)
+0:92 imageStore (global highp void)
+0:92 'ii2da' (writeonly uniform highp iimage2DArray)
+0:92 Construct ivec3 (temp 3-component vector of int)
+0:92 'i' (temp highp int)
+0:92 'i' (temp highp int)
+0:92 'i' (temp highp int)
+0:92 Constant:
+0:92 0 (const int)
+0:92 0 (const int)
+0:92 0 (const int)
+0:92 0 (const int)
+0:93 imageLoad (global highp 4-component vector of float)
+0:93 'img2Drgba' (layout(rgba32f ) readonly uniform lowp image2D)
+0:93 Construct ivec2 (temp highp 2-component vector of int)
+0:93 'i' (temp highp int)
+0:93 'i' (temp highp int)
+0:94 imageLoad (global highp 4-component vector of int)
+0:94 'ii2da' (writeonly uniform highp iimage2DArray)
+0:94 Construct ivec3 (temp highp 3-component vector of int)
+0:94 'i' (temp highp int)
+0:94 'i' (temp highp int)
+0:94 'i' (temp highp int)
+0:100 Function Definition: passr(iI21; (global void)
+0:100 Function Parameters:
+0:100 'image' (coherent readonly in highp iimage2D)
+0:107 Function Definition: passrc( (global void)
+0:107 Function Parameters:
+0:109 Sequence
+0:109 Function Call: passr(iI21; (global void)
+0:109 'qualim1' (layout(r32i ) coherent readonly uniform highp iimage2D)
+0:110 Function Call: passr(iI21; (global void)
+0:110 'qualim2' (layout(r32i ) coherent restrict readonly uniform highp iimage2D)
+0:111 Function Call: passr(iI21; (global void)
+0:111 'iimg2D' (layout(r32i ) uniform highp iimage2D)
+0:123 Function Definition: func(au1; (global highp uint)
+0:123 Function Parameters:
+0:123 'c' (in highp atomic_uint)
+0:125 Sequence
+0:125 Branch: Return with expression
+0:125 AtomicCounterIncrement (global highp uint)
+0:125 'c' (in highp atomic_uint)
+0:128 Function Definition: func2(au1; (global highp uint)
+0:128 Function Parameters:
+0:128 'c' (out highp atomic_uint)
+0:130 Sequence
+0:130 Branch: Return with expression
+0:130 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
+0:131 Branch: Return with expression
+0:131 AtomicCounter (global highp uint)
+0:131 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
+0:134 Function Definition: mainAC( (global void)
+0:134 Function Parameters:
+0:? Sequence
+0:137 Sequence
+0:137 move second child to first child (temp highp uint)
+0:137 'val' (temp highp uint)
+0:137 AtomicCounter (global highp uint)
+0:137 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
+0:138 AtomicCounterDecrement (global highp uint)
+0:138 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
+0:146 Function Definition: opac( (global void)
+0:146 Function Parameters:
+0:? Sequence
+0:149 indirect index (temp highp int)
+0:149 'a' (temp 3-element array of highp int)
+0:149 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
+0:150 direct index (layout(binding=2 offset=4 ) temp highp atomic_uint)
+0:150 'countArr' (layout(binding=2 offset=4 ) uniform 4-element array of highp atomic_uint)
+0:150 Constant:
+0:150 2 (const int)
+0:151 indirect index (layout(binding=2 offset=4 ) temp highp atomic_uint)
+0:151 'countArr' (layout(binding=2 offset=4 ) uniform 4-element array of highp atomic_uint)
+0:151 'i' (uniform highp int)
+0:157 Function Definition: atoms( (global void)
+0:157 Function Parameters:
+0:159 Sequence
+0:159 Sequence
+0:159 move second child to first child (temp highp int)
+0:159 'origi' (temp highp int)
+0:159 AtomicAdd (global highp int)
+0:159 'atomi' (shared highp int)
+0:159 Constant:
+0:159 3 (const int)
+0:160 Sequence
+0:160 move second child to first child (temp highp uint)
+0:160 'origu' (temp highp uint)
+0:160 AtomicAnd (global highp uint)
+0:160 'atomu' (shared highp uint)
+0:160 Constant:
+0:160 7 (const uint)
+0:161 move second child to first child (temp highp int)
+0:161 'origi' (temp highp int)
+0:161 AtomicExchange (global highp int)
+0:161 'atomi' (shared highp int)
+0:161 Constant:
+0:161 4 (const int)
+0:162 move second child to first child (temp highp uint)
+0:162 'origu' (temp highp uint)
+0:162 AtomicCompSwap (global highp uint)
+0:162 'atomu' (shared highp uint)
+0:162 Constant:
+0:162 10 (const uint)
+0:162 Constant:
+0:162 8 (const uint)
+0:191 Function Definition: foowo( (global void)
+0:191 Function Parameters:
+0:? Sequence
+0:194 move second child to first child (temp highp float)
+0:194 'g' (temp highp float)
+0:194 direct index (layout(column_major shared ) temp highp float)
+0:194 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:194 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:194 Constant:
+0:194 1 (const int)
+0:194 Constant:
+0:194 2 (const int)
+0:195 Sequence
+0:195 move second child to first child (temp highp float)
+0:195 'f' (temp highp float)
+0:195 direct index (layout(column_major shared ) temp highp float)
+0:195 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:195 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:195 Constant:
+0:195 1 (const int)
+0:195 Constant:
+0:195 2 (const int)
+0:196 Pre-Increment (temp highp float)
+0:196 direct index (layout(column_major shared ) temp highp float)
+0:196 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:196 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:196 Constant:
+0:196 1 (const int)
+0:196 Constant:
+0:196 2 (const int)
+0:197 Post-Decrement (temp highp float)
+0:197 direct index (layout(column_major shared ) temp highp float)
+0:197 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:197 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:197 Constant:
+0:197 1 (const int)
+0:197 Constant:
+0:197 2 (const int)
+0:198 add (temp highp float)
+0:198 'f' (temp highp float)
+0:198 direct index (layout(column_major shared ) temp highp float)
+0:198 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:198 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:198 Constant:
+0:198 1 (const int)
+0:198 Constant:
+0:198 2 (const int)
+0:199 subtract (temp highp float)
+0:199 direct index (layout(column_major shared ) temp highp float)
+0:199 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:199 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:199 Constant:
+0:199 1 (const int)
+0:199 Constant:
+0:199 2 (const int)
+0:199 'f' (temp highp float)
+0:201 Test condition and select (temp highp float)
+0:201 Condition
+0:201 'b' (temp bool)
+0:201 true case
+0:201 'f' (temp highp float)
+0:201 false case
+0:201 direct index (layout(column_major shared ) temp highp float)
+0:201 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:201 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:201 Constant:
+0:201 1 (const int)
+0:201 Constant:
+0:201 2 (const int)
+0:202 Test condition and select (temp highp float)
+0:202 Condition
+0:202 'b' (temp bool)
+0:202 true case
+0:202 direct index (layout(column_major shared ) temp highp float)
+0:202 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:202 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:202 Constant:
+0:202 1 (const int)
+0:202 Constant:
+0:202 2 (const int)
+0:202 false case
+0:202 'f' (temp highp float)
+0:203 Test condition and select (temp void)
+0:203 Condition
+0:203 Compare Equal (temp bool)
+0:203 'f' (temp highp float)
+0:203 direct index (layout(column_major shared ) temp highp float)
+0:203 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:203 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:203 Constant:
+0:203 1 (const int)
+0:203 Constant:
+0:203 2 (const int)
+0:203 true case
+0:204 Pre-Increment (temp highp float)
+0:204 'f' (temp highp float)
+0:205 Test condition and select (temp void)
+0:205 Condition
+0:205 Compare Greater Than or Equal (temp bool)
+0:205 'f' (temp highp float)
+0:205 direct index (layout(column_major shared ) temp highp float)
+0:205 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:205 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:205 Constant:
+0:205 1 (const int)
+0:205 Constant:
+0:205 2 (const int)
+0:205 true case
+0:206 Pre-Increment (temp highp float)
+0:206 'f' (temp highp float)
+0:207 move second child to first child (temp highp float)
+0:207 'f' (temp highp float)
+0:207 direct index (temp highp float)
+0:207 Construct vec3 (temp highp 3-component vector of float)
+0:207 direct index (layout(column_major shared ) temp highp float)
+0:207 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:207 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:207 Constant:
+0:207 1 (const int)
+0:207 Constant:
+0:207 2 (const int)
+0:207 Constant:
+0:207 0 (const int)
+0:208 Bitwise not (temp highp int)
+0:208 value: direct index for structure (layout(column_major shared ) buffer highp int)
+0:208 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:208 Constant:
+0:208 0 (const int)
+0:209 move second child to first child (temp highp float)
+0:209 direct index (layout(column_major shared ) temp highp float)
+0:209 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:209 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:209 Constant:
+0:209 1 (const int)
+0:209 Constant:
+0:209 2 (const int)
+0:209 Constant:
+0:209 3.400000
+0:218 Function Definition: foomultio( (global void)
+0:218 Function Parameters:
+0:? Sequence
+0:221 move second child to first child (temp highp float)
+0:221 'g' (temp highp float)
+0:221 direct index (layout(column_major shared ) temp highp float)
+0:221 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:221 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:221 Constant:
+0:221 1 (const int)
+0:221 Constant:
+0:221 2 (const int)
+0:222 Bitwise not (temp highp int)
+0:222 value: direct index for structure (layout(column_major shared ) buffer highp int)
+0:222 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:222 Constant:
+0:222 0 (const int)
+0:223 move second child to first child (temp highp float)
+0:223 direct index (layout(column_major shared ) temp highp float)
+0:223 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:223 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:223 Constant:
+0:223 1 (const int)
+0:223 Constant:
+0:223 2 (const int)
+0:223 Constant:
+0:223 3.400000
+0:224 move second child to first child (temp highp int)
+0:224 value: direct index for structure (layout(column_major shared ) buffer highp int)
+0:224 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:224 Constant:
+0:224 0 (const int)
+0:224 Constant:
+0:224 2 (const int)
+0:? Linker Objects
+0:? 'gl_WorkGroupSize' (const highp 3-component vector of uint WorkGroupSize)
+0:? 2 (const uint)
+0:? 1 (const uint)
+0:? 4096 (const uint)
+0:? 'total' (const highp int)
+0:? 66592 (const int)
+0:? 'anon@0' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:? 'invalid' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer implicitly-sized array of highp float values, layout(column_major shared ) buffer highp int value})
+0:? 'v3' (layout(location=2 ) in highp 3-component vector of float)
+0:? 'f' (in highp float)
+0:? 'fo' (out highp float)
+0:? 's' (shared highp 4-component vector of float)
+0:? 'sl' (layout(location=2 ) shared highp 4-component vector of float)
+0:? 'fs' (shared highp float)
+0:? 'arrX' (global 2-element array of highp int)
+0:? 'arrY' (global 1-element array of highp int)
+0:? 'arrZ' (global 4096-element array of highp int)
+0:? 'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:? 'v' (buffer highp 4-component vector of float)
+0:? 'us2dbad' (uniform mediump usampler2D)
+0:? 'us2d' (uniform highp usampler2D)
+0:? 'ii2dabad' (uniform highp iimage2DArray)
+0:? 'ii2da' (writeonly uniform highp iimage2DArray)
+0:? 'iimg2D' (layout(r32i ) uniform highp iimage2D)
+0:? 'iimg2Drgba' (layout(rgba32i ) readonly uniform highp iimage2D)
+0:? 'img2Drgba' (layout(rgba32f ) readonly uniform lowp image2D)
+0:? 'uimg2D' (layout(r32ui ) uniform highp uimage2D)
+0:? 'vol' (volatile temp highp float)
+0:? 'vol2' (readonly temp highp int)
+0:? 'qualim1' (layout(r32i ) coherent readonly uniform highp iimage2D)
+0:? 'qualim2' (layout(r32i ) coherent restrict readonly uniform highp iimage2D)
+0:? 'i1bad' (layout(rg8i ) readonly uniform highp uimage2D)
+0:? 'i2bad' (layout(rgba32i ) readonly uniform lowp image2D)
+0:? 'i3bad' (layout(rgba32f ) readonly uniform highp uimage2D)
+0:? 'i4bad' (layout(r8_snorm ) readonly uniform highp iimage2D)
+0:? 'i5bad' (layout(rgba32ui ) readonly uniform highp iimage2D)
+0:? 'i6bad' (layout(r8ui ) readonly uniform highp iimage2D)
+0:? 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
+0:? 'counterBad' (layout(binding=1 ) uniform mediump atomic_uint)
+0:? 'countArr' (layout(binding=2 offset=4 ) uniform 4-element array of highp atomic_uint)
+0:? 'i' (uniform highp int)
+0:? 'atomi' (shared highp int)
+0:? 'atomu' (shared highp uint)
+0:? 'pfoo' (noContraction temp highp int)
+0:? 'dm' (global 2X4 matrix of double)
+0:? 'sca' (uniform mediump samplerCubeArray)
+0:? 'i2dr' (uniform mediump iimage2DRect)
+0:? 'i2dms' (uniform lowp image2DMS)
+0:? 'u2dmsa' (uniform mediump uimage2DMSArray)
+0:? 'okay1' (layout(r32f ) coherent volatile restrict readonly writeonly uniform lowp image2D)
+0:? 'okay2' (layout(r32i ) coherent volatile restrict readonly uniform highp iimage2D)
+0:? 'okay3' (layout(r32ui ) coherent volatile restrict writeonly uniform highp uimage2D)
+0:? 'okay4' (layout(r32f ) coherent volatile restrict uniform lowp image2D)
+0:? 'badQ1' (layout(rgba32f ) coherent volatile restrict uniform lowp image2D)
+0:? 'badQ2' (layout(rgba8i ) coherent volatile restrict uniform highp iimage2D)
+0:? 'badQ3' (layout(rgba16ui ) coherent volatile restrict uniform highp uimage2D)
+0:? 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:? 'multio' (layout(column_major shared ) buffer block{layout(column_major shared ) readonly buffer highp int value, layout(column_major shared ) writeonly buffer implicitly-sized array of highp float values})
+0:? 'inbi' (in block{in highp int a})
+0:? 'outbi' (out block{out highp int a})
+0:? 't__' (global highp float)
+0:? 'arr' (shared 2-element array of 3-element array of 4-element array of highp 4-component vector of float)
+
+
+Linked compute stage:
+
+
+Shader version: 310
+local_size = (2, 1, 4096)
+ERROR: node is still EOpNull!
+0:27 Function Definition: main( (global void)
+0:27 Function Parameters:
+0:29 Sequence
+0:29 Barrier (global void)
+0:30 MemoryBarrier (global void)
+0:31 MemoryBarrierAtomicCounter (global void)
+0:32 MemoryBarrierBuffer (global void)
+0:33 MemoryBarrierShared (global void)
+0:34 MemoryBarrierImage (global void)
+0:35 GroupMemoryBarrier (global void)
+0:36 move second child to first child (temp highp int)
+0:36 value: direct index for structure (layout(column_major shared ) buffer highp int)
+0:36 'anon@0' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:36 Constant:
+0:36 0 (const uint)
+0:36 Convert float to int (temp highp int)
+0:36 indirect index (layout(column_major shared ) temp highp float)
+0:36 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:36 'anon@0' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:36 Constant:
+0:36 1 (const uint)
+0:36 'gl_LocalInvocationIndex' (in highp uint LocalInvocationIndex)
+0:59 Function Definition: foo( (global void)
+0:59 Function Parameters:
+0:61 Sequence
+0:61 move second child to first child (temp highp float)
+0:61 direct index (layout(column_major shared ) temp highp float)
+0:61 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:61 'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:61 Constant:
+0:61 1 (const int)
+0:61 Constant:
+0:61 2 (const int)
+0:61 Constant:
+0:61 4.700000
+0:62 array length (temp highp int)
+0:62 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:62 'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:62 Constant:
+0:62 1 (const int)
+0:63 Pre-Increment (temp highp 4-component vector of float)
+0:63 's' (shared highp 4-component vector of float)
+0:84 Function Definition: qux( (global void)
+0:84 Function Parameters:
+0:86 Sequence
+0:86 Sequence
+0:86 move second child to first child (temp highp int)
+0:86 'i' (temp highp int)
+0:86 Constant:
+0:86 4 (const int)
+0:87 imageAtomicCompSwap (global highp int)
+0:87 'iimg2D' (layout(r32i ) uniform highp iimage2D)
+0:87 Construct ivec2 (temp highp 2-component vector of int)
+0:87 'i' (temp highp int)
+0:87 'i' (temp highp int)
+0:87 'i' (temp highp int)
+0:87 'i' (temp highp int)
+0:88 imageAtomicAdd (global highp uint)
+0:88 'uimg2D' (layout(r32ui ) uniform highp uimage2D)
+0:88 Construct ivec2 (temp highp 2-component vector of int)
+0:88 'i' (temp highp int)
+0:88 'i' (temp highp int)
+0:88 Convert int to uint (temp highp uint)
+0:88 'i' (temp highp int)
+0:89 imageAtomicMin (global highp int)
+0:89 'iimg2Drgba' (layout(rgba32i ) readonly uniform highp iimage2D)
+0:89 Construct ivec2 (temp highp 2-component vector of int)
+0:89 'i' (temp highp int)
+0:89 'i' (temp highp int)
+0:89 'i' (temp highp int)
+0:90 Constant:
+0:90 0.000000
+0:91 Sequence
+0:91 move second child to first child (temp highp 4-component vector of int)
+0:91 'pos' (temp highp 4-component vector of int)
+0:91 imageLoad (global highp 4-component vector of int)
+0:91 'iimg2D' (layout(r32i ) uniform highp iimage2D)
+0:91 Construct ivec2 (temp highp 2-component vector of int)
+0:91 'i' (temp highp int)
+0:91 'i' (temp highp int)
+0:92 imageStore (global highp void)
+0:92 'ii2da' (writeonly uniform highp iimage2DArray)
+0:92 Construct ivec3 (temp 3-component vector of int)
+0:92 'i' (temp highp int)
+0:92 'i' (temp highp int)
+0:92 'i' (temp highp int)
+0:92 Constant:
+0:92 0 (const int)
+0:92 0 (const int)
+0:92 0 (const int)
+0:92 0 (const int)
+0:93 imageLoad (global highp 4-component vector of float)
+0:93 'img2Drgba' (layout(rgba32f ) readonly uniform lowp image2D)
+0:93 Construct ivec2 (temp highp 2-component vector of int)
+0:93 'i' (temp highp int)
+0:93 'i' (temp highp int)
+0:94 imageLoad (global highp 4-component vector of int)
+0:94 'ii2da' (writeonly uniform highp iimage2DArray)
+0:94 Construct ivec3 (temp highp 3-component vector of int)
+0:94 'i' (temp highp int)
+0:94 'i' (temp highp int)
+0:94 'i' (temp highp int)
+0:100 Function Definition: passr(iI21; (global void)
+0:100 Function Parameters:
+0:100 'image' (coherent readonly in highp iimage2D)
+0:107 Function Definition: passrc( (global void)
+0:107 Function Parameters:
+0:109 Sequence
+0:109 Function Call: passr(iI21; (global void)
+0:109 'qualim1' (layout(r32i ) coherent readonly uniform highp iimage2D)
+0:110 Function Call: passr(iI21; (global void)
+0:110 'qualim2' (layout(r32i ) coherent restrict readonly uniform highp iimage2D)
+0:111 Function Call: passr(iI21; (global void)
+0:111 'iimg2D' (layout(r32i ) uniform highp iimage2D)
+0:123 Function Definition: func(au1; (global highp uint)
+0:123 Function Parameters:
+0:123 'c' (in highp atomic_uint)
+0:125 Sequence
+0:125 Branch: Return with expression
+0:125 AtomicCounterIncrement (global highp uint)
+0:125 'c' (in highp atomic_uint)
+0:128 Function Definition: func2(au1; (global highp uint)
+0:128 Function Parameters:
+0:128 'c' (out highp atomic_uint)
+0:130 Sequence
+0:130 Branch: Return with expression
+0:130 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
+0:131 Branch: Return with expression
+0:131 AtomicCounter (global highp uint)
+0:131 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
+0:134 Function Definition: mainAC( (global void)
+0:134 Function Parameters:
+0:? Sequence
+0:137 Sequence
+0:137 move second child to first child (temp highp uint)
+0:137 'val' (temp highp uint)
+0:137 AtomicCounter (global highp uint)
+0:137 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
+0:138 AtomicCounterDecrement (global highp uint)
+0:138 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
+0:146 Function Definition: opac( (global void)
+0:146 Function Parameters:
+0:? Sequence
+0:149 indirect index (temp highp int)
+0:149 'a' (temp 3-element array of highp int)
+0:149 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
+0:150 direct index (layout(binding=2 offset=4 ) temp highp atomic_uint)
+0:150 'countArr' (layout(binding=2 offset=4 ) uniform 4-element array of highp atomic_uint)
+0:150 Constant:
+0:150 2 (const int)
+0:151 indirect index (layout(binding=2 offset=4 ) temp highp atomic_uint)
+0:151 'countArr' (layout(binding=2 offset=4 ) uniform 4-element array of highp atomic_uint)
+0:151 'i' (uniform highp int)
+0:157 Function Definition: atoms( (global void)
+0:157 Function Parameters:
+0:159 Sequence
+0:159 Sequence
+0:159 move second child to first child (temp highp int)
+0:159 'origi' (temp highp int)
+0:159 AtomicAdd (global highp int)
+0:159 'atomi' (shared highp int)
+0:159 Constant:
+0:159 3 (const int)
+0:160 Sequence
+0:160 move second child to first child (temp highp uint)
+0:160 'origu' (temp highp uint)
+0:160 AtomicAnd (global highp uint)
+0:160 'atomu' (shared highp uint)
+0:160 Constant:
+0:160 7 (const uint)
+0:161 move second child to first child (temp highp int)
+0:161 'origi' (temp highp int)
+0:161 AtomicExchange (global highp int)
+0:161 'atomi' (shared highp int)
+0:161 Constant:
+0:161 4 (const int)
+0:162 move second child to first child (temp highp uint)
+0:162 'origu' (temp highp uint)
+0:162 AtomicCompSwap (global highp uint)
+0:162 'atomu' (shared highp uint)
+0:162 Constant:
+0:162 10 (const uint)
+0:162 Constant:
+0:162 8 (const uint)
+0:191 Function Definition: foowo( (global void)
+0:191 Function Parameters:
+0:? Sequence
+0:194 move second child to first child (temp highp float)
+0:194 'g' (temp highp float)
+0:194 direct index (layout(column_major shared ) temp highp float)
+0:194 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:194 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:194 Constant:
+0:194 1 (const int)
+0:194 Constant:
+0:194 2 (const int)
+0:195 Sequence
+0:195 move second child to first child (temp highp float)
+0:195 'f' (temp highp float)
+0:195 direct index (layout(column_major shared ) temp highp float)
+0:195 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:195 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:195 Constant:
+0:195 1 (const int)
+0:195 Constant:
+0:195 2 (const int)
+0:196 Pre-Increment (temp highp float)
+0:196 direct index (layout(column_major shared ) temp highp float)
+0:196 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:196 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:196 Constant:
+0:196 1 (const int)
+0:196 Constant:
+0:196 2 (const int)
+0:197 Post-Decrement (temp highp float)
+0:197 direct index (layout(column_major shared ) temp highp float)
+0:197 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:197 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:197 Constant:
+0:197 1 (const int)
+0:197 Constant:
+0:197 2 (const int)
+0:198 add (temp highp float)
+0:198 'f' (temp highp float)
+0:198 direct index (layout(column_major shared ) temp highp float)
+0:198 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:198 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:198 Constant:
+0:198 1 (const int)
+0:198 Constant:
+0:198 2 (const int)
+0:199 subtract (temp highp float)
+0:199 direct index (layout(column_major shared ) temp highp float)
+0:199 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:199 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:199 Constant:
+0:199 1 (const int)
+0:199 Constant:
+0:199 2 (const int)
+0:199 'f' (temp highp float)
+0:201 Test condition and select (temp highp float)
+0:201 Condition
+0:201 'b' (temp bool)
+0:201 true case
+0:201 'f' (temp highp float)
+0:201 false case
+0:201 direct index (layout(column_major shared ) temp highp float)
+0:201 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:201 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:201 Constant:
+0:201 1 (const int)
+0:201 Constant:
+0:201 2 (const int)
+0:202 Test condition and select (temp highp float)
+0:202 Condition
+0:202 'b' (temp bool)
+0:202 true case
+0:202 direct index (layout(column_major shared ) temp highp float)
+0:202 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:202 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:202 Constant:
+0:202 1 (const int)
+0:202 Constant:
+0:202 2 (const int)
+0:202 false case
+0:202 'f' (temp highp float)
+0:203 Test condition and select (temp void)
+0:203 Condition
+0:203 Compare Equal (temp bool)
+0:203 'f' (temp highp float)
+0:203 direct index (layout(column_major shared ) temp highp float)
+0:203 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:203 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:203 Constant:
+0:203 1 (const int)
+0:203 Constant:
+0:203 2 (const int)
+0:203 true case
+0:204 Pre-Increment (temp highp float)
+0:204 'f' (temp highp float)
+0:205 Test condition and select (temp void)
+0:205 Condition
+0:205 Compare Greater Than or Equal (temp bool)
+0:205 'f' (temp highp float)
+0:205 direct index (layout(column_major shared ) temp highp float)
+0:205 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:205 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:205 Constant:
+0:205 1 (const int)
+0:205 Constant:
+0:205 2 (const int)
+0:205 true case
+0:206 Pre-Increment (temp highp float)
+0:206 'f' (temp highp float)
+0:207 move second child to first child (temp highp float)
+0:207 'f' (temp highp float)
+0:207 direct index (temp highp float)
+0:207 Construct vec3 (temp highp 3-component vector of float)
+0:207 direct index (layout(column_major shared ) temp highp float)
+0:207 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:207 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:207 Constant:
+0:207 1 (const int)
+0:207 Constant:
+0:207 2 (const int)
+0:207 Constant:
+0:207 0 (const int)
+0:208 Bitwise not (temp highp int)
+0:208 value: direct index for structure (layout(column_major shared ) buffer highp int)
+0:208 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:208 Constant:
+0:208 0 (const int)
+0:209 move second child to first child (temp highp float)
+0:209 direct index (layout(column_major shared ) temp highp float)
+0:209 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:209 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:209 Constant:
+0:209 1 (const int)
+0:209 Constant:
+0:209 2 (const int)
+0:209 Constant:
+0:209 3.400000
+0:218 Function Definition: foomultio( (global void)
+0:218 Function Parameters:
+0:? Sequence
+0:221 move second child to first child (temp highp float)
+0:221 'g' (temp highp float)
+0:221 direct index (layout(column_major shared ) temp highp float)
+0:221 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:221 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:221 Constant:
+0:221 1 (const int)
+0:221 Constant:
+0:221 2 (const int)
+0:222 Bitwise not (temp highp int)
+0:222 value: direct index for structure (layout(column_major shared ) buffer highp int)
+0:222 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:222 Constant:
+0:222 0 (const int)
+0:223 move second child to first child (temp highp float)
+0:223 direct index (layout(column_major shared ) temp highp float)
+0:223 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:223 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:223 Constant:
+0:223 1 (const int)
+0:223 Constant:
+0:223 2 (const int)
+0:223 Constant:
+0:223 3.400000
+0:224 move second child to first child (temp highp int)
+0:224 value: direct index for structure (layout(column_major shared ) buffer highp int)
+0:224 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:224 Constant:
+0:224 0 (const int)
+0:224 Constant:
+0:224 2 (const int)
+0:? Linker Objects
+0:? 'gl_WorkGroupSize' (const highp 3-component vector of uint WorkGroupSize)
+0:? 2 (const uint)
+0:? 1 (const uint)
+0:? 4096 (const uint)
+0:? 'total' (const highp int)
+0:? 66592 (const int)
+0:? 'anon@0' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:? 'invalid' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer implicitly-sized array of highp float values, layout(column_major shared ) buffer highp int value})
+0:? 'v3' (layout(location=2 ) in highp 3-component vector of float)
+0:? 'f' (in highp float)
+0:? 'fo' (out highp float)
+0:? 's' (shared highp 4-component vector of float)
+0:? 'sl' (layout(location=2 ) shared highp 4-component vector of float)
+0:? 'fs' (shared highp float)
+0:? 'arrX' (global 2-element array of highp int)
+0:? 'arrY' (global 1-element array of highp int)
+0:? 'arrZ' (global 4096-element array of highp int)
+0:? 'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:? 'v' (buffer highp 4-component vector of float)
+0:? 'us2dbad' (uniform mediump usampler2D)
+0:? 'us2d' (uniform highp usampler2D)
+0:? 'ii2dabad' (uniform highp iimage2DArray)
+0:? 'ii2da' (writeonly uniform highp iimage2DArray)
+0:? 'iimg2D' (layout(r32i ) uniform highp iimage2D)
+0:? 'iimg2Drgba' (layout(rgba32i ) readonly uniform highp iimage2D)
+0:? 'img2Drgba' (layout(rgba32f ) readonly uniform lowp image2D)
+0:? 'uimg2D' (layout(r32ui ) uniform highp uimage2D)
+0:? 'vol' (volatile temp highp float)
+0:? 'vol2' (readonly temp highp int)
+0:? 'qualim1' (layout(r32i ) coherent readonly uniform highp iimage2D)
+0:? 'qualim2' (layout(r32i ) coherent restrict readonly uniform highp iimage2D)
+0:? 'i1bad' (layout(rg8i ) readonly uniform highp uimage2D)
+0:? 'i2bad' (layout(rgba32i ) readonly uniform lowp image2D)
+0:? 'i3bad' (layout(rgba32f ) readonly uniform highp uimage2D)
+0:? 'i4bad' (layout(r8_snorm ) readonly uniform highp iimage2D)
+0:? 'i5bad' (layout(rgba32ui ) readonly uniform highp iimage2D)
+0:? 'i6bad' (layout(r8ui ) readonly uniform highp iimage2D)
+0:? 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
+0:? 'counterBad' (layout(binding=1 ) uniform mediump atomic_uint)
+0:? 'countArr' (layout(binding=2 offset=4 ) uniform 4-element array of highp atomic_uint)
+0:? 'i' (uniform highp int)
+0:? 'atomi' (shared highp int)
+0:? 'atomu' (shared highp uint)
+0:? 'pfoo' (noContraction temp highp int)
+0:? 'dm' (global 2X4 matrix of double)
+0:? 'sca' (uniform mediump samplerCubeArray)
+0:? 'i2dr' (uniform mediump iimage2DRect)
+0:? 'i2dms' (uniform lowp image2DMS)
+0:? 'u2dmsa' (uniform mediump uimage2DMSArray)
+0:? 'okay1' (layout(r32f ) coherent volatile restrict readonly writeonly uniform lowp image2D)
+0:? 'okay2' (layout(r32i ) coherent volatile restrict readonly uniform highp iimage2D)
+0:? 'okay3' (layout(r32ui ) coherent volatile restrict writeonly uniform highp uimage2D)
+0:? 'okay4' (layout(r32f ) coherent volatile restrict uniform lowp image2D)
+0:? 'badQ1' (layout(rgba32f ) coherent volatile restrict uniform lowp image2D)
+0:? 'badQ2' (layout(rgba8i ) coherent volatile restrict uniform highp iimage2D)
+0:? 'badQ3' (layout(rgba16ui ) coherent volatile restrict uniform highp uimage2D)
+0:? 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:? 'multio' (layout(column_major shared ) buffer block{layout(column_major shared ) readonly buffer highp int value, layout(column_major shared ) writeonly buffer implicitly-sized array of highp float values})
+0:? 'inbi' (in block{in highp int a})
+0:? 'outbi' (out block{out highp int a})
+0:? 't__' (global highp float)
+0:? 'arr' (shared 2-element array of 3-element array of 4-element array of highp 4-component vector of float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/310.frag.out b/chromium/third_party/glslang/src/Test/baseResults/310.frag.out
new file mode 100644
index 00000000000..0d2ad8d0f56
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/310.frag.out
@@ -0,0 +1,1892 @@
+310.frag
+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:2: 'float' : type requires declaration of default precision qualifier
+ERROR: 0:8: 'origin_upper_left' : not supported with this profile: es
+ERROR: 0:8: 'pixel_center_integer' : not supported with this profile: es
+ERROR: 0:8: 'gl_FragCoord' : identifiers starting with "gl_" are reserved
+ERROR: 0:11: 'location' : overlapping use of location 2
+ERROR: 0:15: 'usampler2DRect' : Reserved word.
+ERROR: 0:15: 'sampler/image' : type requires declaration of default precision qualifier
+ERROR: 0:23: 'variable indexing sampler array' : not supported for this version or the enabled extensions
+ERROR: 0:27: 'textureGatherOffsets' : no matching overloaded function found
+ERROR: 0:27: '=' : cannot convert from 'const float' to 'temp mediump 4-component vector of uint'
+ERROR: 0:30: 'textureGatherOffset(...)' : must be a compile-time constant: component argument
+ERROR: 0:31: 'textureGatherOffset(...)' : must be 0, 1, 2, or 3: component argument
+ERROR: 0:34: 'non-constant offset argument' : not supported for this version or the enabled extensions
+ERROR: 0:42: 'texel offset' : argument must be compile-time constant
+ERROR: 0:44: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]
+ERROR: 0:44: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]
+ERROR: 0:45: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]
+ERROR: 0:45: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]
+ERROR: 0:66: 'sampler/image' : type requires declaration of default precision qualifier
+ERROR: 0:66: '' : image variables not declared 'writeonly' must have a format layout qualifier
+ERROR: 0:67: '' : image variables not declared 'writeonly' must have a format layout qualifier
+ERROR: 0:68: 'sampler/image' : type requires declaration of default precision qualifier
+ERROR: 0:68: '' : image variables not declared 'writeonly' must have a format layout qualifier
+ERROR: 0:69: '' : image variables not declared 'writeonly' must have a format layout qualifier
+ERROR: 0:73: 'binding' : requires block, or sampler/image, or atomic-counter type
+ERROR: 0:77: 'location' : location is too large
+ERROR: 0:81: 'location' : too large for fragment output
+ERROR: 0:82: 'location' : too large for fragment output
+ERROR: 0:82: 'location' : overlapping use of location 40
+ERROR: 0:83: 'non-literal layout-id value' : not supported with this profile: es
+ERROR: 0:83: 'layout-id value' : cannot be negative
+ERROR: 0:110: 'out' : cannot be bool
+ERROR: 0:111: 'image2D' : sampler/image types can only be used in uniform variables or function parameters: imageOut
+ERROR: 0:111: '' : image variables not declared 'writeonly' must have a format layout qualifier
+ERROR: 0:112: 'out' : cannot be a matrix
+ERROR: 0:114: 'in' : cannot be bool
+ERROR: 0:115: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: ino
+ERROR: 0:117: 'fragment-shader array-of-array input' : not supported with this profile: es
+ERROR: 0:120: 'fragment-shader array-of-struct input' : not supported with this profile: es
+ERROR: 0:121: 'fragment-shader array-of-struct input' : not supported with this profile: es
+ERROR: 0:123: 'fragment-shader struct input containing an array' : not supported with this profile: es
+ERROR: 0:125: 'fragment-shader struct input containing structure' : not supported with this profile: es
+ERROR: 0:133: 'output block' : not supported in this stage: fragment
+ERROR: 0:138: '' : cannot nest a structure definition inside a structure or block
+ERROR: 0:146: 'location' : overlapping use of location 13
+ERROR: 0:148: 'inbname2' : Cannot reuse block name within the same interface: in
+ERROR: 0:153: 'badmember' : nameless block contains a member that already has a name at global scope
+ERROR: 0:157: 'inbname' : redefinition
+ERROR: 0:159: 'vAnon' : redefinition
+ERROR: 0:173: 'origin_upper_left' : not supported with this profile: es
+ERROR: 0:173: 'pixel_center_integer' : not supported with this profile: es
+ERROR: 0:173: 'redeclaration' : cannot redeclare with different qualification: gl_FragCoord
+ERROR: 0:177: 'depth layout qualifier' : not supported with this profile: es
+ERROR: 0:181: 'assign' : l-value required "gl_FragDepth" (can't modify gl_FragDepth if using early_fragment_tests)
+ERROR: 0:182: 'gl_Layer' : required extension not requested: Possible extensions include:
+GL_EXT_geometry_shader
+GL_OES_geometry_shader
+ERROR: 0:183: 'gl_PrimitiveID' : required extension not requested: Possible extensions include:
+GL_EXT_geometry_shader
+GL_OES_geometry_shader
+ERROR: 0:209: 'precise' : Reserved word.
+ERROR: 0:209: 'precise' : not supported for this version or the enabled extensions
+ERROR: 0:210: 'fma' : required extension not requested: Possible extensions include:
+GL_EXT_gpu_shader5
+GL_OES_gpu_shader5
+ERROR: 0:211: 'non-constant offset argument' : not supported for this version or the enabled extensions
+ERROR: 0:212: 'textureGatherOffsets' : required extension not requested: Possible extensions include:
+GL_EXT_gpu_shader5
+GL_OES_gpu_shader5
+ERROR: 0:223: 'textureGatherOffsets(...)' : must be a compile-time constant: offsets argument
+ERROR: 0:257: 'gl_SampleID' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:258: 'gl_SamplePosition' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:259: 'gl_SampleMaskIn' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:260: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:261: 'gl_NumSamples' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:289: 'imageAtomicAdd' : required extension not requested: GL_OES_shader_image_atomic
+ERROR: 0:290: 'imageAtomicAdd' : required extension not requested: GL_OES_shader_image_atomic
+ERROR: 0:291: 'imageAtomicMin' : required extension not requested: GL_OES_shader_image_atomic
+ERROR: 0:292: 'imageAtomicMin' : required extension not requested: GL_OES_shader_image_atomic
+ERROR: 0:293: 'imageAtomicMax' : required extension not requested: GL_OES_shader_image_atomic
+ERROR: 0:294: 'imageAtomicMax' : required extension not requested: GL_OES_shader_image_atomic
+ERROR: 0:295: 'imageAtomicAnd' : required extension not requested: GL_OES_shader_image_atomic
+ERROR: 0:296: 'imageAtomicAnd' : required extension not requested: GL_OES_shader_image_atomic
+ERROR: 0:297: 'imageAtomicOr' : required extension not requested: GL_OES_shader_image_atomic
+ERROR: 0:298: 'imageAtomicOr' : required extension not requested: GL_OES_shader_image_atomic
+ERROR: 0:299: 'imageAtomicXor' : required extension not requested: GL_OES_shader_image_atomic
+ERROR: 0:300: 'imageAtomicXor' : required extension not requested: GL_OES_shader_image_atomic
+ERROR: 0:301: 'imageAtomicExchange' : required extension not requested: GL_OES_shader_image_atomic
+ERROR: 0:302: 'imageAtomicExchange' : required extension not requested: GL_OES_shader_image_atomic
+ERROR: 0:303: 'imageAtomicExchange' : required extension not requested: GL_OES_shader_image_atomic
+ERROR: 0:304: 'imageAtomicCompSwap' : required extension not requested: GL_OES_shader_image_atomic
+ERROR: 0:305: 'imageAtomicCompSwap' : required extension not requested: GL_OES_shader_image_atomic
+ERROR: 0:312: 'rgba32f' : format requires readonly or writeonly memory qualifier
+ERROR: 0:313: 'rgba8ui' : format requires readonly or writeonly memory qualifier
+ERROR: 0:314: 'rgba16i' : format requires readonly or writeonly memory qualifier
+ERROR: 0:340: 'imageAtomicMax' : only supported on image with format r32i or r32ui
+ERROR: 0:341: 'imageAtomicMax' : only supported on image with format r32i or r32ui
+ERROR: 0:342: 'imageAtomicExchange' : only supported on image with format r32f
+ERROR: 0:345: 'sample' : Reserved word.
+ERROR: 0:346: 'centroid/sample/patch' : can't use auxiliary qualifier on a fragment output
+ERROR: 0:347: 'flat/smooth/noperspective' : can't use interpolation qualifier on a fragment output
+ERROR: 0:348: 'flat/smooth/noperspective' : can't use interpolation qualifier on a fragment output
+ERROR: 0:349: 'noperspective' : Reserved word.
+ERROR: 0:349: 'noperspective' : not supported with this profile: es
+ERROR: 0:349: 'flat/smooth/noperspective' : can't use interpolation qualifier on a fragment output
+ERROR: 0:355: 'interpolateAtCentroid' : required extension not requested: GL_OES_shader_multisample_interpolation
+ERROR: 0:356: 'interpolateAtSample' : required extension not requested: GL_OES_shader_multisample_interpolation
+ERROR: 0:357: 'interpolateAtOffset' : required extension not requested: GL_OES_shader_multisample_interpolation
+ERROR: 0:365: 'centroid/sample/patch' : can't use auxiliary qualifier on a fragment output
+ERROR: 0:380: 'interpolateAtCentroid' : no matching overloaded function found
+ERROR: 0:380: 'assign' : cannot convert from 'const float' to 'temp mediump 3-component vector of float'
+ERROR: 0:382: 'interpolateAtCentroid' : first argument must be an interpolant, or interpolant-array element
+ERROR: 0:384: 'interpolateAtSample' : no matching overloaded function found
+ERROR: 0:384: 'assign' : cannot convert from 'const float' to 'temp mediump 3-component vector of float'
+ERROR: 0:386: 'interpolateAtSample' : first argument must be an interpolant, or interpolant-array element
+ERROR: 0:389: 'interpolateAtOffset' : no matching overloaded function found
+ERROR: 0:389: 'assign' : cannot convert from 'const float' to 'temp mediump 3-component vector of float'
+ERROR: 0:391: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element
+ERROR: 0:392: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element
+ERROR: 0:396: 'interpolateAtCentroid' : first argument must be an interpolant, or interpolant-array element
+ERROR: 0:397: 'interpolateAtSample' : first argument must be an interpolant, or interpolant-array element
+ERROR: 0:400: 'blend equation' : required extension not requested: GL_KHR_blend_equation_advanced
+ERROR: 0:423: 'blend equation' : can only apply to 'out'
+ERROR: 0:424: 'blend equation' : can only apply to a standalone qualifier
+ERROR: 0:425: 'blend equation' : can only apply to a standalone qualifier
+ERROR: 0:426: 'blend equation' : can only apply to a standalone qualifier
+ERROR: 0:427: 'blend equation' : can only apply to a standalone qualifier
+ERROR: 0:428: 'blend equation' : can only apply to a standalone qualifier
+ERROR: 0:429: 'blend_support' : unknown blend equation
+ERROR: 0:431: 'fragment-shader array-of-array output' : not supported with this profile: es
+ERROR: 122 compilation errors. No code generated.
+
+
+Shader version: 310
+Requested GL_EXT_shader_io_blocks
+Requested GL_EXT_texture_cube_map_array
+Requested GL_KHR_blend_equation_advanced
+Requested GL_OES_geometry_shader
+Requested GL_OES_gpu_shader5
+Requested GL_OES_sample_variables
+Requested GL_OES_shader_image_atomic
+Requested GL_OES_shader_io_blocks
+Requested GL_OES_shader_multisample_interpolation
+gl_FragCoord pixel center is integer
+gl_FragCoord origin is upper left
+using early_fragment_tests
+using depth_any
+using blend_support_multiply blend_support_screen blend_support_overlay blend_support_darken blend_support_lighten blend_support_colordodge blend_support_colorburn blend_support_hardlight blend_support_softlight blend_support_difference blend_support_exclusion blend_support_hsl_hue blend_support_hsl_saturation blend_support_hsl_color blend_support_hsl_luminosity blend_support_all_equations
+ERROR: node is still EOpNull!
+0:21 Function Definition: main( (global void)
+0:21 Function Parameters:
+0:23 Sequence
+0:23 Sequence
+0:23 move second child to first child (temp highp 4-component vector of float)
+0:23 'v' (temp mediump 4-component vector of float)
+0:23 texture (global highp 4-component vector of float)
+0:23 indirect index (temp highp sampler2D)
+0:23 'arrayedSampler' (uniform 5-element array of highp sampler2D)
+0:23 'i' (uniform mediump int)
+0:23 'c2D' (smooth in mediump 2-component vector of float)
+0:28 Sequence
+0:28 move second child to first child (temp highp 4-component vector of float)
+0:28 'v4' (temp mediump 4-component vector of float)
+0:28 textureGather (global highp 4-component vector of float)
+0:28 direct index (temp highp sampler2D)
+0:28 'arrayedSampler' (uniform 5-element array of highp sampler2D)
+0:28 Constant:
+0:28 0 (const int)
+0:28 'c2D' (smooth in mediump 2-component vector of float)
+0:29 Sequence
+0:29 move second child to first child (temp highp 4-component vector of int)
+0:29 'iv4' (temp mediump 4-component vector of int)
+0:29 textureGatherOffset (global highp 4-component vector of int)
+0:29 'isamp2DA' (uniform highp isampler2DArray)
+0:29 Constant:
+0:29 0.100000
+0:29 0.100000
+0:29 0.100000
+0:29 Constant:
+0:29 1 (const int)
+0:29 1 (const int)
+0:29 Constant:
+0:29 3 (const int)
+0:30 move second child to first child (temp highp 4-component vector of int)
+0:30 'iv4' (temp mediump 4-component vector of int)
+0:30 textureGatherOffset (global highp 4-component vector of int)
+0:30 'isamp2DA' (uniform highp isampler2DArray)
+0:30 Constant:
+0:30 0.100000
+0:30 0.100000
+0:30 0.100000
+0:30 Constant:
+0:30 1 (const int)
+0:30 1 (const int)
+0:30 'i' (uniform mediump int)
+0:31 move second child to first child (temp highp 4-component vector of int)
+0:31 'iv4' (temp mediump 4-component vector of int)
+0:31 textureGatherOffset (global highp 4-component vector of int)
+0:31 'isamp2DA' (uniform highp isampler2DArray)
+0:31 Constant:
+0:31 0.100000
+0:31 0.100000
+0:31 0.100000
+0:31 Constant:
+0:31 1 (const int)
+0:31 1 (const int)
+0:31 Constant:
+0:31 4 (const int)
+0:32 move second child to first child (temp highp 4-component vector of int)
+0:32 'iv4' (temp mediump 4-component vector of int)
+0:32 textureGatherOffset (global highp 4-component vector of int)
+0:32 'isamp2DA' (uniform highp isampler2DArray)
+0:32 Constant:
+0:32 0.100000
+0:32 0.100000
+0:32 0.100000
+0:32 Constant:
+0:32 1 (const int)
+0:32 1 (const int)
+0:32 Constant:
+0:32 3 (const int)
+0:33 move second child to first child (temp highp 4-component vector of int)
+0:33 'iv4' (temp mediump 4-component vector of int)
+0:33 textureGatherOffset (global highp 4-component vector of int)
+0:33 'isamp2DA' (uniform highp isampler2DArray)
+0:33 Constant:
+0:33 0.100000
+0:33 0.100000
+0:33 0.100000
+0:33 Constant:
+0:33 0 (const int)
+0:33 0 (const int)
+0:34 move second child to first child (temp highp 4-component vector of int)
+0:34 'iv4' (temp mediump 4-component vector of int)
+0:34 textureGatherOffset (global highp 4-component vector of int)
+0:34 'isamp2DA' (uniform highp isampler2DArray)
+0:34 Constant:
+0:34 0.100000
+0:34 0.100000
+0:34 0.100000
+0:34 Construct ivec2 (temp highp 2-component vector of int)
+0:34 'i' (uniform mediump int)
+0:38 Function Definition: foo23( (global void)
+0:38 Function Parameters:
+0:? Sequence
+0:42 textureProjGradOffset (global highp 4-component vector of uint)
+0:42 'usamp2d' (uniform highp usampler2D)
+0:42 'outp' (out mediump 4-component vector of float)
+0:42 Constant:
+0:42 0.000000
+0:42 0.000000
+0:42 Constant:
+0:42 0.000000
+0:42 0.000000
+0:42 Convert float to int (temp highp 2-component vector of int)
+0:42 'c2D' (smooth in mediump 2-component vector of float)
+0:43 textureProjGradOffset (global highp 4-component vector of uint)
+0:43 'usamp2d' (uniform highp usampler2D)
+0:43 'outp' (out mediump 4-component vector of float)
+0:43 Constant:
+0:43 0.000000
+0:43 0.000000
+0:43 Constant:
+0:43 0.000000
+0:43 0.000000
+0:43 Constant:
+0:43 3 (const int)
+0:43 4 (const int)
+0:44 textureProjGradOffset (global highp 4-component vector of uint)
+0:44 'usamp2d' (uniform highp usampler2D)
+0:44 'outp' (out mediump 4-component vector of float)
+0:44 Constant:
+0:44 0.000000
+0:44 0.000000
+0:44 Constant:
+0:44 0.000000
+0:44 0.000000
+0:44 Constant:
+0:44 15 (const int)
+0:44 16 (const int)
+0:45 textureProjGradOffset (global highp 4-component vector of uint)
+0:45 'usamp2d' (uniform highp usampler2D)
+0:45 'outp' (out mediump 4-component vector of float)
+0:45 Constant:
+0:45 0.000000
+0:45 0.000000
+0:45 Constant:
+0:45 0.000000
+0:45 0.000000
+0:45 Constant:
+0:45 -10 (const int)
+0:45 20 (const int)
+0:47 Test condition and select (temp void)
+0:47 Condition
+0:47 'gl_HelperInvocation' (in bool HelperInvocation)
+0:47 true case
+0:48 Pre-Increment (temp mediump 4-component vector of float)
+0:48 'outp' (out mediump 4-component vector of float)
+0:50 Sequence
+0:50 move second child to first child (temp mediump int)
+0:50 'sum' (temp mediump int)
+0:50 Constant:
+0:50 32 (const int)
+0:58 move second child to first child (temp bool)
+0:58 'b1' (temp bool)
+0:58 mix (global bool)
+0:58 'b2' (temp bool)
+0:58 'b3' (temp bool)
+0:58 'b' (temp bool)
+0:59 Sequence
+0:59 move second child to first child (temp mediump 3-component vector of uint)
+0:59 'um3' (temp mediump 3-component vector of uint)
+0:59 mix (global mediump 3-component vector of uint)
+0:59 Construct uvec3 (temp mediump 3-component vector of uint)
+0:59 Convert int to uint (temp mediump uint)
+0:59 'i' (uniform mediump int)
+0:59 Construct uvec3 (temp mediump 3-component vector of uint)
+0:59 Convert int to uint (temp mediump uint)
+0:59 'i' (uniform mediump int)
+0:59 Construct bvec3 (temp 3-component vector of bool)
+0:59 'b' (temp bool)
+0:60 Sequence
+0:60 move second child to first child (temp mediump 4-component vector of int)
+0:60 'im4' (temp mediump 4-component vector of int)
+0:60 mix (global mediump 4-component vector of int)
+0:60 Construct ivec4 (temp mediump 4-component vector of int)
+0:60 'i' (uniform mediump int)
+0:60 Construct ivec4 (temp mediump 4-component vector of int)
+0:60 'i' (uniform mediump int)
+0:60 Construct bvec4 (temp 4-component vector of bool)
+0:60 'b' (temp bool)
+0:98 Function Definition: foots( (global void)
+0:98 Function Parameters:
+0:100 Sequence
+0:100 Sequence
+0:100 move second child to first child (temp highp 2-component vector of int)
+0:100 'v2' (temp highp 2-component vector of int)
+0:100 textureSize (global highp 2-component vector of int)
+0:100 's1' (layout(binding=3 ) uniform highp sampler2D)
+0:100 Constant:
+0:100 2 (const int)
+0:101 Sequence
+0:101 move second child to first child (temp highp 3-component vector of int)
+0:101 'v3' (temp highp 3-component vector of int)
+0:101 textureSize (global highp 3-component vector of int)
+0:101 'isamp2DA' (uniform highp isampler2DArray)
+0:101 Constant:
+0:101 3 (const int)
+0:102 move second child to first child (temp highp 2-component vector of int)
+0:102 'v2' (temp highp 2-component vector of int)
+0:102 textureSize (global highp 2-component vector of int)
+0:102 's2dms' (uniform highp sampler2DMS)
+0:103 move second child to first child (temp highp 2-component vector of int)
+0:103 'v2' (temp highp 2-component vector of int)
+0:103 imageQuerySize (global highp 2-component vector of int)
+0:103 'i2D' (layout(binding=2 ) writeonly uniform highp image2D)
+0:104 move second child to first child (temp highp 3-component vector of int)
+0:104 'v3' (temp highp 3-component vector of int)
+0:104 imageQuerySize (global highp 3-component vector of int)
+0:104 'i3D' (layout(binding=4 ) readonly uniform mediump image3D)
+0:105 move second child to first child (temp highp 2-component vector of int)
+0:105 'v2' (temp highp 2-component vector of int)
+0:105 imageQuerySize (global highp 2-component vector of int)
+0:105 'iCube' (layout(binding=5 ) uniform lowp imageCube)
+0:106 move second child to first child (temp highp 3-component vector of int)
+0:106 'v3' (temp highp 3-component vector of int)
+0:106 imageQuerySize (global highp 3-component vector of int)
+0:106 'i2DA' (layout(binding=6 ) uniform mediump image2DArray)
+0:107 move second child to first child (temp highp 2-component vector of int)
+0:107 'v2' (temp highp 2-component vector of int)
+0:107 imageQuerySize (global highp 2-component vector of int)
+0:107 'i2Dqualified' (layout(binding=6 ) coherent volatile restrict uniform highp image2D)
+0:165 Function Definition: fooIO( (global void)
+0:165 Function Parameters:
+0:167 Sequence
+0:167 Sequence
+0:167 move second child to first child (temp mediump 4-component vector of float)
+0:167 'v' (temp mediump 4-component vector of float)
+0:167 add (temp mediump 4-component vector of float)
+0:167 v: direct index for structure (in mediump 4-component vector of float)
+0:167 'inbinst' (in block{in mediump int a, in mediump 4-component vector of float v, in structure{global mediump int b} s})
+0:167 Constant:
+0:167 1 (const int)
+0:167 vAnon: direct index for structure (layout(location=13 ) centroid in mediump 4-component vector of float)
+0:167 'anon@0' (in block{layout(location=12 ) in mediump int aAnon, layout(location=13 ) centroid in mediump 4-component vector of float vAnon})
+0:167 Constant:
+0:167 1 (const uint)
+0:168 vector scale second child into first child (temp mediump 4-component vector of float)
+0:168 'v' (temp mediump 4-component vector of float)
+0:168 f: direct index for structure (in mediump float)
+0:168 direct index (temp block{in mediump float f})
+0:168 'arrayedInst' (in 4-element array of block{in mediump float f})
+0:168 Constant:
+0:168 2 (const int)
+0:168 Constant:
+0:168 0 (const int)
+0:169 vector scale second child into first child (temp mediump 4-component vector of float)
+0:169 'v' (temp mediump 4-component vector of float)
+0:169 f: direct index for structure (in mediump float)
+0:169 indirect index (temp block{in mediump float f})
+0:169 'arrayedInst' (in 4-element array of block{in mediump float f})
+0:169 'i' (uniform mediump int)
+0:169 Constant:
+0:169 0 (const int)
+0:179 Function Definition: foo_IO( (global void)
+0:179 Function Parameters:
+0:181 Sequence
+0:181 move second child to first child (temp highp float)
+0:181 'gl_FragDepth' (gl_FragDepth highp float FragDepth)
+0:181 Constant:
+0:181 0.200000
+0:182 'gl_Layer' (flat in highp int Layer)
+0:183 'gl_PrimitiveID' (flat in highp int PrimitiveID)
+0:184 Sequence
+0:184 move second child to first child (temp bool)
+0:184 'f' (temp bool)
+0:184 'gl_FrontFacing' (gl_FrontFacing bool Face)
+0:191 Function Definition: foo_GS( (global void)
+0:191 Function Parameters:
+0:193 Sequence
+0:193 Sequence
+0:193 move second child to first child (temp highp int)
+0:193 'l' (temp highp int)
+0:193 'gl_Layer' (flat in highp int Layer)
+0:194 Sequence
+0:194 move second child to first child (temp highp int)
+0:194 'p' (temp highp int)
+0:194 'gl_PrimitiveID' (flat in highp int PrimitiveID)
+0:207 Function Definition: pfooBad( (global void)
+0:207 Function Parameters:
+0:? Sequence
+0:210 move second child to first child (temp mediump 2-component vector of float)
+0:210 'h' (noContraction temp mediump 2-component vector of float)
+0:210 fma (global mediump 2-component vector of float)
+0:210 'inf' (smooth in mediump 2-component vector of float)
+0:210 'ing' (smooth in mediump 2-component vector of float)
+0:210 'h' (noContraction temp mediump 2-component vector of float)
+0:211 textureGatherOffset (global highp 4-component vector of float)
+0:211 direct index (temp highp sampler2D)
+0:211 'sArray' (uniform 4-element array of highp sampler2D)
+0:211 Constant:
+0:211 0 (const int)
+0:211 Constant:
+0:211 0.100000
+0:211 0.100000
+0:211 Convert float to int (temp highp 2-component vector of int)
+0:211 'inf' (smooth in mediump 2-component vector of float)
+0:212 textureGatherOffsets (global highp 4-component vector of float)
+0:212 direct index (temp highp sampler2D)
+0:212 'sArray' (uniform 4-element array of highp sampler2D)
+0:212 Constant:
+0:212 0 (const int)
+0:212 Constant:
+0:212 0.100000
+0:212 0.100000
+0:212 Constant:
+0:212 0 (const int)
+0:212 0 (const int)
+0:212 0 (const int)
+0:212 0 (const int)
+0:212 0 (const int)
+0:212 0 (const int)
+0:212 0 (const int)
+0:212 0 (const int)
+0:217 Function Definition: pfoo( (global void)
+0:217 Function Parameters:
+0:? Sequence
+0:220 move second child to first child (temp mediump 2-component vector of float)
+0:220 'h' (noContraction temp mediump 2-component vector of float)
+0:220 fma (global mediump 2-component vector of float)
+0:220 'inf' (smooth in mediump 2-component vector of float)
+0:220 'ing' (smooth in mediump 2-component vector of float)
+0:220 'h' (noContraction temp mediump 2-component vector of float)
+0:221 textureGatherOffset (global highp 4-component vector of float)
+0:221 direct index (temp highp sampler2D)
+0:221 'sArray' (uniform 4-element array of highp sampler2D)
+0:221 Constant:
+0:221 0 (const int)
+0:221 Constant:
+0:221 0.100000
+0:221 0.100000
+0:221 Convert float to int (temp highp 2-component vector of int)
+0:221 'inf' (smooth in mediump 2-component vector of float)
+0:222 textureGatherOffsets (global highp 4-component vector of float)
+0:222 direct index (temp highp sampler2D)
+0:222 'sArray' (uniform 4-element array of highp sampler2D)
+0:222 Constant:
+0:222 0 (const int)
+0:222 Constant:
+0:222 0.100000
+0:222 0.100000
+0:222 Constant:
+0:222 0 (const int)
+0:222 0 (const int)
+0:222 0 (const int)
+0:222 0 (const int)
+0:222 0 (const int)
+0:222 0 (const int)
+0:222 0 (const int)
+0:222 0 (const int)
+0:223 textureGatherOffsets (global highp 4-component vector of float)
+0:223 direct index (temp highp sampler2D)
+0:223 'sArray' (uniform 4-element array of highp sampler2D)
+0:223 Constant:
+0:223 0 (const int)
+0:223 Constant:
+0:223 0.100000
+0:223 0.100000
+0:223 'offsets' (uniform 4-element array of mediump 2-component vector of int)
+0:248 Function Definition: CAT( (global void)
+0:248 Function Parameters:
+0:250 Sequence
+0:250 Sequence
+0:250 move second child to first child (temp highp 4-component vector of float)
+0:250 'b4' (temp highp 4-component vector of float)
+0:250 texture (global highp 4-component vector of float)
+0:250 'CA4' (uniform highp samplerCubeArray)
+0:250 Constant:
+0:250 0.500000
+0:250 0.500000
+0:250 0.500000
+0:250 0.500000
+0:250 Constant:
+0:250 0.240000
+0:251 Sequence
+0:251 move second child to first child (temp highp 4-component vector of int)
+0:251 'b6' (temp highp 4-component vector of int)
+0:251 texture (global highp 4-component vector of int)
+0:251 'CA6' (uniform highp isamplerCubeArray)
+0:251 Constant:
+0:251 0.500000
+0:251 0.500000
+0:251 0.500000
+0:251 0.500000
+0:251 Constant:
+0:251 0.260000
+0:252 Sequence
+0:252 move second child to first child (temp highp 4-component vector of uint)
+0:252 'b7' (temp highp 4-component vector of uint)
+0:252 texture (global highp 4-component vector of uint)
+0:252 'CA7' (uniform highp usamplerCubeArray)
+0:252 Constant:
+0:252 0.500000
+0:252 0.500000
+0:252 0.500000
+0:252 0.500000
+0:252 Constant:
+0:252 0.270000
+0:255 Function Definition: badSample( (global void)
+0:255 Function Parameters:
+0:257 Sequence
+0:257 Sequence
+0:257 move second child to first child (temp lowp int)
+0:257 'a1' (temp lowp int)
+0:257 'gl_SampleID' (flat in lowp int SampleId)
+0:258 Sequence
+0:258 move second child to first child (temp mediump 2-component vector of float)
+0:258 'a2' (temp mediump 2-component vector of float)
+0:258 'gl_SamplePosition' (smooth in mediump 2-component vector of float SamplePosition)
+0:259 Sequence
+0:259 move second child to first child (temp highp int)
+0:259 'a3' (temp highp int)
+0:259 direct index (flat temp highp int SampleMaskIn)
+0:259 'gl_SampleMaskIn' (flat in implicitly-sized array of highp int SampleMaskIn)
+0:259 Constant:
+0:259 0 (const int)
+0:260 move second child to first child (temp highp int)
+0:260 direct index (temp highp int SampleMaskIn)
+0:260 'gl_SampleMask' (out implicitly-sized array of highp int SampleMaskIn)
+0:260 Constant:
+0:260 0 (const int)
+0:260 'a3' (temp highp int)
+0:261 Sequence
+0:261 move second child to first child (temp mediump int)
+0:261 'n' (temp mediump int)
+0:261 'gl_NumSamples' (uniform lowp int)
+0:268 Function Definition: goodSample( (global void)
+0:268 Function Parameters:
+0:270 Sequence
+0:270 Sequence
+0:270 move second child to first child (temp lowp int)
+0:270 'a1' (temp lowp int)
+0:270 'gl_SampleID' (flat in lowp int SampleId)
+0:271 Sequence
+0:271 move second child to first child (temp mediump 2-component vector of float)
+0:271 'a2' (temp mediump 2-component vector of float)
+0:271 'gl_SamplePosition' (smooth in mediump 2-component vector of float SamplePosition)
+0:272 Sequence
+0:272 move second child to first child (temp highp int)
+0:272 'a3' (temp highp int)
+0:272 direct index (flat temp highp int SampleMaskIn)
+0:272 'gl_SampleMaskIn' (flat in implicitly-sized array of highp int SampleMaskIn)
+0:272 Constant:
+0:272 0 (const int)
+0:273 move second child to first child (temp highp int)
+0:273 direct index (temp highp int SampleMaskIn)
+0:273 'gl_SampleMask' (out implicitly-sized array of highp int SampleMaskIn)
+0:273 Constant:
+0:273 0 (const int)
+0:273 'a3' (temp highp int)
+0:274 Sequence
+0:274 move second child to first child (temp mediump int)
+0:274 'n1' (temp mediump int)
+0:274 Constant:
+0:274 4 (const int)
+0:275 Sequence
+0:275 move second child to first child (temp mediump int)
+0:275 'n2' (temp mediump int)
+0:275 'gl_NumSamples' (uniform lowp int)
+0:283 Function Definition: badImageAtom( (global void)
+0:283 Function Parameters:
+0:? Sequence
+0:289 imageAtomicAdd (global highp int)
+0:289 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:289 'P' (uniform mediump 2-component vector of int)
+0:289 'dati' (temp mediump int)
+0:290 imageAtomicAdd (global highp uint)
+0:290 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:290 'P' (uniform mediump 2-component vector of int)
+0:290 'datu' (temp mediump uint)
+0:291 imageAtomicMin (global highp int)
+0:291 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:291 'P' (uniform mediump 2-component vector of int)
+0:291 'dati' (temp mediump int)
+0:292 imageAtomicMin (global highp uint)
+0:292 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:292 'P' (uniform mediump 2-component vector of int)
+0:292 'datu' (temp mediump uint)
+0:293 imageAtomicMax (global highp int)
+0:293 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:293 'P' (uniform mediump 2-component vector of int)
+0:293 'dati' (temp mediump int)
+0:294 imageAtomicMax (global highp uint)
+0:294 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:294 'P' (uniform mediump 2-component vector of int)
+0:294 'datu' (temp mediump uint)
+0:295 imageAtomicAnd (global highp int)
+0:295 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:295 'P' (uniform mediump 2-component vector of int)
+0:295 'dati' (temp mediump int)
+0:296 imageAtomicAnd (global highp uint)
+0:296 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:296 'P' (uniform mediump 2-component vector of int)
+0:296 'datu' (temp mediump uint)
+0:297 imageAtomicOr (global highp int)
+0:297 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:297 'P' (uniform mediump 2-component vector of int)
+0:297 'dati' (temp mediump int)
+0:298 imageAtomicOr (global highp uint)
+0:298 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:298 'P' (uniform mediump 2-component vector of int)
+0:298 'datu' (temp mediump uint)
+0:299 imageAtomicXor (global highp int)
+0:299 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:299 'P' (uniform mediump 2-component vector of int)
+0:299 'dati' (temp mediump int)
+0:300 imageAtomicXor (global highp uint)
+0:300 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:300 'P' (uniform mediump 2-component vector of int)
+0:300 'datu' (temp mediump uint)
+0:301 imageAtomicExchange (global highp int)
+0:301 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:301 'P' (uniform mediump 2-component vector of int)
+0:301 'dati' (temp mediump int)
+0:302 imageAtomicExchange (global highp uint)
+0:302 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:302 'P' (uniform mediump 2-component vector of int)
+0:302 'datu' (temp mediump uint)
+0:303 imageAtomicExchange (global highp float)
+0:303 'im2Df' (layout(r32f ) uniform highp image2D)
+0:303 'P' (uniform mediump 2-component vector of int)
+0:303 'datf' (temp mediump float)
+0:304 imageAtomicCompSwap (global highp int)
+0:304 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:304 'P' (uniform mediump 2-component vector of int)
+0:304 Constant:
+0:304 3 (const int)
+0:304 'dati' (temp mediump int)
+0:305 imageAtomicCompSwap (global highp uint)
+0:305 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:305 'P' (uniform mediump 2-component vector of int)
+0:305 Constant:
+0:305 5 (const uint)
+0:305 'datu' (temp mediump uint)
+0:316 Function Definition: goodImageAtom( (global void)
+0:316 Function Parameters:
+0:? Sequence
+0:322 imageAtomicAdd (global highp int)
+0:322 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:322 'P' (uniform mediump 2-component vector of int)
+0:322 'dati' (temp mediump int)
+0:323 imageAtomicAdd (global highp uint)
+0:323 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:323 'P' (uniform mediump 2-component vector of int)
+0:323 'datu' (temp mediump uint)
+0:324 imageAtomicMin (global highp int)
+0:324 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:324 'P' (uniform mediump 2-component vector of int)
+0:324 'dati' (temp mediump int)
+0:325 imageAtomicMin (global highp uint)
+0:325 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:325 'P' (uniform mediump 2-component vector of int)
+0:325 'datu' (temp mediump uint)
+0:326 imageAtomicMax (global highp int)
+0:326 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:326 'P' (uniform mediump 2-component vector of int)
+0:326 'dati' (temp mediump int)
+0:327 imageAtomicMax (global highp uint)
+0:327 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:327 'P' (uniform mediump 2-component vector of int)
+0:327 'datu' (temp mediump uint)
+0:328 imageAtomicAnd (global highp int)
+0:328 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:328 'P' (uniform mediump 2-component vector of int)
+0:328 'dati' (temp mediump int)
+0:329 imageAtomicAnd (global highp uint)
+0:329 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:329 'P' (uniform mediump 2-component vector of int)
+0:329 'datu' (temp mediump uint)
+0:330 imageAtomicOr (global highp int)
+0:330 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:330 'P' (uniform mediump 2-component vector of int)
+0:330 'dati' (temp mediump int)
+0:331 imageAtomicOr (global highp uint)
+0:331 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:331 'P' (uniform mediump 2-component vector of int)
+0:331 'datu' (temp mediump uint)
+0:332 imageAtomicXor (global highp int)
+0:332 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:332 'P' (uniform mediump 2-component vector of int)
+0:332 'dati' (temp mediump int)
+0:333 imageAtomicXor (global highp uint)
+0:333 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:333 'P' (uniform mediump 2-component vector of int)
+0:333 'datu' (temp mediump uint)
+0:334 imageAtomicExchange (global highp int)
+0:334 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:334 'P' (uniform mediump 2-component vector of int)
+0:334 'dati' (temp mediump int)
+0:335 imageAtomicExchange (global highp uint)
+0:335 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:335 'P' (uniform mediump 2-component vector of int)
+0:335 'datu' (temp mediump uint)
+0:336 imageAtomicExchange (global highp float)
+0:336 'im2Df' (layout(r32f ) uniform highp image2D)
+0:336 'P' (uniform mediump 2-component vector of int)
+0:336 'datf' (temp mediump float)
+0:337 imageAtomicCompSwap (global highp int)
+0:337 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:337 'P' (uniform mediump 2-component vector of int)
+0:337 Constant:
+0:337 3 (const int)
+0:337 'dati' (temp mediump int)
+0:338 imageAtomicCompSwap (global highp uint)
+0:338 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:338 'P' (uniform mediump 2-component vector of int)
+0:338 Constant:
+0:338 5 (const uint)
+0:338 'datu' (temp mediump uint)
+0:340 imageAtomicMax (global highp int)
+0:340 'badIm2Di' (layout(rgba16i ) uniform highp iimage2D)
+0:340 'P' (uniform mediump 2-component vector of int)
+0:340 'dati' (temp mediump int)
+0:341 imageAtomicMax (global highp uint)
+0:341 'badIm2Du' (layout(rgba8ui ) uniform highp uimage2D)
+0:341 'P' (uniform mediump 2-component vector of int)
+0:341 'datu' (temp mediump uint)
+0:342 imageAtomicExchange (global highp float)
+0:342 'badIm2Df' (layout(rgba32f ) uniform highp image2D)
+0:342 'P' (uniform mediump 2-component vector of int)
+0:342 'datf' (temp mediump float)
+0:353 Function Definition: badInterp( (global void)
+0:353 Function Parameters:
+0:355 Sequence
+0:355 interpolateAtCentroid (global mediump 2-component vector of float)
+0:355 'colorfc' (centroid flat in mediump 2-component vector of float)
+0:356 interpolateAtSample (global mediump 2-component vector of float)
+0:356 'colorfc' (centroid flat in mediump 2-component vector of float)
+0:356 Constant:
+0:356 1 (const int)
+0:357 interpolateAtOffset (global mediump 2-component vector of float)
+0:357 'colorfc' (centroid flat in mediump 2-component vector of float)
+0:357 Constant:
+0:357 0.200000
+0:357 0.200000
+0:369 Function Definition: interp( (global void)
+0:369 Function Parameters:
+0:? Sequence
+0:376 move second child to first child (temp mediump 2-component vector of float)
+0:376 'res2' (temp mediump 2-component vector of float)
+0:376 interpolateAtCentroid (global mediump 2-component vector of float)
+0:376 'colorfc' (centroid flat in mediump 2-component vector of float)
+0:377 move second child to first child (temp mediump 4-component vector of float)
+0:377 'res4' (temp mediump 4-component vector of float)
+0:377 interpolateAtCentroid (global mediump 4-component vector of float)
+0:377 'colorSampIn' (smooth sample in mediump 4-component vector of float)
+0:378 move second child to first child (temp mediump 4-component vector of float)
+0:378 'res4' (temp mediump 4-component vector of float)
+0:378 interpolateAtCentroid (global mediump 4-component vector of float)
+0:378 'colorfsi' (flat sample in mediump 4-component vector of float)
+0:379 move second child to first child (temp mediump float)
+0:379 'res' (temp mediump float)
+0:379 interpolateAtCentroid (global mediump float)
+0:379 'scalarIn' (smooth in mediump float)
+0:380 'res3' (temp mediump 3-component vector of float)
+0:381 move second child to first child (temp mediump 3-component vector of float)
+0:381 'res3' (temp mediump 3-component vector of float)
+0:381 interpolateAtCentroid (global mediump 3-component vector of float)
+0:381 direct index (smooth sample temp mediump 3-component vector of float)
+0:381 'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)
+0:381 Constant:
+0:381 2 (const int)
+0:382 move second child to first child (temp mediump 2-component vector of float)
+0:382 'res2' (temp mediump 2-component vector of float)
+0:382 interpolateAtCentroid (global mediump 2-component vector of float)
+0:382 vector swizzle (temp mediump 2-component vector of float)
+0:382 direct index (smooth sample temp mediump 3-component vector of float)
+0:382 'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)
+0:382 Constant:
+0:382 2 (const int)
+0:382 Sequence
+0:382 Constant:
+0:382 0 (const int)
+0:382 Constant:
+0:382 1 (const int)
+0:384 'res3' (temp mediump 3-component vector of float)
+0:385 move second child to first child (temp mediump 3-component vector of float)
+0:385 'res3' (temp mediump 3-component vector of float)
+0:385 interpolateAtSample (global mediump 3-component vector of float)
+0:385 indirect index (smooth sample temp mediump 3-component vector of float)
+0:385 'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)
+0:385 'i' (uniform mediump int)
+0:385 Constant:
+0:385 0 (const int)
+0:386 move second child to first child (temp mediump 2-component vector of float)
+0:386 'res2' (temp mediump 2-component vector of float)
+0:386 interpolateAtSample (global mediump 2-component vector of float)
+0:386 vector swizzle (temp mediump 2-component vector of float)
+0:386 direct index (smooth sample temp mediump 3-component vector of float)
+0:386 'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)
+0:386 Constant:
+0:386 2 (const int)
+0:386 Sequence
+0:386 Constant:
+0:386 0 (const int)
+0:386 Constant:
+0:386 1 (const int)
+0:386 Constant:
+0:386 2 (const int)
+0:387 move second child to first child (temp mediump float)
+0:387 'res' (temp mediump float)
+0:387 interpolateAtSample (global mediump float)
+0:387 'scalarIn' (smooth in mediump float)
+0:387 Constant:
+0:387 1 (const int)
+0:389 'res3' (temp mediump 3-component vector of float)
+0:390 move second child to first child (temp mediump 3-component vector of float)
+0:390 'res3' (temp mediump 3-component vector of float)
+0:390 interpolateAtOffset (global mediump 3-component vector of float)
+0:390 direct index (smooth sample temp mediump 3-component vector of float)
+0:390 'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)
+0:390 Constant:
+0:390 2 (const int)
+0:390 Constant:
+0:390 0.200000
+0:390 0.200000
+0:391 move second child to first child (temp mediump 2-component vector of float)
+0:391 'res2' (temp mediump 2-component vector of float)
+0:391 interpolateAtOffset (global mediump 2-component vector of float)
+0:391 vector swizzle (temp mediump 2-component vector of float)
+0:391 direct index (smooth sample temp mediump 3-component vector of float)
+0:391 'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)
+0:391 Constant:
+0:391 2 (const int)
+0:391 Sequence
+0:391 Constant:
+0:391 0 (const int)
+0:391 Constant:
+0:391 1 (const int)
+0:391 Constant:
+0:391 0.200000
+0:391 0.200000
+0:392 move second child to first child (temp mediump float)
+0:392 'res' (temp mediump float)
+0:392 interpolateAtOffset (global mediump float)
+0:392 add (temp mediump float)
+0:392 'scalarIn' (smooth in mediump float)
+0:392 'scalarIn' (smooth in mediump float)
+0:392 Constant:
+0:392 0.200000
+0:392 0.200000
+0:393 move second child to first child (temp mediump float)
+0:393 'res' (temp mediump float)
+0:393 interpolateAtOffset (global mediump float)
+0:393 'scalarIn' (smooth in mediump float)
+0:393 Constant:
+0:393 0.200000
+0:393 0.200000
+0:396 move second child to first child (temp mediump float)
+0:396 'res' (temp mediump float)
+0:396 interpolateAtCentroid (global mediump float)
+0:396 'f' (temp mediump float)
+0:397 move second child to first child (temp mediump 4-component vector of float)
+0:397 'res4' (temp mediump 4-component vector of float)
+0:397 interpolateAtSample (global mediump 4-component vector of float)
+0:397 'outp' (out mediump 4-component vector of float)
+0:397 Constant:
+0:397 0 (const int)
+0:427 Function Definition: blendFoo( (temp void)
+0:427 Function Parameters:
+0:428 Function Definition: blendFoo(vf3; (global void)
+0:428 Function Parameters:
+0:428 'v' (in mediump 3-component vector of float)
+0:? Linker Objects
+0:? 'gl_FragCoord' (smooth in mediump 4-component vector of float)
+0:? 'v3' (layout(location=2 ) smooth in mediump 3-component vector of float)
+0:? 'yi' (layout(location=2 ) smooth in mediump 4X4 matrix of float)
+0:? 'arrayedSampler' (uniform 5-element array of highp sampler2D)
+0:? 'usamp2d' (uniform highp usampler2D)
+0:? 'samp2dr' (uniform mediump usampler2DRect)
+0:? 'isamp2DA' (uniform highp isampler2DArray)
+0:? 'c2D' (smooth in mediump 2-component vector of float)
+0:? 'i' (uniform mediump int)
+0:? 'outp' (out mediump 4-component vector of float)
+0:? 's1' (layout(binding=3 ) uniform highp sampler2D)
+0:? 's2' (layout(binding=3 ) uniform highp sampler2D)
+0:? 'i2D' (layout(binding=2 ) writeonly uniform highp image2D)
+0:? 'i3D' (layout(binding=4 ) readonly uniform mediump image3D)
+0:? 'iCube' (layout(binding=5 ) uniform lowp imageCube)
+0:? 'i2DA' (layout(binding=6 ) uniform mediump image2DArray)
+0:? 'i2Dqualified' (layout(binding=6 ) coherent volatile restrict uniform highp image2D)
+0:? 'bbi' (layout(binding=1 column_major shared ) uniform block{layout(column_major shared ) uniform mediump int foo, layout(binding=2 column_major shared ) uniform mediump float f})
+0:? 'centroidIn' (centroid smooth in mediump 4-component vector of float)
+0:? 'bigl' (uniform mediump 4-component vector of float)
+0:? 'bigout1' (layout(location=40 ) out mediump 4-component vector of float)
+0:? 'bigout2' (layout(location=40 ) out mediump 4-component vector of float)
+0:? 'neg' (out mediump 4-component vector of float)
+0:? 'b430i' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=0 ) buffer mediump int i})
+0:? 'bshari' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump int i})
+0:? 'smoothIn' (smooth in mediump 4-component vector of float)
+0:? 'flatIn' (flat in mediump int)
+0:? 's2dms' (uniform highp sampler2DMS)
+0:? 'bout' (out bool)
+0:? 'imageOut' (out highp image2D)
+0:? 'mout' (out mediump 2X3 matrix of float)
+0:? 'inb' (smooth in bool)
+0:? 'ino' (smooth in highp sampler2D)
+0:? 'ina' (smooth in 4-element array of mediump float)
+0:? 'inaa' (smooth in 4-element array of 2-element array of mediump float)
+0:? 'ins' (smooth in structure{global mediump float f})
+0:? 'inasa' (smooth in 4-element array of structure{global mediump float f})
+0:? 'insa' (smooth in 4-element array of structure{global mediump float f})
+0:? 'inSA' (smooth in structure{global 4-element array of mediump float f})
+0:? 'inSS' (smooth in structure{global mediump float f, global structure{global mediump float f} s})
+0:? 'outbinst' (out block{out mediump int a})
+0:? 'inbinst' (in block{in mediump int a, in mediump 4-component vector of float v, in structure{global mediump int b} s})
+0:? 'anon@0' (in block{layout(location=12 ) in mediump int aAnon, layout(location=13 ) centroid in mediump 4-component vector of float vAnon})
+0:? 'aliased' (layout(location=13 ) smooth in mediump 4-component vector of float)
+0:? 'arrayedInst' (in 4-element array of block{in mediump float f})
+0:? 'gl_FragDepth' (gl_FragDepth highp float FragDepth)
+0:? 'gl_FragDepth' (gl_FragDepth highp float FragDepth)
+0:? 'inf' (smooth in mediump 2-component vector of float)
+0:? 'ing' (smooth in mediump 2-component vector of float)
+0:? 'offsets' (uniform 4-element array of mediump 2-component vector of int)
+0:? 'sArray' (uniform 4-element array of highp sampler2D)
+0:? 'sIndex' (uniform mediump int)
+0:? 'auArray' (layout(binding=0 offset=0 ) uniform 2-element array of highp atomic_uint)
+0:? 'ubInst' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform mediump int i})
+0:? 'bbInst' (layout(column_major shared ) buffer 4-element array of block{layout(column_major shared ) buffer mediump int i})
+0:? 'iArray' (writeonly uniform 5-element array of highp image2D)
+0:? 'constOffsets' (const 4-element array of mediump 2-component vector of int)
+0:? 0 (const int)
+0:? 0 (const int)
+0:? 0 (const int)
+0:? 0 (const int)
+0:? 0 (const int)
+0:? 0 (const int)
+0:? 0 (const int)
+0:? 0 (const int)
+0:? 'CA1' (writeonly uniform highp imageCubeArray)
+0:? 'CA2' (writeonly uniform highp iimageCubeArray)
+0:? 'CA3' (writeonly uniform highp uimageCubeArray)
+0:? 'CA4' (uniform highp samplerCubeArray)
+0:? 'CA5' (uniform highp samplerCubeArrayShadow)
+0:? 'CA6' (uniform highp isamplerCubeArray)
+0:? 'CA7' (uniform highp usamplerCubeArray)
+0:? 'gl_SampleMaskIn' (flat in implicitly-sized array of highp int SampleMaskIn)
+0:? 'gl_SampleMask' (out implicitly-sized array of highp int SampleMaskIn)
+0:? 'im2Df' (layout(r32f ) uniform highp image2D)
+0:? 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:? 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:? 'P' (uniform mediump 2-component vector of int)
+0:? 'badIm2Df' (layout(rgba32f ) uniform highp image2D)
+0:? 'badIm2Du' (layout(rgba8ui ) uniform highp uimage2D)
+0:? 'badIm2Di' (layout(rgba16i ) uniform highp iimage2D)
+0:? 'colorSampInBad' (smooth sample in mediump 4-component vector of float)
+0:? 'colorCentroidBad' (centroid out mediump 4-component vector of float)
+0:? 'colorBadFlat' (flat out mediump 4-component vector of float)
+0:? 'colorBadSmooth' (smooth out mediump 4-component vector of float)
+0:? 'colorBadNo' (noperspective out mediump 4-component vector of float)
+0:? 'colorfc' (centroid flat in mediump 2-component vector of float)
+0:? 'scalarIn' (smooth in mediump float)
+0:? 'colorSampIn' (smooth sample in mediump 4-component vector of float)
+0:? 'colorSampleBad' (sample out mediump 4-component vector of float)
+0:? 'colorfsi' (flat sample in mediump 4-component vector of float)
+0:? 'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)
+0:? 'badout' (out mediump 4-component vector of float)
+0:? 'outAA' (out 2-element array of 2-element array of mediump 4-component vector of float)
+
+
+Linked fragment stage:
+
+ERROR: Linking fragment stage: when more than one fragment shader output, all must have location qualifiers
+
+Shader version: 310
+Requested GL_EXT_shader_io_blocks
+Requested GL_EXT_texture_cube_map_array
+Requested GL_KHR_blend_equation_advanced
+Requested GL_OES_geometry_shader
+Requested GL_OES_gpu_shader5
+Requested GL_OES_sample_variables
+Requested GL_OES_shader_image_atomic
+Requested GL_OES_shader_io_blocks
+Requested GL_OES_shader_multisample_interpolation
+gl_FragCoord pixel center is integer
+gl_FragCoord origin is upper left
+using early_fragment_tests
+using depth_any
+using blend_support_multiply blend_support_screen blend_support_overlay blend_support_darken blend_support_lighten blend_support_colordodge blend_support_colorburn blend_support_hardlight blend_support_softlight blend_support_difference blend_support_exclusion blend_support_hsl_hue blend_support_hsl_saturation blend_support_hsl_color blend_support_hsl_luminosity blend_support_all_equations
+ERROR: node is still EOpNull!
+0:21 Function Definition: main( (global void)
+0:21 Function Parameters:
+0:23 Sequence
+0:23 Sequence
+0:23 move second child to first child (temp highp 4-component vector of float)
+0:23 'v' (temp mediump 4-component vector of float)
+0:23 texture (global highp 4-component vector of float)
+0:23 indirect index (temp highp sampler2D)
+0:23 'arrayedSampler' (uniform 5-element array of highp sampler2D)
+0:23 'i' (uniform mediump int)
+0:23 'c2D' (smooth in mediump 2-component vector of float)
+0:28 Sequence
+0:28 move second child to first child (temp highp 4-component vector of float)
+0:28 'v4' (temp mediump 4-component vector of float)
+0:28 textureGather (global highp 4-component vector of float)
+0:28 direct index (temp highp sampler2D)
+0:28 'arrayedSampler' (uniform 5-element array of highp sampler2D)
+0:28 Constant:
+0:28 0 (const int)
+0:28 'c2D' (smooth in mediump 2-component vector of float)
+0:29 Sequence
+0:29 move second child to first child (temp highp 4-component vector of int)
+0:29 'iv4' (temp mediump 4-component vector of int)
+0:29 textureGatherOffset (global highp 4-component vector of int)
+0:29 'isamp2DA' (uniform highp isampler2DArray)
+0:29 Constant:
+0:29 0.100000
+0:29 0.100000
+0:29 0.100000
+0:29 Constant:
+0:29 1 (const int)
+0:29 1 (const int)
+0:29 Constant:
+0:29 3 (const int)
+0:30 move second child to first child (temp highp 4-component vector of int)
+0:30 'iv4' (temp mediump 4-component vector of int)
+0:30 textureGatherOffset (global highp 4-component vector of int)
+0:30 'isamp2DA' (uniform highp isampler2DArray)
+0:30 Constant:
+0:30 0.100000
+0:30 0.100000
+0:30 0.100000
+0:30 Constant:
+0:30 1 (const int)
+0:30 1 (const int)
+0:30 'i' (uniform mediump int)
+0:31 move second child to first child (temp highp 4-component vector of int)
+0:31 'iv4' (temp mediump 4-component vector of int)
+0:31 textureGatherOffset (global highp 4-component vector of int)
+0:31 'isamp2DA' (uniform highp isampler2DArray)
+0:31 Constant:
+0:31 0.100000
+0:31 0.100000
+0:31 0.100000
+0:31 Constant:
+0:31 1 (const int)
+0:31 1 (const int)
+0:31 Constant:
+0:31 4 (const int)
+0:32 move second child to first child (temp highp 4-component vector of int)
+0:32 'iv4' (temp mediump 4-component vector of int)
+0:32 textureGatherOffset (global highp 4-component vector of int)
+0:32 'isamp2DA' (uniform highp isampler2DArray)
+0:32 Constant:
+0:32 0.100000
+0:32 0.100000
+0:32 0.100000
+0:32 Constant:
+0:32 1 (const int)
+0:32 1 (const int)
+0:32 Constant:
+0:32 3 (const int)
+0:33 move second child to first child (temp highp 4-component vector of int)
+0:33 'iv4' (temp mediump 4-component vector of int)
+0:33 textureGatherOffset (global highp 4-component vector of int)
+0:33 'isamp2DA' (uniform highp isampler2DArray)
+0:33 Constant:
+0:33 0.100000
+0:33 0.100000
+0:33 0.100000
+0:33 Constant:
+0:33 0 (const int)
+0:33 0 (const int)
+0:34 move second child to first child (temp highp 4-component vector of int)
+0:34 'iv4' (temp mediump 4-component vector of int)
+0:34 textureGatherOffset (global highp 4-component vector of int)
+0:34 'isamp2DA' (uniform highp isampler2DArray)
+0:34 Constant:
+0:34 0.100000
+0:34 0.100000
+0:34 0.100000
+0:34 Construct ivec2 (temp highp 2-component vector of int)
+0:34 'i' (uniform mediump int)
+0:38 Function Definition: foo23( (global void)
+0:38 Function Parameters:
+0:? Sequence
+0:42 textureProjGradOffset (global highp 4-component vector of uint)
+0:42 'usamp2d' (uniform highp usampler2D)
+0:42 'outp' (out mediump 4-component vector of float)
+0:42 Constant:
+0:42 0.000000
+0:42 0.000000
+0:42 Constant:
+0:42 0.000000
+0:42 0.000000
+0:42 Convert float to int (temp highp 2-component vector of int)
+0:42 'c2D' (smooth in mediump 2-component vector of float)
+0:43 textureProjGradOffset (global highp 4-component vector of uint)
+0:43 'usamp2d' (uniform highp usampler2D)
+0:43 'outp' (out mediump 4-component vector of float)
+0:43 Constant:
+0:43 0.000000
+0:43 0.000000
+0:43 Constant:
+0:43 0.000000
+0:43 0.000000
+0:43 Constant:
+0:43 3 (const int)
+0:43 4 (const int)
+0:44 textureProjGradOffset (global highp 4-component vector of uint)
+0:44 'usamp2d' (uniform highp usampler2D)
+0:44 'outp' (out mediump 4-component vector of float)
+0:44 Constant:
+0:44 0.000000
+0:44 0.000000
+0:44 Constant:
+0:44 0.000000
+0:44 0.000000
+0:44 Constant:
+0:44 15 (const int)
+0:44 16 (const int)
+0:45 textureProjGradOffset (global highp 4-component vector of uint)
+0:45 'usamp2d' (uniform highp usampler2D)
+0:45 'outp' (out mediump 4-component vector of float)
+0:45 Constant:
+0:45 0.000000
+0:45 0.000000
+0:45 Constant:
+0:45 0.000000
+0:45 0.000000
+0:45 Constant:
+0:45 -10 (const int)
+0:45 20 (const int)
+0:47 Test condition and select (temp void)
+0:47 Condition
+0:47 'gl_HelperInvocation' (in bool HelperInvocation)
+0:47 true case
+0:48 Pre-Increment (temp mediump 4-component vector of float)
+0:48 'outp' (out mediump 4-component vector of float)
+0:50 Sequence
+0:50 move second child to first child (temp mediump int)
+0:50 'sum' (temp mediump int)
+0:50 Constant:
+0:50 32 (const int)
+0:58 move second child to first child (temp bool)
+0:58 'b1' (temp bool)
+0:58 mix (global bool)
+0:58 'b2' (temp bool)
+0:58 'b3' (temp bool)
+0:58 'b' (temp bool)
+0:59 Sequence
+0:59 move second child to first child (temp mediump 3-component vector of uint)
+0:59 'um3' (temp mediump 3-component vector of uint)
+0:59 mix (global mediump 3-component vector of uint)
+0:59 Construct uvec3 (temp mediump 3-component vector of uint)
+0:59 Convert int to uint (temp mediump uint)
+0:59 'i' (uniform mediump int)
+0:59 Construct uvec3 (temp mediump 3-component vector of uint)
+0:59 Convert int to uint (temp mediump uint)
+0:59 'i' (uniform mediump int)
+0:59 Construct bvec3 (temp 3-component vector of bool)
+0:59 'b' (temp bool)
+0:60 Sequence
+0:60 move second child to first child (temp mediump 4-component vector of int)
+0:60 'im4' (temp mediump 4-component vector of int)
+0:60 mix (global mediump 4-component vector of int)
+0:60 Construct ivec4 (temp mediump 4-component vector of int)
+0:60 'i' (uniform mediump int)
+0:60 Construct ivec4 (temp mediump 4-component vector of int)
+0:60 'i' (uniform mediump int)
+0:60 Construct bvec4 (temp 4-component vector of bool)
+0:60 'b' (temp bool)
+0:98 Function Definition: foots( (global void)
+0:98 Function Parameters:
+0:100 Sequence
+0:100 Sequence
+0:100 move second child to first child (temp highp 2-component vector of int)
+0:100 'v2' (temp highp 2-component vector of int)
+0:100 textureSize (global highp 2-component vector of int)
+0:100 's1' (layout(binding=3 ) uniform highp sampler2D)
+0:100 Constant:
+0:100 2 (const int)
+0:101 Sequence
+0:101 move second child to first child (temp highp 3-component vector of int)
+0:101 'v3' (temp highp 3-component vector of int)
+0:101 textureSize (global highp 3-component vector of int)
+0:101 'isamp2DA' (uniform highp isampler2DArray)
+0:101 Constant:
+0:101 3 (const int)
+0:102 move second child to first child (temp highp 2-component vector of int)
+0:102 'v2' (temp highp 2-component vector of int)
+0:102 textureSize (global highp 2-component vector of int)
+0:102 's2dms' (uniform highp sampler2DMS)
+0:103 move second child to first child (temp highp 2-component vector of int)
+0:103 'v2' (temp highp 2-component vector of int)
+0:103 imageQuerySize (global highp 2-component vector of int)
+0:103 'i2D' (layout(binding=2 ) writeonly uniform highp image2D)
+0:104 move second child to first child (temp highp 3-component vector of int)
+0:104 'v3' (temp highp 3-component vector of int)
+0:104 imageQuerySize (global highp 3-component vector of int)
+0:104 'i3D' (layout(binding=4 ) readonly uniform mediump image3D)
+0:105 move second child to first child (temp highp 2-component vector of int)
+0:105 'v2' (temp highp 2-component vector of int)
+0:105 imageQuerySize (global highp 2-component vector of int)
+0:105 'iCube' (layout(binding=5 ) uniform lowp imageCube)
+0:106 move second child to first child (temp highp 3-component vector of int)
+0:106 'v3' (temp highp 3-component vector of int)
+0:106 imageQuerySize (global highp 3-component vector of int)
+0:106 'i2DA' (layout(binding=6 ) uniform mediump image2DArray)
+0:107 move second child to first child (temp highp 2-component vector of int)
+0:107 'v2' (temp highp 2-component vector of int)
+0:107 imageQuerySize (global highp 2-component vector of int)
+0:107 'i2Dqualified' (layout(binding=6 ) coherent volatile restrict uniform highp image2D)
+0:165 Function Definition: fooIO( (global void)
+0:165 Function Parameters:
+0:167 Sequence
+0:167 Sequence
+0:167 move second child to first child (temp mediump 4-component vector of float)
+0:167 'v' (temp mediump 4-component vector of float)
+0:167 add (temp mediump 4-component vector of float)
+0:167 v: direct index for structure (in mediump 4-component vector of float)
+0:167 'inbinst' (in block{in mediump int a, in mediump 4-component vector of float v, in structure{global mediump int b} s})
+0:167 Constant:
+0:167 1 (const int)
+0:167 vAnon: direct index for structure (layout(location=13 ) centroid in mediump 4-component vector of float)
+0:167 'anon@0' (in block{layout(location=12 ) in mediump int aAnon, layout(location=13 ) centroid in mediump 4-component vector of float vAnon})
+0:167 Constant:
+0:167 1 (const uint)
+0:168 vector scale second child into first child (temp mediump 4-component vector of float)
+0:168 'v' (temp mediump 4-component vector of float)
+0:168 f: direct index for structure (in mediump float)
+0:168 direct index (temp block{in mediump float f})
+0:168 'arrayedInst' (in 4-element array of block{in mediump float f})
+0:168 Constant:
+0:168 2 (const int)
+0:168 Constant:
+0:168 0 (const int)
+0:169 vector scale second child into first child (temp mediump 4-component vector of float)
+0:169 'v' (temp mediump 4-component vector of float)
+0:169 f: direct index for structure (in mediump float)
+0:169 indirect index (temp block{in mediump float f})
+0:169 'arrayedInst' (in 4-element array of block{in mediump float f})
+0:169 'i' (uniform mediump int)
+0:169 Constant:
+0:169 0 (const int)
+0:179 Function Definition: foo_IO( (global void)
+0:179 Function Parameters:
+0:181 Sequence
+0:181 move second child to first child (temp highp float)
+0:181 'gl_FragDepth' (gl_FragDepth highp float FragDepth)
+0:181 Constant:
+0:181 0.200000
+0:182 'gl_Layer' (flat in highp int Layer)
+0:183 'gl_PrimitiveID' (flat in highp int PrimitiveID)
+0:184 Sequence
+0:184 move second child to first child (temp bool)
+0:184 'f' (temp bool)
+0:184 'gl_FrontFacing' (gl_FrontFacing bool Face)
+0:191 Function Definition: foo_GS( (global void)
+0:191 Function Parameters:
+0:193 Sequence
+0:193 Sequence
+0:193 move second child to first child (temp highp int)
+0:193 'l' (temp highp int)
+0:193 'gl_Layer' (flat in highp int Layer)
+0:194 Sequence
+0:194 move second child to first child (temp highp int)
+0:194 'p' (temp highp int)
+0:194 'gl_PrimitiveID' (flat in highp int PrimitiveID)
+0:207 Function Definition: pfooBad( (global void)
+0:207 Function Parameters:
+0:? Sequence
+0:210 move second child to first child (temp mediump 2-component vector of float)
+0:210 'h' (noContraction temp mediump 2-component vector of float)
+0:210 fma (global mediump 2-component vector of float)
+0:210 'inf' (smooth in mediump 2-component vector of float)
+0:210 'ing' (smooth in mediump 2-component vector of float)
+0:210 'h' (noContraction temp mediump 2-component vector of float)
+0:211 textureGatherOffset (global highp 4-component vector of float)
+0:211 direct index (temp highp sampler2D)
+0:211 'sArray' (uniform 4-element array of highp sampler2D)
+0:211 Constant:
+0:211 0 (const int)
+0:211 Constant:
+0:211 0.100000
+0:211 0.100000
+0:211 Convert float to int (temp highp 2-component vector of int)
+0:211 'inf' (smooth in mediump 2-component vector of float)
+0:212 textureGatherOffsets (global highp 4-component vector of float)
+0:212 direct index (temp highp sampler2D)
+0:212 'sArray' (uniform 4-element array of highp sampler2D)
+0:212 Constant:
+0:212 0 (const int)
+0:212 Constant:
+0:212 0.100000
+0:212 0.100000
+0:212 Constant:
+0:212 0 (const int)
+0:212 0 (const int)
+0:212 0 (const int)
+0:212 0 (const int)
+0:212 0 (const int)
+0:212 0 (const int)
+0:212 0 (const int)
+0:212 0 (const int)
+0:217 Function Definition: pfoo( (global void)
+0:217 Function Parameters:
+0:? Sequence
+0:220 move second child to first child (temp mediump 2-component vector of float)
+0:220 'h' (noContraction temp mediump 2-component vector of float)
+0:220 fma (global mediump 2-component vector of float)
+0:220 'inf' (smooth in mediump 2-component vector of float)
+0:220 'ing' (smooth in mediump 2-component vector of float)
+0:220 'h' (noContraction temp mediump 2-component vector of float)
+0:221 textureGatherOffset (global highp 4-component vector of float)
+0:221 direct index (temp highp sampler2D)
+0:221 'sArray' (uniform 4-element array of highp sampler2D)
+0:221 Constant:
+0:221 0 (const int)
+0:221 Constant:
+0:221 0.100000
+0:221 0.100000
+0:221 Convert float to int (temp highp 2-component vector of int)
+0:221 'inf' (smooth in mediump 2-component vector of float)
+0:222 textureGatherOffsets (global highp 4-component vector of float)
+0:222 direct index (temp highp sampler2D)
+0:222 'sArray' (uniform 4-element array of highp sampler2D)
+0:222 Constant:
+0:222 0 (const int)
+0:222 Constant:
+0:222 0.100000
+0:222 0.100000
+0:222 Constant:
+0:222 0 (const int)
+0:222 0 (const int)
+0:222 0 (const int)
+0:222 0 (const int)
+0:222 0 (const int)
+0:222 0 (const int)
+0:222 0 (const int)
+0:222 0 (const int)
+0:223 textureGatherOffsets (global highp 4-component vector of float)
+0:223 direct index (temp highp sampler2D)
+0:223 'sArray' (uniform 4-element array of highp sampler2D)
+0:223 Constant:
+0:223 0 (const int)
+0:223 Constant:
+0:223 0.100000
+0:223 0.100000
+0:223 'offsets' (uniform 4-element array of mediump 2-component vector of int)
+0:248 Function Definition: CAT( (global void)
+0:248 Function Parameters:
+0:250 Sequence
+0:250 Sequence
+0:250 move second child to first child (temp highp 4-component vector of float)
+0:250 'b4' (temp highp 4-component vector of float)
+0:250 texture (global highp 4-component vector of float)
+0:250 'CA4' (uniform highp samplerCubeArray)
+0:250 Constant:
+0:250 0.500000
+0:250 0.500000
+0:250 0.500000
+0:250 0.500000
+0:250 Constant:
+0:250 0.240000
+0:251 Sequence
+0:251 move second child to first child (temp highp 4-component vector of int)
+0:251 'b6' (temp highp 4-component vector of int)
+0:251 texture (global highp 4-component vector of int)
+0:251 'CA6' (uniform highp isamplerCubeArray)
+0:251 Constant:
+0:251 0.500000
+0:251 0.500000
+0:251 0.500000
+0:251 0.500000
+0:251 Constant:
+0:251 0.260000
+0:252 Sequence
+0:252 move second child to first child (temp highp 4-component vector of uint)
+0:252 'b7' (temp highp 4-component vector of uint)
+0:252 texture (global highp 4-component vector of uint)
+0:252 'CA7' (uniform highp usamplerCubeArray)
+0:252 Constant:
+0:252 0.500000
+0:252 0.500000
+0:252 0.500000
+0:252 0.500000
+0:252 Constant:
+0:252 0.270000
+0:255 Function Definition: badSample( (global void)
+0:255 Function Parameters:
+0:257 Sequence
+0:257 Sequence
+0:257 move second child to first child (temp lowp int)
+0:257 'a1' (temp lowp int)
+0:257 'gl_SampleID' (flat in lowp int SampleId)
+0:258 Sequence
+0:258 move second child to first child (temp mediump 2-component vector of float)
+0:258 'a2' (temp mediump 2-component vector of float)
+0:258 'gl_SamplePosition' (smooth in mediump 2-component vector of float SamplePosition)
+0:259 Sequence
+0:259 move second child to first child (temp highp int)
+0:259 'a3' (temp highp int)
+0:259 direct index (flat temp highp int SampleMaskIn)
+0:259 'gl_SampleMaskIn' (flat in 1-element array of highp int SampleMaskIn)
+0:259 Constant:
+0:259 0 (const int)
+0:260 move second child to first child (temp highp int)
+0:260 direct index (temp highp int SampleMaskIn)
+0:260 'gl_SampleMask' (out 1-element array of highp int SampleMaskIn)
+0:260 Constant:
+0:260 0 (const int)
+0:260 'a3' (temp highp int)
+0:261 Sequence
+0:261 move second child to first child (temp mediump int)
+0:261 'n' (temp mediump int)
+0:261 'gl_NumSamples' (uniform lowp int)
+0:268 Function Definition: goodSample( (global void)
+0:268 Function Parameters:
+0:270 Sequence
+0:270 Sequence
+0:270 move second child to first child (temp lowp int)
+0:270 'a1' (temp lowp int)
+0:270 'gl_SampleID' (flat in lowp int SampleId)
+0:271 Sequence
+0:271 move second child to first child (temp mediump 2-component vector of float)
+0:271 'a2' (temp mediump 2-component vector of float)
+0:271 'gl_SamplePosition' (smooth in mediump 2-component vector of float SamplePosition)
+0:272 Sequence
+0:272 move second child to first child (temp highp int)
+0:272 'a3' (temp highp int)
+0:272 direct index (flat temp highp int SampleMaskIn)
+0:272 'gl_SampleMaskIn' (flat in 1-element array of highp int SampleMaskIn)
+0:272 Constant:
+0:272 0 (const int)
+0:273 move second child to first child (temp highp int)
+0:273 direct index (temp highp int SampleMaskIn)
+0:273 'gl_SampleMask' (out 1-element array of highp int SampleMaskIn)
+0:273 Constant:
+0:273 0 (const int)
+0:273 'a3' (temp highp int)
+0:274 Sequence
+0:274 move second child to first child (temp mediump int)
+0:274 'n1' (temp mediump int)
+0:274 Constant:
+0:274 4 (const int)
+0:275 Sequence
+0:275 move second child to first child (temp mediump int)
+0:275 'n2' (temp mediump int)
+0:275 'gl_NumSamples' (uniform lowp int)
+0:283 Function Definition: badImageAtom( (global void)
+0:283 Function Parameters:
+0:? Sequence
+0:289 imageAtomicAdd (global highp int)
+0:289 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:289 'P' (uniform mediump 2-component vector of int)
+0:289 'dati' (temp mediump int)
+0:290 imageAtomicAdd (global highp uint)
+0:290 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:290 'P' (uniform mediump 2-component vector of int)
+0:290 'datu' (temp mediump uint)
+0:291 imageAtomicMin (global highp int)
+0:291 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:291 'P' (uniform mediump 2-component vector of int)
+0:291 'dati' (temp mediump int)
+0:292 imageAtomicMin (global highp uint)
+0:292 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:292 'P' (uniform mediump 2-component vector of int)
+0:292 'datu' (temp mediump uint)
+0:293 imageAtomicMax (global highp int)
+0:293 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:293 'P' (uniform mediump 2-component vector of int)
+0:293 'dati' (temp mediump int)
+0:294 imageAtomicMax (global highp uint)
+0:294 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:294 'P' (uniform mediump 2-component vector of int)
+0:294 'datu' (temp mediump uint)
+0:295 imageAtomicAnd (global highp int)
+0:295 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:295 'P' (uniform mediump 2-component vector of int)
+0:295 'dati' (temp mediump int)
+0:296 imageAtomicAnd (global highp uint)
+0:296 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:296 'P' (uniform mediump 2-component vector of int)
+0:296 'datu' (temp mediump uint)
+0:297 imageAtomicOr (global highp int)
+0:297 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:297 'P' (uniform mediump 2-component vector of int)
+0:297 'dati' (temp mediump int)
+0:298 imageAtomicOr (global highp uint)
+0:298 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:298 'P' (uniform mediump 2-component vector of int)
+0:298 'datu' (temp mediump uint)
+0:299 imageAtomicXor (global highp int)
+0:299 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:299 'P' (uniform mediump 2-component vector of int)
+0:299 'dati' (temp mediump int)
+0:300 imageAtomicXor (global highp uint)
+0:300 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:300 'P' (uniform mediump 2-component vector of int)
+0:300 'datu' (temp mediump uint)
+0:301 imageAtomicExchange (global highp int)
+0:301 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:301 'P' (uniform mediump 2-component vector of int)
+0:301 'dati' (temp mediump int)
+0:302 imageAtomicExchange (global highp uint)
+0:302 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:302 'P' (uniform mediump 2-component vector of int)
+0:302 'datu' (temp mediump uint)
+0:303 imageAtomicExchange (global highp float)
+0:303 'im2Df' (layout(r32f ) uniform highp image2D)
+0:303 'P' (uniform mediump 2-component vector of int)
+0:303 'datf' (temp mediump float)
+0:304 imageAtomicCompSwap (global highp int)
+0:304 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:304 'P' (uniform mediump 2-component vector of int)
+0:304 Constant:
+0:304 3 (const int)
+0:304 'dati' (temp mediump int)
+0:305 imageAtomicCompSwap (global highp uint)
+0:305 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:305 'P' (uniform mediump 2-component vector of int)
+0:305 Constant:
+0:305 5 (const uint)
+0:305 'datu' (temp mediump uint)
+0:316 Function Definition: goodImageAtom( (global void)
+0:316 Function Parameters:
+0:? Sequence
+0:322 imageAtomicAdd (global highp int)
+0:322 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:322 'P' (uniform mediump 2-component vector of int)
+0:322 'dati' (temp mediump int)
+0:323 imageAtomicAdd (global highp uint)
+0:323 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:323 'P' (uniform mediump 2-component vector of int)
+0:323 'datu' (temp mediump uint)
+0:324 imageAtomicMin (global highp int)
+0:324 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:324 'P' (uniform mediump 2-component vector of int)
+0:324 'dati' (temp mediump int)
+0:325 imageAtomicMin (global highp uint)
+0:325 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:325 'P' (uniform mediump 2-component vector of int)
+0:325 'datu' (temp mediump uint)
+0:326 imageAtomicMax (global highp int)
+0:326 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:326 'P' (uniform mediump 2-component vector of int)
+0:326 'dati' (temp mediump int)
+0:327 imageAtomicMax (global highp uint)
+0:327 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:327 'P' (uniform mediump 2-component vector of int)
+0:327 'datu' (temp mediump uint)
+0:328 imageAtomicAnd (global highp int)
+0:328 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:328 'P' (uniform mediump 2-component vector of int)
+0:328 'dati' (temp mediump int)
+0:329 imageAtomicAnd (global highp uint)
+0:329 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:329 'P' (uniform mediump 2-component vector of int)
+0:329 'datu' (temp mediump uint)
+0:330 imageAtomicOr (global highp int)
+0:330 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:330 'P' (uniform mediump 2-component vector of int)
+0:330 'dati' (temp mediump int)
+0:331 imageAtomicOr (global highp uint)
+0:331 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:331 'P' (uniform mediump 2-component vector of int)
+0:331 'datu' (temp mediump uint)
+0:332 imageAtomicXor (global highp int)
+0:332 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:332 'P' (uniform mediump 2-component vector of int)
+0:332 'dati' (temp mediump int)
+0:333 imageAtomicXor (global highp uint)
+0:333 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:333 'P' (uniform mediump 2-component vector of int)
+0:333 'datu' (temp mediump uint)
+0:334 imageAtomicExchange (global highp int)
+0:334 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:334 'P' (uniform mediump 2-component vector of int)
+0:334 'dati' (temp mediump int)
+0:335 imageAtomicExchange (global highp uint)
+0:335 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:335 'P' (uniform mediump 2-component vector of int)
+0:335 'datu' (temp mediump uint)
+0:336 imageAtomicExchange (global highp float)
+0:336 'im2Df' (layout(r32f ) uniform highp image2D)
+0:336 'P' (uniform mediump 2-component vector of int)
+0:336 'datf' (temp mediump float)
+0:337 imageAtomicCompSwap (global highp int)
+0:337 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:337 'P' (uniform mediump 2-component vector of int)
+0:337 Constant:
+0:337 3 (const int)
+0:337 'dati' (temp mediump int)
+0:338 imageAtomicCompSwap (global highp uint)
+0:338 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:338 'P' (uniform mediump 2-component vector of int)
+0:338 Constant:
+0:338 5 (const uint)
+0:338 'datu' (temp mediump uint)
+0:340 imageAtomicMax (global highp int)
+0:340 'badIm2Di' (layout(rgba16i ) uniform highp iimage2D)
+0:340 'P' (uniform mediump 2-component vector of int)
+0:340 'dati' (temp mediump int)
+0:341 imageAtomicMax (global highp uint)
+0:341 'badIm2Du' (layout(rgba8ui ) uniform highp uimage2D)
+0:341 'P' (uniform mediump 2-component vector of int)
+0:341 'datu' (temp mediump uint)
+0:342 imageAtomicExchange (global highp float)
+0:342 'badIm2Df' (layout(rgba32f ) uniform highp image2D)
+0:342 'P' (uniform mediump 2-component vector of int)
+0:342 'datf' (temp mediump float)
+0:353 Function Definition: badInterp( (global void)
+0:353 Function Parameters:
+0:355 Sequence
+0:355 interpolateAtCentroid (global mediump 2-component vector of float)
+0:355 'colorfc' (centroid flat in mediump 2-component vector of float)
+0:356 interpolateAtSample (global mediump 2-component vector of float)
+0:356 'colorfc' (centroid flat in mediump 2-component vector of float)
+0:356 Constant:
+0:356 1 (const int)
+0:357 interpolateAtOffset (global mediump 2-component vector of float)
+0:357 'colorfc' (centroid flat in mediump 2-component vector of float)
+0:357 Constant:
+0:357 0.200000
+0:357 0.200000
+0:369 Function Definition: interp( (global void)
+0:369 Function Parameters:
+0:? Sequence
+0:376 move second child to first child (temp mediump 2-component vector of float)
+0:376 'res2' (temp mediump 2-component vector of float)
+0:376 interpolateAtCentroid (global mediump 2-component vector of float)
+0:376 'colorfc' (centroid flat in mediump 2-component vector of float)
+0:377 move second child to first child (temp mediump 4-component vector of float)
+0:377 'res4' (temp mediump 4-component vector of float)
+0:377 interpolateAtCentroid (global mediump 4-component vector of float)
+0:377 'colorSampIn' (smooth sample in mediump 4-component vector of float)
+0:378 move second child to first child (temp mediump 4-component vector of float)
+0:378 'res4' (temp mediump 4-component vector of float)
+0:378 interpolateAtCentroid (global mediump 4-component vector of float)
+0:378 'colorfsi' (flat sample in mediump 4-component vector of float)
+0:379 move second child to first child (temp mediump float)
+0:379 'res' (temp mediump float)
+0:379 interpolateAtCentroid (global mediump float)
+0:379 'scalarIn' (smooth in mediump float)
+0:380 'res3' (temp mediump 3-component vector of float)
+0:381 move second child to first child (temp mediump 3-component vector of float)
+0:381 'res3' (temp mediump 3-component vector of float)
+0:381 interpolateAtCentroid (global mediump 3-component vector of float)
+0:381 direct index (smooth sample temp mediump 3-component vector of float)
+0:381 'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)
+0:381 Constant:
+0:381 2 (const int)
+0:382 move second child to first child (temp mediump 2-component vector of float)
+0:382 'res2' (temp mediump 2-component vector of float)
+0:382 interpolateAtCentroid (global mediump 2-component vector of float)
+0:382 vector swizzle (temp mediump 2-component vector of float)
+0:382 direct index (smooth sample temp mediump 3-component vector of float)
+0:382 'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)
+0:382 Constant:
+0:382 2 (const int)
+0:382 Sequence
+0:382 Constant:
+0:382 0 (const int)
+0:382 Constant:
+0:382 1 (const int)
+0:384 'res3' (temp mediump 3-component vector of float)
+0:385 move second child to first child (temp mediump 3-component vector of float)
+0:385 'res3' (temp mediump 3-component vector of float)
+0:385 interpolateAtSample (global mediump 3-component vector of float)
+0:385 indirect index (smooth sample temp mediump 3-component vector of float)
+0:385 'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)
+0:385 'i' (uniform mediump int)
+0:385 Constant:
+0:385 0 (const int)
+0:386 move second child to first child (temp mediump 2-component vector of float)
+0:386 'res2' (temp mediump 2-component vector of float)
+0:386 interpolateAtSample (global mediump 2-component vector of float)
+0:386 vector swizzle (temp mediump 2-component vector of float)
+0:386 direct index (smooth sample temp mediump 3-component vector of float)
+0:386 'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)
+0:386 Constant:
+0:386 2 (const int)
+0:386 Sequence
+0:386 Constant:
+0:386 0 (const int)
+0:386 Constant:
+0:386 1 (const int)
+0:386 Constant:
+0:386 2 (const int)
+0:387 move second child to first child (temp mediump float)
+0:387 'res' (temp mediump float)
+0:387 interpolateAtSample (global mediump float)
+0:387 'scalarIn' (smooth in mediump float)
+0:387 Constant:
+0:387 1 (const int)
+0:389 'res3' (temp mediump 3-component vector of float)
+0:390 move second child to first child (temp mediump 3-component vector of float)
+0:390 'res3' (temp mediump 3-component vector of float)
+0:390 interpolateAtOffset (global mediump 3-component vector of float)
+0:390 direct index (smooth sample temp mediump 3-component vector of float)
+0:390 'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)
+0:390 Constant:
+0:390 2 (const int)
+0:390 Constant:
+0:390 0.200000
+0:390 0.200000
+0:391 move second child to first child (temp mediump 2-component vector of float)
+0:391 'res2' (temp mediump 2-component vector of float)
+0:391 interpolateAtOffset (global mediump 2-component vector of float)
+0:391 vector swizzle (temp mediump 2-component vector of float)
+0:391 direct index (smooth sample temp mediump 3-component vector of float)
+0:391 'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)
+0:391 Constant:
+0:391 2 (const int)
+0:391 Sequence
+0:391 Constant:
+0:391 0 (const int)
+0:391 Constant:
+0:391 1 (const int)
+0:391 Constant:
+0:391 0.200000
+0:391 0.200000
+0:392 move second child to first child (temp mediump float)
+0:392 'res' (temp mediump float)
+0:392 interpolateAtOffset (global mediump float)
+0:392 add (temp mediump float)
+0:392 'scalarIn' (smooth in mediump float)
+0:392 'scalarIn' (smooth in mediump float)
+0:392 Constant:
+0:392 0.200000
+0:392 0.200000
+0:393 move second child to first child (temp mediump float)
+0:393 'res' (temp mediump float)
+0:393 interpolateAtOffset (global mediump float)
+0:393 'scalarIn' (smooth in mediump float)
+0:393 Constant:
+0:393 0.200000
+0:393 0.200000
+0:396 move second child to first child (temp mediump float)
+0:396 'res' (temp mediump float)
+0:396 interpolateAtCentroid (global mediump float)
+0:396 'f' (temp mediump float)
+0:397 move second child to first child (temp mediump 4-component vector of float)
+0:397 'res4' (temp mediump 4-component vector of float)
+0:397 interpolateAtSample (global mediump 4-component vector of float)
+0:397 'outp' (out mediump 4-component vector of float)
+0:397 Constant:
+0:397 0 (const int)
+0:427 Function Definition: blendFoo( (temp void)
+0:427 Function Parameters:
+0:428 Function Definition: blendFoo(vf3; (global void)
+0:428 Function Parameters:
+0:428 'v' (in mediump 3-component vector of float)
+0:? Linker Objects
+0:? 'gl_FragCoord' (smooth in mediump 4-component vector of float)
+0:? 'v3' (layout(location=2 ) smooth in mediump 3-component vector of float)
+0:? 'yi' (layout(location=2 ) smooth in mediump 4X4 matrix of float)
+0:? 'arrayedSampler' (uniform 5-element array of highp sampler2D)
+0:? 'usamp2d' (uniform highp usampler2D)
+0:? 'samp2dr' (uniform mediump usampler2DRect)
+0:? 'isamp2DA' (uniform highp isampler2DArray)
+0:? 'c2D' (smooth in mediump 2-component vector of float)
+0:? 'i' (uniform mediump int)
+0:? 'outp' (out mediump 4-component vector of float)
+0:? 's1' (layout(binding=3 ) uniform highp sampler2D)
+0:? 's2' (layout(binding=3 ) uniform highp sampler2D)
+0:? 'i2D' (layout(binding=2 ) writeonly uniform highp image2D)
+0:? 'i3D' (layout(binding=4 ) readonly uniform mediump image3D)
+0:? 'iCube' (layout(binding=5 ) uniform lowp imageCube)
+0:? 'i2DA' (layout(binding=6 ) uniform mediump image2DArray)
+0:? 'i2Dqualified' (layout(binding=6 ) coherent volatile restrict uniform highp image2D)
+0:? 'bbi' (layout(binding=1 column_major shared ) uniform block{layout(column_major shared ) uniform mediump int foo, layout(binding=2 column_major shared ) uniform mediump float f})
+0:? 'centroidIn' (centroid smooth in mediump 4-component vector of float)
+0:? 'bigl' (uniform mediump 4-component vector of float)
+0:? 'bigout1' (layout(location=40 ) out mediump 4-component vector of float)
+0:? 'bigout2' (layout(location=40 ) out mediump 4-component vector of float)
+0:? 'neg' (out mediump 4-component vector of float)
+0:? 'b430i' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=0 ) buffer mediump int i})
+0:? 'bshari' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump int i})
+0:? 'smoothIn' (smooth in mediump 4-component vector of float)
+0:? 'flatIn' (flat in mediump int)
+0:? 's2dms' (uniform highp sampler2DMS)
+0:? 'bout' (out bool)
+0:? 'imageOut' (out highp image2D)
+0:? 'mout' (out mediump 2X3 matrix of float)
+0:? 'inb' (smooth in bool)
+0:? 'ino' (smooth in highp sampler2D)
+0:? 'ina' (smooth in 4-element array of mediump float)
+0:? 'inaa' (smooth in 4-element array of 2-element array of mediump float)
+0:? 'ins' (smooth in structure{global mediump float f})
+0:? 'inasa' (smooth in 4-element array of structure{global mediump float f})
+0:? 'insa' (smooth in 4-element array of structure{global mediump float f})
+0:? 'inSA' (smooth in structure{global 4-element array of mediump float f})
+0:? 'inSS' (smooth in structure{global mediump float f, global structure{global mediump float f} s})
+0:? 'outbinst' (out block{out mediump int a})
+0:? 'inbinst' (in block{in mediump int a, in mediump 4-component vector of float v, in structure{global mediump int b} s})
+0:? 'anon@0' (in block{layout(location=12 ) in mediump int aAnon, layout(location=13 ) centroid in mediump 4-component vector of float vAnon})
+0:? 'aliased' (layout(location=13 ) smooth in mediump 4-component vector of float)
+0:? 'arrayedInst' (in 4-element array of block{in mediump float f})
+0:? 'gl_FragDepth' (gl_FragDepth highp float FragDepth)
+0:? 'gl_FragDepth' (gl_FragDepth highp float FragDepth)
+0:? 'inf' (smooth in mediump 2-component vector of float)
+0:? 'ing' (smooth in mediump 2-component vector of float)
+0:? 'offsets' (uniform 4-element array of mediump 2-component vector of int)
+0:? 'sArray' (uniform 4-element array of highp sampler2D)
+0:? 'sIndex' (uniform mediump int)
+0:? 'auArray' (layout(binding=0 offset=0 ) uniform 2-element array of highp atomic_uint)
+0:? 'ubInst' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform mediump int i})
+0:? 'bbInst' (layout(column_major shared ) buffer 4-element array of block{layout(column_major shared ) buffer mediump int i})
+0:? 'iArray' (writeonly uniform 5-element array of highp image2D)
+0:? 'constOffsets' (const 4-element array of mediump 2-component vector of int)
+0:? 0 (const int)
+0:? 0 (const int)
+0:? 0 (const int)
+0:? 0 (const int)
+0:? 0 (const int)
+0:? 0 (const int)
+0:? 0 (const int)
+0:? 0 (const int)
+0:? 'CA1' (writeonly uniform highp imageCubeArray)
+0:? 'CA2' (writeonly uniform highp iimageCubeArray)
+0:? 'CA3' (writeonly uniform highp uimageCubeArray)
+0:? 'CA4' (uniform highp samplerCubeArray)
+0:? 'CA5' (uniform highp samplerCubeArrayShadow)
+0:? 'CA6' (uniform highp isamplerCubeArray)
+0:? 'CA7' (uniform highp usamplerCubeArray)
+0:? 'gl_SampleMaskIn' (flat in 1-element array of highp int SampleMaskIn)
+0:? 'gl_SampleMask' (out 1-element array of highp int SampleMaskIn)
+0:? 'im2Df' (layout(r32f ) uniform highp image2D)
+0:? 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:? 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:? 'P' (uniform mediump 2-component vector of int)
+0:? 'badIm2Df' (layout(rgba32f ) uniform highp image2D)
+0:? 'badIm2Du' (layout(rgba8ui ) uniform highp uimage2D)
+0:? 'badIm2Di' (layout(rgba16i ) uniform highp iimage2D)
+0:? 'colorSampInBad' (smooth sample in mediump 4-component vector of float)
+0:? 'colorCentroidBad' (centroid out mediump 4-component vector of float)
+0:? 'colorBadFlat' (flat out mediump 4-component vector of float)
+0:? 'colorBadSmooth' (smooth out mediump 4-component vector of float)
+0:? 'colorBadNo' (noperspective out mediump 4-component vector of float)
+0:? 'colorfc' (centroid flat in mediump 2-component vector of float)
+0:? 'scalarIn' (smooth in mediump float)
+0:? 'colorSampIn' (smooth sample in mediump 4-component vector of float)
+0:? 'colorSampleBad' (sample out mediump 4-component vector of float)
+0:? 'colorfsi' (flat sample in mediump 4-component vector of float)
+0:? 'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)
+0:? 'badout' (out mediump 4-component vector of float)
+0:? 'outAA' (out 2-element array of 2-element array of mediump 4-component vector of float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/310.geom.out b/chromium/third_party/glslang/src/Test/baseResults/310.geom.out
new file mode 100644
index 00000000000..888c14233f7
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/310.geom.out
@@ -0,0 +1,346 @@
+310.geom
+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:29: 'fromVertex' : block instance name redefinition
+ERROR: 0:33: 'fromVertex' : redefinition
+ERROR: 0:35: 'fooC' : block instance name redefinition
+ERROR: 0:43: 'EmitStreamVertex' : no matching overloaded function found
+ERROR: 0:44: 'EndStreamPrimitive' : no matching overloaded function found
+ERROR: 0:47: 'gl_ClipDistance' : undeclared identifier
+ERROR: 0:47: 'gl_ClipDistance' : left of '[' is not of type array, matrix, or vector
+ERROR: 0:48: 'gl_ClipDistance' : no such field in structure
+ERROR: 0:48: 'expression' : left of '[' is not of type array, matrix, or vector
+ERROR: 0:47: 'assign' : l-value required (can't modify a const)
+ERROR: 0:55: 'selecting output stream' : not supported with this profile: es
+ERROR: 0:62: 'max_vertices' : too large, must be less than gl_MaxGeometryOutputVertices
+ERROR: 0:62: 'max_vertices' : cannot change previously set layout value
+ERROR: 0:63: 'max_vertices' : can only apply to a standalone qualifier
+ERROR: 0:68: 'points' : cannot change previously set output primitive
+ERROR: 0:69: 'points' : cannot change previously set output primitive
+ERROR: 0:70: 'triangle_strip' : cannot apply to input
+ERROR: 0:71: 'triangle_strip' : cannot apply to: uniform
+ERROR: 0:72: 'triangle_strip' : can only apply to a standalone qualifier
+ERROR: 0:73: 'triangle_strip' : can only apply to a standalone qualifier
+ERROR: 0:74: 'invocations' : can only apply to a standalone qualifier
+ERROR: 0:76: 'invocations' : can only apply to a standalone qualifier
+ERROR: 0:77: 'max_vertices' : can only apply to a standalone qualifier
+ERROR: 0:78: 'triangle_strip' : can only apply to a standalone qualifier
+ERROR: 0:81: 'lines' : cannot apply to 'out'
+ERROR: 0:83: 'triangles' : cannot change previously set input primitive
+ERROR: 0:84: 'triangles_adjacency' : cannot change previously set input primitive
+ERROR: 0:116: 'gl_ViewportIndex' : undeclared identifier
+ERROR: 0:117: 'gl_MaxViewports' : undeclared identifier
+ERROR: 0:123: 'lines_adjacency' : inconsistent input primitive for array size of explArrayBad
+ERROR: 0:124: 'in' : type must be an array: nonArrayed
+ERROR: 0:128: 'sample' : Reserved word.
+ERROR: 0:132: 'component' : not supported with this profile: es
+ERROR: 0:136: 'gl_MaxGeometryVaryingComponents' : undeclared identifier
+ERROR: 0:137: 'gl_VerticesIn' : undeclared identifier
+ERROR: 0:142: 'gl_PointSize' : required extension not requested: Possible extensions include:
+GL_EXT_geometry_point_size
+GL_OES_geometry_point_size
+ERROR: 0:143: 'gl_PointSize' : required extension not requested: Possible extensions include:
+GL_EXT_geometry_point_size
+GL_OES_geometry_point_size
+ERROR: 37 compilation errors. No code generated.
+
+
+Shader version: 310
+Requested GL_EXT_geometry_shader
+Requested GL_EXT_shader_io_blocks
+Requested GL_OES_geometry_point_size
+invocations = 4
+max_vertices = 200
+input primitive = lines_adjacency
+output primitive = triangle_strip
+ERROR: node is still EOpNull!
+0:39 Function Definition: main( (global void)
+0:39 Function Parameters:
+0:41 Sequence
+0:41 EmitVertex (global void)
+0:42 EndPrimitive (global void)
+0:43 Constant:
+0:43 0.000000
+0:44 Constant:
+0:44 0.000000
+0:46 move second child to first child (temp mediump 3-component vector of float)
+0:46 color: direct index for structure (layout(stream=0 ) out mediump 3-component vector of float)
+0:46 'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out mediump 3-component vector of float color})
+0:46 Constant:
+0:46 0 (const uint)
+0:46 color: direct index for structure (in mediump 3-component vector of float)
+0:46 direct index (temp block{in mediump 3-component vector of float color})
+0:46 'fromV' (in 4-element array of block{in mediump 3-component vector of float color})
+0:46 Constant:
+0:46 0 (const int)
+0:46 Constant:
+0:46 0 (const int)
+0:47 move second child to first child (temp float)
+0:47 Constant:
+0:47 0.000000
+0:48 Constant:
+0:48 0.000000
+0:49 move second child to first child (temp highp 4-component vector of float)
+0:49 gl_Position: direct index for structure (layout(stream=0 ) gl_Position highp 4-component vector of float Position)
+0:49 'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position highp 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize highp float PointSize gl_PointSize})
+0:49 Constant:
+0:49 0 (const uint)
+0:49 gl_Position: direct index for structure (in highp 4-component vector of float Position)
+0:49 direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:49 'gl_in' (in 4-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:49 Constant:
+0:49 0 (const int)
+0:49 Constant:
+0:49 0 (const int)
+0:51 move second child to first child (temp highp int)
+0:51 'gl_PrimitiveID' (layout(stream=0 ) out highp int PrimitiveID)
+0:51 'gl_PrimitiveIDIn' (in highp int PrimitiveID)
+0:52 move second child to first child (temp highp int)
+0:52 'gl_Layer' (layout(stream=0 ) out highp int Layer)
+0:52 Constant:
+0:52 2 (const int)
+0:63 Function Definition: foo(i1; (global void)
+0:63 Function Parameters:
+0:63 'a' (in highp int)
+0:65 Sequence
+0:65 move second child to first child (temp mediump 4-component vector of float)
+0:65 a: direct index for structure (layout(stream=0 ) out mediump 4-component vector of float)
+0:65 'ouuaa6' (layout(stream=0 ) out block{layout(stream=0 ) out mediump 4-component vector of float a})
+0:65 Constant:
+0:65 0 (const int)
+0:65 Constant:
+0:65 1.000000
+0:65 1.000000
+0:65 1.000000
+0:65 1.000000
+0:114 Function Definition: fooe1( (global void)
+0:114 Function Parameters:
+0:116 Sequence
+0:116 'gl_ViewportIndex' (temp float)
+0:117 'gl_MaxViewports' (temp float)
+0:118 Constant:
+0:118 4 (const int)
+0:119 Sequence
+0:119 move second child to first child (temp highp int)
+0:119 'inv' (temp highp int)
+0:119 'gl_InvocationID' (in highp int InvocationID)
+0:134 Function Definition: notHere( (global void)
+0:134 Function Parameters:
+0:136 Sequence
+0:136 'gl_MaxGeometryVaryingComponents' (temp float)
+0:137 'gl_VerticesIn' (temp float)
+0:140 Function Definition: pointSize1( (global void)
+0:140 Function Parameters:
+0:142 Sequence
+0:142 Sequence
+0:142 move second child to first child (temp highp float)
+0:142 'ps' (temp highp float)
+0:142 gl_PointSize: direct index for structure (in highp float PointSize)
+0:142 direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:142 'gl_in' (in 4-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:142 Constant:
+0:142 3 (const int)
+0:142 Constant:
+0:142 1 (const int)
+0:143 move second child to first child (temp highp float)
+0:143 gl_PointSize: direct index for structure (layout(stream=0 ) gl_PointSize highp float PointSize)
+0:143 'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position highp 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize highp float PointSize gl_PointSize})
+0:143 Constant:
+0:143 1 (const uint)
+0:143 'ps' (temp highp float)
+0:148 Function Definition: pointSize2( (global void)
+0:148 Function Parameters:
+0:150 Sequence
+0:150 Sequence
+0:150 move second child to first child (temp highp float)
+0:150 'ps' (temp highp float)
+0:150 gl_PointSize: direct index for structure (in highp float PointSize)
+0:150 direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:150 'gl_in' (in 4-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:150 Constant:
+0:150 3 (const int)
+0:150 Constant:
+0:150 1 (const int)
+0:151 move second child to first child (temp highp float)
+0:151 gl_PointSize: direct index for structure (layout(stream=0 ) gl_PointSize highp float PointSize)
+0:151 'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position highp 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize highp float PointSize gl_PointSize})
+0:151 Constant:
+0:151 1 (const uint)
+0:151 'ps' (temp highp float)
+0:? Linker Objects
+0:? 'fromV' (in 4-element array of block{in mediump 3-component vector of float color})
+0:? 'nonBlockUnsized' (in 4-element array of mediump 4-component vector of float)
+0:? 'toF' (layout(stream=0 ) out block{layout(stream=0 ) out mediump 3-component vector of float color})
+0:? 'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out mediump 3-component vector of float color})
+0:? 'gl_in' (in 4-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:? 'ov4' (layout(stream=4 ) out mediump 4-component vector of float)
+0:? 'ouuaa6' (layout(stream=0 ) out block{layout(stream=0 ) out mediump 4-component vector of float a})
+0:? 'badv4' (layout(stream=0 ) out mediump 4-component vector of float)
+0:? 'bad2v4' (in 4-element array of mediump 4-component vector of float)
+0:? 'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) out highp int a})
+0:? 'outbi' (layout(stream=0 ) out block{layout(stream=0 ) out highp int a, layout(stream=0 ) out highp int b, layout(stream=0 ) out highp int c})
+0:? 'insn' (in 4-element array of block{in highp int a15})
+0:? 'anon@2' (layout(stream=0 ) out block{layout(stream=0 ) out mediump float f15})
+0:? 'anon@3' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform bool b15})
+0:? 'summ' (const highp int)
+0:? 2752 (const int)
+0:? 'explArray' (in 4-element array of mediump 4-component vector of float)
+0:? 'explArrayBad' (in 5-element array of mediump 4-component vector of float)
+0:? 'nonArrayed' (in mediump 4-component vector of float)
+0:? 'myColor1' (layout(stream=0 ) flat out mediump 3-component vector of float)
+0:? 'myColor2' (layout(stream=0 ) centroid out mediump 3-component vector of float)
+0:? 'centr' (centroid in 4-element array of mediump 3-component vector of float)
+0:? 'perSampleColor' (layout(stream=0 ) sample out mediump 4-component vector of float)
+0:? 'comp' (layout(location=7 component=2 ) in 4-element array of mediump float)
+
+
+Linked geometry stage:
+
+
+Shader version: 310
+Requested GL_EXT_geometry_shader
+Requested GL_EXT_shader_io_blocks
+Requested GL_OES_geometry_point_size
+invocations = 4
+max_vertices = 200
+input primitive = lines_adjacency
+output primitive = triangle_strip
+ERROR: node is still EOpNull!
+0:39 Function Definition: main( (global void)
+0:39 Function Parameters:
+0:41 Sequence
+0:41 EmitVertex (global void)
+0:42 EndPrimitive (global void)
+0:43 Constant:
+0:43 0.000000
+0:44 Constant:
+0:44 0.000000
+0:46 move second child to first child (temp mediump 3-component vector of float)
+0:46 color: direct index for structure (layout(stream=0 ) out mediump 3-component vector of float)
+0:46 'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out mediump 3-component vector of float color})
+0:46 Constant:
+0:46 0 (const uint)
+0:46 color: direct index for structure (in mediump 3-component vector of float)
+0:46 direct index (temp block{in mediump 3-component vector of float color})
+0:46 'fromV' (in 4-element array of block{in mediump 3-component vector of float color})
+0:46 Constant:
+0:46 0 (const int)
+0:46 Constant:
+0:46 0 (const int)
+0:47 move second child to first child (temp float)
+0:47 Constant:
+0:47 0.000000
+0:48 Constant:
+0:48 0.000000
+0:49 move second child to first child (temp highp 4-component vector of float)
+0:49 gl_Position: direct index for structure (layout(stream=0 ) gl_Position highp 4-component vector of float Position)
+0:49 'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position highp 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize highp float PointSize gl_PointSize})
+0:49 Constant:
+0:49 0 (const uint)
+0:49 gl_Position: direct index for structure (in highp 4-component vector of float Position)
+0:49 direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:49 'gl_in' (in 4-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:49 Constant:
+0:49 0 (const int)
+0:49 Constant:
+0:49 0 (const int)
+0:51 move second child to first child (temp highp int)
+0:51 'gl_PrimitiveID' (layout(stream=0 ) out highp int PrimitiveID)
+0:51 'gl_PrimitiveIDIn' (in highp int PrimitiveID)
+0:52 move second child to first child (temp highp int)
+0:52 'gl_Layer' (layout(stream=0 ) out highp int Layer)
+0:52 Constant:
+0:52 2 (const int)
+0:63 Function Definition: foo(i1; (global void)
+0:63 Function Parameters:
+0:63 'a' (in highp int)
+0:65 Sequence
+0:65 move second child to first child (temp mediump 4-component vector of float)
+0:65 a: direct index for structure (layout(stream=0 ) out mediump 4-component vector of float)
+0:65 'ouuaa6' (layout(stream=0 ) out block{layout(stream=0 ) out mediump 4-component vector of float a})
+0:65 Constant:
+0:65 0 (const int)
+0:65 Constant:
+0:65 1.000000
+0:65 1.000000
+0:65 1.000000
+0:65 1.000000
+0:114 Function Definition: fooe1( (global void)
+0:114 Function Parameters:
+0:116 Sequence
+0:116 'gl_ViewportIndex' (temp float)
+0:117 'gl_MaxViewports' (temp float)
+0:118 Constant:
+0:118 4 (const int)
+0:119 Sequence
+0:119 move second child to first child (temp highp int)
+0:119 'inv' (temp highp int)
+0:119 'gl_InvocationID' (in highp int InvocationID)
+0:134 Function Definition: notHere( (global void)
+0:134 Function Parameters:
+0:136 Sequence
+0:136 'gl_MaxGeometryVaryingComponents' (temp float)
+0:137 'gl_VerticesIn' (temp float)
+0:140 Function Definition: pointSize1( (global void)
+0:140 Function Parameters:
+0:142 Sequence
+0:142 Sequence
+0:142 move second child to first child (temp highp float)
+0:142 'ps' (temp highp float)
+0:142 gl_PointSize: direct index for structure (in highp float PointSize)
+0:142 direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:142 'gl_in' (in 4-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:142 Constant:
+0:142 3 (const int)
+0:142 Constant:
+0:142 1 (const int)
+0:143 move second child to first child (temp highp float)
+0:143 gl_PointSize: direct index for structure (layout(stream=0 ) gl_PointSize highp float PointSize)
+0:143 'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position highp 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize highp float PointSize gl_PointSize})
+0:143 Constant:
+0:143 1 (const uint)
+0:143 'ps' (temp highp float)
+0:148 Function Definition: pointSize2( (global void)
+0:148 Function Parameters:
+0:150 Sequence
+0:150 Sequence
+0:150 move second child to first child (temp highp float)
+0:150 'ps' (temp highp float)
+0:150 gl_PointSize: direct index for structure (in highp float PointSize)
+0:150 direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:150 'gl_in' (in 4-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:150 Constant:
+0:150 3 (const int)
+0:150 Constant:
+0:150 1 (const int)
+0:151 move second child to first child (temp highp float)
+0:151 gl_PointSize: direct index for structure (layout(stream=0 ) gl_PointSize highp float PointSize)
+0:151 'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position highp 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize highp float PointSize gl_PointSize})
+0:151 Constant:
+0:151 1 (const uint)
+0:151 'ps' (temp highp float)
+0:? Linker Objects
+0:? 'fromV' (in 4-element array of block{in mediump 3-component vector of float color})
+0:? 'nonBlockUnsized' (in 4-element array of mediump 4-component vector of float)
+0:? 'toF' (layout(stream=0 ) out block{layout(stream=0 ) out mediump 3-component vector of float color})
+0:? 'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out mediump 3-component vector of float color})
+0:? 'gl_in' (in 4-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:? 'ov4' (layout(stream=4 ) out mediump 4-component vector of float)
+0:? 'ouuaa6' (layout(stream=0 ) out block{layout(stream=0 ) out mediump 4-component vector of float a})
+0:? 'badv4' (layout(stream=0 ) out mediump 4-component vector of float)
+0:? 'bad2v4' (in 4-element array of mediump 4-component vector of float)
+0:? 'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) out highp int a})
+0:? 'outbi' (layout(stream=0 ) out block{layout(stream=0 ) out highp int a, layout(stream=0 ) out highp int b, layout(stream=0 ) out highp int c})
+0:? 'insn' (in 4-element array of block{in highp int a15})
+0:? 'anon@2' (layout(stream=0 ) out block{layout(stream=0 ) out mediump float f15})
+0:? 'anon@3' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform bool b15})
+0:? 'summ' (const highp int)
+0:? 2752 (const int)
+0:? 'explArray' (in 4-element array of mediump 4-component vector of float)
+0:? 'explArrayBad' (in 5-element array of mediump 4-component vector of float)
+0:? 'nonArrayed' (in mediump 4-component vector of float)
+0:? 'myColor1' (layout(stream=0 ) flat out mediump 3-component vector of float)
+0:? 'myColor2' (layout(stream=0 ) centroid out mediump 3-component vector of float)
+0:? 'centr' (centroid in 4-element array of mediump 3-component vector of float)
+0:? 'perSampleColor' (layout(stream=0 ) sample out mediump 4-component vector of float)
+0:? 'comp' (layout(location=7 component=2 ) in 4-element array of mediump float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/310.tesc.out b/chromium/third_party/glslang/src/Test/baseResults/310.tesc.out
new file mode 100644
index 00000000000..24e3d209594
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/310.tesc.out
@@ -0,0 +1,709 @@
+310.tesc
+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:8: 'quads' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)
+ERROR: 0:9: 'ccw' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)
+ERROR: 0:10: 'fractional_even_spacing' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)
+ERROR: 0:12: 'patch' : can only use on output in tessellation-control shader
+ERROR: 0:26: 'gl_PointSize' : required extension not requested: Possible extensions include:
+GL_EXT_tessellation_point_size
+GL_OES_tessellation_point_size
+ERROR: 0:27: 'gl_ClipDistance' : no such field in structure
+ERROR: 0:27: 'expression' : left of '[' is not of type array, matrix, or vector
+ERROR: 0:34: 'gl_PointSize' : required extension not requested: Possible extensions include:
+GL_EXT_tessellation_point_size
+GL_OES_tessellation_point_size
+ERROR: 0:35: 'gl_ClipDistance' : no such field in structure
+ERROR: 0:35: 'expression' : left of '[' is not of type array, matrix, or vector
+ERROR: 0:35: 'assign' : l-value required (can't modify a const)
+ERROR: 0:41: '' : tessellation control barrier() cannot be placed within flow control
+ERROR: 0:43: '' : tessellation control barrier() cannot be placed within flow control
+ERROR: 0:48: '' : tessellation control barrier() cannot be placed within flow control
+ERROR: 0:53: '' : tessellation control barrier() cannot be placed within flow control
+ERROR: 0:56: '' : tessellation control barrier() cannot be placed within flow control
+ERROR: 0:63: '' : tessellation control barrier() cannot be placed after a return from main()
+ERROR: 0:66: 'vertices' : can only apply to 'out'
+ERROR: 0:67: 'vertices' : cannot change previously set layout value
+ERROR: 0:71: '[' : array index out of range '4'
+ERROR: 0:73: '' : tessellation control barrier() must be in main()
+ERROR: 0:76: 'in' : type must be an array: ina
+ERROR: 0:78: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized
+ERROR: 0:80: '' : array size required
+ERROR: 0:86: 'location' : overlapping use of location 4
+ERROR: 0:90: 'location' : overlapping use of location 4
+ERROR: 0:94: 'precise' : Reserved word.
+ERROR: 0:94: 'precise' : not supported for this version or the enabled extensions
+ERROR: 0:95: 'fma' : required extension not requested: Possible extensions include:
+GL_EXT_gpu_shader5
+GL_OES_gpu_shader5
+ERROR: 0:104: 'sample' : Reserved word.
+ERROR: 0:106: 'vertices' : can only apply to a standalone qualifier
+ERROR: 0:107: 'vertices' : inconsistent output number of vertices for array size of misSized
+ERROR: 0:133: 'gl_BoundingBoxOES' : required extension not requested: Possible extensions include:
+GL_EXT_primitive_bounding_box
+GL_OES_primitive_bounding_box
+ERROR: 0:142: '[' : array index out of range '2'
+ERROR: 0:145: '' : array size required
+ERROR: 0:161: '[]' : tessellation-control per-vertex output l-value must be indexed with gl_InvocationID
+ERROR: 0:162: '[]' : tessellation-control per-vertex output l-value must be indexed with gl_InvocationID
+ERROR: 0:165: '[]' : tessellation-control per-vertex output l-value must be indexed with gl_InvocationID
+ERROR: 38 compilation errors. No code generated.
+
+
+Shader version: 310
+Requested GL_ARB_separate_shader_objects
+Requested GL_OES_gpu_shader5
+Requested GL_OES_primitive_bounding_box
+Requested GL_OES_shader_io_blocks
+Requested GL_OES_tessellation_point_size
+Requested GL_OES_tessellation_shader
+vertices = 4
+ERROR: node is still EOpNull!
+0:15 Function Definition: main( (global void)
+0:15 Function Parameters:
+0:17 Sequence
+0:17 Barrier (global void)
+0:19 Sequence
+0:19 move second child to first child (temp highp int)
+0:19 'a' (temp highp int)
+0:19 Constant:
+0:19 5392 (const int)
+0:25 Sequence
+0:25 move second child to first child (temp highp 4-component vector of float)
+0:25 'p' (temp highp 4-component vector of float)
+0:25 gl_Position: direct index for structure (in highp 4-component vector of float Position)
+0:25 direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:25 'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:25 Constant:
+0:25 1 (const int)
+0:25 Constant:
+0:25 0 (const int)
+0:26 Sequence
+0:26 move second child to first child (temp highp float)
+0:26 'ps' (temp highp float)
+0:26 gl_PointSize: direct index for structure (in highp float PointSize)
+0:26 direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:26 'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:26 Constant:
+0:26 1 (const int)
+0:26 Constant:
+0:26 1 (const int)
+0:27 Sequence
+0:27 move second child to first child (temp highp float)
+0:27 'cd' (temp highp float)
+0:27 Constant:
+0:27 0.000000
+0:29 Sequence
+0:29 move second child to first child (temp highp int)
+0:29 'pvi' (temp highp int)
+0:29 'gl_PatchVerticesIn' (in highp int PatchVertices)
+0:30 Sequence
+0:30 move second child to first child (temp highp int)
+0:30 'pid' (temp highp int)
+0:30 'gl_PrimitiveID' (in highp int PrimitiveID)
+0:31 Sequence
+0:31 move second child to first child (temp highp int)
+0:31 'iid' (temp highp int)
+0:31 'gl_InvocationID' (in highp int InvocationID)
+0:33 move second child to first child (temp highp 4-component vector of float)
+0:33 gl_Position: direct index for structure (out highp 4-component vector of float Position)
+0:33 indirect index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:33 'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:33 'gl_InvocationID' (in highp int InvocationID)
+0:33 Constant:
+0:33 0 (const int)
+0:33 'p' (temp highp 4-component vector of float)
+0:34 move second child to first child (temp highp float)
+0:34 gl_PointSize: direct index for structure (out highp float PointSize)
+0:34 indirect index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:34 'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:34 'gl_InvocationID' (in highp int InvocationID)
+0:34 Constant:
+0:34 1 (const int)
+0:34 'ps' (temp highp float)
+0:35 move second child to first child (temp highp float)
+0:35 Constant:
+0:35 0.000000
+0:35 'cd' (temp highp float)
+0:37 move second child to first child (temp highp float)
+0:37 direct index (patch temp highp float TessLevelOuter)
+0:37 'gl_TessLevelOuter' (patch out 4-element array of highp float TessLevelOuter)
+0:37 Constant:
+0:37 3 (const int)
+0:37 Constant:
+0:37 3.200000
+0:38 move second child to first child (temp highp float)
+0:38 direct index (patch temp highp float TessLevelInner)
+0:38 'gl_TessLevelInner' (patch out 2-element array of highp float TessLevelInner)
+0:38 Constant:
+0:38 1 (const int)
+0:38 Constant:
+0:38 1.300000
+0:40 Test condition and select (temp void)
+0:40 Condition
+0:40 Compare Greater Than (temp bool)
+0:40 'a' (temp highp int)
+0:40 Constant:
+0:40 10 (const int)
+0:40 true case
+0:41 Barrier (global void)
+0:40 false case
+0:43 Barrier (global void)
+0:45 Barrier (global void)
+0:49 Loop with condition not tested first
+0:49 Loop Condition
+0:49 Compare Greater Than (temp bool)
+0:49 'a' (temp highp int)
+0:49 Constant:
+0:49 10 (const int)
+0:49 Loop Body
+0:48 Sequence
+0:48 Barrier (global void)
+0:51 switch
+0:51 condition
+0:51 'a' (temp highp int)
+0:51 body
+0:51 Sequence
+0:52 default:
+0:? Sequence
+0:53 Barrier (global void)
+0:54 Branch: Break
+0:56 Test condition and select (temp highp int)
+0:56 Condition
+0:56 Compare Less Than (temp bool)
+0:56 'a' (temp highp int)
+0:56 Constant:
+0:56 12 (const int)
+0:56 true case
+0:56 'a' (temp highp int)
+0:56 false case
+0:56 Comma (temp highp int)
+0:56 Barrier (global void)
+0:56 'a' (temp highp int)
+0:58 Sequence
+0:58 Barrier (global void)
+0:61 Branch: Return
+0:63 Barrier (global void)
+0:69 Function Definition: foo( (global void)
+0:69 Function Parameters:
+0:71 Sequence
+0:71 gl_Position: direct index for structure (out highp 4-component vector of float Position)
+0:71 direct index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:71 'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:71 Constant:
+0:71 4 (const int)
+0:71 Constant:
+0:71 0 (const int)
+0:73 Barrier (global void)
+0:92 Function Definition: foop( (global void)
+0:92 Function Parameters:
+0:? Sequence
+0:95 move second child to first child (temp highp float)
+0:95 'd' (noContraction temp highp float)
+0:95 fma (global highp float)
+0:95 'd' (noContraction temp highp float)
+0:95 'd' (noContraction temp highp float)
+0:95 'd' (noContraction temp highp float)
+0:112 Function Definition: pointSize2( (global void)
+0:112 Function Parameters:
+0:114 Sequence
+0:114 Sequence
+0:114 move second child to first child (temp highp float)
+0:114 'ps' (temp highp float)
+0:114 gl_PointSize: direct index for structure (in highp float PointSize)
+0:114 direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:114 'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:114 Constant:
+0:114 1 (const int)
+0:114 Constant:
+0:114 1 (const int)
+0:115 move second child to first child (temp highp float)
+0:115 gl_PointSize: direct index for structure (out highp float PointSize)
+0:115 indirect index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:115 'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:115 'gl_InvocationID' (in highp int InvocationID)
+0:115 Constant:
+0:115 1 (const int)
+0:115 'ps' (temp highp float)
+0:122 Function Definition: goodfoop( (global void)
+0:122 Function Parameters:
+0:? Sequence
+0:126 multiply second child into first child (temp highp 3-component vector of float)
+0:126 'pv3' (noContraction temp highp 3-component vector of float)
+0:126 'pv3' (noContraction temp highp 3-component vector of float)
+0:127 move second child to first child (temp highp 3-component vector of float)
+0:127 'pv3' (noContraction temp highp 3-component vector of float)
+0:127 fma (global highp 3-component vector of float)
+0:127 'pv3' (noContraction temp highp 3-component vector of float)
+0:127 'pv3' (noContraction temp highp 3-component vector of float)
+0:127 'pv3' (noContraction temp highp 3-component vector of float)
+0:128 move second child to first child (temp highp float)
+0:128 'd' (noContraction temp highp float)
+0:128 fma (global highp float)
+0:128 'd' (noContraction temp highp float)
+0:128 'd' (noContraction temp highp float)
+0:128 'd' (noContraction temp highp float)
+0:131 Function Definition: bbBad( (global void)
+0:131 Function Parameters:
+0:133 Sequence
+0:133 'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox)
+0:138 Function Definition: bb( (global void)
+0:138 Function Parameters:
+0:140 Sequence
+0:140 move second child to first child (temp highp 4-component vector of float)
+0:140 direct index (patch temp highp 4-component vector of float BoundingBox)
+0:140 'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox)
+0:140 Constant:
+0:140 0 (const int)
+0:140 Constant:
+0:140 0.000000
+0:140 0.000000
+0:140 0.000000
+0:140 0.000000
+0:141 move second child to first child (temp highp 4-component vector of float)
+0:141 direct index (patch temp highp 4-component vector of float BoundingBox)
+0:141 'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox)
+0:141 Constant:
+0:141 1 (const int)
+0:141 Constant:
+0:141 1.000000
+0:141 1.000000
+0:141 1.000000
+0:141 1.000000
+0:142 move second child to first child (temp highp 4-component vector of float)
+0:142 direct index (patch temp highp 4-component vector of float BoundingBox)
+0:142 'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox)
+0:142 Constant:
+0:142 2 (const int)
+0:142 Constant:
+0:142 2.000000
+0:142 2.000000
+0:142 2.000000
+0:142 2.000000
+0:153 Function Definition: outputtingOutparam(i1; (global void)
+0:153 Function Parameters:
+0:153 'a' (out highp int)
+0:155 Sequence
+0:155 move second child to first child (temp highp int)
+0:155 'a' (out highp int)
+0:155 Constant:
+0:155 2 (const int)
+0:158 Function Definition: outputting( (global void)
+0:158 Function Parameters:
+0:160 Sequence
+0:160 move second child to first child (temp highp int)
+0:160 indirect index (temp highp int)
+0:160 'outa' (out 4-element array of highp int)
+0:160 'gl_InvocationID' (in highp int InvocationID)
+0:160 Constant:
+0:160 2 (const int)
+0:161 move second child to first child (temp highp int)
+0:161 direct index (temp highp int)
+0:161 'outa' (out 4-element array of highp int)
+0:161 Constant:
+0:161 1 (const int)
+0:161 Constant:
+0:161 2 (const int)
+0:162 move second child to first child (temp highp 4-component vector of float)
+0:162 gl_Position: direct index for structure (out highp 4-component vector of float Position)
+0:162 direct index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:162 'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:162 Constant:
+0:162 0 (const int)
+0:162 Constant:
+0:162 0 (const int)
+0:162 Constant:
+0:162 1.000000
+0:162 1.000000
+0:162 1.000000
+0:162 1.000000
+0:163 direct index (temp highp int)
+0:163 'outa' (out 4-element array of highp int)
+0:163 Constant:
+0:163 1 (const int)
+0:164 direct index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:164 'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:164 Constant:
+0:164 0 (const int)
+0:165 Function Call: outputtingOutparam(i1; (global void)
+0:165 direct index (temp highp int)
+0:165 'outa' (out 4-element array of highp int)
+0:165 Constant:
+0:165 0 (const int)
+0:166 Function Call: outputtingOutparam(i1; (global void)
+0:166 indirect index (temp highp int)
+0:166 'outa' (out 4-element array of highp int)
+0:166 'gl_InvocationID' (in highp int InvocationID)
+0:167 move second child to first child (temp highp float)
+0:167 f: direct index for structure (out highp float)
+0:167 direct index (patch temp block{out highp float f})
+0:167 'patchIName' (patch out 4-element array of block{out highp float f})
+0:167 Constant:
+0:167 1 (const int)
+0:167 Constant:
+0:167 0 (const int)
+0:167 Constant:
+0:167 3.140000
+0:168 move second child to first child (temp highp int)
+0:168 indirect index (temp highp int)
+0:168 'outa' (out 4-element array of highp int)
+0:168 'gl_InvocationID' (in highp int InvocationID)
+0:168 Constant:
+0:168 2 (const int)
+0:? Linker Objects
+0:? 'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:? 'outa' (out 4-element array of highp int)
+0:? 'patchIn' (patch in highp 4-component vector of float)
+0:? 'patchOut' (patch out highp 4-component vector of float)
+0:? 'ina' (in highp 2-component vector of float)
+0:? 'inb' (in 32-element array of highp 2-component vector of float)
+0:? 'inc' (in 32-element array of highp 2-component vector of float)
+0:? 'ind' (in 32-element array of highp 2-component vector of float)
+0:? 'implA' (patch out implicitly-sized array of highp float)
+0:? 'ivla' (layout(location=3 ) in 32-element array of highp 4-component vector of float)
+0:? 'ivlb' (layout(location=4 ) in 32-element array of highp 4-component vector of float)
+0:? 'ivlc' (layout(location=4 ) in 32-element array of highp 4-component vector of float)
+0:? 'ovla' (layout(location=3 ) out 4-element array of highp 4-component vector of float)
+0:? 'ovlb' (layout(location=4 ) out 4-element array of highp 4-component vector of float)
+0:? 'ovlc' (layout(location=4 ) out 4-element array of highp 4-component vector of float)
+0:? 'pinbi' (patch out block{out highp int a})
+0:? 'myColor2' (centroid out 4-element array of highp 3-component vector of float)
+0:? 'centr' (centroid in 32-element array of highp 3-component vector of float)
+0:? 'perSampleColor' (sample out 4-element array of highp 4-component vector of float)
+0:? 'badlay' (out 4-element array of highp float)
+0:? 'misSized' (out 5-element array of highp float)
+0:? 'okaySize' (out 4-element array of highp float)
+0:? 'pv3' (noContraction temp highp 3-component vector of float)
+0:? 'badpatchIName' (patch out implicitly-sized array of block{out highp float f})
+0:? 'patchIName' (patch out 4-element array of block{out highp float f})
+
+
+Linked tessellation control stage:
+
+
+Shader version: 310
+Requested GL_ARB_separate_shader_objects
+Requested GL_OES_gpu_shader5
+Requested GL_OES_primitive_bounding_box
+Requested GL_OES_shader_io_blocks
+Requested GL_OES_tessellation_point_size
+Requested GL_OES_tessellation_shader
+vertices = 4
+ERROR: node is still EOpNull!
+0:15 Function Definition: main( (global void)
+0:15 Function Parameters:
+0:17 Sequence
+0:17 Barrier (global void)
+0:19 Sequence
+0:19 move second child to first child (temp highp int)
+0:19 'a' (temp highp int)
+0:19 Constant:
+0:19 5392 (const int)
+0:25 Sequence
+0:25 move second child to first child (temp highp 4-component vector of float)
+0:25 'p' (temp highp 4-component vector of float)
+0:25 gl_Position: direct index for structure (in highp 4-component vector of float Position)
+0:25 direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:25 'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:25 Constant:
+0:25 1 (const int)
+0:25 Constant:
+0:25 0 (const int)
+0:26 Sequence
+0:26 move second child to first child (temp highp float)
+0:26 'ps' (temp highp float)
+0:26 gl_PointSize: direct index for structure (in highp float PointSize)
+0:26 direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:26 'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:26 Constant:
+0:26 1 (const int)
+0:26 Constant:
+0:26 1 (const int)
+0:27 Sequence
+0:27 move second child to first child (temp highp float)
+0:27 'cd' (temp highp float)
+0:27 Constant:
+0:27 0.000000
+0:29 Sequence
+0:29 move second child to first child (temp highp int)
+0:29 'pvi' (temp highp int)
+0:29 'gl_PatchVerticesIn' (in highp int PatchVertices)
+0:30 Sequence
+0:30 move second child to first child (temp highp int)
+0:30 'pid' (temp highp int)
+0:30 'gl_PrimitiveID' (in highp int PrimitiveID)
+0:31 Sequence
+0:31 move second child to first child (temp highp int)
+0:31 'iid' (temp highp int)
+0:31 'gl_InvocationID' (in highp int InvocationID)
+0:33 move second child to first child (temp highp 4-component vector of float)
+0:33 gl_Position: direct index for structure (out highp 4-component vector of float Position)
+0:33 indirect index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:33 'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:33 'gl_InvocationID' (in highp int InvocationID)
+0:33 Constant:
+0:33 0 (const int)
+0:33 'p' (temp highp 4-component vector of float)
+0:34 move second child to first child (temp highp float)
+0:34 gl_PointSize: direct index for structure (out highp float PointSize)
+0:34 indirect index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:34 'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:34 'gl_InvocationID' (in highp int InvocationID)
+0:34 Constant:
+0:34 1 (const int)
+0:34 'ps' (temp highp float)
+0:35 move second child to first child (temp highp float)
+0:35 Constant:
+0:35 0.000000
+0:35 'cd' (temp highp float)
+0:37 move second child to first child (temp highp float)
+0:37 direct index (patch temp highp float TessLevelOuter)
+0:37 'gl_TessLevelOuter' (patch out 4-element array of highp float TessLevelOuter)
+0:37 Constant:
+0:37 3 (const int)
+0:37 Constant:
+0:37 3.200000
+0:38 move second child to first child (temp highp float)
+0:38 direct index (patch temp highp float TessLevelInner)
+0:38 'gl_TessLevelInner' (patch out 2-element array of highp float TessLevelInner)
+0:38 Constant:
+0:38 1 (const int)
+0:38 Constant:
+0:38 1.300000
+0:40 Test condition and select (temp void)
+0:40 Condition
+0:40 Compare Greater Than (temp bool)
+0:40 'a' (temp highp int)
+0:40 Constant:
+0:40 10 (const int)
+0:40 true case
+0:41 Barrier (global void)
+0:40 false case
+0:43 Barrier (global void)
+0:45 Barrier (global void)
+0:49 Loop with condition not tested first
+0:49 Loop Condition
+0:49 Compare Greater Than (temp bool)
+0:49 'a' (temp highp int)
+0:49 Constant:
+0:49 10 (const int)
+0:49 Loop Body
+0:48 Sequence
+0:48 Barrier (global void)
+0:51 switch
+0:51 condition
+0:51 'a' (temp highp int)
+0:51 body
+0:51 Sequence
+0:52 default:
+0:? Sequence
+0:53 Barrier (global void)
+0:54 Branch: Break
+0:56 Test condition and select (temp highp int)
+0:56 Condition
+0:56 Compare Less Than (temp bool)
+0:56 'a' (temp highp int)
+0:56 Constant:
+0:56 12 (const int)
+0:56 true case
+0:56 'a' (temp highp int)
+0:56 false case
+0:56 Comma (temp highp int)
+0:56 Barrier (global void)
+0:56 'a' (temp highp int)
+0:58 Sequence
+0:58 Barrier (global void)
+0:61 Branch: Return
+0:63 Barrier (global void)
+0:69 Function Definition: foo( (global void)
+0:69 Function Parameters:
+0:71 Sequence
+0:71 gl_Position: direct index for structure (out highp 4-component vector of float Position)
+0:71 direct index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:71 'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:71 Constant:
+0:71 4 (const int)
+0:71 Constant:
+0:71 0 (const int)
+0:73 Barrier (global void)
+0:92 Function Definition: foop( (global void)
+0:92 Function Parameters:
+0:? Sequence
+0:95 move second child to first child (temp highp float)
+0:95 'd' (noContraction temp highp float)
+0:95 fma (global highp float)
+0:95 'd' (noContraction temp highp float)
+0:95 'd' (noContraction temp highp float)
+0:95 'd' (noContraction temp highp float)
+0:112 Function Definition: pointSize2( (global void)
+0:112 Function Parameters:
+0:114 Sequence
+0:114 Sequence
+0:114 move second child to first child (temp highp float)
+0:114 'ps' (temp highp float)
+0:114 gl_PointSize: direct index for structure (in highp float PointSize)
+0:114 direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:114 'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:114 Constant:
+0:114 1 (const int)
+0:114 Constant:
+0:114 1 (const int)
+0:115 move second child to first child (temp highp float)
+0:115 gl_PointSize: direct index for structure (out highp float PointSize)
+0:115 indirect index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:115 'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:115 'gl_InvocationID' (in highp int InvocationID)
+0:115 Constant:
+0:115 1 (const int)
+0:115 'ps' (temp highp float)
+0:122 Function Definition: goodfoop( (global void)
+0:122 Function Parameters:
+0:? Sequence
+0:126 multiply second child into first child (temp highp 3-component vector of float)
+0:126 'pv3' (noContraction temp highp 3-component vector of float)
+0:126 'pv3' (noContraction temp highp 3-component vector of float)
+0:127 move second child to first child (temp highp 3-component vector of float)
+0:127 'pv3' (noContraction temp highp 3-component vector of float)
+0:127 fma (global highp 3-component vector of float)
+0:127 'pv3' (noContraction temp highp 3-component vector of float)
+0:127 'pv3' (noContraction temp highp 3-component vector of float)
+0:127 'pv3' (noContraction temp highp 3-component vector of float)
+0:128 move second child to first child (temp highp float)
+0:128 'd' (noContraction temp highp float)
+0:128 fma (global highp float)
+0:128 'd' (noContraction temp highp float)
+0:128 'd' (noContraction temp highp float)
+0:128 'd' (noContraction temp highp float)
+0:131 Function Definition: bbBad( (global void)
+0:131 Function Parameters:
+0:133 Sequence
+0:133 'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox)
+0:138 Function Definition: bb( (global void)
+0:138 Function Parameters:
+0:140 Sequence
+0:140 move second child to first child (temp highp 4-component vector of float)
+0:140 direct index (patch temp highp 4-component vector of float BoundingBox)
+0:140 'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox)
+0:140 Constant:
+0:140 0 (const int)
+0:140 Constant:
+0:140 0.000000
+0:140 0.000000
+0:140 0.000000
+0:140 0.000000
+0:141 move second child to first child (temp highp 4-component vector of float)
+0:141 direct index (patch temp highp 4-component vector of float BoundingBox)
+0:141 'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox)
+0:141 Constant:
+0:141 1 (const int)
+0:141 Constant:
+0:141 1.000000
+0:141 1.000000
+0:141 1.000000
+0:141 1.000000
+0:142 move second child to first child (temp highp 4-component vector of float)
+0:142 direct index (patch temp highp 4-component vector of float BoundingBox)
+0:142 'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox)
+0:142 Constant:
+0:142 2 (const int)
+0:142 Constant:
+0:142 2.000000
+0:142 2.000000
+0:142 2.000000
+0:142 2.000000
+0:153 Function Definition: outputtingOutparam(i1; (global void)
+0:153 Function Parameters:
+0:153 'a' (out highp int)
+0:155 Sequence
+0:155 move second child to first child (temp highp int)
+0:155 'a' (out highp int)
+0:155 Constant:
+0:155 2 (const int)
+0:158 Function Definition: outputting( (global void)
+0:158 Function Parameters:
+0:160 Sequence
+0:160 move second child to first child (temp highp int)
+0:160 indirect index (temp highp int)
+0:160 'outa' (out 4-element array of highp int)
+0:160 'gl_InvocationID' (in highp int InvocationID)
+0:160 Constant:
+0:160 2 (const int)
+0:161 move second child to first child (temp highp int)
+0:161 direct index (temp highp int)
+0:161 'outa' (out 4-element array of highp int)
+0:161 Constant:
+0:161 1 (const int)
+0:161 Constant:
+0:161 2 (const int)
+0:162 move second child to first child (temp highp 4-component vector of float)
+0:162 gl_Position: direct index for structure (out highp 4-component vector of float Position)
+0:162 direct index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:162 'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:162 Constant:
+0:162 0 (const int)
+0:162 Constant:
+0:162 0 (const int)
+0:162 Constant:
+0:162 1.000000
+0:162 1.000000
+0:162 1.000000
+0:162 1.000000
+0:163 direct index (temp highp int)
+0:163 'outa' (out 4-element array of highp int)
+0:163 Constant:
+0:163 1 (const int)
+0:164 direct index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:164 'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:164 Constant:
+0:164 0 (const int)
+0:165 Function Call: outputtingOutparam(i1; (global void)
+0:165 direct index (temp highp int)
+0:165 'outa' (out 4-element array of highp int)
+0:165 Constant:
+0:165 0 (const int)
+0:166 Function Call: outputtingOutparam(i1; (global void)
+0:166 indirect index (temp highp int)
+0:166 'outa' (out 4-element array of highp int)
+0:166 'gl_InvocationID' (in highp int InvocationID)
+0:167 move second child to first child (temp highp float)
+0:167 f: direct index for structure (out highp float)
+0:167 direct index (patch temp block{out highp float f})
+0:167 'patchIName' (patch out 4-element array of block{out highp float f})
+0:167 Constant:
+0:167 1 (const int)
+0:167 Constant:
+0:167 0 (const int)
+0:167 Constant:
+0:167 3.140000
+0:168 move second child to first child (temp highp int)
+0:168 indirect index (temp highp int)
+0:168 'outa' (out 4-element array of highp int)
+0:168 'gl_InvocationID' (in highp int InvocationID)
+0:168 Constant:
+0:168 2 (const int)
+0:? Linker Objects
+0:? 'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:? 'outa' (out 4-element array of highp int)
+0:? 'patchIn' (patch in highp 4-component vector of float)
+0:? 'patchOut' (patch out highp 4-component vector of float)
+0:? 'ina' (in highp 2-component vector of float)
+0:? 'inb' (in 32-element array of highp 2-component vector of float)
+0:? 'inc' (in 32-element array of highp 2-component vector of float)
+0:? 'ind' (in 32-element array of highp 2-component vector of float)
+0:? 'implA' (patch out 1-element array of highp float)
+0:? 'ivla' (layout(location=3 ) in 32-element array of highp 4-component vector of float)
+0:? 'ivlb' (layout(location=4 ) in 32-element array of highp 4-component vector of float)
+0:? 'ivlc' (layout(location=4 ) in 32-element array of highp 4-component vector of float)
+0:? 'ovla' (layout(location=3 ) out 4-element array of highp 4-component vector of float)
+0:? 'ovlb' (layout(location=4 ) out 4-element array of highp 4-component vector of float)
+0:? 'ovlc' (layout(location=4 ) out 4-element array of highp 4-component vector of float)
+0:? 'pinbi' (patch out block{out highp int a})
+0:? 'myColor2' (centroid out 4-element array of highp 3-component vector of float)
+0:? 'centr' (centroid in 32-element array of highp 3-component vector of float)
+0:? 'perSampleColor' (sample out 4-element array of highp 4-component vector of float)
+0:? 'badlay' (out 4-element array of highp float)
+0:? 'misSized' (out 5-element array of highp float)
+0:? 'okaySize' (out 4-element array of highp float)
+0:? 'pv3' (noContraction temp highp 3-component vector of float)
+0:? 'badpatchIName' (patch out 1-element array of block{out highp float f})
+0:? 'patchIName' (patch out 4-element array of block{out highp float f})
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/310.tese.out b/chromium/third_party/glslang/src/Test/baseResults/310.tese.out
new file mode 100644
index 00000000000..aacfedbd6ef
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/310.tese.out
@@ -0,0 +1,315 @@
+310.tese
+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:7: 'vertices' : there is no such layout identifier for this stage taking an assigned value
+ERROR: 0:9: 'triangles' : cannot change previously set input primitive
+ERROR: 0:10: 'isolines' : cannot change previously set input primitive
+ERROR: 0:12: 'ccw' : cannot change previously set vertex order
+ERROR: 0:16: 'equal_spacing' : cannot change previously set vertex spacing
+ERROR: 0:17: 'fractional_even_spacing' : cannot change previously set vertex spacing
+ERROR: 0:22: 'patch' : can only use on input in tessellation-evaluation shader
+ERROR: 0:26: 'barrier' : no matching overloaded function found
+ERROR: 0:37: 'gl_PointSize' : required extension not requested: Possible extensions include:
+GL_EXT_tessellation_point_size
+GL_OES_tessellation_point_size
+ERROR: 0:38: 'gl_ClipDistance' : no such field in structure
+ERROR: 0:38: 'expression' : left of '[' is not of type array, matrix, or vector
+ERROR: 0:47: 'gl_PointSize' : required extension not requested: Possible extensions include:
+GL_EXT_tessellation_point_size
+GL_OES_tessellation_point_size
+ERROR: 0:48: 'gl_ClipDistance' : undeclared identifier
+ERROR: 0:48: 'gl_ClipDistance' : left of '[' is not of type array, matrix, or vector
+ERROR: 0:48: 'assign' : l-value required (can't modify a const)
+ERROR: 0:51: 'patch' : cannot use interpolation qualifiers with patch
+ERROR: 0:52: 'patch' : cannot use interpolation qualifiers with patch
+ERROR: 0:53: 'noperspective' : Reserved word.
+ERROR: 0:53: 'noperspective' : not supported with this profile: es
+ERROR: 0:53: 'patch' : cannot use interpolation qualifiers with patch
+ERROR: 0:54: 'sample' : Reserved word.
+ERROR: 0:54: '' : can only have one auxiliary qualifier (centroid, patch, and sample)
+ERROR: 0:58: 'gl_PerVertex' : block already declared with size, can't redeclare as implicitly-sized
+ERROR: 0:63: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use
+ERROR: 0:68: 'quads' : cannot apply to 'out'
+ERROR: 0:68: 'cw' : can only apply to 'in'
+ERROR: 0:69: 'triangles' : cannot apply to 'out'
+ERROR: 0:70: 'isolines' : cannot apply to 'out'
+ERROR: 0:71: 'cw' : can only apply to 'in'
+ERROR: 0:72: 'fractional_odd_spacing' : can only apply to 'in'
+ERROR: 0:73: 'equal_spacing' : can only apply to 'in'
+ERROR: 0:74: 'fractional_even_spacing' : can only apply to 'in'
+ERROR: 0:75: 'point_mode' : can only apply to 'in'
+ERROR: 0:77: 'in' : type must be an array: ina
+ERROR: 0:79: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized
+ERROR: 0:82: 'in' : type must be an array: bla
+ERROR: 0:90: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized
+ERROR: 0:100: 'location' : overlapping use of location 24
+ERROR: 0:103: 'location' : overlapping use of location 24
+ERROR: 0:105: 'gl_TessLevelOuter' : identifiers starting with "gl_" are reserved
+ERROR: 0:113: 'sample' : Reserved word.
+ERROR: 0:119: 'gl_PointSize' : no such field in structure
+ERROR: 0:119: '=' : cannot convert from 'temp block{in highp 4-component vector of float Position gl_Position}' to 'temp highp float'
+ERROR: 0:127: 'gl_BoundingBoxOES' : undeclared identifier
+ERROR: 44 compilation errors. No code generated.
+
+
+Shader version: 310
+Requested GL_ARB_separate_shader_objects
+Requested GL_EXT_primitive_bounding_box
+Requested GL_EXT_shader_io_blocks
+Requested GL_EXT_tessellation_shader
+Requested GL_OES_shader_io_blocks
+Requested GL_OES_tessellation_point_size
+Requested GL_OES_tessellation_shader
+input primitive = quads
+vertex spacing = fractional_odd_spacing
+triangle order = cw
+using point mode
+ERROR: node is still EOpNull!
+0:24 Function Definition: main( (global void)
+0:24 Function Parameters:
+0:26 Sequence
+0:26 Constant:
+0:26 0.000000
+0:28 Sequence
+0:28 move second child to first child (temp highp int)
+0:28 'a' (temp highp int)
+0:28 Constant:
+0:28 1512 (const int)
+0:36 Sequence
+0:36 move second child to first child (temp highp 4-component vector of float)
+0:36 'p' (temp highp 4-component vector of float)
+0:36 gl_Position: direct index for structure (in highp 4-component vector of float Position)
+0:36 direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:36 'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:36 Constant:
+0:36 1 (const int)
+0:36 Constant:
+0:36 0 (const int)
+0:37 Sequence
+0:37 move second child to first child (temp highp float)
+0:37 'ps' (temp highp float)
+0:37 gl_PointSize: direct index for structure (in highp float PointSize)
+0:37 direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:37 'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:37 Constant:
+0:37 1 (const int)
+0:37 Constant:
+0:37 1 (const int)
+0:38 Sequence
+0:38 move second child to first child (temp highp float)
+0:38 'cd' (temp highp float)
+0:38 Constant:
+0:38 0.000000
+0:40 Sequence
+0:40 move second child to first child (temp highp int)
+0:40 'pvi' (temp highp int)
+0:40 'gl_PatchVerticesIn' (in highp int PatchVertices)
+0:41 Sequence
+0:41 move second child to first child (temp highp int)
+0:41 'pid' (temp highp int)
+0:41 'gl_PrimitiveID' (in highp int PrimitiveID)
+0:42 Sequence
+0:42 move second child to first child (temp highp 3-component vector of float)
+0:42 'tc' (temp highp 3-component vector of float)
+0:42 'gl_TessCoord' (in highp 3-component vector of float TessCoord)
+0:43 Sequence
+0:43 move second child to first child (temp highp float)
+0:43 'tlo' (temp highp float)
+0:43 direct index (patch temp highp float TessLevelOuter)
+0:43 'gl_TessLevelOuter' (patch in 4-element array of highp float TessLevelOuter)
+0:43 Constant:
+0:43 3 (const int)
+0:44 Sequence
+0:44 move second child to first child (temp highp float)
+0:44 'tli' (temp highp float)
+0:44 direct index (patch temp highp float TessLevelInner)
+0:44 'gl_TessLevelInner' (patch in 2-element array of highp float TessLevelInner)
+0:44 Constant:
+0:44 1 (const int)
+0:46 move second child to first child (temp highp 4-component vector of float)
+0:46 gl_Position: direct index for structure (gl_Position highp 4-component vector of float Position)
+0:46 'anon@1' (out block{gl_Position highp 4-component vector of float Position gl_Position, gl_PointSize highp float PointSize gl_PointSize})
+0:46 Constant:
+0:46 0 (const uint)
+0:46 'p' (temp highp 4-component vector of float)
+0:47 move second child to first child (temp highp float)
+0:47 gl_PointSize: direct index for structure (gl_PointSize highp float PointSize)
+0:47 'anon@1' (out block{gl_Position highp 4-component vector of float Position gl_Position, gl_PointSize highp float PointSize gl_PointSize})
+0:47 Constant:
+0:47 1 (const uint)
+0:47 'ps' (temp highp float)
+0:48 move second child to first child (temp highp float)
+0:48 Constant:
+0:48 0.000000
+0:48 'cd' (temp highp float)
+0:117 Function Definition: pointSize2( (global void)
+0:117 Function Parameters:
+0:? Sequence
+0:120 move second child to first child (temp highp float)
+0:120 gl_PointSize: direct index for structure (gl_PointSize highp float PointSize)
+0:120 'anon@1' (out block{gl_Position highp 4-component vector of float Position gl_Position, gl_PointSize highp float PointSize gl_PointSize})
+0:120 Constant:
+0:120 1 (const uint)
+0:120 'ps' (temp highp float)
+0:125 Function Definition: bbbad( (global void)
+0:125 Function Parameters:
+0:127 Sequence
+0:127 'gl_BoundingBoxOES' (temp float)
+0:? Linker Objects
+0:? 'patchIn' (patch in highp 4-component vector of float)
+0:? 'patchOut' (patch out highp 4-component vector of float)
+0:? 'badp1' (smooth patch in highp 4-component vector of float)
+0:? 'badp2' (flat patch in highp 4-component vector of float)
+0:? 'badp3' (noperspective patch in highp 4-component vector of float)
+0:? 'badp4' (patch sample in highp 3-component vector of float)
+0:? 'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position})
+0:? 'ina' (in highp 2-component vector of float)
+0:? 'inb' (in 32-element array of highp 2-component vector of float)
+0:? 'inc' (in 32-element array of highp 2-component vector of float)
+0:? 'ind' (in 32-element array of highp 2-component vector of float)
+0:? 'bla' (in block{in highp int f})
+0:? 'blb' (in 32-element array of block{in highp int f})
+0:? 'blc' (in 32-element array of block{in highp int f})
+0:? 'bld' (in 32-element array of block{in highp int f})
+0:? 'ivla' (layout(location=23 ) in 32-element array of highp 4-component vector of float)
+0:? 'ivlb' (layout(location=24 ) in 32-element array of highp 4-component vector of float)
+0:? 'ivlc' (layout(location=24 ) in 32-element array of highp 4-component vector of float)
+0:? 'ovla' (layout(location=23 ) out 2-element array of highp 4-component vector of float)
+0:? 'ovlb' (layout(location=24 ) out 2-element array of highp 4-component vector of float)
+0:? 'pinbi' (patch in block{in highp int a})
+0:? 'myColor2' (centroid out highp 3-component vector of float)
+0:? 'centr' (centroid in 32-element array of highp 3-component vector of float)
+0:? 'perSampleColor' (sample out highp 4-component vector of float)
+
+
+Linked tessellation evaluation stage:
+
+
+Shader version: 310
+Requested GL_ARB_separate_shader_objects
+Requested GL_EXT_primitive_bounding_box
+Requested GL_EXT_shader_io_blocks
+Requested GL_EXT_tessellation_shader
+Requested GL_OES_shader_io_blocks
+Requested GL_OES_tessellation_point_size
+Requested GL_OES_tessellation_shader
+input primitive = quads
+vertex spacing = fractional_odd_spacing
+triangle order = cw
+using point mode
+ERROR: node is still EOpNull!
+0:24 Function Definition: main( (global void)
+0:24 Function Parameters:
+0:26 Sequence
+0:26 Constant:
+0:26 0.000000
+0:28 Sequence
+0:28 move second child to first child (temp highp int)
+0:28 'a' (temp highp int)
+0:28 Constant:
+0:28 1512 (const int)
+0:36 Sequence
+0:36 move second child to first child (temp highp 4-component vector of float)
+0:36 'p' (temp highp 4-component vector of float)
+0:36 gl_Position: direct index for structure (in highp 4-component vector of float Position)
+0:36 direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:36 'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:36 Constant:
+0:36 1 (const int)
+0:36 Constant:
+0:36 0 (const int)
+0:37 Sequence
+0:37 move second child to first child (temp highp float)
+0:37 'ps' (temp highp float)
+0:37 gl_PointSize: direct index for structure (in highp float PointSize)
+0:37 direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:37 'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:37 Constant:
+0:37 1 (const int)
+0:37 Constant:
+0:37 1 (const int)
+0:38 Sequence
+0:38 move second child to first child (temp highp float)
+0:38 'cd' (temp highp float)
+0:38 Constant:
+0:38 0.000000
+0:40 Sequence
+0:40 move second child to first child (temp highp int)
+0:40 'pvi' (temp highp int)
+0:40 'gl_PatchVerticesIn' (in highp int PatchVertices)
+0:41 Sequence
+0:41 move second child to first child (temp highp int)
+0:41 'pid' (temp highp int)
+0:41 'gl_PrimitiveID' (in highp int PrimitiveID)
+0:42 Sequence
+0:42 move second child to first child (temp highp 3-component vector of float)
+0:42 'tc' (temp highp 3-component vector of float)
+0:42 'gl_TessCoord' (in highp 3-component vector of float TessCoord)
+0:43 Sequence
+0:43 move second child to first child (temp highp float)
+0:43 'tlo' (temp highp float)
+0:43 direct index (patch temp highp float TessLevelOuter)
+0:43 'gl_TessLevelOuter' (patch in 4-element array of highp float TessLevelOuter)
+0:43 Constant:
+0:43 3 (const int)
+0:44 Sequence
+0:44 move second child to first child (temp highp float)
+0:44 'tli' (temp highp float)
+0:44 direct index (patch temp highp float TessLevelInner)
+0:44 'gl_TessLevelInner' (patch in 2-element array of highp float TessLevelInner)
+0:44 Constant:
+0:44 1 (const int)
+0:46 move second child to first child (temp highp 4-component vector of float)
+0:46 gl_Position: direct index for structure (gl_Position highp 4-component vector of float Position)
+0:46 'anon@1' (out block{gl_Position highp 4-component vector of float Position gl_Position, gl_PointSize highp float PointSize gl_PointSize})
+0:46 Constant:
+0:46 0 (const uint)
+0:46 'p' (temp highp 4-component vector of float)
+0:47 move second child to first child (temp highp float)
+0:47 gl_PointSize: direct index for structure (gl_PointSize highp float PointSize)
+0:47 'anon@1' (out block{gl_Position highp 4-component vector of float Position gl_Position, gl_PointSize highp float PointSize gl_PointSize})
+0:47 Constant:
+0:47 1 (const uint)
+0:47 'ps' (temp highp float)
+0:48 move second child to first child (temp highp float)
+0:48 Constant:
+0:48 0.000000
+0:48 'cd' (temp highp float)
+0:117 Function Definition: pointSize2( (global void)
+0:117 Function Parameters:
+0:? Sequence
+0:120 move second child to first child (temp highp float)
+0:120 gl_PointSize: direct index for structure (gl_PointSize highp float PointSize)
+0:120 'anon@1' (out block{gl_Position highp 4-component vector of float Position gl_Position, gl_PointSize highp float PointSize gl_PointSize})
+0:120 Constant:
+0:120 1 (const uint)
+0:120 'ps' (temp highp float)
+0:125 Function Definition: bbbad( (global void)
+0:125 Function Parameters:
+0:127 Sequence
+0:127 'gl_BoundingBoxOES' (temp float)
+0:? Linker Objects
+0:? 'patchIn' (patch in highp 4-component vector of float)
+0:? 'patchOut' (patch out highp 4-component vector of float)
+0:? 'badp1' (smooth patch in highp 4-component vector of float)
+0:? 'badp2' (flat patch in highp 4-component vector of float)
+0:? 'badp3' (noperspective patch in highp 4-component vector of float)
+0:? 'badp4' (patch sample in highp 3-component vector of float)
+0:? 'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position})
+0:? 'ina' (in highp 2-component vector of float)
+0:? 'inb' (in 32-element array of highp 2-component vector of float)
+0:? 'inc' (in 32-element array of highp 2-component vector of float)
+0:? 'ind' (in 32-element array of highp 2-component vector of float)
+0:? 'bla' (in block{in highp int f})
+0:? 'blb' (in 32-element array of block{in highp int f})
+0:? 'blc' (in 32-element array of block{in highp int f})
+0:? 'bld' (in 32-element array of block{in highp int f})
+0:? 'ivla' (layout(location=23 ) in 32-element array of highp 4-component vector of float)
+0:? 'ivlb' (layout(location=24 ) in 32-element array of highp 4-component vector of float)
+0:? 'ivlc' (layout(location=24 ) in 32-element array of highp 4-component vector of float)
+0:? 'ovla' (layout(location=23 ) out 2-element array of highp 4-component vector of float)
+0:? 'ovlb' (layout(location=24 ) out 2-element array of highp 4-component vector of float)
+0:? 'pinbi' (patch in block{in highp int a})
+0:? 'myColor2' (centroid out highp 3-component vector of float)
+0:? 'centr' (centroid in 32-element array of highp 3-component vector of float)
+0:? 'perSampleColor' (sample out highp 4-component vector of float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/310.vert.out b/chromium/third_party/glslang/src/Test/baseResults/310.vert.out
new file mode 100644
index 00000000000..9ce13f444f1
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/310.vert.out
@@ -0,0 +1,1960 @@
+310.vert
+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:3: 'shared' : not supported in this stage: vertex
+ERROR: 0:4: 'local_size_x' : there is no such layout identifier for this stage taking an assigned value
+ERROR: 0:5: 'buffer' : buffers can be declared only as blocks
+ERROR: 0:10: 'location' : overlapping use of location 3
+ERROR: 0:58: 'usampler2DMSArray' : Reserved word.
+ERROR: 0:58: 'sampler/image' : type requires declaration of default precision qualifier
+ERROR: 0:67: 'textureSamples' : no matching overloaded function found
+ERROR: 0:69: 'assign' : l-value required "ini" (can't modify shader input)
+ERROR: 0:69: 'out' : Non-L-value cannot be passed for 'out' or 'inout' parameters.
+ERROR: 0:72: 'out' : cannot be bool
+ERROR: 0:73: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: outo
+ERROR: 0:75: 'vertex-shader array-of-array output' : not supported with this profile: es
+ERROR: 0:78: 'vertex-shader array-of-struct output' : not supported with this profile: es
+ERROR: 0:79: 'vertex-shader array-of-struct output' : not supported with this profile: es
+ERROR: 0:81: 'vertex-shader struct output containing an array' : not supported with this profile: es
+ERROR: 0:83: 'vertex-shader struct output containing structure' : not supported with this profile: es
+ERROR: 0:85: 'std430' : requires the 'buffer' storage qualifier
+ERROR: 0:97: 's' : member of block cannot be or contain a sampler, image, or atomic_uint type
+ERROR: 0:105: 'location' : overlapping use of location 12
+ERROR: 0:107: 'input block' : not supported in this stage: vertex
+ERROR: 0:109: 'gl_PerVertex' : block redeclaration has extra members
+ERROR: 0:119: 'gl_PointSize' : member of nameless block was not redeclared
+ERROR: 0:119: 'assign' : cannot convert from 'const float' to 'gl_PointSize highp void PointSize'
+ERROR: 0:122: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use
+ERROR: 0:127: 'flat/smooth/noperspective' : cannot use interpolation qualifiers on an interface block
+ERROR: 0:131: 'flat/smooth/noperspective' : cannot use interpolation qualifiers on an interface block
+ERROR: 0:135: 'centroid' : cannot use centroid qualifier on an interface block
+ERROR: 0:139: 'invariant' : cannot use invariant qualifier on an interface block
+ERROR: 0:155: 'precise' : Reserved word.
+ERROR: 0:155: 'precise' : not supported for this version or the enabled extensions
+ERROR: 0:156: 'fma' : required extension not requested: Possible extensions include:
+GL_EXT_gpu_shader5
+GL_OES_gpu_shader5
+ERROR: 0:157: 'variable indexing sampler array' : not supported for this version or the enabled extensions
+ERROR: 0:161: 'variable indexing uniform block array' : not supported for this version or the enabled extensions
+ERROR: 0:162: 'variable indexing buffer block array' : not supported with this profile: es
+ERROR: 0:164: 'variable indexing sampler array' : not supported for this version or the enabled extensions
+ERROR: 0:165: 'non-constant offset argument' : not supported for this version or the enabled extensions
+ERROR: 0:166: 'textureGatherOffsets' : required extension not requested: Possible extensions include:
+GL_EXT_gpu_shader5
+GL_OES_gpu_shader5
+ERROR: 0:177: 'variable indexing buffer block array' : not supported with this profile: es
+ERROR: 0:182: 'textureGatherOffsets(...)' : must be a compile-time constant: offsets argument
+ERROR: 0:185: 'samplerBuffer' : Reserved word.
+ERROR: 0:185: 'sampler/image' : type requires declaration of default precision qualifier
+ERROR: 0:186: 'isamplerBuffer' : Reserved word.
+ERROR: 0:186: 'sampler/image' : type requires declaration of default precision qualifier
+ERROR: 0:187: 'usamplerBuffer' : Reserved word.
+ERROR: 0:187: 'sampler/image' : type requires declaration of default precision qualifier
+ERROR: 0:188: 'imageBuffer' : Reserved word.
+ERROR: 0:188: 'sampler/image' : type requires declaration of default precision qualifier
+ERROR: 0:189: 'iimageBuffer' : Reserved word.
+ERROR: 0:189: 'sampler/image' : type requires declaration of default precision qualifier
+ERROR: 0:190: 'uimageBuffer' : Reserved word.
+ERROR: 0:190: 'sampler/image' : type requires declaration of default precision qualifier
+ERROR: 0:195: 'sampler/image' : type requires declaration of default precision qualifier
+ERROR: 0:196: 'sampler/image' : type requires declaration of default precision qualifier
+ERROR: 0:197: 'sampler/image' : type requires declaration of default precision qualifier
+ERROR: 0:198: 'sampler/image' : type requires declaration of default precision qualifier
+ERROR: 0:199: 'sampler/image' : type requires declaration of default precision qualifier
+ERROR: 0:200: 'sampler/image' : type requires declaration of default precision qualifier
+ERROR: 0:235: 'imageCubeArray' : Reserved word.
+ERROR: 0:235: 'sampler/image' : type requires declaration of default precision qualifier
+ERROR: 0:236: 'iimageCubeArray' : Reserved word.
+ERROR: 0:236: 'sampler/image' : type requires declaration of default precision qualifier
+ERROR: 0:237: 'uimageCubeArray' : Reserved word.
+ERROR: 0:237: 'sampler/image' : type requires declaration of default precision qualifier
+ERROR: 0:239: 'samplerCubeArray' : Reserved word.
+ERROR: 0:239: 'sampler/image' : type requires declaration of default precision qualifier
+ERROR: 0:240: 'samplerCubeArrayShadow' : Reserved word.
+ERROR: 0:240: 'sampler/image' : type requires declaration of default precision qualifier
+ERROR: 0:241: 'isamplerCubeArray' : Reserved word.
+ERROR: 0:241: 'sampler/image' : type requires declaration of default precision qualifier
+ERROR: 0:242: 'usamplerCubeArray' : Reserved word.
+ERROR: 0:242: 'sampler/image' : type requires declaration of default precision qualifier
+ERROR: 0:246: 'sampler/image' : type requires declaration of default precision qualifier
+ERROR: 0:247: 'sampler/image' : type requires declaration of default precision qualifier
+ERROR: 0:248: 'sampler/image' : type requires declaration of default precision qualifier
+ERROR: 0:250: 'sampler/image' : type requires declaration of default precision qualifier
+ERROR: 0:251: 'sampler/image' : type requires declaration of default precision qualifier
+ERROR: 0:252: 'sampler/image' : type requires declaration of default precision qualifier
+ERROR: 0:253: 'sampler/image' : type requires declaration of default precision qualifier
+ERROR: 0:321: 'sampler2DMSArray' : Reserved word.
+ERROR: 0:321: 'sampler/image' : type requires declaration of default precision qualifier
+ERROR: 0:322: 'isampler2DMSArray' : Reserved word.
+ERROR: 0:322: 'sampler/image' : type requires declaration of default precision qualifier
+ERROR: 0:323: 'usampler2DMSArray' : Reserved word.
+ERROR: 0:323: 'sampler/image' : type requires declaration of default precision qualifier
+ERROR: 0:329: 'sampler/image' : type requires declaration of default precision qualifier
+ERROR: 0:330: 'sampler/image' : type requires declaration of default precision qualifier
+ERROR: 0:331: 'sampler/image' : type requires declaration of default precision qualifier
+ERROR: 0:351: 'textureSize' : no matching overloaded function found
+ERROR: 0:351: '=' : cannot convert from 'const float' to 'temp highp 3-component vector of int'
+ERROR: 0:389: 'sample' : Reserved word.
+ERROR: 0:400: 'interpolateAtCentroid' : no matching overloaded function found
+ERROR: 0:401: 'interpolateAtSample' : no matching overloaded function found
+ERROR: 0:402: 'interpolateAtOffset' : no matching overloaded function found
+ERROR: 93 compilation errors. No code generated.
+
+
+Shader version: 310
+Requested GL_EXT_texture_buffer
+Requested GL_OES_gpu_shader5
+Requested GL_OES_shader_image_atomic
+Requested GL_OES_shader_io_blocks
+Requested GL_OES_shader_multisample_interpolation
+Requested GL_OES_texture_buffer
+Requested GL_OES_texture_cube_map_array
+Requested GL_OES_texture_storage_multisample_2d_array
+ERROR: node is still EOpNull!
+0:12 Function Definition: main( (global void)
+0:12 Function Parameters:
+0:? Sequence
+0:15 move second child to first child (temp highp 2-component vector of uint)
+0:15 'u2' (temp highp 2-component vector of uint)
+0:15 addCarry (global highp 2-component vector of uint)
+0:15 'u2' (temp highp 2-component vector of uint)
+0:15 'u2' (temp highp 2-component vector of uint)
+0:15 'u2' (temp highp 2-component vector of uint)
+0:17 move second child to first child (temp highp uint)
+0:17 'u1' (temp highp uint)
+0:17 subBorrow (global highp uint)
+0:17 'u1' (temp highp uint)
+0:17 'u1' (temp highp uint)
+0:17 'u1' (temp highp uint)
+0:19 uMulExtended (global void)
+0:19 'u4' (temp highp 4-component vector of uint)
+0:19 'u4' (temp highp 4-component vector of uint)
+0:19 'u4' (temp highp 4-component vector of uint)
+0:19 'u4' (temp highp 4-component vector of uint)
+0:21 iMulExtended (global void)
+0:21 'i4' (temp highp 4-component vector of int)
+0:21 'i4' (temp highp 4-component vector of int)
+0:21 'i4' (temp highp 4-component vector of int)
+0:21 'i4' (temp highp 4-component vector of int)
+0:23 move second child to first child (temp highp int)
+0:23 'i1' (temp highp int)
+0:23 bitfieldExtract (global highp int)
+0:23 'i1' (temp highp int)
+0:23 Constant:
+0:23 4 (const int)
+0:23 Constant:
+0:23 5 (const int)
+0:25 move second child to first child (temp highp 3-component vector of uint)
+0:25 'u3' (temp highp 3-component vector of uint)
+0:25 bitfieldExtract (global highp 3-component vector of uint)
+0:25 'u3' (temp highp 3-component vector of uint)
+0:25 Constant:
+0:25 4 (const int)
+0:25 Constant:
+0:25 5 (const int)
+0:27 move second child to first child (temp highp 3-component vector of int)
+0:27 'i3' (temp highp 3-component vector of int)
+0:27 bitfieldInsert (global highp 3-component vector of int)
+0:27 'i3' (temp highp 3-component vector of int)
+0:27 'i3' (temp highp 3-component vector of int)
+0:27 Constant:
+0:27 4 (const int)
+0:27 Constant:
+0:27 5 (const int)
+0:28 move second child to first child (temp highp uint)
+0:28 'u1' (temp highp uint)
+0:28 bitfieldInsert (global highp uint)
+0:28 'u1' (temp highp uint)
+0:28 'u1' (temp highp uint)
+0:28 Constant:
+0:28 4 (const int)
+0:28 Constant:
+0:28 5 (const int)
+0:30 move second child to first child (temp highp 2-component vector of int)
+0:30 'i2' (temp highp 2-component vector of int)
+0:30 bitFieldReverse (global highp 2-component vector of int)
+0:30 'i2' (temp highp 2-component vector of int)
+0:31 move second child to first child (temp highp 4-component vector of uint)
+0:31 'u4' (temp highp 4-component vector of uint)
+0:31 bitFieldReverse (global highp 4-component vector of uint)
+0:31 'u4' (temp highp 4-component vector of uint)
+0:32 move second child to first child (temp highp int)
+0:32 'i1' (temp highp int)
+0:32 bitCount (global lowp int)
+0:32 'i1' (temp highp int)
+0:33 move second child to first child (temp highp 3-component vector of int)
+0:33 'i3' (temp highp 3-component vector of int)
+0:33 bitCount (global lowp 3-component vector of int)
+0:33 'u3' (temp highp 3-component vector of uint)
+0:34 move second child to first child (temp highp 2-component vector of int)
+0:34 'i2' (temp highp 2-component vector of int)
+0:34 findLSB (global lowp 2-component vector of int)
+0:34 'i2' (temp highp 2-component vector of int)
+0:35 move second child to first child (temp highp 4-component vector of int)
+0:35 'i4' (temp highp 4-component vector of int)
+0:35 findLSB (global lowp 4-component vector of int)
+0:35 'u4' (temp highp 4-component vector of uint)
+0:36 move second child to first child (temp highp int)
+0:36 'i1' (temp highp int)
+0:36 findMSB (global lowp int)
+0:36 'i1' (temp highp int)
+0:37 move second child to first child (temp highp 2-component vector of int)
+0:37 'i2' (temp highp 2-component vector of int)
+0:37 findMSB (global lowp 2-component vector of int)
+0:37 'u2' (temp highp 2-component vector of uint)
+0:40 move second child to first child (temp highp 3-component vector of float)
+0:40 'v3' (temp highp 3-component vector of float)
+0:40 frexp (global highp 3-component vector of float)
+0:40 'v3' (temp highp 3-component vector of float)
+0:40 'i3' (temp highp 3-component vector of int)
+0:42 move second child to first child (temp highp 2-component vector of float)
+0:42 'v2' (temp highp 2-component vector of float)
+0:42 ldexp (global highp 2-component vector of float)
+0:42 'v2' (temp highp 2-component vector of float)
+0:42 'i2' (temp highp 2-component vector of int)
+0:45 move second child to first child (temp highp uint)
+0:45 'u1' (temp highp uint)
+0:45 PackUnorm4x8 (global highp uint)
+0:45 'v4' (temp mediump 4-component vector of float)
+0:46 move second child to first child (temp highp uint)
+0:46 'u1' (temp highp uint)
+0:46 PackSnorm4x8 (global highp uint)
+0:46 'v4' (temp mediump 4-component vector of float)
+0:47 move second child to first child (temp mediump 4-component vector of float)
+0:47 'v4' (temp mediump 4-component vector of float)
+0:47 UnpackUnorm4x8 (global mediump 4-component vector of float)
+0:47 'u1' (temp highp uint)
+0:48 move second child to first child (temp mediump 4-component vector of float)
+0:48 'v4' (temp mediump 4-component vector of float)
+0:48 UnpackSnorm4x8 (global mediump 4-component vector of float)
+0:48 'u1' (temp highp uint)
+0:60 Function Definition: foo( (global void)
+0:60 Function Parameters:
+0:? Sequence
+0:63 move second child to first child (temp highp 2-component vector of int)
+0:63 'v2' (temp highp 2-component vector of int)
+0:63 textureSize (global highp 2-component vector of int)
+0:63 's2dms' (uniform highp sampler2DMS)
+0:64 move second child to first child (temp highp 2-component vector of int)
+0:64 'v2' (temp highp 2-component vector of int)
+0:64 textureSize (global highp 2-component vector of int)
+0:64 'us2dms' (uniform highp usampler2DMS)
+0:65 Sequence
+0:65 move second child to first child (temp highp 4-component vector of float)
+0:65 'v4' (temp highp 4-component vector of float)
+0:65 textureFetch (global highp 4-component vector of float)
+0:65 's2dms' (uniform highp sampler2DMS)
+0:65 'v2' (temp highp 2-component vector of int)
+0:65 Constant:
+0:65 2 (const int)
+0:66 Sequence
+0:66 move second child to first child (temp highp 4-component vector of int)
+0:66 'iv4' (temp highp 4-component vector of int)
+0:66 textureFetch (global highp 4-component vector of int)
+0:66 'is2dms' (uniform highp isampler2DMS)
+0:66 'v2' (temp highp 2-component vector of int)
+0:66 Constant:
+0:66 2 (const int)
+0:67 Constant:
+0:67 0.000000
+0:69 frexp (global highp float)
+0:69 'f' (temp highp float)
+0:69 'ini' (in highp int)
+0:114 Function Definition: foo_IO( (global void)
+0:114 Function Parameters:
+0:116 Sequence
+0:116 Sequence
+0:116 move second child to first child (temp highp int)
+0:116 'sum' (temp highp int)
+0:116 add (temp highp int)
+0:116 'gl_VertexID' (gl_VertexId highp int VertexId)
+0:117 'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+0:118 move second child to first child (temp highp 4-component vector of float)
+0:118 gl_Position: direct index for structure (gl_Position highp 4-component vector of float Position)
+0:118 'anon@1' (out block{gl_Position highp 4-component vector of float Position gl_Position, })
+0:118 Constant:
+0:118 0 (const uint)
+0:118 Constant:
+0:118 1.000000
+0:118 1.000000
+0:118 1.000000
+0:118 1.000000
+0:119 gl_PointSize: direct index for structure (gl_PointSize highp void PointSize)
+0:119 'anon@1' (out block{gl_Position highp 4-component vector of float Position gl_Position, })
+0:119 Constant:
+0:119 1 (const uint)
+0:153 Function Definition: pfooBad( (global void)
+0:153 Function Parameters:
+0:? Sequence
+0:156 move second child to first child (temp highp 2-component vector of float)
+0:156 'h' (noContraction temp highp 2-component vector of float)
+0:156 fma (global highp 2-component vector of float)
+0:156 'inf' (in highp 2-component vector of float)
+0:156 'ing' (in highp 2-component vector of float)
+0:156 'h' (noContraction temp highp 2-component vector of float)
+0:157 indirect index (temp highp sampler2D)
+0:157 'sArray' (uniform 4-element array of highp sampler2D)
+0:157 add (temp highp int)
+0:157 'sIndex' (uniform highp int)
+0:157 Constant:
+0:157 1 (const int)
+0:158 indirect index (layout(binding=0 offset=0 ) temp highp atomic_uint)
+0:158 'auArray' (layout(binding=0 offset=0 ) uniform 2-element array of highp atomic_uint)
+0:158 add (temp highp int)
+0:158 'sIndex' (uniform highp int)
+0:158 Constant:
+0:158 1 (const int)
+0:159 direct index (layout(column_major shared ) temp block{layout(column_major shared ) uniform highp int i})
+0:159 'ubInst' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform highp int i})
+0:159 Constant:
+0:159 1 (const int)
+0:160 direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer highp int i})
+0:160 'bbInst' (layout(column_major shared ) buffer 4-element array of block{layout(column_major shared ) buffer highp int i})
+0:160 Constant:
+0:160 2 (const int)
+0:161 indirect index (layout(column_major shared ) temp block{layout(column_major shared ) uniform highp int i})
+0:161 'ubInst' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform highp int i})
+0:161 add (temp highp int)
+0:161 'sIndex' (uniform highp int)
+0:161 Constant:
+0:161 1 (const int)
+0:162 indirect index (layout(column_major shared ) temp block{layout(column_major shared ) buffer highp int i})
+0:162 'bbInst' (layout(column_major shared ) buffer 4-element array of block{layout(column_major shared ) buffer highp int i})
+0:162 'sIndex' (uniform highp int)
+0:163 direct index (writeonly temp highp image2D)
+0:163 'iArray' (writeonly uniform 5-element array of highp image2D)
+0:163 Constant:
+0:163 2 (const int)
+0:164 indirect index (writeonly temp highp image2D)
+0:164 'iArray' (writeonly uniform 5-element array of highp image2D)
+0:164 component-wise multiply (temp highp int)
+0:164 'sIndex' (uniform highp int)
+0:164 Constant:
+0:164 2 (const int)
+0:165 textureGatherOffset (global highp 4-component vector of float)
+0:165 direct index (temp highp sampler2D)
+0:165 'sArray' (uniform 4-element array of highp sampler2D)
+0:165 Constant:
+0:165 0 (const int)
+0:165 Constant:
+0:165 0.100000
+0:165 0.100000
+0:165 Convert float to int (temp highp 2-component vector of int)
+0:165 'inf' (in highp 2-component vector of float)
+0:166 textureGatherOffsets (global highp 4-component vector of float)
+0:166 direct index (temp highp sampler2D)
+0:166 'sArray' (uniform 4-element array of highp sampler2D)
+0:166 Constant:
+0:166 0 (const int)
+0:166 Constant:
+0:166 0.100000
+0:166 0.100000
+0:166 Constant:
+0:166 0 (const int)
+0:166 0 (const int)
+0:166 0 (const int)
+0:166 0 (const int)
+0:166 0 (const int)
+0:166 0 (const int)
+0:166 0 (const int)
+0:166 0 (const int)
+0:171 Function Definition: pfoo( (global void)
+0:171 Function Parameters:
+0:? Sequence
+0:174 move second child to first child (temp highp 2-component vector of float)
+0:174 'h' (noContraction temp highp 2-component vector of float)
+0:174 fma (global highp 2-component vector of float)
+0:174 'inf' (in highp 2-component vector of float)
+0:174 'ing' (in highp 2-component vector of float)
+0:174 'h' (noContraction temp highp 2-component vector of float)
+0:175 indirect index (temp highp sampler2D)
+0:175 'sArray' (uniform 4-element array of highp sampler2D)
+0:175 add (temp highp int)
+0:175 'sIndex' (uniform highp int)
+0:175 Constant:
+0:175 1 (const int)
+0:176 indirect index (layout(column_major shared ) temp block{layout(column_major shared ) uniform highp int i})
+0:176 'ubInst' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform highp int i})
+0:176 add (temp highp int)
+0:176 'sIndex' (uniform highp int)
+0:176 Constant:
+0:176 1 (const int)
+0:177 indirect index (layout(column_major shared ) temp block{layout(column_major shared ) buffer highp int i})
+0:177 'bbInst' (layout(column_major shared ) buffer 4-element array of block{layout(column_major shared ) buffer highp int i})
+0:177 subtract (temp highp int)
+0:177 'sIndex' (uniform highp int)
+0:177 Constant:
+0:177 2 (const int)
+0:178 direct index (writeonly temp highp image2D)
+0:178 'iArray' (writeonly uniform 5-element array of highp image2D)
+0:178 Constant:
+0:178 2 (const int)
+0:179 indirect index (writeonly temp highp image2D)
+0:179 'iArray' (writeonly uniform 5-element array of highp image2D)
+0:179 subtract (temp highp int)
+0:179 'sIndex' (uniform highp int)
+0:179 Constant:
+0:179 2 (const int)
+0:180 textureGatherOffset (global highp 4-component vector of float)
+0:180 direct index (temp highp sampler2D)
+0:180 'sArray' (uniform 4-element array of highp sampler2D)
+0:180 Constant:
+0:180 0 (const int)
+0:180 Constant:
+0:180 0.100000
+0:180 0.100000
+0:180 Convert float to int (temp highp 2-component vector of int)
+0:180 'inf' (in highp 2-component vector of float)
+0:181 textureGatherOffsets (global highp 4-component vector of float)
+0:181 direct index (temp highp sampler2D)
+0:181 'sArray' (uniform 4-element array of highp sampler2D)
+0:181 Constant:
+0:181 0 (const int)
+0:181 Constant:
+0:181 0.100000
+0:181 0.100000
+0:181 Constant:
+0:181 0 (const int)
+0:181 0 (const int)
+0:181 0 (const int)
+0:181 0 (const int)
+0:181 0 (const int)
+0:181 0 (const int)
+0:181 0 (const int)
+0:181 0 (const int)
+0:182 textureGatherOffsets (global highp 4-component vector of float)
+0:182 direct index (temp highp sampler2D)
+0:182 'sArray' (uniform 4-element array of highp sampler2D)
+0:182 Constant:
+0:182 0 (const int)
+0:182 Constant:
+0:182 0.100000
+0:182 0.100000
+0:182 'offsets' (uniform 4-element array of highp 2-component vector of int)
+0:220 Function Definition: bufferT( (global void)
+0:220 Function Parameters:
+0:222 Sequence
+0:222 Sequence
+0:222 move second child to first child (temp highp int)
+0:222 's1' (temp highp int)
+0:222 textureSize (global highp int)
+0:222 'bufSamp1' (uniform highp samplerBuffer)
+0:223 Sequence
+0:223 move second child to first child (temp highp int)
+0:223 's2' (temp highp int)
+0:223 textureSize (global highp int)
+0:223 'bufSamp2' (uniform highp isamplerBuffer)
+0:224 Sequence
+0:224 move second child to first child (temp highp int)
+0:224 's3' (temp highp int)
+0:224 textureSize (global highp int)
+0:224 'bufSamp3' (uniform highp usamplerBuffer)
+0:226 Sequence
+0:226 move second child to first child (temp highp int)
+0:226 's4' (temp highp int)
+0:226 imageQuerySize (global highp int)
+0:226 'bufSamp4' (writeonly uniform highp imageBuffer)
+0:227 Sequence
+0:227 move second child to first child (temp highp int)
+0:227 's5' (temp highp int)
+0:227 imageQuerySize (global highp int)
+0:227 'bufSamp5' (writeonly uniform highp iimageBuffer)
+0:228 Sequence
+0:228 move second child to first child (temp highp int)
+0:228 's6' (temp highp int)
+0:228 imageQuerySize (global highp int)
+0:228 'bufSamp6' (writeonly uniform highp uimageBuffer)
+0:230 Sequence
+0:230 move second child to first child (temp highp 4-component vector of float)
+0:230 'f1' (temp highp 4-component vector of float)
+0:230 textureFetch (global highp 4-component vector of float)
+0:230 'bufSamp1' (uniform highp samplerBuffer)
+0:230 's1' (temp highp int)
+0:231 Sequence
+0:231 move second child to first child (temp highp 4-component vector of int)
+0:231 'f2' (temp highp 4-component vector of int)
+0:231 textureFetch (global highp 4-component vector of int)
+0:231 'bufSamp2' (uniform highp isamplerBuffer)
+0:231 's2' (temp highp int)
+0:232 Sequence
+0:232 move second child to first child (temp highp 4-component vector of uint)
+0:232 'f3' (temp highp 4-component vector of uint)
+0:232 textureFetch (global highp 4-component vector of uint)
+0:232 'bufSamp3' (uniform highp usamplerBuffer)
+0:232 's3' (temp highp int)
+0:279 Function Definition: CAT( (global void)
+0:279 Function Parameters:
+0:281 Sequence
+0:281 Sequence
+0:281 move second child to first child (temp highp 3-component vector of int)
+0:281 's4' (temp highp 3-component vector of int)
+0:281 textureSize (global highp 3-component vector of int)
+0:281 'CA4' (uniform highp samplerCubeArray)
+0:281 Constant:
+0:281 1 (const int)
+0:282 Sequence
+0:282 move second child to first child (temp highp 3-component vector of int)
+0:282 's5' (temp highp 3-component vector of int)
+0:282 textureSize (global highp 3-component vector of int)
+0:282 'CA5' (uniform highp samplerCubeArrayShadow)
+0:282 Constant:
+0:282 1 (const int)
+0:283 Sequence
+0:283 move second child to first child (temp highp 3-component vector of int)
+0:283 's6' (temp highp 3-component vector of int)
+0:283 textureSize (global highp 3-component vector of int)
+0:283 'CA6' (uniform highp isamplerCubeArray)
+0:283 Constant:
+0:283 1 (const int)
+0:284 Sequence
+0:284 move second child to first child (temp highp 3-component vector of int)
+0:284 's7' (temp highp 3-component vector of int)
+0:284 textureSize (global highp 3-component vector of int)
+0:284 'CA7' (uniform highp usamplerCubeArray)
+0:284 Constant:
+0:284 1 (const int)
+0:286 Sequence
+0:286 move second child to first child (temp highp 4-component vector of float)
+0:286 't4' (temp highp 4-component vector of float)
+0:286 texture (global highp 4-component vector of float)
+0:286 'CA4' (uniform highp samplerCubeArray)
+0:286 Constant:
+0:286 0.500000
+0:286 0.500000
+0:286 0.500000
+0:286 0.500000
+0:287 Sequence
+0:287 move second child to first child (temp highp float)
+0:287 't5' (temp highp float)
+0:287 texture (global highp float)
+0:287 'CA5' (uniform highp samplerCubeArrayShadow)
+0:287 Constant:
+0:287 0.500000
+0:287 0.500000
+0:287 0.500000
+0:287 0.500000
+0:287 Constant:
+0:287 3.000000
+0:288 Sequence
+0:288 move second child to first child (temp highp 4-component vector of int)
+0:288 't6' (temp highp 4-component vector of int)
+0:288 texture (global highp 4-component vector of int)
+0:288 'CA6' (uniform highp isamplerCubeArray)
+0:288 Constant:
+0:288 0.500000
+0:288 0.500000
+0:288 0.500000
+0:288 0.500000
+0:289 Sequence
+0:289 move second child to first child (temp highp 4-component vector of uint)
+0:289 't7' (temp highp 4-component vector of uint)
+0:289 texture (global highp 4-component vector of uint)
+0:289 'CA7' (uniform highp usamplerCubeArray)
+0:289 Constant:
+0:289 0.500000
+0:289 0.500000
+0:289 0.500000
+0:289 0.500000
+0:291 Sequence
+0:291 move second child to first child (temp highp 4-component vector of float)
+0:291 'L4' (temp highp 4-component vector of float)
+0:291 textureLod (global highp 4-component vector of float)
+0:291 'CA4' (uniform highp samplerCubeArray)
+0:291 Constant:
+0:291 0.500000
+0:291 0.500000
+0:291 0.500000
+0:291 0.500000
+0:291 Constant:
+0:291 0.240000
+0:292 Sequence
+0:292 move second child to first child (temp highp 4-component vector of int)
+0:292 'L6' (temp highp 4-component vector of int)
+0:292 textureLod (global highp 4-component vector of int)
+0:292 'CA6' (uniform highp isamplerCubeArray)
+0:292 Constant:
+0:292 0.500000
+0:292 0.500000
+0:292 0.500000
+0:292 0.500000
+0:292 Constant:
+0:292 0.260000
+0:293 Sequence
+0:293 move second child to first child (temp highp 4-component vector of uint)
+0:293 'L7' (temp highp 4-component vector of uint)
+0:293 textureLod (global highp 4-component vector of uint)
+0:293 'CA7' (uniform highp usamplerCubeArray)
+0:293 Constant:
+0:293 0.500000
+0:293 0.500000
+0:293 0.500000
+0:293 0.500000
+0:293 Constant:
+0:293 0.270000
+0:295 Sequence
+0:295 move second child to first child (temp highp 4-component vector of float)
+0:295 'g4' (temp highp 4-component vector of float)
+0:295 textureGrad (global highp 4-component vector of float)
+0:295 'CA4' (uniform highp samplerCubeArray)
+0:295 Constant:
+0:295 0.500000
+0:295 0.500000
+0:295 0.500000
+0:295 0.500000
+0:295 Constant:
+0:295 0.100000
+0:295 0.100000
+0:295 0.100000
+0:295 Constant:
+0:295 0.200000
+0:295 0.200000
+0:295 0.200000
+0:296 Sequence
+0:296 move second child to first child (temp highp 4-component vector of int)
+0:296 'g6' (temp highp 4-component vector of int)
+0:296 textureGrad (global highp 4-component vector of int)
+0:296 'CA6' (uniform highp isamplerCubeArray)
+0:296 Constant:
+0:296 0.500000
+0:296 0.500000
+0:296 0.500000
+0:296 0.500000
+0:296 Constant:
+0:296 0.100000
+0:296 0.100000
+0:296 0.100000
+0:296 Constant:
+0:296 0.200000
+0:296 0.200000
+0:296 0.200000
+0:297 Sequence
+0:297 move second child to first child (temp highp 4-component vector of uint)
+0:297 'g7' (temp highp 4-component vector of uint)
+0:297 textureGrad (global highp 4-component vector of uint)
+0:297 'CA7' (uniform highp usamplerCubeArray)
+0:297 Constant:
+0:297 0.500000
+0:297 0.500000
+0:297 0.500000
+0:297 0.500000
+0:297 Constant:
+0:297 0.100000
+0:297 0.100000
+0:297 0.100000
+0:297 Constant:
+0:297 0.200000
+0:297 0.200000
+0:297 0.200000
+0:299 Sequence
+0:299 move second child to first child (temp highp 4-component vector of float)
+0:299 'gath4' (temp highp 4-component vector of float)
+0:299 textureGather (global highp 4-component vector of float)
+0:299 'CA4' (uniform highp samplerCubeArray)
+0:299 Constant:
+0:299 0.500000
+0:299 0.500000
+0:299 0.500000
+0:299 0.500000
+0:300 Sequence
+0:300 move second child to first child (temp highp 4-component vector of float)
+0:300 'gathC4' (temp highp 4-component vector of float)
+0:300 textureGather (global highp 4-component vector of float)
+0:300 'CA4' (uniform highp samplerCubeArray)
+0:300 Constant:
+0:300 0.500000
+0:300 0.500000
+0:300 0.500000
+0:300 0.500000
+0:300 Constant:
+0:300 2 (const int)
+0:301 Sequence
+0:301 move second child to first child (temp highp 4-component vector of int)
+0:301 'gath6' (temp highp 4-component vector of int)
+0:301 textureGather (global highp 4-component vector of int)
+0:301 'CA6' (uniform highp isamplerCubeArray)
+0:301 Constant:
+0:301 0.500000
+0:301 0.500000
+0:301 0.500000
+0:301 0.500000
+0:302 Sequence
+0:302 move second child to first child (temp highp 4-component vector of int)
+0:302 'gathC6' (temp highp 4-component vector of int)
+0:302 textureGather (global highp 4-component vector of int)
+0:302 'CA6' (uniform highp isamplerCubeArray)
+0:302 Constant:
+0:302 0.500000
+0:302 0.500000
+0:302 0.500000
+0:302 0.500000
+0:302 Constant:
+0:302 1 (const int)
+0:303 Sequence
+0:303 move second child to first child (temp highp 4-component vector of uint)
+0:303 'gath7' (temp highp 4-component vector of uint)
+0:303 textureGather (global highp 4-component vector of uint)
+0:303 'CA7' (uniform highp usamplerCubeArray)
+0:303 Constant:
+0:303 0.500000
+0:303 0.500000
+0:303 0.500000
+0:303 0.500000
+0:304 Sequence
+0:304 move second child to first child (temp highp 4-component vector of uint)
+0:304 'gathC7' (temp highp 4-component vector of uint)
+0:304 textureGather (global highp 4-component vector of uint)
+0:304 'CA7' (uniform highp usamplerCubeArray)
+0:304 Constant:
+0:304 0.500000
+0:304 0.500000
+0:304 0.500000
+0:304 0.500000
+0:304 Constant:
+0:304 0 (const int)
+0:306 Sequence
+0:306 move second child to first child (temp highp 4-component vector of float)
+0:306 'gath5' (temp highp 4-component vector of float)
+0:306 textureGather (global highp 4-component vector of float)
+0:306 'CA5' (uniform highp samplerCubeArrayShadow)
+0:306 Constant:
+0:306 0.500000
+0:306 0.500000
+0:306 0.500000
+0:306 0.500000
+0:306 Constant:
+0:306 2.500000
+0:308 Sequence
+0:308 move second child to first child (temp highp 3-component vector of int)
+0:308 's1' (temp highp 3-component vector of int)
+0:308 imageQuerySize (global highp 3-component vector of int)
+0:308 'CA1' (writeonly uniform highp imageCubeArray)
+0:309 Sequence
+0:309 move second child to first child (temp highp 3-component vector of int)
+0:309 's2' (temp highp 3-component vector of int)
+0:309 imageQuerySize (global highp 3-component vector of int)
+0:309 'CA2' (writeonly uniform highp iimageCubeArray)
+0:310 Sequence
+0:310 move second child to first child (temp highp 3-component vector of int)
+0:310 's3' (temp highp 3-component vector of int)
+0:310 imageQuerySize (global highp 3-component vector of int)
+0:310 'CA3' (writeonly uniform highp uimageCubeArray)
+0:312 imageStore (global highp void)
+0:312 'CA1' (writeonly uniform highp imageCubeArray)
+0:312 's3' (temp highp 3-component vector of int)
+0:312 Constant:
+0:312 1.000000
+0:312 1.000000
+0:312 1.000000
+0:312 1.000000
+0:313 imageStore (global highp void)
+0:313 'CA2' (writeonly uniform highp iimageCubeArray)
+0:313 's3' (temp highp 3-component vector of int)
+0:313 Constant:
+0:313 1 (const int)
+0:313 1 (const int)
+0:313 1 (const int)
+0:313 1 (const int)
+0:314 imageStore (global highp void)
+0:314 'CA3' (writeonly uniform highp uimageCubeArray)
+0:314 's3' (temp highp 3-component vector of int)
+0:314 Constant:
+0:314 1 (const uint)
+0:314 1 (const uint)
+0:314 1 (const uint)
+0:314 1 (const uint)
+0:316 Sequence
+0:316 move second child to first child (temp highp 4-component vector of float)
+0:316 'cl1' (temp highp 4-component vector of float)
+0:316 imageLoad (global highp 4-component vector of float)
+0:316 'rCA1' (layout(rgba16f ) readonly uniform highp imageCubeArray)
+0:316 's3' (temp highp 3-component vector of int)
+0:317 Sequence
+0:317 move second child to first child (temp highp 4-component vector of int)
+0:317 'cl2' (temp highp 4-component vector of int)
+0:317 imageLoad (global highp 4-component vector of int)
+0:317 'rCA2' (layout(rgba32i ) readonly uniform highp iimageCubeArray)
+0:317 's3' (temp highp 3-component vector of int)
+0:318 Sequence
+0:318 move second child to first child (temp highp 4-component vector of uint)
+0:318 'cl3' (temp highp 4-component vector of uint)
+0:318 imageLoad (global highp 4-component vector of uint)
+0:318 'rCA3' (layout(r32ui ) readonly uniform highp uimageCubeArray)
+0:318 's3' (temp highp 3-component vector of int)
+0:343 Function Definition: MSA( (global void)
+0:343 Function Parameters:
+0:345 Sequence
+0:345 Sequence
+0:345 move second child to first child (temp highp 4-component vector of float)
+0:345 'tf' (temp highp 4-component vector of float)
+0:345 textureFetch (global highp 4-component vector of float)
+0:345 'samp2DMSA' (uniform highp sampler2DMSArray)
+0:345 Constant:
+0:345 5 (const int)
+0:345 5 (const int)
+0:345 5 (const int)
+0:345 Constant:
+0:345 2 (const int)
+0:346 Sequence
+0:346 move second child to first child (temp highp 4-component vector of int)
+0:346 'tfi' (temp highp 4-component vector of int)
+0:346 textureFetch (global highp 4-component vector of int)
+0:346 'samp2DMSAi' (uniform highp isampler2DMSArray)
+0:346 Constant:
+0:346 5 (const int)
+0:346 5 (const int)
+0:346 5 (const int)
+0:346 Constant:
+0:346 2 (const int)
+0:347 Sequence
+0:347 move second child to first child (temp highp 4-component vector of uint)
+0:347 'tfu' (temp highp 4-component vector of uint)
+0:347 textureFetch (global highp 4-component vector of uint)
+0:347 'samp2DMSAu' (uniform highp usampler2DMSArray)
+0:347 Constant:
+0:347 5 (const int)
+0:347 5 (const int)
+0:347 5 (const int)
+0:347 Constant:
+0:347 2 (const int)
+0:349 Sequence
+0:349 move second child to first child (temp highp 3-component vector of int)
+0:349 'tfs' (temp highp 3-component vector of int)
+0:349 textureSize (global highp 3-component vector of int)
+0:349 'samp2DMSA' (uniform highp sampler2DMSArray)
+0:350 Sequence
+0:350 move second child to first child (temp highp 3-component vector of int)
+0:350 'tfsi' (temp highp 3-component vector of int)
+0:350 textureSize (global highp 3-component vector of int)
+0:350 'samp2DMSAi' (uniform highp isampler2DMSArray)
+0:352 Sequence
+0:352 move second child to first child (temp highp 3-component vector of int)
+0:352 'tfsu' (temp highp 3-component vector of int)
+0:352 textureSize (global highp 3-component vector of int)
+0:352 'samp2DMSAu' (uniform highp usampler2DMSArray)
+0:364 Function Definition: goodImageAtom( (global void)
+0:364 Function Parameters:
+0:? Sequence
+0:370 imageAtomicAdd (global highp int)
+0:370 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:370 'P' (uniform highp 2-component vector of int)
+0:370 'dati' (temp highp int)
+0:371 imageAtomicAdd (global highp uint)
+0:371 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:371 'P' (uniform highp 2-component vector of int)
+0:371 'datu' (temp highp uint)
+0:372 imageAtomicMin (global highp int)
+0:372 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:372 'P' (uniform highp 2-component vector of int)
+0:372 'dati' (temp highp int)
+0:373 imageAtomicMin (global highp uint)
+0:373 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:373 'P' (uniform highp 2-component vector of int)
+0:373 'datu' (temp highp uint)
+0:374 imageAtomicMax (global highp int)
+0:374 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:374 'P' (uniform highp 2-component vector of int)
+0:374 'dati' (temp highp int)
+0:375 imageAtomicMax (global highp uint)
+0:375 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:375 'P' (uniform highp 2-component vector of int)
+0:375 'datu' (temp highp uint)
+0:376 imageAtomicAnd (global highp int)
+0:376 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:376 'P' (uniform highp 2-component vector of int)
+0:376 'dati' (temp highp int)
+0:377 imageAtomicAnd (global highp uint)
+0:377 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:377 'P' (uniform highp 2-component vector of int)
+0:377 'datu' (temp highp uint)
+0:378 imageAtomicOr (global highp int)
+0:378 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:378 'P' (uniform highp 2-component vector of int)
+0:378 'dati' (temp highp int)
+0:379 imageAtomicOr (global highp uint)
+0:379 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:379 'P' (uniform highp 2-component vector of int)
+0:379 'datu' (temp highp uint)
+0:380 imageAtomicXor (global highp int)
+0:380 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:380 'P' (uniform highp 2-component vector of int)
+0:380 'dati' (temp highp int)
+0:381 imageAtomicXor (global highp uint)
+0:381 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:381 'P' (uniform highp 2-component vector of int)
+0:381 'datu' (temp highp uint)
+0:382 imageAtomicExchange (global highp int)
+0:382 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:382 'P' (uniform highp 2-component vector of int)
+0:382 'dati' (temp highp int)
+0:383 imageAtomicExchange (global highp uint)
+0:383 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:383 'P' (uniform highp 2-component vector of int)
+0:383 'datu' (temp highp uint)
+0:384 imageAtomicExchange (global highp float)
+0:384 'im2Df' (layout(r32f ) uniform highp image2D)
+0:384 'P' (uniform highp 2-component vector of int)
+0:384 'datf' (temp highp float)
+0:385 imageAtomicCompSwap (global highp int)
+0:385 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:385 'P' (uniform highp 2-component vector of int)
+0:385 Constant:
+0:385 3 (const int)
+0:385 'dati' (temp highp int)
+0:386 imageAtomicCompSwap (global highp uint)
+0:386 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:386 'P' (uniform highp 2-component vector of int)
+0:386 Constant:
+0:386 5 (const uint)
+0:386 'datu' (temp highp uint)
+0:398 Function Definition: badInterp( (global void)
+0:398 Function Parameters:
+0:400 Sequence
+0:400 Constant:
+0:400 0.000000
+0:401 Constant:
+0:401 0.000000
+0:402 Constant:
+0:402 0.000000
+0:? Linker Objects
+0:? 's' (shared highp 4-component vector of float)
+0:? 'v' (buffer highp 4-component vector of float)
+0:? 'ini' (in highp int)
+0:? 'x' (layout(location=2 ) uniform highp 4X4 matrix of float)
+0:? 'y' (layout(location=3 ) uniform highp 4X4 matrix of float)
+0:? 'xi' (layout(location=2 ) smooth out highp 4X4 matrix of float)
+0:? 'yi' (layout(location=3 ) smooth out highp 4X4 matrix of float)
+0:? 's2dms' (uniform highp sampler2DMS)
+0:? 'is2dms' (uniform highp isampler2DMS)
+0:? 'us2dms' (uniform highp usampler2DMS)
+0:? 'us2dmsa' (uniform mediump usampler2DMSArray)
+0:? 'outb' (smooth out bool)
+0:? 'outo' (smooth out highp sampler2D)
+0:? 'outa' (smooth out 4-element array of highp float)
+0:? 'outaa' (smooth out 4-element array of 2-element array of highp float)
+0:? 'outs' (smooth out structure{global highp float f})
+0:? 'outasa' (smooth out 4-element array of structure{global highp float f})
+0:? 'outsa' (smooth out 4-element array of structure{global highp float f})
+0:? 'outSA' (smooth out structure{global 4-element array of highp float f})
+0:? 'outSS' (smooth out structure{global highp float f, global structure{global highp float f} s})
+0:? 'U430i' (layout(column_major std430 ) uniform block{layout(column_major std430 offset=0 ) uniform highp int a})
+0:? 'B430i' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=0 ) buffer highp int a})
+0:? 'outbinst' (out block{out highp int a, out highp 4-component vector of float v, out highp sampler2D s})
+0:? 'anon@0' (out block{layout(location=12 ) out highp int aAnon, layout(location=13 ) out highp 4-component vector of float vAnon})
+0:? 'aliased' (layout(location=12 ) smooth out highp int)
+0:? 'inbinst' (in block{in highp int a})
+0:? 'anon@1' (out block{gl_Position highp 4-component vector of float Position gl_Position, })
+0:? 'smon' (smooth out block{out highp int i})
+0:? 'fmon' (flat out block{out highp int i})
+0:? 'cmon' (centroid out block{out highp int i})
+0:? 'imon' (invariant out block{out highp int i})
+0:? 'inf' (in highp 2-component vector of float)
+0:? 'ing' (in highp 2-component vector of float)
+0:? 'offsets' (uniform 4-element array of highp 2-component vector of int)
+0:? 'sArray' (uniform 4-element array of highp sampler2D)
+0:? 'sIndex' (uniform highp int)
+0:? 'auArray' (layout(binding=0 offset=0 ) uniform 2-element array of highp atomic_uint)
+0:? 'ubInst' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform highp int i})
+0:? 'bbInst' (layout(column_major shared ) buffer 4-element array of block{layout(column_major shared ) buffer highp int i})
+0:? 'iArray' (writeonly uniform 5-element array of highp image2D)
+0:? 'constOffsets' (const 4-element array of highp 2-component vector of int)
+0:? 0 (const int)
+0:? 0 (const int)
+0:? 0 (const int)
+0:? 0 (const int)
+0:? 0 (const int)
+0:? 0 (const int)
+0:? 0 (const int)
+0:? 0 (const int)
+0:? 'badSamp1' (uniform mediump samplerBuffer)
+0:? 'badSamp2' (uniform mediump isamplerBuffer)
+0:? 'badSamp3' (uniform mediump usamplerBuffer)
+0:? 'badSamp4' (writeonly uniform mediump imageBuffer)
+0:? 'badSamp5' (writeonly uniform mediump iimageBuffer)
+0:? 'badSamp6' (writeonly uniform mediump uimageBuffer)
+0:? 'noPreSamp1' (uniform mediump samplerBuffer)
+0:? 'noPreSamp2' (uniform mediump isamplerBuffer)
+0:? 'noPreSamp3' (uniform mediump usamplerBuffer)
+0:? 'noPreSamp4' (writeonly uniform mediump imageBuffer)
+0:? 'noPreSamp5' (writeonly uniform mediump iimageBuffer)
+0:? 'noPreSamp6' (writeonly uniform mediump uimageBuffer)
+0:? 'bufSamp1' (uniform highp samplerBuffer)
+0:? 'bufSamp2' (uniform highp isamplerBuffer)
+0:? 'bufSamp3' (uniform highp usamplerBuffer)
+0:? 'bufSamp4' (writeonly uniform highp imageBuffer)
+0:? 'bufSamp5' (writeonly uniform highp iimageBuffer)
+0:? 'bufSamp6' (writeonly uniform highp uimageBuffer)
+0:? 'badCA1' (writeonly uniform mediump imageCubeArray)
+0:? 'badCA2' (writeonly uniform mediump iimageCubeArray)
+0:? 'badCA3' (writeonly uniform mediump uimageCubeArray)
+0:? 'badCA4' (uniform mediump samplerCubeArray)
+0:? 'badCA5' (uniform mediump samplerCubeArrayShadow)
+0:? 'badCA6' (uniform mediump isamplerCubeArray)
+0:? 'badCA7' (uniform mediump usamplerCubeArray)
+0:? 'noPreCA1' (writeonly uniform mediump imageCubeArray)
+0:? 'noPreCA2' (writeonly uniform mediump iimageCubeArray)
+0:? 'noPreCA3' (writeonly uniform mediump uimageCubeArray)
+0:? 'noPreCA4' (uniform mediump samplerCubeArray)
+0:? 'noPreCA5' (uniform mediump samplerCubeArrayShadow)
+0:? 'noPreCA6' (uniform mediump isamplerCubeArray)
+0:? 'noPreCA7' (uniform mediump usamplerCubeArray)
+0:? 'CA1' (writeonly uniform highp imageCubeArray)
+0:? 'CA2' (writeonly uniform highp iimageCubeArray)
+0:? 'CA3' (writeonly uniform highp uimageCubeArray)
+0:? 'rCA1' (layout(rgba16f ) readonly uniform highp imageCubeArray)
+0:? 'rCA2' (layout(rgba32i ) readonly uniform highp iimageCubeArray)
+0:? 'rCA3' (layout(r32ui ) readonly uniform highp uimageCubeArray)
+0:? 'CA4' (uniform highp samplerCubeArray)
+0:? 'CA5' (uniform highp samplerCubeArrayShadow)
+0:? 'CA6' (uniform highp isamplerCubeArray)
+0:? 'CA7' (uniform highp usamplerCubeArray)
+0:? 'bad2DMS' (uniform mediump sampler2DMSArray)
+0:? 'bad2DMSi' (uniform mediump isampler2DMSArray)
+0:? 'bad2DMSu' (uniform mediump usampler2DMSArray)
+0:? 'noPrec2DMS' (uniform mediump sampler2DMSArray)
+0:? 'noPrec2DMSi' (uniform mediump isampler2DMSArray)
+0:? 'noPrec2DMSu' (uniform mediump usampler2DMSArray)
+0:? 'samp2DMSA' (uniform highp sampler2DMSArray)
+0:? 'samp2DMSAi' (uniform highp isampler2DMSArray)
+0:? 'samp2DMSAu' (uniform highp usampler2DMSArray)
+0:? 'im2Df' (layout(r32f ) uniform highp image2D)
+0:? 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:? 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:? 'P' (uniform highp 2-component vector of int)
+0:? 'colorSampInBad' (smooth sample out highp 4-component vector of float)
+0:? 'colorSample' (smooth sample out highp 4-component vector of float)
+0:? 'colorfsi' (flat sample out highp 4-component vector of float)
+0:? 'sampInArray' (smooth sample out 4-element array of highp 3-component vector of float)
+0:? 'inv4' (in highp 4-component vector of float)
+0:? 'gl_VertexID' (gl_VertexId highp int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+
+
+Linked vertex stage:
+
+
+Shader version: 310
+Requested GL_EXT_texture_buffer
+Requested GL_OES_gpu_shader5
+Requested GL_OES_shader_image_atomic
+Requested GL_OES_shader_io_blocks
+Requested GL_OES_shader_multisample_interpolation
+Requested GL_OES_texture_buffer
+Requested GL_OES_texture_cube_map_array
+Requested GL_OES_texture_storage_multisample_2d_array
+ERROR: node is still EOpNull!
+0:12 Function Definition: main( (global void)
+0:12 Function Parameters:
+0:? Sequence
+0:15 move second child to first child (temp highp 2-component vector of uint)
+0:15 'u2' (temp highp 2-component vector of uint)
+0:15 addCarry (global highp 2-component vector of uint)
+0:15 'u2' (temp highp 2-component vector of uint)
+0:15 'u2' (temp highp 2-component vector of uint)
+0:15 'u2' (temp highp 2-component vector of uint)
+0:17 move second child to first child (temp highp uint)
+0:17 'u1' (temp highp uint)
+0:17 subBorrow (global highp uint)
+0:17 'u1' (temp highp uint)
+0:17 'u1' (temp highp uint)
+0:17 'u1' (temp highp uint)
+0:19 uMulExtended (global void)
+0:19 'u4' (temp highp 4-component vector of uint)
+0:19 'u4' (temp highp 4-component vector of uint)
+0:19 'u4' (temp highp 4-component vector of uint)
+0:19 'u4' (temp highp 4-component vector of uint)
+0:21 iMulExtended (global void)
+0:21 'i4' (temp highp 4-component vector of int)
+0:21 'i4' (temp highp 4-component vector of int)
+0:21 'i4' (temp highp 4-component vector of int)
+0:21 'i4' (temp highp 4-component vector of int)
+0:23 move second child to first child (temp highp int)
+0:23 'i1' (temp highp int)
+0:23 bitfieldExtract (global highp int)
+0:23 'i1' (temp highp int)
+0:23 Constant:
+0:23 4 (const int)
+0:23 Constant:
+0:23 5 (const int)
+0:25 move second child to first child (temp highp 3-component vector of uint)
+0:25 'u3' (temp highp 3-component vector of uint)
+0:25 bitfieldExtract (global highp 3-component vector of uint)
+0:25 'u3' (temp highp 3-component vector of uint)
+0:25 Constant:
+0:25 4 (const int)
+0:25 Constant:
+0:25 5 (const int)
+0:27 move second child to first child (temp highp 3-component vector of int)
+0:27 'i3' (temp highp 3-component vector of int)
+0:27 bitfieldInsert (global highp 3-component vector of int)
+0:27 'i3' (temp highp 3-component vector of int)
+0:27 'i3' (temp highp 3-component vector of int)
+0:27 Constant:
+0:27 4 (const int)
+0:27 Constant:
+0:27 5 (const int)
+0:28 move second child to first child (temp highp uint)
+0:28 'u1' (temp highp uint)
+0:28 bitfieldInsert (global highp uint)
+0:28 'u1' (temp highp uint)
+0:28 'u1' (temp highp uint)
+0:28 Constant:
+0:28 4 (const int)
+0:28 Constant:
+0:28 5 (const int)
+0:30 move second child to first child (temp highp 2-component vector of int)
+0:30 'i2' (temp highp 2-component vector of int)
+0:30 bitFieldReverse (global highp 2-component vector of int)
+0:30 'i2' (temp highp 2-component vector of int)
+0:31 move second child to first child (temp highp 4-component vector of uint)
+0:31 'u4' (temp highp 4-component vector of uint)
+0:31 bitFieldReverse (global highp 4-component vector of uint)
+0:31 'u4' (temp highp 4-component vector of uint)
+0:32 move second child to first child (temp highp int)
+0:32 'i1' (temp highp int)
+0:32 bitCount (global lowp int)
+0:32 'i1' (temp highp int)
+0:33 move second child to first child (temp highp 3-component vector of int)
+0:33 'i3' (temp highp 3-component vector of int)
+0:33 bitCount (global lowp 3-component vector of int)
+0:33 'u3' (temp highp 3-component vector of uint)
+0:34 move second child to first child (temp highp 2-component vector of int)
+0:34 'i2' (temp highp 2-component vector of int)
+0:34 findLSB (global lowp 2-component vector of int)
+0:34 'i2' (temp highp 2-component vector of int)
+0:35 move second child to first child (temp highp 4-component vector of int)
+0:35 'i4' (temp highp 4-component vector of int)
+0:35 findLSB (global lowp 4-component vector of int)
+0:35 'u4' (temp highp 4-component vector of uint)
+0:36 move second child to first child (temp highp int)
+0:36 'i1' (temp highp int)
+0:36 findMSB (global lowp int)
+0:36 'i1' (temp highp int)
+0:37 move second child to first child (temp highp 2-component vector of int)
+0:37 'i2' (temp highp 2-component vector of int)
+0:37 findMSB (global lowp 2-component vector of int)
+0:37 'u2' (temp highp 2-component vector of uint)
+0:40 move second child to first child (temp highp 3-component vector of float)
+0:40 'v3' (temp highp 3-component vector of float)
+0:40 frexp (global highp 3-component vector of float)
+0:40 'v3' (temp highp 3-component vector of float)
+0:40 'i3' (temp highp 3-component vector of int)
+0:42 move second child to first child (temp highp 2-component vector of float)
+0:42 'v2' (temp highp 2-component vector of float)
+0:42 ldexp (global highp 2-component vector of float)
+0:42 'v2' (temp highp 2-component vector of float)
+0:42 'i2' (temp highp 2-component vector of int)
+0:45 move second child to first child (temp highp uint)
+0:45 'u1' (temp highp uint)
+0:45 PackUnorm4x8 (global highp uint)
+0:45 'v4' (temp mediump 4-component vector of float)
+0:46 move second child to first child (temp highp uint)
+0:46 'u1' (temp highp uint)
+0:46 PackSnorm4x8 (global highp uint)
+0:46 'v4' (temp mediump 4-component vector of float)
+0:47 move second child to first child (temp mediump 4-component vector of float)
+0:47 'v4' (temp mediump 4-component vector of float)
+0:47 UnpackUnorm4x8 (global mediump 4-component vector of float)
+0:47 'u1' (temp highp uint)
+0:48 move second child to first child (temp mediump 4-component vector of float)
+0:48 'v4' (temp mediump 4-component vector of float)
+0:48 UnpackSnorm4x8 (global mediump 4-component vector of float)
+0:48 'u1' (temp highp uint)
+0:60 Function Definition: foo( (global void)
+0:60 Function Parameters:
+0:? Sequence
+0:63 move second child to first child (temp highp 2-component vector of int)
+0:63 'v2' (temp highp 2-component vector of int)
+0:63 textureSize (global highp 2-component vector of int)
+0:63 's2dms' (uniform highp sampler2DMS)
+0:64 move second child to first child (temp highp 2-component vector of int)
+0:64 'v2' (temp highp 2-component vector of int)
+0:64 textureSize (global highp 2-component vector of int)
+0:64 'us2dms' (uniform highp usampler2DMS)
+0:65 Sequence
+0:65 move second child to first child (temp highp 4-component vector of float)
+0:65 'v4' (temp highp 4-component vector of float)
+0:65 textureFetch (global highp 4-component vector of float)
+0:65 's2dms' (uniform highp sampler2DMS)
+0:65 'v2' (temp highp 2-component vector of int)
+0:65 Constant:
+0:65 2 (const int)
+0:66 Sequence
+0:66 move second child to first child (temp highp 4-component vector of int)
+0:66 'iv4' (temp highp 4-component vector of int)
+0:66 textureFetch (global highp 4-component vector of int)
+0:66 'is2dms' (uniform highp isampler2DMS)
+0:66 'v2' (temp highp 2-component vector of int)
+0:66 Constant:
+0:66 2 (const int)
+0:67 Constant:
+0:67 0.000000
+0:69 frexp (global highp float)
+0:69 'f' (temp highp float)
+0:69 'ini' (in highp int)
+0:114 Function Definition: foo_IO( (global void)
+0:114 Function Parameters:
+0:116 Sequence
+0:116 Sequence
+0:116 move second child to first child (temp highp int)
+0:116 'sum' (temp highp int)
+0:116 add (temp highp int)
+0:116 'gl_VertexID' (gl_VertexId highp int VertexId)
+0:117 'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+0:118 move second child to first child (temp highp 4-component vector of float)
+0:118 gl_Position: direct index for structure (gl_Position highp 4-component vector of float Position)
+0:118 'anon@1' (out block{gl_Position highp 4-component vector of float Position gl_Position, })
+0:118 Constant:
+0:118 0 (const uint)
+0:118 Constant:
+0:118 1.000000
+0:118 1.000000
+0:118 1.000000
+0:118 1.000000
+0:119 gl_PointSize: direct index for structure (gl_PointSize highp void PointSize)
+0:119 'anon@1' (out block{gl_Position highp 4-component vector of float Position gl_Position, })
+0:119 Constant:
+0:119 1 (const uint)
+0:153 Function Definition: pfooBad( (global void)
+0:153 Function Parameters:
+0:? Sequence
+0:156 move second child to first child (temp highp 2-component vector of float)
+0:156 'h' (noContraction temp highp 2-component vector of float)
+0:156 fma (global highp 2-component vector of float)
+0:156 'inf' (in highp 2-component vector of float)
+0:156 'ing' (in highp 2-component vector of float)
+0:156 'h' (noContraction temp highp 2-component vector of float)
+0:157 indirect index (temp highp sampler2D)
+0:157 'sArray' (uniform 4-element array of highp sampler2D)
+0:157 add (temp highp int)
+0:157 'sIndex' (uniform highp int)
+0:157 Constant:
+0:157 1 (const int)
+0:158 indirect index (layout(binding=0 offset=0 ) temp highp atomic_uint)
+0:158 'auArray' (layout(binding=0 offset=0 ) uniform 2-element array of highp atomic_uint)
+0:158 add (temp highp int)
+0:158 'sIndex' (uniform highp int)
+0:158 Constant:
+0:158 1 (const int)
+0:159 direct index (layout(column_major shared ) temp block{layout(column_major shared ) uniform highp int i})
+0:159 'ubInst' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform highp int i})
+0:159 Constant:
+0:159 1 (const int)
+0:160 direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer highp int i})
+0:160 'bbInst' (layout(column_major shared ) buffer 4-element array of block{layout(column_major shared ) buffer highp int i})
+0:160 Constant:
+0:160 2 (const int)
+0:161 indirect index (layout(column_major shared ) temp block{layout(column_major shared ) uniform highp int i})
+0:161 'ubInst' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform highp int i})
+0:161 add (temp highp int)
+0:161 'sIndex' (uniform highp int)
+0:161 Constant:
+0:161 1 (const int)
+0:162 indirect index (layout(column_major shared ) temp block{layout(column_major shared ) buffer highp int i})
+0:162 'bbInst' (layout(column_major shared ) buffer 4-element array of block{layout(column_major shared ) buffer highp int i})
+0:162 'sIndex' (uniform highp int)
+0:163 direct index (writeonly temp highp image2D)
+0:163 'iArray' (writeonly uniform 5-element array of highp image2D)
+0:163 Constant:
+0:163 2 (const int)
+0:164 indirect index (writeonly temp highp image2D)
+0:164 'iArray' (writeonly uniform 5-element array of highp image2D)
+0:164 component-wise multiply (temp highp int)
+0:164 'sIndex' (uniform highp int)
+0:164 Constant:
+0:164 2 (const int)
+0:165 textureGatherOffset (global highp 4-component vector of float)
+0:165 direct index (temp highp sampler2D)
+0:165 'sArray' (uniform 4-element array of highp sampler2D)
+0:165 Constant:
+0:165 0 (const int)
+0:165 Constant:
+0:165 0.100000
+0:165 0.100000
+0:165 Convert float to int (temp highp 2-component vector of int)
+0:165 'inf' (in highp 2-component vector of float)
+0:166 textureGatherOffsets (global highp 4-component vector of float)
+0:166 direct index (temp highp sampler2D)
+0:166 'sArray' (uniform 4-element array of highp sampler2D)
+0:166 Constant:
+0:166 0 (const int)
+0:166 Constant:
+0:166 0.100000
+0:166 0.100000
+0:166 Constant:
+0:166 0 (const int)
+0:166 0 (const int)
+0:166 0 (const int)
+0:166 0 (const int)
+0:166 0 (const int)
+0:166 0 (const int)
+0:166 0 (const int)
+0:166 0 (const int)
+0:171 Function Definition: pfoo( (global void)
+0:171 Function Parameters:
+0:? Sequence
+0:174 move second child to first child (temp highp 2-component vector of float)
+0:174 'h' (noContraction temp highp 2-component vector of float)
+0:174 fma (global highp 2-component vector of float)
+0:174 'inf' (in highp 2-component vector of float)
+0:174 'ing' (in highp 2-component vector of float)
+0:174 'h' (noContraction temp highp 2-component vector of float)
+0:175 indirect index (temp highp sampler2D)
+0:175 'sArray' (uniform 4-element array of highp sampler2D)
+0:175 add (temp highp int)
+0:175 'sIndex' (uniform highp int)
+0:175 Constant:
+0:175 1 (const int)
+0:176 indirect index (layout(column_major shared ) temp block{layout(column_major shared ) uniform highp int i})
+0:176 'ubInst' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform highp int i})
+0:176 add (temp highp int)
+0:176 'sIndex' (uniform highp int)
+0:176 Constant:
+0:176 1 (const int)
+0:177 indirect index (layout(column_major shared ) temp block{layout(column_major shared ) buffer highp int i})
+0:177 'bbInst' (layout(column_major shared ) buffer 4-element array of block{layout(column_major shared ) buffer highp int i})
+0:177 subtract (temp highp int)
+0:177 'sIndex' (uniform highp int)
+0:177 Constant:
+0:177 2 (const int)
+0:178 direct index (writeonly temp highp image2D)
+0:178 'iArray' (writeonly uniform 5-element array of highp image2D)
+0:178 Constant:
+0:178 2 (const int)
+0:179 indirect index (writeonly temp highp image2D)
+0:179 'iArray' (writeonly uniform 5-element array of highp image2D)
+0:179 subtract (temp highp int)
+0:179 'sIndex' (uniform highp int)
+0:179 Constant:
+0:179 2 (const int)
+0:180 textureGatherOffset (global highp 4-component vector of float)
+0:180 direct index (temp highp sampler2D)
+0:180 'sArray' (uniform 4-element array of highp sampler2D)
+0:180 Constant:
+0:180 0 (const int)
+0:180 Constant:
+0:180 0.100000
+0:180 0.100000
+0:180 Convert float to int (temp highp 2-component vector of int)
+0:180 'inf' (in highp 2-component vector of float)
+0:181 textureGatherOffsets (global highp 4-component vector of float)
+0:181 direct index (temp highp sampler2D)
+0:181 'sArray' (uniform 4-element array of highp sampler2D)
+0:181 Constant:
+0:181 0 (const int)
+0:181 Constant:
+0:181 0.100000
+0:181 0.100000
+0:181 Constant:
+0:181 0 (const int)
+0:181 0 (const int)
+0:181 0 (const int)
+0:181 0 (const int)
+0:181 0 (const int)
+0:181 0 (const int)
+0:181 0 (const int)
+0:181 0 (const int)
+0:182 textureGatherOffsets (global highp 4-component vector of float)
+0:182 direct index (temp highp sampler2D)
+0:182 'sArray' (uniform 4-element array of highp sampler2D)
+0:182 Constant:
+0:182 0 (const int)
+0:182 Constant:
+0:182 0.100000
+0:182 0.100000
+0:182 'offsets' (uniform 4-element array of highp 2-component vector of int)
+0:220 Function Definition: bufferT( (global void)
+0:220 Function Parameters:
+0:222 Sequence
+0:222 Sequence
+0:222 move second child to first child (temp highp int)
+0:222 's1' (temp highp int)
+0:222 textureSize (global highp int)
+0:222 'bufSamp1' (uniform highp samplerBuffer)
+0:223 Sequence
+0:223 move second child to first child (temp highp int)
+0:223 's2' (temp highp int)
+0:223 textureSize (global highp int)
+0:223 'bufSamp2' (uniform highp isamplerBuffer)
+0:224 Sequence
+0:224 move second child to first child (temp highp int)
+0:224 's3' (temp highp int)
+0:224 textureSize (global highp int)
+0:224 'bufSamp3' (uniform highp usamplerBuffer)
+0:226 Sequence
+0:226 move second child to first child (temp highp int)
+0:226 's4' (temp highp int)
+0:226 imageQuerySize (global highp int)
+0:226 'bufSamp4' (writeonly uniform highp imageBuffer)
+0:227 Sequence
+0:227 move second child to first child (temp highp int)
+0:227 's5' (temp highp int)
+0:227 imageQuerySize (global highp int)
+0:227 'bufSamp5' (writeonly uniform highp iimageBuffer)
+0:228 Sequence
+0:228 move second child to first child (temp highp int)
+0:228 's6' (temp highp int)
+0:228 imageQuerySize (global highp int)
+0:228 'bufSamp6' (writeonly uniform highp uimageBuffer)
+0:230 Sequence
+0:230 move second child to first child (temp highp 4-component vector of float)
+0:230 'f1' (temp highp 4-component vector of float)
+0:230 textureFetch (global highp 4-component vector of float)
+0:230 'bufSamp1' (uniform highp samplerBuffer)
+0:230 's1' (temp highp int)
+0:231 Sequence
+0:231 move second child to first child (temp highp 4-component vector of int)
+0:231 'f2' (temp highp 4-component vector of int)
+0:231 textureFetch (global highp 4-component vector of int)
+0:231 'bufSamp2' (uniform highp isamplerBuffer)
+0:231 's2' (temp highp int)
+0:232 Sequence
+0:232 move second child to first child (temp highp 4-component vector of uint)
+0:232 'f3' (temp highp 4-component vector of uint)
+0:232 textureFetch (global highp 4-component vector of uint)
+0:232 'bufSamp3' (uniform highp usamplerBuffer)
+0:232 's3' (temp highp int)
+0:279 Function Definition: CAT( (global void)
+0:279 Function Parameters:
+0:281 Sequence
+0:281 Sequence
+0:281 move second child to first child (temp highp 3-component vector of int)
+0:281 's4' (temp highp 3-component vector of int)
+0:281 textureSize (global highp 3-component vector of int)
+0:281 'CA4' (uniform highp samplerCubeArray)
+0:281 Constant:
+0:281 1 (const int)
+0:282 Sequence
+0:282 move second child to first child (temp highp 3-component vector of int)
+0:282 's5' (temp highp 3-component vector of int)
+0:282 textureSize (global highp 3-component vector of int)
+0:282 'CA5' (uniform highp samplerCubeArrayShadow)
+0:282 Constant:
+0:282 1 (const int)
+0:283 Sequence
+0:283 move second child to first child (temp highp 3-component vector of int)
+0:283 's6' (temp highp 3-component vector of int)
+0:283 textureSize (global highp 3-component vector of int)
+0:283 'CA6' (uniform highp isamplerCubeArray)
+0:283 Constant:
+0:283 1 (const int)
+0:284 Sequence
+0:284 move second child to first child (temp highp 3-component vector of int)
+0:284 's7' (temp highp 3-component vector of int)
+0:284 textureSize (global highp 3-component vector of int)
+0:284 'CA7' (uniform highp usamplerCubeArray)
+0:284 Constant:
+0:284 1 (const int)
+0:286 Sequence
+0:286 move second child to first child (temp highp 4-component vector of float)
+0:286 't4' (temp highp 4-component vector of float)
+0:286 texture (global highp 4-component vector of float)
+0:286 'CA4' (uniform highp samplerCubeArray)
+0:286 Constant:
+0:286 0.500000
+0:286 0.500000
+0:286 0.500000
+0:286 0.500000
+0:287 Sequence
+0:287 move second child to first child (temp highp float)
+0:287 't5' (temp highp float)
+0:287 texture (global highp float)
+0:287 'CA5' (uniform highp samplerCubeArrayShadow)
+0:287 Constant:
+0:287 0.500000
+0:287 0.500000
+0:287 0.500000
+0:287 0.500000
+0:287 Constant:
+0:287 3.000000
+0:288 Sequence
+0:288 move second child to first child (temp highp 4-component vector of int)
+0:288 't6' (temp highp 4-component vector of int)
+0:288 texture (global highp 4-component vector of int)
+0:288 'CA6' (uniform highp isamplerCubeArray)
+0:288 Constant:
+0:288 0.500000
+0:288 0.500000
+0:288 0.500000
+0:288 0.500000
+0:289 Sequence
+0:289 move second child to first child (temp highp 4-component vector of uint)
+0:289 't7' (temp highp 4-component vector of uint)
+0:289 texture (global highp 4-component vector of uint)
+0:289 'CA7' (uniform highp usamplerCubeArray)
+0:289 Constant:
+0:289 0.500000
+0:289 0.500000
+0:289 0.500000
+0:289 0.500000
+0:291 Sequence
+0:291 move second child to first child (temp highp 4-component vector of float)
+0:291 'L4' (temp highp 4-component vector of float)
+0:291 textureLod (global highp 4-component vector of float)
+0:291 'CA4' (uniform highp samplerCubeArray)
+0:291 Constant:
+0:291 0.500000
+0:291 0.500000
+0:291 0.500000
+0:291 0.500000
+0:291 Constant:
+0:291 0.240000
+0:292 Sequence
+0:292 move second child to first child (temp highp 4-component vector of int)
+0:292 'L6' (temp highp 4-component vector of int)
+0:292 textureLod (global highp 4-component vector of int)
+0:292 'CA6' (uniform highp isamplerCubeArray)
+0:292 Constant:
+0:292 0.500000
+0:292 0.500000
+0:292 0.500000
+0:292 0.500000
+0:292 Constant:
+0:292 0.260000
+0:293 Sequence
+0:293 move second child to first child (temp highp 4-component vector of uint)
+0:293 'L7' (temp highp 4-component vector of uint)
+0:293 textureLod (global highp 4-component vector of uint)
+0:293 'CA7' (uniform highp usamplerCubeArray)
+0:293 Constant:
+0:293 0.500000
+0:293 0.500000
+0:293 0.500000
+0:293 0.500000
+0:293 Constant:
+0:293 0.270000
+0:295 Sequence
+0:295 move second child to first child (temp highp 4-component vector of float)
+0:295 'g4' (temp highp 4-component vector of float)
+0:295 textureGrad (global highp 4-component vector of float)
+0:295 'CA4' (uniform highp samplerCubeArray)
+0:295 Constant:
+0:295 0.500000
+0:295 0.500000
+0:295 0.500000
+0:295 0.500000
+0:295 Constant:
+0:295 0.100000
+0:295 0.100000
+0:295 0.100000
+0:295 Constant:
+0:295 0.200000
+0:295 0.200000
+0:295 0.200000
+0:296 Sequence
+0:296 move second child to first child (temp highp 4-component vector of int)
+0:296 'g6' (temp highp 4-component vector of int)
+0:296 textureGrad (global highp 4-component vector of int)
+0:296 'CA6' (uniform highp isamplerCubeArray)
+0:296 Constant:
+0:296 0.500000
+0:296 0.500000
+0:296 0.500000
+0:296 0.500000
+0:296 Constant:
+0:296 0.100000
+0:296 0.100000
+0:296 0.100000
+0:296 Constant:
+0:296 0.200000
+0:296 0.200000
+0:296 0.200000
+0:297 Sequence
+0:297 move second child to first child (temp highp 4-component vector of uint)
+0:297 'g7' (temp highp 4-component vector of uint)
+0:297 textureGrad (global highp 4-component vector of uint)
+0:297 'CA7' (uniform highp usamplerCubeArray)
+0:297 Constant:
+0:297 0.500000
+0:297 0.500000
+0:297 0.500000
+0:297 0.500000
+0:297 Constant:
+0:297 0.100000
+0:297 0.100000
+0:297 0.100000
+0:297 Constant:
+0:297 0.200000
+0:297 0.200000
+0:297 0.200000
+0:299 Sequence
+0:299 move second child to first child (temp highp 4-component vector of float)
+0:299 'gath4' (temp highp 4-component vector of float)
+0:299 textureGather (global highp 4-component vector of float)
+0:299 'CA4' (uniform highp samplerCubeArray)
+0:299 Constant:
+0:299 0.500000
+0:299 0.500000
+0:299 0.500000
+0:299 0.500000
+0:300 Sequence
+0:300 move second child to first child (temp highp 4-component vector of float)
+0:300 'gathC4' (temp highp 4-component vector of float)
+0:300 textureGather (global highp 4-component vector of float)
+0:300 'CA4' (uniform highp samplerCubeArray)
+0:300 Constant:
+0:300 0.500000
+0:300 0.500000
+0:300 0.500000
+0:300 0.500000
+0:300 Constant:
+0:300 2 (const int)
+0:301 Sequence
+0:301 move second child to first child (temp highp 4-component vector of int)
+0:301 'gath6' (temp highp 4-component vector of int)
+0:301 textureGather (global highp 4-component vector of int)
+0:301 'CA6' (uniform highp isamplerCubeArray)
+0:301 Constant:
+0:301 0.500000
+0:301 0.500000
+0:301 0.500000
+0:301 0.500000
+0:302 Sequence
+0:302 move second child to first child (temp highp 4-component vector of int)
+0:302 'gathC6' (temp highp 4-component vector of int)
+0:302 textureGather (global highp 4-component vector of int)
+0:302 'CA6' (uniform highp isamplerCubeArray)
+0:302 Constant:
+0:302 0.500000
+0:302 0.500000
+0:302 0.500000
+0:302 0.500000
+0:302 Constant:
+0:302 1 (const int)
+0:303 Sequence
+0:303 move second child to first child (temp highp 4-component vector of uint)
+0:303 'gath7' (temp highp 4-component vector of uint)
+0:303 textureGather (global highp 4-component vector of uint)
+0:303 'CA7' (uniform highp usamplerCubeArray)
+0:303 Constant:
+0:303 0.500000
+0:303 0.500000
+0:303 0.500000
+0:303 0.500000
+0:304 Sequence
+0:304 move second child to first child (temp highp 4-component vector of uint)
+0:304 'gathC7' (temp highp 4-component vector of uint)
+0:304 textureGather (global highp 4-component vector of uint)
+0:304 'CA7' (uniform highp usamplerCubeArray)
+0:304 Constant:
+0:304 0.500000
+0:304 0.500000
+0:304 0.500000
+0:304 0.500000
+0:304 Constant:
+0:304 0 (const int)
+0:306 Sequence
+0:306 move second child to first child (temp highp 4-component vector of float)
+0:306 'gath5' (temp highp 4-component vector of float)
+0:306 textureGather (global highp 4-component vector of float)
+0:306 'CA5' (uniform highp samplerCubeArrayShadow)
+0:306 Constant:
+0:306 0.500000
+0:306 0.500000
+0:306 0.500000
+0:306 0.500000
+0:306 Constant:
+0:306 2.500000
+0:308 Sequence
+0:308 move second child to first child (temp highp 3-component vector of int)
+0:308 's1' (temp highp 3-component vector of int)
+0:308 imageQuerySize (global highp 3-component vector of int)
+0:308 'CA1' (writeonly uniform highp imageCubeArray)
+0:309 Sequence
+0:309 move second child to first child (temp highp 3-component vector of int)
+0:309 's2' (temp highp 3-component vector of int)
+0:309 imageQuerySize (global highp 3-component vector of int)
+0:309 'CA2' (writeonly uniform highp iimageCubeArray)
+0:310 Sequence
+0:310 move second child to first child (temp highp 3-component vector of int)
+0:310 's3' (temp highp 3-component vector of int)
+0:310 imageQuerySize (global highp 3-component vector of int)
+0:310 'CA3' (writeonly uniform highp uimageCubeArray)
+0:312 imageStore (global highp void)
+0:312 'CA1' (writeonly uniform highp imageCubeArray)
+0:312 's3' (temp highp 3-component vector of int)
+0:312 Constant:
+0:312 1.000000
+0:312 1.000000
+0:312 1.000000
+0:312 1.000000
+0:313 imageStore (global highp void)
+0:313 'CA2' (writeonly uniform highp iimageCubeArray)
+0:313 's3' (temp highp 3-component vector of int)
+0:313 Constant:
+0:313 1 (const int)
+0:313 1 (const int)
+0:313 1 (const int)
+0:313 1 (const int)
+0:314 imageStore (global highp void)
+0:314 'CA3' (writeonly uniform highp uimageCubeArray)
+0:314 's3' (temp highp 3-component vector of int)
+0:314 Constant:
+0:314 1 (const uint)
+0:314 1 (const uint)
+0:314 1 (const uint)
+0:314 1 (const uint)
+0:316 Sequence
+0:316 move second child to first child (temp highp 4-component vector of float)
+0:316 'cl1' (temp highp 4-component vector of float)
+0:316 imageLoad (global highp 4-component vector of float)
+0:316 'rCA1' (layout(rgba16f ) readonly uniform highp imageCubeArray)
+0:316 's3' (temp highp 3-component vector of int)
+0:317 Sequence
+0:317 move second child to first child (temp highp 4-component vector of int)
+0:317 'cl2' (temp highp 4-component vector of int)
+0:317 imageLoad (global highp 4-component vector of int)
+0:317 'rCA2' (layout(rgba32i ) readonly uniform highp iimageCubeArray)
+0:317 's3' (temp highp 3-component vector of int)
+0:318 Sequence
+0:318 move second child to first child (temp highp 4-component vector of uint)
+0:318 'cl3' (temp highp 4-component vector of uint)
+0:318 imageLoad (global highp 4-component vector of uint)
+0:318 'rCA3' (layout(r32ui ) readonly uniform highp uimageCubeArray)
+0:318 's3' (temp highp 3-component vector of int)
+0:343 Function Definition: MSA( (global void)
+0:343 Function Parameters:
+0:345 Sequence
+0:345 Sequence
+0:345 move second child to first child (temp highp 4-component vector of float)
+0:345 'tf' (temp highp 4-component vector of float)
+0:345 textureFetch (global highp 4-component vector of float)
+0:345 'samp2DMSA' (uniform highp sampler2DMSArray)
+0:345 Constant:
+0:345 5 (const int)
+0:345 5 (const int)
+0:345 5 (const int)
+0:345 Constant:
+0:345 2 (const int)
+0:346 Sequence
+0:346 move second child to first child (temp highp 4-component vector of int)
+0:346 'tfi' (temp highp 4-component vector of int)
+0:346 textureFetch (global highp 4-component vector of int)
+0:346 'samp2DMSAi' (uniform highp isampler2DMSArray)
+0:346 Constant:
+0:346 5 (const int)
+0:346 5 (const int)
+0:346 5 (const int)
+0:346 Constant:
+0:346 2 (const int)
+0:347 Sequence
+0:347 move second child to first child (temp highp 4-component vector of uint)
+0:347 'tfu' (temp highp 4-component vector of uint)
+0:347 textureFetch (global highp 4-component vector of uint)
+0:347 'samp2DMSAu' (uniform highp usampler2DMSArray)
+0:347 Constant:
+0:347 5 (const int)
+0:347 5 (const int)
+0:347 5 (const int)
+0:347 Constant:
+0:347 2 (const int)
+0:349 Sequence
+0:349 move second child to first child (temp highp 3-component vector of int)
+0:349 'tfs' (temp highp 3-component vector of int)
+0:349 textureSize (global highp 3-component vector of int)
+0:349 'samp2DMSA' (uniform highp sampler2DMSArray)
+0:350 Sequence
+0:350 move second child to first child (temp highp 3-component vector of int)
+0:350 'tfsi' (temp highp 3-component vector of int)
+0:350 textureSize (global highp 3-component vector of int)
+0:350 'samp2DMSAi' (uniform highp isampler2DMSArray)
+0:352 Sequence
+0:352 move second child to first child (temp highp 3-component vector of int)
+0:352 'tfsu' (temp highp 3-component vector of int)
+0:352 textureSize (global highp 3-component vector of int)
+0:352 'samp2DMSAu' (uniform highp usampler2DMSArray)
+0:364 Function Definition: goodImageAtom( (global void)
+0:364 Function Parameters:
+0:? Sequence
+0:370 imageAtomicAdd (global highp int)
+0:370 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:370 'P' (uniform highp 2-component vector of int)
+0:370 'dati' (temp highp int)
+0:371 imageAtomicAdd (global highp uint)
+0:371 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:371 'P' (uniform highp 2-component vector of int)
+0:371 'datu' (temp highp uint)
+0:372 imageAtomicMin (global highp int)
+0:372 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:372 'P' (uniform highp 2-component vector of int)
+0:372 'dati' (temp highp int)
+0:373 imageAtomicMin (global highp uint)
+0:373 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:373 'P' (uniform highp 2-component vector of int)
+0:373 'datu' (temp highp uint)
+0:374 imageAtomicMax (global highp int)
+0:374 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:374 'P' (uniform highp 2-component vector of int)
+0:374 'dati' (temp highp int)
+0:375 imageAtomicMax (global highp uint)
+0:375 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:375 'P' (uniform highp 2-component vector of int)
+0:375 'datu' (temp highp uint)
+0:376 imageAtomicAnd (global highp int)
+0:376 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:376 'P' (uniform highp 2-component vector of int)
+0:376 'dati' (temp highp int)
+0:377 imageAtomicAnd (global highp uint)
+0:377 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:377 'P' (uniform highp 2-component vector of int)
+0:377 'datu' (temp highp uint)
+0:378 imageAtomicOr (global highp int)
+0:378 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:378 'P' (uniform highp 2-component vector of int)
+0:378 'dati' (temp highp int)
+0:379 imageAtomicOr (global highp uint)
+0:379 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:379 'P' (uniform highp 2-component vector of int)
+0:379 'datu' (temp highp uint)
+0:380 imageAtomicXor (global highp int)
+0:380 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:380 'P' (uniform highp 2-component vector of int)
+0:380 'dati' (temp highp int)
+0:381 imageAtomicXor (global highp uint)
+0:381 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:381 'P' (uniform highp 2-component vector of int)
+0:381 'datu' (temp highp uint)
+0:382 imageAtomicExchange (global highp int)
+0:382 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:382 'P' (uniform highp 2-component vector of int)
+0:382 'dati' (temp highp int)
+0:383 imageAtomicExchange (global highp uint)
+0:383 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:383 'P' (uniform highp 2-component vector of int)
+0:383 'datu' (temp highp uint)
+0:384 imageAtomicExchange (global highp float)
+0:384 'im2Df' (layout(r32f ) uniform highp image2D)
+0:384 'P' (uniform highp 2-component vector of int)
+0:384 'datf' (temp highp float)
+0:385 imageAtomicCompSwap (global highp int)
+0:385 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:385 'P' (uniform highp 2-component vector of int)
+0:385 Constant:
+0:385 3 (const int)
+0:385 'dati' (temp highp int)
+0:386 imageAtomicCompSwap (global highp uint)
+0:386 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:386 'P' (uniform highp 2-component vector of int)
+0:386 Constant:
+0:386 5 (const uint)
+0:386 'datu' (temp highp uint)
+0:398 Function Definition: badInterp( (global void)
+0:398 Function Parameters:
+0:400 Sequence
+0:400 Constant:
+0:400 0.000000
+0:401 Constant:
+0:401 0.000000
+0:402 Constant:
+0:402 0.000000
+0:? Linker Objects
+0:? 's' (shared highp 4-component vector of float)
+0:? 'v' (buffer highp 4-component vector of float)
+0:? 'ini' (in highp int)
+0:? 'x' (layout(location=2 ) uniform highp 4X4 matrix of float)
+0:? 'y' (layout(location=3 ) uniform highp 4X4 matrix of float)
+0:? 'xi' (layout(location=2 ) smooth out highp 4X4 matrix of float)
+0:? 'yi' (layout(location=3 ) smooth out highp 4X4 matrix of float)
+0:? 's2dms' (uniform highp sampler2DMS)
+0:? 'is2dms' (uniform highp isampler2DMS)
+0:? 'us2dms' (uniform highp usampler2DMS)
+0:? 'us2dmsa' (uniform mediump usampler2DMSArray)
+0:? 'outb' (smooth out bool)
+0:? 'outo' (smooth out highp sampler2D)
+0:? 'outa' (smooth out 4-element array of highp float)
+0:? 'outaa' (smooth out 4-element array of 2-element array of highp float)
+0:? 'outs' (smooth out structure{global highp float f})
+0:? 'outasa' (smooth out 4-element array of structure{global highp float f})
+0:? 'outsa' (smooth out 4-element array of structure{global highp float f})
+0:? 'outSA' (smooth out structure{global 4-element array of highp float f})
+0:? 'outSS' (smooth out structure{global highp float f, global structure{global highp float f} s})
+0:? 'U430i' (layout(column_major std430 ) uniform block{layout(column_major std430 offset=0 ) uniform highp int a})
+0:? 'B430i' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=0 ) buffer highp int a})
+0:? 'outbinst' (out block{out highp int a, out highp 4-component vector of float v, out highp sampler2D s})
+0:? 'anon@0' (out block{layout(location=12 ) out highp int aAnon, layout(location=13 ) out highp 4-component vector of float vAnon})
+0:? 'aliased' (layout(location=12 ) smooth out highp int)
+0:? 'inbinst' (in block{in highp int a})
+0:? 'anon@1' (out block{gl_Position highp 4-component vector of float Position gl_Position, })
+0:? 'smon' (smooth out block{out highp int i})
+0:? 'fmon' (flat out block{out highp int i})
+0:? 'cmon' (centroid out block{out highp int i})
+0:? 'imon' (invariant out block{out highp int i})
+0:? 'inf' (in highp 2-component vector of float)
+0:? 'ing' (in highp 2-component vector of float)
+0:? 'offsets' (uniform 4-element array of highp 2-component vector of int)
+0:? 'sArray' (uniform 4-element array of highp sampler2D)
+0:? 'sIndex' (uniform highp int)
+0:? 'auArray' (layout(binding=0 offset=0 ) uniform 2-element array of highp atomic_uint)
+0:? 'ubInst' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform highp int i})
+0:? 'bbInst' (layout(column_major shared ) buffer 4-element array of block{layout(column_major shared ) buffer highp int i})
+0:? 'iArray' (writeonly uniform 5-element array of highp image2D)
+0:? 'constOffsets' (const 4-element array of highp 2-component vector of int)
+0:? 0 (const int)
+0:? 0 (const int)
+0:? 0 (const int)
+0:? 0 (const int)
+0:? 0 (const int)
+0:? 0 (const int)
+0:? 0 (const int)
+0:? 0 (const int)
+0:? 'badSamp1' (uniform mediump samplerBuffer)
+0:? 'badSamp2' (uniform mediump isamplerBuffer)
+0:? 'badSamp3' (uniform mediump usamplerBuffer)
+0:? 'badSamp4' (writeonly uniform mediump imageBuffer)
+0:? 'badSamp5' (writeonly uniform mediump iimageBuffer)
+0:? 'badSamp6' (writeonly uniform mediump uimageBuffer)
+0:? 'noPreSamp1' (uniform mediump samplerBuffer)
+0:? 'noPreSamp2' (uniform mediump isamplerBuffer)
+0:? 'noPreSamp3' (uniform mediump usamplerBuffer)
+0:? 'noPreSamp4' (writeonly uniform mediump imageBuffer)
+0:? 'noPreSamp5' (writeonly uniform mediump iimageBuffer)
+0:? 'noPreSamp6' (writeonly uniform mediump uimageBuffer)
+0:? 'bufSamp1' (uniform highp samplerBuffer)
+0:? 'bufSamp2' (uniform highp isamplerBuffer)
+0:? 'bufSamp3' (uniform highp usamplerBuffer)
+0:? 'bufSamp4' (writeonly uniform highp imageBuffer)
+0:? 'bufSamp5' (writeonly uniform highp iimageBuffer)
+0:? 'bufSamp6' (writeonly uniform highp uimageBuffer)
+0:? 'badCA1' (writeonly uniform mediump imageCubeArray)
+0:? 'badCA2' (writeonly uniform mediump iimageCubeArray)
+0:? 'badCA3' (writeonly uniform mediump uimageCubeArray)
+0:? 'badCA4' (uniform mediump samplerCubeArray)
+0:? 'badCA5' (uniform mediump samplerCubeArrayShadow)
+0:? 'badCA6' (uniform mediump isamplerCubeArray)
+0:? 'badCA7' (uniform mediump usamplerCubeArray)
+0:? 'noPreCA1' (writeonly uniform mediump imageCubeArray)
+0:? 'noPreCA2' (writeonly uniform mediump iimageCubeArray)
+0:? 'noPreCA3' (writeonly uniform mediump uimageCubeArray)
+0:? 'noPreCA4' (uniform mediump samplerCubeArray)
+0:? 'noPreCA5' (uniform mediump samplerCubeArrayShadow)
+0:? 'noPreCA6' (uniform mediump isamplerCubeArray)
+0:? 'noPreCA7' (uniform mediump usamplerCubeArray)
+0:? 'CA1' (writeonly uniform highp imageCubeArray)
+0:? 'CA2' (writeonly uniform highp iimageCubeArray)
+0:? 'CA3' (writeonly uniform highp uimageCubeArray)
+0:? 'rCA1' (layout(rgba16f ) readonly uniform highp imageCubeArray)
+0:? 'rCA2' (layout(rgba32i ) readonly uniform highp iimageCubeArray)
+0:? 'rCA3' (layout(r32ui ) readonly uniform highp uimageCubeArray)
+0:? 'CA4' (uniform highp samplerCubeArray)
+0:? 'CA5' (uniform highp samplerCubeArrayShadow)
+0:? 'CA6' (uniform highp isamplerCubeArray)
+0:? 'CA7' (uniform highp usamplerCubeArray)
+0:? 'bad2DMS' (uniform mediump sampler2DMSArray)
+0:? 'bad2DMSi' (uniform mediump isampler2DMSArray)
+0:? 'bad2DMSu' (uniform mediump usampler2DMSArray)
+0:? 'noPrec2DMS' (uniform mediump sampler2DMSArray)
+0:? 'noPrec2DMSi' (uniform mediump isampler2DMSArray)
+0:? 'noPrec2DMSu' (uniform mediump usampler2DMSArray)
+0:? 'samp2DMSA' (uniform highp sampler2DMSArray)
+0:? 'samp2DMSAi' (uniform highp isampler2DMSArray)
+0:? 'samp2DMSAu' (uniform highp usampler2DMSArray)
+0:? 'im2Df' (layout(r32f ) uniform highp image2D)
+0:? 'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:? 'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:? 'P' (uniform highp 2-component vector of int)
+0:? 'colorSampInBad' (smooth sample out highp 4-component vector of float)
+0:? 'colorSample' (smooth sample out highp 4-component vector of float)
+0:? 'colorfsi' (flat sample out highp 4-component vector of float)
+0:? 'sampInArray' (smooth sample out 4-element array of highp 3-component vector of float)
+0:? 'inv4' (in highp 4-component vector of float)
+0:? 'gl_VertexID' (gl_VertexId highp int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/310AofA.vert.out b/chromium/third_party/glslang/src/Test/baseResults/310AofA.vert.out
new file mode 100644
index 00000000000..40c432186a0
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/310AofA.vert.out
@@ -0,0 +1,647 @@
+310AofA.vert
+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:17: '' : array size required
+ERROR: 0:23: '' : array size required
+ERROR: 0:28: '[]' : only outermost dimension of an array of arrays can be implicitly sized
+ERROR: 0:40: '' : array size required
+ERROR: 0:48: 'constructor' : constructing non-array constituent from array argument
+ERROR: 0:49: 'constructior' : array constructor argument not correct type to construct array element
+ERROR: 0:62: '[' : array index out of range '4'
+ERROR: 0:78: 'assign' : cannot convert from 'global 4-element array of 7-element array of highp float' to 'global 5-element array of 7-element array of highp float'
+ERROR: 0:79: 'assign' : cannot convert from 'global 4-element array of 7-element array of highp float' to 'global implicitly-sized array of 7-element array of highp float'
+ERROR: 0:81: 'foo' : no matching overloaded function found
+ERROR: 0:86: '==' : wrong operand types: no operation '==' exists that takes a left-hand operand of type 'global 4-element array of 7-element array of highp float' and a right operand of type 'global 5-element array of 7-element array of highp float' (or there is no acceptable conversion)
+ERROR: 0:90: '[' : array index out of range '5'
+ERROR: 0:94: '[' : index out of range '-1'
+ERROR: 0:96: 'assign' : cannot convert from 'temp 3-element array of highp 4-component vector of float' to 'layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float'
+ERROR: 0:103: '' : array size required
+ERROR: 0:104: '' : array size required
+ERROR: 0:105: '' : array size required
+ERROR: 0:106: '' : array size required
+ERROR: 0:107: '' : array size required
+ERROR: 0:110: 'vertex input arrays' : not supported with this profile: es
+ERROR: 0:111: 'vertex-shader array-of-array output' : not supported with this profile: es
+ERROR: 0:113: 'array-of-array of block' : not supported with this profile: es
+ERROR: 22 compilation errors. No code generated.
+
+
+Shader version: 310
+ERROR: node is still EOpNull!
+0:8 Function Definition: f(b1;f1;u1[4];i1[3][2]; (global void)
+0:8 Function Parameters:
+0:8 'a' (in bool)
+0:8 'b' (in highp float)
+0:8 'c' (in 4-element array of highp uint)
+0:8 'd' (in 3-element array of 2-element array of highp int)
+0:11 Function Definition: main( (global void)
+0:11 Function Parameters:
+0:? Sequence
+0:13 Function Call: f(b1;f1;u1[4];i1[3][2]; (global void)
+0:13 Constant:
+0:13 false (const bool)
+0:13 Constant:
+0:13 12.100000
+0:13 Constant:
+0:13 0 (const uint)
+0:13 1 (const uint)
+0:13 1 (const uint)
+0:13 2 (const uint)
+0:13 'd' (temp 3-element array of 2-element array of highp int)
+0:44 Function Definition: foo(f1[5][7]; (global 4-element array of 7-element array of highp float)
+0:44 Function Parameters:
+0:44 'a' (in 5-element array of 7-element array of highp float)
+0:? Sequence
+0:47 move second child to first child (temp 7-element array of highp float)
+0:47 'r' (temp 7-element array of highp float)
+0:47 direct index (temp 7-element array of highp float)
+0:47 'a' (in 5-element array of 7-element array of highp float)
+0:47 Constant:
+0:47 2 (const int)
+0:48 Constant:
+0:48 0.000000
+0:49 Constant:
+0:49 0.000000
+0:50 Branch: Return with expression
+0:50 Construct float (temp 4-element array of 7-element array of float)
+0:50 direct index (temp 7-element array of highp float)
+0:50 'a' (in 5-element array of 7-element array of highp float)
+0:50 Constant:
+0:50 0 (const int)
+0:50 direct index (temp 7-element array of highp float)
+0:50 'a' (in 5-element array of 7-element array of highp float)
+0:50 Constant:
+0:50 1 (const int)
+0:50 'r' (temp 7-element array of highp float)
+0:50 direct index (temp 7-element array of highp float)
+0:50 'a' (in 5-element array of 7-element array of highp float)
+0:50 Constant:
+0:50 3 (const int)
+0:51 Branch: Return with expression
+0:51 Construct float (temp 4-element array of 7-element array of float)
+0:51 direct index (temp 7-element array of highp float)
+0:51 'a' (in 5-element array of 7-element array of highp float)
+0:51 Constant:
+0:51 0 (const int)
+0:51 direct index (temp 7-element array of highp float)
+0:51 'a' (in 5-element array of 7-element array of highp float)
+0:51 Constant:
+0:51 1 (const int)
+0:51 'r' (temp 7-element array of highp float)
+0:51 direct index (temp 7-element array of highp float)
+0:51 'a' (in 5-element array of 7-element array of highp float)
+0:51 Constant:
+0:51 3 (const int)
+0:52 Branch: Return with expression
+0:52 Construct float (temp 4-element array of 7-element array of float)
+0:52 direct index (temp 7-element array of highp float)
+0:52 'a' (in 5-element array of 7-element array of highp float)
+0:52 Constant:
+0:52 0 (const int)
+0:52 direct index (temp 7-element array of highp float)
+0:52 'a' (in 5-element array of 7-element array of highp float)
+0:52 Constant:
+0:52 1 (const int)
+0:52 direct index (temp 7-element array of highp float)
+0:52 'a' (in 5-element array of 7-element array of highp float)
+0:52 Constant:
+0:52 2 (const int)
+0:52 direct index (temp 7-element array of highp float)
+0:52 'a' (in 5-element array of 7-element array of highp float)
+0:52 Constant:
+0:52 3 (const int)
+0:55 Function Definition: bar(f1[5][7]; (global void)
+0:55 Function Parameters:
+0:55 '' (in 5-element array of 7-element array of highp float)
+0:57 Function Definition: foo2( (global void)
+0:57 Function Parameters:
+0:? Sequence
+0:? Sequence
+0:62 move second child to first child (temp highp float)
+0:62 direct index (temp highp float)
+0:62 direct index (temp 2-element array of highp float)
+0:62 direct index (temp 4-element array of 2-element array of highp float)
+0:62 'gu' (temp 3-element array of 4-element array of 2-element array of highp float)
+0:62 Constant:
+0:62 2 (const int)
+0:62 Constant:
+0:62 4 (const int)
+0:62 Constant:
+0:62 1 (const int)
+0:62 Constant:
+0:62 4.000000
+0:64 Sequence
+0:64 move second child to first child (temp 3-element array of 2-element array of highp 4-component vector of float)
+0:64 'ca4' (temp 3-element array of 2-element array of highp 4-component vector of float)
+0:66 Constant:
+0:66 0.000000
+0:66 0.000000
+0:66 0.000000
+0:66 0.000000
+0:66 1.000000
+0:66 1.000000
+0:66 1.000000
+0:66 1.000000
+0:66 0.000000
+0:66 0.000000
+0:66 0.000000
+0:66 0.000000
+0:66 1.000000
+0:66 1.000000
+0:66 1.000000
+0:66 1.000000
+0:66 0.000000
+0:66 0.000000
+0:66 0.000000
+0:66 0.000000
+0:66 1.000000
+0:66 1.000000
+0:66 1.000000
+0:66 1.000000
+0:67 Sequence
+0:67 move second child to first child (temp 3-element array of 2-element array of highp 4-component vector of float)
+0:67 'caim' (temp 3-element array of 2-element array of highp 4-component vector of float)
+0:69 Constant:
+0:69 4.000000
+0:69 4.000000
+0:69 4.000000
+0:69 4.000000
+0:69 2.000000
+0:69 2.000000
+0:69 2.000000
+0:69 2.000000
+0:69 4.000000
+0:69 4.000000
+0:69 4.000000
+0:69 4.000000
+0:69 2.000000
+0:69 2.000000
+0:69 2.000000
+0:69 2.000000
+0:69 4.000000
+0:69 4.000000
+0:69 4.000000
+0:69 4.000000
+0:69 2.000000
+0:69 2.000000
+0:69 2.000000
+0:69 2.000000
+0:70 Sequence
+0:70 move second child to first child (temp 3-element array of 2-element array of highp 4-component vector of float)
+0:70 'caim2' (temp 3-element array of 2-element array of highp 4-component vector of float)
+0:72 Constant:
+0:72 4.000000
+0:72 4.000000
+0:72 4.000000
+0:72 4.000000
+0:72 2.000000
+0:72 2.000000
+0:72 2.000000
+0:72 2.000000
+0:72 4.000000
+0:72 4.000000
+0:72 4.000000
+0:72 4.000000
+0:72 2.000000
+0:72 2.000000
+0:72 2.000000
+0:72 2.000000
+0:72 4.000000
+0:72 4.000000
+0:72 4.000000
+0:72 4.000000
+0:72 2.000000
+0:72 2.000000
+0:72 2.000000
+0:72 2.000000
+0:73 Sequence
+0:73 move second child to first child (temp 3-element array of 2-element array of highp 4-component vector of float)
+0:73 'caim3' (temp 3-element array of 2-element array of highp 4-component vector of float)
+0:75 Constant:
+0:75 4.000000
+0:75 4.000000
+0:75 4.000000
+0:75 4.000000
+0:75 2.000000
+0:75 2.000000
+0:75 2.000000
+0:75 2.000000
+0:75 4.000000
+0:75 4.000000
+0:75 4.000000
+0:75 4.000000
+0:75 2.000000
+0:75 2.000000
+0:75 2.000000
+0:75 2.000000
+0:75 4.000000
+0:75 4.000000
+0:75 4.000000
+0:75 4.000000
+0:75 2.000000
+0:75 2.000000
+0:75 2.000000
+0:75 2.000000
+0:77 move second child to first child (temp 4-element array of 7-element array of highp float)
+0:77 'g4' (global 4-element array of 7-element array of highp float)
+0:77 Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of highp float)
+0:77 'g5' (global 5-element array of 7-element array of highp float)
+0:78 'g5' (global 5-element array of 7-element array of highp float)
+0:79 'gu' (global implicitly-sized array of 7-element array of highp float)
+0:81 Constant:
+0:81 0.000000
+0:82 Function Call: bar(f1[5][7]; (global void)
+0:82 'g5' (global 5-element array of 7-element array of highp float)
+0:84 Test condition and select (temp void)
+0:84 Condition
+0:84 Compare Equal (temp bool)
+0:84 Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of highp float)
+0:84 'g5' (global 5-element array of 7-element array of highp float)
+0:84 'g4' (global 4-element array of 7-element array of highp float)
+0:84 true case is null
+0:86 Test condition and select (temp void)
+0:86 Condition
+0:86 Constant:
+0:86 false (const bool)
+0:86 true case is null
+0:90 move second child to first child (temp highp float)
+0:90 direct index (temp highp float)
+0:90 direct index (temp 7-element array of highp float)
+0:90 'u' (temp 5-element array of 7-element array of highp float)
+0:90 Constant:
+0:90 5 (const int)
+0:90 Constant:
+0:90 2 (const int)
+0:90 Constant:
+0:90 5.000000
+0:91 Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of highp float)
+0:91 'u' (temp 5-element array of 7-element array of highp float)
+0:94 direct index (layout(column_major shared ) temp highp 4-component vector of float)
+0:94 v: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float)
+0:94 direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})
+0:94 'name' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})
+0:94 Constant:
+0:94 1 (const int)
+0:94 Constant:
+0:94 1 (const int)
+0:94 Constant:
+0:94 -1 (const int)
+0:95 move second child to first child (temp highp 4-component vector of float)
+0:95 direct index (layout(column_major shared ) temp highp 4-component vector of float)
+0:95 v: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float)
+0:95 direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})
+0:95 'name' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})
+0:95 Constant:
+0:95 1 (const int)
+0:95 Constant:
+0:95 1 (const int)
+0:95 Constant:
+0:95 1 (const int)
+0:95 Constant:
+0:95 4.300000
+0:95 4.300000
+0:95 4.300000
+0:95 4.300000
+0:96 v: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float)
+0:96 direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})
+0:96 'name' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})
+0:96 Constant:
+0:96 1 (const int)
+0:96 Constant:
+0:96 1 (const int)
+0:98 Constant:
+0:98 7 (const int)
+0:99 array length (temp highp int)
+0:99 v: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float)
+0:99 direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer highp float u, layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v})
+0:99 'name3' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer highp float u, layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v})
+0:99 Constant:
+0:99 0 (const int)
+0:99 Constant:
+0:99 1 (const int)
+0:? Linker Objects
+0:? 'name' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})
+0:? 'uname' (layout(column_major shared ) uniform 3-element array of block{layout(column_major shared ) uniform highp float u, layout(column_major shared ) uniform implicitly-sized array of highp 4-component vector of float v})
+0:? 'name2' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer highp float u, layout(column_major shared ) buffer implicitly-sized array of implicitly-sized array of highp 4-component vector of float v})
+0:? 'name3' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer highp float u, layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v})
+0:? 'many' (global 1-element array of 2-element array of 3-element array of 4-element array of 5-element array of 6-element array of highp float)
+0:? 'gu' (global implicitly-sized array of 7-element array of highp float)
+0:? 'g4' (global 4-element array of 7-element array of highp float)
+0:? 'g5' (global 5-element array of 7-element array of highp float)
+0:? 'inArray' (in 2-element array of 3-element array of highp float)
+0:? 'outArray' (smooth out 2-element array of 3-element array of highp float)
+0:? 'ubaaname' (layout(column_major shared ) uniform 2-element array of 3-element array of block{layout(column_major shared ) uniform highp int a})
+0:? 'gl_VertexID' (gl_VertexId highp int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+
+
+Linked vertex stage:
+
+
+Shader version: 310
+ERROR: node is still EOpNull!
+0:8 Function Definition: f(b1;f1;u1[4];i1[3][2]; (global void)
+0:8 Function Parameters:
+0:8 'a' (in bool)
+0:8 'b' (in highp float)
+0:8 'c' (in 4-element array of highp uint)
+0:8 'd' (in 3-element array of 2-element array of highp int)
+0:11 Function Definition: main( (global void)
+0:11 Function Parameters:
+0:? Sequence
+0:13 Function Call: f(b1;f1;u1[4];i1[3][2]; (global void)
+0:13 Constant:
+0:13 false (const bool)
+0:13 Constant:
+0:13 12.100000
+0:13 Constant:
+0:13 0 (const uint)
+0:13 1 (const uint)
+0:13 1 (const uint)
+0:13 2 (const uint)
+0:13 'd' (temp 3-element array of 2-element array of highp int)
+0:44 Function Definition: foo(f1[5][7]; (global 4-element array of 7-element array of highp float)
+0:44 Function Parameters:
+0:44 'a' (in 5-element array of 7-element array of highp float)
+0:? Sequence
+0:47 move second child to first child (temp 7-element array of highp float)
+0:47 'r' (temp 7-element array of highp float)
+0:47 direct index (temp 7-element array of highp float)
+0:47 'a' (in 5-element array of 7-element array of highp float)
+0:47 Constant:
+0:47 2 (const int)
+0:48 Constant:
+0:48 0.000000
+0:49 Constant:
+0:49 0.000000
+0:50 Branch: Return with expression
+0:50 Construct float (temp 4-element array of 7-element array of float)
+0:50 direct index (temp 7-element array of highp float)
+0:50 'a' (in 5-element array of 7-element array of highp float)
+0:50 Constant:
+0:50 0 (const int)
+0:50 direct index (temp 7-element array of highp float)
+0:50 'a' (in 5-element array of 7-element array of highp float)
+0:50 Constant:
+0:50 1 (const int)
+0:50 'r' (temp 7-element array of highp float)
+0:50 direct index (temp 7-element array of highp float)
+0:50 'a' (in 5-element array of 7-element array of highp float)
+0:50 Constant:
+0:50 3 (const int)
+0:51 Branch: Return with expression
+0:51 Construct float (temp 4-element array of 7-element array of float)
+0:51 direct index (temp 7-element array of highp float)
+0:51 'a' (in 5-element array of 7-element array of highp float)
+0:51 Constant:
+0:51 0 (const int)
+0:51 direct index (temp 7-element array of highp float)
+0:51 'a' (in 5-element array of 7-element array of highp float)
+0:51 Constant:
+0:51 1 (const int)
+0:51 'r' (temp 7-element array of highp float)
+0:51 direct index (temp 7-element array of highp float)
+0:51 'a' (in 5-element array of 7-element array of highp float)
+0:51 Constant:
+0:51 3 (const int)
+0:52 Branch: Return with expression
+0:52 Construct float (temp 4-element array of 7-element array of float)
+0:52 direct index (temp 7-element array of highp float)
+0:52 'a' (in 5-element array of 7-element array of highp float)
+0:52 Constant:
+0:52 0 (const int)
+0:52 direct index (temp 7-element array of highp float)
+0:52 'a' (in 5-element array of 7-element array of highp float)
+0:52 Constant:
+0:52 1 (const int)
+0:52 direct index (temp 7-element array of highp float)
+0:52 'a' (in 5-element array of 7-element array of highp float)
+0:52 Constant:
+0:52 2 (const int)
+0:52 direct index (temp 7-element array of highp float)
+0:52 'a' (in 5-element array of 7-element array of highp float)
+0:52 Constant:
+0:52 3 (const int)
+0:55 Function Definition: bar(f1[5][7]; (global void)
+0:55 Function Parameters:
+0:55 '' (in 5-element array of 7-element array of highp float)
+0:57 Function Definition: foo2( (global void)
+0:57 Function Parameters:
+0:? Sequence
+0:? Sequence
+0:62 move second child to first child (temp highp float)
+0:62 direct index (temp highp float)
+0:62 direct index (temp 2-element array of highp float)
+0:62 direct index (temp 4-element array of 2-element array of highp float)
+0:62 'gu' (temp 3-element array of 4-element array of 2-element array of highp float)
+0:62 Constant:
+0:62 2 (const int)
+0:62 Constant:
+0:62 4 (const int)
+0:62 Constant:
+0:62 1 (const int)
+0:62 Constant:
+0:62 4.000000
+0:64 Sequence
+0:64 move second child to first child (temp 3-element array of 2-element array of highp 4-component vector of float)
+0:64 'ca4' (temp 3-element array of 2-element array of highp 4-component vector of float)
+0:66 Constant:
+0:66 0.000000
+0:66 0.000000
+0:66 0.000000
+0:66 0.000000
+0:66 1.000000
+0:66 1.000000
+0:66 1.000000
+0:66 1.000000
+0:66 0.000000
+0:66 0.000000
+0:66 0.000000
+0:66 0.000000
+0:66 1.000000
+0:66 1.000000
+0:66 1.000000
+0:66 1.000000
+0:66 0.000000
+0:66 0.000000
+0:66 0.000000
+0:66 0.000000
+0:66 1.000000
+0:66 1.000000
+0:66 1.000000
+0:66 1.000000
+0:67 Sequence
+0:67 move second child to first child (temp 3-element array of 2-element array of highp 4-component vector of float)
+0:67 'caim' (temp 3-element array of 2-element array of highp 4-component vector of float)
+0:69 Constant:
+0:69 4.000000
+0:69 4.000000
+0:69 4.000000
+0:69 4.000000
+0:69 2.000000
+0:69 2.000000
+0:69 2.000000
+0:69 2.000000
+0:69 4.000000
+0:69 4.000000
+0:69 4.000000
+0:69 4.000000
+0:69 2.000000
+0:69 2.000000
+0:69 2.000000
+0:69 2.000000
+0:69 4.000000
+0:69 4.000000
+0:69 4.000000
+0:69 4.000000
+0:69 2.000000
+0:69 2.000000
+0:69 2.000000
+0:69 2.000000
+0:70 Sequence
+0:70 move second child to first child (temp 3-element array of 2-element array of highp 4-component vector of float)
+0:70 'caim2' (temp 3-element array of 2-element array of highp 4-component vector of float)
+0:72 Constant:
+0:72 4.000000
+0:72 4.000000
+0:72 4.000000
+0:72 4.000000
+0:72 2.000000
+0:72 2.000000
+0:72 2.000000
+0:72 2.000000
+0:72 4.000000
+0:72 4.000000
+0:72 4.000000
+0:72 4.000000
+0:72 2.000000
+0:72 2.000000
+0:72 2.000000
+0:72 2.000000
+0:72 4.000000
+0:72 4.000000
+0:72 4.000000
+0:72 4.000000
+0:72 2.000000
+0:72 2.000000
+0:72 2.000000
+0:72 2.000000
+0:73 Sequence
+0:73 move second child to first child (temp 3-element array of 2-element array of highp 4-component vector of float)
+0:73 'caim3' (temp 3-element array of 2-element array of highp 4-component vector of float)
+0:75 Constant:
+0:75 4.000000
+0:75 4.000000
+0:75 4.000000
+0:75 4.000000
+0:75 2.000000
+0:75 2.000000
+0:75 2.000000
+0:75 2.000000
+0:75 4.000000
+0:75 4.000000
+0:75 4.000000
+0:75 4.000000
+0:75 2.000000
+0:75 2.000000
+0:75 2.000000
+0:75 2.000000
+0:75 4.000000
+0:75 4.000000
+0:75 4.000000
+0:75 4.000000
+0:75 2.000000
+0:75 2.000000
+0:75 2.000000
+0:75 2.000000
+0:77 move second child to first child (temp 4-element array of 7-element array of highp float)
+0:77 'g4' (global 4-element array of 7-element array of highp float)
+0:77 Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of highp float)
+0:77 'g5' (global 5-element array of 7-element array of highp float)
+0:78 'g5' (global 5-element array of 7-element array of highp float)
+0:79 'gu' (global 1-element array of 7-element array of highp float)
+0:81 Constant:
+0:81 0.000000
+0:82 Function Call: bar(f1[5][7]; (global void)
+0:82 'g5' (global 5-element array of 7-element array of highp float)
+0:84 Test condition and select (temp void)
+0:84 Condition
+0:84 Compare Equal (temp bool)
+0:84 Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of highp float)
+0:84 'g5' (global 5-element array of 7-element array of highp float)
+0:84 'g4' (global 4-element array of 7-element array of highp float)
+0:84 true case is null
+0:86 Test condition and select (temp void)
+0:86 Condition
+0:86 Constant:
+0:86 false (const bool)
+0:86 true case is null
+0:90 move second child to first child (temp highp float)
+0:90 direct index (temp highp float)
+0:90 direct index (temp 7-element array of highp float)
+0:90 'u' (temp 5-element array of 7-element array of highp float)
+0:90 Constant:
+0:90 5 (const int)
+0:90 Constant:
+0:90 2 (const int)
+0:90 Constant:
+0:90 5.000000
+0:91 Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of highp float)
+0:91 'u' (temp 5-element array of 7-element array of highp float)
+0:94 direct index (layout(column_major shared ) temp highp 4-component vector of float)
+0:94 v: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float)
+0:94 direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})
+0:94 'name' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})
+0:94 Constant:
+0:94 1 (const int)
+0:94 Constant:
+0:94 1 (const int)
+0:94 Constant:
+0:94 -1 (const int)
+0:95 move second child to first child (temp highp 4-component vector of float)
+0:95 direct index (layout(column_major shared ) temp highp 4-component vector of float)
+0:95 v: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float)
+0:95 direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})
+0:95 'name' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})
+0:95 Constant:
+0:95 1 (const int)
+0:95 Constant:
+0:95 1 (const int)
+0:95 Constant:
+0:95 1 (const int)
+0:95 Constant:
+0:95 4.300000
+0:95 4.300000
+0:95 4.300000
+0:95 4.300000
+0:96 v: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float)
+0:96 direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})
+0:96 'name' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})
+0:96 Constant:
+0:96 1 (const int)
+0:96 Constant:
+0:96 1 (const int)
+0:98 Constant:
+0:98 7 (const int)
+0:99 array length (temp highp int)
+0:99 v: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float)
+0:99 direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer highp float u, layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v})
+0:99 'name3' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer highp float u, layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v})
+0:99 Constant:
+0:99 0 (const int)
+0:99 Constant:
+0:99 1 (const int)
+0:? Linker Objects
+0:? 'name' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})
+0:? 'uname' (layout(column_major shared ) uniform 3-element array of block{layout(column_major shared ) uniform highp float u, layout(column_major shared ) uniform 1-element array of highp 4-component vector of float v})
+0:? 'name2' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer highp float u, layout(column_major shared ) buffer implicitly-sized array of implicitly-sized array of highp 4-component vector of float v})
+0:? 'name3' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer highp float u, layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v})
+0:? 'many' (global 1-element array of 2-element array of 3-element array of 4-element array of 5-element array of 6-element array of highp float)
+0:? 'gu' (global 1-element array of 7-element array of highp float)
+0:? 'g4' (global 4-element array of 7-element array of highp float)
+0:? 'g5' (global 5-element array of 7-element array of highp float)
+0:? 'inArray' (in 2-element array of 3-element array of highp float)
+0:? 'outArray' (smooth out 2-element array of 3-element array of highp float)
+0:? 'ubaaname' (layout(column_major shared ) uniform 2-element array of 3-element array of block{layout(column_major shared ) uniform highp int a})
+0:? 'gl_VertexID' (gl_VertexId highp int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/310implicitSizeArrayError.vert.out b/chromium/third_party/glslang/src/Test/baseResults/310implicitSizeArrayError.vert.out
new file mode 100644
index 00000000000..963735d853d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/310implicitSizeArrayError.vert.out
@@ -0,0 +1,50 @@
+310implicitSizeArrayError.vert
+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:3: '' : array size required
+ERROR: 1 compilation errors. No code generated.
+
+
+Shader version: 310
+ERROR: node is still EOpNull!
+0:6 Function Definition: main( (global void)
+0:6 Function Parameters:
+0:7 Sequence
+0:7 move second child to first child (temp highp int)
+0:7 'o' (layout(location=0 ) smooth out highp int)
+0:7 direct index (layout(column_major shared ) temp highp int)
+0:7 a: direct index for structure (layout(column_major shared ) uniform implicitly-sized array of highp int)
+0:7 'uni' (layout(location=0 column_major shared ) uniform block{layout(column_major shared ) uniform implicitly-sized array of highp int a})
+0:7 Constant:
+0:7 0 (const int)
+0:7 Constant:
+0:7 2 (const int)
+0:? Linker Objects
+0:? 'uni' (layout(location=0 column_major shared ) uniform block{layout(column_major shared ) uniform implicitly-sized array of highp int a})
+0:? 'o' (layout(location=0 ) smooth out highp int)
+0:? 'gl_VertexID' (gl_VertexId highp int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+
+
+Linked vertex stage:
+
+
+Shader version: 310
+ERROR: node is still EOpNull!
+0:6 Function Definition: main( (global void)
+0:6 Function Parameters:
+0:7 Sequence
+0:7 move second child to first child (temp highp int)
+0:7 'o' (layout(location=0 ) smooth out highp int)
+0:7 direct index (layout(column_major shared ) temp highp int)
+0:7 a: direct index for structure (layout(column_major shared ) uniform 1-element array of highp int)
+0:7 'uni' (layout(location=0 column_major shared ) uniform block{layout(column_major shared ) uniform 1-element array of highp int a})
+0:7 Constant:
+0:7 0 (const int)
+0:7 Constant:
+0:7 2 (const int)
+0:? Linker Objects
+0:? 'uni' (layout(location=0 column_major shared ) uniform block{layout(column_major shared ) uniform 1-element array of highp int a})
+0:? 'o' (layout(location=0 ) smooth out highp int)
+0:? 'gl_VertexID' (gl_VertexId highp int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/330.frag.out b/chromium/third_party/glslang/src/Test/baseResults/330.frag.out
new file mode 100644
index 00000000000..904ad3edf38
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/330.frag.out
@@ -0,0 +1,217 @@
+330.frag
+ERROR: 0:27: 'block declaration' : cannot redeclare block: gl_block
+ERROR: 0:31: 'gl_name' : identifiers starting with "gl_" are reserved
+ERROR: 0:32: 'gl_i' : identifiers starting with "gl_" are reserved
+ERROR: 0:35: 'gl_in' : no declaration found for redeclaration
+ERROR: 0:39: 'gl_FragCoord' : cannot redeclare a non block as a block
+ERROR: 0:44: 'non-literal layout-id value' : not supported for this version or the enabled extensions
+ERROR: 0:44: 'layout-id value' : cannot be negative
+ERROR: 0:45: 'non-literal layout-id value' : not supported for this version or the enabled extensions
+ERROR: 0:46: 'layout-id value' : scalar integer expression required
+ERROR: 0:46: 'location' : location is too large
+ERROR: 0:47: 'non-literal layout-id value' : not supported for this version or the enabled extensions
+ERROR: 0:48: 'non-literal layout-id value' : not supported for this version or the enabled extensions
+ERROR: 0:52: 'f2' : cannot use layout qualifiers on structure members
+ERROR: 0:57: 'location on block member' : not supported for this version or the enabled extensions
+ERROR: 0:62: 'location on block member' : can only use in an in/out block
+ERROR: 0:62: 'location qualifier on uniform or buffer' : not supported for this version or the enabled extensions
+ERROR: 0:60: 'location qualifier on uniform or buffer' : not supported for this version or the enabled extensions
+ERROR: 0:68: 'layout-id value' : cannot be negative
+ERROR: 0:69: 'layout-id value' : cannot be negative
+ERROR: 0:76: 'f2' : cannot use layout qualifiers on structure members
+ERROR: 0:91: 'location on block member' : can only use in an in/out block
+ERROR: 0:91: 'location qualifier on uniform or buffer' : not supported for this version or the enabled extensions
+ERROR: 0:91: 'location' : overlapping use of location 3
+ERROR: 0:89: 'location qualifier on uniform or buffer' : not supported for this version or the enabled extensions
+ERROR: 0:94: 'location' : either the block needs a location, or all members need a location, or no members have a location
+ERROR: 0:108: 'A' : cannot use layout qualifiers on structure members
+ERROR: 0:119: 'location' : overlapping use of location 44
+ERROR: 0:122: 'index' : can only be used with an explicit location
+ERROR: 0:124: 'location' : overlapping use of location 0
+ERROR: 0:125: 'index' : can only be used on an output
+ERROR: 0:126: 'index' : can only be used on an output
+ERROR: 0:126: 'location/component/index' : cannot declare a default, use a full declaration
+ERROR: 0:127: 'location/component/index' : cannot declare a default, use a full declaration
+ERROR: 0:128: 'output block' : not supported in this stage: fragment
+ERROR: 0:140: 'textureQueryLod' : no matching overloaded function found
+ERROR: 0:140: 'assign' : cannot convert from 'const float' to 'temp 2-component vector of float'
+ERROR: 0:141: 'textureQueryLod' : no matching overloaded function found
+ERROR: 0:141: 'assign' : cannot convert from 'const float' to 'temp 2-component vector of float'
+ERROR: 0:152: 'index' : value must be 0 or 1
+ERROR: 39 compilation errors. No code generated.
+
+
+Shader version: 330
+Requested GL_ARB_enhanced_layouts
+Requested GL_ARB_separate_shader_objects
+ERROR: node is still EOpNull!
+0:8 Function Definition: main( (global void)
+0:8 Function Parameters:
+0:10 Sequence
+0:10 move second child to first child (temp 4-component vector of float)
+0:10 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:10 'varyingVar' (smooth in 4-component vector of float)
+0:11 move second child to first child (temp 4-component vector of float)
+0:11 direct index (temp 4-component vector of float FragData)
+0:11 'gl_FragData' (fragColor 32-element array of 4-component vector of float FragData)
+0:11 Constant:
+0:11 1 (const int)
+0:11 'inVar' (smooth in 4-component vector of float)
+0:12 Sequence
+0:12 move second child to first child (temp int)
+0:12 'buffer' (temp int)
+0:12 Constant:
+0:12 4 (const int)
+0:21 Function Definition: foo( (global void)
+0:21 Function Parameters:
+0:23 Sequence
+0:23 Sequence
+0:23 move second child to first child (temp 4-component vector of float)
+0:23 'c' (temp 4-component vector of float)
+0:23 gl_Color: direct index for structure (in 4-component vector of float Color)
+0:23 'anon@0' (in block{in 4-component vector of float Color gl_Color, })
+0:23 Constant:
+0:23 2 (const uint)
+0:24 move second child to first child (temp 4-component vector of float)
+0:24 'outVar' (layout(location=0 index=0 ) out 4-component vector of float)
+0:24 'inVar' (smooth in 4-component vector of float)
+0:133 Function Definition: qlod( (global void)
+0:133 Function Parameters:
+0:? Sequence
+0:140 'lod' (temp 2-component vector of float)
+0:141 'lod' (temp 2-component vector of float)
+0:147 Function Definition: fooKeyMem( (global void)
+0:147 Function Parameters:
+0:149 Sequence
+0:149 precise: direct index for structure (global int)
+0:149 'KeyMem' (global structure{global int precise})
+0:149 Constant:
+0:149 0 (const int)
+0:? Linker Objects
+0:? 'inVar' (smooth in 4-component vector of float)
+0:? 'outVar' (layout(location=0 index=0 ) out 4-component vector of float)
+0:? 'varyingVar' (smooth in 4-component vector of float)
+0:? 'anon@0' (in block{in 4-component vector of float Color gl_Color, })
+0:? 'gl_name' (in block{in int gl_i})
+0:? 'start' (const int)
+0:? 6 (const int)
+0:? 'v1' (smooth in 4-component vector of float)
+0:? 'v2' (layout(location=8 ) smooth in 4-component vector of float)
+0:? 'v20' (smooth in 4-component vector of float)
+0:? 'v21' (layout(location=60 ) smooth in float)
+0:? 'v22' (layout(location=2 ) smooth in float)
+0:? 'anon@1' (in block{layout(location=1 component=0 ) in float f1, layout(location=3 ) in float f2})
+0:? 'uinst' (layout(location=1 column_major shared ) uniform block{layout(column_major shared ) uniform float f1, layout(location=3 column_major shared ) uniform float f2})
+0:? 'v3' (layout(location=6 ) smooth in 4-component vector of float)
+0:? 'v4' (smooth in 4-component vector of float)
+0:? 'v5' (smooth in 4-component vector of float)
+0:? 'v6' (layout(location=30 ) smooth in 4-component vector of float)
+0:? 'v23' (layout(location=61 ) smooth in float)
+0:? 'v24' (layout(location=62 ) smooth in float)
+0:? 'ininst2' (in block{layout(location=28 component=0 ) in bool b1, layout(location=29 component=0 ) in float f1, layout(location=25 ) in float f2, layout(location=26 component=0 ) in 4-component vector of float f3, layout(location=21 ) in structure{global float f1, temp float f2} s2, layout(location=23 component=0 ) in 4-component vector of float f4, layout(location=24 component=0 ) in 4-component vector of float f5})
+0:? 'uinst2' (layout(location=13 column_major shared ) uniform block{layout(column_major shared ) uniform float f1, layout(location=3 column_major shared ) uniform float f2})
+0:? 'in3' (in block{in float f1, layout(location=40 ) in float f2})
+0:? 'in4' (in block{layout(location=50 ) in float f1, layout(location=51 ) in float f2})
+0:? 's' (layout(location=33 ) smooth in structure{global 3-component vector of float a, global 2X2 matrix of float b, global 2-element array of 4-component vector of float c, temp 2-component vector of float A})
+0:? 'anon@2' (in block{layout(location=44 component=0 ) in 4-component vector of float d, layout(location=45 component=0 ) in 4-component vector of float e, layout(location=47 ) in 4-component vector of float f, layout(location=48 component=0 ) in 4-component vector of float g, layout(location=41 ) in 4-component vector of float h, layout(location=42 component=0 ) in 4-component vector of float i, layout(location=43 component=0 ) in 4-component vector of float j, layout(location=44 component=0 ) in 4-component vector of float k})
+0:? 'outVar2' (layout(location=4095 index=0 ) out 4-component vector of float)
+0:? 'outVar3' (layout(location=0 index=1 ) out 4-component vector of float)
+0:? 'outVar4' (layout(location=0 index=1 ) out 4-component vector of float)
+0:? 'indexIn' (layout(location=27 index=0 ) smooth in 4-component vector of float)
+0:? 'indexBlockI' (layout(location=26 index=0 ) out block{out int a})
+0:? 'samp1D' (uniform sampler1D)
+0:? 'samp2Ds' (uniform sampler2DShadow)
+0:? 'precise' (global int)
+0:? 'KeyMem' (global structure{global int precise})
+0:? 'outIndex2' (layout(location=28 index=0 ) out 4-component vector of float)
+
+
+Linked fragment stage:
+
+ERROR: Linking fragment stage: Cannot use gl_FragColor or gl_FragData when using user-defined outputs
+ERROR: Linking fragment stage: Cannot use both gl_FragColor and gl_FragData
+
+Shader version: 330
+Requested GL_ARB_enhanced_layouts
+Requested GL_ARB_separate_shader_objects
+ERROR: node is still EOpNull!
+0:8 Function Definition: main( (global void)
+0:8 Function Parameters:
+0:10 Sequence
+0:10 move second child to first child (temp 4-component vector of float)
+0:10 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:10 'varyingVar' (smooth in 4-component vector of float)
+0:11 move second child to first child (temp 4-component vector of float)
+0:11 direct index (temp 4-component vector of float FragData)
+0:11 'gl_FragData' (fragColor 32-element array of 4-component vector of float FragData)
+0:11 Constant:
+0:11 1 (const int)
+0:11 'inVar' (smooth in 4-component vector of float)
+0:12 Sequence
+0:12 move second child to first child (temp int)
+0:12 'buffer' (temp int)
+0:12 Constant:
+0:12 4 (const int)
+0:21 Function Definition: foo( (global void)
+0:21 Function Parameters:
+0:23 Sequence
+0:23 Sequence
+0:23 move second child to first child (temp 4-component vector of float)
+0:23 'c' (temp 4-component vector of float)
+0:23 gl_Color: direct index for structure (in 4-component vector of float Color)
+0:23 'anon@0' (in block{in 4-component vector of float Color gl_Color, })
+0:23 Constant:
+0:23 2 (const uint)
+0:24 move second child to first child (temp 4-component vector of float)
+0:24 'outVar' (layout(location=0 index=0 ) out 4-component vector of float)
+0:24 'inVar' (smooth in 4-component vector of float)
+0:133 Function Definition: qlod( (global void)
+0:133 Function Parameters:
+0:? Sequence
+0:140 'lod' (temp 2-component vector of float)
+0:141 'lod' (temp 2-component vector of float)
+0:147 Function Definition: fooKeyMem( (global void)
+0:147 Function Parameters:
+0:149 Sequence
+0:149 precise: direct index for structure (global int)
+0:149 'KeyMem' (global structure{global int precise})
+0:149 Constant:
+0:149 0 (const int)
+0:? Linker Objects
+0:? 'inVar' (smooth in 4-component vector of float)
+0:? 'outVar' (layout(location=0 index=0 ) out 4-component vector of float)
+0:? 'varyingVar' (smooth in 4-component vector of float)
+0:? 'anon@0' (in block{in 4-component vector of float Color gl_Color, })
+0:? 'gl_name' (in block{in int gl_i})
+0:? 'start' (const int)
+0:? 6 (const int)
+0:? 'v1' (smooth in 4-component vector of float)
+0:? 'v2' (layout(location=8 ) smooth in 4-component vector of float)
+0:? 'v20' (smooth in 4-component vector of float)
+0:? 'v21' (layout(location=60 ) smooth in float)
+0:? 'v22' (layout(location=2 ) smooth in float)
+0:? 'anon@1' (in block{layout(location=1 component=0 ) in float f1, layout(location=3 ) in float f2})
+0:? 'uinst' (layout(location=1 column_major shared ) uniform block{layout(column_major shared ) uniform float f1, layout(location=3 column_major shared ) uniform float f2})
+0:? 'v3' (layout(location=6 ) smooth in 4-component vector of float)
+0:? 'v4' (smooth in 4-component vector of float)
+0:? 'v5' (smooth in 4-component vector of float)
+0:? 'v6' (layout(location=30 ) smooth in 4-component vector of float)
+0:? 'v23' (layout(location=61 ) smooth in float)
+0:? 'v24' (layout(location=62 ) smooth in float)
+0:? 'ininst2' (in block{layout(location=28 component=0 ) in bool b1, layout(location=29 component=0 ) in float f1, layout(location=25 ) in float f2, layout(location=26 component=0 ) in 4-component vector of float f3, layout(location=21 ) in structure{global float f1, temp float f2} s2, layout(location=23 component=0 ) in 4-component vector of float f4, layout(location=24 component=0 ) in 4-component vector of float f5})
+0:? 'uinst2' (layout(location=13 column_major shared ) uniform block{layout(column_major shared ) uniform float f1, layout(location=3 column_major shared ) uniform float f2})
+0:? 'in3' (in block{in float f1, layout(location=40 ) in float f2})
+0:? 'in4' (in block{layout(location=50 ) in float f1, layout(location=51 ) in float f2})
+0:? 's' (layout(location=33 ) smooth in structure{global 3-component vector of float a, global 2X2 matrix of float b, global 2-element array of 4-component vector of float c, temp 2-component vector of float A})
+0:? 'anon@2' (in block{layout(location=44 component=0 ) in 4-component vector of float d, layout(location=45 component=0 ) in 4-component vector of float e, layout(location=47 ) in 4-component vector of float f, layout(location=48 component=0 ) in 4-component vector of float g, layout(location=41 ) in 4-component vector of float h, layout(location=42 component=0 ) in 4-component vector of float i, layout(location=43 component=0 ) in 4-component vector of float j, layout(location=44 component=0 ) in 4-component vector of float k})
+0:? 'outVar2' (layout(location=4095 index=0 ) out 4-component vector of float)
+0:? 'outVar3' (layout(location=0 index=1 ) out 4-component vector of float)
+0:? 'outVar4' (layout(location=0 index=1 ) out 4-component vector of float)
+0:? 'indexIn' (layout(location=27 index=0 ) smooth in 4-component vector of float)
+0:? 'indexBlockI' (layout(location=26 index=0 ) out block{out int a})
+0:? 'samp1D' (uniform sampler1D)
+0:? 'samp2Ds' (uniform sampler2DShadow)
+0:? 'precise' (global int)
+0:? 'KeyMem' (global structure{global int precise})
+0:? 'outIndex2' (layout(location=28 index=0 ) out 4-component vector of float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/330comp.frag.out b/chromium/third_party/glslang/src/Test/baseResults/330comp.frag.out
new file mode 100644
index 00000000000..58d6e5fdf6a
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/330comp.frag.out
@@ -0,0 +1,48 @@
+330comp.frag
+Shader version: 330
+0:? Sequence
+0:8 Function Definition: main( (global void)
+0:8 Function Parameters:
+0:10 Sequence
+0:10 move second child to first child (temp 4-component vector of float)
+0:10 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:10 'varyingVar' (smooth in 4-component vector of float)
+0:11 move second child to first child (temp 4-component vector of float)
+0:11 direct index (temp 4-component vector of float FragData)
+0:11 'gl_FragData' (fragColor 32-element array of 4-component vector of float FragData)
+0:11 Constant:
+0:11 1 (const int)
+0:11 vector-times-matrix (temp 4-component vector of float)
+0:11 'inVar' (smooth in 4-component vector of float)
+0:11 'gl_ModelViewMatrix' (uniform 4X4 matrix of float)
+0:? Linker Objects
+0:? 'inVar' (smooth in 4-component vector of float)
+0:? 'outVar' (out 4-component vector of float)
+0:? 'varyingVar' (smooth in 4-component vector of float)
+
+
+Linked fragment stage:
+
+ERROR: Linking fragment stage: Cannot use both gl_FragColor and gl_FragData
+
+Shader version: 330
+0:? Sequence
+0:8 Function Definition: main( (global void)
+0:8 Function Parameters:
+0:10 Sequence
+0:10 move second child to first child (temp 4-component vector of float)
+0:10 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:10 'varyingVar' (smooth in 4-component vector of float)
+0:11 move second child to first child (temp 4-component vector of float)
+0:11 direct index (temp 4-component vector of float FragData)
+0:11 'gl_FragData' (fragColor 32-element array of 4-component vector of float FragData)
+0:11 Constant:
+0:11 1 (const int)
+0:11 vector-times-matrix (temp 4-component vector of float)
+0:11 'inVar' (smooth in 4-component vector of float)
+0:11 'gl_ModelViewMatrix' (uniform 4X4 matrix of float)
+0:? Linker Objects
+0:? 'inVar' (smooth in 4-component vector of float)
+0:? 'outVar' (out 4-component vector of float)
+0:? 'varyingVar' (smooth in 4-component vector of float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/400.frag.out b/chromium/third_party/glslang/src/Test/baseResults/400.frag.out
new file mode 100644
index 00000000000..33a8c9ab05f
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/400.frag.out
@@ -0,0 +1,998 @@
+400.frag
+Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:18: 'textureGatherOffsets(...)' : must be a compile-time constant: offsets argument
+ERROR: 0:22: 'textureGatherOffset(...)' : must be a compile-time constant: component argument
+ERROR: 0:23: 'textureGatherOffset(...)' : must be 0, 1, 2, or 3: component argument
+ERROR: 0:30: 'location qualifier on input' : not supported for this version or the enabled extensions
+ERROR: 0:38: 'location qualifier on uniform or buffer' : not supported for this version or the enabled extensions
+ERROR: 0:40: 'redeclaration' : cannot apply layout qualifier to gl_Color
+ERROR: 0:41: 'redeclaration' : cannot change qualification of gl_ClipDistance
+ERROR: 0:43: 'gl_FragCoord' : cannot redeclare after use
+ERROR: 0:51: 'texel offset' : argument must be compile-time constant
+ERROR: 0:53: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]
+ERROR: 0:53: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]
+ERROR: 0:54: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]
+ERROR: 0:54: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]
+ERROR: 0:57: 'patch' : not supported in this stage: fragment
+ERROR: 0:58: 'patch' : not supported in this stage: fragment
+ERROR: 0:58: 'centroid/sample/patch' : can't use auxiliary qualifier on a fragment output
+ERROR: 0:73: 'dFdxFine' : required extension not requested: GL_ARB_derivative_control
+ERROR: 0:74: 'dFdyCoarse' : required extension not requested: GL_ARB_derivative_control
+ERROR: 0:75: 'fwidthCoarse' : required extension not requested: GL_ARB_derivative_control
+ERROR: 0:75: 'fwidthFine' : required extension not requested: GL_ARB_derivative_control
+ERROR: 0:104: 'centroid/sample/patch' : can't use auxiliary qualifier on a fragment output
+ERROR: 0:123: 'interpolateAtCentroid' : no matching overloaded function found
+ERROR: 0:125: 'interpolateAtCentroid' : first argument must be an interpolant, or interpolant-array element
+ERROR: 0:127: 'interpolateAtSample' : no matching overloaded function found
+ERROR: 0:132: 'interpolateAtOffset' : no matching overloaded function found
+ERROR: 0:134: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element
+ERROR: 0:135: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element
+ERROR: 0:136: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element
+ERROR: 0:139: 'interpolateAtCentroid' : first argument must be an interpolant, or interpolant-array element
+ERROR: 0:140: 'interpolateAtSample' : first argument must be an interpolant, or interpolant-array element
+ERROR: 0:183: 'textureQueryLod' : no matching overloaded function found
+ERROR: 0:183: 'assign' : cannot convert from 'const float' to 'temp 2-component vector of float'
+ERROR: 0:184: 'textureQueryLod' : no matching overloaded function found
+ERROR: 0:184: 'assign' : cannot convert from 'const float' to 'temp 2-component vector of float'
+ERROR: 0:187: '' : syntax error
+ERROR: 35 compilation errors. No code generated.
+
+
+Shader version: 400
+Requested GL_ARB_derivative_control
+Requested GL_ARB_separate_shader_objects
+gl_FragCoord pixel center is integer
+gl_FragCoord origin is upper left
+ERROR: node is still EOpNull!
+0:10 Function Definition: main( (global void)
+0:10 Function Parameters:
+0:? Sequence
+0:13 move second child to first child (temp 4-component vector of float)
+0:13 'v' (temp 4-component vector of float)
+0:13 texture (global 4-component vector of float)
+0:13 indirect index (temp sampler2D)
+0:13 'arrayedSampler' (uniform 5-element array of sampler2D)
+0:13 'i' (flat in int)
+0:13 'c2D' (smooth in 2-component vector of float)
+0:14 move second child to first child (temp float)
+0:14 direct index (temp float)
+0:14 'outp' (out 4-component vector of float)
+0:14 Constant:
+0:14 0 (const int)
+0:14 direct index (smooth temp float ClipDistance)
+0:14 'gl_ClipDistance' (smooth in 4-element array of float ClipDistance)
+0:14 Constant:
+0:14 1 (const int)
+0:18 Sequence
+0:18 move second child to first child (temp 4-component vector of uint)
+0:18 'uv4' (temp 4-component vector of uint)
+0:18 textureGatherOffsets (global 4-component vector of uint)
+0:18 'samp2dr' (uniform usampler2DRect)
+0:18 'c2D' (smooth in 2-component vector of float)
+0:18 'offsets' (temp 4-element array of 2-component vector of int)
+0:18 Constant:
+0:18 2 (const int)
+0:19 move second child to first child (temp 4-component vector of uint)
+0:19 'uv4' (temp 4-component vector of uint)
+0:19 textureGatherOffsets (global 4-component vector of uint)
+0:19 'samp2dr' (uniform usampler2DRect)
+0:19 'c2D' (smooth in 2-component vector of float)
+0:19 Constant:
+0:19 1 (const int)
+0:19 2 (const int)
+0:19 3 (const int)
+0:19 4 (const int)
+0:19 15 (const int)
+0:19 16 (const int)
+0:19 -2 (const int)
+0:19 0 (const int)
+0:19 Constant:
+0:19 2 (const int)
+0:20 Sequence
+0:20 move second child to first child (temp 4-component vector of float)
+0:20 'v4' (temp 4-component vector of float)
+0:20 textureGather (global 4-component vector of float)
+0:20 direct index (temp sampler2D)
+0:20 'arrayedSampler' (uniform 5-element array of sampler2D)
+0:20 Constant:
+0:20 0 (const int)
+0:20 'c2D' (smooth in 2-component vector of float)
+0:21 Sequence
+0:21 move second child to first child (temp 4-component vector of int)
+0:21 'iv4' (temp 4-component vector of int)
+0:21 textureGatherOffset (global 4-component vector of int)
+0:21 'isamp2DA' (uniform isampler2DArray)
+0:21 Constant:
+0:21 0.100000
+0:21 0.100000
+0:21 0.100000
+0:21 Constant:
+0:21 1 (const int)
+0:21 1 (const int)
+0:21 Constant:
+0:21 3 (const int)
+0:22 move second child to first child (temp 4-component vector of int)
+0:22 'iv4' (temp 4-component vector of int)
+0:22 textureGatherOffset (global 4-component vector of int)
+0:22 'isamp2DA' (uniform isampler2DArray)
+0:22 Constant:
+0:22 0.100000
+0:22 0.100000
+0:22 0.100000
+0:22 Constant:
+0:22 1 (const int)
+0:22 1 (const int)
+0:22 'i' (flat in int)
+0:23 move second child to first child (temp 4-component vector of int)
+0:23 'iv4' (temp 4-component vector of int)
+0:23 textureGatherOffset (global 4-component vector of int)
+0:23 'isamp2DA' (uniform isampler2DArray)
+0:23 Constant:
+0:23 0.100000
+0:23 0.100000
+0:23 0.100000
+0:23 Constant:
+0:23 1 (const int)
+0:23 1 (const int)
+0:23 Constant:
+0:23 4 (const int)
+0:24 move second child to first child (temp 4-component vector of int)
+0:24 'iv4' (temp 4-component vector of int)
+0:24 textureGatherOffset (global 4-component vector of int)
+0:24 'isamp2DA' (uniform isampler2DArray)
+0:24 Constant:
+0:24 0.100000
+0:24 0.100000
+0:24 0.100000
+0:24 Constant:
+0:24 1 (const int)
+0:24 1 (const int)
+0:24 Constant:
+0:24 3 (const int)
+0:25 move second child to first child (temp 4-component vector of int)
+0:25 'iv4' (temp 4-component vector of int)
+0:25 textureGatherOffset (global 4-component vector of int)
+0:25 'isamp2DA' (uniform isampler2DArray)
+0:25 Constant:
+0:25 0.100000
+0:25 0.100000
+0:25 0.100000
+0:25 Construct ivec2 (temp 2-component vector of int)
+0:25 'i' (flat in int)
+0:27 Sequence
+0:27 move second child to first child (temp 4-component vector of float)
+0:27 'c' (temp 4-component vector of float)
+0:27 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
+0:47 Function Definition: foo23( (global void)
+0:47 Function Parameters:
+0:? Sequence
+0:51 textureProjGradOffset (global float)
+0:51 'u2drs' (uniform sampler2DRectShadow)
+0:51 'outp' (out 4-component vector of float)
+0:51 Constant:
+0:51 0.000000
+0:51 0.000000
+0:51 Constant:
+0:51 0.000000
+0:51 0.000000
+0:51 Convert float to int (temp 2-component vector of int)
+0:51 'c2D' (smooth in 2-component vector of float)
+0:52 textureProjGradOffset (global float)
+0:52 'u2drs' (uniform sampler2DRectShadow)
+0:52 'outp' (out 4-component vector of float)
+0:52 Constant:
+0:52 0.000000
+0:52 0.000000
+0:52 Constant:
+0:52 0.000000
+0:52 0.000000
+0:52 Constant:
+0:52 3 (const int)
+0:52 4 (const int)
+0:53 textureProjGradOffset (global float)
+0:53 'u2drs' (uniform sampler2DRectShadow)
+0:53 'outp' (out 4-component vector of float)
+0:53 Constant:
+0:53 0.000000
+0:53 0.000000
+0:53 Constant:
+0:53 0.000000
+0:53 0.000000
+0:53 Constant:
+0:53 15 (const int)
+0:53 16 (const int)
+0:54 textureProjGradOffset (global float)
+0:54 'u2drs' (uniform sampler2DRectShadow)
+0:54 'outp' (out 4-component vector of float)
+0:54 Constant:
+0:54 0.000000
+0:54 0.000000
+0:54 Constant:
+0:54 0.000000
+0:54 0.000000
+0:54 Constant:
+0:54 -10 (const int)
+0:54 20 (const int)
+0:60 Function Definition: foo24( (global void)
+0:60 Function Parameters:
+0:? Sequence
+0:63 move second child to first child (temp 3-component vector of double)
+0:63 'df' (temp 3-component vector of double)
+0:63 modf (global 3-component vector of double)
+0:63 Convert float to double (temp 3-component vector of double)
+0:63 vector swizzle (temp 3-component vector of float)
+0:63 'outp' (out 4-component vector of float)
+0:63 Sequence
+0:63 Constant:
+0:63 0 (const int)
+0:63 Constant:
+0:63 1 (const int)
+0:63 Constant:
+0:63 2 (const int)
+0:63 'di' (temp 3-component vector of double)
+0:71 Function Definition: foodc1( (global void)
+0:71 Function Parameters:
+0:73 Sequence
+0:73 Sequence
+0:73 move second child to first child (temp 2-component vector of float)
+0:73 'v2' (temp 2-component vector of float)
+0:73 dPdxFine (global 2-component vector of float)
+0:73 'in2' (smooth in 2-component vector of float)
+0:74 Sequence
+0:74 move second child to first child (temp 3-component vector of float)
+0:74 'v3' (temp 3-component vector of float)
+0:74 dPdyCoarse (global 3-component vector of float)
+0:74 'in3' (smooth in 3-component vector of float)
+0:75 Sequence
+0:75 move second child to first child (temp 4-component vector of float)
+0:75 'v4' (temp 4-component vector of float)
+0:75 add (temp 4-component vector of float)
+0:75 fwidthCoarse (global 4-component vector of float)
+0:75 'in4' (smooth in 4-component vector of float)
+0:75 fwidthFine (global 4-component vector of float)
+0:75 'in4' (smooth in 4-component vector of float)
+0:80 Function Definition: foodc2( (global void)
+0:80 Function Parameters:
+0:82 Sequence
+0:82 Sequence
+0:82 move second child to first child (temp 2-component vector of float)
+0:82 'v2' (temp 2-component vector of float)
+0:82 dPdxFine (global 2-component vector of float)
+0:82 'in2' (smooth in 2-component vector of float)
+0:83 Sequence
+0:83 move second child to first child (temp 3-component vector of float)
+0:83 'v3' (temp 3-component vector of float)
+0:83 dPdyCoarse (global 3-component vector of float)
+0:83 'in3' (smooth in 3-component vector of float)
+0:84 Sequence
+0:84 move second child to first child (temp 4-component vector of float)
+0:84 'v4' (temp 4-component vector of float)
+0:84 add (temp 4-component vector of float)
+0:84 fwidthCoarse (global 4-component vector of float)
+0:84 'in4' (smooth in 4-component vector of float)
+0:84 fwidthFine (global 4-component vector of float)
+0:84 'in4' (smooth in 4-component vector of float)
+0:89 move second child to first child (temp 2-component vector of float)
+0:89 'v2' (temp 2-component vector of float)
+0:89 frexp (global 2-component vector of float)
+0:89 'v2' (temp 2-component vector of float)
+0:89 'i2' (temp 2-component vector of int)
+0:90 move second child to first child (temp 3-component vector of float)
+0:90 'v3' (temp 3-component vector of float)
+0:90 ldexp (global 3-component vector of float)
+0:90 'v3' (temp 3-component vector of float)
+0:90 'i3' (temp 3-component vector of int)
+0:92 move second child to first child (temp uint)
+0:92 'u1' (temp uint)
+0:92 PackUnorm4x8 (global uint)
+0:92 'v4' (temp 4-component vector of float)
+0:93 move second child to first child (temp uint)
+0:93 'u1' (temp uint)
+0:93 PackSnorm4x8 (global uint)
+0:93 'v4' (temp 4-component vector of float)
+0:94 move second child to first child (temp 4-component vector of float)
+0:94 'v4' (temp 4-component vector of float)
+0:94 UnpackUnorm4x8 (global 4-component vector of float)
+0:94 'u1' (temp uint)
+0:95 move second child to first child (temp 4-component vector of float)
+0:95 'v4' (temp 4-component vector of float)
+0:95 UnpackSnorm4x8 (global 4-component vector of float)
+0:95 'u1' (temp uint)
+0:99 move second child to first child (temp double)
+0:99 'd' (temp double)
+0:99 PackDouble2x32 (global double)
+0:99 'u2' (temp 2-component vector of uint)
+0:100 move second child to first child (temp 2-component vector of uint)
+0:100 'u2' (temp 2-component vector of uint)
+0:100 UnpackDouble2x32 (global 2-component vector of uint)
+0:100 'd' (temp double)
+0:117 Function Definition: interp( (global void)
+0:117 Function Parameters:
+0:119 Sequence
+0:119 interpolateAtCentroid (global 2-component vector of float)
+0:119 'colorfc' (centroid flat in 2-component vector of float)
+0:120 interpolateAtCentroid (global 4-component vector of float)
+0:120 'colorSampIn' (smooth sample in 4-component vector of float)
+0:121 interpolateAtCentroid (global 4-component vector of float)
+0:121 'colorfsi' (noperspective in 4-component vector of float)
+0:122 interpolateAtCentroid (global float)
+0:122 'scalarIn' (smooth in float)
+0:123 Constant:
+0:123 0.000000
+0:124 interpolateAtCentroid (global 3-component vector of float)
+0:124 direct index (smooth sample temp 3-component vector of float)
+0:124 'sampInArray' (smooth sample in 4-element array of 3-component vector of float)
+0:124 Constant:
+0:124 2 (const int)
+0:125 interpolateAtCentroid (global 2-component vector of float)
+0:125 vector swizzle (temp 2-component vector of float)
+0:125 direct index (smooth sample temp 3-component vector of float)
+0:125 'sampInArray' (smooth sample in 4-element array of 3-component vector of float)
+0:125 Constant:
+0:125 2 (const int)
+0:125 Sequence
+0:125 Constant:
+0:125 0 (const int)
+0:125 Constant:
+0:125 1 (const int)
+0:127 Constant:
+0:127 0.000000
+0:128 interpolateAtSample (global 3-component vector of float)
+0:128 indirect index (smooth sample temp 3-component vector of float)
+0:128 'sampInArray' (smooth sample in 4-element array of 3-component vector of float)
+0:128 'i' (flat in int)
+0:128 Constant:
+0:128 0 (const int)
+0:129 interpolateAtSample (global float)
+0:129 x: direct index for structure (global float)
+0:129 's1' (smooth in structure{global float x})
+0:129 Constant:
+0:129 0 (const int)
+0:129 Constant:
+0:129 2 (const int)
+0:130 interpolateAtSample (global float)
+0:130 'scalarIn' (smooth in float)
+0:130 Constant:
+0:130 1 (const int)
+0:132 Constant:
+0:132 0.000000
+0:133 interpolateAtOffset (global 3-component vector of float)
+0:133 direct index (smooth sample temp 3-component vector of float)
+0:133 'sampInArray' (smooth sample in 4-element array of 3-component vector of float)
+0:133 Constant:
+0:133 2 (const int)
+0:133 Constant:
+0:133 0.200000
+0:133 0.200000
+0:134 interpolateAtOffset (global 2-component vector of float)
+0:134 vector swizzle (temp 2-component vector of float)
+0:134 direct index (smooth sample temp 3-component vector of float)
+0:134 'sampInArray' (smooth sample in 4-element array of 3-component vector of float)
+0:134 Constant:
+0:134 2 (const int)
+0:134 Sequence
+0:134 Constant:
+0:134 0 (const int)
+0:134 Constant:
+0:134 1 (const int)
+0:134 Constant:
+0:134 0.200000
+0:134 0.200000
+0:135 interpolateAtOffset (global float)
+0:135 add (temp float)
+0:135 'scalarIn' (smooth in float)
+0:135 'scalarIn' (smooth in float)
+0:135 Constant:
+0:135 0.200000
+0:135 0.200000
+0:136 interpolateAtOffset (global float)
+0:136 x: direct index for structure (global float)
+0:136 's2' (sample temp structure{global float x})
+0:136 Constant:
+0:136 0 (const int)
+0:136 Constant:
+0:136 0.200000
+0:136 0.200000
+0:139 interpolateAtCentroid (global float)
+0:139 'f' (temp float)
+0:140 interpolateAtSample (global 4-component vector of float)
+0:140 'outp' (out 4-component vector of float)
+0:140 Constant:
+0:140 0 (const int)
+0:161 Function Definition: qlod( (global void)
+0:161 Function Parameters:
+0:? Sequence
+0:168 move second child to first child (temp 2-component vector of float)
+0:168 'lod' (temp 2-component vector of float)
+0:168 textureQueryLod (global 2-component vector of float)
+0:168 'samp1D' (uniform sampler1D)
+0:168 'pf' (temp float)
+0:169 move second child to first child (temp 2-component vector of float)
+0:169 'lod' (temp 2-component vector of float)
+0:169 textureQueryLod (global 2-component vector of float)
+0:169 'isamp2D' (uniform isampler2D)
+0:169 'pf2' (temp 2-component vector of float)
+0:170 move second child to first child (temp 2-component vector of float)
+0:170 'lod' (temp 2-component vector of float)
+0:170 textureQueryLod (global 2-component vector of float)
+0:170 'usamp3D' (uniform usampler3D)
+0:170 'pf3' (temp 3-component vector of float)
+0:171 move second child to first child (temp 2-component vector of float)
+0:171 'lod' (temp 2-component vector of float)
+0:171 textureQueryLod (global 2-component vector of float)
+0:171 'sampCube' (uniform samplerCube)
+0:171 'pf3' (temp 3-component vector of float)
+0:172 move second child to first child (temp 2-component vector of float)
+0:172 'lod' (temp 2-component vector of float)
+0:172 textureQueryLod (global 2-component vector of float)
+0:172 'isamp1DA' (uniform isampler1DArray)
+0:172 'pf' (temp float)
+0:173 move second child to first child (temp 2-component vector of float)
+0:173 'lod' (temp 2-component vector of float)
+0:173 textureQueryLod (global 2-component vector of float)
+0:173 'usamp2DA' (uniform usampler2DArray)
+0:173 'pf2' (temp 2-component vector of float)
+0:174 move second child to first child (temp 2-component vector of float)
+0:174 'lod' (temp 2-component vector of float)
+0:174 textureQueryLod (global 2-component vector of float)
+0:174 'isampCubeA' (uniform isamplerCubeArray)
+0:174 'pf3' (temp 3-component vector of float)
+0:176 move second child to first child (temp 2-component vector of float)
+0:176 'lod' (temp 2-component vector of float)
+0:176 textureQueryLod (global 2-component vector of float)
+0:176 'samp1Ds' (uniform sampler1DShadow)
+0:176 'pf' (temp float)
+0:177 move second child to first child (temp 2-component vector of float)
+0:177 'lod' (temp 2-component vector of float)
+0:177 textureQueryLod (global 2-component vector of float)
+0:177 'samp2Ds' (uniform sampler2DShadow)
+0:177 'pf2' (temp 2-component vector of float)
+0:178 move second child to first child (temp 2-component vector of float)
+0:178 'lod' (temp 2-component vector of float)
+0:178 textureQueryLod (global 2-component vector of float)
+0:178 'sampCubes' (uniform samplerCubeShadow)
+0:178 'pf3' (temp 3-component vector of float)
+0:179 move second child to first child (temp 2-component vector of float)
+0:179 'lod' (temp 2-component vector of float)
+0:179 textureQueryLod (global 2-component vector of float)
+0:179 'samp1DAs' (uniform sampler1DArrayShadow)
+0:179 'pf' (temp float)
+0:180 move second child to first child (temp 2-component vector of float)
+0:180 'lod' (temp 2-component vector of float)
+0:180 textureQueryLod (global 2-component vector of float)
+0:180 'samp2DAs' (uniform sampler2DArrayShadow)
+0:180 'pf2' (temp 2-component vector of float)
+0:181 move second child to first child (temp 2-component vector of float)
+0:181 'lod' (temp 2-component vector of float)
+0:181 textureQueryLod (global 2-component vector of float)
+0:181 'sampCubeAs' (uniform samplerCubeArrayShadow)
+0:181 'pf3' (temp 3-component vector of float)
+0:183 'lod' (temp 2-component vector of float)
+0:184 'lod' (temp 2-component vector of float)
+0:? Linker Objects
+0:? 'c2D' (smooth in 2-component vector of float)
+0:? 'i' (flat in int)
+0:? 'outp' (out 4-component vector of float)
+0:? 'arrayedSampler' (uniform 5-element array of sampler2D)
+0:? 'samp2dr' (uniform usampler2DRect)
+0:? 'isamp2DA' (uniform isampler2DArray)
+0:? 'gl_ClipDistance' (smooth in 4-element array of float ClipDistance)
+0:? 'vl' (layout(location=4 ) smooth in 4-component vector of float)
+0:? 'vl2' (layout(location=6 ) smooth in 4-component vector of float)
+0:? 'uv3' (layout(location=3 ) uniform 3-component vector of float)
+0:? 'anon@0' (in block{in float FogFragCoord gl_FogFragCoord, in implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, smooth in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor})
+0:? 'anon@0' (in block{in float FogFragCoord gl_FogFragCoord, in implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, smooth in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor})
+0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
+0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
+0:? 'u2drs' (uniform sampler2DRectShadow)
+0:? 'patchIn' (smooth patch in 4-component vector of float)
+0:? 'patchOut' (patch out 4-component vector of float)
+0:? 'in1' (smooth in float)
+0:? 'in2' (smooth in 2-component vector of float)
+0:? 'in3' (smooth in 3-component vector of float)
+0:? 'in4' (smooth in 4-component vector of float)
+0:? 'colorSampIn' (smooth sample in 4-component vector of float)
+0:? 'colorSampleBad' (sample out 4-component vector of float)
+0:? 'colorfsi' (noperspective in 4-component vector of float)
+0:? 'sampInArray' (smooth sample in 4-element array of 3-component vector of float)
+0:? 'scalarIn' (smooth in float)
+0:? 'colorfc' (centroid flat in 2-component vector of float)
+0:? 's1' (smooth in structure{global float x})
+0:? 's2' (sample temp structure{global float x})
+0:? 'samp1D' (uniform sampler1D)
+0:? 'isamp2D' (uniform isampler2D)
+0:? 'usamp3D' (uniform usampler3D)
+0:? 'sampCube' (uniform samplerCube)
+0:? 'isamp1DA' (uniform isampler1DArray)
+0:? 'usamp2DA' (uniform usampler2DArray)
+0:? 'isampCubeA' (uniform isamplerCubeArray)
+0:? 'samp1Ds' (uniform sampler1DShadow)
+0:? 'samp2Ds' (uniform sampler2DShadow)
+0:? 'sampCubes' (uniform samplerCubeShadow)
+0:? 'samp1DAs' (uniform sampler1DArrayShadow)
+0:? 'samp2DAs' (uniform sampler2DArrayShadow)
+0:? 'sampCubeAs' (uniform samplerCubeArrayShadow)
+0:? 'sampBuf' (uniform samplerBuffer)
+0:? 'sampRect' (uniform sampler2DRect)
+
+
+Linked fragment stage:
+
+
+Shader version: 400
+Requested GL_ARB_derivative_control
+Requested GL_ARB_separate_shader_objects
+gl_FragCoord pixel center is integer
+gl_FragCoord origin is upper left
+ERROR: node is still EOpNull!
+0:10 Function Definition: main( (global void)
+0:10 Function Parameters:
+0:? Sequence
+0:13 move second child to first child (temp 4-component vector of float)
+0:13 'v' (temp 4-component vector of float)
+0:13 texture (global 4-component vector of float)
+0:13 indirect index (temp sampler2D)
+0:13 'arrayedSampler' (uniform 5-element array of sampler2D)
+0:13 'i' (flat in int)
+0:13 'c2D' (smooth in 2-component vector of float)
+0:14 move second child to first child (temp float)
+0:14 direct index (temp float)
+0:14 'outp' (out 4-component vector of float)
+0:14 Constant:
+0:14 0 (const int)
+0:14 direct index (smooth temp float ClipDistance)
+0:14 'gl_ClipDistance' (smooth in 4-element array of float ClipDistance)
+0:14 Constant:
+0:14 1 (const int)
+0:18 Sequence
+0:18 move second child to first child (temp 4-component vector of uint)
+0:18 'uv4' (temp 4-component vector of uint)
+0:18 textureGatherOffsets (global 4-component vector of uint)
+0:18 'samp2dr' (uniform usampler2DRect)
+0:18 'c2D' (smooth in 2-component vector of float)
+0:18 'offsets' (temp 4-element array of 2-component vector of int)
+0:18 Constant:
+0:18 2 (const int)
+0:19 move second child to first child (temp 4-component vector of uint)
+0:19 'uv4' (temp 4-component vector of uint)
+0:19 textureGatherOffsets (global 4-component vector of uint)
+0:19 'samp2dr' (uniform usampler2DRect)
+0:19 'c2D' (smooth in 2-component vector of float)
+0:19 Constant:
+0:19 1 (const int)
+0:19 2 (const int)
+0:19 3 (const int)
+0:19 4 (const int)
+0:19 15 (const int)
+0:19 16 (const int)
+0:19 -2 (const int)
+0:19 0 (const int)
+0:19 Constant:
+0:19 2 (const int)
+0:20 Sequence
+0:20 move second child to first child (temp 4-component vector of float)
+0:20 'v4' (temp 4-component vector of float)
+0:20 textureGather (global 4-component vector of float)
+0:20 direct index (temp sampler2D)
+0:20 'arrayedSampler' (uniform 5-element array of sampler2D)
+0:20 Constant:
+0:20 0 (const int)
+0:20 'c2D' (smooth in 2-component vector of float)
+0:21 Sequence
+0:21 move second child to first child (temp 4-component vector of int)
+0:21 'iv4' (temp 4-component vector of int)
+0:21 textureGatherOffset (global 4-component vector of int)
+0:21 'isamp2DA' (uniform isampler2DArray)
+0:21 Constant:
+0:21 0.100000
+0:21 0.100000
+0:21 0.100000
+0:21 Constant:
+0:21 1 (const int)
+0:21 1 (const int)
+0:21 Constant:
+0:21 3 (const int)
+0:22 move second child to first child (temp 4-component vector of int)
+0:22 'iv4' (temp 4-component vector of int)
+0:22 textureGatherOffset (global 4-component vector of int)
+0:22 'isamp2DA' (uniform isampler2DArray)
+0:22 Constant:
+0:22 0.100000
+0:22 0.100000
+0:22 0.100000
+0:22 Constant:
+0:22 1 (const int)
+0:22 1 (const int)
+0:22 'i' (flat in int)
+0:23 move second child to first child (temp 4-component vector of int)
+0:23 'iv4' (temp 4-component vector of int)
+0:23 textureGatherOffset (global 4-component vector of int)
+0:23 'isamp2DA' (uniform isampler2DArray)
+0:23 Constant:
+0:23 0.100000
+0:23 0.100000
+0:23 0.100000
+0:23 Constant:
+0:23 1 (const int)
+0:23 1 (const int)
+0:23 Constant:
+0:23 4 (const int)
+0:24 move second child to first child (temp 4-component vector of int)
+0:24 'iv4' (temp 4-component vector of int)
+0:24 textureGatherOffset (global 4-component vector of int)
+0:24 'isamp2DA' (uniform isampler2DArray)
+0:24 Constant:
+0:24 0.100000
+0:24 0.100000
+0:24 0.100000
+0:24 Constant:
+0:24 1 (const int)
+0:24 1 (const int)
+0:24 Constant:
+0:24 3 (const int)
+0:25 move second child to first child (temp 4-component vector of int)
+0:25 'iv4' (temp 4-component vector of int)
+0:25 textureGatherOffset (global 4-component vector of int)
+0:25 'isamp2DA' (uniform isampler2DArray)
+0:25 Constant:
+0:25 0.100000
+0:25 0.100000
+0:25 0.100000
+0:25 Construct ivec2 (temp 2-component vector of int)
+0:25 'i' (flat in int)
+0:27 Sequence
+0:27 move second child to first child (temp 4-component vector of float)
+0:27 'c' (temp 4-component vector of float)
+0:27 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
+0:47 Function Definition: foo23( (global void)
+0:47 Function Parameters:
+0:? Sequence
+0:51 textureProjGradOffset (global float)
+0:51 'u2drs' (uniform sampler2DRectShadow)
+0:51 'outp' (out 4-component vector of float)
+0:51 Constant:
+0:51 0.000000
+0:51 0.000000
+0:51 Constant:
+0:51 0.000000
+0:51 0.000000
+0:51 Convert float to int (temp 2-component vector of int)
+0:51 'c2D' (smooth in 2-component vector of float)
+0:52 textureProjGradOffset (global float)
+0:52 'u2drs' (uniform sampler2DRectShadow)
+0:52 'outp' (out 4-component vector of float)
+0:52 Constant:
+0:52 0.000000
+0:52 0.000000
+0:52 Constant:
+0:52 0.000000
+0:52 0.000000
+0:52 Constant:
+0:52 3 (const int)
+0:52 4 (const int)
+0:53 textureProjGradOffset (global float)
+0:53 'u2drs' (uniform sampler2DRectShadow)
+0:53 'outp' (out 4-component vector of float)
+0:53 Constant:
+0:53 0.000000
+0:53 0.000000
+0:53 Constant:
+0:53 0.000000
+0:53 0.000000
+0:53 Constant:
+0:53 15 (const int)
+0:53 16 (const int)
+0:54 textureProjGradOffset (global float)
+0:54 'u2drs' (uniform sampler2DRectShadow)
+0:54 'outp' (out 4-component vector of float)
+0:54 Constant:
+0:54 0.000000
+0:54 0.000000
+0:54 Constant:
+0:54 0.000000
+0:54 0.000000
+0:54 Constant:
+0:54 -10 (const int)
+0:54 20 (const int)
+0:60 Function Definition: foo24( (global void)
+0:60 Function Parameters:
+0:? Sequence
+0:63 move second child to first child (temp 3-component vector of double)
+0:63 'df' (temp 3-component vector of double)
+0:63 modf (global 3-component vector of double)
+0:63 Convert float to double (temp 3-component vector of double)
+0:63 vector swizzle (temp 3-component vector of float)
+0:63 'outp' (out 4-component vector of float)
+0:63 Sequence
+0:63 Constant:
+0:63 0 (const int)
+0:63 Constant:
+0:63 1 (const int)
+0:63 Constant:
+0:63 2 (const int)
+0:63 'di' (temp 3-component vector of double)
+0:71 Function Definition: foodc1( (global void)
+0:71 Function Parameters:
+0:73 Sequence
+0:73 Sequence
+0:73 move second child to first child (temp 2-component vector of float)
+0:73 'v2' (temp 2-component vector of float)
+0:73 dPdxFine (global 2-component vector of float)
+0:73 'in2' (smooth in 2-component vector of float)
+0:74 Sequence
+0:74 move second child to first child (temp 3-component vector of float)
+0:74 'v3' (temp 3-component vector of float)
+0:74 dPdyCoarse (global 3-component vector of float)
+0:74 'in3' (smooth in 3-component vector of float)
+0:75 Sequence
+0:75 move second child to first child (temp 4-component vector of float)
+0:75 'v4' (temp 4-component vector of float)
+0:75 add (temp 4-component vector of float)
+0:75 fwidthCoarse (global 4-component vector of float)
+0:75 'in4' (smooth in 4-component vector of float)
+0:75 fwidthFine (global 4-component vector of float)
+0:75 'in4' (smooth in 4-component vector of float)
+0:80 Function Definition: foodc2( (global void)
+0:80 Function Parameters:
+0:82 Sequence
+0:82 Sequence
+0:82 move second child to first child (temp 2-component vector of float)
+0:82 'v2' (temp 2-component vector of float)
+0:82 dPdxFine (global 2-component vector of float)
+0:82 'in2' (smooth in 2-component vector of float)
+0:83 Sequence
+0:83 move second child to first child (temp 3-component vector of float)
+0:83 'v3' (temp 3-component vector of float)
+0:83 dPdyCoarse (global 3-component vector of float)
+0:83 'in3' (smooth in 3-component vector of float)
+0:84 Sequence
+0:84 move second child to first child (temp 4-component vector of float)
+0:84 'v4' (temp 4-component vector of float)
+0:84 add (temp 4-component vector of float)
+0:84 fwidthCoarse (global 4-component vector of float)
+0:84 'in4' (smooth in 4-component vector of float)
+0:84 fwidthFine (global 4-component vector of float)
+0:84 'in4' (smooth in 4-component vector of float)
+0:89 move second child to first child (temp 2-component vector of float)
+0:89 'v2' (temp 2-component vector of float)
+0:89 frexp (global 2-component vector of float)
+0:89 'v2' (temp 2-component vector of float)
+0:89 'i2' (temp 2-component vector of int)
+0:90 move second child to first child (temp 3-component vector of float)
+0:90 'v3' (temp 3-component vector of float)
+0:90 ldexp (global 3-component vector of float)
+0:90 'v3' (temp 3-component vector of float)
+0:90 'i3' (temp 3-component vector of int)
+0:92 move second child to first child (temp uint)
+0:92 'u1' (temp uint)
+0:92 PackUnorm4x8 (global uint)
+0:92 'v4' (temp 4-component vector of float)
+0:93 move second child to first child (temp uint)
+0:93 'u1' (temp uint)
+0:93 PackSnorm4x8 (global uint)
+0:93 'v4' (temp 4-component vector of float)
+0:94 move second child to first child (temp 4-component vector of float)
+0:94 'v4' (temp 4-component vector of float)
+0:94 UnpackUnorm4x8 (global 4-component vector of float)
+0:94 'u1' (temp uint)
+0:95 move second child to first child (temp 4-component vector of float)
+0:95 'v4' (temp 4-component vector of float)
+0:95 UnpackSnorm4x8 (global 4-component vector of float)
+0:95 'u1' (temp uint)
+0:99 move second child to first child (temp double)
+0:99 'd' (temp double)
+0:99 PackDouble2x32 (global double)
+0:99 'u2' (temp 2-component vector of uint)
+0:100 move second child to first child (temp 2-component vector of uint)
+0:100 'u2' (temp 2-component vector of uint)
+0:100 UnpackDouble2x32 (global 2-component vector of uint)
+0:100 'd' (temp double)
+0:117 Function Definition: interp( (global void)
+0:117 Function Parameters:
+0:119 Sequence
+0:119 interpolateAtCentroid (global 2-component vector of float)
+0:119 'colorfc' (centroid flat in 2-component vector of float)
+0:120 interpolateAtCentroid (global 4-component vector of float)
+0:120 'colorSampIn' (smooth sample in 4-component vector of float)
+0:121 interpolateAtCentroid (global 4-component vector of float)
+0:121 'colorfsi' (noperspective in 4-component vector of float)
+0:122 interpolateAtCentroid (global float)
+0:122 'scalarIn' (smooth in float)
+0:123 Constant:
+0:123 0.000000
+0:124 interpolateAtCentroid (global 3-component vector of float)
+0:124 direct index (smooth sample temp 3-component vector of float)
+0:124 'sampInArray' (smooth sample in 4-element array of 3-component vector of float)
+0:124 Constant:
+0:124 2 (const int)
+0:125 interpolateAtCentroid (global 2-component vector of float)
+0:125 vector swizzle (temp 2-component vector of float)
+0:125 direct index (smooth sample temp 3-component vector of float)
+0:125 'sampInArray' (smooth sample in 4-element array of 3-component vector of float)
+0:125 Constant:
+0:125 2 (const int)
+0:125 Sequence
+0:125 Constant:
+0:125 0 (const int)
+0:125 Constant:
+0:125 1 (const int)
+0:127 Constant:
+0:127 0.000000
+0:128 interpolateAtSample (global 3-component vector of float)
+0:128 indirect index (smooth sample temp 3-component vector of float)
+0:128 'sampInArray' (smooth sample in 4-element array of 3-component vector of float)
+0:128 'i' (flat in int)
+0:128 Constant:
+0:128 0 (const int)
+0:129 interpolateAtSample (global float)
+0:129 x: direct index for structure (global float)
+0:129 's1' (smooth in structure{global float x})
+0:129 Constant:
+0:129 0 (const int)
+0:129 Constant:
+0:129 2 (const int)
+0:130 interpolateAtSample (global float)
+0:130 'scalarIn' (smooth in float)
+0:130 Constant:
+0:130 1 (const int)
+0:132 Constant:
+0:132 0.000000
+0:133 interpolateAtOffset (global 3-component vector of float)
+0:133 direct index (smooth sample temp 3-component vector of float)
+0:133 'sampInArray' (smooth sample in 4-element array of 3-component vector of float)
+0:133 Constant:
+0:133 2 (const int)
+0:133 Constant:
+0:133 0.200000
+0:133 0.200000
+0:134 interpolateAtOffset (global 2-component vector of float)
+0:134 vector swizzle (temp 2-component vector of float)
+0:134 direct index (smooth sample temp 3-component vector of float)
+0:134 'sampInArray' (smooth sample in 4-element array of 3-component vector of float)
+0:134 Constant:
+0:134 2 (const int)
+0:134 Sequence
+0:134 Constant:
+0:134 0 (const int)
+0:134 Constant:
+0:134 1 (const int)
+0:134 Constant:
+0:134 0.200000
+0:134 0.200000
+0:135 interpolateAtOffset (global float)
+0:135 add (temp float)
+0:135 'scalarIn' (smooth in float)
+0:135 'scalarIn' (smooth in float)
+0:135 Constant:
+0:135 0.200000
+0:135 0.200000
+0:136 interpolateAtOffset (global float)
+0:136 x: direct index for structure (global float)
+0:136 's2' (sample temp structure{global float x})
+0:136 Constant:
+0:136 0 (const int)
+0:136 Constant:
+0:136 0.200000
+0:136 0.200000
+0:139 interpolateAtCentroid (global float)
+0:139 'f' (temp float)
+0:140 interpolateAtSample (global 4-component vector of float)
+0:140 'outp' (out 4-component vector of float)
+0:140 Constant:
+0:140 0 (const int)
+0:161 Function Definition: qlod( (global void)
+0:161 Function Parameters:
+0:? Sequence
+0:168 move second child to first child (temp 2-component vector of float)
+0:168 'lod' (temp 2-component vector of float)
+0:168 textureQueryLod (global 2-component vector of float)
+0:168 'samp1D' (uniform sampler1D)
+0:168 'pf' (temp float)
+0:169 move second child to first child (temp 2-component vector of float)
+0:169 'lod' (temp 2-component vector of float)
+0:169 textureQueryLod (global 2-component vector of float)
+0:169 'isamp2D' (uniform isampler2D)
+0:169 'pf2' (temp 2-component vector of float)
+0:170 move second child to first child (temp 2-component vector of float)
+0:170 'lod' (temp 2-component vector of float)
+0:170 textureQueryLod (global 2-component vector of float)
+0:170 'usamp3D' (uniform usampler3D)
+0:170 'pf3' (temp 3-component vector of float)
+0:171 move second child to first child (temp 2-component vector of float)
+0:171 'lod' (temp 2-component vector of float)
+0:171 textureQueryLod (global 2-component vector of float)
+0:171 'sampCube' (uniform samplerCube)
+0:171 'pf3' (temp 3-component vector of float)
+0:172 move second child to first child (temp 2-component vector of float)
+0:172 'lod' (temp 2-component vector of float)
+0:172 textureQueryLod (global 2-component vector of float)
+0:172 'isamp1DA' (uniform isampler1DArray)
+0:172 'pf' (temp float)
+0:173 move second child to first child (temp 2-component vector of float)
+0:173 'lod' (temp 2-component vector of float)
+0:173 textureQueryLod (global 2-component vector of float)
+0:173 'usamp2DA' (uniform usampler2DArray)
+0:173 'pf2' (temp 2-component vector of float)
+0:174 move second child to first child (temp 2-component vector of float)
+0:174 'lod' (temp 2-component vector of float)
+0:174 textureQueryLod (global 2-component vector of float)
+0:174 'isampCubeA' (uniform isamplerCubeArray)
+0:174 'pf3' (temp 3-component vector of float)
+0:176 move second child to first child (temp 2-component vector of float)
+0:176 'lod' (temp 2-component vector of float)
+0:176 textureQueryLod (global 2-component vector of float)
+0:176 'samp1Ds' (uniform sampler1DShadow)
+0:176 'pf' (temp float)
+0:177 move second child to first child (temp 2-component vector of float)
+0:177 'lod' (temp 2-component vector of float)
+0:177 textureQueryLod (global 2-component vector of float)
+0:177 'samp2Ds' (uniform sampler2DShadow)
+0:177 'pf2' (temp 2-component vector of float)
+0:178 move second child to first child (temp 2-component vector of float)
+0:178 'lod' (temp 2-component vector of float)
+0:178 textureQueryLod (global 2-component vector of float)
+0:178 'sampCubes' (uniform samplerCubeShadow)
+0:178 'pf3' (temp 3-component vector of float)
+0:179 move second child to first child (temp 2-component vector of float)
+0:179 'lod' (temp 2-component vector of float)
+0:179 textureQueryLod (global 2-component vector of float)
+0:179 'samp1DAs' (uniform sampler1DArrayShadow)
+0:179 'pf' (temp float)
+0:180 move second child to first child (temp 2-component vector of float)
+0:180 'lod' (temp 2-component vector of float)
+0:180 textureQueryLod (global 2-component vector of float)
+0:180 'samp2DAs' (uniform sampler2DArrayShadow)
+0:180 'pf2' (temp 2-component vector of float)
+0:181 move second child to first child (temp 2-component vector of float)
+0:181 'lod' (temp 2-component vector of float)
+0:181 textureQueryLod (global 2-component vector of float)
+0:181 'sampCubeAs' (uniform samplerCubeArrayShadow)
+0:181 'pf3' (temp 3-component vector of float)
+0:183 'lod' (temp 2-component vector of float)
+0:184 'lod' (temp 2-component vector of float)
+0:? Linker Objects
+0:? 'c2D' (smooth in 2-component vector of float)
+0:? 'i' (flat in int)
+0:? 'outp' (out 4-component vector of float)
+0:? 'arrayedSampler' (uniform 5-element array of sampler2D)
+0:? 'samp2dr' (uniform usampler2DRect)
+0:? 'isamp2DA' (uniform isampler2DArray)
+0:? 'gl_ClipDistance' (smooth in 4-element array of float ClipDistance)
+0:? 'vl' (layout(location=4 ) smooth in 4-component vector of float)
+0:? 'vl2' (layout(location=6 ) smooth in 4-component vector of float)
+0:? 'uv3' (layout(location=3 ) uniform 3-component vector of float)
+0:? 'anon@0' (in block{in float FogFragCoord gl_FogFragCoord, in 1-element array of 4-component vector of float TexCoord gl_TexCoord, smooth in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor})
+0:? 'anon@0' (in block{in float FogFragCoord gl_FogFragCoord, in 1-element array of 4-component vector of float TexCoord gl_TexCoord, smooth in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor})
+0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
+0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
+0:? 'u2drs' (uniform sampler2DRectShadow)
+0:? 'patchIn' (smooth patch in 4-component vector of float)
+0:? 'patchOut' (patch out 4-component vector of float)
+0:? 'in1' (smooth in float)
+0:? 'in2' (smooth in 2-component vector of float)
+0:? 'in3' (smooth in 3-component vector of float)
+0:? 'in4' (smooth in 4-component vector of float)
+0:? 'colorSampIn' (smooth sample in 4-component vector of float)
+0:? 'colorSampleBad' (sample out 4-component vector of float)
+0:? 'colorfsi' (noperspective in 4-component vector of float)
+0:? 'sampInArray' (smooth sample in 4-element array of 3-component vector of float)
+0:? 'scalarIn' (smooth in float)
+0:? 'colorfc' (centroid flat in 2-component vector of float)
+0:? 's1' (smooth in structure{global float x})
+0:? 's2' (sample temp structure{global float x})
+0:? 'samp1D' (uniform sampler1D)
+0:? 'isamp2D' (uniform isampler2D)
+0:? 'usamp3D' (uniform usampler3D)
+0:? 'sampCube' (uniform samplerCube)
+0:? 'isamp1DA' (uniform isampler1DArray)
+0:? 'usamp2DA' (uniform usampler2DArray)
+0:? 'isampCubeA' (uniform isamplerCubeArray)
+0:? 'samp1Ds' (uniform sampler1DShadow)
+0:? 'samp2Ds' (uniform sampler2DShadow)
+0:? 'sampCubes' (uniform samplerCubeShadow)
+0:? 'samp1DAs' (uniform sampler1DArrayShadow)
+0:? 'samp2DAs' (uniform sampler2DArrayShadow)
+0:? 'sampCubeAs' (uniform samplerCubeArrayShadow)
+0:? 'sampBuf' (uniform samplerBuffer)
+0:? 'sampRect' (uniform sampler2DRect)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/400.geom.out b/chromium/third_party/glslang/src/Test/baseResults/400.geom.out
new file mode 100644
index 00000000000..16117e62a23
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/400.geom.out
@@ -0,0 +1,2067 @@
+400.geom
+Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:12: 'invocations' : can only apply to a standalone qualifier
+ERROR: 0:20: 'patch' : not supported in this stage: geometry
+ERROR: 0:20: 'gl_PointSize' : cannot add layout to redeclared block member
+ERROR: 0:20: 'gl_PointSize' : cannot add patch to redeclared block member
+ERROR: 0:25: 'length' : array must first be sized by a redeclaration or layout qualifier
+ERROR: 0:36: 'length' : array must first be sized by a redeclaration or layout qualifier
+ERROR: 0:40: 'triangles' : inconsistent input primitive for array size of colorBad
+ERROR: 0:44: 'triangles' : inconsistent input primitive for array size of colorbad2
+ERROR: 0:56: 'location' : overlapping use of location 4
+ERROR: 0:58: 'patch' : not supported in this stage: geometry
+ERROR: 0:59: 'patch' : not supported in this stage: geometry
+ERROR: 0:61: 'in' : type must be an array: scalar
+ERROR: 0:63: 'invocations' : can only apply to 'in'
+ERROR: 0:64: 'max_vertices' : can only apply to 'out'
+ERROR: 0:65: 'max_vertices' : can only apply to 'out'
+ERROR: 0:65: 'invocations' : can only apply to 'in'
+ERROR: 0:67: 'in' : type must be an array: inbls
+ERROR: 0:71: 'triangles' : inconsistent input primitive for array size of inbla
+ERROR: 0:103: 'index' : there is no such layout identifier for this stage taking an assigned value
+ERROR: 0:115: 'textureQueryLod' : no matching overloaded function found
+ERROR: 0:115: 'assign' : cannot convert from 'const float' to 'temp 2-component vector of float'
+ERROR: 0:116: 'textureQueryLod' : no matching overloaded function found
+ERROR: 0:116: 'assign' : cannot convert from 'const float' to 'temp 2-component vector of float'
+ERROR: 23 compilation errors. No code generated.
+
+
+Shader version: 400
+Requested GL_ARB_separate_shader_objects
+invocations = 4
+max_vertices = 127
+input primitive = triangles
+output primitive = none
+ERROR: node is still EOpNull!
+0:3 Function Definition: main( (global void)
+0:3 Function Parameters:
+0:5 Sequence
+0:5 EmitStreamVertex (global void)
+0:5 Constant:
+0:5 1 (const int)
+0:6 EndStreamPrimitive (global void)
+0:6 Constant:
+0:6 0 (const int)
+0:7 EmitVertex (global void)
+0:8 EndPrimitive (global void)
+0:9 Sequence
+0:9 move second child to first child (temp int)
+0:9 'id' (temp int)
+0:9 'gl_InvocationID' (in int InvocationID)
+0:23 Function Definition: foo( (global void)
+0:23 Function Parameters:
+0:25 Sequence
+0:25 Constant:
+0:25 1 (const int)
+0:26 gl_Position: direct index for structure (in 4-component vector of float Position)
+0:26 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize})
+0:26 'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize})
+0:26 Constant:
+0:26 1 (const int)
+0:26 Constant:
+0:26 0 (const int)
+0:34 Function Definition: foo2( (global void)
+0:34 Function Parameters:
+0:36 Sequence
+0:36 Constant:
+0:36 1 (const int)
+0:37 Constant:
+0:37 3 (const int)
+0:46 Function Definition: foo3( (global void)
+0:46 Function Parameters:
+0:48 Sequence
+0:48 Constant:
+0:48 3 (const int)
+0:49 Constant:
+0:49 3 (const int)
+0:50 Constant:
+0:50 3 (const int)
+0:51 Constant:
+0:51 3 (const int)
+0:75 Function Definition: bits( (global void)
+0:75 Function Parameters:
+0:? Sequence
+0:78 move second child to first child (temp 2-component vector of uint)
+0:78 'u2' (temp 2-component vector of uint)
+0:78 addCarry (global 2-component vector of uint)
+0:78 'u2' (temp 2-component vector of uint)
+0:78 'u2' (temp 2-component vector of uint)
+0:78 'u2' (temp 2-component vector of uint)
+0:80 move second child to first child (temp uint)
+0:80 'u1' (temp uint)
+0:80 subBorrow (global uint)
+0:80 'u1' (temp uint)
+0:80 'u1' (temp uint)
+0:80 'u1' (temp uint)
+0:82 uMulExtended (global void)
+0:82 'u4' (temp 4-component vector of uint)
+0:82 'u4' (temp 4-component vector of uint)
+0:82 'u4' (temp 4-component vector of uint)
+0:82 'u4' (temp 4-component vector of uint)
+0:84 iMulExtended (global void)
+0:84 'i4' (temp 4-component vector of int)
+0:84 'i4' (temp 4-component vector of int)
+0:84 'i4' (temp 4-component vector of int)
+0:84 'i4' (temp 4-component vector of int)
+0:86 move second child to first child (temp int)
+0:86 'i1' (temp int)
+0:86 bitfieldExtract (global int)
+0:86 'i1' (temp int)
+0:86 Constant:
+0:86 4 (const int)
+0:86 Constant:
+0:86 5 (const int)
+0:88 move second child to first child (temp 3-component vector of uint)
+0:88 'u3' (temp 3-component vector of uint)
+0:88 bitfieldExtract (global 3-component vector of uint)
+0:88 'u3' (temp 3-component vector of uint)
+0:88 Constant:
+0:88 4 (const int)
+0:88 Constant:
+0:88 5 (const int)
+0:90 move second child to first child (temp 3-component vector of int)
+0:90 'i3' (temp 3-component vector of int)
+0:90 bitfieldInsert (global 3-component vector of int)
+0:90 'i3' (temp 3-component vector of int)
+0:90 'i3' (temp 3-component vector of int)
+0:90 Constant:
+0:90 4 (const int)
+0:90 Constant:
+0:90 5 (const int)
+0:91 move second child to first child (temp uint)
+0:91 'u1' (temp uint)
+0:91 bitfieldInsert (global uint)
+0:91 'u1' (temp uint)
+0:91 'u1' (temp uint)
+0:91 Constant:
+0:91 4 (const int)
+0:91 Constant:
+0:91 5 (const int)
+0:93 move second child to first child (temp 2-component vector of int)
+0:93 'i2' (temp 2-component vector of int)
+0:93 bitFieldReverse (global 2-component vector of int)
+0:93 'i2' (temp 2-component vector of int)
+0:94 move second child to first child (temp 4-component vector of uint)
+0:94 'u4' (temp 4-component vector of uint)
+0:94 bitFieldReverse (global 4-component vector of uint)
+0:94 'u4' (temp 4-component vector of uint)
+0:95 move second child to first child (temp int)
+0:95 'i1' (temp int)
+0:95 bitCount (global int)
+0:95 'i1' (temp int)
+0:96 move second child to first child (temp 3-component vector of int)
+0:96 'i3' (temp 3-component vector of int)
+0:96 bitCount (global 3-component vector of int)
+0:96 'u3' (temp 3-component vector of uint)
+0:97 move second child to first child (temp 2-component vector of int)
+0:97 'i2' (temp 2-component vector of int)
+0:97 findLSB (global 2-component vector of int)
+0:97 'i2' (temp 2-component vector of int)
+0:98 move second child to first child (temp 4-component vector of int)
+0:98 'i4' (temp 4-component vector of int)
+0:98 findLSB (global 4-component vector of int)
+0:98 'u4' (temp 4-component vector of uint)
+0:99 move second child to first child (temp int)
+0:99 'i1' (temp int)
+0:99 findMSB (global int)
+0:99 'i1' (temp int)
+0:100 move second child to first child (temp 2-component vector of int)
+0:100 'i2' (temp 2-component vector of int)
+0:100 findMSB (global 2-component vector of int)
+0:100 'u2' (temp 2-component vector of uint)
+0:108 Function Definition: qlod( (global void)
+0:108 Function Parameters:
+0:? Sequence
+0:115 'lod' (temp 2-component vector of float)
+0:116 'lod' (temp 2-component vector of float)
+0:119 Function Definition: doubles( (global void)
+0:119 Function Parameters:
+0:? Sequence
+0:131 move second child to first child (temp double)
+0:131 'doublev' (temp double)
+0:131 Constant:
+0:131 1.702939
+0:132 move second child to first child (temp 2-component vector of double)
+0:132 'dvec2v' (temp 2-component vector of double)
+0:132 Constant:
+0:132 1.643168
+0:132 1.643168
+0:133 move second child to first child (temp 3-component vector of double)
+0:133 'dvec3v' (temp 3-component vector of double)
+0:133 Constant:
+0:133 1.414214
+0:133 1.414214
+0:133 1.414214
+0:134 move second child to first child (temp 4-component vector of double)
+0:134 'dvec4v' (temp 4-component vector of double)
+0:134 Constant:
+0:134 1.449138
+0:134 1.449138
+0:134 1.449138
+0:134 1.449138
+0:136 add second child into first child (temp double)
+0:136 'doublev' (temp double)
+0:136 inverse sqrt (global double)
+0:136 'doublev' (temp double)
+0:137 add second child into first child (temp 2-component vector of double)
+0:137 'dvec2v' (temp 2-component vector of double)
+0:137 inverse sqrt (global 2-component vector of double)
+0:137 'dvec2v' (temp 2-component vector of double)
+0:138 add second child into first child (temp 3-component vector of double)
+0:138 'dvec3v' (temp 3-component vector of double)
+0:138 inverse sqrt (global 3-component vector of double)
+0:138 'dvec3v' (temp 3-component vector of double)
+0:139 add second child into first child (temp 4-component vector of double)
+0:139 'dvec4v' (temp 4-component vector of double)
+0:139 inverse sqrt (global 4-component vector of double)
+0:139 'dvec4v' (temp 4-component vector of double)
+0:141 add second child into first child (temp double)
+0:141 'doublev' (temp double)
+0:141 Absolute value (global double)
+0:141 'doublev' (temp double)
+0:142 add second child into first child (temp 2-component vector of double)
+0:142 'dvec2v' (temp 2-component vector of double)
+0:142 Absolute value (global 2-component vector of double)
+0:142 'dvec2v' (temp 2-component vector of double)
+0:143 add second child into first child (temp 3-component vector of double)
+0:143 'dvec3v' (temp 3-component vector of double)
+0:143 Absolute value (global 3-component vector of double)
+0:143 'dvec3v' (temp 3-component vector of double)
+0:144 add second child into first child (temp 4-component vector of double)
+0:144 'dvec4v' (temp 4-component vector of double)
+0:144 Absolute value (global 4-component vector of double)
+0:144 'dvec4v' (temp 4-component vector of double)
+0:146 add second child into first child (temp double)
+0:146 'doublev' (temp double)
+0:146 Sign (global double)
+0:146 'doublev' (temp double)
+0:147 add second child into first child (temp 2-component vector of double)
+0:147 'dvec2v' (temp 2-component vector of double)
+0:147 Sign (global 2-component vector of double)
+0:147 'dvec2v' (temp 2-component vector of double)
+0:148 add second child into first child (temp 3-component vector of double)
+0:148 'dvec3v' (temp 3-component vector of double)
+0:148 Sign (global 3-component vector of double)
+0:148 'dvec3v' (temp 3-component vector of double)
+0:149 add second child into first child (temp 4-component vector of double)
+0:149 'dvec4v' (temp 4-component vector of double)
+0:149 Sign (global 4-component vector of double)
+0:149 'dvec4v' (temp 4-component vector of double)
+0:151 add second child into first child (temp double)
+0:151 'doublev' (temp double)
+0:151 Floor (global double)
+0:151 'doublev' (temp double)
+0:152 add second child into first child (temp 2-component vector of double)
+0:152 'dvec2v' (temp 2-component vector of double)
+0:152 Floor (global 2-component vector of double)
+0:152 'dvec2v' (temp 2-component vector of double)
+0:153 add second child into first child (temp 3-component vector of double)
+0:153 'dvec3v' (temp 3-component vector of double)
+0:153 Floor (global 3-component vector of double)
+0:153 'dvec3v' (temp 3-component vector of double)
+0:154 add second child into first child (temp 4-component vector of double)
+0:154 'dvec4v' (temp 4-component vector of double)
+0:154 Floor (global 4-component vector of double)
+0:154 'dvec4v' (temp 4-component vector of double)
+0:156 add second child into first child (temp double)
+0:156 'doublev' (temp double)
+0:156 trunc (global double)
+0:156 'doublev' (temp double)
+0:157 add second child into first child (temp 2-component vector of double)
+0:157 'dvec2v' (temp 2-component vector of double)
+0:157 trunc (global 2-component vector of double)
+0:157 'dvec2v' (temp 2-component vector of double)
+0:158 add second child into first child (temp 3-component vector of double)
+0:158 'dvec3v' (temp 3-component vector of double)
+0:158 trunc (global 3-component vector of double)
+0:158 'dvec3v' (temp 3-component vector of double)
+0:159 add second child into first child (temp 4-component vector of double)
+0:159 'dvec4v' (temp 4-component vector of double)
+0:159 trunc (global 4-component vector of double)
+0:159 'dvec4v' (temp 4-component vector of double)
+0:161 add second child into first child (temp double)
+0:161 'doublev' (temp double)
+0:161 round (global double)
+0:161 'doublev' (temp double)
+0:162 add second child into first child (temp 2-component vector of double)
+0:162 'dvec2v' (temp 2-component vector of double)
+0:162 round (global 2-component vector of double)
+0:162 'dvec2v' (temp 2-component vector of double)
+0:163 add second child into first child (temp 3-component vector of double)
+0:163 'dvec3v' (temp 3-component vector of double)
+0:163 round (global 3-component vector of double)
+0:163 'dvec3v' (temp 3-component vector of double)
+0:164 add second child into first child (temp 4-component vector of double)
+0:164 'dvec4v' (temp 4-component vector of double)
+0:164 round (global 4-component vector of double)
+0:164 'dvec4v' (temp 4-component vector of double)
+0:166 add second child into first child (temp double)
+0:166 'doublev' (temp double)
+0:166 roundEven (global double)
+0:166 'doublev' (temp double)
+0:167 add second child into first child (temp 2-component vector of double)
+0:167 'dvec2v' (temp 2-component vector of double)
+0:167 roundEven (global 2-component vector of double)
+0:167 'dvec2v' (temp 2-component vector of double)
+0:168 add second child into first child (temp 3-component vector of double)
+0:168 'dvec3v' (temp 3-component vector of double)
+0:168 roundEven (global 3-component vector of double)
+0:168 'dvec3v' (temp 3-component vector of double)
+0:169 add second child into first child (temp 4-component vector of double)
+0:169 'dvec4v' (temp 4-component vector of double)
+0:169 roundEven (global 4-component vector of double)
+0:169 'dvec4v' (temp 4-component vector of double)
+0:171 add second child into first child (temp double)
+0:171 'doublev' (temp double)
+0:171 Ceiling (global double)
+0:171 'doublev' (temp double)
+0:172 add second child into first child (temp 2-component vector of double)
+0:172 'dvec2v' (temp 2-component vector of double)
+0:172 Ceiling (global 2-component vector of double)
+0:172 'dvec2v' (temp 2-component vector of double)
+0:173 add second child into first child (temp 3-component vector of double)
+0:173 'dvec3v' (temp 3-component vector of double)
+0:173 Ceiling (global 3-component vector of double)
+0:173 'dvec3v' (temp 3-component vector of double)
+0:174 add second child into first child (temp 4-component vector of double)
+0:174 'dvec4v' (temp 4-component vector of double)
+0:174 Ceiling (global 4-component vector of double)
+0:174 'dvec4v' (temp 4-component vector of double)
+0:176 add second child into first child (temp double)
+0:176 'doublev' (temp double)
+0:176 Fraction (global double)
+0:176 'doublev' (temp double)
+0:177 add second child into first child (temp 2-component vector of double)
+0:177 'dvec2v' (temp 2-component vector of double)
+0:177 Fraction (global 2-component vector of double)
+0:177 'dvec2v' (temp 2-component vector of double)
+0:178 add second child into first child (temp 3-component vector of double)
+0:178 'dvec3v' (temp 3-component vector of double)
+0:178 Fraction (global 3-component vector of double)
+0:178 'dvec3v' (temp 3-component vector of double)
+0:179 add second child into first child (temp 4-component vector of double)
+0:179 'dvec4v' (temp 4-component vector of double)
+0:179 Fraction (global 4-component vector of double)
+0:179 'dvec4v' (temp 4-component vector of double)
+0:181 add second child into first child (temp double)
+0:181 'doublev' (temp double)
+0:181 mod (global double)
+0:181 'doublev' (temp double)
+0:181 'doublev' (temp double)
+0:182 add second child into first child (temp 2-component vector of double)
+0:182 'dvec2v' (temp 2-component vector of double)
+0:182 mod (global 2-component vector of double)
+0:182 'dvec2v' (temp 2-component vector of double)
+0:182 'doublev' (temp double)
+0:183 add second child into first child (temp 3-component vector of double)
+0:183 'dvec3v' (temp 3-component vector of double)
+0:183 mod (global 3-component vector of double)
+0:183 'dvec3v' (temp 3-component vector of double)
+0:183 'doublev' (temp double)
+0:184 add second child into first child (temp 4-component vector of double)
+0:184 'dvec4v' (temp 4-component vector of double)
+0:184 mod (global 4-component vector of double)
+0:184 'dvec4v' (temp 4-component vector of double)
+0:184 'doublev' (temp double)
+0:185 add second child into first child (temp 2-component vector of double)
+0:185 'dvec2v' (temp 2-component vector of double)
+0:185 mod (global 2-component vector of double)
+0:185 'dvec2v' (temp 2-component vector of double)
+0:185 'dvec2v' (temp 2-component vector of double)
+0:186 add second child into first child (temp 3-component vector of double)
+0:186 'dvec3v' (temp 3-component vector of double)
+0:186 mod (global 3-component vector of double)
+0:186 'dvec3v' (temp 3-component vector of double)
+0:186 'dvec3v' (temp 3-component vector of double)
+0:187 add second child into first child (temp 4-component vector of double)
+0:187 'dvec4v' (temp 4-component vector of double)
+0:187 mod (global 4-component vector of double)
+0:187 'dvec4v' (temp 4-component vector of double)
+0:187 'dvec4v' (temp 4-component vector of double)
+0:189 add second child into first child (temp double)
+0:189 'doublev' (temp double)
+0:189 modf (global double)
+0:189 'doublev' (temp double)
+0:189 'doublev' (temp double)
+0:190 add second child into first child (temp 2-component vector of double)
+0:190 'dvec2v' (temp 2-component vector of double)
+0:190 modf (global 2-component vector of double)
+0:190 'dvec2v' (temp 2-component vector of double)
+0:190 'dvec2v' (temp 2-component vector of double)
+0:191 add second child into first child (temp 3-component vector of double)
+0:191 'dvec3v' (temp 3-component vector of double)
+0:191 modf (global 3-component vector of double)
+0:191 'dvec3v' (temp 3-component vector of double)
+0:191 'dvec3v' (temp 3-component vector of double)
+0:192 add second child into first child (temp 4-component vector of double)
+0:192 'dvec4v' (temp 4-component vector of double)
+0:192 modf (global 4-component vector of double)
+0:192 'dvec4v' (temp 4-component vector of double)
+0:192 'dvec4v' (temp 4-component vector of double)
+0:194 add second child into first child (temp double)
+0:194 'doublev' (temp double)
+0:194 min (global double)
+0:194 'doublev' (temp double)
+0:194 'doublev' (temp double)
+0:195 add second child into first child (temp 2-component vector of double)
+0:195 'dvec2v' (temp 2-component vector of double)
+0:195 min (global 2-component vector of double)
+0:195 'dvec2v' (temp 2-component vector of double)
+0:195 'doublev' (temp double)
+0:196 add second child into first child (temp 3-component vector of double)
+0:196 'dvec3v' (temp 3-component vector of double)
+0:196 min (global 3-component vector of double)
+0:196 'dvec3v' (temp 3-component vector of double)
+0:196 'doublev' (temp double)
+0:197 add second child into first child (temp 4-component vector of double)
+0:197 'dvec4v' (temp 4-component vector of double)
+0:197 min (global 4-component vector of double)
+0:197 'dvec4v' (temp 4-component vector of double)
+0:197 'doublev' (temp double)
+0:198 add second child into first child (temp 2-component vector of double)
+0:198 'dvec2v' (temp 2-component vector of double)
+0:198 min (global 2-component vector of double)
+0:198 'dvec2v' (temp 2-component vector of double)
+0:198 'dvec2v' (temp 2-component vector of double)
+0:199 add second child into first child (temp 3-component vector of double)
+0:199 'dvec3v' (temp 3-component vector of double)
+0:199 min (global 3-component vector of double)
+0:199 'dvec3v' (temp 3-component vector of double)
+0:199 'dvec3v' (temp 3-component vector of double)
+0:200 add second child into first child (temp 4-component vector of double)
+0:200 'dvec4v' (temp 4-component vector of double)
+0:200 min (global 4-component vector of double)
+0:200 'dvec4v' (temp 4-component vector of double)
+0:200 'dvec4v' (temp 4-component vector of double)
+0:202 add second child into first child (temp double)
+0:202 'doublev' (temp double)
+0:202 max (global double)
+0:202 'doublev' (temp double)
+0:202 'doublev' (temp double)
+0:203 add second child into first child (temp 2-component vector of double)
+0:203 'dvec2v' (temp 2-component vector of double)
+0:203 max (global 2-component vector of double)
+0:203 'dvec2v' (temp 2-component vector of double)
+0:203 'doublev' (temp double)
+0:204 add second child into first child (temp 3-component vector of double)
+0:204 'dvec3v' (temp 3-component vector of double)
+0:204 max (global 3-component vector of double)
+0:204 'dvec3v' (temp 3-component vector of double)
+0:204 'doublev' (temp double)
+0:205 add second child into first child (temp 4-component vector of double)
+0:205 'dvec4v' (temp 4-component vector of double)
+0:205 max (global 4-component vector of double)
+0:205 'dvec4v' (temp 4-component vector of double)
+0:205 'doublev' (temp double)
+0:206 add second child into first child (temp 2-component vector of double)
+0:206 'dvec2v' (temp 2-component vector of double)
+0:206 max (global 2-component vector of double)
+0:206 'dvec2v' (temp 2-component vector of double)
+0:206 'dvec2v' (temp 2-component vector of double)
+0:207 add second child into first child (temp 3-component vector of double)
+0:207 'dvec3v' (temp 3-component vector of double)
+0:207 max (global 3-component vector of double)
+0:207 'dvec3v' (temp 3-component vector of double)
+0:207 'dvec3v' (temp 3-component vector of double)
+0:208 add second child into first child (temp 4-component vector of double)
+0:208 'dvec4v' (temp 4-component vector of double)
+0:208 max (global 4-component vector of double)
+0:208 'dvec4v' (temp 4-component vector of double)
+0:208 'dvec4v' (temp 4-component vector of double)
+0:210 add second child into first child (temp double)
+0:210 'doublev' (temp double)
+0:210 clamp (global double)
+0:210 'doublev' (temp double)
+0:210 'doublev' (temp double)
+0:210 'doublev' (temp double)
+0:211 add second child into first child (temp 2-component vector of double)
+0:211 'dvec2v' (temp 2-component vector of double)
+0:211 clamp (global 2-component vector of double)
+0:211 'dvec2v' (temp 2-component vector of double)
+0:211 'doublev' (temp double)
+0:211 'doublev' (temp double)
+0:212 add second child into first child (temp 3-component vector of double)
+0:212 'dvec3v' (temp 3-component vector of double)
+0:212 clamp (global 3-component vector of double)
+0:212 'dvec3v' (temp 3-component vector of double)
+0:212 'doublev' (temp double)
+0:212 'doublev' (temp double)
+0:213 add second child into first child (temp 4-component vector of double)
+0:213 'dvec4v' (temp 4-component vector of double)
+0:213 clamp (global 4-component vector of double)
+0:213 'dvec4v' (temp 4-component vector of double)
+0:213 'doublev' (temp double)
+0:213 'doublev' (temp double)
+0:214 add second child into first child (temp 2-component vector of double)
+0:214 'dvec2v' (temp 2-component vector of double)
+0:214 clamp (global 2-component vector of double)
+0:214 'dvec2v' (temp 2-component vector of double)
+0:214 'dvec2v' (temp 2-component vector of double)
+0:214 'dvec2v' (temp 2-component vector of double)
+0:215 add second child into first child (temp 3-component vector of double)
+0:215 'dvec3v' (temp 3-component vector of double)
+0:215 clamp (global 3-component vector of double)
+0:215 'dvec3v' (temp 3-component vector of double)
+0:215 'dvec3v' (temp 3-component vector of double)
+0:215 'dvec3v' (temp 3-component vector of double)
+0:216 add second child into first child (temp 4-component vector of double)
+0:216 'dvec4v' (temp 4-component vector of double)
+0:216 clamp (global 4-component vector of double)
+0:216 'dvec4v' (temp 4-component vector of double)
+0:216 'dvec4v' (temp 4-component vector of double)
+0:216 'dvec4v' (temp 4-component vector of double)
+0:218 add second child into first child (temp double)
+0:218 'doublev' (temp double)
+0:218 mix (global double)
+0:218 'doublev' (temp double)
+0:218 'doublev' (temp double)
+0:218 'doublev' (temp double)
+0:219 add second child into first child (temp 2-component vector of double)
+0:219 'dvec2v' (temp 2-component vector of double)
+0:219 mix (global 2-component vector of double)
+0:219 'dvec2v' (temp 2-component vector of double)
+0:219 'dvec2v' (temp 2-component vector of double)
+0:219 'doublev' (temp double)
+0:220 add second child into first child (temp 3-component vector of double)
+0:220 'dvec3v' (temp 3-component vector of double)
+0:220 mix (global 3-component vector of double)
+0:220 'dvec3v' (temp 3-component vector of double)
+0:220 'dvec3v' (temp 3-component vector of double)
+0:220 'doublev' (temp double)
+0:221 add second child into first child (temp 4-component vector of double)
+0:221 'dvec4v' (temp 4-component vector of double)
+0:221 mix (global 4-component vector of double)
+0:221 'dvec4v' (temp 4-component vector of double)
+0:221 'dvec4v' (temp 4-component vector of double)
+0:221 'doublev' (temp double)
+0:222 add second child into first child (temp 2-component vector of double)
+0:222 'dvec2v' (temp 2-component vector of double)
+0:222 mix (global 2-component vector of double)
+0:222 'dvec2v' (temp 2-component vector of double)
+0:222 'dvec2v' (temp 2-component vector of double)
+0:222 'dvec2v' (temp 2-component vector of double)
+0:223 add second child into first child (temp 3-component vector of double)
+0:223 'dvec3v' (temp 3-component vector of double)
+0:223 mix (global 3-component vector of double)
+0:223 'dvec3v' (temp 3-component vector of double)
+0:223 'dvec3v' (temp 3-component vector of double)
+0:223 'dvec3v' (temp 3-component vector of double)
+0:224 add second child into first child (temp 4-component vector of double)
+0:224 'dvec4v' (temp 4-component vector of double)
+0:224 mix (global 4-component vector of double)
+0:224 'dvec4v' (temp 4-component vector of double)
+0:224 'dvec4v' (temp 4-component vector of double)
+0:224 'dvec4v' (temp 4-component vector of double)
+0:225 add second child into first child (temp double)
+0:225 'doublev' (temp double)
+0:225 mix (global double)
+0:225 'doublev' (temp double)
+0:225 'doublev' (temp double)
+0:225 'boolv' (temp bool)
+0:226 add second child into first child (temp 2-component vector of double)
+0:226 'dvec2v' (temp 2-component vector of double)
+0:226 mix (global 2-component vector of double)
+0:226 'dvec2v' (temp 2-component vector of double)
+0:226 'dvec2v' (temp 2-component vector of double)
+0:226 'bvec2v' (temp 2-component vector of bool)
+0:227 add second child into first child (temp 3-component vector of double)
+0:227 'dvec3v' (temp 3-component vector of double)
+0:227 mix (global 3-component vector of double)
+0:227 'dvec3v' (temp 3-component vector of double)
+0:227 'dvec3v' (temp 3-component vector of double)
+0:227 'bvec3v' (temp 3-component vector of bool)
+0:228 add second child into first child (temp 4-component vector of double)
+0:228 'dvec4v' (temp 4-component vector of double)
+0:228 mix (global 4-component vector of double)
+0:228 'dvec4v' (temp 4-component vector of double)
+0:228 'dvec4v' (temp 4-component vector of double)
+0:228 'bvec4v' (temp 4-component vector of bool)
+0:230 add second child into first child (temp double)
+0:230 'doublev' (temp double)
+0:230 step (global double)
+0:230 'doublev' (temp double)
+0:230 'doublev' (temp double)
+0:231 add second child into first child (temp 2-component vector of double)
+0:231 'dvec2v' (temp 2-component vector of double)
+0:231 step (global 2-component vector of double)
+0:231 'dvec2v' (temp 2-component vector of double)
+0:231 'dvec2v' (temp 2-component vector of double)
+0:232 add second child into first child (temp 3-component vector of double)
+0:232 'dvec3v' (temp 3-component vector of double)
+0:232 step (global 3-component vector of double)
+0:232 'dvec3v' (temp 3-component vector of double)
+0:232 'dvec3v' (temp 3-component vector of double)
+0:233 add second child into first child (temp 4-component vector of double)
+0:233 'dvec4v' (temp 4-component vector of double)
+0:233 step (global 4-component vector of double)
+0:233 'dvec4v' (temp 4-component vector of double)
+0:233 'dvec4v' (temp 4-component vector of double)
+0:234 add second child into first child (temp 2-component vector of double)
+0:234 'dvec2v' (temp 2-component vector of double)
+0:234 step (global 2-component vector of double)
+0:234 'doublev' (temp double)
+0:234 'dvec2v' (temp 2-component vector of double)
+0:235 add second child into first child (temp 3-component vector of double)
+0:235 'dvec3v' (temp 3-component vector of double)
+0:235 step (global 3-component vector of double)
+0:235 'doublev' (temp double)
+0:235 'dvec3v' (temp 3-component vector of double)
+0:236 add second child into first child (temp 4-component vector of double)
+0:236 'dvec4v' (temp 4-component vector of double)
+0:236 step (global 4-component vector of double)
+0:236 'doublev' (temp double)
+0:236 'dvec4v' (temp 4-component vector of double)
+0:238 add second child into first child (temp double)
+0:238 'doublev' (temp double)
+0:238 smoothstep (global double)
+0:238 'doublev' (temp double)
+0:238 'doublev' (temp double)
+0:238 'doublev' (temp double)
+0:239 add second child into first child (temp 2-component vector of double)
+0:239 'dvec2v' (temp 2-component vector of double)
+0:239 smoothstep (global 2-component vector of double)
+0:239 'dvec2v' (temp 2-component vector of double)
+0:239 'dvec2v' (temp 2-component vector of double)
+0:239 'dvec2v' (temp 2-component vector of double)
+0:240 add second child into first child (temp 3-component vector of double)
+0:240 'dvec3v' (temp 3-component vector of double)
+0:240 smoothstep (global 3-component vector of double)
+0:240 'dvec3v' (temp 3-component vector of double)
+0:240 'dvec3v' (temp 3-component vector of double)
+0:240 'dvec3v' (temp 3-component vector of double)
+0:241 add second child into first child (temp 4-component vector of double)
+0:241 'dvec4v' (temp 4-component vector of double)
+0:241 smoothstep (global 4-component vector of double)
+0:241 'dvec4v' (temp 4-component vector of double)
+0:241 'dvec4v' (temp 4-component vector of double)
+0:241 'dvec4v' (temp 4-component vector of double)
+0:242 add second child into first child (temp 2-component vector of double)
+0:242 'dvec2v' (temp 2-component vector of double)
+0:242 smoothstep (global 2-component vector of double)
+0:242 'doublev' (temp double)
+0:242 'doublev' (temp double)
+0:242 'dvec2v' (temp 2-component vector of double)
+0:243 add second child into first child (temp 3-component vector of double)
+0:243 'dvec3v' (temp 3-component vector of double)
+0:243 smoothstep (global 3-component vector of double)
+0:243 'doublev' (temp double)
+0:243 'doublev' (temp double)
+0:243 'dvec3v' (temp 3-component vector of double)
+0:244 add second child into first child (temp 4-component vector of double)
+0:244 'dvec4v' (temp 4-component vector of double)
+0:244 smoothstep (global 4-component vector of double)
+0:244 'doublev' (temp double)
+0:244 'doublev' (temp double)
+0:244 'dvec4v' (temp 4-component vector of double)
+0:246 move second child to first child (temp bool)
+0:246 'boolv' (temp bool)
+0:246 isnan (global bool)
+0:246 'doublev' (temp double)
+0:247 move second child to first child (temp 2-component vector of bool)
+0:247 'bvec2v' (temp 2-component vector of bool)
+0:247 isnan (global 2-component vector of bool)
+0:247 'dvec2v' (temp 2-component vector of double)
+0:248 move second child to first child (temp 3-component vector of bool)
+0:248 'bvec3v' (temp 3-component vector of bool)
+0:248 isnan (global 3-component vector of bool)
+0:248 'dvec3v' (temp 3-component vector of double)
+0:249 move second child to first child (temp 4-component vector of bool)
+0:249 'bvec4v' (temp 4-component vector of bool)
+0:249 isnan (global 4-component vector of bool)
+0:249 'dvec4v' (temp 4-component vector of double)
+0:251 move second child to first child (temp bool)
+0:251 'boolv' (temp bool)
+0:251 Test condition and select (temp bool)
+0:251 Condition
+0:251 'boolv' (temp bool)
+0:251 true case
+0:251 isinf (global bool)
+0:251 'doublev' (temp double)
+0:251 false case
+0:251 Constant:
+0:251 false (const bool)
+0:252 move second child to first child (temp 2-component vector of bool)
+0:252 'bvec2v' (temp 2-component vector of bool)
+0:252 Test condition and select (temp 2-component vector of bool)
+0:252 Condition
+0:252 'boolv' (temp bool)
+0:252 true case
+0:252 isinf (global 2-component vector of bool)
+0:252 'dvec2v' (temp 2-component vector of double)
+0:252 false case
+0:252 Constant:
+0:252 false (const bool)
+0:252 false (const bool)
+0:253 move second child to first child (temp 3-component vector of bool)
+0:253 'bvec3v' (temp 3-component vector of bool)
+0:253 Test condition and select (temp 3-component vector of bool)
+0:253 Condition
+0:253 'boolv' (temp bool)
+0:253 true case
+0:253 isinf (global 3-component vector of bool)
+0:253 'dvec3v' (temp 3-component vector of double)
+0:253 false case
+0:253 Constant:
+0:253 false (const bool)
+0:253 false (const bool)
+0:253 false (const bool)
+0:254 move second child to first child (temp 4-component vector of bool)
+0:254 'bvec4v' (temp 4-component vector of bool)
+0:254 Test condition and select (temp 4-component vector of bool)
+0:254 Condition
+0:254 'boolv' (temp bool)
+0:254 true case
+0:254 isinf (global 4-component vector of bool)
+0:254 'dvec4v' (temp 4-component vector of double)
+0:254 false case
+0:254 Constant:
+0:254 false (const bool)
+0:254 false (const bool)
+0:254 false (const bool)
+0:254 false (const bool)
+0:256 add second child into first child (temp double)
+0:256 'doublev' (temp double)
+0:256 length (global double)
+0:256 'doublev' (temp double)
+0:257 add second child into first child (temp double)
+0:257 'doublev' (temp double)
+0:257 length (global double)
+0:257 'dvec2v' (temp 2-component vector of double)
+0:258 add second child into first child (temp double)
+0:258 'doublev' (temp double)
+0:258 length (global double)
+0:258 'dvec3v' (temp 3-component vector of double)
+0:259 add second child into first child (temp double)
+0:259 'doublev' (temp double)
+0:259 length (global double)
+0:259 'dvec4v' (temp 4-component vector of double)
+0:261 add second child into first child (temp double)
+0:261 'doublev' (temp double)
+0:261 distance (global double)
+0:261 'doublev' (temp double)
+0:261 'doublev' (temp double)
+0:262 add second child into first child (temp double)
+0:262 'doublev' (temp double)
+0:262 distance (global double)
+0:262 'dvec2v' (temp 2-component vector of double)
+0:262 'dvec2v' (temp 2-component vector of double)
+0:263 add second child into first child (temp double)
+0:263 'doublev' (temp double)
+0:263 distance (global double)
+0:263 'dvec3v' (temp 3-component vector of double)
+0:263 'dvec3v' (temp 3-component vector of double)
+0:264 add second child into first child (temp double)
+0:264 'doublev' (temp double)
+0:264 distance (global double)
+0:264 'dvec4v' (temp 4-component vector of double)
+0:264 'dvec4v' (temp 4-component vector of double)
+0:266 add second child into first child (temp double)
+0:266 'doublev' (temp double)
+0:266 dot-product (global double)
+0:266 'doublev' (temp double)
+0:266 'doublev' (temp double)
+0:267 add second child into first child (temp double)
+0:267 'doublev' (temp double)
+0:267 dot-product (global double)
+0:267 'dvec2v' (temp 2-component vector of double)
+0:267 'dvec2v' (temp 2-component vector of double)
+0:268 add second child into first child (temp double)
+0:268 'doublev' (temp double)
+0:268 dot-product (global double)
+0:268 'dvec3v' (temp 3-component vector of double)
+0:268 'dvec3v' (temp 3-component vector of double)
+0:269 add second child into first child (temp double)
+0:269 'doublev' (temp double)
+0:269 dot-product (global double)
+0:269 'dvec4v' (temp 4-component vector of double)
+0:269 'dvec4v' (temp 4-component vector of double)
+0:271 add second child into first child (temp 3-component vector of double)
+0:271 'dvec3v' (temp 3-component vector of double)
+0:271 cross-product (global 3-component vector of double)
+0:271 'dvec3v' (temp 3-component vector of double)
+0:271 'dvec3v' (temp 3-component vector of double)
+0:273 add second child into first child (temp double)
+0:273 'doublev' (temp double)
+0:273 normalize (global double)
+0:273 'doublev' (temp double)
+0:274 add second child into first child (temp 2-component vector of double)
+0:274 'dvec2v' (temp 2-component vector of double)
+0:274 normalize (global 2-component vector of double)
+0:274 'dvec2v' (temp 2-component vector of double)
+0:275 add second child into first child (temp 3-component vector of double)
+0:275 'dvec3v' (temp 3-component vector of double)
+0:275 normalize (global 3-component vector of double)
+0:275 'dvec3v' (temp 3-component vector of double)
+0:276 add second child into first child (temp 4-component vector of double)
+0:276 'dvec4v' (temp 4-component vector of double)
+0:276 normalize (global 4-component vector of double)
+0:276 'dvec4v' (temp 4-component vector of double)
+0:278 add second child into first child (temp double)
+0:278 'doublev' (temp double)
+0:278 face-forward (global double)
+0:278 'doublev' (temp double)
+0:278 'doublev' (temp double)
+0:278 'doublev' (temp double)
+0:279 add second child into first child (temp 2-component vector of double)
+0:279 'dvec2v' (temp 2-component vector of double)
+0:279 face-forward (global 2-component vector of double)
+0:279 'dvec2v' (temp 2-component vector of double)
+0:279 'dvec2v' (temp 2-component vector of double)
+0:279 'dvec2v' (temp 2-component vector of double)
+0:280 add second child into first child (temp 3-component vector of double)
+0:280 'dvec3v' (temp 3-component vector of double)
+0:280 face-forward (global 3-component vector of double)
+0:280 'dvec3v' (temp 3-component vector of double)
+0:280 'dvec3v' (temp 3-component vector of double)
+0:280 'dvec3v' (temp 3-component vector of double)
+0:281 add second child into first child (temp 4-component vector of double)
+0:281 'dvec4v' (temp 4-component vector of double)
+0:281 face-forward (global 4-component vector of double)
+0:281 'dvec4v' (temp 4-component vector of double)
+0:281 'dvec4v' (temp 4-component vector of double)
+0:281 'dvec4v' (temp 4-component vector of double)
+0:283 add second child into first child (temp double)
+0:283 'doublev' (temp double)
+0:283 reflect (global double)
+0:283 'doublev' (temp double)
+0:283 'doublev' (temp double)
+0:284 add second child into first child (temp 2-component vector of double)
+0:284 'dvec2v' (temp 2-component vector of double)
+0:284 reflect (global 2-component vector of double)
+0:284 'dvec2v' (temp 2-component vector of double)
+0:284 'dvec2v' (temp 2-component vector of double)
+0:285 add second child into first child (temp 3-component vector of double)
+0:285 'dvec3v' (temp 3-component vector of double)
+0:285 reflect (global 3-component vector of double)
+0:285 'dvec3v' (temp 3-component vector of double)
+0:285 'dvec3v' (temp 3-component vector of double)
+0:286 add second child into first child (temp 4-component vector of double)
+0:286 'dvec4v' (temp 4-component vector of double)
+0:286 reflect (global 4-component vector of double)
+0:286 'dvec4v' (temp 4-component vector of double)
+0:286 'dvec4v' (temp 4-component vector of double)
+0:288 add second child into first child (temp double)
+0:288 'doublev' (temp double)
+0:288 refract (global double)
+0:288 'doublev' (temp double)
+0:288 'doublev' (temp double)
+0:288 'doublev' (temp double)
+0:289 add second child into first child (temp 2-component vector of double)
+0:289 'dvec2v' (temp 2-component vector of double)
+0:289 refract (global 2-component vector of double)
+0:289 'dvec2v' (temp 2-component vector of double)
+0:289 'dvec2v' (temp 2-component vector of double)
+0:289 'doublev' (temp double)
+0:290 add second child into first child (temp 3-component vector of double)
+0:290 'dvec3v' (temp 3-component vector of double)
+0:290 refract (global 3-component vector of double)
+0:290 'dvec3v' (temp 3-component vector of double)
+0:290 'dvec3v' (temp 3-component vector of double)
+0:290 'doublev' (temp double)
+0:291 add second child into first child (temp 4-component vector of double)
+0:291 'dvec4v' (temp 4-component vector of double)
+0:291 refract (global 4-component vector of double)
+0:291 'dvec4v' (temp 4-component vector of double)
+0:291 'dvec4v' (temp 4-component vector of double)
+0:291 'doublev' (temp double)
+0:293 Sequence
+0:293 move second child to first child (temp 2X2 matrix of double)
+0:293 'dmat2v' (temp 2X2 matrix of double)
+0:293 outer product (global 2X2 matrix of double)
+0:293 'dvec2v' (temp 2-component vector of double)
+0:293 'dvec2v' (temp 2-component vector of double)
+0:294 Sequence
+0:294 move second child to first child (temp 3X3 matrix of double)
+0:294 'dmat3v' (temp 3X3 matrix of double)
+0:294 outer product (global 3X3 matrix of double)
+0:294 'dvec3v' (temp 3-component vector of double)
+0:294 'dvec3v' (temp 3-component vector of double)
+0:295 Sequence
+0:295 move second child to first child (temp 4X4 matrix of double)
+0:295 'dmat4v' (temp 4X4 matrix of double)
+0:295 outer product (global 4X4 matrix of double)
+0:295 'dvec4v' (temp 4-component vector of double)
+0:295 'dvec4v' (temp 4-component vector of double)
+0:296 Sequence
+0:296 move second child to first child (temp 2X3 matrix of double)
+0:296 'dmat2x3v' (temp 2X3 matrix of double)
+0:296 outer product (global 2X3 matrix of double)
+0:296 'dvec3v' (temp 3-component vector of double)
+0:296 'dvec2v' (temp 2-component vector of double)
+0:297 Sequence
+0:297 move second child to first child (temp 3X2 matrix of double)
+0:297 'dmat3x2v' (temp 3X2 matrix of double)
+0:297 outer product (global 3X2 matrix of double)
+0:297 'dvec2v' (temp 2-component vector of double)
+0:297 'dvec3v' (temp 3-component vector of double)
+0:298 Sequence
+0:298 move second child to first child (temp 2X4 matrix of double)
+0:298 'dmat2x4v' (temp 2X4 matrix of double)
+0:298 outer product (global 2X4 matrix of double)
+0:298 'dvec4v' (temp 4-component vector of double)
+0:298 'dvec2v' (temp 2-component vector of double)
+0:299 Sequence
+0:299 move second child to first child (temp 4X2 matrix of double)
+0:299 'dmat4x2v' (temp 4X2 matrix of double)
+0:299 outer product (global 4X2 matrix of double)
+0:299 'dvec2v' (temp 2-component vector of double)
+0:299 'dvec4v' (temp 4-component vector of double)
+0:300 Sequence
+0:300 move second child to first child (temp 3X4 matrix of double)
+0:300 'dmat3x4v' (temp 3X4 matrix of double)
+0:300 outer product (global 3X4 matrix of double)
+0:300 'dvec4v' (temp 4-component vector of double)
+0:300 'dvec3v' (temp 3-component vector of double)
+0:301 Sequence
+0:301 move second child to first child (temp 4X3 matrix of double)
+0:301 'dmat4x3v' (temp 4X3 matrix of double)
+0:301 outer product (global 4X3 matrix of double)
+0:301 'dvec3v' (temp 3-component vector of double)
+0:301 'dvec4v' (temp 4-component vector of double)
+0:303 matrix mult second child into first child (temp 2X2 matrix of double)
+0:303 'dmat2v' (temp 2X2 matrix of double)
+0:303 component-wise multiply (global 2X2 matrix of double)
+0:303 'dmat2v' (temp 2X2 matrix of double)
+0:303 'dmat2v' (temp 2X2 matrix of double)
+0:304 matrix mult second child into first child (temp 3X3 matrix of double)
+0:304 'dmat3v' (temp 3X3 matrix of double)
+0:304 component-wise multiply (global 3X3 matrix of double)
+0:304 'dmat3v' (temp 3X3 matrix of double)
+0:304 'dmat3v' (temp 3X3 matrix of double)
+0:305 matrix mult second child into first child (temp 4X4 matrix of double)
+0:305 'dmat4v' (temp 4X4 matrix of double)
+0:305 component-wise multiply (global 4X4 matrix of double)
+0:305 'dmat4v' (temp 4X4 matrix of double)
+0:305 'dmat4v' (temp 4X4 matrix of double)
+0:306 move second child to first child (temp 2X3 matrix of double)
+0:306 'dmat2x3v' (temp 2X3 matrix of double)
+0:306 component-wise multiply (global 2X3 matrix of double)
+0:306 'dmat2x3v' (temp 2X3 matrix of double)
+0:306 'dmat2x3v' (temp 2X3 matrix of double)
+0:307 move second child to first child (temp 2X4 matrix of double)
+0:307 'dmat2x4v' (temp 2X4 matrix of double)
+0:307 component-wise multiply (global 2X4 matrix of double)
+0:307 'dmat2x4v' (temp 2X4 matrix of double)
+0:307 'dmat2x4v' (temp 2X4 matrix of double)
+0:308 move second child to first child (temp 3X2 matrix of double)
+0:308 'dmat3x2v' (temp 3X2 matrix of double)
+0:308 component-wise multiply (global 3X2 matrix of double)
+0:308 'dmat3x2v' (temp 3X2 matrix of double)
+0:308 'dmat3x2v' (temp 3X2 matrix of double)
+0:309 move second child to first child (temp 3X4 matrix of double)
+0:309 'dmat3x4v' (temp 3X4 matrix of double)
+0:309 component-wise multiply (global 3X4 matrix of double)
+0:309 'dmat3x4v' (temp 3X4 matrix of double)
+0:309 'dmat3x4v' (temp 3X4 matrix of double)
+0:310 move second child to first child (temp 4X2 matrix of double)
+0:310 'dmat4x2v' (temp 4X2 matrix of double)
+0:310 component-wise multiply (global 4X2 matrix of double)
+0:310 'dmat4x2v' (temp 4X2 matrix of double)
+0:310 'dmat4x2v' (temp 4X2 matrix of double)
+0:311 move second child to first child (temp 4X3 matrix of double)
+0:311 'dmat4x3v' (temp 4X3 matrix of double)
+0:311 component-wise multiply (global 4X3 matrix of double)
+0:311 'dmat4x3v' (temp 4X3 matrix of double)
+0:311 'dmat4x3v' (temp 4X3 matrix of double)
+0:313 matrix mult second child into first child (temp 2X2 matrix of double)
+0:313 'dmat2v' (temp 2X2 matrix of double)
+0:313 transpose (global 2X2 matrix of double)
+0:313 'dmat2v' (temp 2X2 matrix of double)
+0:314 matrix mult second child into first child (temp 3X3 matrix of double)
+0:314 'dmat3v' (temp 3X3 matrix of double)
+0:314 transpose (global 3X3 matrix of double)
+0:314 'dmat3v' (temp 3X3 matrix of double)
+0:315 matrix mult second child into first child (temp 4X4 matrix of double)
+0:315 'dmat4v' (temp 4X4 matrix of double)
+0:315 transpose (global 4X4 matrix of double)
+0:315 'dmat4v' (temp 4X4 matrix of double)
+0:316 move second child to first child (temp 2X3 matrix of double)
+0:316 'dmat2x3v' (temp 2X3 matrix of double)
+0:316 transpose (global 2X3 matrix of double)
+0:316 'dmat3x2v' (temp 3X2 matrix of double)
+0:317 move second child to first child (temp 3X2 matrix of double)
+0:317 'dmat3x2v' (temp 3X2 matrix of double)
+0:317 transpose (global 3X2 matrix of double)
+0:317 'dmat2x3v' (temp 2X3 matrix of double)
+0:318 move second child to first child (temp 2X4 matrix of double)
+0:318 'dmat2x4v' (temp 2X4 matrix of double)
+0:318 transpose (global 2X4 matrix of double)
+0:318 'dmat4x2v' (temp 4X2 matrix of double)
+0:319 move second child to first child (temp 4X2 matrix of double)
+0:319 'dmat4x2v' (temp 4X2 matrix of double)
+0:319 transpose (global 4X2 matrix of double)
+0:319 'dmat2x4v' (temp 2X4 matrix of double)
+0:320 move second child to first child (temp 3X4 matrix of double)
+0:320 'dmat3x4v' (temp 3X4 matrix of double)
+0:320 transpose (global 3X4 matrix of double)
+0:320 'dmat4x3v' (temp 4X3 matrix of double)
+0:321 move second child to first child (temp 4X3 matrix of double)
+0:321 'dmat4x3v' (temp 4X3 matrix of double)
+0:321 transpose (global 4X3 matrix of double)
+0:321 'dmat3x4v' (temp 3X4 matrix of double)
+0:323 add second child into first child (temp double)
+0:323 'doublev' (temp double)
+0:323 determinant (global double)
+0:323 'dmat2v' (temp 2X2 matrix of double)
+0:324 add second child into first child (temp double)
+0:324 'doublev' (temp double)
+0:324 determinant (global double)
+0:324 'dmat3v' (temp 3X3 matrix of double)
+0:325 add second child into first child (temp double)
+0:325 'doublev' (temp double)
+0:325 determinant (global double)
+0:325 'dmat4v' (temp 4X4 matrix of double)
+0:327 matrix mult second child into first child (temp 2X2 matrix of double)
+0:327 'dmat2v' (temp 2X2 matrix of double)
+0:327 inverse (global 2X2 matrix of double)
+0:327 'dmat2v' (temp 2X2 matrix of double)
+0:328 matrix mult second child into first child (temp 3X3 matrix of double)
+0:328 'dmat3v' (temp 3X3 matrix of double)
+0:328 inverse (global 3X3 matrix of double)
+0:328 'dmat3v' (temp 3X3 matrix of double)
+0:329 matrix mult second child into first child (temp 4X4 matrix of double)
+0:329 'dmat4v' (temp 4X4 matrix of double)
+0:329 inverse (global 4X4 matrix of double)
+0:329 'dmat4v' (temp 4X4 matrix of double)
+0:? Linker Objects
+0:? 'bn' (in 3-element array of block{in int a})
+0:? 'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize})
+0:? 'color' (in 3-element array of 4-component vector of float)
+0:? 'color2' (in 3-element array of 4-component vector of float)
+0:? 'colorS' (in 3-element array of 4-component vector of float)
+0:? 'colorBad' (in 4-element array of 4-component vector of float)
+0:? 'colorbad2' (in 2-element array of 4-component vector of float)
+0:? 'cva' (layout(location=4 ) in 3-element array of 4-component vector of float)
+0:? 'cvb' (layout(location=5 ) in 3-element array of 4-component vector of float)
+0:? 'cmc' (layout(location=2 ) in 3-element array of 3X3 matrix of float)
+0:? 'patchIn' (patch in 3-element array of 4-component vector of float)
+0:? 'patchOut' (layout(stream=0 ) patch out 4-component vector of float)
+0:? 'scalar' (in float)
+0:? 'inbls' (in block{in int a})
+0:? 'inbla' (in 17-element array of block{in int a})
+0:? 'indexedOut' (layout(location=7 stream=0 ) out 4-component vector of float)
+0:? 'samp1D' (uniform sampler1D)
+0:? 'samp2Ds' (uniform sampler2DShadow)
+
+
+Linked geometry stage:
+
+ERROR: Linking geometry stage: At least one shader must specify an output layout primitive
+
+Shader version: 400
+Requested GL_ARB_separate_shader_objects
+invocations = 4
+max_vertices = 127
+input primitive = triangles
+output primitive = none
+ERROR: node is still EOpNull!
+0:3 Function Definition: main( (global void)
+0:3 Function Parameters:
+0:5 Sequence
+0:5 EmitStreamVertex (global void)
+0:5 Constant:
+0:5 1 (const int)
+0:6 EndStreamPrimitive (global void)
+0:6 Constant:
+0:6 0 (const int)
+0:7 EmitVertex (global void)
+0:8 EndPrimitive (global void)
+0:9 Sequence
+0:9 move second child to first child (temp int)
+0:9 'id' (temp int)
+0:9 'gl_InvocationID' (in int InvocationID)
+0:23 Function Definition: foo( (global void)
+0:23 Function Parameters:
+0:25 Sequence
+0:25 Constant:
+0:25 1 (const int)
+0:26 gl_Position: direct index for structure (in 4-component vector of float Position)
+0:26 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize})
+0:26 'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize})
+0:26 Constant:
+0:26 1 (const int)
+0:26 Constant:
+0:26 0 (const int)
+0:34 Function Definition: foo2( (global void)
+0:34 Function Parameters:
+0:36 Sequence
+0:36 Constant:
+0:36 1 (const int)
+0:37 Constant:
+0:37 3 (const int)
+0:46 Function Definition: foo3( (global void)
+0:46 Function Parameters:
+0:48 Sequence
+0:48 Constant:
+0:48 3 (const int)
+0:49 Constant:
+0:49 3 (const int)
+0:50 Constant:
+0:50 3 (const int)
+0:51 Constant:
+0:51 3 (const int)
+0:75 Function Definition: bits( (global void)
+0:75 Function Parameters:
+0:? Sequence
+0:78 move second child to first child (temp 2-component vector of uint)
+0:78 'u2' (temp 2-component vector of uint)
+0:78 addCarry (global 2-component vector of uint)
+0:78 'u2' (temp 2-component vector of uint)
+0:78 'u2' (temp 2-component vector of uint)
+0:78 'u2' (temp 2-component vector of uint)
+0:80 move second child to first child (temp uint)
+0:80 'u1' (temp uint)
+0:80 subBorrow (global uint)
+0:80 'u1' (temp uint)
+0:80 'u1' (temp uint)
+0:80 'u1' (temp uint)
+0:82 uMulExtended (global void)
+0:82 'u4' (temp 4-component vector of uint)
+0:82 'u4' (temp 4-component vector of uint)
+0:82 'u4' (temp 4-component vector of uint)
+0:82 'u4' (temp 4-component vector of uint)
+0:84 iMulExtended (global void)
+0:84 'i4' (temp 4-component vector of int)
+0:84 'i4' (temp 4-component vector of int)
+0:84 'i4' (temp 4-component vector of int)
+0:84 'i4' (temp 4-component vector of int)
+0:86 move second child to first child (temp int)
+0:86 'i1' (temp int)
+0:86 bitfieldExtract (global int)
+0:86 'i1' (temp int)
+0:86 Constant:
+0:86 4 (const int)
+0:86 Constant:
+0:86 5 (const int)
+0:88 move second child to first child (temp 3-component vector of uint)
+0:88 'u3' (temp 3-component vector of uint)
+0:88 bitfieldExtract (global 3-component vector of uint)
+0:88 'u3' (temp 3-component vector of uint)
+0:88 Constant:
+0:88 4 (const int)
+0:88 Constant:
+0:88 5 (const int)
+0:90 move second child to first child (temp 3-component vector of int)
+0:90 'i3' (temp 3-component vector of int)
+0:90 bitfieldInsert (global 3-component vector of int)
+0:90 'i3' (temp 3-component vector of int)
+0:90 'i3' (temp 3-component vector of int)
+0:90 Constant:
+0:90 4 (const int)
+0:90 Constant:
+0:90 5 (const int)
+0:91 move second child to first child (temp uint)
+0:91 'u1' (temp uint)
+0:91 bitfieldInsert (global uint)
+0:91 'u1' (temp uint)
+0:91 'u1' (temp uint)
+0:91 Constant:
+0:91 4 (const int)
+0:91 Constant:
+0:91 5 (const int)
+0:93 move second child to first child (temp 2-component vector of int)
+0:93 'i2' (temp 2-component vector of int)
+0:93 bitFieldReverse (global 2-component vector of int)
+0:93 'i2' (temp 2-component vector of int)
+0:94 move second child to first child (temp 4-component vector of uint)
+0:94 'u4' (temp 4-component vector of uint)
+0:94 bitFieldReverse (global 4-component vector of uint)
+0:94 'u4' (temp 4-component vector of uint)
+0:95 move second child to first child (temp int)
+0:95 'i1' (temp int)
+0:95 bitCount (global int)
+0:95 'i1' (temp int)
+0:96 move second child to first child (temp 3-component vector of int)
+0:96 'i3' (temp 3-component vector of int)
+0:96 bitCount (global 3-component vector of int)
+0:96 'u3' (temp 3-component vector of uint)
+0:97 move second child to first child (temp 2-component vector of int)
+0:97 'i2' (temp 2-component vector of int)
+0:97 findLSB (global 2-component vector of int)
+0:97 'i2' (temp 2-component vector of int)
+0:98 move second child to first child (temp 4-component vector of int)
+0:98 'i4' (temp 4-component vector of int)
+0:98 findLSB (global 4-component vector of int)
+0:98 'u4' (temp 4-component vector of uint)
+0:99 move second child to first child (temp int)
+0:99 'i1' (temp int)
+0:99 findMSB (global int)
+0:99 'i1' (temp int)
+0:100 move second child to first child (temp 2-component vector of int)
+0:100 'i2' (temp 2-component vector of int)
+0:100 findMSB (global 2-component vector of int)
+0:100 'u2' (temp 2-component vector of uint)
+0:108 Function Definition: qlod( (global void)
+0:108 Function Parameters:
+0:? Sequence
+0:115 'lod' (temp 2-component vector of float)
+0:116 'lod' (temp 2-component vector of float)
+0:119 Function Definition: doubles( (global void)
+0:119 Function Parameters:
+0:? Sequence
+0:131 move second child to first child (temp double)
+0:131 'doublev' (temp double)
+0:131 Constant:
+0:131 1.702939
+0:132 move second child to first child (temp 2-component vector of double)
+0:132 'dvec2v' (temp 2-component vector of double)
+0:132 Constant:
+0:132 1.643168
+0:132 1.643168
+0:133 move second child to first child (temp 3-component vector of double)
+0:133 'dvec3v' (temp 3-component vector of double)
+0:133 Constant:
+0:133 1.414214
+0:133 1.414214
+0:133 1.414214
+0:134 move second child to first child (temp 4-component vector of double)
+0:134 'dvec4v' (temp 4-component vector of double)
+0:134 Constant:
+0:134 1.449138
+0:134 1.449138
+0:134 1.449138
+0:134 1.449138
+0:136 add second child into first child (temp double)
+0:136 'doublev' (temp double)
+0:136 inverse sqrt (global double)
+0:136 'doublev' (temp double)
+0:137 add second child into first child (temp 2-component vector of double)
+0:137 'dvec2v' (temp 2-component vector of double)
+0:137 inverse sqrt (global 2-component vector of double)
+0:137 'dvec2v' (temp 2-component vector of double)
+0:138 add second child into first child (temp 3-component vector of double)
+0:138 'dvec3v' (temp 3-component vector of double)
+0:138 inverse sqrt (global 3-component vector of double)
+0:138 'dvec3v' (temp 3-component vector of double)
+0:139 add second child into first child (temp 4-component vector of double)
+0:139 'dvec4v' (temp 4-component vector of double)
+0:139 inverse sqrt (global 4-component vector of double)
+0:139 'dvec4v' (temp 4-component vector of double)
+0:141 add second child into first child (temp double)
+0:141 'doublev' (temp double)
+0:141 Absolute value (global double)
+0:141 'doublev' (temp double)
+0:142 add second child into first child (temp 2-component vector of double)
+0:142 'dvec2v' (temp 2-component vector of double)
+0:142 Absolute value (global 2-component vector of double)
+0:142 'dvec2v' (temp 2-component vector of double)
+0:143 add second child into first child (temp 3-component vector of double)
+0:143 'dvec3v' (temp 3-component vector of double)
+0:143 Absolute value (global 3-component vector of double)
+0:143 'dvec3v' (temp 3-component vector of double)
+0:144 add second child into first child (temp 4-component vector of double)
+0:144 'dvec4v' (temp 4-component vector of double)
+0:144 Absolute value (global 4-component vector of double)
+0:144 'dvec4v' (temp 4-component vector of double)
+0:146 add second child into first child (temp double)
+0:146 'doublev' (temp double)
+0:146 Sign (global double)
+0:146 'doublev' (temp double)
+0:147 add second child into first child (temp 2-component vector of double)
+0:147 'dvec2v' (temp 2-component vector of double)
+0:147 Sign (global 2-component vector of double)
+0:147 'dvec2v' (temp 2-component vector of double)
+0:148 add second child into first child (temp 3-component vector of double)
+0:148 'dvec3v' (temp 3-component vector of double)
+0:148 Sign (global 3-component vector of double)
+0:148 'dvec3v' (temp 3-component vector of double)
+0:149 add second child into first child (temp 4-component vector of double)
+0:149 'dvec4v' (temp 4-component vector of double)
+0:149 Sign (global 4-component vector of double)
+0:149 'dvec4v' (temp 4-component vector of double)
+0:151 add second child into first child (temp double)
+0:151 'doublev' (temp double)
+0:151 Floor (global double)
+0:151 'doublev' (temp double)
+0:152 add second child into first child (temp 2-component vector of double)
+0:152 'dvec2v' (temp 2-component vector of double)
+0:152 Floor (global 2-component vector of double)
+0:152 'dvec2v' (temp 2-component vector of double)
+0:153 add second child into first child (temp 3-component vector of double)
+0:153 'dvec3v' (temp 3-component vector of double)
+0:153 Floor (global 3-component vector of double)
+0:153 'dvec3v' (temp 3-component vector of double)
+0:154 add second child into first child (temp 4-component vector of double)
+0:154 'dvec4v' (temp 4-component vector of double)
+0:154 Floor (global 4-component vector of double)
+0:154 'dvec4v' (temp 4-component vector of double)
+0:156 add second child into first child (temp double)
+0:156 'doublev' (temp double)
+0:156 trunc (global double)
+0:156 'doublev' (temp double)
+0:157 add second child into first child (temp 2-component vector of double)
+0:157 'dvec2v' (temp 2-component vector of double)
+0:157 trunc (global 2-component vector of double)
+0:157 'dvec2v' (temp 2-component vector of double)
+0:158 add second child into first child (temp 3-component vector of double)
+0:158 'dvec3v' (temp 3-component vector of double)
+0:158 trunc (global 3-component vector of double)
+0:158 'dvec3v' (temp 3-component vector of double)
+0:159 add second child into first child (temp 4-component vector of double)
+0:159 'dvec4v' (temp 4-component vector of double)
+0:159 trunc (global 4-component vector of double)
+0:159 'dvec4v' (temp 4-component vector of double)
+0:161 add second child into first child (temp double)
+0:161 'doublev' (temp double)
+0:161 round (global double)
+0:161 'doublev' (temp double)
+0:162 add second child into first child (temp 2-component vector of double)
+0:162 'dvec2v' (temp 2-component vector of double)
+0:162 round (global 2-component vector of double)
+0:162 'dvec2v' (temp 2-component vector of double)
+0:163 add second child into first child (temp 3-component vector of double)
+0:163 'dvec3v' (temp 3-component vector of double)
+0:163 round (global 3-component vector of double)
+0:163 'dvec3v' (temp 3-component vector of double)
+0:164 add second child into first child (temp 4-component vector of double)
+0:164 'dvec4v' (temp 4-component vector of double)
+0:164 round (global 4-component vector of double)
+0:164 'dvec4v' (temp 4-component vector of double)
+0:166 add second child into first child (temp double)
+0:166 'doublev' (temp double)
+0:166 roundEven (global double)
+0:166 'doublev' (temp double)
+0:167 add second child into first child (temp 2-component vector of double)
+0:167 'dvec2v' (temp 2-component vector of double)
+0:167 roundEven (global 2-component vector of double)
+0:167 'dvec2v' (temp 2-component vector of double)
+0:168 add second child into first child (temp 3-component vector of double)
+0:168 'dvec3v' (temp 3-component vector of double)
+0:168 roundEven (global 3-component vector of double)
+0:168 'dvec3v' (temp 3-component vector of double)
+0:169 add second child into first child (temp 4-component vector of double)
+0:169 'dvec4v' (temp 4-component vector of double)
+0:169 roundEven (global 4-component vector of double)
+0:169 'dvec4v' (temp 4-component vector of double)
+0:171 add second child into first child (temp double)
+0:171 'doublev' (temp double)
+0:171 Ceiling (global double)
+0:171 'doublev' (temp double)
+0:172 add second child into first child (temp 2-component vector of double)
+0:172 'dvec2v' (temp 2-component vector of double)
+0:172 Ceiling (global 2-component vector of double)
+0:172 'dvec2v' (temp 2-component vector of double)
+0:173 add second child into first child (temp 3-component vector of double)
+0:173 'dvec3v' (temp 3-component vector of double)
+0:173 Ceiling (global 3-component vector of double)
+0:173 'dvec3v' (temp 3-component vector of double)
+0:174 add second child into first child (temp 4-component vector of double)
+0:174 'dvec4v' (temp 4-component vector of double)
+0:174 Ceiling (global 4-component vector of double)
+0:174 'dvec4v' (temp 4-component vector of double)
+0:176 add second child into first child (temp double)
+0:176 'doublev' (temp double)
+0:176 Fraction (global double)
+0:176 'doublev' (temp double)
+0:177 add second child into first child (temp 2-component vector of double)
+0:177 'dvec2v' (temp 2-component vector of double)
+0:177 Fraction (global 2-component vector of double)
+0:177 'dvec2v' (temp 2-component vector of double)
+0:178 add second child into first child (temp 3-component vector of double)
+0:178 'dvec3v' (temp 3-component vector of double)
+0:178 Fraction (global 3-component vector of double)
+0:178 'dvec3v' (temp 3-component vector of double)
+0:179 add second child into first child (temp 4-component vector of double)
+0:179 'dvec4v' (temp 4-component vector of double)
+0:179 Fraction (global 4-component vector of double)
+0:179 'dvec4v' (temp 4-component vector of double)
+0:181 add second child into first child (temp double)
+0:181 'doublev' (temp double)
+0:181 mod (global double)
+0:181 'doublev' (temp double)
+0:181 'doublev' (temp double)
+0:182 add second child into first child (temp 2-component vector of double)
+0:182 'dvec2v' (temp 2-component vector of double)
+0:182 mod (global 2-component vector of double)
+0:182 'dvec2v' (temp 2-component vector of double)
+0:182 'doublev' (temp double)
+0:183 add second child into first child (temp 3-component vector of double)
+0:183 'dvec3v' (temp 3-component vector of double)
+0:183 mod (global 3-component vector of double)
+0:183 'dvec3v' (temp 3-component vector of double)
+0:183 'doublev' (temp double)
+0:184 add second child into first child (temp 4-component vector of double)
+0:184 'dvec4v' (temp 4-component vector of double)
+0:184 mod (global 4-component vector of double)
+0:184 'dvec4v' (temp 4-component vector of double)
+0:184 'doublev' (temp double)
+0:185 add second child into first child (temp 2-component vector of double)
+0:185 'dvec2v' (temp 2-component vector of double)
+0:185 mod (global 2-component vector of double)
+0:185 'dvec2v' (temp 2-component vector of double)
+0:185 'dvec2v' (temp 2-component vector of double)
+0:186 add second child into first child (temp 3-component vector of double)
+0:186 'dvec3v' (temp 3-component vector of double)
+0:186 mod (global 3-component vector of double)
+0:186 'dvec3v' (temp 3-component vector of double)
+0:186 'dvec3v' (temp 3-component vector of double)
+0:187 add second child into first child (temp 4-component vector of double)
+0:187 'dvec4v' (temp 4-component vector of double)
+0:187 mod (global 4-component vector of double)
+0:187 'dvec4v' (temp 4-component vector of double)
+0:187 'dvec4v' (temp 4-component vector of double)
+0:189 add second child into first child (temp double)
+0:189 'doublev' (temp double)
+0:189 modf (global double)
+0:189 'doublev' (temp double)
+0:189 'doublev' (temp double)
+0:190 add second child into first child (temp 2-component vector of double)
+0:190 'dvec2v' (temp 2-component vector of double)
+0:190 modf (global 2-component vector of double)
+0:190 'dvec2v' (temp 2-component vector of double)
+0:190 'dvec2v' (temp 2-component vector of double)
+0:191 add second child into first child (temp 3-component vector of double)
+0:191 'dvec3v' (temp 3-component vector of double)
+0:191 modf (global 3-component vector of double)
+0:191 'dvec3v' (temp 3-component vector of double)
+0:191 'dvec3v' (temp 3-component vector of double)
+0:192 add second child into first child (temp 4-component vector of double)
+0:192 'dvec4v' (temp 4-component vector of double)
+0:192 modf (global 4-component vector of double)
+0:192 'dvec4v' (temp 4-component vector of double)
+0:192 'dvec4v' (temp 4-component vector of double)
+0:194 add second child into first child (temp double)
+0:194 'doublev' (temp double)
+0:194 min (global double)
+0:194 'doublev' (temp double)
+0:194 'doublev' (temp double)
+0:195 add second child into first child (temp 2-component vector of double)
+0:195 'dvec2v' (temp 2-component vector of double)
+0:195 min (global 2-component vector of double)
+0:195 'dvec2v' (temp 2-component vector of double)
+0:195 'doublev' (temp double)
+0:196 add second child into first child (temp 3-component vector of double)
+0:196 'dvec3v' (temp 3-component vector of double)
+0:196 min (global 3-component vector of double)
+0:196 'dvec3v' (temp 3-component vector of double)
+0:196 'doublev' (temp double)
+0:197 add second child into first child (temp 4-component vector of double)
+0:197 'dvec4v' (temp 4-component vector of double)
+0:197 min (global 4-component vector of double)
+0:197 'dvec4v' (temp 4-component vector of double)
+0:197 'doublev' (temp double)
+0:198 add second child into first child (temp 2-component vector of double)
+0:198 'dvec2v' (temp 2-component vector of double)
+0:198 min (global 2-component vector of double)
+0:198 'dvec2v' (temp 2-component vector of double)
+0:198 'dvec2v' (temp 2-component vector of double)
+0:199 add second child into first child (temp 3-component vector of double)
+0:199 'dvec3v' (temp 3-component vector of double)
+0:199 min (global 3-component vector of double)
+0:199 'dvec3v' (temp 3-component vector of double)
+0:199 'dvec3v' (temp 3-component vector of double)
+0:200 add second child into first child (temp 4-component vector of double)
+0:200 'dvec4v' (temp 4-component vector of double)
+0:200 min (global 4-component vector of double)
+0:200 'dvec4v' (temp 4-component vector of double)
+0:200 'dvec4v' (temp 4-component vector of double)
+0:202 add second child into first child (temp double)
+0:202 'doublev' (temp double)
+0:202 max (global double)
+0:202 'doublev' (temp double)
+0:202 'doublev' (temp double)
+0:203 add second child into first child (temp 2-component vector of double)
+0:203 'dvec2v' (temp 2-component vector of double)
+0:203 max (global 2-component vector of double)
+0:203 'dvec2v' (temp 2-component vector of double)
+0:203 'doublev' (temp double)
+0:204 add second child into first child (temp 3-component vector of double)
+0:204 'dvec3v' (temp 3-component vector of double)
+0:204 max (global 3-component vector of double)
+0:204 'dvec3v' (temp 3-component vector of double)
+0:204 'doublev' (temp double)
+0:205 add second child into first child (temp 4-component vector of double)
+0:205 'dvec4v' (temp 4-component vector of double)
+0:205 max (global 4-component vector of double)
+0:205 'dvec4v' (temp 4-component vector of double)
+0:205 'doublev' (temp double)
+0:206 add second child into first child (temp 2-component vector of double)
+0:206 'dvec2v' (temp 2-component vector of double)
+0:206 max (global 2-component vector of double)
+0:206 'dvec2v' (temp 2-component vector of double)
+0:206 'dvec2v' (temp 2-component vector of double)
+0:207 add second child into first child (temp 3-component vector of double)
+0:207 'dvec3v' (temp 3-component vector of double)
+0:207 max (global 3-component vector of double)
+0:207 'dvec3v' (temp 3-component vector of double)
+0:207 'dvec3v' (temp 3-component vector of double)
+0:208 add second child into first child (temp 4-component vector of double)
+0:208 'dvec4v' (temp 4-component vector of double)
+0:208 max (global 4-component vector of double)
+0:208 'dvec4v' (temp 4-component vector of double)
+0:208 'dvec4v' (temp 4-component vector of double)
+0:210 add second child into first child (temp double)
+0:210 'doublev' (temp double)
+0:210 clamp (global double)
+0:210 'doublev' (temp double)
+0:210 'doublev' (temp double)
+0:210 'doublev' (temp double)
+0:211 add second child into first child (temp 2-component vector of double)
+0:211 'dvec2v' (temp 2-component vector of double)
+0:211 clamp (global 2-component vector of double)
+0:211 'dvec2v' (temp 2-component vector of double)
+0:211 'doublev' (temp double)
+0:211 'doublev' (temp double)
+0:212 add second child into first child (temp 3-component vector of double)
+0:212 'dvec3v' (temp 3-component vector of double)
+0:212 clamp (global 3-component vector of double)
+0:212 'dvec3v' (temp 3-component vector of double)
+0:212 'doublev' (temp double)
+0:212 'doublev' (temp double)
+0:213 add second child into first child (temp 4-component vector of double)
+0:213 'dvec4v' (temp 4-component vector of double)
+0:213 clamp (global 4-component vector of double)
+0:213 'dvec4v' (temp 4-component vector of double)
+0:213 'doublev' (temp double)
+0:213 'doublev' (temp double)
+0:214 add second child into first child (temp 2-component vector of double)
+0:214 'dvec2v' (temp 2-component vector of double)
+0:214 clamp (global 2-component vector of double)
+0:214 'dvec2v' (temp 2-component vector of double)
+0:214 'dvec2v' (temp 2-component vector of double)
+0:214 'dvec2v' (temp 2-component vector of double)
+0:215 add second child into first child (temp 3-component vector of double)
+0:215 'dvec3v' (temp 3-component vector of double)
+0:215 clamp (global 3-component vector of double)
+0:215 'dvec3v' (temp 3-component vector of double)
+0:215 'dvec3v' (temp 3-component vector of double)
+0:215 'dvec3v' (temp 3-component vector of double)
+0:216 add second child into first child (temp 4-component vector of double)
+0:216 'dvec4v' (temp 4-component vector of double)
+0:216 clamp (global 4-component vector of double)
+0:216 'dvec4v' (temp 4-component vector of double)
+0:216 'dvec4v' (temp 4-component vector of double)
+0:216 'dvec4v' (temp 4-component vector of double)
+0:218 add second child into first child (temp double)
+0:218 'doublev' (temp double)
+0:218 mix (global double)
+0:218 'doublev' (temp double)
+0:218 'doublev' (temp double)
+0:218 'doublev' (temp double)
+0:219 add second child into first child (temp 2-component vector of double)
+0:219 'dvec2v' (temp 2-component vector of double)
+0:219 mix (global 2-component vector of double)
+0:219 'dvec2v' (temp 2-component vector of double)
+0:219 'dvec2v' (temp 2-component vector of double)
+0:219 'doublev' (temp double)
+0:220 add second child into first child (temp 3-component vector of double)
+0:220 'dvec3v' (temp 3-component vector of double)
+0:220 mix (global 3-component vector of double)
+0:220 'dvec3v' (temp 3-component vector of double)
+0:220 'dvec3v' (temp 3-component vector of double)
+0:220 'doublev' (temp double)
+0:221 add second child into first child (temp 4-component vector of double)
+0:221 'dvec4v' (temp 4-component vector of double)
+0:221 mix (global 4-component vector of double)
+0:221 'dvec4v' (temp 4-component vector of double)
+0:221 'dvec4v' (temp 4-component vector of double)
+0:221 'doublev' (temp double)
+0:222 add second child into first child (temp 2-component vector of double)
+0:222 'dvec2v' (temp 2-component vector of double)
+0:222 mix (global 2-component vector of double)
+0:222 'dvec2v' (temp 2-component vector of double)
+0:222 'dvec2v' (temp 2-component vector of double)
+0:222 'dvec2v' (temp 2-component vector of double)
+0:223 add second child into first child (temp 3-component vector of double)
+0:223 'dvec3v' (temp 3-component vector of double)
+0:223 mix (global 3-component vector of double)
+0:223 'dvec3v' (temp 3-component vector of double)
+0:223 'dvec3v' (temp 3-component vector of double)
+0:223 'dvec3v' (temp 3-component vector of double)
+0:224 add second child into first child (temp 4-component vector of double)
+0:224 'dvec4v' (temp 4-component vector of double)
+0:224 mix (global 4-component vector of double)
+0:224 'dvec4v' (temp 4-component vector of double)
+0:224 'dvec4v' (temp 4-component vector of double)
+0:224 'dvec4v' (temp 4-component vector of double)
+0:225 add second child into first child (temp double)
+0:225 'doublev' (temp double)
+0:225 mix (global double)
+0:225 'doublev' (temp double)
+0:225 'doublev' (temp double)
+0:225 'boolv' (temp bool)
+0:226 add second child into first child (temp 2-component vector of double)
+0:226 'dvec2v' (temp 2-component vector of double)
+0:226 mix (global 2-component vector of double)
+0:226 'dvec2v' (temp 2-component vector of double)
+0:226 'dvec2v' (temp 2-component vector of double)
+0:226 'bvec2v' (temp 2-component vector of bool)
+0:227 add second child into first child (temp 3-component vector of double)
+0:227 'dvec3v' (temp 3-component vector of double)
+0:227 mix (global 3-component vector of double)
+0:227 'dvec3v' (temp 3-component vector of double)
+0:227 'dvec3v' (temp 3-component vector of double)
+0:227 'bvec3v' (temp 3-component vector of bool)
+0:228 add second child into first child (temp 4-component vector of double)
+0:228 'dvec4v' (temp 4-component vector of double)
+0:228 mix (global 4-component vector of double)
+0:228 'dvec4v' (temp 4-component vector of double)
+0:228 'dvec4v' (temp 4-component vector of double)
+0:228 'bvec4v' (temp 4-component vector of bool)
+0:230 add second child into first child (temp double)
+0:230 'doublev' (temp double)
+0:230 step (global double)
+0:230 'doublev' (temp double)
+0:230 'doublev' (temp double)
+0:231 add second child into first child (temp 2-component vector of double)
+0:231 'dvec2v' (temp 2-component vector of double)
+0:231 step (global 2-component vector of double)
+0:231 'dvec2v' (temp 2-component vector of double)
+0:231 'dvec2v' (temp 2-component vector of double)
+0:232 add second child into first child (temp 3-component vector of double)
+0:232 'dvec3v' (temp 3-component vector of double)
+0:232 step (global 3-component vector of double)
+0:232 'dvec3v' (temp 3-component vector of double)
+0:232 'dvec3v' (temp 3-component vector of double)
+0:233 add second child into first child (temp 4-component vector of double)
+0:233 'dvec4v' (temp 4-component vector of double)
+0:233 step (global 4-component vector of double)
+0:233 'dvec4v' (temp 4-component vector of double)
+0:233 'dvec4v' (temp 4-component vector of double)
+0:234 add second child into first child (temp 2-component vector of double)
+0:234 'dvec2v' (temp 2-component vector of double)
+0:234 step (global 2-component vector of double)
+0:234 'doublev' (temp double)
+0:234 'dvec2v' (temp 2-component vector of double)
+0:235 add second child into first child (temp 3-component vector of double)
+0:235 'dvec3v' (temp 3-component vector of double)
+0:235 step (global 3-component vector of double)
+0:235 'doublev' (temp double)
+0:235 'dvec3v' (temp 3-component vector of double)
+0:236 add second child into first child (temp 4-component vector of double)
+0:236 'dvec4v' (temp 4-component vector of double)
+0:236 step (global 4-component vector of double)
+0:236 'doublev' (temp double)
+0:236 'dvec4v' (temp 4-component vector of double)
+0:238 add second child into first child (temp double)
+0:238 'doublev' (temp double)
+0:238 smoothstep (global double)
+0:238 'doublev' (temp double)
+0:238 'doublev' (temp double)
+0:238 'doublev' (temp double)
+0:239 add second child into first child (temp 2-component vector of double)
+0:239 'dvec2v' (temp 2-component vector of double)
+0:239 smoothstep (global 2-component vector of double)
+0:239 'dvec2v' (temp 2-component vector of double)
+0:239 'dvec2v' (temp 2-component vector of double)
+0:239 'dvec2v' (temp 2-component vector of double)
+0:240 add second child into first child (temp 3-component vector of double)
+0:240 'dvec3v' (temp 3-component vector of double)
+0:240 smoothstep (global 3-component vector of double)
+0:240 'dvec3v' (temp 3-component vector of double)
+0:240 'dvec3v' (temp 3-component vector of double)
+0:240 'dvec3v' (temp 3-component vector of double)
+0:241 add second child into first child (temp 4-component vector of double)
+0:241 'dvec4v' (temp 4-component vector of double)
+0:241 smoothstep (global 4-component vector of double)
+0:241 'dvec4v' (temp 4-component vector of double)
+0:241 'dvec4v' (temp 4-component vector of double)
+0:241 'dvec4v' (temp 4-component vector of double)
+0:242 add second child into first child (temp 2-component vector of double)
+0:242 'dvec2v' (temp 2-component vector of double)
+0:242 smoothstep (global 2-component vector of double)
+0:242 'doublev' (temp double)
+0:242 'doublev' (temp double)
+0:242 'dvec2v' (temp 2-component vector of double)
+0:243 add second child into first child (temp 3-component vector of double)
+0:243 'dvec3v' (temp 3-component vector of double)
+0:243 smoothstep (global 3-component vector of double)
+0:243 'doublev' (temp double)
+0:243 'doublev' (temp double)
+0:243 'dvec3v' (temp 3-component vector of double)
+0:244 add second child into first child (temp 4-component vector of double)
+0:244 'dvec4v' (temp 4-component vector of double)
+0:244 smoothstep (global 4-component vector of double)
+0:244 'doublev' (temp double)
+0:244 'doublev' (temp double)
+0:244 'dvec4v' (temp 4-component vector of double)
+0:246 move second child to first child (temp bool)
+0:246 'boolv' (temp bool)
+0:246 isnan (global bool)
+0:246 'doublev' (temp double)
+0:247 move second child to first child (temp 2-component vector of bool)
+0:247 'bvec2v' (temp 2-component vector of bool)
+0:247 isnan (global 2-component vector of bool)
+0:247 'dvec2v' (temp 2-component vector of double)
+0:248 move second child to first child (temp 3-component vector of bool)
+0:248 'bvec3v' (temp 3-component vector of bool)
+0:248 isnan (global 3-component vector of bool)
+0:248 'dvec3v' (temp 3-component vector of double)
+0:249 move second child to first child (temp 4-component vector of bool)
+0:249 'bvec4v' (temp 4-component vector of bool)
+0:249 isnan (global 4-component vector of bool)
+0:249 'dvec4v' (temp 4-component vector of double)
+0:251 move second child to first child (temp bool)
+0:251 'boolv' (temp bool)
+0:251 Test condition and select (temp bool)
+0:251 Condition
+0:251 'boolv' (temp bool)
+0:251 true case
+0:251 isinf (global bool)
+0:251 'doublev' (temp double)
+0:251 false case
+0:251 Constant:
+0:251 false (const bool)
+0:252 move second child to first child (temp 2-component vector of bool)
+0:252 'bvec2v' (temp 2-component vector of bool)
+0:252 Test condition and select (temp 2-component vector of bool)
+0:252 Condition
+0:252 'boolv' (temp bool)
+0:252 true case
+0:252 isinf (global 2-component vector of bool)
+0:252 'dvec2v' (temp 2-component vector of double)
+0:252 false case
+0:252 Constant:
+0:252 false (const bool)
+0:252 false (const bool)
+0:253 move second child to first child (temp 3-component vector of bool)
+0:253 'bvec3v' (temp 3-component vector of bool)
+0:253 Test condition and select (temp 3-component vector of bool)
+0:253 Condition
+0:253 'boolv' (temp bool)
+0:253 true case
+0:253 isinf (global 3-component vector of bool)
+0:253 'dvec3v' (temp 3-component vector of double)
+0:253 false case
+0:253 Constant:
+0:253 false (const bool)
+0:253 false (const bool)
+0:253 false (const bool)
+0:254 move second child to first child (temp 4-component vector of bool)
+0:254 'bvec4v' (temp 4-component vector of bool)
+0:254 Test condition and select (temp 4-component vector of bool)
+0:254 Condition
+0:254 'boolv' (temp bool)
+0:254 true case
+0:254 isinf (global 4-component vector of bool)
+0:254 'dvec4v' (temp 4-component vector of double)
+0:254 false case
+0:254 Constant:
+0:254 false (const bool)
+0:254 false (const bool)
+0:254 false (const bool)
+0:254 false (const bool)
+0:256 add second child into first child (temp double)
+0:256 'doublev' (temp double)
+0:256 length (global double)
+0:256 'doublev' (temp double)
+0:257 add second child into first child (temp double)
+0:257 'doublev' (temp double)
+0:257 length (global double)
+0:257 'dvec2v' (temp 2-component vector of double)
+0:258 add second child into first child (temp double)
+0:258 'doublev' (temp double)
+0:258 length (global double)
+0:258 'dvec3v' (temp 3-component vector of double)
+0:259 add second child into first child (temp double)
+0:259 'doublev' (temp double)
+0:259 length (global double)
+0:259 'dvec4v' (temp 4-component vector of double)
+0:261 add second child into first child (temp double)
+0:261 'doublev' (temp double)
+0:261 distance (global double)
+0:261 'doublev' (temp double)
+0:261 'doublev' (temp double)
+0:262 add second child into first child (temp double)
+0:262 'doublev' (temp double)
+0:262 distance (global double)
+0:262 'dvec2v' (temp 2-component vector of double)
+0:262 'dvec2v' (temp 2-component vector of double)
+0:263 add second child into first child (temp double)
+0:263 'doublev' (temp double)
+0:263 distance (global double)
+0:263 'dvec3v' (temp 3-component vector of double)
+0:263 'dvec3v' (temp 3-component vector of double)
+0:264 add second child into first child (temp double)
+0:264 'doublev' (temp double)
+0:264 distance (global double)
+0:264 'dvec4v' (temp 4-component vector of double)
+0:264 'dvec4v' (temp 4-component vector of double)
+0:266 add second child into first child (temp double)
+0:266 'doublev' (temp double)
+0:266 dot-product (global double)
+0:266 'doublev' (temp double)
+0:266 'doublev' (temp double)
+0:267 add second child into first child (temp double)
+0:267 'doublev' (temp double)
+0:267 dot-product (global double)
+0:267 'dvec2v' (temp 2-component vector of double)
+0:267 'dvec2v' (temp 2-component vector of double)
+0:268 add second child into first child (temp double)
+0:268 'doublev' (temp double)
+0:268 dot-product (global double)
+0:268 'dvec3v' (temp 3-component vector of double)
+0:268 'dvec3v' (temp 3-component vector of double)
+0:269 add second child into first child (temp double)
+0:269 'doublev' (temp double)
+0:269 dot-product (global double)
+0:269 'dvec4v' (temp 4-component vector of double)
+0:269 'dvec4v' (temp 4-component vector of double)
+0:271 add second child into first child (temp 3-component vector of double)
+0:271 'dvec3v' (temp 3-component vector of double)
+0:271 cross-product (global 3-component vector of double)
+0:271 'dvec3v' (temp 3-component vector of double)
+0:271 'dvec3v' (temp 3-component vector of double)
+0:273 add second child into first child (temp double)
+0:273 'doublev' (temp double)
+0:273 normalize (global double)
+0:273 'doublev' (temp double)
+0:274 add second child into first child (temp 2-component vector of double)
+0:274 'dvec2v' (temp 2-component vector of double)
+0:274 normalize (global 2-component vector of double)
+0:274 'dvec2v' (temp 2-component vector of double)
+0:275 add second child into first child (temp 3-component vector of double)
+0:275 'dvec3v' (temp 3-component vector of double)
+0:275 normalize (global 3-component vector of double)
+0:275 'dvec3v' (temp 3-component vector of double)
+0:276 add second child into first child (temp 4-component vector of double)
+0:276 'dvec4v' (temp 4-component vector of double)
+0:276 normalize (global 4-component vector of double)
+0:276 'dvec4v' (temp 4-component vector of double)
+0:278 add second child into first child (temp double)
+0:278 'doublev' (temp double)
+0:278 face-forward (global double)
+0:278 'doublev' (temp double)
+0:278 'doublev' (temp double)
+0:278 'doublev' (temp double)
+0:279 add second child into first child (temp 2-component vector of double)
+0:279 'dvec2v' (temp 2-component vector of double)
+0:279 face-forward (global 2-component vector of double)
+0:279 'dvec2v' (temp 2-component vector of double)
+0:279 'dvec2v' (temp 2-component vector of double)
+0:279 'dvec2v' (temp 2-component vector of double)
+0:280 add second child into first child (temp 3-component vector of double)
+0:280 'dvec3v' (temp 3-component vector of double)
+0:280 face-forward (global 3-component vector of double)
+0:280 'dvec3v' (temp 3-component vector of double)
+0:280 'dvec3v' (temp 3-component vector of double)
+0:280 'dvec3v' (temp 3-component vector of double)
+0:281 add second child into first child (temp 4-component vector of double)
+0:281 'dvec4v' (temp 4-component vector of double)
+0:281 face-forward (global 4-component vector of double)
+0:281 'dvec4v' (temp 4-component vector of double)
+0:281 'dvec4v' (temp 4-component vector of double)
+0:281 'dvec4v' (temp 4-component vector of double)
+0:283 add second child into first child (temp double)
+0:283 'doublev' (temp double)
+0:283 reflect (global double)
+0:283 'doublev' (temp double)
+0:283 'doublev' (temp double)
+0:284 add second child into first child (temp 2-component vector of double)
+0:284 'dvec2v' (temp 2-component vector of double)
+0:284 reflect (global 2-component vector of double)
+0:284 'dvec2v' (temp 2-component vector of double)
+0:284 'dvec2v' (temp 2-component vector of double)
+0:285 add second child into first child (temp 3-component vector of double)
+0:285 'dvec3v' (temp 3-component vector of double)
+0:285 reflect (global 3-component vector of double)
+0:285 'dvec3v' (temp 3-component vector of double)
+0:285 'dvec3v' (temp 3-component vector of double)
+0:286 add second child into first child (temp 4-component vector of double)
+0:286 'dvec4v' (temp 4-component vector of double)
+0:286 reflect (global 4-component vector of double)
+0:286 'dvec4v' (temp 4-component vector of double)
+0:286 'dvec4v' (temp 4-component vector of double)
+0:288 add second child into first child (temp double)
+0:288 'doublev' (temp double)
+0:288 refract (global double)
+0:288 'doublev' (temp double)
+0:288 'doublev' (temp double)
+0:288 'doublev' (temp double)
+0:289 add second child into first child (temp 2-component vector of double)
+0:289 'dvec2v' (temp 2-component vector of double)
+0:289 refract (global 2-component vector of double)
+0:289 'dvec2v' (temp 2-component vector of double)
+0:289 'dvec2v' (temp 2-component vector of double)
+0:289 'doublev' (temp double)
+0:290 add second child into first child (temp 3-component vector of double)
+0:290 'dvec3v' (temp 3-component vector of double)
+0:290 refract (global 3-component vector of double)
+0:290 'dvec3v' (temp 3-component vector of double)
+0:290 'dvec3v' (temp 3-component vector of double)
+0:290 'doublev' (temp double)
+0:291 add second child into first child (temp 4-component vector of double)
+0:291 'dvec4v' (temp 4-component vector of double)
+0:291 refract (global 4-component vector of double)
+0:291 'dvec4v' (temp 4-component vector of double)
+0:291 'dvec4v' (temp 4-component vector of double)
+0:291 'doublev' (temp double)
+0:293 Sequence
+0:293 move second child to first child (temp 2X2 matrix of double)
+0:293 'dmat2v' (temp 2X2 matrix of double)
+0:293 outer product (global 2X2 matrix of double)
+0:293 'dvec2v' (temp 2-component vector of double)
+0:293 'dvec2v' (temp 2-component vector of double)
+0:294 Sequence
+0:294 move second child to first child (temp 3X3 matrix of double)
+0:294 'dmat3v' (temp 3X3 matrix of double)
+0:294 outer product (global 3X3 matrix of double)
+0:294 'dvec3v' (temp 3-component vector of double)
+0:294 'dvec3v' (temp 3-component vector of double)
+0:295 Sequence
+0:295 move second child to first child (temp 4X4 matrix of double)
+0:295 'dmat4v' (temp 4X4 matrix of double)
+0:295 outer product (global 4X4 matrix of double)
+0:295 'dvec4v' (temp 4-component vector of double)
+0:295 'dvec4v' (temp 4-component vector of double)
+0:296 Sequence
+0:296 move second child to first child (temp 2X3 matrix of double)
+0:296 'dmat2x3v' (temp 2X3 matrix of double)
+0:296 outer product (global 2X3 matrix of double)
+0:296 'dvec3v' (temp 3-component vector of double)
+0:296 'dvec2v' (temp 2-component vector of double)
+0:297 Sequence
+0:297 move second child to first child (temp 3X2 matrix of double)
+0:297 'dmat3x2v' (temp 3X2 matrix of double)
+0:297 outer product (global 3X2 matrix of double)
+0:297 'dvec2v' (temp 2-component vector of double)
+0:297 'dvec3v' (temp 3-component vector of double)
+0:298 Sequence
+0:298 move second child to first child (temp 2X4 matrix of double)
+0:298 'dmat2x4v' (temp 2X4 matrix of double)
+0:298 outer product (global 2X4 matrix of double)
+0:298 'dvec4v' (temp 4-component vector of double)
+0:298 'dvec2v' (temp 2-component vector of double)
+0:299 Sequence
+0:299 move second child to first child (temp 4X2 matrix of double)
+0:299 'dmat4x2v' (temp 4X2 matrix of double)
+0:299 outer product (global 4X2 matrix of double)
+0:299 'dvec2v' (temp 2-component vector of double)
+0:299 'dvec4v' (temp 4-component vector of double)
+0:300 Sequence
+0:300 move second child to first child (temp 3X4 matrix of double)
+0:300 'dmat3x4v' (temp 3X4 matrix of double)
+0:300 outer product (global 3X4 matrix of double)
+0:300 'dvec4v' (temp 4-component vector of double)
+0:300 'dvec3v' (temp 3-component vector of double)
+0:301 Sequence
+0:301 move second child to first child (temp 4X3 matrix of double)
+0:301 'dmat4x3v' (temp 4X3 matrix of double)
+0:301 outer product (global 4X3 matrix of double)
+0:301 'dvec3v' (temp 3-component vector of double)
+0:301 'dvec4v' (temp 4-component vector of double)
+0:303 matrix mult second child into first child (temp 2X2 matrix of double)
+0:303 'dmat2v' (temp 2X2 matrix of double)
+0:303 component-wise multiply (global 2X2 matrix of double)
+0:303 'dmat2v' (temp 2X2 matrix of double)
+0:303 'dmat2v' (temp 2X2 matrix of double)
+0:304 matrix mult second child into first child (temp 3X3 matrix of double)
+0:304 'dmat3v' (temp 3X3 matrix of double)
+0:304 component-wise multiply (global 3X3 matrix of double)
+0:304 'dmat3v' (temp 3X3 matrix of double)
+0:304 'dmat3v' (temp 3X3 matrix of double)
+0:305 matrix mult second child into first child (temp 4X4 matrix of double)
+0:305 'dmat4v' (temp 4X4 matrix of double)
+0:305 component-wise multiply (global 4X4 matrix of double)
+0:305 'dmat4v' (temp 4X4 matrix of double)
+0:305 'dmat4v' (temp 4X4 matrix of double)
+0:306 move second child to first child (temp 2X3 matrix of double)
+0:306 'dmat2x3v' (temp 2X3 matrix of double)
+0:306 component-wise multiply (global 2X3 matrix of double)
+0:306 'dmat2x3v' (temp 2X3 matrix of double)
+0:306 'dmat2x3v' (temp 2X3 matrix of double)
+0:307 move second child to first child (temp 2X4 matrix of double)
+0:307 'dmat2x4v' (temp 2X4 matrix of double)
+0:307 component-wise multiply (global 2X4 matrix of double)
+0:307 'dmat2x4v' (temp 2X4 matrix of double)
+0:307 'dmat2x4v' (temp 2X4 matrix of double)
+0:308 move second child to first child (temp 3X2 matrix of double)
+0:308 'dmat3x2v' (temp 3X2 matrix of double)
+0:308 component-wise multiply (global 3X2 matrix of double)
+0:308 'dmat3x2v' (temp 3X2 matrix of double)
+0:308 'dmat3x2v' (temp 3X2 matrix of double)
+0:309 move second child to first child (temp 3X4 matrix of double)
+0:309 'dmat3x4v' (temp 3X4 matrix of double)
+0:309 component-wise multiply (global 3X4 matrix of double)
+0:309 'dmat3x4v' (temp 3X4 matrix of double)
+0:309 'dmat3x4v' (temp 3X4 matrix of double)
+0:310 move second child to first child (temp 4X2 matrix of double)
+0:310 'dmat4x2v' (temp 4X2 matrix of double)
+0:310 component-wise multiply (global 4X2 matrix of double)
+0:310 'dmat4x2v' (temp 4X2 matrix of double)
+0:310 'dmat4x2v' (temp 4X2 matrix of double)
+0:311 move second child to first child (temp 4X3 matrix of double)
+0:311 'dmat4x3v' (temp 4X3 matrix of double)
+0:311 component-wise multiply (global 4X3 matrix of double)
+0:311 'dmat4x3v' (temp 4X3 matrix of double)
+0:311 'dmat4x3v' (temp 4X3 matrix of double)
+0:313 matrix mult second child into first child (temp 2X2 matrix of double)
+0:313 'dmat2v' (temp 2X2 matrix of double)
+0:313 transpose (global 2X2 matrix of double)
+0:313 'dmat2v' (temp 2X2 matrix of double)
+0:314 matrix mult second child into first child (temp 3X3 matrix of double)
+0:314 'dmat3v' (temp 3X3 matrix of double)
+0:314 transpose (global 3X3 matrix of double)
+0:314 'dmat3v' (temp 3X3 matrix of double)
+0:315 matrix mult second child into first child (temp 4X4 matrix of double)
+0:315 'dmat4v' (temp 4X4 matrix of double)
+0:315 transpose (global 4X4 matrix of double)
+0:315 'dmat4v' (temp 4X4 matrix of double)
+0:316 move second child to first child (temp 2X3 matrix of double)
+0:316 'dmat2x3v' (temp 2X3 matrix of double)
+0:316 transpose (global 2X3 matrix of double)
+0:316 'dmat3x2v' (temp 3X2 matrix of double)
+0:317 move second child to first child (temp 3X2 matrix of double)
+0:317 'dmat3x2v' (temp 3X2 matrix of double)
+0:317 transpose (global 3X2 matrix of double)
+0:317 'dmat2x3v' (temp 2X3 matrix of double)
+0:318 move second child to first child (temp 2X4 matrix of double)
+0:318 'dmat2x4v' (temp 2X4 matrix of double)
+0:318 transpose (global 2X4 matrix of double)
+0:318 'dmat4x2v' (temp 4X2 matrix of double)
+0:319 move second child to first child (temp 4X2 matrix of double)
+0:319 'dmat4x2v' (temp 4X2 matrix of double)
+0:319 transpose (global 4X2 matrix of double)
+0:319 'dmat2x4v' (temp 2X4 matrix of double)
+0:320 move second child to first child (temp 3X4 matrix of double)
+0:320 'dmat3x4v' (temp 3X4 matrix of double)
+0:320 transpose (global 3X4 matrix of double)
+0:320 'dmat4x3v' (temp 4X3 matrix of double)
+0:321 move second child to first child (temp 4X3 matrix of double)
+0:321 'dmat4x3v' (temp 4X3 matrix of double)
+0:321 transpose (global 4X3 matrix of double)
+0:321 'dmat3x4v' (temp 3X4 matrix of double)
+0:323 add second child into first child (temp double)
+0:323 'doublev' (temp double)
+0:323 determinant (global double)
+0:323 'dmat2v' (temp 2X2 matrix of double)
+0:324 add second child into first child (temp double)
+0:324 'doublev' (temp double)
+0:324 determinant (global double)
+0:324 'dmat3v' (temp 3X3 matrix of double)
+0:325 add second child into first child (temp double)
+0:325 'doublev' (temp double)
+0:325 determinant (global double)
+0:325 'dmat4v' (temp 4X4 matrix of double)
+0:327 matrix mult second child into first child (temp 2X2 matrix of double)
+0:327 'dmat2v' (temp 2X2 matrix of double)
+0:327 inverse (global 2X2 matrix of double)
+0:327 'dmat2v' (temp 2X2 matrix of double)
+0:328 matrix mult second child into first child (temp 3X3 matrix of double)
+0:328 'dmat3v' (temp 3X3 matrix of double)
+0:328 inverse (global 3X3 matrix of double)
+0:328 'dmat3v' (temp 3X3 matrix of double)
+0:329 matrix mult second child into first child (temp 4X4 matrix of double)
+0:329 'dmat4v' (temp 4X4 matrix of double)
+0:329 inverse (global 4X4 matrix of double)
+0:329 'dmat4v' (temp 4X4 matrix of double)
+0:? Linker Objects
+0:? 'bn' (in 3-element array of block{in int a})
+0:? 'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize})
+0:? 'color' (in 3-element array of 4-component vector of float)
+0:? 'color2' (in 3-element array of 4-component vector of float)
+0:? 'colorS' (in 3-element array of 4-component vector of float)
+0:? 'colorBad' (in 4-element array of 4-component vector of float)
+0:? 'colorbad2' (in 2-element array of 4-component vector of float)
+0:? 'cva' (layout(location=4 ) in 3-element array of 4-component vector of float)
+0:? 'cvb' (layout(location=5 ) in 3-element array of 4-component vector of float)
+0:? 'cmc' (layout(location=2 ) in 3-element array of 3X3 matrix of float)
+0:? 'patchIn' (patch in 3-element array of 4-component vector of float)
+0:? 'patchOut' (layout(stream=0 ) patch out 4-component vector of float)
+0:? 'scalar' (in float)
+0:? 'inbls' (in block{in int a})
+0:? 'inbla' (in 17-element array of block{in int a})
+0:? 'indexedOut' (layout(location=7 stream=0 ) out 4-component vector of float)
+0:? 'samp1D' (uniform sampler1D)
+0:? 'samp2Ds' (uniform sampler2DShadow)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/400.tesc.out b/chromium/third_party/glslang/src/Test/baseResults/400.tesc.out
new file mode 100644
index 00000000000..58a8a32732d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/400.tesc.out
@@ -0,0 +1,414 @@
+400.tesc
+Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:6: 'quads' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)
+ERROR: 0:7: 'ccw' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)
+ERROR: 0:8: 'fractional_even_spacing' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)
+ERROR: 0:10: 'patch' : can only use on output in tessellation-control shader
+ERROR: 0:39: '' : tessellation control barrier() cannot be placed within flow control
+ERROR: 0:41: '' : tessellation control barrier() cannot be placed within flow control
+ERROR: 0:46: '' : tessellation control barrier() cannot be placed within flow control
+ERROR: 0:51: '' : tessellation control barrier() cannot be placed within flow control
+ERROR: 0:54: '' : tessellation control barrier() cannot be placed within flow control
+ERROR: 0:61: '' : tessellation control barrier() cannot be placed after a return from main()
+ERROR: 0:64: 'vertices' : can only apply to 'out'
+ERROR: 0:65: 'vertices' : cannot change previously set layout value
+ERROR: 0:69: '[' : array index out of range '4'
+ERROR: 0:71: '' : tessellation control barrier() must be in main()
+ERROR: 0:74: 'in' : type must be an array: ina
+ERROR: 0:76: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized
+ERROR: 0:83: 'location' : overlapping use of location 4
+ERROR: 0:87: 'location' : overlapping use of location 4
+ERROR: 0:104: '' : precise qualifier must appear first
+ERROR: 0:105: '' : precise qualifier must appear first
+ERROR: 0:105: '' : precise qualifier must appear first
+ERROR: 21 compilation errors. No code generated.
+
+
+Shader version: 400
+Requested GL_ARB_separate_shader_objects
+vertices = 4
+ERROR: node is still EOpNull!
+0:13 Function Definition: main( (global void)
+0:13 Function Parameters:
+0:15 Sequence
+0:15 Barrier (global void)
+0:17 Sequence
+0:17 move second child to first child (temp int)
+0:17 'a' (temp int)
+0:17 Constant:
+0:17 5392 (const int)
+0:23 Sequence
+0:23 move second child to first child (temp 4-component vector of float)
+0:23 'p' (temp 4-component vector of float)
+0:23 gl_Position: direct index for structure (in 4-component vector of float Position)
+0:23 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:23 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:23 Constant:
+0:23 1 (const int)
+0:23 Constant:
+0:23 0 (const int)
+0:24 Sequence
+0:24 move second child to first child (temp float)
+0:24 'ps' (temp float)
+0:24 gl_PointSize: direct index for structure (in float PointSize)
+0:24 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:24 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:24 Constant:
+0:24 1 (const int)
+0:24 Constant:
+0:24 1 (const int)
+0:25 Sequence
+0:25 move second child to first child (temp float)
+0:25 'cd' (temp float)
+0:25 direct index (temp float ClipDistance)
+0:25 gl_ClipDistance: direct index for structure (in implicitly-sized array of float ClipDistance)
+0:25 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:25 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:25 Constant:
+0:25 1 (const int)
+0:25 Constant:
+0:25 2 (const int)
+0:25 Constant:
+0:25 2 (const int)
+0:27 Sequence
+0:27 move second child to first child (temp int)
+0:27 'pvi' (temp int)
+0:27 'gl_PatchVerticesIn' (in int PatchVertices)
+0:28 Sequence
+0:28 move second child to first child (temp int)
+0:28 'pid' (temp int)
+0:28 'gl_PrimitiveID' (in int PrimitiveID)
+0:29 Sequence
+0:29 move second child to first child (temp int)
+0:29 'iid' (temp int)
+0:29 'gl_InvocationID' (in int InvocationID)
+0:31 move second child to first child (temp 4-component vector of float)
+0:31 gl_Position: direct index for structure (out 4-component vector of float Position)
+0:31 indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:31 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:31 'gl_InvocationID' (in int InvocationID)
+0:31 Constant:
+0:31 0 (const int)
+0:31 'p' (temp 4-component vector of float)
+0:32 move second child to first child (temp float)
+0:32 gl_PointSize: direct index for structure (out float PointSize)
+0:32 indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:32 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:32 'gl_InvocationID' (in int InvocationID)
+0:32 Constant:
+0:32 1 (const int)
+0:32 'ps' (temp float)
+0:33 move second child to first child (temp float)
+0:33 direct index (temp float ClipDistance)
+0:33 gl_ClipDistance: direct index for structure (out implicitly-sized array of float ClipDistance)
+0:33 indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:33 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:33 'gl_InvocationID' (in int InvocationID)
+0:33 Constant:
+0:33 2 (const int)
+0:33 Constant:
+0:33 1 (const int)
+0:33 'cd' (temp float)
+0:35 move second child to first child (temp float)
+0:35 direct index (patch temp float TessLevelOuter)
+0:35 'gl_TessLevelOuter' (patch out 4-element array of float TessLevelOuter)
+0:35 Constant:
+0:35 3 (const int)
+0:35 Constant:
+0:35 3.200000
+0:36 move second child to first child (temp float)
+0:36 direct index (patch temp float TessLevelInner)
+0:36 'gl_TessLevelInner' (patch out 2-element array of float TessLevelInner)
+0:36 Constant:
+0:36 1 (const int)
+0:36 Constant:
+0:36 1.300000
+0:38 Test condition and select (temp void)
+0:38 Condition
+0:38 Compare Greater Than (temp bool)
+0:38 'a' (temp int)
+0:38 Constant:
+0:38 10 (const int)
+0:38 true case
+0:39 Barrier (global void)
+0:38 false case
+0:41 Barrier (global void)
+0:43 Barrier (global void)
+0:47 Loop with condition not tested first
+0:47 Loop Condition
+0:47 Compare Greater Than (temp bool)
+0:47 'a' (temp int)
+0:47 Constant:
+0:47 10 (const int)
+0:47 Loop Body
+0:46 Sequence
+0:46 Barrier (global void)
+0:49 switch
+0:49 condition
+0:49 'a' (temp int)
+0:49 body
+0:49 Sequence
+0:50 default:
+0:? Sequence
+0:51 Barrier (global void)
+0:52 Branch: Break
+0:54 Test condition and select (temp int)
+0:54 Condition
+0:54 Compare Less Than (temp bool)
+0:54 'a' (temp int)
+0:54 Constant:
+0:54 12 (const int)
+0:54 true case
+0:54 'a' (temp int)
+0:54 false case
+0:54 Comma (temp int)
+0:54 Barrier (global void)
+0:54 'a' (temp int)
+0:56 Sequence
+0:56 Barrier (global void)
+0:59 Branch: Return
+0:61 Barrier (global void)
+0:67 Function Definition: foo( (global void)
+0:67 Function Parameters:
+0:69 Sequence
+0:69 gl_PointSize: direct index for structure (out float PointSize)
+0:69 direct index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:69 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:69 Constant:
+0:69 4 (const int)
+0:69 Constant:
+0:69 1 (const int)
+0:71 Barrier (global void)
+0:91 Function Definition: foop( (global void)
+0:91 Function Parameters:
+0:? Sequence
+0:95 multiply second child into first child (temp 3-component vector of float)
+0:95 'pv3' (noContraction temp 3-component vector of float)
+0:95 'pv3' (noContraction temp 3-component vector of float)
+0:96 move second child to first child (temp 3-component vector of float)
+0:96 'pv3' (noContraction temp 3-component vector of float)
+0:96 fma (global 3-component vector of float)
+0:96 'pv3' (noContraction temp 3-component vector of float)
+0:96 'pv3' (noContraction temp 3-component vector of float)
+0:96 'pv3' (noContraction temp 3-component vector of float)
+0:97 move second child to first child (temp double)
+0:97 'd' (noContraction temp double)
+0:97 fma (global double)
+0:97 'd' (noContraction temp double)
+0:97 'd' (noContraction temp double)
+0:97 'd' (noContraction temp double)
+0:? Linker Objects
+0:? 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:? 'outa' (global 4-element array of int)
+0:? 'patchIn' (patch in 4-component vector of float)
+0:? 'patchOut' (patch out 4-component vector of float)
+0:? 'ina' (in 2-component vector of float)
+0:? 'inb' (in 32-element array of 2-component vector of float)
+0:? 'inc' (in 32-element array of 2-component vector of float)
+0:? 'ind' (in 32-element array of 2-component vector of float)
+0:? 'ivla' (layout(location=3 ) in 32-element array of 4-component vector of float)
+0:? 'ivlb' (layout(location=4 ) in 32-element array of 4-component vector of float)
+0:? 'ivlc' (layout(location=4 ) in 32-element array of 4-component vector of float)
+0:? 'ovla' (layout(location=3 ) out 4-element array of 4-component vector of float)
+0:? 'ovlb' (layout(location=4 ) out 4-element array of 4-component vector of float)
+0:? 'ovlc' (layout(location=4 ) out 4-element array of 4-component vector of float)
+0:? 'pv3' (noContraction temp 3-component vector of float)
+0:? 'pinbi' (patch out block{out int a})
+0:? 'badOrder' (invariant noContraction out 4-element array of 4-component vector of float)
+
+
+Linked tessellation control stage:
+
+
+Shader version: 400
+Requested GL_ARB_separate_shader_objects
+vertices = 4
+ERROR: node is still EOpNull!
+0:13 Function Definition: main( (global void)
+0:13 Function Parameters:
+0:15 Sequence
+0:15 Barrier (global void)
+0:17 Sequence
+0:17 move second child to first child (temp int)
+0:17 'a' (temp int)
+0:17 Constant:
+0:17 5392 (const int)
+0:23 Sequence
+0:23 move second child to first child (temp 4-component vector of float)
+0:23 'p' (temp 4-component vector of float)
+0:23 gl_Position: direct index for structure (in 4-component vector of float Position)
+0:23 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:23 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:23 Constant:
+0:23 1 (const int)
+0:23 Constant:
+0:23 0 (const int)
+0:24 Sequence
+0:24 move second child to first child (temp float)
+0:24 'ps' (temp float)
+0:24 gl_PointSize: direct index for structure (in float PointSize)
+0:24 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:24 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:24 Constant:
+0:24 1 (const int)
+0:24 Constant:
+0:24 1 (const int)
+0:25 Sequence
+0:25 move second child to first child (temp float)
+0:25 'cd' (temp float)
+0:25 direct index (temp float ClipDistance)
+0:25 gl_ClipDistance: direct index for structure (in 3-element array of float ClipDistance)
+0:25 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:25 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:25 Constant:
+0:25 1 (const int)
+0:25 Constant:
+0:25 2 (const int)
+0:25 Constant:
+0:25 2 (const int)
+0:27 Sequence
+0:27 move second child to first child (temp int)
+0:27 'pvi' (temp int)
+0:27 'gl_PatchVerticesIn' (in int PatchVertices)
+0:28 Sequence
+0:28 move second child to first child (temp int)
+0:28 'pid' (temp int)
+0:28 'gl_PrimitiveID' (in int PrimitiveID)
+0:29 Sequence
+0:29 move second child to first child (temp int)
+0:29 'iid' (temp int)
+0:29 'gl_InvocationID' (in int InvocationID)
+0:31 move second child to first child (temp 4-component vector of float)
+0:31 gl_Position: direct index for structure (out 4-component vector of float Position)
+0:31 indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
+0:31 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
+0:31 'gl_InvocationID' (in int InvocationID)
+0:31 Constant:
+0:31 0 (const int)
+0:31 'p' (temp 4-component vector of float)
+0:32 move second child to first child (temp float)
+0:32 gl_PointSize: direct index for structure (out float PointSize)
+0:32 indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
+0:32 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
+0:32 'gl_InvocationID' (in int InvocationID)
+0:32 Constant:
+0:32 1 (const int)
+0:32 'ps' (temp float)
+0:33 move second child to first child (temp float)
+0:33 direct index (temp float ClipDistance)
+0:33 gl_ClipDistance: direct index for structure (out 2-element array of float ClipDistance)
+0:33 indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
+0:33 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
+0:33 'gl_InvocationID' (in int InvocationID)
+0:33 Constant:
+0:33 2 (const int)
+0:33 Constant:
+0:33 1 (const int)
+0:33 'cd' (temp float)
+0:35 move second child to first child (temp float)
+0:35 direct index (patch temp float TessLevelOuter)
+0:35 'gl_TessLevelOuter' (patch out 4-element array of float TessLevelOuter)
+0:35 Constant:
+0:35 3 (const int)
+0:35 Constant:
+0:35 3.200000
+0:36 move second child to first child (temp float)
+0:36 direct index (patch temp float TessLevelInner)
+0:36 'gl_TessLevelInner' (patch out 2-element array of float TessLevelInner)
+0:36 Constant:
+0:36 1 (const int)
+0:36 Constant:
+0:36 1.300000
+0:38 Test condition and select (temp void)
+0:38 Condition
+0:38 Compare Greater Than (temp bool)
+0:38 'a' (temp int)
+0:38 Constant:
+0:38 10 (const int)
+0:38 true case
+0:39 Barrier (global void)
+0:38 false case
+0:41 Barrier (global void)
+0:43 Barrier (global void)
+0:47 Loop with condition not tested first
+0:47 Loop Condition
+0:47 Compare Greater Than (temp bool)
+0:47 'a' (temp int)
+0:47 Constant:
+0:47 10 (const int)
+0:47 Loop Body
+0:46 Sequence
+0:46 Barrier (global void)
+0:49 switch
+0:49 condition
+0:49 'a' (temp int)
+0:49 body
+0:49 Sequence
+0:50 default:
+0:? Sequence
+0:51 Barrier (global void)
+0:52 Branch: Break
+0:54 Test condition and select (temp int)
+0:54 Condition
+0:54 Compare Less Than (temp bool)
+0:54 'a' (temp int)
+0:54 Constant:
+0:54 12 (const int)
+0:54 true case
+0:54 'a' (temp int)
+0:54 false case
+0:54 Comma (temp int)
+0:54 Barrier (global void)
+0:54 'a' (temp int)
+0:56 Sequence
+0:56 Barrier (global void)
+0:59 Branch: Return
+0:61 Barrier (global void)
+0:67 Function Definition: foo( (global void)
+0:67 Function Parameters:
+0:69 Sequence
+0:69 gl_PointSize: direct index for structure (out float PointSize)
+0:69 direct index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
+0:69 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
+0:69 Constant:
+0:69 4 (const int)
+0:69 Constant:
+0:69 1 (const int)
+0:71 Barrier (global void)
+0:91 Function Definition: foop( (global void)
+0:91 Function Parameters:
+0:? Sequence
+0:95 multiply second child into first child (temp 3-component vector of float)
+0:95 'pv3' (noContraction temp 3-component vector of float)
+0:95 'pv3' (noContraction temp 3-component vector of float)
+0:96 move second child to first child (temp 3-component vector of float)
+0:96 'pv3' (noContraction temp 3-component vector of float)
+0:96 fma (global 3-component vector of float)
+0:96 'pv3' (noContraction temp 3-component vector of float)
+0:96 'pv3' (noContraction temp 3-component vector of float)
+0:96 'pv3' (noContraction temp 3-component vector of float)
+0:97 move second child to first child (temp double)
+0:97 'd' (noContraction temp double)
+0:97 fma (global double)
+0:97 'd' (noContraction temp double)
+0:97 'd' (noContraction temp double)
+0:97 'd' (noContraction temp double)
+0:? Linker Objects
+0:? 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
+0:? 'outa' (global 4-element array of int)
+0:? 'patchIn' (patch in 4-component vector of float)
+0:? 'patchOut' (patch out 4-component vector of float)
+0:? 'ina' (in 2-component vector of float)
+0:? 'inb' (in 32-element array of 2-component vector of float)
+0:? 'inc' (in 32-element array of 2-component vector of float)
+0:? 'ind' (in 32-element array of 2-component vector of float)
+0:? 'ivla' (layout(location=3 ) in 32-element array of 4-component vector of float)
+0:? 'ivlb' (layout(location=4 ) in 32-element array of 4-component vector of float)
+0:? 'ivlc' (layout(location=4 ) in 32-element array of 4-component vector of float)
+0:? 'ovla' (layout(location=3 ) out 4-element array of 4-component vector of float)
+0:? 'ovlb' (layout(location=4 ) out 4-element array of 4-component vector of float)
+0:? 'ovlc' (layout(location=4 ) out 4-element array of 4-component vector of float)
+0:? 'pv3' (noContraction temp 3-component vector of float)
+0:? 'pinbi' (patch out block{out int a})
+0:? 'badOrder' (invariant noContraction out 4-element array of 4-component vector of float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/400.tese.out b/chromium/third_party/glslang/src/Test/baseResults/400.tese.out
new file mode 100644
index 00000000000..324dbaa304d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/400.tese.out
@@ -0,0 +1,281 @@
+400.tese
+Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:3: 'vertices' : there is no such layout identifier for this stage taking an assigned value
+ERROR: 0:5: 'triangles' : cannot change previously set input primitive
+ERROR: 0:6: 'isolines' : cannot change previously set input primitive
+ERROR: 0:8: 'ccw' : cannot change previously set vertex order
+ERROR: 0:12: 'equal_spacing' : cannot change previously set vertex spacing
+ERROR: 0:13: 'fractional_even_spacing' : cannot change previously set vertex spacing
+ERROR: 0:18: 'patch' : can only use on input in tessellation-evaluation shader
+ERROR: 0:22: 'barrier' : no matching overloaded function found
+ERROR: 0:47: 'patch' : cannot use interpolation qualifiers with patch
+ERROR: 0:48: 'patch' : cannot use interpolation qualifiers with patch
+ERROR: 0:49: 'patch' : cannot use interpolation qualifiers with patch
+ERROR: 0:50: '' : can only have one auxiliary qualifier (centroid, patch, and sample)
+ERROR: 0:54: 'gl_PerVertex' : block already declared with size, can't redeclare as implicitly-sized
+ERROR: 0:59: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use
+ERROR: 0:64: 'quads' : cannot apply to 'out'
+ERROR: 0:64: 'cw' : can only apply to 'in'
+ERROR: 0:65: 'triangles' : cannot apply to 'out'
+ERROR: 0:66: 'isolines' : cannot apply to 'out'
+ERROR: 0:67: 'cw' : can only apply to 'in'
+ERROR: 0:68: 'fractional_odd_spacing' : can only apply to 'in'
+ERROR: 0:69: 'equal_spacing' : can only apply to 'in'
+ERROR: 0:70: 'fractional_even_spacing' : can only apply to 'in'
+ERROR: 0:71: 'point_mode' : can only apply to 'in'
+ERROR: 0:73: 'in' : type must be an array: ina
+ERROR: 0:75: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized
+ERROR: 0:78: 'in' : type must be an array: bla
+ERROR: 0:86: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized
+ERROR: 0:96: 'location' : overlapping use of location 24
+ERROR: 0:99: 'location' : overlapping use of location 24
+ERROR: 0:101: 'gl_TessLevelOuter' : identifiers starting with "gl_" are reserved
+ERROR: 30 compilation errors. No code generated.
+
+
+Shader version: 400
+Requested GL_ARB_separate_shader_objects
+input primitive = quads
+vertex spacing = fractional_odd_spacing
+triangle order = cw
+using point mode
+ERROR: node is still EOpNull!
+0:20 Function Definition: main( (global void)
+0:20 Function Parameters:
+0:22 Sequence
+0:22 Constant:
+0:22 0.000000
+0:24 Sequence
+0:24 move second child to first child (temp int)
+0:24 'a' (temp int)
+0:24 Constant:
+0:24 1512 (const int)
+0:32 Sequence
+0:32 move second child to first child (temp 4-component vector of float)
+0:32 'p' (temp 4-component vector of float)
+0:32 gl_Position: direct index for structure (in 4-component vector of float Position)
+0:32 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:32 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:32 Constant:
+0:32 1 (const int)
+0:32 Constant:
+0:32 0 (const int)
+0:33 Sequence
+0:33 move second child to first child (temp float)
+0:33 'ps' (temp float)
+0:33 gl_PointSize: direct index for structure (in float PointSize)
+0:33 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:33 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:33 Constant:
+0:33 1 (const int)
+0:33 Constant:
+0:33 1 (const int)
+0:34 Sequence
+0:34 move second child to first child (temp float)
+0:34 'cd' (temp float)
+0:34 direct index (temp float ClipDistance)
+0:34 gl_ClipDistance: direct index for structure (in implicitly-sized array of float ClipDistance)
+0:34 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:34 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:34 Constant:
+0:34 1 (const int)
+0:34 Constant:
+0:34 2 (const int)
+0:34 Constant:
+0:34 2 (const int)
+0:36 Sequence
+0:36 move second child to first child (temp int)
+0:36 'pvi' (temp int)
+0:36 'gl_PatchVerticesIn' (in int PatchVertices)
+0:37 Sequence
+0:37 move second child to first child (temp int)
+0:37 'pid' (temp int)
+0:37 'gl_PrimitiveID' (in int PrimitiveID)
+0:38 Sequence
+0:38 move second child to first child (temp 3-component vector of float)
+0:38 'tc' (temp 3-component vector of float)
+0:38 'gl_TessCoord' (in 3-component vector of float TessCoord)
+0:39 Sequence
+0:39 move second child to first child (temp float)
+0:39 'tlo' (temp float)
+0:39 direct index (patch temp float TessLevelOuter)
+0:39 'gl_TessLevelOuter' (patch in 4-element array of float TessLevelOuter)
+0:39 Constant:
+0:39 3 (const int)
+0:40 Sequence
+0:40 move second child to first child (temp float)
+0:40 'tli' (temp float)
+0:40 direct index (patch temp float TessLevelInner)
+0:40 'gl_TessLevelInner' (patch in 2-element array of float TessLevelInner)
+0:40 Constant:
+0:40 1 (const int)
+0:42 move second child to first child (temp 4-component vector of float)
+0:42 gl_Position: direct index for structure (gl_Position 4-component vector of float Position)
+0:42 'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:42 Constant:
+0:42 0 (const uint)
+0:42 'p' (temp 4-component vector of float)
+0:43 move second child to first child (temp float)
+0:43 gl_PointSize: direct index for structure (gl_PointSize float PointSize)
+0:43 'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:43 Constant:
+0:43 1 (const uint)
+0:43 'ps' (temp float)
+0:44 move second child to first child (temp float)
+0:44 direct index (temp float ClipDistance)
+0:44 gl_ClipDistance: direct index for structure (out implicitly-sized array of float ClipDistance)
+0:44 'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:44 Constant:
+0:44 2 (const uint)
+0:44 Constant:
+0:44 2 (const int)
+0:44 'cd' (temp float)
+0:? Linker Objects
+0:? 'patchIn' (patch in 4-component vector of float)
+0:? 'patchOut' (patch out 4-component vector of float)
+0:? 'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:? 'badp1' (smooth patch in 4-component vector of float)
+0:? 'badp2' (flat patch in 4-component vector of float)
+0:? 'badp3' (noperspective patch in 4-component vector of float)
+0:? 'badp4' (patch sample in 3-component vector of float)
+0:? 'gl_in' (in 32-element array of block{in 1-element array of float ClipDistance gl_ClipDistance})
+0:? 'ina' (in 2-component vector of float)
+0:? 'inb' (in 32-element array of 2-component vector of float)
+0:? 'inc' (in 32-element array of 2-component vector of float)
+0:? 'ind' (in 32-element array of 2-component vector of float)
+0:? 'bla' (in block{in int f})
+0:? 'blb' (in 32-element array of block{in int f})
+0:? 'blc' (in 32-element array of block{in int f})
+0:? 'bld' (in 32-element array of block{in int f})
+0:? 'ivla' (layout(location=23 ) in 32-element array of 4-component vector of float)
+0:? 'ivlb' (layout(location=24 ) in 32-element array of 4-component vector of float)
+0:? 'ivlc' (layout(location=24 ) in 32-element array of 4-component vector of float)
+0:? 'ovla' (layout(location=23 ) out 2-element array of 4-component vector of float)
+0:? 'ovlb' (layout(location=24 ) out 2-element array of 4-component vector of float)
+0:? 'pinbi' (patch in block{in int a})
+
+
+Linked tessellation evaluation stage:
+
+
+Shader version: 400
+Requested GL_ARB_separate_shader_objects
+input primitive = quads
+vertex spacing = fractional_odd_spacing
+triangle order = cw
+using point mode
+ERROR: node is still EOpNull!
+0:20 Function Definition: main( (global void)
+0:20 Function Parameters:
+0:22 Sequence
+0:22 Constant:
+0:22 0.000000
+0:24 Sequence
+0:24 move second child to first child (temp int)
+0:24 'a' (temp int)
+0:24 Constant:
+0:24 1512 (const int)
+0:32 Sequence
+0:32 move second child to first child (temp 4-component vector of float)
+0:32 'p' (temp 4-component vector of float)
+0:32 gl_Position: direct index for structure (in 4-component vector of float Position)
+0:32 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:32 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:32 Constant:
+0:32 1 (const int)
+0:32 Constant:
+0:32 0 (const int)
+0:33 Sequence
+0:33 move second child to first child (temp float)
+0:33 'ps' (temp float)
+0:33 gl_PointSize: direct index for structure (in float PointSize)
+0:33 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:33 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:33 Constant:
+0:33 1 (const int)
+0:33 Constant:
+0:33 1 (const int)
+0:34 Sequence
+0:34 move second child to first child (temp float)
+0:34 'cd' (temp float)
+0:34 direct index (temp float ClipDistance)
+0:34 gl_ClipDistance: direct index for structure (in 3-element array of float ClipDistance)
+0:34 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:34 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:34 Constant:
+0:34 1 (const int)
+0:34 Constant:
+0:34 2 (const int)
+0:34 Constant:
+0:34 2 (const int)
+0:36 Sequence
+0:36 move second child to first child (temp int)
+0:36 'pvi' (temp int)
+0:36 'gl_PatchVerticesIn' (in int PatchVertices)
+0:37 Sequence
+0:37 move second child to first child (temp int)
+0:37 'pid' (temp int)
+0:37 'gl_PrimitiveID' (in int PrimitiveID)
+0:38 Sequence
+0:38 move second child to first child (temp 3-component vector of float)
+0:38 'tc' (temp 3-component vector of float)
+0:38 'gl_TessCoord' (in 3-component vector of float TessCoord)
+0:39 Sequence
+0:39 move second child to first child (temp float)
+0:39 'tlo' (temp float)
+0:39 direct index (patch temp float TessLevelOuter)
+0:39 'gl_TessLevelOuter' (patch in 4-element array of float TessLevelOuter)
+0:39 Constant:
+0:39 3 (const int)
+0:40 Sequence
+0:40 move second child to first child (temp float)
+0:40 'tli' (temp float)
+0:40 direct index (patch temp float TessLevelInner)
+0:40 'gl_TessLevelInner' (patch in 2-element array of float TessLevelInner)
+0:40 Constant:
+0:40 1 (const int)
+0:42 move second child to first child (temp 4-component vector of float)
+0:42 gl_Position: direct index for structure (gl_Position 4-component vector of float Position)
+0:42 'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance})
+0:42 Constant:
+0:42 0 (const uint)
+0:42 'p' (temp 4-component vector of float)
+0:43 move second child to first child (temp float)
+0:43 gl_PointSize: direct index for structure (gl_PointSize float PointSize)
+0:43 'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance})
+0:43 Constant:
+0:43 1 (const uint)
+0:43 'ps' (temp float)
+0:44 move second child to first child (temp float)
+0:44 direct index (temp float ClipDistance)
+0:44 gl_ClipDistance: direct index for structure (out 3-element array of float ClipDistance)
+0:44 'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance})
+0:44 Constant:
+0:44 2 (const uint)
+0:44 Constant:
+0:44 2 (const int)
+0:44 'cd' (temp float)
+0:? Linker Objects
+0:? 'patchIn' (patch in 4-component vector of float)
+0:? 'patchOut' (patch out 4-component vector of float)
+0:? 'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance})
+0:? 'badp1' (smooth patch in 4-component vector of float)
+0:? 'badp2' (flat patch in 4-component vector of float)
+0:? 'badp3' (noperspective patch in 4-component vector of float)
+0:? 'badp4' (patch sample in 3-component vector of float)
+0:? 'gl_in' (in 32-element array of block{in 1-element array of float ClipDistance gl_ClipDistance})
+0:? 'ina' (in 2-component vector of float)
+0:? 'inb' (in 32-element array of 2-component vector of float)
+0:? 'inc' (in 32-element array of 2-component vector of float)
+0:? 'ind' (in 32-element array of 2-component vector of float)
+0:? 'bla' (in block{in int f})
+0:? 'blb' (in 32-element array of block{in int f})
+0:? 'blc' (in 32-element array of block{in int f})
+0:? 'bld' (in 32-element array of block{in int f})
+0:? 'ivla' (layout(location=23 ) in 32-element array of 4-component vector of float)
+0:? 'ivlb' (layout(location=24 ) in 32-element array of 4-component vector of float)
+0:? 'ivlc' (layout(location=24 ) in 32-element array of 4-component vector of float)
+0:? 'ovla' (layout(location=23 ) out 2-element array of 4-component vector of float)
+0:? 'ovlb' (layout(location=24 ) out 2-element array of 4-component vector of float)
+0:? 'pinbi' (patch in block{in int a})
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/400.vert.out b/chromium/third_party/glslang/src/Test/baseResults/400.vert.out
new file mode 100755
index 00000000000..946f21d5856
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/400.vert.out
@@ -0,0 +1,34 @@
+400.vert
+Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:3: 'vertex-shader `double` type input' : not supported for this version or the enabled extensions
+ERROR: 0:4: 'vertex-shader `double` type input' : not supported for this version or the enabled extensions
+ERROR: 0:5: 'vertex-shader `double` type input' : not supported for this version or the enabled extensions
+ERROR: 3 compilation errors. No code generated.
+
+
+Shader version: 400
+ERROR: node is still EOpNull!
+0:7 Function Definition: main( (global void)
+0:7 Function Parameters:
+0:? Linker Objects
+0:? 'd' (in double)
+0:? 'd3' (in 3-component vector of double)
+0:? 'dm4' (in 4X4 matrix of double)
+0:? 'gl_VertexID' (gl_VertexId int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
+
+
+Linked vertex stage:
+
+
+Shader version: 400
+ERROR: node is still EOpNull!
+0:7 Function Definition: main( (global void)
+0:7 Function Parameters:
+0:? Linker Objects
+0:? 'd' (in double)
+0:? 'd3' (in 3-component vector of double)
+0:? 'dm4' (in 4X4 matrix of double)
+0:? 'gl_VertexID' (gl_VertexId int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/410.geom.out b/chromium/third_party/glslang/src/Test/baseResults/410.geom.out
new file mode 100644
index 00000000000..6f7252c9807
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/410.geom.out
@@ -0,0 +1,112 @@
+410.geom
+Warning, version 410 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:8: 'myIn' : cannot redeclare a built-in block with a user name
+ERROR: 0:12: 'gl_myIn' : no declaration found for redeclaration
+ERROR: 0:20: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use
+ERROR: 0:32: 'gl_Position' : no such field in structure
+ERROR: 0:32: '=' : cannot convert from 'temp block{in float PointSize gl_PointSize}' to 'temp 4-component vector of float'
+ERROR: 0:33: 'gl_Position' : member of nameless block was not redeclared
+ERROR: 0:33: 'assign' : cannot convert from 'const 4-component vector of float' to 'layout(stream=0 ) gl_Position void Position'
+WARNING: 0:38: 'return' : type conversion on return values was not explicitly allowed until version 420
+ERROR: 7 compilation errors. No code generated.
+
+
+Shader version: 410
+invocations = -1
+max_vertices = -1
+input primitive = none
+output primitive = none
+ERROR: node is still EOpNull!
+0:3 Function Definition: main( (global void)
+0:3 Function Parameters:
+0:5 Sequence
+0:5 move second child to first child (temp int)
+0:5 'gl_ViewportIndex' (layout(stream=0 ) out int ViewportIndex)
+0:5 Constant:
+0:5 7 (const int)
+0:28 Function Definition: foo( (global void)
+0:28 Function Parameters:
+0:30 Sequence
+0:30 Sequence
+0:30 move second child to first child (temp float)
+0:30 'p' (temp float)
+0:30 gl_PointSize: direct index for structure (in float PointSize)
+0:30 direct index (temp block{in float PointSize gl_PointSize})
+0:30 'gl_in' (in implicitly-sized array of block{in float PointSize gl_PointSize})
+0:30 Constant:
+0:30 1 (const int)
+0:30 Constant:
+0:30 0 (const int)
+0:31 move second child to first child (temp float)
+0:31 gl_PointSize: direct index for structure (layout(stream=0 ) gl_PointSize float PointSize)
+0:31 'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, })
+0:31 Constant:
+0:31 1 (const uint)
+0:31 'p' (temp float)
+0:33 gl_Position: direct index for structure (layout(stream=0 ) gl_Position void Position)
+0:33 'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, })
+0:33 Constant:
+0:33 0 (const uint)
+0:36 Function Definition: foo5( (global float)
+0:36 Function Parameters:
+0:38 Sequence
+0:38 Branch: Return with expression
+0:38 Constant:
+0:38 4.000000
+0:? Linker Objects
+0:? 'gl_in' (in implicitly-sized array of block{in float PointSize gl_PointSize})
+0:? 'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, })
+
+
+Linked geometry stage:
+
+ERROR: Linking geometry stage: At least one shader must specify an input layout primitive
+ERROR: Linking geometry stage: At least one shader must specify an output layout primitive
+ERROR: Linking geometry stage: At least one shader must specify a layout(max_vertices = value)
+
+Shader version: 410
+invocations = 1
+max_vertices = -1
+input primitive = none
+output primitive = none
+ERROR: node is still EOpNull!
+0:3 Function Definition: main( (global void)
+0:3 Function Parameters:
+0:5 Sequence
+0:5 move second child to first child (temp int)
+0:5 'gl_ViewportIndex' (layout(stream=0 ) out int ViewportIndex)
+0:5 Constant:
+0:5 7 (const int)
+0:28 Function Definition: foo( (global void)
+0:28 Function Parameters:
+0:30 Sequence
+0:30 Sequence
+0:30 move second child to first child (temp float)
+0:30 'p' (temp float)
+0:30 gl_PointSize: direct index for structure (in float PointSize)
+0:30 direct index (temp block{in float PointSize gl_PointSize})
+0:30 'gl_in' (in 2-element array of block{in float PointSize gl_PointSize})
+0:30 Constant:
+0:30 1 (const int)
+0:30 Constant:
+0:30 0 (const int)
+0:31 move second child to first child (temp float)
+0:31 gl_PointSize: direct index for structure (layout(stream=0 ) gl_PointSize float PointSize)
+0:31 'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, })
+0:31 Constant:
+0:31 1 (const uint)
+0:31 'p' (temp float)
+0:33 gl_Position: direct index for structure (layout(stream=0 ) gl_Position void Position)
+0:33 'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, })
+0:33 Constant:
+0:33 0 (const uint)
+0:36 Function Definition: foo5( (global float)
+0:36 Function Parameters:
+0:38 Sequence
+0:38 Branch: Return with expression
+0:38 Constant:
+0:38 4.000000
+0:? Linker Objects
+0:? 'gl_in' (in 2-element array of block{in float PointSize gl_PointSize})
+0:? 'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, })
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/410.tesc.out b/chromium/third_party/glslang/src/Test/baseResults/410.tesc.out
new file mode 100644
index 00000000000..3305c407fd8
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/410.tesc.out
@@ -0,0 +1,31 @@
+410.tesc
+Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:4: 'length' : array must first be sized by a redeclaration or layout qualifier
+ERROR: 1 compilation errors. No code generated.
+
+
+Shader version: 400
+vertices = -1
+ERROR: node is still EOpNull!
+0:8 Function Definition: main( (global void)
+0:8 Function Parameters:
+0:? Linker Objects
+0:? 'gl_out' (out implicitly-sized array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:? 'outa' (global 1-element array of int)
+0:? 'patchOut' (patch out 4-component vector of float)
+
+
+Linked tessellation control stage:
+
+ERROR: Linking tessellation control stage: At least one shader must specify an output layout(vertices=...)
+
+Shader version: 400
+vertices = -1
+ERROR: node is still EOpNull!
+0:8 Function Definition: main( (global void)
+0:8 Function Parameters:
+0:? Linker Objects
+0:? 'gl_out' (out 1-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
+0:? 'outa' (global 1-element array of int)
+0:? 'patchOut' (patch out 4-component vector of float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/410.vert.out b/chromium/third_party/glslang/src/Test/baseResults/410.vert.out
new file mode 100755
index 00000000000..eb4f43a2e65
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/410.vert.out
@@ -0,0 +1,29 @@
+410.vert
+Warning, version 410 is not yet complete; most version-specific features are present, but some are missing.
+
+Shader version: 410
+0:? Sequence
+0:7 Function Definition: main( (global void)
+0:7 Function Parameters:
+0:? Linker Objects
+0:? 'd' (in double)
+0:? 'd3' (in 3-component vector of double)
+0:? 'dm4' (in 4X4 matrix of double)
+0:? 'gl_VertexID' (gl_VertexId int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
+
+
+Linked vertex stage:
+
+
+Shader version: 410
+0:? Sequence
+0:7 Function Definition: main( (global void)
+0:7 Function Parameters:
+0:? Linker Objects
+0:? 'd' (in double)
+0:? 'd3' (in 3-component vector of double)
+0:? 'dm4' (in 4X4 matrix of double)
+0:? 'gl_VertexID' (gl_VertexId int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/420.comp.out b/chromium/third_party/glslang/src/Test/baseResults/420.comp.out
new file mode 100755
index 00000000000..a2311d5a80c
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/420.comp.out
@@ -0,0 +1,122 @@
+420.comp
+Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:3: 'gl_WorkGroupSize' : not supported for this version or the enabled extensions
+ERROR: 1 compilation errors. No code generated.
+
+
+Shader version: 420
+Requested GL_ARB_compute_shader
+local_size = (2, 4, 6)
+ERROR: node is still EOpNull!
+0:11 Function Definition: main( (global void)
+0:11 Function Parameters:
+0:13 Sequence
+0:13 move second child to first child (temp 3-component vector of float)
+0:13 'sfoo' (shared 3-component vector of float)
+0:13 Constant:
+0:13 2.000000
+0:13 4.000000
+0:13 6.000000
+0:14 add second child into first child (temp 3-component vector of float)
+0:14 'sfoo' (shared 3-component vector of float)
+0:14 Convert uint to float (temp 3-component vector of float)
+0:14 add (temp 3-component vector of uint)
+0:14 add (temp 3-component vector of uint)
+0:14 add (temp 3-component vector of uint)
+0:14 add (temp 3-component vector of uint)
+0:14 Constant:
+0:14 2 (const uint)
+0:14 4 (const uint)
+0:14 6 (const uint)
+0:14 'gl_NumWorkGroups' (in 3-component vector of uint NumWorkGroups)
+0:14 'gl_WorkGroupID' (in 3-component vector of uint WorkGroupID)
+0:14 'gl_LocalInvocationID' (in 3-component vector of uint LocalInvocationID)
+0:14 'gl_GlobalInvocationID' (in 3-component vector of uint GlobalInvocationID)
+0:15 vector scale second child into first child (temp 3-component vector of float)
+0:15 'sfoo' (shared 3-component vector of float)
+0:15 Convert uint to float (temp float)
+0:15 'gl_LocalInvocationIndex' (in uint LocalInvocationIndex)
+0:16 add second child into first child (temp 3-component vector of float)
+0:16 'sfoo' (shared 3-component vector of float)
+0:16 Constant:
+0:16 66559.000000
+0:16 66559.000000
+0:16 65599.000000
+0:17 vector scale second child into first child (temp 3-component vector of float)
+0:17 'sfoo' (shared 3-component vector of float)
+0:17 Constant:
+0:17 1057.000000
+0:23 Barrier (global void)
+0:24 MemoryBarrier (global void)
+0:25 MemoryBarrierAtomicCounter (global void)
+0:26 MemoryBarrierBuffer (global void)
+0:27 MemoryBarrierImage (global void)
+0:28 MemoryBarrierShared (global void)
+0:29 GroupMemoryBarrier (global void)
+0:? Linker Objects
+0:? 'gl_WorkGroupSize' (const 3-component vector of uint WorkGroupSize)
+0:? 2 (const uint)
+0:? 4 (const uint)
+0:? 6 (const uint)
+0:? 'sfoo' (shared 3-component vector of float)
+
+
+Linked compute stage:
+
+
+Shader version: 420
+Requested GL_ARB_compute_shader
+local_size = (2, 4, 6)
+ERROR: node is still EOpNull!
+0:11 Function Definition: main( (global void)
+0:11 Function Parameters:
+0:13 Sequence
+0:13 move second child to first child (temp 3-component vector of float)
+0:13 'sfoo' (shared 3-component vector of float)
+0:13 Constant:
+0:13 2.000000
+0:13 4.000000
+0:13 6.000000
+0:14 add second child into first child (temp 3-component vector of float)
+0:14 'sfoo' (shared 3-component vector of float)
+0:14 Convert uint to float (temp 3-component vector of float)
+0:14 add (temp 3-component vector of uint)
+0:14 add (temp 3-component vector of uint)
+0:14 add (temp 3-component vector of uint)
+0:14 add (temp 3-component vector of uint)
+0:14 Constant:
+0:14 2 (const uint)
+0:14 4 (const uint)
+0:14 6 (const uint)
+0:14 'gl_NumWorkGroups' (in 3-component vector of uint NumWorkGroups)
+0:14 'gl_WorkGroupID' (in 3-component vector of uint WorkGroupID)
+0:14 'gl_LocalInvocationID' (in 3-component vector of uint LocalInvocationID)
+0:14 'gl_GlobalInvocationID' (in 3-component vector of uint GlobalInvocationID)
+0:15 vector scale second child into first child (temp 3-component vector of float)
+0:15 'sfoo' (shared 3-component vector of float)
+0:15 Convert uint to float (temp float)
+0:15 'gl_LocalInvocationIndex' (in uint LocalInvocationIndex)
+0:16 add second child into first child (temp 3-component vector of float)
+0:16 'sfoo' (shared 3-component vector of float)
+0:16 Constant:
+0:16 66559.000000
+0:16 66559.000000
+0:16 65599.000000
+0:17 vector scale second child into first child (temp 3-component vector of float)
+0:17 'sfoo' (shared 3-component vector of float)
+0:17 Constant:
+0:17 1057.000000
+0:23 Barrier (global void)
+0:24 MemoryBarrier (global void)
+0:25 MemoryBarrierAtomicCounter (global void)
+0:26 MemoryBarrierBuffer (global void)
+0:27 MemoryBarrierImage (global void)
+0:28 MemoryBarrierShared (global void)
+0:29 GroupMemoryBarrier (global void)
+0:? Linker Objects
+0:? 'gl_WorkGroupSize' (const 3-component vector of uint WorkGroupSize)
+0:? 2 (const uint)
+0:? 4 (const uint)
+0:? 6 (const uint)
+0:? 'sfoo' (shared 3-component vector of float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/420.frag.out b/chromium/third_party/glslang/src/Test/baseResults/420.frag.out
new file mode 100644
index 00000000000..0697b52b7eb
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/420.frag.out
@@ -0,0 +1,42 @@
+420.frag
+Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:4: 'redeclaration' : all redeclarations must use the same depth layout on gl_FragDepth
+ERROR: 0:11: 'layout qualifier' : can only apply depth layout to gl_FragDepth
+ERROR: 0:12: 'gl_FragDepth' : cannot redeclare after use
+ERROR: 3 compilation errors. No code generated.
+
+
+Shader version: 420
+using depth_any
+ERROR: node is still EOpNull!
+0:6 Function Definition: main( (global void)
+0:6 Function Parameters:
+0:8 Sequence
+0:8 move second child to first child (temp float)
+0:8 'gl_FragDepth' (gl_FragDepth float FragDepth)
+0:8 Constant:
+0:8 0.300000
+0:? Linker Objects
+0:? 'gl_FragDepth' (gl_FragDepth float FragDepth)
+0:? 'gl_FragDepth' (gl_FragDepth float FragDepth)
+0:? 'depth' (smooth in float)
+
+
+Linked fragment stage:
+
+
+Shader version: 420
+using depth_any
+ERROR: node is still EOpNull!
+0:6 Function Definition: main( (global void)
+0:6 Function Parameters:
+0:8 Sequence
+0:8 move second child to first child (temp float)
+0:8 'gl_FragDepth' (gl_FragDepth float FragDepth)
+0:8 Constant:
+0:8 0.300000
+0:? Linker Objects
+0:? 'gl_FragDepth' (gl_FragDepth float FragDepth)
+0:? 'gl_FragDepth' (gl_FragDepth float FragDepth)
+0:? 'depth' (smooth in float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/420.geom.out b/chromium/third_party/glslang/src/Test/baseResults/420.geom.out
new file mode 100644
index 00000000000..416df13923d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/420.geom.out
@@ -0,0 +1,258 @@
+420.geom
+Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:9: 'length' : array must first be sized by a redeclaration or layout qualifier
+ERROR: 0:11: '[' : array must be sized by a redeclaration or layout qualifier before being indexed with a variable
+ERROR: 0:42: 'assign' : l-value required (can't modify a const)
+ERROR: 0:43: 'assign' : l-value required "v4" (can't modify a uniform)
+ERROR: 0:48: 'gl_PointSize' : cannot change arrayness of redeclared block member
+ERROR: 0:49: 'gl_ClipDistance' : cannot change arrayness of redeclared block member
+ERROR: 6 compilation errors. No code generated.
+
+
+Shader version: 420
+invocations = -1
+max_vertices = -1
+input primitive = triangles
+output primitive = none
+ERROR: node is still EOpNull!
+0:7 Function Definition: foo( (global void)
+0:7 Function Parameters:
+0:9 Sequence
+0:9 Constant:
+0:9 1 (const int)
+0:10 gl_Position: direct index for structure (in 4-component vector of float Position)
+0:10 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:10 'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:10 Constant:
+0:10 1 (const int)
+0:10 Constant:
+0:10 0 (const int)
+0:11 gl_Position: direct index for structure (in 4-component vector of float Position)
+0:11 indirect index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:11 'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:11 'i' (global int)
+0:11 Constant:
+0:11 0 (const int)
+0:18 Function Definition: foo3( (global void)
+0:18 Function Parameters:
+0:20 Sequence
+0:20 Constant:
+0:20 3 (const int)
+0:21 gl_Position: direct index for structure (in 4-component vector of float Position)
+0:21 indirect index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:21 'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:21 'i' (global int)
+0:21 Constant:
+0:21 0 (const int)
+0:22 Constant:
+0:22 3 (const int)
+0:29 Function Definition: foo4( (global void)
+0:29 Function Parameters:
+0:? Sequence
+0:40 Sequence
+0:40 move second child to first child (temp 4-component vector of float)
+0:40 'v' (temp 4-component vector of float)
+0:40 textureGatherOffset (global 4-component vector of float)
+0:40 's2D' (uniform sampler2D)
+0:40 direct index (temp 2-component vector of float)
+0:40 'coord' (in 3-element array of 2-component vector of float)
+0:40 Constant:
+0:40 0 (const int)
+0:40 vector swizzle (temp 2-component vector of int)
+0:40 indirect index (temp 2-component vector of int)
+0:40 Constant:
+0:40 0 (const int)
+0:40 1 (const int)
+0:40 1 (const int)
+0:40 -2 (const int)
+0:40 0 (const int)
+0:40 3 (const int)
+0:40 -3 (const int)
+0:40 0 (const int)
+0:40 2 (const int)
+0:40 1 (const int)
+0:40 'i' (global int)
+0:40 Sequence
+0:40 Constant:
+0:40 0 (const int)
+0:40 Constant:
+0:40 1 (const int)
+0:42 move second child to first child (temp 2-component vector of int)
+0:42 vector swizzle (temp 2-component vector of int)
+0:42 indirect index (temp 2-component vector of int)
+0:42 Constant:
+0:42 0 (const int)
+0:42 1 (const int)
+0:42 1 (const int)
+0:42 -2 (const int)
+0:42 0 (const int)
+0:42 3 (const int)
+0:42 -3 (const int)
+0:42 0 (const int)
+0:42 2 (const int)
+0:42 1 (const int)
+0:42 'i' (global int)
+0:42 Sequence
+0:42 Constant:
+0:42 0 (const int)
+0:42 Constant:
+0:42 1 (const int)
+0:42 Constant:
+0:42 3 (const int)
+0:42 3 (const int)
+0:43 move second child to first child (temp float)
+0:43 direct index (temp float)
+0:43 'v4' (uniform 4-component vector of float)
+0:43 Constant:
+0:43 0 (const int)
+0:43 Constant:
+0:43 3.200000
+0:44 vector swizzle (temp 2-component vector of float)
+0:44 'v4' (uniform 4-component vector of float)
+0:44 Sequence
+0:44 Constant:
+0:44 0 (const int)
+0:44 Constant:
+0:44 1 (const int)
+0:52 Function Definition: foo5( (global float)
+0:52 Function Parameters:
+0:54 Sequence
+0:54 Branch: Return with expression
+0:54 Convert int to float (temp float)
+0:54 'i' (global int)
+0:? Linker Objects
+0:? 'i' (global int)
+0:? 'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:? 'color3' (in 3-element array of 4-component vector of float)
+0:? 's2D' (uniform sampler2D)
+0:? 'coord' (in 3-element array of 2-component vector of float)
+0:? 'v4' (uniform 4-component vector of float)
+0:? 'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, layout(stream=0 ) out implicitly-sized array of float ClipDistance gl_ClipDistance})
+
+
+Linked geometry stage:
+
+ERROR: Linking geometry stage: Missing entry point: Each stage requires one "void main()" entry point
+ERROR: Linking geometry stage: At least one shader must specify an output layout primitive
+ERROR: Linking geometry stage: At least one shader must specify a layout(max_vertices = value)
+
+Shader version: 420
+invocations = 1
+max_vertices = -1
+input primitive = triangles
+output primitive = none
+ERROR: node is still EOpNull!
+0:7 Function Definition: foo( (global void)
+0:7 Function Parameters:
+0:9 Sequence
+0:9 Constant:
+0:9 1 (const int)
+0:10 gl_Position: direct index for structure (in 4-component vector of float Position)
+0:10 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:10 'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:10 Constant:
+0:10 1 (const int)
+0:10 Constant:
+0:10 0 (const int)
+0:11 gl_Position: direct index for structure (in 4-component vector of float Position)
+0:11 indirect index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:11 'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:11 'i' (global int)
+0:11 Constant:
+0:11 0 (const int)
+0:18 Function Definition: foo3( (global void)
+0:18 Function Parameters:
+0:20 Sequence
+0:20 Constant:
+0:20 3 (const int)
+0:21 gl_Position: direct index for structure (in 4-component vector of float Position)
+0:21 indirect index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:21 'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:21 'i' (global int)
+0:21 Constant:
+0:21 0 (const int)
+0:22 Constant:
+0:22 3 (const int)
+0:29 Function Definition: foo4( (global void)
+0:29 Function Parameters:
+0:? Sequence
+0:40 Sequence
+0:40 move second child to first child (temp 4-component vector of float)
+0:40 'v' (temp 4-component vector of float)
+0:40 textureGatherOffset (global 4-component vector of float)
+0:40 's2D' (uniform sampler2D)
+0:40 direct index (temp 2-component vector of float)
+0:40 'coord' (in 3-element array of 2-component vector of float)
+0:40 Constant:
+0:40 0 (const int)
+0:40 vector swizzle (temp 2-component vector of int)
+0:40 indirect index (temp 2-component vector of int)
+0:40 Constant:
+0:40 0 (const int)
+0:40 1 (const int)
+0:40 1 (const int)
+0:40 -2 (const int)
+0:40 0 (const int)
+0:40 3 (const int)
+0:40 -3 (const int)
+0:40 0 (const int)
+0:40 2 (const int)
+0:40 1 (const int)
+0:40 'i' (global int)
+0:40 Sequence
+0:40 Constant:
+0:40 0 (const int)
+0:40 Constant:
+0:40 1 (const int)
+0:42 move second child to first child (temp 2-component vector of int)
+0:42 vector swizzle (temp 2-component vector of int)
+0:42 indirect index (temp 2-component vector of int)
+0:42 Constant:
+0:42 0 (const int)
+0:42 1 (const int)
+0:42 1 (const int)
+0:42 -2 (const int)
+0:42 0 (const int)
+0:42 3 (const int)
+0:42 -3 (const int)
+0:42 0 (const int)
+0:42 2 (const int)
+0:42 1 (const int)
+0:42 'i' (global int)
+0:42 Sequence
+0:42 Constant:
+0:42 0 (const int)
+0:42 Constant:
+0:42 1 (const int)
+0:42 Constant:
+0:42 3 (const int)
+0:42 3 (const int)
+0:43 move second child to first child (temp float)
+0:43 direct index (temp float)
+0:43 'v4' (uniform 4-component vector of float)
+0:43 Constant:
+0:43 0 (const int)
+0:43 Constant:
+0:43 3.200000
+0:44 vector swizzle (temp 2-component vector of float)
+0:44 'v4' (uniform 4-component vector of float)
+0:44 Sequence
+0:44 Constant:
+0:44 0 (const int)
+0:44 Constant:
+0:44 1 (const int)
+0:52 Function Definition: foo5( (global float)
+0:52 Function Parameters:
+0:54 Sequence
+0:54 Branch: Return with expression
+0:54 Convert int to float (temp float)
+0:54 'i' (global int)
+0:? Linker Objects
+0:? 'i' (global int)
+0:? 'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:? 'color3' (in 3-element array of 4-component vector of float)
+0:? 's2D' (uniform sampler2D)
+0:? 'coord' (in 3-element array of 2-component vector of float)
+0:? 'v4' (uniform 4-component vector of float)
+0:? 'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, layout(stream=0 ) out 1-element array of float ClipDistance gl_ClipDistance})
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/420.tesc.out b/chromium/third_party/glslang/src/Test/baseResults/420.tesc.out
new file mode 100644
index 00000000000..594e1302833
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/420.tesc.out
@@ -0,0 +1,230 @@
+420.tesc
+Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:7: 'vertices' : inconsistent output number of vertices for array size of gl_out
+ERROR: 0:11: 'vertices' : inconsistent output number of vertices for array size of a
+ERROR: 0:12: 'vertices' : inconsistent output number of vertices for array size of outb
+ERROR: 0:26: 'gl_PointSize' : no such field in structure
+ERROR: 0:26: 'assign' : cannot convert from 'temp float' to 'temp block{out 4-component vector of float Position gl_Position}'
+ERROR: 0:29: 'out' : type must be an array: outf
+ERROR: 0:43: 'vertices' : must be greater than 0
+ERROR: 7 compilation errors. No code generated.
+
+
+Shader version: 420
+Requested GL_ARB_separate_shader_objects
+vertices = 4
+ERROR: node is still EOpNull!
+0:15 Function Definition: main( (global void)
+0:15 Function Parameters:
+0:17 Sequence
+0:17 Sequence
+0:17 move second child to first child (temp 4-component vector of float)
+0:17 'p' (temp 4-component vector of float)
+0:17 gl_Position: direct index for structure (in 4-component vector of float Position)
+0:17 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:17 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:17 Constant:
+0:17 1 (const int)
+0:17 Constant:
+0:17 0 (const int)
+0:18 Sequence
+0:18 move second child to first child (temp float)
+0:18 'ps' (temp float)
+0:18 gl_PointSize: direct index for structure (in float PointSize)
+0:18 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:18 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:18 Constant:
+0:18 1 (const int)
+0:18 Constant:
+0:18 1 (const int)
+0:19 Sequence
+0:19 move second child to first child (temp float)
+0:19 'cd' (temp float)
+0:19 direct index (temp float ClipDistance)
+0:19 gl_ClipDistance: direct index for structure (in implicitly-sized array of float ClipDistance)
+0:19 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:19 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:19 Constant:
+0:19 1 (const int)
+0:19 Constant:
+0:19 2 (const int)
+0:19 Constant:
+0:19 2 (const int)
+0:21 Sequence
+0:21 move second child to first child (temp int)
+0:21 'pvi' (temp int)
+0:21 'gl_PatchVerticesIn' (in int PatchVertices)
+0:22 Sequence
+0:22 move second child to first child (temp int)
+0:22 'pid' (temp int)
+0:22 'gl_PrimitiveID' (in int PrimitiveID)
+0:23 Sequence
+0:23 move second child to first child (temp int)
+0:23 'iid' (temp int)
+0:23 'gl_InvocationID' (in int InvocationID)
+0:25 move second child to first child (temp 4-component vector of float)
+0:25 gl_Position: direct index for structure (out 4-component vector of float Position)
+0:25 indirect index (temp block{out 4-component vector of float Position gl_Position})
+0:25 'gl_out' (out 3-element array of block{out 4-component vector of float Position gl_Position})
+0:25 'gl_InvocationID' (in int InvocationID)
+0:25 Constant:
+0:25 0 (const int)
+0:25 'p' (temp 4-component vector of float)
+0:26 indirect index (temp block{out 4-component vector of float Position gl_Position})
+0:26 'gl_out' (out 3-element array of block{out 4-component vector of float Position gl_Position})
+0:26 'gl_InvocationID' (in int InvocationID)
+0:34 Function Definition: foo( (global void)
+0:34 Function Parameters:
+0:36 Sequence
+0:36 Test condition and select (temp void)
+0:36 Condition
+0:36 logical-or (temp bool)
+0:36 Compare Not Equal (temp bool)
+0:36 Constant:
+0:36 -0.625000
+0:36 -0.500000
+0:36 -0.375000
+0:36 -0.250000
+0:36 -0.375000
+0:36 -0.250000
+0:36 -0.125000
+0:36 0.000000
+0:36 direct index (layout(location=0 ) temp 2X4 matrix of double)
+0:36 'vs_tcs_first' (layout(location=0 ) in 32-element array of 2X4 matrix of double)
+0:36 Constant:
+0:36 0 (const int)
+0:37 Compare Not Equal (temp bool)
+0:37 Constant:
+0:37 0.375000
+0:37 0.500000
+0:37 0.625000
+0:37 0.750000
+0:37 0.625000
+0:37 0.750000
+0:37 0.875000
+0:37 -0.625000
+0:37 direct index (layout(location=12 ) temp 2X4 matrix of double)
+0:37 'vs_tcs_last' (layout(location=12 ) in 32-element array of 2X4 matrix of double)
+0:37 Constant:
+0:37 0 (const int)
+0:36 true case is null
+0:? Linker Objects
+0:? 'gl_out' (out 3-element array of block{out 4-component vector of float Position gl_Position})
+0:? 'a' (out 3-element array of int)
+0:? 'outb' (out 5-element array of int)
+0:? 'outc' (out 4-element array of int)
+0:? 'outf' (out float)
+0:? 'vs_tcs_first' (layout(location=0 ) in 32-element array of 2X4 matrix of double)
+0:? 'vs_tcs_last' (layout(location=12 ) in 32-element array of 2X4 matrix of double)
+
+
+Linked tessellation control stage:
+
+
+Shader version: 420
+Requested GL_ARB_separate_shader_objects
+vertices = 4
+ERROR: node is still EOpNull!
+0:15 Function Definition: main( (global void)
+0:15 Function Parameters:
+0:17 Sequence
+0:17 Sequence
+0:17 move second child to first child (temp 4-component vector of float)
+0:17 'p' (temp 4-component vector of float)
+0:17 gl_Position: direct index for structure (in 4-component vector of float Position)
+0:17 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:17 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:17 Constant:
+0:17 1 (const int)
+0:17 Constant:
+0:17 0 (const int)
+0:18 Sequence
+0:18 move second child to first child (temp float)
+0:18 'ps' (temp float)
+0:18 gl_PointSize: direct index for structure (in float PointSize)
+0:18 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:18 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:18 Constant:
+0:18 1 (const int)
+0:18 Constant:
+0:18 1 (const int)
+0:19 Sequence
+0:19 move second child to first child (temp float)
+0:19 'cd' (temp float)
+0:19 direct index (temp float ClipDistance)
+0:19 gl_ClipDistance: direct index for structure (in 3-element array of float ClipDistance)
+0:19 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:19 'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance})
+0:19 Constant:
+0:19 1 (const int)
+0:19 Constant:
+0:19 2 (const int)
+0:19 Constant:
+0:19 2 (const int)
+0:21 Sequence
+0:21 move second child to first child (temp int)
+0:21 'pvi' (temp int)
+0:21 'gl_PatchVerticesIn' (in int PatchVertices)
+0:22 Sequence
+0:22 move second child to first child (temp int)
+0:22 'pid' (temp int)
+0:22 'gl_PrimitiveID' (in int PrimitiveID)
+0:23 Sequence
+0:23 move second child to first child (temp int)
+0:23 'iid' (temp int)
+0:23 'gl_InvocationID' (in int InvocationID)
+0:25 move second child to first child (temp 4-component vector of float)
+0:25 gl_Position: direct index for structure (out 4-component vector of float Position)
+0:25 indirect index (temp block{out 4-component vector of float Position gl_Position})
+0:25 'gl_out' (out 3-element array of block{out 4-component vector of float Position gl_Position})
+0:25 'gl_InvocationID' (in int InvocationID)
+0:25 Constant:
+0:25 0 (const int)
+0:25 'p' (temp 4-component vector of float)
+0:26 indirect index (temp block{out 4-component vector of float Position gl_Position})
+0:26 'gl_out' (out 3-element array of block{out 4-component vector of float Position gl_Position})
+0:26 'gl_InvocationID' (in int InvocationID)
+0:34 Function Definition: foo( (global void)
+0:34 Function Parameters:
+0:36 Sequence
+0:36 Test condition and select (temp void)
+0:36 Condition
+0:36 logical-or (temp bool)
+0:36 Compare Not Equal (temp bool)
+0:36 Constant:
+0:36 -0.625000
+0:36 -0.500000
+0:36 -0.375000
+0:36 -0.250000
+0:36 -0.375000
+0:36 -0.250000
+0:36 -0.125000
+0:36 0.000000
+0:36 direct index (layout(location=0 ) temp 2X4 matrix of double)
+0:36 'vs_tcs_first' (layout(location=0 ) in 32-element array of 2X4 matrix of double)
+0:36 Constant:
+0:36 0 (const int)
+0:37 Compare Not Equal (temp bool)
+0:37 Constant:
+0:37 0.375000
+0:37 0.500000
+0:37 0.625000
+0:37 0.750000
+0:37 0.625000
+0:37 0.750000
+0:37 0.875000
+0:37 -0.625000
+0:37 direct index (layout(location=12 ) temp 2X4 matrix of double)
+0:37 'vs_tcs_last' (layout(location=12 ) in 32-element array of 2X4 matrix of double)
+0:37 Constant:
+0:37 0 (const int)
+0:36 true case is null
+0:? Linker Objects
+0:? 'gl_out' (out 3-element array of block{out 4-component vector of float Position gl_Position})
+0:? 'a' (out 3-element array of int)
+0:? 'outb' (out 5-element array of int)
+0:? 'outc' (out 4-element array of int)
+0:? 'outf' (out float)
+0:? 'vs_tcs_first' (layout(location=0 ) in 32-element array of 2X4 matrix of double)
+0:? 'vs_tcs_last' (layout(location=12 ) in 32-element array of 2X4 matrix of double)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/420.tese.out b/chromium/third_party/glslang/src/Test/baseResults/420.tese.out
new file mode 100644
index 00000000000..fb9bc2013bc
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/420.tese.out
@@ -0,0 +1,313 @@
+420.tese
+Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:7: '=' : cannot convert from 'const 3-element array of float' to 'global 2-element array of float'
+ERROR: 0:8: 'initializer list' : wrong vector size (or rows in a matrix column): temp 2-component vector of float
+ERROR: 0:9: 'initializer list' : wrong number of matrix columns: temp 3X3 matrix of float
+ERROR: 0:10: 'initializer list' : wrong number of matrix columns: temp 2X2 matrix of float
+ERROR: 0:25: 'initializer list' : wrong number of structure members
+ERROR: 0:27: '=' : cannot convert from 'const bool' to 'global int'
+ERROR: 0:28: 'constructor' : cannot convert parameter 2 from 'const float' to 'temp 4-component vector of float'
+ERROR: 0:29: 'constructor' : cannot convert parameter 2 from 'const 2X2 matrix of float' to 'const 4-component vector of float'
+ERROR: 0:29: 'const 2-element array of 4-component vector of float' : cannot construct with these arguments
+ERROR: 0:29: '=' : cannot convert from 'const float' to 'global 2-element array of 4-component vector of float'
+ERROR: 0:30: 'initializer list' : wrong number of matrix columns: temp 4X2 matrix of float
+ERROR: 0:40: 'constructor' : cannot convert parameter 1 from 'temp float' to 'temp structure{global float s, global float t}'
+ERROR: 0:58: 'initializer list' : wrong number of structure members
+ERROR: 13 compilation errors. No code generated.
+
+
+Shader version: 420
+input primitive = none
+vertex spacing = none
+triangle order = none
+ERROR: node is still EOpNull!
+0:4 Sequence
+0:4 move second child to first child (temp 2X2 matrix of float)
+0:4 'b' (global 2X2 matrix of float)
+0:4 Constant:
+0:4 1.000000
+0:4 0.000000
+0:4 0.000000
+0:4 1.000000
+0:15 Sequence
+0:15 move second child to first child (temp structure{global float a, global int b})
+0:15 'e' (global structure{global float a, global int b})
+0:15 Constant:
+0:15 1.200000
+0:15 2 (const int)
+0:20 Sequence
+0:20 move second child to first child (temp structure{global float a, global int b})
+0:20 'e2' (global structure{global float a, global int b})
+0:20 Constant:
+0:20 1.000000
+0:20 3 (const int)
+0:42 Sequence
+0:42 move second child to first child (temp 5-element array of float)
+0:42 'b5' (global 5-element array of float)
+0:42 Constant:
+0:42 3.400000
+0:42 4.200000
+0:42 5.000000
+0:42 5.200000
+0:42 1.100000
+0:67 Sequence
+0:67 move second child to first child (temp 3-component vector of float)
+0:67 'av3' (global 3-component vector of float)
+0:67 Construct vec3 (global 3-component vector of float)
+0:67 'vc1' (global float)
+0:67 'vc2' (global float)
+0:67 'vc3' (global float)
+0:68 Sequence
+0:68 move second child to first child (temp 3-component vector of float)
+0:68 'bv3' (global 3-component vector of float)
+0:68 Construct vec3 (temp 3-component vector of float)
+0:68 'vc1' (global float)
+0:68 'vc2' (global float)
+0:68 'vc3' (global float)
+0:70 Function Definition: main( (global void)
+0:70 Function Parameters:
+0:72 Sequence
+0:72 MemoryBarrier (global void)
+0:74 Test condition and select (temp void)
+0:74 Condition
+0:74 Compare Equal (temp bool)
+0:74 Constant:
+0:74 1 (const uint)
+0:74 2 (const uint)
+0:74 3.000000
+0:74 4.000000
+0:74 0.000000
+0:74 0.000000
+0:74 0.000000
+0:74 4.000000
+0:74 0.000000
+0:74 5.000000
+0:74 6.000000
+0:74 0.000000
+0:74 0.000000
+0:74 0.000000
+0:74 6.000000
+0:74 0.000000
+0:74 'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
+0:74 true case is null
+0:76 Test condition and select (temp void)
+0:76 Condition
+0:76 Constant:
+0:76 true (const bool)
+0:76 true case is null
+0:? Linker Objects
+0:? 'a' (const 2X2 matrix of float)
+0:? 1.000000
+0:? 0.000000
+0:? 0.000000
+0:? 1.000000
+0:? 'b' (global 2X2 matrix of float)
+0:? 'c' (const 2X2 matrix of float)
+0:? 1.000000
+0:? 0.000000
+0:? 0.000000
+0:? 1.000000
+0:? 'a2' (global 2-element array of float)
+0:? 'b2' (global 2-component vector of float)
+0:? 'c2' (global 3X3 matrix of float)
+0:? 'd' (global 2X2 matrix of float)
+0:? 'e' (global structure{global float a, global int b})
+0:? 'e2' (global structure{global float a, global int b})
+0:? 'e3' (global structure{global float a, global int b})
+0:? 'a3' (global int)
+0:? 'b3' (global 2-element array of 4-component vector of float)
+0:? 'b4' (global 2-element array of 4-component vector of float)
+0:? 'c3' (global 4X2 matrix of float)
+0:? 'd2' (global implicitly-sized array of structure{global float s, global float t})
+0:? 'b5' (global 5-element array of float)
+0:? 'constructed' (const structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
+0:? 1 (const uint)
+0:? 2 (const uint)
+0:? 3.000000
+0:? 4.000000
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:? 4.000000
+0:? 0.000000
+0:? 5.000000
+0:? 6.000000
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:? 6.000000
+0:? 0.000000
+0:? 'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
+0:? 'curlyInit' (const structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
+0:? 1 (const uint)
+0:? 2 (const uint)
+0:? 3.000000
+0:? 4.000000
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:? 4.000000
+0:? 0.000000
+0:? 5.000000
+0:? 6.000000
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:? 6.000000
+0:? 0.000000
+0:? 'vc1' (global float)
+0:? 'vc2' (global float)
+0:? 'vc3' (global float)
+0:? 'av3' (global 3-component vector of float)
+0:? 'bv3' (global 3-component vector of float)
+
+
+Linked tessellation evaluation stage:
+
+ERROR: Linking tessellation evaluation stage: At least one shader must specify an input layout primitive
+
+Shader version: 420
+input primitive = none
+vertex spacing = equal_spacing
+triangle order = ccw
+ERROR: node is still EOpNull!
+0:4 Sequence
+0:4 move second child to first child (temp 2X2 matrix of float)
+0:4 'b' (global 2X2 matrix of float)
+0:4 Constant:
+0:4 1.000000
+0:4 0.000000
+0:4 0.000000
+0:4 1.000000
+0:15 Sequence
+0:15 move second child to first child (temp structure{global float a, global int b})
+0:15 'e' (global structure{global float a, global int b})
+0:15 Constant:
+0:15 1.200000
+0:15 2 (const int)
+0:20 Sequence
+0:20 move second child to first child (temp structure{global float a, global int b})
+0:20 'e2' (global structure{global float a, global int b})
+0:20 Constant:
+0:20 1.000000
+0:20 3 (const int)
+0:42 Sequence
+0:42 move second child to first child (temp 5-element array of float)
+0:42 'b5' (global 5-element array of float)
+0:42 Constant:
+0:42 3.400000
+0:42 4.200000
+0:42 5.000000
+0:42 5.200000
+0:42 1.100000
+0:67 Sequence
+0:67 move second child to first child (temp 3-component vector of float)
+0:67 'av3' (global 3-component vector of float)
+0:67 Construct vec3 (global 3-component vector of float)
+0:67 'vc1' (global float)
+0:67 'vc2' (global float)
+0:67 'vc3' (global float)
+0:68 Sequence
+0:68 move second child to first child (temp 3-component vector of float)
+0:68 'bv3' (global 3-component vector of float)
+0:68 Construct vec3 (temp 3-component vector of float)
+0:68 'vc1' (global float)
+0:68 'vc2' (global float)
+0:68 'vc3' (global float)
+0:70 Function Definition: main( (global void)
+0:70 Function Parameters:
+0:72 Sequence
+0:72 MemoryBarrier (global void)
+0:74 Test condition and select (temp void)
+0:74 Condition
+0:74 Compare Equal (temp bool)
+0:74 Constant:
+0:74 1 (const uint)
+0:74 2 (const uint)
+0:74 3.000000
+0:74 4.000000
+0:74 0.000000
+0:74 0.000000
+0:74 0.000000
+0:74 4.000000
+0:74 0.000000
+0:74 5.000000
+0:74 6.000000
+0:74 0.000000
+0:74 0.000000
+0:74 0.000000
+0:74 6.000000
+0:74 0.000000
+0:74 'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
+0:74 true case is null
+0:76 Test condition and select (temp void)
+0:76 Condition
+0:76 Constant:
+0:76 true (const bool)
+0:76 true case is null
+0:? Linker Objects
+0:? 'a' (const 2X2 matrix of float)
+0:? 1.000000
+0:? 0.000000
+0:? 0.000000
+0:? 1.000000
+0:? 'b' (global 2X2 matrix of float)
+0:? 'c' (const 2X2 matrix of float)
+0:? 1.000000
+0:? 0.000000
+0:? 0.000000
+0:? 1.000000
+0:? 'a2' (global 2-element array of float)
+0:? 'b2' (global 2-component vector of float)
+0:? 'c2' (global 3X3 matrix of float)
+0:? 'd' (global 2X2 matrix of float)
+0:? 'e' (global structure{global float a, global int b})
+0:? 'e2' (global structure{global float a, global int b})
+0:? 'e3' (global structure{global float a, global int b})
+0:? 'a3' (global int)
+0:? 'b3' (global 2-element array of 4-component vector of float)
+0:? 'b4' (global 2-element array of 4-component vector of float)
+0:? 'c3' (global 4X2 matrix of float)
+0:? 'd2' (global 1-element array of structure{global float s, global float t})
+0:? 'b5' (global 5-element array of float)
+0:? 'constructed' (const structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
+0:? 1 (const uint)
+0:? 2 (const uint)
+0:? 3.000000
+0:? 4.000000
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:? 4.000000
+0:? 0.000000
+0:? 5.000000
+0:? 6.000000
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:? 6.000000
+0:? 0.000000
+0:? 'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
+0:? 'curlyInit' (const structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
+0:? 1 (const uint)
+0:? 2 (const uint)
+0:? 3.000000
+0:? 4.000000
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:? 4.000000
+0:? 0.000000
+0:? 5.000000
+0:? 6.000000
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:? 6.000000
+0:? 0.000000
+0:? 'vc1' (global float)
+0:? 'vc2' (global float)
+0:? 'vc3' (global float)
+0:? 'av3' (global 3-component vector of float)
+0:? 'bv3' (global 3-component vector of float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/420.vert.out b/chromium/third_party/glslang/src/Test/baseResults/420.vert.out
new file mode 100644
index 00000000000..0f5110cbd87
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/420.vert.out
@@ -0,0 +1,556 @@
+420.vert
+Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:2: '#version' : must occur first in shader
+WARNING: 0:3: varying deprecated in version 130; may be removed in future release
+ERROR: 0:3: 'varying' : no longer supported in core profile; removed in version 420
+ERROR: 0:7: '' : vertex input cannot be further qualified
+ERROR: 0:11: '' : can only have one interpolation qualifier (flat, smooth, noperspective)
+ERROR: 0:12: '' : can only have one auxiliary qualifier (centroid, patch, and sample)
+ERROR: 0:13: 'uniform' : too many storage qualifiers
+ERROR: 0:18: '=' : global const initializers must be constant 'const int'
+ERROR: 0:20: 'const' : no qualifiers allowed for function return
+ERROR: 0:27: '' : array size must be a constant integer expression
+ERROR: 0:38: 'j' : undeclared identifier
+ERROR: 0:38: '=' : cannot convert from 'temp float' to 'temp int'
+ERROR: 0:39: 'k' : undeclared identifier
+ERROR: 0:39: '=' : cannot convert from 'temp float' to 'temp int'
+ERROR: 0:40: 'j' : undeclared identifier
+ERROR: 0:40: '=' : cannot convert from 'temp float' to 'temp int'
+ERROR: 0:44: 'jj' : undeclared identifier
+ERROR: 0:44: '=' : cannot convert from 'temp float' to 'temp int'
+ERROR: 0:54: 'y' : vector field selection out of range
+ERROR: 0:62: 'xxxxx' : illegal vector field selection
+ERROR: 0:63: 'xxy' : vector field selection out of range
+ERROR: 0:66: 'binding' : cannot declare a default, include a type or full declaration
+ERROR: 0:69: 'location/component/index' : cannot declare a default, use a full declaration
+ERROR: 0:70: 'input block' : not supported in this stage: vertex
+ERROR: 0:70: 'binding' : requires uniform or buffer storage qualifier
+ERROR: 0:71: 'binding' : binding is too large
+ERROR: 0:74: 'binding' : sampler binding not less than gl_MaxCombinedTextureImageUnits
+ERROR: 0:76: 'binding' : sampler binding not less than gl_MaxCombinedTextureImageUnits (using array)
+ERROR: 0:85: 'patch' : not supported in this stage: vertex
+ERROR: 0:85: '' : vertex input cannot be further qualified
+ERROR: 0:86: 'patch' : not supported in this stage: vertex
+ERROR: 0:100: '=' : global const initializers must be constant 'const int'
+ERROR: 0:101: '' : array size must be a constant integer expression
+ERROR: 0:107: '' : image variables not declared 'writeonly' must have a format layout qualifier
+ERROR: 0:114: 'imageAtomicMin' : only supported on image with format r32i or r32ui
+ERROR: 0:115: 'imageAtomicMax' : no matching overloaded function found
+ERROR: 0:119: 'writeonly' : argument cannot drop memory qualifier when passed to formal parameter
+ERROR: 0:122: '' : memory qualifiers cannot be used on this type
+ERROR: 0:123: '' : memory qualifiers cannot be used on this type
+ERROR: 0:135: 'volatile' : argument cannot drop memory qualifier when passed to formal parameter
+ERROR: 0:139: 'rg8i' : does not apply to unsigned integer images
+ERROR: 0:140: 'rgba32i' : does not apply to floating point images
+ERROR: 0:141: 'rgba32f' : does not apply to unsigned integer images
+ERROR: 0:142: 'r8_snorm' : does not apply to signed integer images
+ERROR: 0:143: 'rgba32ui' : does not apply to signed integer images
+ERROR: 0:144: 'r8ui' : does not apply to signed integer images
+ERROR: 0:147: 'offset on block member' : not supported for this version or the enabled extensions
+ERROR: 0:157: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:157: 'assign' : cannot convert from 'const float' to 'temp int'
+ERROR: 0:158: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:158: 'assign' : cannot convert from 'const float' to 'temp int'
+ERROR: 50 compilation errors. No code generated.
+
+
+Shader version: 420
+ERROR: node is still EOpNull!
+0:20 Function Definition: foo( (const int)
+0:20 Function Parameters:
+0:? Sequence
+0:23 Sequence
+0:23 move second child to first child (temp int)
+0:23 'b' (const (read only) int)
+0:23 'anonconst' (global int)
+0:25 Sequence
+0:25 move second child to first child (temp int)
+0:25 'd' (const (read only) int)
+0:25 'b' (const (read only) int)
+0:29 Branch: Return with expression
+0:29 'b' (const (read only) int)
+0:32 Function Definition: main( (global void)
+0:32 Function Parameters:
+0:? Sequence
+0:35 Test condition and select (temp void)
+0:35 Condition
+0:35 Compare Equal (temp bool)
+0:35 'i' (temp int)
+0:35 Constant:
+0:35 3 (const int)
+0:35 true case
+0:36 Sequence
+0:36 move second child to first child (temp int)
+0:36 'j' (temp int)
+0:36 'i' (temp int)
+0:42 Loop with condition tested first
+0:42 Loop Condition
+0:42 Constant:
+0:42 true (const bool)
+0:42 No loop body
+0:50 Function Definition: bar(vf4; (global void)
+0:50 Function Parameters:
+0:50 'v' (volatile in 4-component vector of float)
+0:? Sequence
+0:53 's' (temp int)
+0:54 's' (temp int)
+0:55 Test condition and select (temp void)
+0:55 Condition
+0:55 Compare Equal (temp bool)
+0:55 direct index (temp float)
+0:55 direct index (temp 4-component vector of float)
+0:55 'bad' (in 10-element array of 4-component vector of float)
+0:55 Constant:
+0:55 0 (const int)
+0:55 Constant:
+0:55 0 (const int)
+0:55 Constant:
+0:55 4.200000
+0:55 true case is null
+0:57 Test condition and select (temp void)
+0:57 Condition
+0:57 Constant:
+0:57 true (const bool)
+0:57 true case
+0:58 move second child to first child (temp 4-component vector of float)
+0:58 'badorder3' (flat out 4-component vector of float)
+0:58 direct index (temp 4-component vector of float)
+0:58 'bad' (in 10-element array of 4-component vector of float)
+0:58 Constant:
+0:58 0 (const int)
+0:61 Sequence
+0:61 move second child to first child (temp 3-component vector of float)
+0:61 'smeared' (temp 3-component vector of float)
+0:61 Construct vec3 (temp 3-component vector of float)
+0:61 'f' (temp float)
+0:62 'f' (temp float)
+0:63 'f' (temp float)
+0:88 Function Definition: bar23444( (global void)
+0:88 Function Parameters:
+0:? Sequence
+0:91 Sequence
+0:91 move second child to first child (temp float)
+0:91 'a1' (temp float)
+0:91 direct index (temp float)
+0:91 direct index (temp 3-component vector of float)
+0:91 'm43' (temp 4X3 matrix of float)
+0:91 Constant:
+0:91 3 (const int)
+0:91 Constant:
+0:91 1 (const int)
+0:93 Sequence
+0:93 move second child to first child (temp int)
+0:93 'a2' (temp int)
+0:93 Constant:
+0:93 4 (const int)
+0:94 add second child into first child (temp int)
+0:94 'a2' (temp int)
+0:94 Constant:
+0:94 3 (const int)
+0:95 add second child into first child (temp int)
+0:95 'a2' (temp int)
+0:95 Constant:
+0:95 3 (const int)
+0:96 Sequence
+0:96 move second child to first child (temp float)
+0:96 'b' (const (read only) float)
+0:96 component-wise multiply (temp float)
+0:96 Constant:
+0:96 2.000000
+0:96 'a1' (temp float)
+0:97 Sequence
+0:97 move second child to first child (temp int)
+0:97 'a' (temp int)
+0:97 Constant:
+0:97 -1 (const int)
+0:109 Function Definition: qux( (global void)
+0:109 Function Parameters:
+0:111 Sequence
+0:111 Sequence
+0:111 move second child to first child (temp int)
+0:111 'i' (temp int)
+0:111 aoeu: direct index for structure (layout(column_major shared ) uniform int)
+0:111 'anon@0' (layout(binding=7 column_major shared ) uniform block{layout(column_major shared ) uniform int aoeu})
+0:111 Constant:
+0:111 0 (const uint)
+0:112 imageAtomicCompSwap (global int)
+0:112 'iimg2D' (layout(r32i ) uniform iimage2D)
+0:112 Construct ivec2 (temp 2-component vector of int)
+0:112 'i' (temp int)
+0:112 'i' (temp int)
+0:112 'i' (temp int)
+0:112 'i' (temp int)
+0:113 imageAtomicAdd (global uint)
+0:113 'uimg2D' (layout(r32ui ) uniform uimage2D)
+0:113 Construct ivec2 (temp 2-component vector of int)
+0:113 'i' (temp int)
+0:113 'i' (temp int)
+0:113 Convert int to uint (temp uint)
+0:113 'i' (temp int)
+0:114 imageAtomicMin (global int)
+0:114 'iimg2Drgba' (layout(rgba32i ) uniform iimage2D)
+0:114 Construct ivec2 (temp 2-component vector of int)
+0:114 'i' (temp int)
+0:114 'i' (temp int)
+0:114 'i' (temp int)
+0:115 Constant:
+0:115 0.000000
+0:116 Sequence
+0:116 move second child to first child (temp 4-component vector of int)
+0:116 'pos' (temp 4-component vector of int)
+0:116 imageLoad (global 4-component vector of int)
+0:116 'iimg2D' (layout(r32i ) uniform iimage2D)
+0:116 Construct ivec2 (temp 2-component vector of int)
+0:116 'i' (temp int)
+0:116 'i' (temp int)
+0:117 Sequence
+0:117 move second child to first child (temp 4-component vector of float)
+0:117 'col' (temp 4-component vector of float)
+0:117 imageLoad (global 4-component vector of float)
+0:117 'img2DMS' (uniform image2DMS)
+0:117 Construct ivec2 (temp 2-component vector of int)
+0:117 'i' (temp int)
+0:117 'i' (temp int)
+0:117 'i' (temp int)
+0:118 imageStore (global void)
+0:118 'img2DMSWO' (writeonly uniform image2DMS)
+0:118 Construct ivec2 (temp 2-component vector of int)
+0:118 'i' (temp int)
+0:118 'i' (temp int)
+0:118 'i' (temp int)
+0:118 Constant:
+0:118 0.000000
+0:118 0.000000
+0:118 0.000000
+0:118 0.000000
+0:119 imageLoad (global 4-component vector of float)
+0:119 'img2DMSWO' (writeonly uniform image2DMS)
+0:119 Construct ivec2 (temp 2-component vector of int)
+0:119 'i' (temp int)
+0:119 'i' (temp int)
+0:119 'i' (temp int)
+0:125 Function Definition: passr(iI21; (global void)
+0:125 Function Parameters:
+0:125 'image' (coherent readonly in iimage2D)
+0:132 Function Definition: passrc( (global void)
+0:132 Function Parameters:
+0:134 Sequence
+0:134 Function Call: passr(iI21; (global void)
+0:134 'qualim1' (layout(r32i ) coherent readonly uniform iimage2D)
+0:135 Function Call: passr(iI21; (global void)
+0:135 'qualim2' (layout(r32i ) coherent volatile readonly uniform iimage2D)
+0:136 Function Call: passr(iI21; (global void)
+0:136 'iimg2D' (layout(r32i ) uniform iimage2D)
+0:153 Function Definition: qlod( (global void)
+0:153 Function Parameters:
+0:? Sequence
+0:157 'levels' (temp int)
+0:158 'levels' (temp int)
+0:? Linker Objects
+0:? 'v2' (smooth out 2-component vector of float)
+0:? 'bad' (in 10-element array of 4-component vector of float)
+0:? 'badorder' (in 4-component vector of float)
+0:? 'badorder2' (invariant smooth out 4-component vector of float)
+0:? 'badorder4' (centroid in 4-component vector of float)
+0:? 'badorder3' (flat out 4-component vector of float)
+0:? 'rep' (smooth flat out 4-component vector of float)
+0:? 'rep2' (centroid smooth sample out 4-component vector of float)
+0:? 'rep3' (in 4-component vector of float)
+0:? 'anonconst' (global int)
+0:? 'aconst' (const int)
+0:? 5 (const int)
+0:? 'a' (const int)
+0:? 5 (const int)
+0:? 'b' (temp int)
+0:? 'cx' (const float)
+0:? 4.200000
+0:? 'dx' (const float)
+0:? 4.200000
+0:? 'boundInst' (layout(binding=3 column_major shared ) uniform block{layout(column_major shared ) uniform int aoeu})
+0:? 'anon@0' (layout(binding=7 column_major shared ) uniform block{layout(column_major shared ) uniform int aoeu})
+0:? 'anon@1' (layout(binding=1 ) in block{in int aoeua})
+0:? 'anon@2' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform int aooeu})
+0:? 'sampb1' (layout(binding=4 ) uniform sampler2D)
+0:? 'sampb2' (layout(binding=5 ) uniform 10-element array of sampler2D)
+0:? 'sampb3' (layout(binding=80 ) uniform sampler2D)
+0:? 'sampb4' (layout(binding=31 ) uniform sampler2D)
+0:? 'sampb5' (layout(binding=79 ) uniform 2-element array of sampler2D)
+0:? 'anon@3' (out block{out 4-element array of float ClipDistance gl_ClipDistance, })
+0:? 'patchIn' (patch in 4-component vector of float)
+0:? 'patchOut' (smooth patch out 4-component vector of float)
+0:? 'comma0' (temp int)
+0:? 'comma1' (global 1-element array of int)
+0:? 'iimg2D' (layout(r32i ) uniform iimage2D)
+0:? 'iimg2Drgba' (layout(rgba32i ) uniform iimage2D)
+0:? 'img2Drgba' (layout(rgba32f ) uniform image2D)
+0:? 'uimg2D' (layout(r32ui ) uniform uimage2D)
+0:? 'img2DMS' (uniform image2DMS)
+0:? 'img2DMSWO' (writeonly uniform image2DMS)
+0:? 'vol' (volatile temp float)
+0:? 'vol2' (readonly temp int)
+0:? 'qualim1' (layout(r32i ) coherent readonly uniform iimage2D)
+0:? 'qualim2' (layout(r32i ) coherent volatile readonly uniform iimage2D)
+0:? 'i1bad' (layout(rg8i ) uniform uimage2D)
+0:? 'i2bad' (layout(rgba32i ) uniform image2D)
+0:? 'i3bad' (layout(rgba32f ) uniform uimage2D)
+0:? 'i4bad' (layout(r8_snorm ) uniform iimage2D)
+0:? 'i5bad' (layout(rgba32ui ) uniform iimage2D)
+0:? 'i6bad' (layout(r8ui ) uniform iimage2D)
+0:? 'offcheckI' (layout(column_major shared ) uniform block{layout(column_major shared offset=16 ) uniform int foo})
+0:? 'samp1D' (uniform sampler1D)
+0:? 'samp1Ds' (uniform sampler1DShadow)
+0:? 'gl_VertexID' (gl_VertexId int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
+
+
+Linked vertex stage:
+
+
+Shader version: 420
+ERROR: node is still EOpNull!
+0:20 Function Definition: foo( (const int)
+0:20 Function Parameters:
+0:? Sequence
+0:23 Sequence
+0:23 move second child to first child (temp int)
+0:23 'b' (const (read only) int)
+0:23 'anonconst' (global int)
+0:25 Sequence
+0:25 move second child to first child (temp int)
+0:25 'd' (const (read only) int)
+0:25 'b' (const (read only) int)
+0:29 Branch: Return with expression
+0:29 'b' (const (read only) int)
+0:32 Function Definition: main( (global void)
+0:32 Function Parameters:
+0:? Sequence
+0:35 Test condition and select (temp void)
+0:35 Condition
+0:35 Compare Equal (temp bool)
+0:35 'i' (temp int)
+0:35 Constant:
+0:35 3 (const int)
+0:35 true case
+0:36 Sequence
+0:36 move second child to first child (temp int)
+0:36 'j' (temp int)
+0:36 'i' (temp int)
+0:42 Loop with condition tested first
+0:42 Loop Condition
+0:42 Constant:
+0:42 true (const bool)
+0:42 No loop body
+0:50 Function Definition: bar(vf4; (global void)
+0:50 Function Parameters:
+0:50 'v' (volatile in 4-component vector of float)
+0:? Sequence
+0:53 's' (temp int)
+0:54 's' (temp int)
+0:55 Test condition and select (temp void)
+0:55 Condition
+0:55 Compare Equal (temp bool)
+0:55 direct index (temp float)
+0:55 direct index (temp 4-component vector of float)
+0:55 'bad' (in 10-element array of 4-component vector of float)
+0:55 Constant:
+0:55 0 (const int)
+0:55 Constant:
+0:55 0 (const int)
+0:55 Constant:
+0:55 4.200000
+0:55 true case is null
+0:57 Test condition and select (temp void)
+0:57 Condition
+0:57 Constant:
+0:57 true (const bool)
+0:57 true case
+0:58 move second child to first child (temp 4-component vector of float)
+0:58 'badorder3' (flat out 4-component vector of float)
+0:58 direct index (temp 4-component vector of float)
+0:58 'bad' (in 10-element array of 4-component vector of float)
+0:58 Constant:
+0:58 0 (const int)
+0:61 Sequence
+0:61 move second child to first child (temp 3-component vector of float)
+0:61 'smeared' (temp 3-component vector of float)
+0:61 Construct vec3 (temp 3-component vector of float)
+0:61 'f' (temp float)
+0:62 'f' (temp float)
+0:63 'f' (temp float)
+0:88 Function Definition: bar23444( (global void)
+0:88 Function Parameters:
+0:? Sequence
+0:91 Sequence
+0:91 move second child to first child (temp float)
+0:91 'a1' (temp float)
+0:91 direct index (temp float)
+0:91 direct index (temp 3-component vector of float)
+0:91 'm43' (temp 4X3 matrix of float)
+0:91 Constant:
+0:91 3 (const int)
+0:91 Constant:
+0:91 1 (const int)
+0:93 Sequence
+0:93 move second child to first child (temp int)
+0:93 'a2' (temp int)
+0:93 Constant:
+0:93 4 (const int)
+0:94 add second child into first child (temp int)
+0:94 'a2' (temp int)
+0:94 Constant:
+0:94 3 (const int)
+0:95 add second child into first child (temp int)
+0:95 'a2' (temp int)
+0:95 Constant:
+0:95 3 (const int)
+0:96 Sequence
+0:96 move second child to first child (temp float)
+0:96 'b' (const (read only) float)
+0:96 component-wise multiply (temp float)
+0:96 Constant:
+0:96 2.000000
+0:96 'a1' (temp float)
+0:97 Sequence
+0:97 move second child to first child (temp int)
+0:97 'a' (temp int)
+0:97 Constant:
+0:97 -1 (const int)
+0:109 Function Definition: qux( (global void)
+0:109 Function Parameters:
+0:111 Sequence
+0:111 Sequence
+0:111 move second child to first child (temp int)
+0:111 'i' (temp int)
+0:111 aoeu: direct index for structure (layout(column_major shared ) uniform int)
+0:111 'anon@0' (layout(binding=7 column_major shared ) uniform block{layout(column_major shared ) uniform int aoeu})
+0:111 Constant:
+0:111 0 (const uint)
+0:112 imageAtomicCompSwap (global int)
+0:112 'iimg2D' (layout(r32i ) uniform iimage2D)
+0:112 Construct ivec2 (temp 2-component vector of int)
+0:112 'i' (temp int)
+0:112 'i' (temp int)
+0:112 'i' (temp int)
+0:112 'i' (temp int)
+0:113 imageAtomicAdd (global uint)
+0:113 'uimg2D' (layout(r32ui ) uniform uimage2D)
+0:113 Construct ivec2 (temp 2-component vector of int)
+0:113 'i' (temp int)
+0:113 'i' (temp int)
+0:113 Convert int to uint (temp uint)
+0:113 'i' (temp int)
+0:114 imageAtomicMin (global int)
+0:114 'iimg2Drgba' (layout(rgba32i ) uniform iimage2D)
+0:114 Construct ivec2 (temp 2-component vector of int)
+0:114 'i' (temp int)
+0:114 'i' (temp int)
+0:114 'i' (temp int)
+0:115 Constant:
+0:115 0.000000
+0:116 Sequence
+0:116 move second child to first child (temp 4-component vector of int)
+0:116 'pos' (temp 4-component vector of int)
+0:116 imageLoad (global 4-component vector of int)
+0:116 'iimg2D' (layout(r32i ) uniform iimage2D)
+0:116 Construct ivec2 (temp 2-component vector of int)
+0:116 'i' (temp int)
+0:116 'i' (temp int)
+0:117 Sequence
+0:117 move second child to first child (temp 4-component vector of float)
+0:117 'col' (temp 4-component vector of float)
+0:117 imageLoad (global 4-component vector of float)
+0:117 'img2DMS' (uniform image2DMS)
+0:117 Construct ivec2 (temp 2-component vector of int)
+0:117 'i' (temp int)
+0:117 'i' (temp int)
+0:117 'i' (temp int)
+0:118 imageStore (global void)
+0:118 'img2DMSWO' (writeonly uniform image2DMS)
+0:118 Construct ivec2 (temp 2-component vector of int)
+0:118 'i' (temp int)
+0:118 'i' (temp int)
+0:118 'i' (temp int)
+0:118 Constant:
+0:118 0.000000
+0:118 0.000000
+0:118 0.000000
+0:118 0.000000
+0:119 imageLoad (global 4-component vector of float)
+0:119 'img2DMSWO' (writeonly uniform image2DMS)
+0:119 Construct ivec2 (temp 2-component vector of int)
+0:119 'i' (temp int)
+0:119 'i' (temp int)
+0:119 'i' (temp int)
+0:125 Function Definition: passr(iI21; (global void)
+0:125 Function Parameters:
+0:125 'image' (coherent readonly in iimage2D)
+0:132 Function Definition: passrc( (global void)
+0:132 Function Parameters:
+0:134 Sequence
+0:134 Function Call: passr(iI21; (global void)
+0:134 'qualim1' (layout(r32i ) coherent readonly uniform iimage2D)
+0:135 Function Call: passr(iI21; (global void)
+0:135 'qualim2' (layout(r32i ) coherent volatile readonly uniform iimage2D)
+0:136 Function Call: passr(iI21; (global void)
+0:136 'iimg2D' (layout(r32i ) uniform iimage2D)
+0:153 Function Definition: qlod( (global void)
+0:153 Function Parameters:
+0:? Sequence
+0:157 'levels' (temp int)
+0:158 'levels' (temp int)
+0:? Linker Objects
+0:? 'v2' (smooth out 2-component vector of float)
+0:? 'bad' (in 10-element array of 4-component vector of float)
+0:? 'badorder' (in 4-component vector of float)
+0:? 'badorder2' (invariant smooth out 4-component vector of float)
+0:? 'badorder4' (centroid in 4-component vector of float)
+0:? 'badorder3' (flat out 4-component vector of float)
+0:? 'rep' (smooth flat out 4-component vector of float)
+0:? 'rep2' (centroid smooth sample out 4-component vector of float)
+0:? 'rep3' (in 4-component vector of float)
+0:? 'anonconst' (global int)
+0:? 'aconst' (const int)
+0:? 5 (const int)
+0:? 'a' (const int)
+0:? 5 (const int)
+0:? 'b' (temp int)
+0:? 'cx' (const float)
+0:? 4.200000
+0:? 'dx' (const float)
+0:? 4.200000
+0:? 'boundInst' (layout(binding=3 column_major shared ) uniform block{layout(column_major shared ) uniform int aoeu})
+0:? 'anon@0' (layout(binding=7 column_major shared ) uniform block{layout(column_major shared ) uniform int aoeu})
+0:? 'anon@1' (layout(binding=1 ) in block{in int aoeua})
+0:? 'anon@2' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform int aooeu})
+0:? 'sampb1' (layout(binding=4 ) uniform sampler2D)
+0:? 'sampb2' (layout(binding=5 ) uniform 10-element array of sampler2D)
+0:? 'sampb3' (layout(binding=80 ) uniform sampler2D)
+0:? 'sampb4' (layout(binding=31 ) uniform sampler2D)
+0:? 'sampb5' (layout(binding=79 ) uniform 2-element array of sampler2D)
+0:? 'anon@3' (out block{out 4-element array of float ClipDistance gl_ClipDistance, })
+0:? 'patchIn' (patch in 4-component vector of float)
+0:? 'patchOut' (smooth patch out 4-component vector of float)
+0:? 'comma0' (temp int)
+0:? 'comma1' (global 1-element array of int)
+0:? 'iimg2D' (layout(r32i ) uniform iimage2D)
+0:? 'iimg2Drgba' (layout(rgba32i ) uniform iimage2D)
+0:? 'img2Drgba' (layout(rgba32f ) uniform image2D)
+0:? 'uimg2D' (layout(r32ui ) uniform uimage2D)
+0:? 'img2DMS' (uniform image2DMS)
+0:? 'img2DMSWO' (writeonly uniform image2DMS)
+0:? 'vol' (volatile temp float)
+0:? 'vol2' (readonly temp int)
+0:? 'qualim1' (layout(r32i ) coherent readonly uniform iimage2D)
+0:? 'qualim2' (layout(r32i ) coherent volatile readonly uniform iimage2D)
+0:? 'i1bad' (layout(rg8i ) uniform uimage2D)
+0:? 'i2bad' (layout(rgba32i ) uniform image2D)
+0:? 'i3bad' (layout(rgba32f ) uniform uimage2D)
+0:? 'i4bad' (layout(r8_snorm ) uniform iimage2D)
+0:? 'i5bad' (layout(rgba32ui ) uniform iimage2D)
+0:? 'i6bad' (layout(r8ui ) uniform iimage2D)
+0:? 'offcheckI' (layout(column_major shared ) uniform block{layout(column_major shared offset=16 ) uniform int foo})
+0:? 'samp1D' (uniform sampler1D)
+0:? 'samp1Ds' (uniform sampler1DShadow)
+0:? 'gl_VertexID' (gl_VertexId int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/420_size_gl_in.geom.out b/chromium/third_party/glslang/src/Test/baseResults/420_size_gl_in.geom.out
new file mode 100644
index 00000000000..21d1944fd05
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/420_size_gl_in.geom.out
@@ -0,0 +1,77 @@
+420_size_gl_in.geom
+Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:19: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use
+ERROR: 1 compilation errors. No code generated.
+
+
+Shader version: 420
+invocations = -1
+max_vertices = -1
+input primitive = triangles
+output primitive = none
+ERROR: node is still EOpNull!
+0:11 Function Definition: foo( (global void)
+0:11 Function Parameters:
+0:13 Sequence
+0:13 Constant:
+0:13 3 (const int)
+0:14 gl_Position: direct index for structure (in 4-component vector of float Position)
+0:14 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:14 'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:14 Constant:
+0:14 1 (const int)
+0:14 Constant:
+0:14 0 (const int)
+0:15 Constant:
+0:15 3 (const int)
+0:16 gl_Position: direct index for structure (in 4-component vector of float Position)
+0:16 indirect index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:16 'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:16 'i' (global int)
+0:16 Constant:
+0:16 0 (const int)
+0:? Linker Objects
+0:? 'i' (global int)
+0:? 'colorun' (in 3-element array of 4-component vector of float)
+0:? 'color3' (in 3-element array of 4-component vector of float)
+0:? 'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+
+
+Linked geometry stage:
+
+ERROR: Linking geometry stage: Missing entry point: Each stage requires one "void main()" entry point
+ERROR: Linking geometry stage: At least one shader must specify an output layout primitive
+ERROR: Linking geometry stage: At least one shader must specify a layout(max_vertices = value)
+
+Shader version: 420
+invocations = 1
+max_vertices = -1
+input primitive = triangles
+output primitive = none
+ERROR: node is still EOpNull!
+0:11 Function Definition: foo( (global void)
+0:11 Function Parameters:
+0:13 Sequence
+0:13 Constant:
+0:13 3 (const int)
+0:14 gl_Position: direct index for structure (in 4-component vector of float Position)
+0:14 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:14 'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:14 Constant:
+0:14 1 (const int)
+0:14 Constant:
+0:14 0 (const int)
+0:15 Constant:
+0:15 3 (const int)
+0:16 gl_Position: direct index for structure (in 4-component vector of float Position)
+0:16 indirect index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:16 'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:16 'i' (global int)
+0:16 Constant:
+0:16 0 (const int)
+0:? Linker Objects
+0:? 'i' (global int)
+0:? 'colorun' (in 3-element array of 4-component vector of float)
+0:? 'color3' (in 3-element array of 4-component vector of float)
+0:? 'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/430.comp.out b/chromium/third_party/glslang/src/Test/baseResults/430.comp.out
new file mode 100644
index 00000000000..aecf42fcf6d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/430.comp.out
@@ -0,0 +1,281 @@
+430.comp
+Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:4: 'local_size' : cannot change previously set size
+ERROR: 0:5: 'local_size' : too large; see gl_MaxComputeWorkGroupSize
+ERROR: 0:43: 'in' : global storage input qualifier cannot be used in a compute shader
+ERROR: 0:43: 'location qualifier on input' : not supported in this stage: compute
+ERROR: 0:44: 'in' : global storage input qualifier cannot be used in a compute shader
+ERROR: 0:45: 'out' : global storage output qualifier cannot be used in a compute shader
+ERROR: 0:48: 'shared' : cannot apply layout qualifiers to a shared variable
+ERROR: 0:48: 'location' : can only apply to uniform, buffer, in, or out storage qualifiers
+ERROR: 0:49: 'shared' : cannot initialize this type of qualifier
+ERROR: 0:51: 'local_size' : can only apply to 'in'
+ERROR: 0:51: 'local_size' : can only apply to 'in'
+ERROR: 0:51: 'local_size' : can only apply to 'in'
+ERROR: 0:65: 'assign' : l-value required "ro" (can't modify a readonly buffer)
+ERROR: 0:77: '=' : cannot convert from 'temp double' to 'temp int'
+ERROR: 0:81: 'input block' : not supported in this stage: compute
+ERROR: 0:85: 'output block' : not supported in this stage: compute
+ERROR: 16 compilation errors. No code generated.
+
+
+Shader version: 430
+local_size = (2, 1, 4096)
+ERROR: node is still EOpNull!
+0:27 Function Definition: main( (global void)
+0:27 Function Parameters:
+0:29 Sequence
+0:29 Barrier (global void)
+0:30 MemoryBarrier (global void)
+0:31 MemoryBarrierAtomicCounter (global void)
+0:32 MemoryBarrierBuffer (global void)
+0:33 MemoryBarrierShared (global void)
+0:34 MemoryBarrierImage (global void)
+0:35 GroupMemoryBarrier (global void)
+0:36 move second child to first child (temp int)
+0:36 value: direct index for structure (layout(column_major shared ) buffer int)
+0:36 'anon@0' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})
+0:36 Constant:
+0:36 0 (const uint)
+0:36 Convert float to int (temp int)
+0:36 indirect index (layout(column_major shared ) temp float)
+0:36 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of float)
+0:36 'anon@0' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})
+0:36 Constant:
+0:36 1 (const uint)
+0:36 'gl_LocalInvocationIndex' (in uint LocalInvocationIndex)
+0:39 Test condition and select (temp void)
+0:39 Condition
+0:39 Compare Greater Than (temp bool)
+0:39 'a' (temp int)
+0:39 Constant:
+0:39 10 (const int)
+0:39 true case
+0:40 Barrier (global void)
+0:63 Function Definition: foo( (global void)
+0:63 Function Parameters:
+0:65 Sequence
+0:65 move second child to first child (temp float)
+0:65 direct index (layout(column_major shared ) temp float)
+0:65 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of float)
+0:65 'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})
+0:65 Constant:
+0:65 1 (const int)
+0:65 Constant:
+0:65 2 (const int)
+0:65 Constant:
+0:65 4.700000
+0:66 array length (temp int)
+0:66 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of float)
+0:66 'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})
+0:66 Constant:
+0:66 1 (const int)
+0:67 Barrier (global void)
+0:72 Function Definition: fooaoeu( (global void)
+0:72 Function Parameters:
+0:73 Sequence
+0:73 Sequence
+0:73 move second child to first child (temp 2-component vector of int)
+0:73 'storePos' (temp 2-component vector of int)
+0:73 Convert uint to int (temp 2-component vector of int)
+0:73 vector swizzle (temp 2-component vector of uint)
+0:73 'gl_GlobalInvocationID' (in 3-component vector of uint GlobalInvocationID)
+0:73 Sequence
+0:73 Constant:
+0:73 0 (const int)
+0:73 Constant:
+0:73 1 (const int)
+0:74 Sequence
+0:74 move second child to first child (temp double)
+0:74 'localCoef' (temp double)
+0:74 Convert float to double (temp double)
+0:74 length (global float)
+0:74 divide (temp 2-component vector of float)
+0:74 Convert int to float (temp 2-component vector of float)
+0:74 subtract (temp 2-component vector of int)
+0:74 Convert uint to int (temp 2-component vector of int)
+0:74 vector swizzle (temp 2-component vector of uint)
+0:74 'gl_LocalInvocationID' (in 3-component vector of uint LocalInvocationID)
+0:74 Sequence
+0:74 Constant:
+0:74 0 (const int)
+0:74 Constant:
+0:74 1 (const int)
+0:74 Constant:
+0:74 8 (const int)
+0:74 Constant:
+0:74 8.000000
+0:75 Sequence
+0:75 move second child to first child (temp 4-component vector of double)
+0:75 'aa' (temp 4-component vector of double)
+0:75 Constant:
+0:75 0.400000
+0:75 0.200000
+0:75 0.300000
+0:75 0.400000
+0:76 Sequence
+0:76 move second child to first child (temp double)
+0:76 'globalCoef' (temp double)
+0:76 Constant:
+0:76 1.000000
+0:78 Sequence
+0:78 move second child to first child (temp double)
+0:78 'di' (temp double)
+0:78 Convert int to double (temp double)
+0:78 'i' (temp int)
+0:? Linker Objects
+0:? 'gl_WorkGroupSize' (const 3-component vector of uint WorkGroupSize)
+0:? 2 (const uint)
+0:? 1 (const uint)
+0:? 4096 (const uint)
+0:? 'total' (const int)
+0:? 66592 (const int)
+0:? 'anon@0' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})
+0:? 'invalid' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer implicitly-sized array of float values, layout(column_major shared ) buffer int value})
+0:? 'v3' (layout(location=2 ) in 3-component vector of float)
+0:? 'f' (in float)
+0:? 'fo' (out float)
+0:? 's' (shared 4-component vector of float)
+0:? 'sl' (layout(location=2 ) shared 4-component vector of float)
+0:? 'fs' (shared float)
+0:? 'arrX' (global 2-element array of int)
+0:? 'arrY' (global 1-element array of int)
+0:? 'arrZ' (global 4096-element array of int)
+0:? 'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})
+0:? 'roll' (uniform double)
+0:? 'destTex' (writeonly uniform image2D)
+0:? 'inbi' (in block{in int a})
+0:? 'outbi' (out block{out int a})
+
+
+Linked compute stage:
+
+
+Shader version: 430
+local_size = (2, 1, 4096)
+ERROR: node is still EOpNull!
+0:27 Function Definition: main( (global void)
+0:27 Function Parameters:
+0:29 Sequence
+0:29 Barrier (global void)
+0:30 MemoryBarrier (global void)
+0:31 MemoryBarrierAtomicCounter (global void)
+0:32 MemoryBarrierBuffer (global void)
+0:33 MemoryBarrierShared (global void)
+0:34 MemoryBarrierImage (global void)
+0:35 GroupMemoryBarrier (global void)
+0:36 move second child to first child (temp int)
+0:36 value: direct index for structure (layout(column_major shared ) buffer int)
+0:36 'anon@0' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})
+0:36 Constant:
+0:36 0 (const uint)
+0:36 Convert float to int (temp int)
+0:36 indirect index (layout(column_major shared ) temp float)
+0:36 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of float)
+0:36 'anon@0' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})
+0:36 Constant:
+0:36 1 (const uint)
+0:36 'gl_LocalInvocationIndex' (in uint LocalInvocationIndex)
+0:39 Test condition and select (temp void)
+0:39 Condition
+0:39 Compare Greater Than (temp bool)
+0:39 'a' (temp int)
+0:39 Constant:
+0:39 10 (const int)
+0:39 true case
+0:40 Barrier (global void)
+0:63 Function Definition: foo( (global void)
+0:63 Function Parameters:
+0:65 Sequence
+0:65 move second child to first child (temp float)
+0:65 direct index (layout(column_major shared ) temp float)
+0:65 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of float)
+0:65 'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})
+0:65 Constant:
+0:65 1 (const int)
+0:65 Constant:
+0:65 2 (const int)
+0:65 Constant:
+0:65 4.700000
+0:66 array length (temp int)
+0:66 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of float)
+0:66 'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})
+0:66 Constant:
+0:66 1 (const int)
+0:67 Barrier (global void)
+0:72 Function Definition: fooaoeu( (global void)
+0:72 Function Parameters:
+0:73 Sequence
+0:73 Sequence
+0:73 move second child to first child (temp 2-component vector of int)
+0:73 'storePos' (temp 2-component vector of int)
+0:73 Convert uint to int (temp 2-component vector of int)
+0:73 vector swizzle (temp 2-component vector of uint)
+0:73 'gl_GlobalInvocationID' (in 3-component vector of uint GlobalInvocationID)
+0:73 Sequence
+0:73 Constant:
+0:73 0 (const int)
+0:73 Constant:
+0:73 1 (const int)
+0:74 Sequence
+0:74 move second child to first child (temp double)
+0:74 'localCoef' (temp double)
+0:74 Convert float to double (temp double)
+0:74 length (global float)
+0:74 divide (temp 2-component vector of float)
+0:74 Convert int to float (temp 2-component vector of float)
+0:74 subtract (temp 2-component vector of int)
+0:74 Convert uint to int (temp 2-component vector of int)
+0:74 vector swizzle (temp 2-component vector of uint)
+0:74 'gl_LocalInvocationID' (in 3-component vector of uint LocalInvocationID)
+0:74 Sequence
+0:74 Constant:
+0:74 0 (const int)
+0:74 Constant:
+0:74 1 (const int)
+0:74 Constant:
+0:74 8 (const int)
+0:74 Constant:
+0:74 8.000000
+0:75 Sequence
+0:75 move second child to first child (temp 4-component vector of double)
+0:75 'aa' (temp 4-component vector of double)
+0:75 Constant:
+0:75 0.400000
+0:75 0.200000
+0:75 0.300000
+0:75 0.400000
+0:76 Sequence
+0:76 move second child to first child (temp double)
+0:76 'globalCoef' (temp double)
+0:76 Constant:
+0:76 1.000000
+0:78 Sequence
+0:78 move second child to first child (temp double)
+0:78 'di' (temp double)
+0:78 Convert int to double (temp double)
+0:78 'i' (temp int)
+0:? Linker Objects
+0:? 'gl_WorkGroupSize' (const 3-component vector of uint WorkGroupSize)
+0:? 2 (const uint)
+0:? 1 (const uint)
+0:? 4096 (const uint)
+0:? 'total' (const int)
+0:? 66592 (const int)
+0:? 'anon@0' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})
+0:? 'invalid' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer implicitly-sized array of float values, layout(column_major shared ) buffer int value})
+0:? 'v3' (layout(location=2 ) in 3-component vector of float)
+0:? 'f' (in float)
+0:? 'fo' (out float)
+0:? 's' (shared 4-component vector of float)
+0:? 'sl' (layout(location=2 ) shared 4-component vector of float)
+0:? 'fs' (shared float)
+0:? 'arrX' (global 2-element array of int)
+0:? 'arrY' (global 1-element array of int)
+0:? 'arrZ' (global 4096-element array of int)
+0:? 'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})
+0:? 'roll' (uniform double)
+0:? 'destTex' (writeonly uniform image2D)
+0:? 'inbi' (in block{in int a})
+0:? 'outbi' (out block{out int a})
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/430.vert.out b/chromium/third_party/glslang/src/Test/baseResults/430.vert.out
new file mode 100644
index 00000000000..8cfd20c03cb
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/430.vert.out
@@ -0,0 +1,469 @@
+430.vert
+Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:3: 'location' : can only apply to uniform, buffer, in, or out storage qualifiers
+ERROR: 0:7: 'input block' : not supported in this stage: vertex
+ERROR: 0:7: 'location qualifier on in/out block' : not supported for this version or the enabled extensions
+ERROR: 0:8: 'location qualifier on in/out block' : not supported for this version or the enabled extensions
+ERROR: 0:23: 'invariant' : can only apply to an output
+ERROR: 0:21: 'g' : cannot use storage or interpolation qualifiers on structure members
+ERROR: 0:22: 'h' : cannot use storage or interpolation qualifiers on structure members
+ERROR: 0:23: 'i' : cannot use invariant qualifier on structure members
+ERROR: 0:24: 'j' : cannot use memory qualifiers on structure members
+ERROR: 0:25: 'm3' : cannot use layout qualifiers on structure members
+ERROR: 0:28: '' : cannot use invariant qualifier on a function parameter
+ERROR: 0:30: '' : cannot use layout qualifiers on a function parameter
+ERROR: 0:31: '' : cannot use auxiliary or interpolation qualifiers on a function parameter
+ERROR: 0:42: 'location' : overlapping use of location 53
+ERROR: 0:47: 'gl_ClipDistance array size' : must be less than gl_MaxClipDistances (8)
+ERROR: 0:51: 'start' : undeclared identifier
+ERROR: 0:51: '' : constant expression required
+ERROR: 0:51: 'layout-id value' : scalar integer expression required
+ERROR: 0:53: 'input block' : not supported in this stage: vertex
+ERROR: 0:54: 'location on block member' : not supported for this version or the enabled extensions
+ERROR: 0:57: 'input block' : not supported in this stage: vertex
+ERROR: 0:58: 'location on block member' : not supported for this version or the enabled extensions
+ERROR: 0:59: 'location on block member' : not supported for this version or the enabled extensions
+ERROR: 0:62: 'uniform buffer-member align' : not supported for this version or the enabled extensions
+ERROR: 0:64: 'uniform buffer-member align' : not supported for this version or the enabled extensions
+ERROR: 0:65: 'uniform buffer-member align' : not supported for this version or the enabled extensions
+ERROR: 0:65: 'offset on block member' : not supported for this version or the enabled extensions
+ERROR: 0:66: 'offset on block member' : not supported for this version or the enabled extensions
+ERROR: 0:64: 'offset/align' : can only be used with std140 or std430 layout packing
+ERROR: 0:65: 'align' : can only be used with std140 or std430 layout packing
+ERROR: 0:71: 'offset on block member' : not supported for this version or the enabled extensions
+ERROR: 0:74: 'gl_MaxTransformFeedbackBuffers' : required extension not requested: GL_ARB_enhanced_layouts
+ERROR: 0:75: 'gl_MaxTransformFeedbackInterleavedComponents' : required extension not requested: GL_ARB_enhanced_layouts
+ERROR: 0:78: 'transform feedback qualifier' : not supported for this version or the enabled extensions
+ERROR: 0:81: 'transform feedback qualifier' : not supported for this version or the enabled extensions
+ERROR: 0:81: 'transform feedback qualifier' : not supported for this version or the enabled extensions
+ERROR: 0:83: 'transform feedback qualifier' : not supported for this version or the enabled extensions
+ERROR: 0:83: 'transform feedback qualifier' : not supported for this version or the enabled extensions
+ERROR: 0:83: 'transform feedback qualifier' : not supported for this version or the enabled extensions
+ERROR: 0:84: 'transform feedback qualifier' : not supported for this version or the enabled extensions
+ERROR: 0:84: 'transform feedback qualifier' : not supported for this version or the enabled extensions
+ERROR: 0:86: 'transform feedback qualifier' : not supported for this version or the enabled extensions
+ERROR: 0:86: 'transform feedback qualifier' : not supported for this version or the enabled extensions
+ERROR: 0:86: 'transform feedback qualifier' : not supported for this version or the enabled extensions
+ERROR: 0:92: 'transform feedback qualifier' : not supported for this version or the enabled extensions
+ERROR: 0:93: 'transform feedback qualifier' : not supported for this version or the enabled extensions
+ERROR: 0:93: 'transform feedback qualifier' : not supported for this version or the enabled extensions
+ERROR: 0:93: 'transform feedback qualifier' : not supported for this version or the enabled extensions
+ERROR: 0:117: 'input block' : not supported in this stage: vertex
+ERROR: 0:123: 'input block' : not supported in this stage: vertex
+ERROR: 0:146: 'shared' : not supported in this stage: vertex
+ERROR: 0:150: 'barrier' : no matching overloaded function found
+ERROR: 0:154: 'memoryBarrierShared' : no matching overloaded function found
+ERROR: 0:156: 'groupMemoryBarrier' : no matching overloaded function found
+ERROR: 0:159: 'buffer' : buffers can be declared only as blocks
+ERROR: 0:168: 'textureSamples and imageSamples' : not supported for this version or the enabled extensions
+ERROR: 0:169: 'textureSamples and imageSamples' : not supported for this version or the enabled extensions
+ERROR: 0:170: 'textureSamples and imageSamples' : not supported for this version or the enabled extensions
+ERROR: 0:171: 'textureSamples and imageSamples' : not supported for this version or the enabled extensions
+ERROR: 0:221: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:221: 'assign' : cannot convert from 'const float' to 'temp int'
+ERROR: 0:222: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:222: 'assign' : cannot convert from 'const float' to 'temp int'
+ERROR: 63 compilation errors. No code generated.
+
+
+Shader version: 430
+Requested GL_ARB_enhanced_layouts
+Requested GL_ARB_shader_texture_image_samples
+in xfb mode
+ERROR: node is still EOpNull!
+0:14 Function Definition: foo( (global void)
+0:14 Function Parameters:
+0:16 Sequence
+0:16 move second child to first child (temp float)
+0:16 direct index (temp float ClipDistance)
+0:16 gl_ClipDistance: direct index for structure (out 17-element array of float ClipDistance)
+0:16 'anon@0' (out block{out 17-element array of float ClipDistance gl_ClipDistance, })
+0:16 Constant:
+0:16 2 (const uint)
+0:16 Constant:
+0:16 2 (const int)
+0:16 Constant:
+0:16 3.700000
+0:31 Function Definition: foo3(vf4;vf3;vf2;vf3; (global void)
+0:31 Function Parameters:
+0:31 'v4' (in 4-component vector of float)
+0:31 'v3' (volatile in 3-component vector of float)
+0:31 'v2' (in 2-component vector of float)
+0:31 'cv3' (in 3-component vector of float)
+0:148 Function Definition: fooBarrier( (global void)
+0:148 Function Parameters:
+0:150 Sequence
+0:150 Constant:
+0:150 0.000000
+0:151 MemoryBarrier (global void)
+0:152 MemoryBarrierAtomicCounter (global void)
+0:153 MemoryBarrierBuffer (global void)
+0:154 Constant:
+0:154 0.000000
+0:155 MemoryBarrierImage (global void)
+0:156 Constant:
+0:156 0.000000
+0:166 Function Definition: fooq( (global void)
+0:166 Function Parameters:
+0:168 Sequence
+0:168 Sequence
+0:168 move second child to first child (temp int)
+0:168 's' (temp int)
+0:168 textureSamples (global int)
+0:168 's2dms' (uniform sampler2DMS)
+0:169 add second child into first child (temp int)
+0:169 's' (temp int)
+0:169 textureSamples (global int)
+0:169 'us2dmsa' (uniform usampler2DMSArray)
+0:170 add second child into first child (temp int)
+0:170 's' (temp int)
+0:170 imageQuerySamples (global int)
+0:170 'ii2dms' (layout(rgba32i ) uniform iimage2DMS)
+0:171 add second child into first child (temp int)
+0:171 's' (temp int)
+0:171 imageQuerySamples (global int)
+0:171 'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)
+0:176 Function Definition: fooq2( (global void)
+0:176 Function Parameters:
+0:178 Sequence
+0:178 Sequence
+0:178 move second child to first child (temp int)
+0:178 's' (temp int)
+0:178 textureSamples (global int)
+0:178 's2dms' (uniform sampler2DMS)
+0:179 add second child into first child (temp int)
+0:179 's' (temp int)
+0:179 textureSamples (global int)
+0:179 'us2dmsa' (uniform usampler2DMSArray)
+0:180 add second child into first child (temp int)
+0:180 's' (temp int)
+0:180 imageQuerySamples (global int)
+0:180 'ii2dms' (layout(rgba32i ) uniform iimage2DMS)
+0:181 add second child into first child (temp int)
+0:181 's' (temp int)
+0:181 imageQuerySamples (global int)
+0:181 'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)
+0:202 Function Definition: qlod( (global void)
+0:202 Function Parameters:
+0:? Sequence
+0:206 move second child to first child (temp int)
+0:206 'levels' (temp int)
+0:206 textureQueryLevels (global int)
+0:206 'samp1D' (uniform sampler1D)
+0:207 move second child to first child (temp int)
+0:207 'levels' (temp int)
+0:207 textureQueryLevels (global int)
+0:207 'usamp2D' (uniform usampler2D)
+0:208 move second child to first child (temp int)
+0:208 'levels' (temp int)
+0:208 textureQueryLevels (global int)
+0:208 'isamp3D' (uniform isampler3D)
+0:209 move second child to first child (temp int)
+0:209 'levels' (temp int)
+0:209 textureQueryLevels (global int)
+0:209 'isampCube' (uniform isamplerCube)
+0:210 move second child to first child (temp int)
+0:210 'levels' (temp int)
+0:210 textureQueryLevels (global int)
+0:210 'isamp1DA' (uniform isampler1DArray)
+0:211 move second child to first child (temp int)
+0:211 'levels' (temp int)
+0:211 textureQueryLevels (global int)
+0:211 'samp2DA' (uniform sampler2DArray)
+0:212 move second child to first child (temp int)
+0:212 'levels' (temp int)
+0:212 textureQueryLevels (global int)
+0:212 'usampCubeA' (uniform usamplerCubeArray)
+0:214 move second child to first child (temp int)
+0:214 'levels' (temp int)
+0:214 textureQueryLevels (global int)
+0:214 'samp1Ds' (uniform sampler1DShadow)
+0:215 move second child to first child (temp int)
+0:215 'levels' (temp int)
+0:215 textureQueryLevels (global int)
+0:215 'samp2Ds' (uniform sampler2DShadow)
+0:216 move second child to first child (temp int)
+0:216 'levels' (temp int)
+0:216 textureQueryLevels (global int)
+0:216 'sampCubes' (uniform samplerCubeShadow)
+0:217 move second child to first child (temp int)
+0:217 'levels' (temp int)
+0:217 textureQueryLevels (global int)
+0:217 'samp1DAs' (uniform sampler1DArrayShadow)
+0:218 move second child to first child (temp int)
+0:218 'levels' (temp int)
+0:218 textureQueryLevels (global int)
+0:218 'samp2DAs' (uniform sampler2DArrayShadow)
+0:219 move second child to first child (temp int)
+0:219 'levels' (temp int)
+0:219 textureQueryLevels (global int)
+0:219 'sampCubeAs' (uniform samplerCubeArrayShadow)
+0:221 'levels' (temp int)
+0:222 'levels' (temp int)
+0:? Linker Objects
+0:? 'v4' (layout(location=3 ) temp 4-component vector of float)
+0:? 'uv4' (layout(location=4 ) uniform 4-component vector of float)
+0:? 'b1' (layout(location=2 ) in block{in 4-component vector of float v})
+0:? 'b2' (layout(location=2 ) out block{out 4-component vector of float v})
+0:? 'anon@0' (out block{out 17-element array of float ClipDistance gl_ClipDistance, })
+0:? 'cs' (layout(location=10 ) smooth out 2-element array of structure{global 7-element array of 3X2 matrix of float m, global float f})
+0:? 'cf' (layout(location=54 ) smooth out float)
+0:? 'cg' (layout(location=53 ) smooth out float)
+0:? 'alias1' (layout(location=10 ) in 4-component vector of float)
+0:? 'alias2' (layout(location=10 ) in 4-component vector of float)
+0:? 'v6e' (layout(location=0 ) in 4-component vector of float)
+0:? 'ininst2e' (in block{layout(location=25 ) in float f2})
+0:? 'in4e' (in block{layout(location=50 ) in float f1, layout(location=51 ) in float f2})
+0:? 'inst4e' (layout(column_major std140 align=16 ) uniform block{layout(column_major std140 offset=0 align=16 ) uniform int a})
+0:? 'inst9e' (layout(column_major shared align=32 ) uniform block{layout(column_major shared offset=12 align=4 ) uniform float f, layout(column_major shared offset=20 ) uniform float g})
+0:? 'spinste' (layout(column_major std140 ) uniform block{layout(column_major std140 offset=0 ) uniform 4-component vector of float a, layout(column_major std140 offset=32 ) uniform 3-component vector of float b})
+0:? 'aconste' (global 4-element array of int)
+0:? 'bconste' (global 64-element array of int)
+0:? 'bbinst2' (out block{layout(xfb_buffer=0 xfb_offset=64 ) out 4-component vector of float bbv})
+0:? 'bge' (layout(xfb_buffer=2 xfb_offset=48 xfb_stride=80 ) smooth out 4-component vector of float)
+0:? 'bhe' (layout(xfb_buffer=3 xfb_offset=32 xfb_stride=64 ) smooth out 4-component vector of float)
+0:? 'bbinst4e' (layout(xfb_stride=80 ) out block{layout(xfb_buffer=2 xfb_offset=16 ) out 4-component vector of float bbv1, layout(xfb_buffer=2 xfb_offset=32 ) out 4-component vector of float bbv2})
+0:? 'bbinst5e' (out block{layout(xfb_buffer=3 xfb_offset=0 ) out 4-component vector of float bbv1, layout(xfb_buffer=3 xfb_offset=48 xfb_stride=64 ) out 4-component vector of float bbv2})
+0:? 'inst4' (layout(column_major std140 align=16 ) uniform block{layout(column_major std140 offset=0 align=16 ) uniform int a})
+0:? 'inst9' (layout(column_major std430 align=32 ) uniform block{layout(column_major std430 offset=12 align=4 ) uniform float f, layout(column_major std430 offset=20 align=32 ) uniform float g})
+0:? 'spinst' (layout(column_major std140 ) uniform block{layout(column_major std140 offset=0 ) uniform 4-component vector of float a, layout(column_major std140 offset=32 ) uniform 3-component vector of float b})
+0:? 'aconst' (global 4-element array of int)
+0:? 'bconst' (global 64-element array of int)
+0:? 'start2' (const int)
+0:? 5 (const int)
+0:? 'v6' (layout(location=19 ) in 4-component vector of float)
+0:? 'ininst2' (in block{layout(location=28 component=0 ) in bool b1, layout(location=29 component=0 ) in float f1, layout(location=25 ) in float f2})
+0:? 'in4' (in block{layout(location=50 ) in float f1, layout(location=51 ) in float f2})
+0:? 'bbinst2g' (out block{layout(xfb_buffer=3 xfb_offset=64 ) out 4-component vector of float bbv})
+0:? 'bg' (layout(xfb_buffer=1 xfb_offset=48 xfb_stride=80 ) smooth out 4-component vector of float)
+0:? 'bh' (layout(xfb_buffer=1 xfb_offset=32 xfb_stride=80 ) smooth out 4-component vector of float)
+0:? 'bbinst4' (layout(xfb_stride=80 ) out block{layout(xfb_buffer=1 xfb_offset=16 ) out 4-component vector of float bbv1})
+0:? 'bbinst5' (out block{layout(xfb_buffer=1 xfb_offset=0 ) out 4-component vector of float bbv1, layout(xfb_buffer=1 xfb_offset=64 xfb_stride=80 ) out 4-component vector of float bbv2})
+0:? 'sharedv' (shared 4-component vector of float)
+0:? 'v' (buffer 4-component vector of float)
+0:? 's2dms' (uniform sampler2DMS)
+0:? 'us2dmsa' (uniform usampler2DMSArray)
+0:? 'ii2dms' (layout(rgba32i ) uniform iimage2DMS)
+0:? 'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)
+0:? 'samp1D' (uniform sampler1D)
+0:? 'usamp2D' (uniform usampler2D)
+0:? 'isamp3D' (uniform isampler3D)
+0:? 'isampCube' (uniform isamplerCube)
+0:? 'isamp1DA' (uniform isampler1DArray)
+0:? 'samp2DA' (uniform sampler2DArray)
+0:? 'usampCubeA' (uniform usamplerCubeArray)
+0:? 'samp1Ds' (uniform sampler1DShadow)
+0:? 'samp2Ds' (uniform sampler2DShadow)
+0:? 'sampCubes' (uniform samplerCubeShadow)
+0:? 'samp1DAs' (uniform sampler1DArrayShadow)
+0:? 'samp2DAs' (uniform sampler2DArrayShadow)
+0:? 'sampCubeAs' (uniform samplerCubeArrayShadow)
+0:? 'sampBuf' (uniform samplerBuffer)
+0:? 'sampRect' (uniform sampler2DRect)
+0:? 'gl_VertexID' (gl_VertexId int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
+
+
+Linked vertex stage:
+
+ERROR: Linking vertex stage: Missing entry point: Each stage requires one "void main()" entry point
+ERROR: Linking vertex stage: xfb_stride is too small to hold all buffer entries:
+ERROR: xfb_buffer 3, xfb_stride 64, minimum stride needed: 80
+
+Shader version: 430
+Requested GL_ARB_enhanced_layouts
+Requested GL_ARB_shader_texture_image_samples
+in xfb mode
+ERROR: node is still EOpNull!
+0:14 Function Definition: foo( (global void)
+0:14 Function Parameters:
+0:16 Sequence
+0:16 move second child to first child (temp float)
+0:16 direct index (temp float ClipDistance)
+0:16 gl_ClipDistance: direct index for structure (out 17-element array of float ClipDistance)
+0:16 'anon@0' (out block{out 17-element array of float ClipDistance gl_ClipDistance, })
+0:16 Constant:
+0:16 2 (const uint)
+0:16 Constant:
+0:16 2 (const int)
+0:16 Constant:
+0:16 3.700000
+0:31 Function Definition: foo3(vf4;vf3;vf2;vf3; (global void)
+0:31 Function Parameters:
+0:31 'v4' (in 4-component vector of float)
+0:31 'v3' (volatile in 3-component vector of float)
+0:31 'v2' (in 2-component vector of float)
+0:31 'cv3' (in 3-component vector of float)
+0:148 Function Definition: fooBarrier( (global void)
+0:148 Function Parameters:
+0:150 Sequence
+0:150 Constant:
+0:150 0.000000
+0:151 MemoryBarrier (global void)
+0:152 MemoryBarrierAtomicCounter (global void)
+0:153 MemoryBarrierBuffer (global void)
+0:154 Constant:
+0:154 0.000000
+0:155 MemoryBarrierImage (global void)
+0:156 Constant:
+0:156 0.000000
+0:166 Function Definition: fooq( (global void)
+0:166 Function Parameters:
+0:168 Sequence
+0:168 Sequence
+0:168 move second child to first child (temp int)
+0:168 's' (temp int)
+0:168 textureSamples (global int)
+0:168 's2dms' (uniform sampler2DMS)
+0:169 add second child into first child (temp int)
+0:169 's' (temp int)
+0:169 textureSamples (global int)
+0:169 'us2dmsa' (uniform usampler2DMSArray)
+0:170 add second child into first child (temp int)
+0:170 's' (temp int)
+0:170 imageQuerySamples (global int)
+0:170 'ii2dms' (layout(rgba32i ) uniform iimage2DMS)
+0:171 add second child into first child (temp int)
+0:171 's' (temp int)
+0:171 imageQuerySamples (global int)
+0:171 'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)
+0:176 Function Definition: fooq2( (global void)
+0:176 Function Parameters:
+0:178 Sequence
+0:178 Sequence
+0:178 move second child to first child (temp int)
+0:178 's' (temp int)
+0:178 textureSamples (global int)
+0:178 's2dms' (uniform sampler2DMS)
+0:179 add second child into first child (temp int)
+0:179 's' (temp int)
+0:179 textureSamples (global int)
+0:179 'us2dmsa' (uniform usampler2DMSArray)
+0:180 add second child into first child (temp int)
+0:180 's' (temp int)
+0:180 imageQuerySamples (global int)
+0:180 'ii2dms' (layout(rgba32i ) uniform iimage2DMS)
+0:181 add second child into first child (temp int)
+0:181 's' (temp int)
+0:181 imageQuerySamples (global int)
+0:181 'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)
+0:202 Function Definition: qlod( (global void)
+0:202 Function Parameters:
+0:? Sequence
+0:206 move second child to first child (temp int)
+0:206 'levels' (temp int)
+0:206 textureQueryLevels (global int)
+0:206 'samp1D' (uniform sampler1D)
+0:207 move second child to first child (temp int)
+0:207 'levels' (temp int)
+0:207 textureQueryLevels (global int)
+0:207 'usamp2D' (uniform usampler2D)
+0:208 move second child to first child (temp int)
+0:208 'levels' (temp int)
+0:208 textureQueryLevels (global int)
+0:208 'isamp3D' (uniform isampler3D)
+0:209 move second child to first child (temp int)
+0:209 'levels' (temp int)
+0:209 textureQueryLevels (global int)
+0:209 'isampCube' (uniform isamplerCube)
+0:210 move second child to first child (temp int)
+0:210 'levels' (temp int)
+0:210 textureQueryLevels (global int)
+0:210 'isamp1DA' (uniform isampler1DArray)
+0:211 move second child to first child (temp int)
+0:211 'levels' (temp int)
+0:211 textureQueryLevels (global int)
+0:211 'samp2DA' (uniform sampler2DArray)
+0:212 move second child to first child (temp int)
+0:212 'levels' (temp int)
+0:212 textureQueryLevels (global int)
+0:212 'usampCubeA' (uniform usamplerCubeArray)
+0:214 move second child to first child (temp int)
+0:214 'levels' (temp int)
+0:214 textureQueryLevels (global int)
+0:214 'samp1Ds' (uniform sampler1DShadow)
+0:215 move second child to first child (temp int)
+0:215 'levels' (temp int)
+0:215 textureQueryLevels (global int)
+0:215 'samp2Ds' (uniform sampler2DShadow)
+0:216 move second child to first child (temp int)
+0:216 'levels' (temp int)
+0:216 textureQueryLevels (global int)
+0:216 'sampCubes' (uniform samplerCubeShadow)
+0:217 move second child to first child (temp int)
+0:217 'levels' (temp int)
+0:217 textureQueryLevels (global int)
+0:217 'samp1DAs' (uniform sampler1DArrayShadow)
+0:218 move second child to first child (temp int)
+0:218 'levels' (temp int)
+0:218 textureQueryLevels (global int)
+0:218 'samp2DAs' (uniform sampler2DArrayShadow)
+0:219 move second child to first child (temp int)
+0:219 'levels' (temp int)
+0:219 textureQueryLevels (global int)
+0:219 'sampCubeAs' (uniform samplerCubeArrayShadow)
+0:221 'levels' (temp int)
+0:222 'levels' (temp int)
+0:? Linker Objects
+0:? 'v4' (layout(location=3 ) temp 4-component vector of float)
+0:? 'uv4' (layout(location=4 ) uniform 4-component vector of float)
+0:? 'b1' (layout(location=2 ) in block{in 4-component vector of float v})
+0:? 'b2' (layout(location=2 ) out block{out 4-component vector of float v})
+0:? 'anon@0' (out block{out 17-element array of float ClipDistance gl_ClipDistance, })
+0:? 'cs' (layout(location=10 ) smooth out 2-element array of structure{global 7-element array of 3X2 matrix of float m, global float f})
+0:? 'cf' (layout(location=54 ) smooth out float)
+0:? 'cg' (layout(location=53 ) smooth out float)
+0:? 'alias1' (layout(location=10 ) in 4-component vector of float)
+0:? 'alias2' (layout(location=10 ) in 4-component vector of float)
+0:? 'v6e' (layout(location=0 ) in 4-component vector of float)
+0:? 'ininst2e' (in block{layout(location=25 ) in float f2})
+0:? 'in4e' (in block{layout(location=50 ) in float f1, layout(location=51 ) in float f2})
+0:? 'inst4e' (layout(column_major std140 align=16 ) uniform block{layout(column_major std140 offset=0 align=16 ) uniform int a})
+0:? 'inst9e' (layout(column_major shared align=32 ) uniform block{layout(column_major shared offset=12 align=4 ) uniform float f, layout(column_major shared offset=20 ) uniform float g})
+0:? 'spinste' (layout(column_major std140 ) uniform block{layout(column_major std140 offset=0 ) uniform 4-component vector of float a, layout(column_major std140 offset=32 ) uniform 3-component vector of float b})
+0:? 'aconste' (global 4-element array of int)
+0:? 'bconste' (global 64-element array of int)
+0:? 'bbinst2' (out block{layout(xfb_buffer=0 xfb_offset=64 ) out 4-component vector of float bbv})
+0:? 'bge' (layout(xfb_buffer=2 xfb_offset=48 xfb_stride=80 ) smooth out 4-component vector of float)
+0:? 'bhe' (layout(xfb_buffer=3 xfb_offset=32 xfb_stride=64 ) smooth out 4-component vector of float)
+0:? 'bbinst4e' (layout(xfb_stride=80 ) out block{layout(xfb_buffer=2 xfb_offset=16 ) out 4-component vector of float bbv1, layout(xfb_buffer=2 xfb_offset=32 ) out 4-component vector of float bbv2})
+0:? 'bbinst5e' (out block{layout(xfb_buffer=3 xfb_offset=0 ) out 4-component vector of float bbv1, layout(xfb_buffer=3 xfb_offset=48 xfb_stride=64 ) out 4-component vector of float bbv2})
+0:? 'inst4' (layout(column_major std140 align=16 ) uniform block{layout(column_major std140 offset=0 align=16 ) uniform int a})
+0:? 'inst9' (layout(column_major std430 align=32 ) uniform block{layout(column_major std430 offset=12 align=4 ) uniform float f, layout(column_major std430 offset=20 align=32 ) uniform float g})
+0:? 'spinst' (layout(column_major std140 ) uniform block{layout(column_major std140 offset=0 ) uniform 4-component vector of float a, layout(column_major std140 offset=32 ) uniform 3-component vector of float b})
+0:? 'aconst' (global 4-element array of int)
+0:? 'bconst' (global 64-element array of int)
+0:? 'start2' (const int)
+0:? 5 (const int)
+0:? 'v6' (layout(location=19 ) in 4-component vector of float)
+0:? 'ininst2' (in block{layout(location=28 component=0 ) in bool b1, layout(location=29 component=0 ) in float f1, layout(location=25 ) in float f2})
+0:? 'in4' (in block{layout(location=50 ) in float f1, layout(location=51 ) in float f2})
+0:? 'bbinst2g' (out block{layout(xfb_buffer=3 xfb_offset=64 ) out 4-component vector of float bbv})
+0:? 'bg' (layout(xfb_buffer=1 xfb_offset=48 xfb_stride=80 ) smooth out 4-component vector of float)
+0:? 'bh' (layout(xfb_buffer=1 xfb_offset=32 xfb_stride=80 ) smooth out 4-component vector of float)
+0:? 'bbinst4' (layout(xfb_stride=80 ) out block{layout(xfb_buffer=1 xfb_offset=16 ) out 4-component vector of float bbv1})
+0:? 'bbinst5' (out block{layout(xfb_buffer=1 xfb_offset=0 ) out 4-component vector of float bbv1, layout(xfb_buffer=1 xfb_offset=64 xfb_stride=80 ) out 4-component vector of float bbv2})
+0:? 'sharedv' (shared 4-component vector of float)
+0:? 'v' (buffer 4-component vector of float)
+0:? 's2dms' (uniform sampler2DMS)
+0:? 'us2dmsa' (uniform usampler2DMSArray)
+0:? 'ii2dms' (layout(rgba32i ) uniform iimage2DMS)
+0:? 'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)
+0:? 'samp1D' (uniform sampler1D)
+0:? 'usamp2D' (uniform usampler2D)
+0:? 'isamp3D' (uniform isampler3D)
+0:? 'isampCube' (uniform isamplerCube)
+0:? 'isamp1DA' (uniform isampler1DArray)
+0:? 'samp2DA' (uniform sampler2DArray)
+0:? 'usampCubeA' (uniform usamplerCubeArray)
+0:? 'samp1Ds' (uniform sampler1DShadow)
+0:? 'samp2Ds' (uniform sampler2DShadow)
+0:? 'sampCubes' (uniform samplerCubeShadow)
+0:? 'samp1DAs' (uniform sampler1DArrayShadow)
+0:? 'samp2DAs' (uniform sampler2DArrayShadow)
+0:? 'sampCubeAs' (uniform samplerCubeArrayShadow)
+0:? 'sampBuf' (uniform samplerBuffer)
+0:? 'sampRect' (uniform sampler2DRect)
+0:? 'gl_VertexID' (gl_VertexId int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/430AofA.frag.out b/chromium/third_party/glslang/src/Test/baseResults/430AofA.frag.out
new file mode 100644
index 00000000000..68285f7378b
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/430AofA.frag.out
@@ -0,0 +1,803 @@
+430AofA.frag
+Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:6: '[]' : only outermost dimension of an array of arrays can be implicitly sized
+ERROR: 0:14: 'constructor' : constructing non-array constituent from array argument
+ERROR: 0:15: 'constructior' : array constructor argument not correct type to construct array element
+ERROR: 0:28: '[' : array index out of range '4'
+ERROR: 0:56: 'constructor' : cannot convert parameter 2 from 'const 3-element array of 4-component vector of float' to 'temp 2-element array of 4-component vector of float'
+ERROR: 0:60: 'constructor' : cannot convert parameter 2 from 'const 2-element array of 4-component vector of float' to 'temp 3-element array of 4-component vector of float'
+ERROR: 0:64: '=' : cannot convert from 'const 3-element array of 2-element array of 4-component vector of float' to 'temp 4-element array of 2-element array of 4-component vector of float'
+ERROR: 0:70: 'assign' : cannot convert from 'global 4-element array of 7-element array of float' to 'global 5-element array of 7-element array of float'
+ERROR: 0:71: 'assign' : cannot convert from 'global 4-element array of 7-element array of float' to 'global implicitly-sized array of 7-element array of float'
+ERROR: 0:73: 'foo' : no matching overloaded function found
+ERROR: 0:78: '==' : wrong operand types: no operation '==' exists that takes a left-hand operand of type 'global 4-element array of 7-element array of float' and a right operand of type 'global 5-element array of 7-element array of float' (or there is no acceptable conversion)
+ERROR: 0:84: '[' : array index out of range '5'
+ERROR: 0:91: 'length' : array must be declared with a size before using this method
+ERROR: 0:93: 'length' : array must be declared with a size before using this method
+ERROR: 0:98: 'length' : does not operate on this type: temp float
+ERROR: 0:98: '' : function call, method, or subroutine call expected
+ERROR: 0:98: '' : no matching overloaded function found
+ERROR: 0:101: 'resize2' : redeclaration of array with a different array dimensions or sizes
+ERROR: 0:104: 'resize3' : redeclaration of array with a different array dimensions or sizes
+ERROR: 0:107: 'resize4' : redeclaration of array with a different element type
+ERROR: 20 compilation errors. No code generated.
+
+
+Shader version: 430
+ERROR: node is still EOpNull!
+0:10 Function Definition: foo(f1[5][7]; (global 4-element array of 7-element array of float)
+0:10 Function Parameters:
+0:10 'a' (in 5-element array of 7-element array of float)
+0:? Sequence
+0:13 move second child to first child (temp 7-element array of float)
+0:13 'r' (temp 7-element array of float)
+0:13 direct index (temp 7-element array of float)
+0:13 'a' (in 5-element array of 7-element array of float)
+0:13 Constant:
+0:13 2 (const int)
+0:14 Constant:
+0:14 0.000000
+0:15 Constant:
+0:15 0.000000
+0:16 Branch: Return with expression
+0:16 Construct float (temp 4-element array of 7-element array of float)
+0:16 direct index (temp 7-element array of float)
+0:16 'a' (in 5-element array of 7-element array of float)
+0:16 Constant:
+0:16 0 (const int)
+0:16 direct index (temp 7-element array of float)
+0:16 'a' (in 5-element array of 7-element array of float)
+0:16 Constant:
+0:16 1 (const int)
+0:16 'r' (temp 7-element array of float)
+0:16 direct index (temp 7-element array of float)
+0:16 'a' (in 5-element array of 7-element array of float)
+0:16 Constant:
+0:16 3 (const int)
+0:17 Branch: Return with expression
+0:17 Construct float (temp 4-element array of 7-element array of float)
+0:17 direct index (temp 7-element array of float)
+0:17 'a' (in 5-element array of 7-element array of float)
+0:17 Constant:
+0:17 0 (const int)
+0:17 direct index (temp 7-element array of float)
+0:17 'a' (in 5-element array of 7-element array of float)
+0:17 Constant:
+0:17 1 (const int)
+0:17 'r' (temp 7-element array of float)
+0:17 direct index (temp 7-element array of float)
+0:17 'a' (in 5-element array of 7-element array of float)
+0:17 Constant:
+0:17 3 (const int)
+0:18 Branch: Return with expression
+0:18 Construct float (temp 4-element array of 7-element array of float)
+0:18 direct index (temp 7-element array of float)
+0:18 'a' (in 5-element array of 7-element array of float)
+0:18 Constant:
+0:18 0 (const int)
+0:18 direct index (temp 7-element array of float)
+0:18 'a' (in 5-element array of 7-element array of float)
+0:18 Constant:
+0:18 1 (const int)
+0:18 direct index (temp 7-element array of float)
+0:18 'a' (in 5-element array of 7-element array of float)
+0:18 Constant:
+0:18 2 (const int)
+0:18 direct index (temp 7-element array of float)
+0:18 'a' (in 5-element array of 7-element array of float)
+0:18 Constant:
+0:18 3 (const int)
+0:21 Function Definition: bar(f1[5][7]; (global void)
+0:21 Function Parameters:
+0:21 '' (in 5-element array of 7-element array of float)
+0:23 Function Definition: main( (global void)
+0:23 Function Parameters:
+0:? Sequence
+0:? Sequence
+0:28 move second child to first child (temp float)
+0:28 direct index (temp float)
+0:28 direct index (temp 2-element array of float)
+0:28 direct index (temp 4-element array of 2-element array of float)
+0:28 'gu' (temp 3-element array of 4-element array of 2-element array of float)
+0:28 Constant:
+0:28 2 (const int)
+0:28 Constant:
+0:28 4 (const int)
+0:28 Constant:
+0:28 1 (const int)
+0:28 Constant:
+0:28 4.000000
+0:30 Sequence
+0:30 move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)
+0:30 'ca4' (temp 3-element array of 2-element array of 4-component vector of float)
+0:32 Constant:
+0:32 0.000000
+0:32 0.000000
+0:32 0.000000
+0:32 0.000000
+0:32 1.000000
+0:32 1.000000
+0:32 1.000000
+0:32 1.000000
+0:32 0.000000
+0:32 0.000000
+0:32 0.000000
+0:32 0.000000
+0:32 1.000000
+0:32 1.000000
+0:32 1.000000
+0:32 1.000000
+0:32 0.000000
+0:32 0.000000
+0:32 0.000000
+0:32 0.000000
+0:32 1.000000
+0:32 1.000000
+0:32 1.000000
+0:32 1.000000
+0:33 Sequence
+0:33 move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)
+0:33 'caim' (temp 3-element array of 2-element array of 4-component vector of float)
+0:35 Constant:
+0:35 4.000000
+0:35 4.000000
+0:35 4.000000
+0:35 4.000000
+0:35 2.000000
+0:35 2.000000
+0:35 2.000000
+0:35 2.000000
+0:35 4.000000
+0:35 4.000000
+0:35 4.000000
+0:35 4.000000
+0:35 2.000000
+0:35 2.000000
+0:35 2.000000
+0:35 2.000000
+0:35 4.000000
+0:35 4.000000
+0:35 4.000000
+0:35 4.000000
+0:35 2.000000
+0:35 2.000000
+0:35 2.000000
+0:35 2.000000
+0:36 Sequence
+0:36 move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)
+0:36 'caim2' (temp 3-element array of 2-element array of 4-component vector of float)
+0:38 Constant:
+0:38 4.000000
+0:38 4.000000
+0:38 4.000000
+0:38 4.000000
+0:38 2.000000
+0:38 2.000000
+0:38 2.000000
+0:38 2.000000
+0:38 4.000000
+0:38 4.000000
+0:38 4.000000
+0:38 4.000000
+0:38 2.000000
+0:38 2.000000
+0:38 2.000000
+0:38 2.000000
+0:38 4.000000
+0:38 4.000000
+0:38 4.000000
+0:38 4.000000
+0:38 2.000000
+0:38 2.000000
+0:38 2.000000
+0:38 2.000000
+0:39 Sequence
+0:39 move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)
+0:39 'caim3' (temp 3-element array of 2-element array of 4-component vector of float)
+0:41 Constant:
+0:41 4.000000
+0:41 4.000000
+0:41 4.000000
+0:41 4.000000
+0:41 2.000000
+0:41 2.000000
+0:41 2.000000
+0:41 2.000000
+0:41 4.000000
+0:41 4.000000
+0:41 4.000000
+0:41 4.000000
+0:41 2.000000
+0:41 2.000000
+0:41 2.000000
+0:41 2.000000
+0:41 4.000000
+0:41 4.000000
+0:41 4.000000
+0:41 4.000000
+0:41 2.000000
+0:41 2.000000
+0:41 2.000000
+0:41 2.000000
+0:43 Sequence
+0:43 move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)
+0:43 'a4' (temp 3-element array of 2-element array of 4-component vector of float)
+0:43 Constant:
+0:43 0.000000
+0:43 0.000000
+0:43 0.000000
+0:43 0.000000
+0:43 1.000000
+0:43 1.000000
+0:43 1.000000
+0:43 1.000000
+0:43 0.000000
+0:43 0.000000
+0:43 0.000000
+0:43 0.000000
+0:43 1.000000
+0:43 1.000000
+0:43 1.000000
+0:43 1.000000
+0:43 0.000000
+0:43 0.000000
+0:43 0.000000
+0:43 0.000000
+0:43 1.000000
+0:43 1.000000
+0:43 1.000000
+0:43 1.000000
+0:46 Sequence
+0:46 move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)
+0:46 'aim' (temp 3-element array of 2-element array of 4-component vector of float)
+0:46 Constant:
+0:46 4.000000
+0:46 4.000000
+0:46 4.000000
+0:46 4.000000
+0:46 2.000000
+0:46 2.000000
+0:46 2.000000
+0:46 2.000000
+0:46 4.000000
+0:46 4.000000
+0:46 4.000000
+0:46 4.000000
+0:46 2.000000
+0:46 2.000000
+0:46 2.000000
+0:46 2.000000
+0:46 4.000000
+0:46 4.000000
+0:46 4.000000
+0:46 4.000000
+0:46 2.000000
+0:46 2.000000
+0:46 2.000000
+0:46 2.000000
+0:49 Sequence
+0:49 move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)
+0:49 'aim2' (temp 3-element array of 2-element array of 4-component vector of float)
+0:49 Constant:
+0:49 4.000000
+0:49 4.000000
+0:49 4.000000
+0:49 4.000000
+0:49 2.000000
+0:49 2.000000
+0:49 2.000000
+0:49 2.000000
+0:49 4.000000
+0:49 4.000000
+0:49 4.000000
+0:49 4.000000
+0:49 2.000000
+0:49 2.000000
+0:49 2.000000
+0:49 2.000000
+0:49 4.000000
+0:49 4.000000
+0:49 4.000000
+0:49 4.000000
+0:49 2.000000
+0:49 2.000000
+0:49 2.000000
+0:49 2.000000
+0:52 Sequence
+0:52 move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)
+0:52 'aim3' (temp 3-element array of 2-element array of 4-component vector of float)
+0:52 Constant:
+0:52 4.000000
+0:52 4.000000
+0:52 4.000000
+0:52 4.000000
+0:52 2.000000
+0:52 2.000000
+0:52 2.000000
+0:52 2.000000
+0:52 4.000000
+0:52 4.000000
+0:52 4.000000
+0:52 4.000000
+0:52 2.000000
+0:52 2.000000
+0:52 2.000000
+0:52 2.000000
+0:52 4.000000
+0:52 4.000000
+0:52 4.000000
+0:52 4.000000
+0:52 2.000000
+0:52 2.000000
+0:52 2.000000
+0:52 2.000000
+0:69 move second child to first child (temp 4-element array of 7-element array of float)
+0:69 'g4' (global 4-element array of 7-element array of float)
+0:69 Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of float)
+0:69 'g5' (global 5-element array of 7-element array of float)
+0:70 'g5' (global 5-element array of 7-element array of float)
+0:71 'gu' (global implicitly-sized array of 7-element array of float)
+0:73 Constant:
+0:73 0.000000
+0:74 Function Call: bar(f1[5][7]; (global void)
+0:74 'g5' (global 5-element array of 7-element array of float)
+0:76 Test condition and select (temp void)
+0:76 Condition
+0:76 Compare Equal (temp bool)
+0:76 Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of float)
+0:76 'g5' (global 5-element array of 7-element array of float)
+0:76 'g4' (global 4-element array of 7-element array of float)
+0:76 true case is null
+0:78 Test condition and select (temp void)
+0:78 Condition
+0:78 Constant:
+0:78 false (const bool)
+0:78 true case is null
+0:82 move second child to first child (temp float)
+0:82 direct index (temp float)
+0:82 direct index (temp 7-element array of float)
+0:82 'u' (temp 5-element array of 7-element array of float)
+0:82 Constant:
+0:82 2 (const int)
+0:82 Constant:
+0:82 2 (const int)
+0:82 Constant:
+0:82 3.000000
+0:84 move second child to first child (temp float)
+0:84 direct index (temp float)
+0:84 direct index (temp 7-element array of float)
+0:84 'u' (temp 5-element array of 7-element array of float)
+0:84 Constant:
+0:84 5 (const int)
+0:84 Constant:
+0:84 2 (const int)
+0:84 Constant:
+0:84 5.000000
+0:85 Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of float)
+0:85 'u' (temp 5-element array of 7-element array of float)
+0:88 Function Definition: foo3( (global void)
+0:88 Function Parameters:
+0:? Sequence
+0:91 Constant:
+0:91 1 (const int)
+0:92 move second child to first child (temp float)
+0:92 direct index (temp float)
+0:92 direct index (temp 7-element array of float)
+0:92 direct index (temp 5-element array of 7-element array of float)
+0:92 'resize1' (temp 3-element array of 5-element array of 7-element array of float)
+0:92 Constant:
+0:92 1 (const int)
+0:92 Constant:
+0:92 4 (const int)
+0:92 Constant:
+0:92 5 (const int)
+0:92 Constant:
+0:92 2.000000
+0:93 Constant:
+0:93 1 (const int)
+0:95 Constant:
+0:95 3 (const int)
+0:96 Constant:
+0:96 5 (const int)
+0:97 Constant:
+0:97 7 (const int)
+0:98 Constant:
+0:98 0.000000
+0:? Linker Objects
+0:? 'many' (global 1-element array of 2-element array of 3-element array of 4-element array of 5-element array of 6-element array of float)
+0:? 'gu' (global implicitly-sized array of 7-element array of float)
+0:? 'gimp' (global implicitly-sized array of implicitly-sized array of float)
+0:? 'g4' (global 4-element array of 7-element array of float)
+0:? 'g5' (global 5-element array of 7-element array of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 430
+ERROR: node is still EOpNull!
+0:10 Function Definition: foo(f1[5][7]; (global 4-element array of 7-element array of float)
+0:10 Function Parameters:
+0:10 'a' (in 5-element array of 7-element array of float)
+0:? Sequence
+0:13 move second child to first child (temp 7-element array of float)
+0:13 'r' (temp 7-element array of float)
+0:13 direct index (temp 7-element array of float)
+0:13 'a' (in 5-element array of 7-element array of float)
+0:13 Constant:
+0:13 2 (const int)
+0:14 Constant:
+0:14 0.000000
+0:15 Constant:
+0:15 0.000000
+0:16 Branch: Return with expression
+0:16 Construct float (temp 4-element array of 7-element array of float)
+0:16 direct index (temp 7-element array of float)
+0:16 'a' (in 5-element array of 7-element array of float)
+0:16 Constant:
+0:16 0 (const int)
+0:16 direct index (temp 7-element array of float)
+0:16 'a' (in 5-element array of 7-element array of float)
+0:16 Constant:
+0:16 1 (const int)
+0:16 'r' (temp 7-element array of float)
+0:16 direct index (temp 7-element array of float)
+0:16 'a' (in 5-element array of 7-element array of float)
+0:16 Constant:
+0:16 3 (const int)
+0:17 Branch: Return with expression
+0:17 Construct float (temp 4-element array of 7-element array of float)
+0:17 direct index (temp 7-element array of float)
+0:17 'a' (in 5-element array of 7-element array of float)
+0:17 Constant:
+0:17 0 (const int)
+0:17 direct index (temp 7-element array of float)
+0:17 'a' (in 5-element array of 7-element array of float)
+0:17 Constant:
+0:17 1 (const int)
+0:17 'r' (temp 7-element array of float)
+0:17 direct index (temp 7-element array of float)
+0:17 'a' (in 5-element array of 7-element array of float)
+0:17 Constant:
+0:17 3 (const int)
+0:18 Branch: Return with expression
+0:18 Construct float (temp 4-element array of 7-element array of float)
+0:18 direct index (temp 7-element array of float)
+0:18 'a' (in 5-element array of 7-element array of float)
+0:18 Constant:
+0:18 0 (const int)
+0:18 direct index (temp 7-element array of float)
+0:18 'a' (in 5-element array of 7-element array of float)
+0:18 Constant:
+0:18 1 (const int)
+0:18 direct index (temp 7-element array of float)
+0:18 'a' (in 5-element array of 7-element array of float)
+0:18 Constant:
+0:18 2 (const int)
+0:18 direct index (temp 7-element array of float)
+0:18 'a' (in 5-element array of 7-element array of float)
+0:18 Constant:
+0:18 3 (const int)
+0:21 Function Definition: bar(f1[5][7]; (global void)
+0:21 Function Parameters:
+0:21 '' (in 5-element array of 7-element array of float)
+0:23 Function Definition: main( (global void)
+0:23 Function Parameters:
+0:? Sequence
+0:? Sequence
+0:28 move second child to first child (temp float)
+0:28 direct index (temp float)
+0:28 direct index (temp 2-element array of float)
+0:28 direct index (temp 4-element array of 2-element array of float)
+0:28 'gu' (temp 3-element array of 4-element array of 2-element array of float)
+0:28 Constant:
+0:28 2 (const int)
+0:28 Constant:
+0:28 4 (const int)
+0:28 Constant:
+0:28 1 (const int)
+0:28 Constant:
+0:28 4.000000
+0:30 Sequence
+0:30 move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)
+0:30 'ca4' (temp 3-element array of 2-element array of 4-component vector of float)
+0:32 Constant:
+0:32 0.000000
+0:32 0.000000
+0:32 0.000000
+0:32 0.000000
+0:32 1.000000
+0:32 1.000000
+0:32 1.000000
+0:32 1.000000
+0:32 0.000000
+0:32 0.000000
+0:32 0.000000
+0:32 0.000000
+0:32 1.000000
+0:32 1.000000
+0:32 1.000000
+0:32 1.000000
+0:32 0.000000
+0:32 0.000000
+0:32 0.000000
+0:32 0.000000
+0:32 1.000000
+0:32 1.000000
+0:32 1.000000
+0:32 1.000000
+0:33 Sequence
+0:33 move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)
+0:33 'caim' (temp 3-element array of 2-element array of 4-component vector of float)
+0:35 Constant:
+0:35 4.000000
+0:35 4.000000
+0:35 4.000000
+0:35 4.000000
+0:35 2.000000
+0:35 2.000000
+0:35 2.000000
+0:35 2.000000
+0:35 4.000000
+0:35 4.000000
+0:35 4.000000
+0:35 4.000000
+0:35 2.000000
+0:35 2.000000
+0:35 2.000000
+0:35 2.000000
+0:35 4.000000
+0:35 4.000000
+0:35 4.000000
+0:35 4.000000
+0:35 2.000000
+0:35 2.000000
+0:35 2.000000
+0:35 2.000000
+0:36 Sequence
+0:36 move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)
+0:36 'caim2' (temp 3-element array of 2-element array of 4-component vector of float)
+0:38 Constant:
+0:38 4.000000
+0:38 4.000000
+0:38 4.000000
+0:38 4.000000
+0:38 2.000000
+0:38 2.000000
+0:38 2.000000
+0:38 2.000000
+0:38 4.000000
+0:38 4.000000
+0:38 4.000000
+0:38 4.000000
+0:38 2.000000
+0:38 2.000000
+0:38 2.000000
+0:38 2.000000
+0:38 4.000000
+0:38 4.000000
+0:38 4.000000
+0:38 4.000000
+0:38 2.000000
+0:38 2.000000
+0:38 2.000000
+0:38 2.000000
+0:39 Sequence
+0:39 move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)
+0:39 'caim3' (temp 3-element array of 2-element array of 4-component vector of float)
+0:41 Constant:
+0:41 4.000000
+0:41 4.000000
+0:41 4.000000
+0:41 4.000000
+0:41 2.000000
+0:41 2.000000
+0:41 2.000000
+0:41 2.000000
+0:41 4.000000
+0:41 4.000000
+0:41 4.000000
+0:41 4.000000
+0:41 2.000000
+0:41 2.000000
+0:41 2.000000
+0:41 2.000000
+0:41 4.000000
+0:41 4.000000
+0:41 4.000000
+0:41 4.000000
+0:41 2.000000
+0:41 2.000000
+0:41 2.000000
+0:41 2.000000
+0:43 Sequence
+0:43 move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)
+0:43 'a4' (temp 3-element array of 2-element array of 4-component vector of float)
+0:43 Constant:
+0:43 0.000000
+0:43 0.000000
+0:43 0.000000
+0:43 0.000000
+0:43 1.000000
+0:43 1.000000
+0:43 1.000000
+0:43 1.000000
+0:43 0.000000
+0:43 0.000000
+0:43 0.000000
+0:43 0.000000
+0:43 1.000000
+0:43 1.000000
+0:43 1.000000
+0:43 1.000000
+0:43 0.000000
+0:43 0.000000
+0:43 0.000000
+0:43 0.000000
+0:43 1.000000
+0:43 1.000000
+0:43 1.000000
+0:43 1.000000
+0:46 Sequence
+0:46 move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)
+0:46 'aim' (temp 3-element array of 2-element array of 4-component vector of float)
+0:46 Constant:
+0:46 4.000000
+0:46 4.000000
+0:46 4.000000
+0:46 4.000000
+0:46 2.000000
+0:46 2.000000
+0:46 2.000000
+0:46 2.000000
+0:46 4.000000
+0:46 4.000000
+0:46 4.000000
+0:46 4.000000
+0:46 2.000000
+0:46 2.000000
+0:46 2.000000
+0:46 2.000000
+0:46 4.000000
+0:46 4.000000
+0:46 4.000000
+0:46 4.000000
+0:46 2.000000
+0:46 2.000000
+0:46 2.000000
+0:46 2.000000
+0:49 Sequence
+0:49 move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)
+0:49 'aim2' (temp 3-element array of 2-element array of 4-component vector of float)
+0:49 Constant:
+0:49 4.000000
+0:49 4.000000
+0:49 4.000000
+0:49 4.000000
+0:49 2.000000
+0:49 2.000000
+0:49 2.000000
+0:49 2.000000
+0:49 4.000000
+0:49 4.000000
+0:49 4.000000
+0:49 4.000000
+0:49 2.000000
+0:49 2.000000
+0:49 2.000000
+0:49 2.000000
+0:49 4.000000
+0:49 4.000000
+0:49 4.000000
+0:49 4.000000
+0:49 2.000000
+0:49 2.000000
+0:49 2.000000
+0:49 2.000000
+0:52 Sequence
+0:52 move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)
+0:52 'aim3' (temp 3-element array of 2-element array of 4-component vector of float)
+0:52 Constant:
+0:52 4.000000
+0:52 4.000000
+0:52 4.000000
+0:52 4.000000
+0:52 2.000000
+0:52 2.000000
+0:52 2.000000
+0:52 2.000000
+0:52 4.000000
+0:52 4.000000
+0:52 4.000000
+0:52 4.000000
+0:52 2.000000
+0:52 2.000000
+0:52 2.000000
+0:52 2.000000
+0:52 4.000000
+0:52 4.000000
+0:52 4.000000
+0:52 4.000000
+0:52 2.000000
+0:52 2.000000
+0:52 2.000000
+0:52 2.000000
+0:69 move second child to first child (temp 4-element array of 7-element array of float)
+0:69 'g4' (global 4-element array of 7-element array of float)
+0:69 Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of float)
+0:69 'g5' (global 5-element array of 7-element array of float)
+0:70 'g5' (global 5-element array of 7-element array of float)
+0:71 'gu' (global 1-element array of 7-element array of float)
+0:73 Constant:
+0:73 0.000000
+0:74 Function Call: bar(f1[5][7]; (global void)
+0:74 'g5' (global 5-element array of 7-element array of float)
+0:76 Test condition and select (temp void)
+0:76 Condition
+0:76 Compare Equal (temp bool)
+0:76 Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of float)
+0:76 'g5' (global 5-element array of 7-element array of float)
+0:76 'g4' (global 4-element array of 7-element array of float)
+0:76 true case is null
+0:78 Test condition and select (temp void)
+0:78 Condition
+0:78 Constant:
+0:78 false (const bool)
+0:78 true case is null
+0:82 move second child to first child (temp float)
+0:82 direct index (temp float)
+0:82 direct index (temp 7-element array of float)
+0:82 'u' (temp 5-element array of 7-element array of float)
+0:82 Constant:
+0:82 2 (const int)
+0:82 Constant:
+0:82 2 (const int)
+0:82 Constant:
+0:82 3.000000
+0:84 move second child to first child (temp float)
+0:84 direct index (temp float)
+0:84 direct index (temp 7-element array of float)
+0:84 'u' (temp 5-element array of 7-element array of float)
+0:84 Constant:
+0:84 5 (const int)
+0:84 Constant:
+0:84 2 (const int)
+0:84 Constant:
+0:84 5.000000
+0:85 Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of float)
+0:85 'u' (temp 5-element array of 7-element array of float)
+0:88 Function Definition: foo3( (global void)
+0:88 Function Parameters:
+0:? Sequence
+0:91 Constant:
+0:91 1 (const int)
+0:92 move second child to first child (temp float)
+0:92 direct index (temp float)
+0:92 direct index (temp 7-element array of float)
+0:92 direct index (temp 5-element array of 7-element array of float)
+0:92 'resize1' (temp 3-element array of 5-element array of 7-element array of float)
+0:92 Constant:
+0:92 1 (const int)
+0:92 Constant:
+0:92 4 (const int)
+0:92 Constant:
+0:92 5 (const int)
+0:92 Constant:
+0:92 2.000000
+0:93 Constant:
+0:93 1 (const int)
+0:95 Constant:
+0:95 3 (const int)
+0:96 Constant:
+0:96 5 (const int)
+0:97 Constant:
+0:97 7 (const int)
+0:98 Constant:
+0:98 0.000000
+0:? Linker Objects
+0:? 'many' (global 1-element array of 2-element array of 3-element array of 4-element array of 5-element array of 6-element array of float)
+0:? 'gu' (global 1-element array of 7-element array of float)
+0:? 'gimp' (global 1-element array of implicitly-sized array of float)
+0:? 'g4' (global 4-element array of 7-element array of float)
+0:? 'g5' (global 5-element array of 7-element array of float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/430scope.vert.out b/chromium/third_party/glslang/src/Test/baseResults/430scope.vert.out
new file mode 100644
index 00000000000..74601392af0
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/430scope.vert.out
@@ -0,0 +1,243 @@
+430scope.vert
+Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:5: 'a' : redefinition
+ERROR: 0:17: 'b' : function name is redeclaration of existing name
+ERROR: 0:20: 'c' : redefinition
+ERROR: 0:22: 'f' : redefinition
+ERROR: 0:43: 'sin' : can't use function syntax on variable
+ERROR: 0:57: 'z' : undeclared identifier
+ERROR: 0:57: 'z' : redefinition
+ERROR: 0:73: 'degrees' : can't use function syntax on variable
+ERROR: 8 compilation errors. No code generated.
+
+
+Shader version: 430
+ERROR: node is still EOpNull!
+0:3 Function Definition: f(i1;i1;i1; (global int)
+0:3 Function Parameters:
+0:3 'a' (in int)
+0:3 'b' (in int)
+0:3 'c' (in int)
+0:? Sequence
+0:8 Sequence
+0:8 Sequence
+0:8 move second child to first child (temp float)
+0:8 'a' (temp float)
+0:8 add (temp float)
+0:8 Convert int to float (temp float)
+0:8 'a' (in int)
+0:8 Constant:
+0:8 1.000000
+0:11 Branch: Return with expression
+0:11 'a' (in int)
+0:25 Function Definition: cos(f1; (global float)
+0:25 Function Parameters:
+0:25 'x' (in float)
+0:27 Sequence
+0:27 Branch: Return with expression
+0:27 Constant:
+0:27 1.000000
+0:29 Function Definition: radians(b1; (global bool)
+0:29 Function Parameters:
+0:29 'x' (in bool)
+0:31 Sequence
+0:31 Branch: Return with expression
+0:31 Constant:
+0:31 true (const bool)
+0:36 Function Definition: main( (global void)
+0:36 Function Parameters:
+0:? Sequence
+0:39 Function Call: g( (temp int)
+0:42 'sin' (temp float)
+0:43 Constant:
+0:43 0.000000
+0:44 Function Call: f(i1;i1;i1; (global int)
+0:44 Constant:
+0:44 1 (const int)
+0:44 Constant:
+0:44 2 (const int)
+0:44 Constant:
+0:44 3 (const int)
+0:47 move second child to first child (temp float)
+0:47 'f' (temp float)
+0:47 Constant:
+0:47 3.000000
+0:49 move second child to first child (temp 4-component vector of float)
+0:49 gl_Position: direct index for structure (invariant gl_Position 4-component vector of float Position)
+0:49 'anon@0' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:49 Constant:
+0:49 0 (const uint)
+0:49 Construct vec4 (temp 4-component vector of float)
+0:49 'f' (temp float)
+0:51 Sequence
+0:51 Sequence
+0:51 move second child to first child (temp int)
+0:51 'f' (temp int)
+0:51 Constant:
+0:51 0 (const int)
+0:51 Loop with condition tested first
+0:51 Loop Condition
+0:51 Compare Less Than (temp bool)
+0:51 'f' (temp int)
+0:51 Constant:
+0:51 10 (const int)
+0:51 Loop Body
+0:52 Pre-Increment (temp int)
+0:52 'f' (temp int)
+0:51 Loop Terminal Expression
+0:51 Pre-Increment (temp int)
+0:51 'f' (temp int)
+0:54 Sequence
+0:54 move second child to first child (temp int)
+0:54 'x' (temp int)
+0:54 Constant:
+0:54 1 (const int)
+0:56 Sequence
+0:56 Sequence
+0:56 move second child to first child (temp float)
+0:56 'x' (temp float)
+0:56 Constant:
+0:56 2.000000
+0:56 move second child to first child (temp float)
+0:56 'y' (temp float)
+0:56 'x' (temp float)
+0:60 Sequence
+0:60 Sequence
+0:60 move second child to first child (temp int)
+0:60 'x' (temp int)
+0:60 'x' (temp int)
+0:68 Sequence
+0:68 Sequence
+0:68 move second child to first child (temp structure{temp int x})
+0:68 'S' (temp structure{temp int x})
+0:68 Constant:
+0:68 0 (const int)
+0:69 x: direct index for structure (temp int)
+0:69 'S' (temp structure{temp int x})
+0:69 Constant:
+0:69 0 (const int)
+0:73 Constant:
+0:73 0.000000
+0:? Linker Objects
+0:? 'b' (global bool)
+0:? 'tan' (global float)
+0:? 'gl_VertexID' (gl_VertexId int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
+
+
+Linked vertex stage:
+
+
+Shader version: 430
+ERROR: node is still EOpNull!
+0:3 Function Definition: f(i1;i1;i1; (global int)
+0:3 Function Parameters:
+0:3 'a' (in int)
+0:3 'b' (in int)
+0:3 'c' (in int)
+0:? Sequence
+0:8 Sequence
+0:8 Sequence
+0:8 move second child to first child (temp float)
+0:8 'a' (temp float)
+0:8 add (temp float)
+0:8 Convert int to float (temp float)
+0:8 'a' (in int)
+0:8 Constant:
+0:8 1.000000
+0:11 Branch: Return with expression
+0:11 'a' (in int)
+0:25 Function Definition: cos(f1; (global float)
+0:25 Function Parameters:
+0:25 'x' (in float)
+0:27 Sequence
+0:27 Branch: Return with expression
+0:27 Constant:
+0:27 1.000000
+0:29 Function Definition: radians(b1; (global bool)
+0:29 Function Parameters:
+0:29 'x' (in bool)
+0:31 Sequence
+0:31 Branch: Return with expression
+0:31 Constant:
+0:31 true (const bool)
+0:36 Function Definition: main( (global void)
+0:36 Function Parameters:
+0:? Sequence
+0:39 Function Call: g( (temp int)
+0:42 'sin' (temp float)
+0:43 Constant:
+0:43 0.000000
+0:44 Function Call: f(i1;i1;i1; (global int)
+0:44 Constant:
+0:44 1 (const int)
+0:44 Constant:
+0:44 2 (const int)
+0:44 Constant:
+0:44 3 (const int)
+0:47 move second child to first child (temp float)
+0:47 'f' (temp float)
+0:47 Constant:
+0:47 3.000000
+0:49 move second child to first child (temp 4-component vector of float)
+0:49 gl_Position: direct index for structure (invariant gl_Position 4-component vector of float Position)
+0:49 'anon@0' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:49 Constant:
+0:49 0 (const uint)
+0:49 Construct vec4 (temp 4-component vector of float)
+0:49 'f' (temp float)
+0:51 Sequence
+0:51 Sequence
+0:51 move second child to first child (temp int)
+0:51 'f' (temp int)
+0:51 Constant:
+0:51 0 (const int)
+0:51 Loop with condition tested first
+0:51 Loop Condition
+0:51 Compare Less Than (temp bool)
+0:51 'f' (temp int)
+0:51 Constant:
+0:51 10 (const int)
+0:51 Loop Body
+0:52 Pre-Increment (temp int)
+0:52 'f' (temp int)
+0:51 Loop Terminal Expression
+0:51 Pre-Increment (temp int)
+0:51 'f' (temp int)
+0:54 Sequence
+0:54 move second child to first child (temp int)
+0:54 'x' (temp int)
+0:54 Constant:
+0:54 1 (const int)
+0:56 Sequence
+0:56 Sequence
+0:56 move second child to first child (temp float)
+0:56 'x' (temp float)
+0:56 Constant:
+0:56 2.000000
+0:56 move second child to first child (temp float)
+0:56 'y' (temp float)
+0:56 'x' (temp float)
+0:60 Sequence
+0:60 Sequence
+0:60 move second child to first child (temp int)
+0:60 'x' (temp int)
+0:60 'x' (temp int)
+0:68 Sequence
+0:68 Sequence
+0:68 move second child to first child (temp structure{temp int x})
+0:68 'S' (temp structure{temp int x})
+0:68 Constant:
+0:68 0 (const int)
+0:69 x: direct index for structure (temp int)
+0:69 'S' (temp structure{temp int x})
+0:69 Constant:
+0:69 0 (const int)
+0:73 Constant:
+0:73 0.000000
+0:? Linker Objects
+0:? 'b' (global bool)
+0:? 'tan' (global float)
+0:? 'gl_VertexID' (gl_VertexId int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/440.frag.out b/chromium/third_party/glslang/src/Test/baseResults/440.frag.out
new file mode 100644
index 00000000000..cafd85a5757
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/440.frag.out
@@ -0,0 +1,194 @@
+440.frag
+Warning, version 440 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:11: 'location' : overlapping use of location 4
+ERROR: 0:13: 'component' : type overflows the available 4 components
+ERROR: 0:22: 'location' : fragment outputs sharing the same location must be the same basic type 30
+ERROR: 0:24: 'qualifier' : cannot use auxiliary, memory, interpolation, or precision qualifier in a default qualifier declaration (declaration with no type)
+ERROR: 0:25: 'qualifier' : cannot use auxiliary, memory, interpolation, or precision qualifier in a default qualifier declaration (declaration with no type)
+ERROR: 0:26: 'qualifier' : cannot use auxiliary, memory, interpolation, or precision qualifier in a default qualifier declaration (declaration with no type)
+ERROR: 0:29: 'layout qualifier' : cannot use offset or align qualifiers in a default qualifier declaration (declaration with no type)
+ERROR: 0:30: 'layout qualifier' : cannot use offset or align qualifiers in a default qualifier declaration (declaration with no type)
+ERROR: 0:30: 'layout' : offset/align can only be used on a uniform or buffer
+ERROR: 0:31: 'layout qualifier' : cannot use offset or align qualifiers in a default qualifier declaration (declaration with no type)
+ERROR: 0:31: 'layout' : offset/align can only be used on a uniform or buffer
+ERROR: 0:33: 'layout qualifier' : cannot use offset or align qualifiers in a default qualifier declaration (declaration with no type)
+ERROR: 0:34: 'layout qualifier' : cannot use offset or align qualifiers in a default qualifier declaration (declaration with no type)
+ERROR: 0:34: 'layout' : offset/align can only be used on a uniform or buffer
+ERROR: 0:35: 'layout qualifier' : cannot use offset or align qualifiers in a default qualifier declaration (declaration with no type)
+ERROR: 0:35: 'layout' : offset/align can only be used on a uniform or buffer
+ERROR: 0:37: 'offset' : only applies to block members, not blocks
+ERROR: 0:38: 'layout' : offset/align can only be used on a uniform or buffer
+ERROR: 0:38: 'offset' : only applies to block members, not blocks
+ERROR: 0:39: 'output block' : not supported in this stage: fragment
+ERROR: 0:39: 'layout' : offset/align can only be used on a uniform or buffer
+ERROR: 0:39: 'offset' : only applies to block members, not blocks
+ERROR: 0:42: 'offset/align' : can only be used with std140 or std430 layout packing
+ERROR: 0:43: 'offset/align' : can only be used with std140 or std430 layout packing
+ERROR: 0:43: 'layout' : offset/align can only be used on a uniform or buffer
+ERROR: 0:44: 'output block' : not supported in this stage: fragment
+ERROR: 0:44: 'offset/align' : can only be used with std140 or std430 layout packing
+ERROR: 0:44: 'layout' : offset/align can only be used on a uniform or buffer
+ERROR: 0:46: 'offset' : cannot specify on a variable declaration
+ERROR: 0:47: 'layout' : offset/align can only be used on a uniform or buffer
+ERROR: 0:48: 'layout' : offset/align can only be used on a uniform or buffer
+ERROR: 0:50: 'align' : cannot specify on a variable declaration
+ERROR: 0:51: 'layout' : offset/align can only be used on a uniform or buffer
+ERROR: 0:52: 'layout' : offset/align can only be used on a uniform or buffer
+ERROR: 0:54: 'layout' : matrix or packing qualifiers can only be used on a uniform or buffer
+ERROR: 0:55: 'layout' : cannot specify packing on a variable declaration
+ERROR: 0:57: 'align' : must be a power of 2
+ERROR: 0:58: 'align' : can only be used with std140 or std430 layout packing
+ERROR: 0:63: 'align' : can only be used with std140 or std430 layout packing
+ERROR: 0:62: 'layout' : offset/align can only be used on a uniform or buffer
+ERROR: 0:63: 'layout' : offset/align can only be used on a uniform or buffer
+ERROR: 0:84: 'align' : must be a power of 2
+ERROR: 0:83: 'offset' : cannot lie in previous members
+ERROR: 0:85: 'offset' : must be a multiple of the member's alignment
+ERROR: 0:103: 'align' : must be a power of 2
+ERROR: 0:105: 'align' : must be a power of 2
+ERROR: 0:102: 'offset' : cannot lie in previous members
+ERROR: 0:104: 'offset' : must be a multiple of the member's alignment
+ERROR: 48 compilation errors. No code generated.
+
+
+Shader version: 440
+ERROR: node is still EOpNull!
+0:144 Function Definition: interp( (global void)
+0:144 Function Parameters:
+0:146 Sequence
+0:146 interpolateAtCentroid (global 2-component vector of float)
+0:146 vector swizzle (temp 2-component vector of float)
+0:146 direct index (smooth sample temp 3-component vector of float)
+0:146 'sampInArray' (smooth sample in 4-element array of 3-component vector of float)
+0:146 Constant:
+0:146 2 (const int)
+0:146 Sequence
+0:146 Constant:
+0:146 0 (const int)
+0:146 Constant:
+0:146 1 (const int)
+0:147 interpolateAtSample (global float)
+0:147 direct index (temp float)
+0:147 direct index (smooth sample temp 3-component vector of float)
+0:147 'sampInArray' (smooth sample in 4-element array of 3-component vector of float)
+0:147 Constant:
+0:147 2 (const int)
+0:147 Constant:
+0:147 0 (const int)
+0:147 Constant:
+0:147 2 (const int)
+0:150 Function Definition: layer( (global int)
+0:150 Function Parameters:
+0:152 Sequence
+0:152 Branch: Return with expression
+0:152 'gl_Layer' (flat in int Layer)
+0:? Linker Objects
+0:? 'a' (layout(location=4 component=2 ) smooth in 2-component vector of float)
+0:? 'b' (layout(location=4 component=1 ) smooth in float)
+0:? 'h' (layout(location=4 component=2 ) smooth in 2-component vector of float)
+0:? 'c' (layout(location=3 component=2 ) smooth in 3-component vector of float)
+0:? 'e' (layout(location=20 component=0 ) smooth in 6-element array of 3-component vector of float)
+0:? 'f' (layout(location=20 component=3 ) smooth in 6-element array of float)
+0:? 'be' (layout(location=30 component=3 ) out int)
+0:? 'bf' (layout(location=30 component=0 ) out 3-component vector of float)
+0:? 'inst1' (layout(column_major shared offset=12 ) uniform block{layout(column_major shared ) uniform int a})
+0:? 'inst2' (layout(offset=12 ) in block{in int a})
+0:? 'inst3' (layout(offset=12 ) out block{out int a})
+0:? 'inst4' (layout(column_major std140 align=16 ) uniform block{layout(column_major std140 offset=0 align=16 ) uniform int a})
+0:? 'inst8' (layout(column_major shared align=16 ) uniform block{layout(column_major shared ) uniform int a})
+0:? 'inst5' (layout(align=16 ) in block{in int a})
+0:? 'inst6' (layout(align=16 ) out block{out int a})
+0:? 'v1' (layout(offset=12 ) uniform 4-component vector of float)
+0:? 'v2' (layout(offset=12 ) smooth in 4-component vector of float)
+0:? 'v3' (layout(offset=12 ) out 4-component vector of float)
+0:? 'v4' (layout(align=16 ) uniform 4-component vector of float)
+0:? 'v5' (layout(align=16 ) smooth in 4-component vector of float)
+0:? 'v6' (layout(align=16 ) out 4-component vector of float)
+0:? 'v7' (layout(std140 ) uniform 4-component vector of float)
+0:? 'inst7' (layout(column_major shared ) uniform block{layout(column_major shared offset=12 align=4 ) uniform float f})
+0:? 'inst10' (in block{layout(offset=12 ) in float f, layout(align=4 ) in float g})
+0:? 'inst9' (layout(column_major std430 align=32 ) uniform block{layout(column_major std430 align=32 ) uniform float e, layout(column_major std430 offset=12 align=4 ) uniform float f, layout(column_major std430 offset=20 align=32 ) uniform float g, layout(column_major std430 align=32 ) uniform float h})
+0:? 'inst11' (layout(column_major std430 ) uniform block{layout(column_major std430 offset=12 align=4 ) uniform float f, layout(column_major std430 ) uniform float g})
+0:? 'specExampleErrors' (layout(column_major std140 ) uniform block{layout(column_major std140 offset=0 ) uniform 4-component vector of float a, layout(column_major std140 offset=32 ) uniform 3-component vector of float b, layout(column_major std140 offset=48 ) uniform 2-component vector of float c, layout(column_major std140 offset=56 ) uniform double g, layout(column_major std140 offset=72 ) uniform double h})
+0:? 'specExample' (layout(column_major std140 ) uniform block{layout(column_major std140 offset=0 ) uniform 4-component vector of float a, layout(column_major std140 offset=32 ) uniform 3-component vector of float b, layout(column_major std140 offset=48 ) uniform 2-component vector of float d, layout(column_major std140 offset=64 align=16 ) uniform float e, layout(column_major std140 offset=72 align=2 ) uniform double f, layout(column_major std140 offset=80 ) uniform float h, layout(column_major std140 offset=128 align=64 ) uniform 3-component vector of double i, layout(column_major std140 offset=168 align=8 ) uniform float j})
+0:? 'specExampleErrors430' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=0 ) buffer 4-component vector of float a, layout(column_major std430 offset=32 ) buffer 3-component vector of float b, layout(column_major std430 offset=48 ) buffer 2-component vector of float c, layout(column_major std430 offset=56 ) buffer double g, layout(column_major std430 offset=72 ) buffer double h, layout(column_major std430 offset=80 ) buffer double i})
+0:? 'specExample430' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=0 ) buffer 4-component vector of float a, layout(column_major std430 offset=32 ) buffer 3-component vector of float b, layout(column_major std430 offset=48 ) buffer 2-component vector of float d, layout(column_major std430 offset=64 align=16 ) buffer float e, layout(column_major std430 offset=72 align=2 ) buffer double f, layout(column_major std430 offset=80 ) buffer float h, layout(column_major std430 offset=128 align=64 ) buffer 3-component vector of double i, layout(column_major std430 offset=168 align=8 ) buffer float j})
+0:? 'specExample4300' (layout(column_major std430 align=128 ) buffer block{layout(column_major std430 offset=0 align=128 ) buffer 4-component vector of float a, layout(column_major std430 offset=128 align=128 ) buffer 3-component vector of float b, layout(column_major std430 offset=256 align=128 ) buffer 2-component vector of float d, layout(column_major std430 offset=384 align=128 ) buffer float e, layout(column_major std430 offset=512 align=128 ) buffer double f, layout(column_major std430 offset=640 align=128 ) buffer float h, layout(column_major std430 offset=768 align=128 ) buffer 3-component vector of double i})
+0:? 'specExample4301' (layout(column_major std430 align=128 ) buffer block{layout(column_major std430 offset=0 align=128 ) buffer 4-component vector of float a, layout(column_major std430 offset=128 align=128 ) buffer 3-component vector of float b, layout(column_major std430 offset=256 align=128 ) buffer 2-component vector of float d, layout(column_major std430 offset=512 align=128 ) buffer float e, layout(column_major std430 offset=520 align=8 ) buffer double f, layout(column_major std430 offset=640 align=128 ) buffer float h, layout(column_major std430 offset=768 align=128 ) buffer 3-component vector of double i})
+0:? 'aconst' (global 4-element array of int)
+0:? 'bconst' (global 64-element array of int)
+0:? 'sampInArray' (smooth sample in 4-element array of 3-component vector of float)
+
+
+Linked fragment stage:
+
+ERROR: Linking fragment stage: Missing entry point: Each stage requires one "void main()" entry point
+
+Shader version: 440
+ERROR: node is still EOpNull!
+0:144 Function Definition: interp( (global void)
+0:144 Function Parameters:
+0:146 Sequence
+0:146 interpolateAtCentroid (global 2-component vector of float)
+0:146 vector swizzle (temp 2-component vector of float)
+0:146 direct index (smooth sample temp 3-component vector of float)
+0:146 'sampInArray' (smooth sample in 4-element array of 3-component vector of float)
+0:146 Constant:
+0:146 2 (const int)
+0:146 Sequence
+0:146 Constant:
+0:146 0 (const int)
+0:146 Constant:
+0:146 1 (const int)
+0:147 interpolateAtSample (global float)
+0:147 direct index (temp float)
+0:147 direct index (smooth sample temp 3-component vector of float)
+0:147 'sampInArray' (smooth sample in 4-element array of 3-component vector of float)
+0:147 Constant:
+0:147 2 (const int)
+0:147 Constant:
+0:147 0 (const int)
+0:147 Constant:
+0:147 2 (const int)
+0:150 Function Definition: layer( (global int)
+0:150 Function Parameters:
+0:152 Sequence
+0:152 Branch: Return with expression
+0:152 'gl_Layer' (flat in int Layer)
+0:? Linker Objects
+0:? 'a' (layout(location=4 component=2 ) smooth in 2-component vector of float)
+0:? 'b' (layout(location=4 component=1 ) smooth in float)
+0:? 'h' (layout(location=4 component=2 ) smooth in 2-component vector of float)
+0:? 'c' (layout(location=3 component=2 ) smooth in 3-component vector of float)
+0:? 'e' (layout(location=20 component=0 ) smooth in 6-element array of 3-component vector of float)
+0:? 'f' (layout(location=20 component=3 ) smooth in 6-element array of float)
+0:? 'be' (layout(location=30 component=3 ) out int)
+0:? 'bf' (layout(location=30 component=0 ) out 3-component vector of float)
+0:? 'inst1' (layout(column_major shared offset=12 ) uniform block{layout(column_major shared ) uniform int a})
+0:? 'inst2' (layout(offset=12 ) in block{in int a})
+0:? 'inst3' (layout(offset=12 ) out block{out int a})
+0:? 'inst4' (layout(column_major std140 align=16 ) uniform block{layout(column_major std140 offset=0 align=16 ) uniform int a})
+0:? 'inst8' (layout(column_major shared align=16 ) uniform block{layout(column_major shared ) uniform int a})
+0:? 'inst5' (layout(align=16 ) in block{in int a})
+0:? 'inst6' (layout(align=16 ) out block{out int a})
+0:? 'v1' (layout(offset=12 ) uniform 4-component vector of float)
+0:? 'v2' (layout(offset=12 ) smooth in 4-component vector of float)
+0:? 'v3' (layout(offset=12 ) out 4-component vector of float)
+0:? 'v4' (layout(align=16 ) uniform 4-component vector of float)
+0:? 'v5' (layout(align=16 ) smooth in 4-component vector of float)
+0:? 'v6' (layout(align=16 ) out 4-component vector of float)
+0:? 'v7' (layout(std140 ) uniform 4-component vector of float)
+0:? 'inst7' (layout(column_major shared ) uniform block{layout(column_major shared offset=12 align=4 ) uniform float f})
+0:? 'inst10' (in block{layout(offset=12 ) in float f, layout(align=4 ) in float g})
+0:? 'inst9' (layout(column_major std430 align=32 ) uniform block{layout(column_major std430 align=32 ) uniform float e, layout(column_major std430 offset=12 align=4 ) uniform float f, layout(column_major std430 offset=20 align=32 ) uniform float g, layout(column_major std430 align=32 ) uniform float h})
+0:? 'inst11' (layout(column_major std430 ) uniform block{layout(column_major std430 offset=12 align=4 ) uniform float f, layout(column_major std430 ) uniform float g})
+0:? 'specExampleErrors' (layout(column_major std140 ) uniform block{layout(column_major std140 offset=0 ) uniform 4-component vector of float a, layout(column_major std140 offset=32 ) uniform 3-component vector of float b, layout(column_major std140 offset=48 ) uniform 2-component vector of float c, layout(column_major std140 offset=56 ) uniform double g, layout(column_major std140 offset=72 ) uniform double h})
+0:? 'specExample' (layout(column_major std140 ) uniform block{layout(column_major std140 offset=0 ) uniform 4-component vector of float a, layout(column_major std140 offset=32 ) uniform 3-component vector of float b, layout(column_major std140 offset=48 ) uniform 2-component vector of float d, layout(column_major std140 offset=64 align=16 ) uniform float e, layout(column_major std140 offset=72 align=2 ) uniform double f, layout(column_major std140 offset=80 ) uniform float h, layout(column_major std140 offset=128 align=64 ) uniform 3-component vector of double i, layout(column_major std140 offset=168 align=8 ) uniform float j})
+0:? 'specExampleErrors430' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=0 ) buffer 4-component vector of float a, layout(column_major std430 offset=32 ) buffer 3-component vector of float b, layout(column_major std430 offset=48 ) buffer 2-component vector of float c, layout(column_major std430 offset=56 ) buffer double g, layout(column_major std430 offset=72 ) buffer double h, layout(column_major std430 offset=80 ) buffer double i})
+0:? 'specExample430' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=0 ) buffer 4-component vector of float a, layout(column_major std430 offset=32 ) buffer 3-component vector of float b, layout(column_major std430 offset=48 ) buffer 2-component vector of float d, layout(column_major std430 offset=64 align=16 ) buffer float e, layout(column_major std430 offset=72 align=2 ) buffer double f, layout(column_major std430 offset=80 ) buffer float h, layout(column_major std430 offset=128 align=64 ) buffer 3-component vector of double i, layout(column_major std430 offset=168 align=8 ) buffer float j})
+0:? 'specExample4300' (layout(column_major std430 align=128 ) buffer block{layout(column_major std430 offset=0 align=128 ) buffer 4-component vector of float a, layout(column_major std430 offset=128 align=128 ) buffer 3-component vector of float b, layout(column_major std430 offset=256 align=128 ) buffer 2-component vector of float d, layout(column_major std430 offset=384 align=128 ) buffer float e, layout(column_major std430 offset=512 align=128 ) buffer double f, layout(column_major std430 offset=640 align=128 ) buffer float h, layout(column_major std430 offset=768 align=128 ) buffer 3-component vector of double i})
+0:? 'specExample4301' (layout(column_major std430 align=128 ) buffer block{layout(column_major std430 offset=0 align=128 ) buffer 4-component vector of float a, layout(column_major std430 offset=128 align=128 ) buffer 3-component vector of float b, layout(column_major std430 offset=256 align=128 ) buffer 2-component vector of float d, layout(column_major std430 offset=512 align=128 ) buffer float e, layout(column_major std430 offset=520 align=8 ) buffer double f, layout(column_major std430 offset=640 align=128 ) buffer float h, layout(column_major std430 offset=768 align=128 ) buffer 3-component vector of double i})
+0:? 'aconst' (global 4-element array of int)
+0:? 'bconst' (global 64-element array of int)
+0:? 'sampInArray' (smooth sample in 4-element array of 3-component vector of float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/440.vert.out b/chromium/third_party/glslang/src/Test/baseResults/440.vert.out
new file mode 100644
index 00000000000..9ad3c1bdde0
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/440.vert.out
@@ -0,0 +1,241 @@
+440.vert
+Warning, version 440 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:8: 'component' : type overflows the available 4 components
+ERROR: 0:15: 'component' : component is too large
+ERROR: 0:23: 'location' : overlapping use of location 4
+ERROR: 0:26: 'location' : overlapping use of location 2
+ERROR: 0:31: 'location' : overlapping use of location 15
+ERROR: 0:32: 'location' : overlapping use of location 10
+ERROR: 0:37: 'location' : overlapping use of location 20
+ERROR: 0:39: 'component' : type overflows the available 4 components
+ERROR: 0:40: 'component' : type overflows the available 4 components
+ERROR: 0:42: 'component' : cannot apply to a matrix, structure, or block
+ERROR: 0:43: 'component' : cannot apply to a matrix, structure, or block
+ERROR: 0:44: 'component' : cannot apply to a matrix, structure, or block
+ERROR: 0:46: 'component' : must specify 'location' to use 'component'
+ERROR: 0:52: 'location' : overlapping use of location 40
+ERROR: 0:54: 'component' : type overflows the available 4 components
+ERROR: 0:55: 'component' : type overflows the available 4 components
+ERROR: 0:57: 'component' : cannot apply to a matrix, structure, or block
+ERROR: 0:58: 'component' : cannot apply to a matrix, structure, or block
+ERROR: 0:61: 'location/component/index' : cannot declare a default, use a full declaration
+ERROR: 0:81: 'xfb layout qualifier' : can only be used on an output
+ERROR: 0:87: 'xfb_offset' : cannot declare a default, use a full declaration
+ERROR: 0:97: 'xfb_buffer' : member cannot contradict block (or what block inherited from global)
+ERROR: 0:102: 'xfb_buffer' : member cannot contradict block (or what block inherited from global)
+ERROR: 0:102: 'xfb_offset' : overlapping offsets at offset 32 in buffer 3
+ERROR: 0:103: 'xfb_offset' : overlapping offsets at offset 0 in buffer 2
+ERROR: 0:105: 'xfb_offset' : overlapping offsets at offset 24 in buffer 2
+ERROR: 0:108: 'xfb_stride' : all stride settings must match for xfb buffer 15
+ERROR: 0:112: 'xfb_offset' : overlapping offsets at offset 4 in buffer 1
+ERROR: 0:114: 'xfb_stride' : all stride settings must match for xfb buffer 3
+ERROR: 0:115: 'xfb_stride' : all stride settings must match for xfb buffer 3
+ERROR: 0:119: 'xfb_stride' : all stride settings must match for xfb buffer 3
+ERROR: 0:117: 'xfb_stride' : all stride settings must match for xfb buffer 3
+ERROR: 0:138: 'xfb_offset' : overlapping offsets at offset 64 in buffer 0
+ERROR: 0:143: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4
+ERROR: 0:144: 'xfb_offset' : must be a multiple of size of first component
+ERROR: 0:145: 'xfb_offset' : type contains double; xfb_offset must be a multiple of 8
+ERROR: 0:147: 'xfb_offset' : must be a multiple of size of first component
+ERROR: 0:148: 'xfb_offset' : type contains double; xfb_offset must be a multiple of 8
+ERROR: 0:152: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4
+ERROR: 0:155: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4
+ERROR: 0:155: 'xfb_stride' : 1/4 stride is too large: gl_MaxTransformFeedbackInterleavedComponents is 64
+ERROR: 0:157: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4
+ERROR: 0:165: 'gl_BaseVertexARB' : required extension not requested: GL_ARB_shader_draw_parameters
+ERROR: 0:165: 'gl_BaseInstanceARB' : required extension not requested: GL_ARB_shader_draw_parameters
+ERROR: 0:165: 'gl_DrawIDARB' : required extension not requested: GL_ARB_shader_draw_parameters
+ERROR: 0:173: 'assign' : l-value required "gl_BaseVertexARB" (can't modify shader input)
+ERROR: 0:174: 'assign' : l-value required "gl_BaseInstanceARB" (can't modify shader input)
+ERROR: 0:175: 'assign' : l-value required "gl_DrawIDARB" (can't modify shader input)
+ERROR: 0:176: 'glBaseInstanceARB' : undeclared identifier
+ERROR: 49 compilation errors. No code generated.
+
+
+Shader version: 440
+Requested GL_ARB_shader_draw_parameters
+in xfb mode
+ERROR: node is still EOpNull!
+0:163 Function Definition: drawParamsBad( (global int)
+0:163 Function Parameters:
+0:165 Sequence
+0:165 Branch: Return with expression
+0:165 add (temp int)
+0:165 add (temp int)
+0:165 'gl_BaseVertexARB' (in int BaseVertex)
+0:165 'gl_BaseInstanceARB' (in int BaseInstance)
+0:165 'gl_DrawIDARB' (in int DrawId)
+0:170 Function Definition: drawParams( (global int)
+0:170 Function Parameters:
+0:172 Sequence
+0:172 Branch: Return with expression
+0:172 add (temp int)
+0:172 add (temp int)
+0:172 'gl_BaseVertexARB' (in int BaseVertex)
+0:172 'gl_BaseInstanceARB' (in int BaseInstance)
+0:172 'gl_DrawIDARB' (in int DrawId)
+0:173 move second child to first child (temp int)
+0:173 'gl_BaseVertexARB' (in int BaseVertex)
+0:173 Constant:
+0:173 3 (const int)
+0:174 move second child to first child (temp int)
+0:174 'gl_BaseInstanceARB' (in int BaseInstance)
+0:174 Constant:
+0:174 3 (const int)
+0:175 move second child to first child (temp int)
+0:175 'gl_DrawIDARB' (in int DrawId)
+0:175 Constant:
+0:175 3 (const int)
+0:176 'glBaseInstanceARB' (temp float)
+0:? Linker Objects
+0:? 'a' (layout(location=2 component=2 ) in 2-component vector of float)
+0:? 'b' (layout(location=2 component=1 ) in float)
+0:? 'c' (layout(location=3 component=2 ) in 3-component vector of float)
+0:? 'd' (layout(location=0 component=3 ) in 4-element array of float)
+0:? 'e' (layout(location=4 component=0 ) in 5-element array of 3-component vector of float)
+0:? 'f' (layout(location=4 component=3 ) in 5-element array of float)
+0:? 'g' (layout(location=9 ) in 6-element array of float)
+0:? 'h' (layout(location=4 component=2 ) in 2-component vector of float)
+0:? 'i' (layout(location=3 component=2 ) smooth out 2-component vector of float)
+0:? 'j' (layout(location=3 component=0 ) smooth out 2-component vector of float)
+0:? 'k' (layout(location=4 component=2 ) smooth out 2-component vector of float)
+0:? 'm' (layout(location=4 component=2 ) smooth out 2-component vector of float)
+0:? 'n' (layout(location=2 component=2 ) smooth out 2-component vector of float)
+0:? 'p' (layout(location=2 component=0 ) smooth out 3-component vector of float)
+0:? 'q' (layout(location=10 component=3 ) smooth out 6-element array of float)
+0:? 'r' (layout(location=10 component=0 ) smooth out 6-element array of 3-component vector of float)
+0:? 's' (layout(location=15 component=3 ) smooth out float)
+0:? 't' (layout(location=10 component=1 ) smooth out float)
+0:? 'u' (layout(location=20 component=2 ) smooth out float)
+0:? 'v' (layout(location=20 component=0 ) smooth out float)
+0:? 'w' (layout(location=20 component=3 ) smooth out float)
+0:? 'x' (layout(location=20 component=1 ) smooth out 2-component vector of float)
+0:? 'y' (layout(location=30 component=3 ) smooth out 2-component vector of float)
+0:? 'z' (layout(location=31 component=1 ) smooth out 4-component vector of float)
+0:? 'ba' (layout(location=32 component=1 ) smooth out 4X4 matrix of float)
+0:? 'Ss' (layout(location=33 component=1 ) smooth out structure{global int a})
+0:? 'bb' (layout(location=34 component=1 ) out block{out int a})
+0:? 'bc' (layout(location=4095 component=1 ) smooth out float)
+0:? 'bd' (out block{layout(location=40 component=2 ) out float u, layout(location=40 component=0 ) out float v, layout(location=40 component=3 ) out float w, layout(location=40 component=1 ) out 2-component vector of float x, layout(location=41 component=3 ) out 2-component vector of float y, layout(location=42 component=1 ) out 4-component vector of float z, layout(location=42 component=1 ) out 4X4 matrix of float ba, layout(location=43 component=1 ) out structure{global int a} Ss})
+0:? 'be' (layout(location=50 component=3 ) smooth out int)
+0:? 'bf' (layout(location=50 component=0 ) smooth out 3-component vector of float)
+0:? 'bbinst1' (out block{out 4-component vector of float bbv})
+0:? 'bbinst2' (out block{layout(xfb_buffer=0 xfb_offset=64 ) out 4-component vector of float bbv})
+0:? 'bbinst3' (out block{layout(xfb_buffer=3 xfb_offset=16 ) out 4-component vector of float bbv})
+0:? 'ubbinst3' (layout(column_major shared ) uniform block{layout(column_major shared xfb_offset=16 ) uniform 4-component vector of float bbv})
+0:? 'bg' (layout(xfb_buffer=2 xfb_offset=48 xfb_stride=80 ) smooth out 4-component vector of float)
+0:? 'bh' (layout(xfb_buffer=3 xfb_offset=32 xfb_stride=64 ) smooth out 4-component vector of float)
+0:? 'bbinst4' (layout(xfb_stride=80 ) out block{layout(xfb_buffer=2 xfb_offset=16 ) out 4-component vector of float bbv1, layout(xfb_buffer=2 xfb_offset=32 ) out 4-component vector of float bbv2})
+0:? 'bbinst5' (out block{layout(xfb_buffer=3 xfb_offset=0 ) out 4-component vector of float bbv1, layout(xfb_buffer=3 xfb_offset=48 xfb_stride=64 ) out 4-component vector of float bbv2, out 4-component vector of float bbv3})
+0:? 'bbinst6' (out block{layout(xfb_buffer=2 xfb_offset=0 ) out 4-component vector of float bbv1, layout(xfb_buffer=3 xfb_offset=32 xfb_stride=64 ) out 4-component vector of float bbv2, layout(xfb_buffer=2 xfb_offset=0 ) out 4-component vector of float bbv3, out 4-component vector of float bbv5, layout(xfb_buffer=2 xfb_offset=24 ) out float bbf6})
+0:? 'bj' (layout(xfb_buffer=1 xfb_offset=4 ) smooth out float)
+0:? 'bk' (layout(xfb_buffer=1 xfb_offset=0 ) smooth out 2-component vector of int)
+0:? 'bl' (layout(xfb_stride=48 ) smooth out float)
+0:? 'bbinst7' (layout(xfb_stride=48 ) out block{layout(xfb_stride=64 ) out 4-component vector of float bbv1, layout(xfb_stride=32 ) out 4-component vector of float bbv2})
+0:? 'bbinst8' (layout(xfb_stride=92 ) out block{layout(xfb_buffer=0 xfb_offset=0 ) out bool b, layout(xfb_buffer=0 xfb_offset=8 ) out structure{global bool b, global structure{global int i, global double d, global float f} s, global 2-component vector of float v2} t, layout(xfb_buffer=0 xfb_offset=48 ) out int i, layout(xfb_buffer=0 xfb_offset=52 ) out 3X3 matrix of float m3, layout(xfb_buffer=0 xfb_offset=88 ) out float f, layout(xfb_buffer=0 xfb_offset=92 ) out float g})
+0:? 'bbinst9' (out block{layout(xfb_buffer=4 xfb_offset=1 ) out bool b, layout(xfb_buffer=4 xfb_offset=12 ) out structure{global bool b, global structure{global int i, global double d, global float f} s, global 2-component vector of float v2} t, layout(xfb_buffer=4 xfb_offset=52 ) out 3X3 matrix of float m3, layout(xfb_buffer=4 xfb_offset=90 ) out int i, layout(xfb_buffer=4 xfb_offset=98 ) out double d, layout(xfb_buffer=4 xfb_offset=108 ) out structure{global int a} s})
+0:? 'bm' (layout(xfb_buffer=5 xfb_offset=0 ) smooth out float)
+0:? 'bbinst10' (out block{layout(xfb_buffer=7 xfb_offset=0 ) out 4X4 matrix of double m1, layout(xfb_buffer=7 xfb_offset=128 ) out 4X4 matrix of double m2, layout(xfb_buffer=7 xfb_offset=256 ) out float f})
+0:? 'gl_VertexID' (gl_VertexId int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
+
+
+Linked vertex stage:
+
+ERROR: Linking vertex stage: Missing entry point: Each stage requires one "void main()" entry point
+ERROR: Linking vertex stage: xfb_stride is too small to hold all buffer entries:
+ERROR: xfb_buffer 0, xfb_stride 92, minimum stride needed: 96
+ERROR: Linking vertex stage: xfb_stride must be multiple of 8 for buffer holding a double:
+ERROR: xfb_buffer 0, xfb_stride 92
+ERROR: Linking vertex stage: xfb_stride must be multiple of 4:
+ERROR: xfb_buffer 5, xfb_stride 6
+ERROR: Linking vertex stage: xfb_stride is too large:
+ERROR: xfb_buffer 7, components (1/4 stride) needed are 66, gl_MaxTransformFeedbackInterleavedComponents is 64
+
+Shader version: 440
+Requested GL_ARB_shader_draw_parameters
+in xfb mode
+ERROR: node is still EOpNull!
+0:163 Function Definition: drawParamsBad( (global int)
+0:163 Function Parameters:
+0:165 Sequence
+0:165 Branch: Return with expression
+0:165 add (temp int)
+0:165 add (temp int)
+0:165 'gl_BaseVertexARB' (in int BaseVertex)
+0:165 'gl_BaseInstanceARB' (in int BaseInstance)
+0:165 'gl_DrawIDARB' (in int DrawId)
+0:170 Function Definition: drawParams( (global int)
+0:170 Function Parameters:
+0:172 Sequence
+0:172 Branch: Return with expression
+0:172 add (temp int)
+0:172 add (temp int)
+0:172 'gl_BaseVertexARB' (in int BaseVertex)
+0:172 'gl_BaseInstanceARB' (in int BaseInstance)
+0:172 'gl_DrawIDARB' (in int DrawId)
+0:173 move second child to first child (temp int)
+0:173 'gl_BaseVertexARB' (in int BaseVertex)
+0:173 Constant:
+0:173 3 (const int)
+0:174 move second child to first child (temp int)
+0:174 'gl_BaseInstanceARB' (in int BaseInstance)
+0:174 Constant:
+0:174 3 (const int)
+0:175 move second child to first child (temp int)
+0:175 'gl_DrawIDARB' (in int DrawId)
+0:175 Constant:
+0:175 3 (const int)
+0:176 'glBaseInstanceARB' (temp float)
+0:? Linker Objects
+0:? 'a' (layout(location=2 component=2 ) in 2-component vector of float)
+0:? 'b' (layout(location=2 component=1 ) in float)
+0:? 'c' (layout(location=3 component=2 ) in 3-component vector of float)
+0:? 'd' (layout(location=0 component=3 ) in 4-element array of float)
+0:? 'e' (layout(location=4 component=0 ) in 5-element array of 3-component vector of float)
+0:? 'f' (layout(location=4 component=3 ) in 5-element array of float)
+0:? 'g' (layout(location=9 ) in 6-element array of float)
+0:? 'h' (layout(location=4 component=2 ) in 2-component vector of float)
+0:? 'i' (layout(location=3 component=2 ) smooth out 2-component vector of float)
+0:? 'j' (layout(location=3 component=0 ) smooth out 2-component vector of float)
+0:? 'k' (layout(location=4 component=2 ) smooth out 2-component vector of float)
+0:? 'm' (layout(location=4 component=2 ) smooth out 2-component vector of float)
+0:? 'n' (layout(location=2 component=2 ) smooth out 2-component vector of float)
+0:? 'p' (layout(location=2 component=0 ) smooth out 3-component vector of float)
+0:? 'q' (layout(location=10 component=3 ) smooth out 6-element array of float)
+0:? 'r' (layout(location=10 component=0 ) smooth out 6-element array of 3-component vector of float)
+0:? 's' (layout(location=15 component=3 ) smooth out float)
+0:? 't' (layout(location=10 component=1 ) smooth out float)
+0:? 'u' (layout(location=20 component=2 ) smooth out float)
+0:? 'v' (layout(location=20 component=0 ) smooth out float)
+0:? 'w' (layout(location=20 component=3 ) smooth out float)
+0:? 'x' (layout(location=20 component=1 ) smooth out 2-component vector of float)
+0:? 'y' (layout(location=30 component=3 ) smooth out 2-component vector of float)
+0:? 'z' (layout(location=31 component=1 ) smooth out 4-component vector of float)
+0:? 'ba' (layout(location=32 component=1 ) smooth out 4X4 matrix of float)
+0:? 'Ss' (layout(location=33 component=1 ) smooth out structure{global int a})
+0:? 'bb' (layout(location=34 component=1 ) out block{out int a})
+0:? 'bc' (layout(location=4095 component=1 ) smooth out float)
+0:? 'bd' (out block{layout(location=40 component=2 ) out float u, layout(location=40 component=0 ) out float v, layout(location=40 component=3 ) out float w, layout(location=40 component=1 ) out 2-component vector of float x, layout(location=41 component=3 ) out 2-component vector of float y, layout(location=42 component=1 ) out 4-component vector of float z, layout(location=42 component=1 ) out 4X4 matrix of float ba, layout(location=43 component=1 ) out structure{global int a} Ss})
+0:? 'be' (layout(location=50 component=3 ) smooth out int)
+0:? 'bf' (layout(location=50 component=0 ) smooth out 3-component vector of float)
+0:? 'bbinst1' (out block{out 4-component vector of float bbv})
+0:? 'bbinst2' (out block{layout(xfb_buffer=0 xfb_offset=64 ) out 4-component vector of float bbv})
+0:? 'bbinst3' (out block{layout(xfb_buffer=3 xfb_offset=16 ) out 4-component vector of float bbv})
+0:? 'ubbinst3' (layout(column_major shared ) uniform block{layout(column_major shared xfb_offset=16 ) uniform 4-component vector of float bbv})
+0:? 'bg' (layout(xfb_buffer=2 xfb_offset=48 xfb_stride=80 ) smooth out 4-component vector of float)
+0:? 'bh' (layout(xfb_buffer=3 xfb_offset=32 xfb_stride=64 ) smooth out 4-component vector of float)
+0:? 'bbinst4' (layout(xfb_stride=80 ) out block{layout(xfb_buffer=2 xfb_offset=16 ) out 4-component vector of float bbv1, layout(xfb_buffer=2 xfb_offset=32 ) out 4-component vector of float bbv2})
+0:? 'bbinst5' (out block{layout(xfb_buffer=3 xfb_offset=0 ) out 4-component vector of float bbv1, layout(xfb_buffer=3 xfb_offset=48 xfb_stride=64 ) out 4-component vector of float bbv2, out 4-component vector of float bbv3})
+0:? 'bbinst6' (out block{layout(xfb_buffer=2 xfb_offset=0 ) out 4-component vector of float bbv1, layout(xfb_buffer=3 xfb_offset=32 xfb_stride=64 ) out 4-component vector of float bbv2, layout(xfb_buffer=2 xfb_offset=0 ) out 4-component vector of float bbv3, out 4-component vector of float bbv5, layout(xfb_buffer=2 xfb_offset=24 ) out float bbf6})
+0:? 'bj' (layout(xfb_buffer=1 xfb_offset=4 ) smooth out float)
+0:? 'bk' (layout(xfb_buffer=1 xfb_offset=0 ) smooth out 2-component vector of int)
+0:? 'bl' (layout(xfb_stride=48 ) smooth out float)
+0:? 'bbinst7' (layout(xfb_stride=48 ) out block{layout(xfb_stride=64 ) out 4-component vector of float bbv1, layout(xfb_stride=32 ) out 4-component vector of float bbv2})
+0:? 'bbinst8' (layout(xfb_stride=92 ) out block{layout(xfb_buffer=0 xfb_offset=0 ) out bool b, layout(xfb_buffer=0 xfb_offset=8 ) out structure{global bool b, global structure{global int i, global double d, global float f} s, global 2-component vector of float v2} t, layout(xfb_buffer=0 xfb_offset=48 ) out int i, layout(xfb_buffer=0 xfb_offset=52 ) out 3X3 matrix of float m3, layout(xfb_buffer=0 xfb_offset=88 ) out float f, layout(xfb_buffer=0 xfb_offset=92 ) out float g})
+0:? 'bbinst9' (out block{layout(xfb_buffer=4 xfb_offset=1 ) out bool b, layout(xfb_buffer=4 xfb_offset=12 ) out structure{global bool b, global structure{global int i, global double d, global float f} s, global 2-component vector of float v2} t, layout(xfb_buffer=4 xfb_offset=52 ) out 3X3 matrix of float m3, layout(xfb_buffer=4 xfb_offset=90 ) out int i, layout(xfb_buffer=4 xfb_offset=98 ) out double d, layout(xfb_buffer=4 xfb_offset=108 ) out structure{global int a} s})
+0:? 'bm' (layout(xfb_buffer=5 xfb_offset=0 ) smooth out float)
+0:? 'bbinst10' (out block{layout(xfb_buffer=7 xfb_offset=0 ) out 4X4 matrix of double m1, layout(xfb_buffer=7 xfb_offset=128 ) out 4X4 matrix of double m2, layout(xfb_buffer=7 xfb_offset=256 ) out float f})
+0:? 'gl_VertexID' (gl_VertexId int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/450.comp.out b/chromium/third_party/glslang/src/Test/baseResults/450.comp.out
new file mode 100644
index 00000000000..d5d1ecabdd8
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/450.comp.out
@@ -0,0 +1,18 @@
+450.comp
+Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
+
+Shader version: 450
+local_size = (1, 1, 1)
+0:? Sequence
+0:? Linker Objects
+
+
+Linked compute stage:
+
+ERROR: Linking compute stage: Missing entry point: Each stage requires one "void main()" entry point
+
+Shader version: 450
+local_size = (1, 1, 1)
+0:? Sequence
+0:? Linker Objects
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/450.frag.out b/chromium/third_party/glslang/src/Test/baseResults/450.frag.out
new file mode 100644
index 00000000000..23682e8a17a
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/450.frag.out
@@ -0,0 +1,327 @@
+450.frag
+Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
+
+Shader version: 450
+0:? Sequence
+0:8 Function Definition: main( (global void)
+0:8 Function Parameters:
+0:10 Sequence
+0:10 Sequence
+0:10 move second child to first child (temp 2-component vector of float)
+0:10 'v2' (temp 2-component vector of float)
+0:10 dPdxFine (global 2-component vector of float)
+0:10 'in2' (smooth in 2-component vector of float)
+0:11 Sequence
+0:11 move second child to first child (temp 3-component vector of float)
+0:11 'v3' (temp 3-component vector of float)
+0:11 dPdyCoarse (global 3-component vector of float)
+0:11 'in3' (smooth in 3-component vector of float)
+0:12 Sequence
+0:12 move second child to first child (temp 4-component vector of float)
+0:12 'v4' (temp 4-component vector of float)
+0:12 fwidth (global 4-component vector of float)
+0:12 'in4' (smooth in 4-component vector of float)
+0:13 move second child to first child (temp 4-component vector of float)
+0:13 'v4' (temp 4-component vector of float)
+0:13 dPdyFine (global 4-component vector of float)
+0:13 'in4' (smooth in 4-component vector of float)
+0:14 move second child to first child (temp 3-component vector of float)
+0:14 'v3' (temp 3-component vector of float)
+0:14 dPdyFine (global 3-component vector of float)
+0:14 'in3' (smooth in 3-component vector of float)
+0:15 Sequence
+0:15 move second child to first child (temp float)
+0:15 'f' (temp float)
+0:15 add (temp float)
+0:15 add (temp float)
+0:15 dPdx (global float)
+0:15 'in1' (smooth in float)
+0:15 dPdxFine (global float)
+0:15 'in1' (smooth in float)
+0:15 dPdxCoarse (global float)
+0:15 'in1' (smooth in float)
+0:16 move second child to first child (temp 4-component vector of float)
+0:16 'v4' (temp 4-component vector of float)
+0:16 add (temp 4-component vector of float)
+0:16 fwidthCoarse (global 4-component vector of float)
+0:16 'in4' (smooth in 4-component vector of float)
+0:16 fwidthFine (global 4-component vector of float)
+0:16 'in4' (smooth in 4-component vector of float)
+0:18 Sequence
+0:18 move second child to first child (temp float)
+0:18 'cull' (temp float)
+0:18 direct index (smooth temp float CullDistance)
+0:18 'gl_CullDistance' (smooth in 6-element array of float CullDistance)
+0:18 Constant:
+0:18 2 (const int)
+0:19 Sequence
+0:19 move second child to first child (temp float)
+0:19 'consts' (temp float)
+0:19 Constant:
+0:19 20.000000
+0:21 Test condition and select (temp void)
+0:21 Condition
+0:21 'gl_HelperInvocation' (in bool HelperInvocation)
+0:21 true case
+0:22 Pre-Increment (temp 4-component vector of float)
+0:22 'v4' (temp 4-component vector of float)
+0:24 Sequence
+0:24 move second child to first child (temp int)
+0:24 'sum' (temp int)
+0:24 Constant:
+0:24 32 (const int)
+0:32 Sequence
+0:32 move second child to first child (temp 2-component vector of bool)
+0:32 'b2' (temp 2-component vector of bool)
+0:32 mix (global 2-component vector of bool)
+0:32 Construct bvec2 (temp 2-component vector of bool)
+0:32 'b1' (temp bool)
+0:32 Construct bvec2 (temp 2-component vector of bool)
+0:32 'b3' (temp bool)
+0:32 Construct bvec2 (temp 2-component vector of bool)
+0:32 'b' (temp bool)
+0:33 Sequence
+0:33 move second child to first child (temp uint)
+0:33 'um' (temp uint)
+0:33 mix (global uint)
+0:33 'uin' (temp uint)
+0:33 'uin' (temp uint)
+0:33 'b' (temp bool)
+0:34 Sequence
+0:34 move second child to first child (temp 3-component vector of int)
+0:34 'im3' (temp 3-component vector of int)
+0:34 mix (global 3-component vector of int)
+0:34 Construct ivec3 (temp 3-component vector of int)
+0:34 Convert uint to int (temp int)
+0:34 'uin' (temp uint)
+0:34 Construct ivec3 (temp 3-component vector of int)
+0:34 Convert uint to int (temp int)
+0:34 'uin' (temp uint)
+0:34 Construct bvec3 (temp 3-component vector of bool)
+0:34 'b' (temp bool)
+0:42 Function Definition: foo( (global void)
+0:42 Function Parameters:
+0:44 Sequence
+0:44 Sequence
+0:44 move second child to first child (temp int)
+0:44 's' (temp int)
+0:44 textureSamples (global int)
+0:44 's2dms' (uniform sampler2DMS)
+0:45 add second child into first child (temp int)
+0:45 's' (temp int)
+0:45 textureSamples (global int)
+0:45 'us2dmsa' (uniform usampler2DMSArray)
+0:46 add second child into first child (temp int)
+0:46 's' (temp int)
+0:46 imageQuerySamples (global int)
+0:46 'ii2dms' (layout(rgba32i ) uniform iimage2DMS)
+0:47 add second child into first child (temp int)
+0:47 's' (temp int)
+0:47 imageQuerySamples (global int)
+0:47 'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)
+0:48 Sequence
+0:48 move second child to first child (temp float)
+0:48 'f' (temp float)
+0:48 imageAtomicExchange (global float)
+0:48 'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)
+0:48 Convert float to int (temp 3-component vector of int)
+0:48 'in3' (smooth in 3-component vector of float)
+0:48 Constant:
+0:48 2 (const int)
+0:48 Constant:
+0:48 4.500000
+0:53 Function Definition: cull(i1; (global float)
+0:53 Function Parameters:
+0:53 'i' (in int)
+0:55 Sequence
+0:55 Branch: Return with expression
+0:55 Test condition and select (temp float)
+0:55 Condition
+0:55 Compare Greater Than or Equal (temp bool)
+0:55 'i' (in int)
+0:55 Constant:
+0:55 6 (const int)
+0:55 true case
+0:55 direct index (smooth temp float CullDistance)
+0:55 'gl_CullDistance' (smooth in 6-element array of float CullDistance)
+0:55 Constant:
+0:55 5 (const int)
+0:55 false case
+0:55 indirect index (smooth temp float CullDistance)
+0:55 'gl_CullDistance' (smooth in 6-element array of float CullDistance)
+0:55 'i' (in int)
+0:? Linker Objects
+0:? 'in1' (smooth in float)
+0:? 'in2' (smooth in 2-component vector of float)
+0:? 'in3' (smooth in 3-component vector of float)
+0:? 'in4' (smooth in 4-component vector of float)
+0:? 'gl_CullDistance' (smooth in 6-element array of float CullDistance)
+0:? 's2dms' (uniform sampler2DMS)
+0:? 'us2dmsa' (uniform usampler2DMSArray)
+0:? 'ii2dms' (layout(rgba32i ) uniform iimage2DMS)
+0:? 'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+0:? Sequence
+0:8 Function Definition: main( (global void)
+0:8 Function Parameters:
+0:10 Sequence
+0:10 Sequence
+0:10 move second child to first child (temp 2-component vector of float)
+0:10 'v2' (temp 2-component vector of float)
+0:10 dPdxFine (global 2-component vector of float)
+0:10 'in2' (smooth in 2-component vector of float)
+0:11 Sequence
+0:11 move second child to first child (temp 3-component vector of float)
+0:11 'v3' (temp 3-component vector of float)
+0:11 dPdyCoarse (global 3-component vector of float)
+0:11 'in3' (smooth in 3-component vector of float)
+0:12 Sequence
+0:12 move second child to first child (temp 4-component vector of float)
+0:12 'v4' (temp 4-component vector of float)
+0:12 fwidth (global 4-component vector of float)
+0:12 'in4' (smooth in 4-component vector of float)
+0:13 move second child to first child (temp 4-component vector of float)
+0:13 'v4' (temp 4-component vector of float)
+0:13 dPdyFine (global 4-component vector of float)
+0:13 'in4' (smooth in 4-component vector of float)
+0:14 move second child to first child (temp 3-component vector of float)
+0:14 'v3' (temp 3-component vector of float)
+0:14 dPdyFine (global 3-component vector of float)
+0:14 'in3' (smooth in 3-component vector of float)
+0:15 Sequence
+0:15 move second child to first child (temp float)
+0:15 'f' (temp float)
+0:15 add (temp float)
+0:15 add (temp float)
+0:15 dPdx (global float)
+0:15 'in1' (smooth in float)
+0:15 dPdxFine (global float)
+0:15 'in1' (smooth in float)
+0:15 dPdxCoarse (global float)
+0:15 'in1' (smooth in float)
+0:16 move second child to first child (temp 4-component vector of float)
+0:16 'v4' (temp 4-component vector of float)
+0:16 add (temp 4-component vector of float)
+0:16 fwidthCoarse (global 4-component vector of float)
+0:16 'in4' (smooth in 4-component vector of float)
+0:16 fwidthFine (global 4-component vector of float)
+0:16 'in4' (smooth in 4-component vector of float)
+0:18 Sequence
+0:18 move second child to first child (temp float)
+0:18 'cull' (temp float)
+0:18 direct index (smooth temp float CullDistance)
+0:18 'gl_CullDistance' (smooth in 6-element array of float CullDistance)
+0:18 Constant:
+0:18 2 (const int)
+0:19 Sequence
+0:19 move second child to first child (temp float)
+0:19 'consts' (temp float)
+0:19 Constant:
+0:19 20.000000
+0:21 Test condition and select (temp void)
+0:21 Condition
+0:21 'gl_HelperInvocation' (in bool HelperInvocation)
+0:21 true case
+0:22 Pre-Increment (temp 4-component vector of float)
+0:22 'v4' (temp 4-component vector of float)
+0:24 Sequence
+0:24 move second child to first child (temp int)
+0:24 'sum' (temp int)
+0:24 Constant:
+0:24 32 (const int)
+0:32 Sequence
+0:32 move second child to first child (temp 2-component vector of bool)
+0:32 'b2' (temp 2-component vector of bool)
+0:32 mix (global 2-component vector of bool)
+0:32 Construct bvec2 (temp 2-component vector of bool)
+0:32 'b1' (temp bool)
+0:32 Construct bvec2 (temp 2-component vector of bool)
+0:32 'b3' (temp bool)
+0:32 Construct bvec2 (temp 2-component vector of bool)
+0:32 'b' (temp bool)
+0:33 Sequence
+0:33 move second child to first child (temp uint)
+0:33 'um' (temp uint)
+0:33 mix (global uint)
+0:33 'uin' (temp uint)
+0:33 'uin' (temp uint)
+0:33 'b' (temp bool)
+0:34 Sequence
+0:34 move second child to first child (temp 3-component vector of int)
+0:34 'im3' (temp 3-component vector of int)
+0:34 mix (global 3-component vector of int)
+0:34 Construct ivec3 (temp 3-component vector of int)
+0:34 Convert uint to int (temp int)
+0:34 'uin' (temp uint)
+0:34 Construct ivec3 (temp 3-component vector of int)
+0:34 Convert uint to int (temp int)
+0:34 'uin' (temp uint)
+0:34 Construct bvec3 (temp 3-component vector of bool)
+0:34 'b' (temp bool)
+0:42 Function Definition: foo( (global void)
+0:42 Function Parameters:
+0:44 Sequence
+0:44 Sequence
+0:44 move second child to first child (temp int)
+0:44 's' (temp int)
+0:44 textureSamples (global int)
+0:44 's2dms' (uniform sampler2DMS)
+0:45 add second child into first child (temp int)
+0:45 's' (temp int)
+0:45 textureSamples (global int)
+0:45 'us2dmsa' (uniform usampler2DMSArray)
+0:46 add second child into first child (temp int)
+0:46 's' (temp int)
+0:46 imageQuerySamples (global int)
+0:46 'ii2dms' (layout(rgba32i ) uniform iimage2DMS)
+0:47 add second child into first child (temp int)
+0:47 's' (temp int)
+0:47 imageQuerySamples (global int)
+0:47 'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)
+0:48 Sequence
+0:48 move second child to first child (temp float)
+0:48 'f' (temp float)
+0:48 imageAtomicExchange (global float)
+0:48 'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)
+0:48 Convert float to int (temp 3-component vector of int)
+0:48 'in3' (smooth in 3-component vector of float)
+0:48 Constant:
+0:48 2 (const int)
+0:48 Constant:
+0:48 4.500000
+0:53 Function Definition: cull(i1; (global float)
+0:53 Function Parameters:
+0:53 'i' (in int)
+0:55 Sequence
+0:55 Branch: Return with expression
+0:55 Test condition and select (temp float)
+0:55 Condition
+0:55 Compare Greater Than or Equal (temp bool)
+0:55 'i' (in int)
+0:55 Constant:
+0:55 6 (const int)
+0:55 true case
+0:55 direct index (smooth temp float CullDistance)
+0:55 'gl_CullDistance' (smooth in 6-element array of float CullDistance)
+0:55 Constant:
+0:55 5 (const int)
+0:55 false case
+0:55 indirect index (smooth temp float CullDistance)
+0:55 'gl_CullDistance' (smooth in 6-element array of float CullDistance)
+0:55 'i' (in int)
+0:? Linker Objects
+0:? 'in1' (smooth in float)
+0:? 'in2' (smooth in 2-component vector of float)
+0:? 'in3' (smooth in 3-component vector of float)
+0:? 'in4' (smooth in 4-component vector of float)
+0:? 'gl_CullDistance' (smooth in 6-element array of float CullDistance)
+0:? 's2dms' (uniform sampler2DMS)
+0:? 'us2dmsa' (uniform usampler2DMSArray)
+0:? 'ii2dms' (layout(rgba32i ) uniform iimage2DMS)
+0:? 'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/450.geom.out b/chromium/third_party/glslang/src/Test/baseResults/450.geom.out
new file mode 100644
index 00000000000..fef3486aeb6
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/450.geom.out
@@ -0,0 +1,72 @@
+450.geom
+Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
+
+Shader version: 450
+invocations = -1
+max_vertices = -1
+input primitive = none
+output primitive = none
+0:? Sequence
+0:11 Function Definition: main( (global void)
+0:11 Function Parameters:
+0:13 Sequence
+0:13 move second child to first child (temp float)
+0:13 direct index (layout(stream=0 ) temp float CullDistance)
+0:13 gl_CullDistance: direct index for structure (layout(stream=0 ) out 3-element array of float CullDistance)
+0:13 'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out 3-element array of float CullDistance gl_CullDistance})
+0:13 Constant:
+0:13 3 (const uint)
+0:13 Constant:
+0:13 2 (const int)
+0:13 direct index (temp float CullDistance)
+0:13 gl_CullDistance: direct index for structure (in 3-element array of float CullDistance)
+0:13 direct index (temp block{in 3-element array of float CullDistance gl_CullDistance})
+0:13 'gl_in' (in implicitly-sized array of block{in 3-element array of float CullDistance gl_CullDistance})
+0:13 Constant:
+0:13 1 (const int)
+0:13 Constant:
+0:13 0 (const int)
+0:13 Constant:
+0:13 2 (const int)
+0:? Linker Objects
+0:? 'gl_in' (in implicitly-sized array of block{in 3-element array of float CullDistance gl_CullDistance})
+0:? 'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out 3-element array of float CullDistance gl_CullDistance})
+
+
+Linked geometry stage:
+
+ERROR: Linking geometry stage: At least one shader must specify an input layout primitive
+ERROR: Linking geometry stage: At least one shader must specify an output layout primitive
+ERROR: Linking geometry stage: At least one shader must specify a layout(max_vertices = value)
+
+Shader version: 450
+invocations = 1
+max_vertices = -1
+input primitive = none
+output primitive = none
+0:? Sequence
+0:11 Function Definition: main( (global void)
+0:11 Function Parameters:
+0:13 Sequence
+0:13 move second child to first child (temp float)
+0:13 direct index (layout(stream=0 ) temp float CullDistance)
+0:13 gl_CullDistance: direct index for structure (layout(stream=0 ) out 3-element array of float CullDistance)
+0:13 'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out 3-element array of float CullDistance gl_CullDistance})
+0:13 Constant:
+0:13 3 (const uint)
+0:13 Constant:
+0:13 2 (const int)
+0:13 direct index (temp float CullDistance)
+0:13 gl_CullDistance: direct index for structure (in 3-element array of float CullDistance)
+0:13 direct index (temp block{in 3-element array of float CullDistance gl_CullDistance})
+0:13 'gl_in' (in 2-element array of block{in 3-element array of float CullDistance gl_CullDistance})
+0:13 Constant:
+0:13 1 (const int)
+0:13 Constant:
+0:13 0 (const int)
+0:13 Constant:
+0:13 2 (const int)
+0:? Linker Objects
+0:? 'gl_in' (in 2-element array of block{in 3-element array of float CullDistance gl_CullDistance})
+0:? 'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out 3-element array of float CullDistance gl_CullDistance})
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/450.tesc.out b/chromium/third_party/glslang/src/Test/baseResults/450.tesc.out
new file mode 100644
index 00000000000..aeef6cb3ad1
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/450.tesc.out
@@ -0,0 +1,68 @@
+450.tesc
+Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
+
+Shader version: 450
+vertices = -1
+0:? Sequence
+0:11 Function Definition: main( (global void)
+0:11 Function Parameters:
+0:13 Sequence
+0:13 move second child to first child (temp float)
+0:13 direct index (temp float CullDistance)
+0:13 gl_CullDistance: direct index for structure (out 3-element array of float CullDistance)
+0:13 indirect index (temp block{out 3-element array of float CullDistance gl_CullDistance})
+0:13 'gl_out' (out 4-element array of block{out 3-element array of float CullDistance gl_CullDistance})
+0:13 'gl_InvocationID' (in int InvocationID)
+0:13 Constant:
+0:13 0 (const int)
+0:13 Constant:
+0:13 2 (const int)
+0:13 direct index (temp float CullDistance)
+0:13 gl_CullDistance: direct index for structure (in 3-element array of float CullDistance)
+0:13 direct index (temp block{in 3-element array of float CullDistance gl_CullDistance})
+0:13 'gl_in' (in 32-element array of block{in 3-element array of float CullDistance gl_CullDistance})
+0:13 Constant:
+0:13 1 (const int)
+0:13 Constant:
+0:13 0 (const int)
+0:13 Constant:
+0:13 2 (const int)
+0:? Linker Objects
+0:? 'gl_in' (in 32-element array of block{in 3-element array of float CullDistance gl_CullDistance})
+0:? 'gl_out' (out 4-element array of block{out 3-element array of float CullDistance gl_CullDistance})
+
+
+Linked tessellation control stage:
+
+ERROR: Linking tessellation control stage: At least one shader must specify an output layout(vertices=...)
+
+Shader version: 450
+vertices = -1
+0:? Sequence
+0:11 Function Definition: main( (global void)
+0:11 Function Parameters:
+0:13 Sequence
+0:13 move second child to first child (temp float)
+0:13 direct index (temp float CullDistance)
+0:13 gl_CullDistance: direct index for structure (out 3-element array of float CullDistance)
+0:13 indirect index (temp block{out 3-element array of float CullDistance gl_CullDistance})
+0:13 'gl_out' (out 4-element array of block{out 3-element array of float CullDistance gl_CullDistance})
+0:13 'gl_InvocationID' (in int InvocationID)
+0:13 Constant:
+0:13 0 (const int)
+0:13 Constant:
+0:13 2 (const int)
+0:13 direct index (temp float CullDistance)
+0:13 gl_CullDistance: direct index for structure (in 3-element array of float CullDistance)
+0:13 direct index (temp block{in 3-element array of float CullDistance gl_CullDistance})
+0:13 'gl_in' (in 32-element array of block{in 3-element array of float CullDistance gl_CullDistance})
+0:13 Constant:
+0:13 1 (const int)
+0:13 Constant:
+0:13 0 (const int)
+0:13 Constant:
+0:13 2 (const int)
+0:? Linker Objects
+0:? 'gl_in' (in 32-element array of block{in 3-element array of float CullDistance gl_CullDistance})
+0:? 'gl_out' (out 4-element array of block{out 3-element array of float CullDistance gl_CullDistance})
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/450.tese.out b/chromium/third_party/glslang/src/Test/baseResults/450.tese.out
new file mode 100644
index 00000000000..f988f1086de
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/450.tese.out
@@ -0,0 +1,68 @@
+450.tese
+Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
+
+Shader version: 450
+input primitive = none
+vertex spacing = none
+triangle order = none
+0:? Sequence
+0:11 Function Definition: main( (global void)
+0:11 Function Parameters:
+0:13 Sequence
+0:13 move second child to first child (temp float)
+0:13 direct index (temp float CullDistance)
+0:13 gl_CullDistance: direct index for structure (out 3-element array of float CullDistance)
+0:13 'anon@0' (out block{out 3-element array of float CullDistance gl_CullDistance})
+0:13 Constant:
+0:13 3 (const uint)
+0:13 Constant:
+0:13 2 (const int)
+0:13 direct index (temp float CullDistance)
+0:13 gl_CullDistance: direct index for structure (in 3-element array of float CullDistance)
+0:13 direct index (temp block{in 3-element array of float CullDistance gl_CullDistance})
+0:13 'gl_in' (in 32-element array of block{in 3-element array of float CullDistance gl_CullDistance})
+0:13 Constant:
+0:13 1 (const int)
+0:13 Constant:
+0:13 0 (const int)
+0:13 Constant:
+0:13 2 (const int)
+0:? Linker Objects
+0:? 'gl_in' (in 32-element array of block{in 3-element array of float CullDistance gl_CullDistance})
+0:? 'anon@0' (out block{out 3-element array of float CullDistance gl_CullDistance})
+
+
+Linked tessellation evaluation stage:
+
+ERROR: Linking tessellation evaluation stage: At least one shader must specify an input layout primitive
+
+Shader version: 450
+input primitive = none
+vertex spacing = equal_spacing
+triangle order = ccw
+0:? Sequence
+0:11 Function Definition: main( (global void)
+0:11 Function Parameters:
+0:13 Sequence
+0:13 move second child to first child (temp float)
+0:13 direct index (temp float CullDistance)
+0:13 gl_CullDistance: direct index for structure (out 3-element array of float CullDistance)
+0:13 'anon@0' (out block{out 3-element array of float CullDistance gl_CullDistance})
+0:13 Constant:
+0:13 3 (const uint)
+0:13 Constant:
+0:13 2 (const int)
+0:13 direct index (temp float CullDistance)
+0:13 gl_CullDistance: direct index for structure (in 3-element array of float CullDistance)
+0:13 direct index (temp block{in 3-element array of float CullDistance gl_CullDistance})
+0:13 'gl_in' (in 32-element array of block{in 3-element array of float CullDistance gl_CullDistance})
+0:13 Constant:
+0:13 1 (const int)
+0:13 Constant:
+0:13 0 (const int)
+0:13 Constant:
+0:13 2 (const int)
+0:? Linker Objects
+0:? 'gl_in' (in 32-element array of block{in 3-element array of float CullDistance gl_CullDistance})
+0:? 'anon@0' (out block{out 3-element array of float CullDistance gl_CullDistance})
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/450.vert.out b/chromium/third_party/glslang/src/Test/baseResults/450.vert.out
new file mode 100644
index 00000000000..86338c76129
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/450.vert.out
@@ -0,0 +1,69 @@
+450.vert
+Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:12: 'out' : cannot be bool
+ERROR: 0:13: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: outo
+ERROR: 2 compilation errors. No code generated.
+
+
+Shader version: 450
+ERROR: node is still EOpNull!
+0:7 Function Definition: main( (global void)
+0:7 Function Parameters:
+0:9 Sequence
+0:9 move second child to first child (temp float)
+0:9 direct index (temp float CullDistance)
+0:9 gl_CullDistance: direct index for structure (out 3-element array of float CullDistance)
+0:9 'anon@0' (out block{out 3-element array of float CullDistance gl_CullDistance})
+0:9 Constant:
+0:9 10 (const uint)
+0:9 Constant:
+0:9 2 (const int)
+0:9 Constant:
+0:9 4.500000
+0:? Linker Objects
+0:? 'anon@0' (out block{out 3-element array of float CullDistance gl_CullDistance})
+0:? 'outb' (smooth out bool)
+0:? 'outo' (smooth out sampler2D)
+0:? 'outa' (smooth out 4-element array of float)
+0:? 'outaa' (smooth out 4-element array of 2-element array of float)
+0:? 'outs' (smooth out structure{global float f})
+0:? 'outasa' (smooth out 4-element array of structure{global float f})
+0:? 'outsa' (smooth out 4-element array of structure{global float f})
+0:? 'outSA' (smooth out structure{global 4-element array of float f})
+0:? 'outSS' (smooth out structure{global float f, global structure{global float f} s})
+0:? 'gl_VertexID' (gl_VertexId int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
+
+
+Linked vertex stage:
+
+
+Shader version: 450
+ERROR: node is still EOpNull!
+0:7 Function Definition: main( (global void)
+0:7 Function Parameters:
+0:9 Sequence
+0:9 move second child to first child (temp float)
+0:9 direct index (temp float CullDistance)
+0:9 gl_CullDistance: direct index for structure (out 3-element array of float CullDistance)
+0:9 'anon@0' (out block{out 3-element array of float CullDistance gl_CullDistance})
+0:9 Constant:
+0:9 10 (const uint)
+0:9 Constant:
+0:9 2 (const int)
+0:9 Constant:
+0:9 4.500000
+0:? Linker Objects
+0:? 'anon@0' (out block{out 3-element array of float CullDistance gl_CullDistance})
+0:? 'outb' (smooth out bool)
+0:? 'outo' (smooth out sampler2D)
+0:? 'outa' (smooth out 4-element array of float)
+0:? 'outaa' (smooth out 4-element array of 2-element array of float)
+0:? 'outs' (smooth out structure{global float f})
+0:? 'outasa' (smooth out 4-element array of structure{global float f})
+0:? 'outsa' (smooth out 4-element array of structure{global float f})
+0:? 'outSA' (smooth out structure{global 4-element array of float f})
+0:? 'outSS' (smooth out structure{global float f, global structure{global float f} s})
+0:? 'gl_VertexID' (gl_VertexId int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/Operations.frag.out b/chromium/third_party/glslang/src/Test/baseResults/Operations.frag.out
new file mode 100644
index 00000000000..bc12fe0daee
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/Operations.frag.out
@@ -0,0 +1,1151 @@
+Operations.frag
+ERROR: 0:76: 'intBitsToFloat' : no matching overloaded function found
+ERROR: 0:77: 'uintBitsToFloat' : no matching overloaded function found
+ERROR: 0:78: 'fma' : no matching overloaded function found
+ERROR: 0:79: 'frexp' : no matching overloaded function found
+ERROR: 0:80: 'ldexp' : no matching overloaded function found
+ERROR: 0:81: 'unpackUnorm2x16' : no matching overloaded function found
+ERROR: 0:82: 'unpackUnorm4x8' : no matching overloaded function found
+ERROR: 0:83: 'unpackSnorm4x8' : no matching overloaded function found
+ERROR: 0:107: 'floatsBitsToInt' : no matching overloaded function found
+ERROR: 0:108: 'packUnorm2x16' : no matching overloaded function found
+ERROR: 0:109: 'packUnorm4x8' : no matching overloaded function found
+ERROR: 0:110: 'packSnorm4x8' : no matching overloaded function found
+ERROR: 0:113: 'assign' : cannot convert from 'global float' to 'temp uint'
+ERROR: 0:114: 'assign' : cannot convert from 'global float' to 'temp uint'
+ERROR: 0:118: 'floatsBitToInt' : no matching overloaded function found
+ERROR: 0:118: 'assign' : cannot convert from 'const float' to 'temp uint'
+ERROR: 0:119: 'packUnorm2x16' : no matching overloaded function found
+ERROR: 0:119: 'assign' : cannot convert from 'const float' to 'temp uint'
+ERROR: 0:120: 'packUnorm4x8' : no matching overloaded function found
+ERROR: 0:120: 'assign' : cannot convert from 'const float' to 'temp uint'
+ERROR: 0:121: '&' : wrong operand types: no operation '&' exists that takes a left-hand operand of type 'uniform uint' and a right operand of type 'temp int' (or there is no acceptable conversion)
+ERROR: 0:121: 'assign' : cannot convert from 'uniform uint' to 'temp int'
+ERROR: 0:122: '^' : wrong operand types: no operation '^' exists that takes a left-hand operand of type 'uniform uint' and a right operand of type 'temp int' (or there is no acceptable conversion)
+ERROR: 0:122: 'assign' : cannot convert from 'uniform uint' to 'temp int'
+ERROR: 0:123: '|' : wrong operand types: no operation '|' exists that takes a left-hand operand of type 'temp int' and a right operand of type 'uniform uint' (or there is no acceptable conversion)
+ERROR: 25 compilation errors. No code generated.
+
+
+Shader version: 130
+ERROR: node is still EOpNull!
+0:15 Function Definition: main( (global void)
+0:15 Function Parameters:
+0:? Sequence
+0:27 move second child to first child (temp 4-component vector of float)
+0:27 'v' (temp 4-component vector of float)
+0:27 radians (global 4-component vector of float)
+0:27 'uv4' (uniform 4-component vector of float)
+0:28 add second child into first child (temp 4-component vector of float)
+0:28 'v' (temp 4-component vector of float)
+0:28 degrees (global 4-component vector of float)
+0:28 'v' (temp 4-component vector of float)
+0:29 add second child into first child (temp 4-component vector of float)
+0:29 'v' (temp 4-component vector of float)
+0:29 Comma (temp 4-component vector of float)
+0:29 move second child to first child (temp int)
+0:29 'i' (temp int)
+0:29 component-wise multiply (temp int)
+0:29 'ui' (uniform int)
+0:29 'ui' (uniform int)
+0:29 sine (global 4-component vector of float)
+0:29 'v' (temp 4-component vector of float)
+0:30 add second child into first child (temp 4-component vector of float)
+0:30 'v' (temp 4-component vector of float)
+0:30 cosine (global 4-component vector of float)
+0:30 'v' (temp 4-component vector of float)
+0:31 add second child into first child (temp 4-component vector of float)
+0:31 'v' (temp 4-component vector of float)
+0:31 tangent (global 4-component vector of float)
+0:31 'v' (temp 4-component vector of float)
+0:32 add second child into first child (temp 4-component vector of float)
+0:32 'v' (temp 4-component vector of float)
+0:32 arc sine (global 4-component vector of float)
+0:32 'v' (temp 4-component vector of float)
+0:33 add second child into first child (temp 4-component vector of float)
+0:33 'v' (temp 4-component vector of float)
+0:33 arc cosine (global 4-component vector of float)
+0:33 'v' (temp 4-component vector of float)
+0:35 add second child into first child (temp 4-component vector of float)
+0:35 'v' (temp 4-component vector of float)
+0:35 arc tangent (global 4-component vector of float)
+0:35 'v' (temp 4-component vector of float)
+0:36 add second child into first child (temp 4-component vector of float)
+0:36 'v' (temp 4-component vector of float)
+0:36 hyp. sine (global 4-component vector of float)
+0:36 'v' (temp 4-component vector of float)
+0:37 add second child into first child (temp 4-component vector of float)
+0:37 'v' (temp 4-component vector of float)
+0:37 hyp. cosine (global 4-component vector of float)
+0:37 'v' (temp 4-component vector of float)
+0:38 add second child into first child (temp 4-component vector of float)
+0:38 'v' (temp 4-component vector of float)
+0:38 hyp. tangent (global 4-component vector of float)
+0:38 'v' (temp 4-component vector of float)
+0:39 add second child into first child (temp 4-component vector of float)
+0:39 'v' (temp 4-component vector of float)
+0:39 arc hyp. sine (global 4-component vector of float)
+0:39 'v' (temp 4-component vector of float)
+0:40 add second child into first child (temp 4-component vector of float)
+0:40 'v' (temp 4-component vector of float)
+0:40 arc hyp. cosine (global 4-component vector of float)
+0:40 'v' (temp 4-component vector of float)
+0:41 add second child into first child (temp 4-component vector of float)
+0:41 'v' (temp 4-component vector of float)
+0:41 arc hyp. tangent (global 4-component vector of float)
+0:41 'v' (temp 4-component vector of float)
+0:43 add second child into first child (temp 4-component vector of float)
+0:43 'v' (temp 4-component vector of float)
+0:43 pow (global 4-component vector of float)
+0:43 'v' (temp 4-component vector of float)
+0:43 'v' (temp 4-component vector of float)
+0:44 add second child into first child (temp 4-component vector of float)
+0:44 'v' (temp 4-component vector of float)
+0:44 exp (global 4-component vector of float)
+0:44 'v' (temp 4-component vector of float)
+0:45 add second child into first child (temp 4-component vector of float)
+0:45 'v' (temp 4-component vector of float)
+0:45 log (global 4-component vector of float)
+0:45 'v' (temp 4-component vector of float)
+0:46 add second child into first child (temp 4-component vector of float)
+0:46 'v' (temp 4-component vector of float)
+0:46 exp2 (global 4-component vector of float)
+0:46 'v' (temp 4-component vector of float)
+0:47 add second child into first child (temp 4-component vector of float)
+0:47 'v' (temp 4-component vector of float)
+0:47 log2 (global 4-component vector of float)
+0:47 'v' (temp 4-component vector of float)
+0:48 add second child into first child (temp 4-component vector of float)
+0:48 'v' (temp 4-component vector of float)
+0:48 sqrt (global 4-component vector of float)
+0:48 'v' (temp 4-component vector of float)
+0:49 add second child into first child (temp 4-component vector of float)
+0:49 'v' (temp 4-component vector of float)
+0:49 inverse sqrt (global 4-component vector of float)
+0:49 'v' (temp 4-component vector of float)
+0:50 add second child into first child (temp 4-component vector of float)
+0:50 'v' (temp 4-component vector of float)
+0:50 Absolute value (global 4-component vector of float)
+0:50 'v' (temp 4-component vector of float)
+0:51 add second child into first child (temp 4-component vector of float)
+0:51 'v' (temp 4-component vector of float)
+0:51 Sign (global 4-component vector of float)
+0:51 'v' (temp 4-component vector of float)
+0:52 add second child into first child (temp 4-component vector of float)
+0:52 'v' (temp 4-component vector of float)
+0:52 Floor (global 4-component vector of float)
+0:52 'v' (temp 4-component vector of float)
+0:55 add second child into first child (temp 4-component vector of float)
+0:55 'v' (temp 4-component vector of float)
+0:55 trunc (global 4-component vector of float)
+0:55 'v' (temp 4-component vector of float)
+0:56 add second child into first child (temp 4-component vector of float)
+0:56 'v' (temp 4-component vector of float)
+0:56 round (global 4-component vector of float)
+0:56 'v' (temp 4-component vector of float)
+0:57 add second child into first child (temp 4-component vector of float)
+0:57 'v' (temp 4-component vector of float)
+0:57 roundEven (global 4-component vector of float)
+0:57 'v' (temp 4-component vector of float)
+0:60 add second child into first child (temp 4-component vector of float)
+0:60 'v' (temp 4-component vector of float)
+0:60 Ceiling (global 4-component vector of float)
+0:60 'v' (temp 4-component vector of float)
+0:61 add second child into first child (temp 4-component vector of float)
+0:61 'v' (temp 4-component vector of float)
+0:61 Fraction (global 4-component vector of float)
+0:61 'v' (temp 4-component vector of float)
+0:62 add second child into first child (temp 4-component vector of float)
+0:62 'v' (temp 4-component vector of float)
+0:62 mod (global 4-component vector of float)
+0:62 'v' (temp 4-component vector of float)
+0:62 'v' (temp 4-component vector of float)
+0:63 add second child into first child (temp 4-component vector of float)
+0:63 'v' (temp 4-component vector of float)
+0:63 mod (global 4-component vector of float)
+0:63 'v' (temp 4-component vector of float)
+0:63 direct index (temp float)
+0:63 'v' (temp 4-component vector of float)
+0:63 Constant:
+0:63 0 (const int)
+0:66 add second child into first child (temp 4-component vector of float)
+0:66 'v' (temp 4-component vector of float)
+0:66 modf (global 4-component vector of float)
+0:66 'v' (temp 4-component vector of float)
+0:66 'v' (temp 4-component vector of float)
+0:69 add second child into first child (temp 4-component vector of float)
+0:69 'v' (temp 4-component vector of float)
+0:69 min (global 4-component vector of float)
+0:69 'v' (temp 4-component vector of float)
+0:69 'uv4' (uniform 4-component vector of float)
+0:70 add second child into first child (temp 4-component vector of float)
+0:70 'v' (temp 4-component vector of float)
+0:70 max (global 4-component vector of float)
+0:70 'v' (temp 4-component vector of float)
+0:70 'uv4' (uniform 4-component vector of float)
+0:71 add second child into first child (temp 4-component vector of float)
+0:71 'v' (temp 4-component vector of float)
+0:71 clamp (global 4-component vector of float)
+0:71 'v' (temp 4-component vector of float)
+0:71 'uv4' (uniform 4-component vector of float)
+0:71 'uv4' (uniform 4-component vector of float)
+0:72 add second child into first child (temp 4-component vector of float)
+0:72 'v' (temp 4-component vector of float)
+0:72 mix (global 4-component vector of float)
+0:72 'v' (temp 4-component vector of float)
+0:72 'v' (temp 4-component vector of float)
+0:72 'v' (temp 4-component vector of float)
+0:75 add second child into first child (temp 4-component vector of float)
+0:75 'v' (temp 4-component vector of float)
+0:75 mix (global 4-component vector of float)
+0:75 'v' (temp 4-component vector of float)
+0:75 'v' (temp 4-component vector of float)
+0:75 'bv4' (temp 4-component vector of bool)
+0:76 add second child into first child (temp 4-component vector of float)
+0:76 'v' (temp 4-component vector of float)
+0:76 Constant:
+0:76 0.000000
+0:77 add second child into first child (temp 4-component vector of float)
+0:77 'v' (temp 4-component vector of float)
+0:77 Constant:
+0:77 0.000000
+0:78 add second child into first child (temp 4-component vector of float)
+0:78 'v' (temp 4-component vector of float)
+0:78 Constant:
+0:78 0.000000
+0:79 add second child into first child (temp 4-component vector of float)
+0:79 'v' (temp 4-component vector of float)
+0:79 Constant:
+0:79 0.000000
+0:80 add second child into first child (temp 4-component vector of float)
+0:80 'v' (temp 4-component vector of float)
+0:80 Constant:
+0:80 0.000000
+0:81 add second child into first child (temp 4-component vector of float)
+0:81 'v' (temp 4-component vector of float)
+0:81 Constant:
+0:81 0.000000
+0:82 add second child into first child (temp 4-component vector of float)
+0:82 'v' (temp 4-component vector of float)
+0:82 Constant:
+0:82 0.000000
+0:83 add second child into first child (temp 4-component vector of float)
+0:83 'v' (temp 4-component vector of float)
+0:83 Constant:
+0:83 0.000000
+0:86 add second child into first child (temp 4-component vector of float)
+0:86 'v' (temp 4-component vector of float)
+0:86 step (global 4-component vector of float)
+0:86 'v' (temp 4-component vector of float)
+0:86 'v' (temp 4-component vector of float)
+0:87 add second child into first child (temp 4-component vector of float)
+0:87 'v' (temp 4-component vector of float)
+0:87 smoothstep (global 4-component vector of float)
+0:87 'v' (temp 4-component vector of float)
+0:87 'v' (temp 4-component vector of float)
+0:87 'v' (temp 4-component vector of float)
+0:88 add second child into first child (temp 4-component vector of float)
+0:88 'v' (temp 4-component vector of float)
+0:88 step (global 4-component vector of float)
+0:88 'uf' (uniform float)
+0:88 'v' (temp 4-component vector of float)
+0:89 add second child into first child (temp 4-component vector of float)
+0:89 'v' (temp 4-component vector of float)
+0:89 smoothstep (global 4-component vector of float)
+0:89 'uf' (uniform float)
+0:89 'uf' (uniform float)
+0:89 'v' (temp 4-component vector of float)
+0:90 add second child into first child (temp 4-component vector of float)
+0:90 'v' (temp 4-component vector of float)
+0:90 normalize (global 4-component vector of float)
+0:90 'v' (temp 4-component vector of float)
+0:91 add second child into first child (temp 4-component vector of float)
+0:91 'v' (temp 4-component vector of float)
+0:91 face-forward (global 4-component vector of float)
+0:91 'v' (temp 4-component vector of float)
+0:91 'v' (temp 4-component vector of float)
+0:91 'v' (temp 4-component vector of float)
+0:92 add second child into first child (temp 4-component vector of float)
+0:92 'v' (temp 4-component vector of float)
+0:92 reflect (global 4-component vector of float)
+0:92 'v' (temp 4-component vector of float)
+0:92 'v' (temp 4-component vector of float)
+0:93 add second child into first child (temp 4-component vector of float)
+0:93 'v' (temp 4-component vector of float)
+0:93 refract (global 4-component vector of float)
+0:93 'v' (temp 4-component vector of float)
+0:93 'v' (temp 4-component vector of float)
+0:93 'uf' (uniform float)
+0:94 add second child into first child (temp 4-component vector of float)
+0:94 'v' (temp 4-component vector of float)
+0:94 dPdx (global 4-component vector of float)
+0:94 'v' (temp 4-component vector of float)
+0:95 add second child into first child (temp 4-component vector of float)
+0:95 'v' (temp 4-component vector of float)
+0:95 dPdy (global 4-component vector of float)
+0:95 'v' (temp 4-component vector of float)
+0:96 add second child into first child (temp 4-component vector of float)
+0:96 'v' (temp 4-component vector of float)
+0:96 fwidth (global 4-component vector of float)
+0:96 'v' (temp 4-component vector of float)
+0:101 add second child into first child (temp int)
+0:101 'i' (temp int)
+0:101 Absolute value (global int)
+0:101 'ui' (uniform int)
+0:102 add second child into first child (temp int)
+0:102 'i' (temp int)
+0:102 Sign (global int)
+0:102 'i' (temp int)
+0:103 add second child into first child (temp int)
+0:103 'i' (temp int)
+0:103 min (global int)
+0:103 'i' (temp int)
+0:103 'ui' (uniform int)
+0:104 add second child into first child (temp int)
+0:104 'i' (temp int)
+0:104 max (global int)
+0:104 'i' (temp int)
+0:104 'ui' (uniform int)
+0:105 add second child into first child (temp int)
+0:105 'i' (temp int)
+0:105 clamp (global int)
+0:105 'i' (temp int)
+0:105 'ui' (uniform int)
+0:105 'ui' (uniform int)
+0:107 Constant:
+0:107 0.000000
+0:108 Constant:
+0:108 0.000000
+0:109 Constant:
+0:109 0.000000
+0:110 Constant:
+0:110 0.000000
+0:113 'u' (temp uint)
+0:114 'u' (temp uint)
+0:115 add second child into first child (temp uint)
+0:115 'u' (temp uint)
+0:115 min (global uint)
+0:115 'u' (temp uint)
+0:115 'uui' (uniform uint)
+0:116 add second child into first child (temp uint)
+0:116 'u' (temp uint)
+0:116 max (global uint)
+0:116 'u' (temp uint)
+0:116 'uui' (uniform uint)
+0:117 add second child into first child (temp uint)
+0:117 'u' (temp uint)
+0:117 clamp (global uint)
+0:117 'u' (temp uint)
+0:117 'uui' (uniform uint)
+0:117 'uui' (uniform uint)
+0:118 'u' (temp uint)
+0:119 'u' (temp uint)
+0:120 'u' (temp uint)
+0:121 'i' (temp int)
+0:122 'i' (temp int)
+0:123 add second child into first child (temp int)
+0:123 'i' (temp int)
+0:123 'i' (temp int)
+0:127 move second child to first child (temp bool)
+0:127 'b' (temp bool)
+0:127 isnan (global bool)
+0:127 'uf' (uniform float)
+0:128 move second child to first child (temp bool)
+0:128 'b' (temp bool)
+0:128 isinf (global bool)
+0:128 direct index (temp float)
+0:128 'v' (temp 4-component vector of float)
+0:128 Constant:
+0:128 1 (const int)
+0:130 move second child to first child (temp bool)
+0:130 'b' (temp bool)
+0:130 any (global bool)
+0:130 Compare Less Than (global 4-component vector of bool)
+0:130 'v' (temp 4-component vector of float)
+0:130 'uv4' (uniform 4-component vector of float)
+0:131 move second child to first child (temp bool)
+0:131 'b' (temp bool)
+0:131 logical-and (temp bool)
+0:131 'b' (temp bool)
+0:131 any (global bool)
+0:131 Compare Less Than or Equal (global 4-component vector of bool)
+0:131 'v' (temp 4-component vector of float)
+0:131 'uv4' (uniform 4-component vector of float)
+0:132 move second child to first child (temp bool)
+0:132 'b' (temp bool)
+0:132 logical-and (temp bool)
+0:132 'b' (temp bool)
+0:132 any (global bool)
+0:132 Compare Greater Than (global 4-component vector of bool)
+0:132 'v' (temp 4-component vector of float)
+0:132 'uv4' (uniform 4-component vector of float)
+0:133 move second child to first child (temp bool)
+0:133 'b' (temp bool)
+0:133 logical-and (temp bool)
+0:133 'b' (temp bool)
+0:133 any (global bool)
+0:133 Compare Greater Than or Equal (global 4-component vector of bool)
+0:133 'v' (temp 4-component vector of float)
+0:133 'uv4' (uniform 4-component vector of float)
+0:134 move second child to first child (temp bool)
+0:134 'b' (temp bool)
+0:134 logical-and (temp bool)
+0:134 'b' (temp bool)
+0:134 any (global bool)
+0:134 Equal (global 4-component vector of bool)
+0:134 'ub41' (uniform 4-component vector of bool)
+0:134 'ub42' (uniform 4-component vector of bool)
+0:135 move second child to first child (temp bool)
+0:135 'b' (temp bool)
+0:135 logical-and (temp bool)
+0:135 'b' (temp bool)
+0:135 any (global bool)
+0:135 NotEqual (global 4-component vector of bool)
+0:135 'ub41' (uniform 4-component vector of bool)
+0:135 'ub42' (uniform 4-component vector of bool)
+0:136 move second child to first child (temp bool)
+0:136 'b' (temp bool)
+0:136 logical-and (temp bool)
+0:136 'b' (temp bool)
+0:136 any (global bool)
+0:136 'ub41' (uniform 4-component vector of bool)
+0:137 move second child to first child (temp bool)
+0:137 'b' (temp bool)
+0:137 logical-and (temp bool)
+0:137 'b' (temp bool)
+0:137 all (global bool)
+0:137 'ub41' (uniform 4-component vector of bool)
+0:138 move second child to first child (temp bool)
+0:138 'b' (temp bool)
+0:138 logical-and (temp bool)
+0:138 'b' (temp bool)
+0:138 any (global bool)
+0:138 Negate conditional (global 4-component vector of bool)
+0:138 'ub41' (uniform 4-component vector of bool)
+0:140 move second child to first child (temp int)
+0:140 'i' (temp int)
+0:140 divide (temp int)
+0:140 subtract (temp int)
+0:140 component-wise multiply (temp int)
+0:140 add (temp int)
+0:140 'i' (temp int)
+0:140 'ui' (uniform int)
+0:140 'i' (temp int)
+0:140 'ui' (uniform int)
+0:140 'i' (temp int)
+0:141 move second child to first child (temp int)
+0:141 'i' (temp int)
+0:141 mod (temp int)
+0:141 'i' (temp int)
+0:141 'ui' (uniform int)
+0:142 Test condition and select (temp void)
+0:142 Condition
+0:142 logical-or (temp bool)
+0:142 Compare Equal (temp bool)
+0:142 'i' (temp int)
+0:142 'ui' (uniform int)
+0:142 logical-xor (temp bool)
+0:142 logical-and (temp bool)
+0:142 Compare Not Equal (temp bool)
+0:142 'i' (temp int)
+0:142 'ui' (uniform int)
+0:142 Compare Equal (temp bool)
+0:142 'i' (temp int)
+0:142 'ui' (uniform int)
+0:142 Compare Not Equal (temp bool)
+0:142 'i' (temp int)
+0:142 Constant:
+0:142 2 (const int)
+0:142 true case
+0:143 Pre-Increment (temp int)
+0:143 'i' (temp int)
+0:145 move second child to first child (temp float)
+0:145 'f' (temp float)
+0:145 divide (temp float)
+0:145 subtract (temp float)
+0:145 component-wise multiply (temp float)
+0:145 add (temp float)
+0:145 'uf' (uniform float)
+0:145 'uf' (uniform float)
+0:145 'uf' (uniform float)
+0:145 'uf' (uniform float)
+0:145 'uf' (uniform float)
+0:147 add second child into first child (temp float)
+0:147 'f' (temp float)
+0:147 length (global float)
+0:147 'v' (temp 4-component vector of float)
+0:148 add second child into first child (temp float)
+0:148 'f' (temp float)
+0:148 distance (global float)
+0:148 'v' (temp 4-component vector of float)
+0:148 'v' (temp 4-component vector of float)
+0:149 add second child into first child (temp float)
+0:149 'f' (temp float)
+0:149 dot-product (global float)
+0:149 'v' (temp 4-component vector of float)
+0:149 'v' (temp 4-component vector of float)
+0:150 add second child into first child (temp float)
+0:150 'f' (temp float)
+0:150 dot-product (global float)
+0:150 'f' (temp float)
+0:150 'uf' (uniform float)
+0:151 add second child into first child (temp float)
+0:151 'f' (temp float)
+0:151 direct index (temp float)
+0:151 cross-product (global 3-component vector of float)
+0:151 vector swizzle (temp 3-component vector of float)
+0:151 'v' (temp 4-component vector of float)
+0:151 Sequence
+0:151 Constant:
+0:151 0 (const int)
+0:151 Constant:
+0:151 1 (const int)
+0:151 Constant:
+0:151 2 (const int)
+0:151 vector swizzle (temp 3-component vector of float)
+0:151 'v' (temp 4-component vector of float)
+0:151 Sequence
+0:151 Constant:
+0:151 0 (const int)
+0:151 Constant:
+0:151 1 (const int)
+0:151 Constant:
+0:151 2 (const int)
+0:151 Constant:
+0:151 0 (const int)
+0:153 Test condition and select (temp void)
+0:153 Condition
+0:153 logical-or (temp bool)
+0:153 Compare Equal (temp bool)
+0:153 'f' (temp float)
+0:153 'uf' (uniform float)
+0:153 logical-and (temp bool)
+0:153 Compare Not Equal (temp bool)
+0:153 'f' (temp float)
+0:153 'uf' (uniform float)
+0:153 Compare Not Equal (temp bool)
+0:153 'f' (temp float)
+0:153 Constant:
+0:153 2.000000
+0:153 true case
+0:154 Pre-Increment (temp float)
+0:154 'f' (temp float)
+0:156 and second child into first child (temp int)
+0:156 'i' (temp int)
+0:156 'ui' (uniform int)
+0:157 or second child into first child (temp int)
+0:157 'i' (temp int)
+0:157 Constant:
+0:157 66 (const int)
+0:158 exclusive or second child into first child (temp int)
+0:158 'i' (temp int)
+0:158 'ui' (uniform int)
+0:159 mod second child into first child (temp int)
+0:159 'i' (temp int)
+0:159 Constant:
+0:159 17 (const int)
+0:160 right shift second child into first child (temp int)
+0:160 'i' (temp int)
+0:160 Constant:
+0:160 2 (const int)
+0:161 left shift second child into first child (temp int)
+0:161 'i' (temp int)
+0:161 'ui' (uniform int)
+0:162 move second child to first child (temp int)
+0:162 'i' (temp int)
+0:162 Bitwise not (temp int)
+0:162 'i' (temp int)
+0:163 move second child to first child (temp bool)
+0:163 'b' (temp bool)
+0:163 Negate conditional (temp bool)
+0:163 'b' (temp bool)
+0:165 move second child to first child (temp 4-component vector of float)
+0:165 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:165 Test condition and select (temp 4-component vector of float)
+0:165 Condition
+0:165 'b' (temp bool)
+0:165 true case
+0:165 add (temp 4-component vector of float)
+0:165 add (temp 4-component vector of float)
+0:165 Construct vec4 (temp 4-component vector of float)
+0:165 Convert int to float (temp float)
+0:165 'i' (temp int)
+0:165 Construct vec4 (temp 4-component vector of float)
+0:165 'f' (temp float)
+0:165 'v' (temp 4-component vector of float)
+0:165 false case
+0:165 'v' (temp 4-component vector of float)
+0:? Linker Objects
+0:? 'uiv4' (uniform 4-component vector of int)
+0:? 'uv4' (uniform 4-component vector of float)
+0:? 'ub' (uniform bool)
+0:? 'ub41' (uniform 4-component vector of bool)
+0:? 'ub42' (uniform 4-component vector of bool)
+0:? 'uf' (uniform float)
+0:? 'ui' (uniform int)
+0:? 'uuv4' (uniform 4-component vector of uint)
+0:? 'uui' (uniform uint)
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+ERROR: node is still EOpNull!
+0:15 Function Definition: main( (global void)
+0:15 Function Parameters:
+0:? Sequence
+0:27 move second child to first child (temp 4-component vector of float)
+0:27 'v' (temp 4-component vector of float)
+0:27 radians (global 4-component vector of float)
+0:27 'uv4' (uniform 4-component vector of float)
+0:28 add second child into first child (temp 4-component vector of float)
+0:28 'v' (temp 4-component vector of float)
+0:28 degrees (global 4-component vector of float)
+0:28 'v' (temp 4-component vector of float)
+0:29 add second child into first child (temp 4-component vector of float)
+0:29 'v' (temp 4-component vector of float)
+0:29 Comma (temp 4-component vector of float)
+0:29 move second child to first child (temp int)
+0:29 'i' (temp int)
+0:29 component-wise multiply (temp int)
+0:29 'ui' (uniform int)
+0:29 'ui' (uniform int)
+0:29 sine (global 4-component vector of float)
+0:29 'v' (temp 4-component vector of float)
+0:30 add second child into first child (temp 4-component vector of float)
+0:30 'v' (temp 4-component vector of float)
+0:30 cosine (global 4-component vector of float)
+0:30 'v' (temp 4-component vector of float)
+0:31 add second child into first child (temp 4-component vector of float)
+0:31 'v' (temp 4-component vector of float)
+0:31 tangent (global 4-component vector of float)
+0:31 'v' (temp 4-component vector of float)
+0:32 add second child into first child (temp 4-component vector of float)
+0:32 'v' (temp 4-component vector of float)
+0:32 arc sine (global 4-component vector of float)
+0:32 'v' (temp 4-component vector of float)
+0:33 add second child into first child (temp 4-component vector of float)
+0:33 'v' (temp 4-component vector of float)
+0:33 arc cosine (global 4-component vector of float)
+0:33 'v' (temp 4-component vector of float)
+0:35 add second child into first child (temp 4-component vector of float)
+0:35 'v' (temp 4-component vector of float)
+0:35 arc tangent (global 4-component vector of float)
+0:35 'v' (temp 4-component vector of float)
+0:36 add second child into first child (temp 4-component vector of float)
+0:36 'v' (temp 4-component vector of float)
+0:36 hyp. sine (global 4-component vector of float)
+0:36 'v' (temp 4-component vector of float)
+0:37 add second child into first child (temp 4-component vector of float)
+0:37 'v' (temp 4-component vector of float)
+0:37 hyp. cosine (global 4-component vector of float)
+0:37 'v' (temp 4-component vector of float)
+0:38 add second child into first child (temp 4-component vector of float)
+0:38 'v' (temp 4-component vector of float)
+0:38 hyp. tangent (global 4-component vector of float)
+0:38 'v' (temp 4-component vector of float)
+0:39 add second child into first child (temp 4-component vector of float)
+0:39 'v' (temp 4-component vector of float)
+0:39 arc hyp. sine (global 4-component vector of float)
+0:39 'v' (temp 4-component vector of float)
+0:40 add second child into first child (temp 4-component vector of float)
+0:40 'v' (temp 4-component vector of float)
+0:40 arc hyp. cosine (global 4-component vector of float)
+0:40 'v' (temp 4-component vector of float)
+0:41 add second child into first child (temp 4-component vector of float)
+0:41 'v' (temp 4-component vector of float)
+0:41 arc hyp. tangent (global 4-component vector of float)
+0:41 'v' (temp 4-component vector of float)
+0:43 add second child into first child (temp 4-component vector of float)
+0:43 'v' (temp 4-component vector of float)
+0:43 pow (global 4-component vector of float)
+0:43 'v' (temp 4-component vector of float)
+0:43 'v' (temp 4-component vector of float)
+0:44 add second child into first child (temp 4-component vector of float)
+0:44 'v' (temp 4-component vector of float)
+0:44 exp (global 4-component vector of float)
+0:44 'v' (temp 4-component vector of float)
+0:45 add second child into first child (temp 4-component vector of float)
+0:45 'v' (temp 4-component vector of float)
+0:45 log (global 4-component vector of float)
+0:45 'v' (temp 4-component vector of float)
+0:46 add second child into first child (temp 4-component vector of float)
+0:46 'v' (temp 4-component vector of float)
+0:46 exp2 (global 4-component vector of float)
+0:46 'v' (temp 4-component vector of float)
+0:47 add second child into first child (temp 4-component vector of float)
+0:47 'v' (temp 4-component vector of float)
+0:47 log2 (global 4-component vector of float)
+0:47 'v' (temp 4-component vector of float)
+0:48 add second child into first child (temp 4-component vector of float)
+0:48 'v' (temp 4-component vector of float)
+0:48 sqrt (global 4-component vector of float)
+0:48 'v' (temp 4-component vector of float)
+0:49 add second child into first child (temp 4-component vector of float)
+0:49 'v' (temp 4-component vector of float)
+0:49 inverse sqrt (global 4-component vector of float)
+0:49 'v' (temp 4-component vector of float)
+0:50 add second child into first child (temp 4-component vector of float)
+0:50 'v' (temp 4-component vector of float)
+0:50 Absolute value (global 4-component vector of float)
+0:50 'v' (temp 4-component vector of float)
+0:51 add second child into first child (temp 4-component vector of float)
+0:51 'v' (temp 4-component vector of float)
+0:51 Sign (global 4-component vector of float)
+0:51 'v' (temp 4-component vector of float)
+0:52 add second child into first child (temp 4-component vector of float)
+0:52 'v' (temp 4-component vector of float)
+0:52 Floor (global 4-component vector of float)
+0:52 'v' (temp 4-component vector of float)
+0:55 add second child into first child (temp 4-component vector of float)
+0:55 'v' (temp 4-component vector of float)
+0:55 trunc (global 4-component vector of float)
+0:55 'v' (temp 4-component vector of float)
+0:56 add second child into first child (temp 4-component vector of float)
+0:56 'v' (temp 4-component vector of float)
+0:56 round (global 4-component vector of float)
+0:56 'v' (temp 4-component vector of float)
+0:57 add second child into first child (temp 4-component vector of float)
+0:57 'v' (temp 4-component vector of float)
+0:57 roundEven (global 4-component vector of float)
+0:57 'v' (temp 4-component vector of float)
+0:60 add second child into first child (temp 4-component vector of float)
+0:60 'v' (temp 4-component vector of float)
+0:60 Ceiling (global 4-component vector of float)
+0:60 'v' (temp 4-component vector of float)
+0:61 add second child into first child (temp 4-component vector of float)
+0:61 'v' (temp 4-component vector of float)
+0:61 Fraction (global 4-component vector of float)
+0:61 'v' (temp 4-component vector of float)
+0:62 add second child into first child (temp 4-component vector of float)
+0:62 'v' (temp 4-component vector of float)
+0:62 mod (global 4-component vector of float)
+0:62 'v' (temp 4-component vector of float)
+0:62 'v' (temp 4-component vector of float)
+0:63 add second child into first child (temp 4-component vector of float)
+0:63 'v' (temp 4-component vector of float)
+0:63 mod (global 4-component vector of float)
+0:63 'v' (temp 4-component vector of float)
+0:63 direct index (temp float)
+0:63 'v' (temp 4-component vector of float)
+0:63 Constant:
+0:63 0 (const int)
+0:66 add second child into first child (temp 4-component vector of float)
+0:66 'v' (temp 4-component vector of float)
+0:66 modf (global 4-component vector of float)
+0:66 'v' (temp 4-component vector of float)
+0:66 'v' (temp 4-component vector of float)
+0:69 add second child into first child (temp 4-component vector of float)
+0:69 'v' (temp 4-component vector of float)
+0:69 min (global 4-component vector of float)
+0:69 'v' (temp 4-component vector of float)
+0:69 'uv4' (uniform 4-component vector of float)
+0:70 add second child into first child (temp 4-component vector of float)
+0:70 'v' (temp 4-component vector of float)
+0:70 max (global 4-component vector of float)
+0:70 'v' (temp 4-component vector of float)
+0:70 'uv4' (uniform 4-component vector of float)
+0:71 add second child into first child (temp 4-component vector of float)
+0:71 'v' (temp 4-component vector of float)
+0:71 clamp (global 4-component vector of float)
+0:71 'v' (temp 4-component vector of float)
+0:71 'uv4' (uniform 4-component vector of float)
+0:71 'uv4' (uniform 4-component vector of float)
+0:72 add second child into first child (temp 4-component vector of float)
+0:72 'v' (temp 4-component vector of float)
+0:72 mix (global 4-component vector of float)
+0:72 'v' (temp 4-component vector of float)
+0:72 'v' (temp 4-component vector of float)
+0:72 'v' (temp 4-component vector of float)
+0:75 add second child into first child (temp 4-component vector of float)
+0:75 'v' (temp 4-component vector of float)
+0:75 mix (global 4-component vector of float)
+0:75 'v' (temp 4-component vector of float)
+0:75 'v' (temp 4-component vector of float)
+0:75 'bv4' (temp 4-component vector of bool)
+0:76 add second child into first child (temp 4-component vector of float)
+0:76 'v' (temp 4-component vector of float)
+0:76 Constant:
+0:76 0.000000
+0:77 add second child into first child (temp 4-component vector of float)
+0:77 'v' (temp 4-component vector of float)
+0:77 Constant:
+0:77 0.000000
+0:78 add second child into first child (temp 4-component vector of float)
+0:78 'v' (temp 4-component vector of float)
+0:78 Constant:
+0:78 0.000000
+0:79 add second child into first child (temp 4-component vector of float)
+0:79 'v' (temp 4-component vector of float)
+0:79 Constant:
+0:79 0.000000
+0:80 add second child into first child (temp 4-component vector of float)
+0:80 'v' (temp 4-component vector of float)
+0:80 Constant:
+0:80 0.000000
+0:81 add second child into first child (temp 4-component vector of float)
+0:81 'v' (temp 4-component vector of float)
+0:81 Constant:
+0:81 0.000000
+0:82 add second child into first child (temp 4-component vector of float)
+0:82 'v' (temp 4-component vector of float)
+0:82 Constant:
+0:82 0.000000
+0:83 add second child into first child (temp 4-component vector of float)
+0:83 'v' (temp 4-component vector of float)
+0:83 Constant:
+0:83 0.000000
+0:86 add second child into first child (temp 4-component vector of float)
+0:86 'v' (temp 4-component vector of float)
+0:86 step (global 4-component vector of float)
+0:86 'v' (temp 4-component vector of float)
+0:86 'v' (temp 4-component vector of float)
+0:87 add second child into first child (temp 4-component vector of float)
+0:87 'v' (temp 4-component vector of float)
+0:87 smoothstep (global 4-component vector of float)
+0:87 'v' (temp 4-component vector of float)
+0:87 'v' (temp 4-component vector of float)
+0:87 'v' (temp 4-component vector of float)
+0:88 add second child into first child (temp 4-component vector of float)
+0:88 'v' (temp 4-component vector of float)
+0:88 step (global 4-component vector of float)
+0:88 'uf' (uniform float)
+0:88 'v' (temp 4-component vector of float)
+0:89 add second child into first child (temp 4-component vector of float)
+0:89 'v' (temp 4-component vector of float)
+0:89 smoothstep (global 4-component vector of float)
+0:89 'uf' (uniform float)
+0:89 'uf' (uniform float)
+0:89 'v' (temp 4-component vector of float)
+0:90 add second child into first child (temp 4-component vector of float)
+0:90 'v' (temp 4-component vector of float)
+0:90 normalize (global 4-component vector of float)
+0:90 'v' (temp 4-component vector of float)
+0:91 add second child into first child (temp 4-component vector of float)
+0:91 'v' (temp 4-component vector of float)
+0:91 face-forward (global 4-component vector of float)
+0:91 'v' (temp 4-component vector of float)
+0:91 'v' (temp 4-component vector of float)
+0:91 'v' (temp 4-component vector of float)
+0:92 add second child into first child (temp 4-component vector of float)
+0:92 'v' (temp 4-component vector of float)
+0:92 reflect (global 4-component vector of float)
+0:92 'v' (temp 4-component vector of float)
+0:92 'v' (temp 4-component vector of float)
+0:93 add second child into first child (temp 4-component vector of float)
+0:93 'v' (temp 4-component vector of float)
+0:93 refract (global 4-component vector of float)
+0:93 'v' (temp 4-component vector of float)
+0:93 'v' (temp 4-component vector of float)
+0:93 'uf' (uniform float)
+0:94 add second child into first child (temp 4-component vector of float)
+0:94 'v' (temp 4-component vector of float)
+0:94 dPdx (global 4-component vector of float)
+0:94 'v' (temp 4-component vector of float)
+0:95 add second child into first child (temp 4-component vector of float)
+0:95 'v' (temp 4-component vector of float)
+0:95 dPdy (global 4-component vector of float)
+0:95 'v' (temp 4-component vector of float)
+0:96 add second child into first child (temp 4-component vector of float)
+0:96 'v' (temp 4-component vector of float)
+0:96 fwidth (global 4-component vector of float)
+0:96 'v' (temp 4-component vector of float)
+0:101 add second child into first child (temp int)
+0:101 'i' (temp int)
+0:101 Absolute value (global int)
+0:101 'ui' (uniform int)
+0:102 add second child into first child (temp int)
+0:102 'i' (temp int)
+0:102 Sign (global int)
+0:102 'i' (temp int)
+0:103 add second child into first child (temp int)
+0:103 'i' (temp int)
+0:103 min (global int)
+0:103 'i' (temp int)
+0:103 'ui' (uniform int)
+0:104 add second child into first child (temp int)
+0:104 'i' (temp int)
+0:104 max (global int)
+0:104 'i' (temp int)
+0:104 'ui' (uniform int)
+0:105 add second child into first child (temp int)
+0:105 'i' (temp int)
+0:105 clamp (global int)
+0:105 'i' (temp int)
+0:105 'ui' (uniform int)
+0:105 'ui' (uniform int)
+0:107 Constant:
+0:107 0.000000
+0:108 Constant:
+0:108 0.000000
+0:109 Constant:
+0:109 0.000000
+0:110 Constant:
+0:110 0.000000
+0:113 'u' (temp uint)
+0:114 'u' (temp uint)
+0:115 add second child into first child (temp uint)
+0:115 'u' (temp uint)
+0:115 min (global uint)
+0:115 'u' (temp uint)
+0:115 'uui' (uniform uint)
+0:116 add second child into first child (temp uint)
+0:116 'u' (temp uint)
+0:116 max (global uint)
+0:116 'u' (temp uint)
+0:116 'uui' (uniform uint)
+0:117 add second child into first child (temp uint)
+0:117 'u' (temp uint)
+0:117 clamp (global uint)
+0:117 'u' (temp uint)
+0:117 'uui' (uniform uint)
+0:117 'uui' (uniform uint)
+0:118 'u' (temp uint)
+0:119 'u' (temp uint)
+0:120 'u' (temp uint)
+0:121 'i' (temp int)
+0:122 'i' (temp int)
+0:123 add second child into first child (temp int)
+0:123 'i' (temp int)
+0:123 'i' (temp int)
+0:127 move second child to first child (temp bool)
+0:127 'b' (temp bool)
+0:127 isnan (global bool)
+0:127 'uf' (uniform float)
+0:128 move second child to first child (temp bool)
+0:128 'b' (temp bool)
+0:128 isinf (global bool)
+0:128 direct index (temp float)
+0:128 'v' (temp 4-component vector of float)
+0:128 Constant:
+0:128 1 (const int)
+0:130 move second child to first child (temp bool)
+0:130 'b' (temp bool)
+0:130 any (global bool)
+0:130 Compare Less Than (global 4-component vector of bool)
+0:130 'v' (temp 4-component vector of float)
+0:130 'uv4' (uniform 4-component vector of float)
+0:131 move second child to first child (temp bool)
+0:131 'b' (temp bool)
+0:131 logical-and (temp bool)
+0:131 'b' (temp bool)
+0:131 any (global bool)
+0:131 Compare Less Than or Equal (global 4-component vector of bool)
+0:131 'v' (temp 4-component vector of float)
+0:131 'uv4' (uniform 4-component vector of float)
+0:132 move second child to first child (temp bool)
+0:132 'b' (temp bool)
+0:132 logical-and (temp bool)
+0:132 'b' (temp bool)
+0:132 any (global bool)
+0:132 Compare Greater Than (global 4-component vector of bool)
+0:132 'v' (temp 4-component vector of float)
+0:132 'uv4' (uniform 4-component vector of float)
+0:133 move second child to first child (temp bool)
+0:133 'b' (temp bool)
+0:133 logical-and (temp bool)
+0:133 'b' (temp bool)
+0:133 any (global bool)
+0:133 Compare Greater Than or Equal (global 4-component vector of bool)
+0:133 'v' (temp 4-component vector of float)
+0:133 'uv4' (uniform 4-component vector of float)
+0:134 move second child to first child (temp bool)
+0:134 'b' (temp bool)
+0:134 logical-and (temp bool)
+0:134 'b' (temp bool)
+0:134 any (global bool)
+0:134 Equal (global 4-component vector of bool)
+0:134 'ub41' (uniform 4-component vector of bool)
+0:134 'ub42' (uniform 4-component vector of bool)
+0:135 move second child to first child (temp bool)
+0:135 'b' (temp bool)
+0:135 logical-and (temp bool)
+0:135 'b' (temp bool)
+0:135 any (global bool)
+0:135 NotEqual (global 4-component vector of bool)
+0:135 'ub41' (uniform 4-component vector of bool)
+0:135 'ub42' (uniform 4-component vector of bool)
+0:136 move second child to first child (temp bool)
+0:136 'b' (temp bool)
+0:136 logical-and (temp bool)
+0:136 'b' (temp bool)
+0:136 any (global bool)
+0:136 'ub41' (uniform 4-component vector of bool)
+0:137 move second child to first child (temp bool)
+0:137 'b' (temp bool)
+0:137 logical-and (temp bool)
+0:137 'b' (temp bool)
+0:137 all (global bool)
+0:137 'ub41' (uniform 4-component vector of bool)
+0:138 move second child to first child (temp bool)
+0:138 'b' (temp bool)
+0:138 logical-and (temp bool)
+0:138 'b' (temp bool)
+0:138 any (global bool)
+0:138 Negate conditional (global 4-component vector of bool)
+0:138 'ub41' (uniform 4-component vector of bool)
+0:140 move second child to first child (temp int)
+0:140 'i' (temp int)
+0:140 divide (temp int)
+0:140 subtract (temp int)
+0:140 component-wise multiply (temp int)
+0:140 add (temp int)
+0:140 'i' (temp int)
+0:140 'ui' (uniform int)
+0:140 'i' (temp int)
+0:140 'ui' (uniform int)
+0:140 'i' (temp int)
+0:141 move second child to first child (temp int)
+0:141 'i' (temp int)
+0:141 mod (temp int)
+0:141 'i' (temp int)
+0:141 'ui' (uniform int)
+0:142 Test condition and select (temp void)
+0:142 Condition
+0:142 logical-or (temp bool)
+0:142 Compare Equal (temp bool)
+0:142 'i' (temp int)
+0:142 'ui' (uniform int)
+0:142 logical-xor (temp bool)
+0:142 logical-and (temp bool)
+0:142 Compare Not Equal (temp bool)
+0:142 'i' (temp int)
+0:142 'ui' (uniform int)
+0:142 Compare Equal (temp bool)
+0:142 'i' (temp int)
+0:142 'ui' (uniform int)
+0:142 Compare Not Equal (temp bool)
+0:142 'i' (temp int)
+0:142 Constant:
+0:142 2 (const int)
+0:142 true case
+0:143 Pre-Increment (temp int)
+0:143 'i' (temp int)
+0:145 move second child to first child (temp float)
+0:145 'f' (temp float)
+0:145 divide (temp float)
+0:145 subtract (temp float)
+0:145 component-wise multiply (temp float)
+0:145 add (temp float)
+0:145 'uf' (uniform float)
+0:145 'uf' (uniform float)
+0:145 'uf' (uniform float)
+0:145 'uf' (uniform float)
+0:145 'uf' (uniform float)
+0:147 add second child into first child (temp float)
+0:147 'f' (temp float)
+0:147 length (global float)
+0:147 'v' (temp 4-component vector of float)
+0:148 add second child into first child (temp float)
+0:148 'f' (temp float)
+0:148 distance (global float)
+0:148 'v' (temp 4-component vector of float)
+0:148 'v' (temp 4-component vector of float)
+0:149 add second child into first child (temp float)
+0:149 'f' (temp float)
+0:149 dot-product (global float)
+0:149 'v' (temp 4-component vector of float)
+0:149 'v' (temp 4-component vector of float)
+0:150 add second child into first child (temp float)
+0:150 'f' (temp float)
+0:150 dot-product (global float)
+0:150 'f' (temp float)
+0:150 'uf' (uniform float)
+0:151 add second child into first child (temp float)
+0:151 'f' (temp float)
+0:151 direct index (temp float)
+0:151 cross-product (global 3-component vector of float)
+0:151 vector swizzle (temp 3-component vector of float)
+0:151 'v' (temp 4-component vector of float)
+0:151 Sequence
+0:151 Constant:
+0:151 0 (const int)
+0:151 Constant:
+0:151 1 (const int)
+0:151 Constant:
+0:151 2 (const int)
+0:151 vector swizzle (temp 3-component vector of float)
+0:151 'v' (temp 4-component vector of float)
+0:151 Sequence
+0:151 Constant:
+0:151 0 (const int)
+0:151 Constant:
+0:151 1 (const int)
+0:151 Constant:
+0:151 2 (const int)
+0:151 Constant:
+0:151 0 (const int)
+0:153 Test condition and select (temp void)
+0:153 Condition
+0:153 logical-or (temp bool)
+0:153 Compare Equal (temp bool)
+0:153 'f' (temp float)
+0:153 'uf' (uniform float)
+0:153 logical-and (temp bool)
+0:153 Compare Not Equal (temp bool)
+0:153 'f' (temp float)
+0:153 'uf' (uniform float)
+0:153 Compare Not Equal (temp bool)
+0:153 'f' (temp float)
+0:153 Constant:
+0:153 2.000000
+0:153 true case
+0:154 Pre-Increment (temp float)
+0:154 'f' (temp float)
+0:156 and second child into first child (temp int)
+0:156 'i' (temp int)
+0:156 'ui' (uniform int)
+0:157 or second child into first child (temp int)
+0:157 'i' (temp int)
+0:157 Constant:
+0:157 66 (const int)
+0:158 exclusive or second child into first child (temp int)
+0:158 'i' (temp int)
+0:158 'ui' (uniform int)
+0:159 mod second child into first child (temp int)
+0:159 'i' (temp int)
+0:159 Constant:
+0:159 17 (const int)
+0:160 right shift second child into first child (temp int)
+0:160 'i' (temp int)
+0:160 Constant:
+0:160 2 (const int)
+0:161 left shift second child into first child (temp int)
+0:161 'i' (temp int)
+0:161 'ui' (uniform int)
+0:162 move second child to first child (temp int)
+0:162 'i' (temp int)
+0:162 Bitwise not (temp int)
+0:162 'i' (temp int)
+0:163 move second child to first child (temp bool)
+0:163 'b' (temp bool)
+0:163 Negate conditional (temp bool)
+0:163 'b' (temp bool)
+0:165 move second child to first child (temp 4-component vector of float)
+0:165 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:165 Test condition and select (temp 4-component vector of float)
+0:165 Condition
+0:165 'b' (temp bool)
+0:165 true case
+0:165 add (temp 4-component vector of float)
+0:165 add (temp 4-component vector of float)
+0:165 Construct vec4 (temp 4-component vector of float)
+0:165 Convert int to float (temp float)
+0:165 'i' (temp int)
+0:165 Construct vec4 (temp 4-component vector of float)
+0:165 'f' (temp float)
+0:165 'v' (temp 4-component vector of float)
+0:165 false case
+0:165 'v' (temp 4-component vector of float)
+0:? Linker Objects
+0:? 'uiv4' (uniform 4-component vector of int)
+0:? 'uv4' (uniform 4-component vector of float)
+0:? 'ub' (uniform bool)
+0:? 'ub41' (uniform 4-component vector of bool)
+0:? 'ub42' (uniform 4-component vector of bool)
+0:? 'uf' (uniform float)
+0:? 'ui' (uniform int)
+0:? 'uuv4' (uniform 4-component vector of uint)
+0:? 'uui' (uniform uint)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/aggOps.frag.out b/chromium/third_party/glslang/src/Test/baseResults/aggOps.frag.out
new file mode 100644
index 00000000000..7a60fbc6d03
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/aggOps.frag.out
@@ -0,0 +1,298 @@
+aggOps.frag
+WARNING: 0:4: varying deprecated in version 130; may be removed in future release
+WARNING: 0:6: varying deprecated in version 130; may be removed in future release
+
+Shader version: 130
+0:? Sequence
+0:23 Function Definition: main( (global void)
+0:23 Function Parameters:
+0:? Sequence
+0:27 move second child to first child (temp 3-element array of structure{global int i, global float f})
+0:27 'a' (temp 3-element array of structure{global int i, global float f})
+0:27 Construct structure (temp 3-element array of structure{global int i, global float f})
+0:27 Construct structure (temp structure{global int i, global float f})
+0:27 Convert float to int (temp int)
+0:27 direct index (temp float)
+0:27 'u' (smooth in 4-component vector of float)
+0:27 Constant:
+0:27 0 (const int)
+0:27 direct index (temp float)
+0:27 'u' (smooth in 4-component vector of float)
+0:27 Constant:
+0:27 1 (const int)
+0:27 Construct structure (temp structure{global int i, global float f})
+0:27 Convert float to int (temp int)
+0:27 direct index (temp float)
+0:27 'u' (smooth in 4-component vector of float)
+0:27 Constant:
+0:27 2 (const int)
+0:27 direct index (temp float)
+0:27 'u' (smooth in 4-component vector of float)
+0:27 Constant:
+0:27 3 (const int)
+0:27 Constant:
+0:27 14 (const int)
+0:27 14.000000
+0:28 move second child to first child (temp 3-element array of structure{global int i, global float f})
+0:28 'b' (temp 3-element array of structure{global int i, global float f})
+0:28 Construct structure (temp 3-element array of structure{global int i, global float f})
+0:28 Constant:
+0:28 17 (const int)
+0:28 17.000000
+0:28 Construct structure (temp structure{global int i, global float f})
+0:28 Convert float to int (temp int)
+0:28 direct index (temp float)
+0:28 'w' (smooth in 4-component vector of float)
+0:28 Constant:
+0:28 0 (const int)
+0:28 direct index (temp float)
+0:28 'w' (smooth in 4-component vector of float)
+0:28 Constant:
+0:28 1 (const int)
+0:28 Construct structure (temp structure{global int i, global float f})
+0:28 Convert float to int (temp int)
+0:28 direct index (temp float)
+0:28 'w' (smooth in 4-component vector of float)
+0:28 Constant:
+0:28 2 (const int)
+0:28 direct index (temp float)
+0:28 'w' (smooth in 4-component vector of float)
+0:28 Constant:
+0:28 3 (const int)
+0:30 Test condition and select (temp void)
+0:30 Condition
+0:30 Compare Equal (temp bool)
+0:30 'foo2a' (uniform structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:30 'foo2b' (uniform structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:30 true case
+0:31 move second child to first child (temp 4-component vector of float)
+0:31 'v' (temp 4-component vector of float)
+0:31 texture (global 4-component vector of float)
+0:31 'sampler' (uniform sampler2D)
+0:31 'coord' (smooth in 2-component vector of float)
+0:30 false case
+0:33 move second child to first child (temp 4-component vector of float)
+0:33 'v' (temp 4-component vector of float)
+0:33 texture (global 4-component vector of float)
+0:33 'sampler' (uniform sampler2D)
+0:33 vector-scale (temp 2-component vector of float)
+0:33 Constant:
+0:33 2.000000
+0:33 'coord' (smooth in 2-component vector of float)
+0:35 Test condition and select (temp void)
+0:35 Condition
+0:35 Compare Equal (temp bool)
+0:35 'u' (smooth in 4-component vector of float)
+0:35 'v' (temp 4-component vector of float)
+0:35 true case
+0:36 vector scale second child into first child (temp 4-component vector of float)
+0:36 'v' (temp 4-component vector of float)
+0:36 Constant:
+0:36 3.000000
+0:38 Test condition and select (temp void)
+0:38 Condition
+0:38 Compare Not Equal (temp bool)
+0:38 'u' (smooth in 4-component vector of float)
+0:38 'v' (temp 4-component vector of float)
+0:38 true case
+0:39 vector scale second child into first child (temp 4-component vector of float)
+0:39 'v' (temp 4-component vector of float)
+0:39 Constant:
+0:39 4.000000
+0:41 Test condition and select (temp void)
+0:41 Condition
+0:41 Compare Equal (temp bool)
+0:41 'coord' (smooth in 2-component vector of float)
+0:41 vector swizzle (temp 2-component vector of float)
+0:41 'v' (temp 4-component vector of float)
+0:41 Sequence
+0:41 Constant:
+0:41 1 (const int)
+0:41 Constant:
+0:41 3 (const int)
+0:41 true case
+0:42 vector scale second child into first child (temp 4-component vector of float)
+0:42 'v' (temp 4-component vector of float)
+0:42 Constant:
+0:42 5.000000
+0:44 Test condition and select (temp void)
+0:44 Condition
+0:44 Compare Equal (temp bool)
+0:44 'a' (temp 3-element array of structure{global int i, global float f})
+0:44 'b' (temp 3-element array of structure{global int i, global float f})
+0:44 true case
+0:45 vector scale second child into first child (temp 4-component vector of float)
+0:45 'v' (temp 4-component vector of float)
+0:45 Constant:
+0:45 6.000000
+0:47 Test condition and select (temp void)
+0:47 Condition
+0:47 Compare Not Equal (temp bool)
+0:47 'a' (temp 3-element array of structure{global int i, global float f})
+0:47 'b' (temp 3-element array of structure{global int i, global float f})
+0:47 true case
+0:48 vector scale second child into first child (temp 4-component vector of float)
+0:48 'v' (temp 4-component vector of float)
+0:48 Constant:
+0:48 7.000000
+0:50 move second child to first child (temp 4-component vector of float)
+0:50 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:50 'v' (temp 4-component vector of float)
+0:? Linker Objects
+0:? 'sampler' (uniform sampler2D)
+0:? 'coord' (smooth in 2-component vector of float)
+0:? 'u' (smooth in 4-component vector of float)
+0:? 'w' (smooth in 4-component vector of float)
+0:? 'foo1' (uniform structure{global int i, global float f})
+0:? 'foo2a' (uniform structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:? 'foo2b' (uniform structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+0:? Sequence
+0:23 Function Definition: main( (global void)
+0:23 Function Parameters:
+0:? Sequence
+0:27 move second child to first child (temp 3-element array of structure{global int i, global float f})
+0:27 'a' (temp 3-element array of structure{global int i, global float f})
+0:27 Construct structure (temp 3-element array of structure{global int i, global float f})
+0:27 Construct structure (temp structure{global int i, global float f})
+0:27 Convert float to int (temp int)
+0:27 direct index (temp float)
+0:27 'u' (smooth in 4-component vector of float)
+0:27 Constant:
+0:27 0 (const int)
+0:27 direct index (temp float)
+0:27 'u' (smooth in 4-component vector of float)
+0:27 Constant:
+0:27 1 (const int)
+0:27 Construct structure (temp structure{global int i, global float f})
+0:27 Convert float to int (temp int)
+0:27 direct index (temp float)
+0:27 'u' (smooth in 4-component vector of float)
+0:27 Constant:
+0:27 2 (const int)
+0:27 direct index (temp float)
+0:27 'u' (smooth in 4-component vector of float)
+0:27 Constant:
+0:27 3 (const int)
+0:27 Constant:
+0:27 14 (const int)
+0:27 14.000000
+0:28 move second child to first child (temp 3-element array of structure{global int i, global float f})
+0:28 'b' (temp 3-element array of structure{global int i, global float f})
+0:28 Construct structure (temp 3-element array of structure{global int i, global float f})
+0:28 Constant:
+0:28 17 (const int)
+0:28 17.000000
+0:28 Construct structure (temp structure{global int i, global float f})
+0:28 Convert float to int (temp int)
+0:28 direct index (temp float)
+0:28 'w' (smooth in 4-component vector of float)
+0:28 Constant:
+0:28 0 (const int)
+0:28 direct index (temp float)
+0:28 'w' (smooth in 4-component vector of float)
+0:28 Constant:
+0:28 1 (const int)
+0:28 Construct structure (temp structure{global int i, global float f})
+0:28 Convert float to int (temp int)
+0:28 direct index (temp float)
+0:28 'w' (smooth in 4-component vector of float)
+0:28 Constant:
+0:28 2 (const int)
+0:28 direct index (temp float)
+0:28 'w' (smooth in 4-component vector of float)
+0:28 Constant:
+0:28 3 (const int)
+0:30 Test condition and select (temp void)
+0:30 Condition
+0:30 Compare Equal (temp bool)
+0:30 'foo2a' (uniform structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:30 'foo2b' (uniform structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:30 true case
+0:31 move second child to first child (temp 4-component vector of float)
+0:31 'v' (temp 4-component vector of float)
+0:31 texture (global 4-component vector of float)
+0:31 'sampler' (uniform sampler2D)
+0:31 'coord' (smooth in 2-component vector of float)
+0:30 false case
+0:33 move second child to first child (temp 4-component vector of float)
+0:33 'v' (temp 4-component vector of float)
+0:33 texture (global 4-component vector of float)
+0:33 'sampler' (uniform sampler2D)
+0:33 vector-scale (temp 2-component vector of float)
+0:33 Constant:
+0:33 2.000000
+0:33 'coord' (smooth in 2-component vector of float)
+0:35 Test condition and select (temp void)
+0:35 Condition
+0:35 Compare Equal (temp bool)
+0:35 'u' (smooth in 4-component vector of float)
+0:35 'v' (temp 4-component vector of float)
+0:35 true case
+0:36 vector scale second child into first child (temp 4-component vector of float)
+0:36 'v' (temp 4-component vector of float)
+0:36 Constant:
+0:36 3.000000
+0:38 Test condition and select (temp void)
+0:38 Condition
+0:38 Compare Not Equal (temp bool)
+0:38 'u' (smooth in 4-component vector of float)
+0:38 'v' (temp 4-component vector of float)
+0:38 true case
+0:39 vector scale second child into first child (temp 4-component vector of float)
+0:39 'v' (temp 4-component vector of float)
+0:39 Constant:
+0:39 4.000000
+0:41 Test condition and select (temp void)
+0:41 Condition
+0:41 Compare Equal (temp bool)
+0:41 'coord' (smooth in 2-component vector of float)
+0:41 vector swizzle (temp 2-component vector of float)
+0:41 'v' (temp 4-component vector of float)
+0:41 Sequence
+0:41 Constant:
+0:41 1 (const int)
+0:41 Constant:
+0:41 3 (const int)
+0:41 true case
+0:42 vector scale second child into first child (temp 4-component vector of float)
+0:42 'v' (temp 4-component vector of float)
+0:42 Constant:
+0:42 5.000000
+0:44 Test condition and select (temp void)
+0:44 Condition
+0:44 Compare Equal (temp bool)
+0:44 'a' (temp 3-element array of structure{global int i, global float f})
+0:44 'b' (temp 3-element array of structure{global int i, global float f})
+0:44 true case
+0:45 vector scale second child into first child (temp 4-component vector of float)
+0:45 'v' (temp 4-component vector of float)
+0:45 Constant:
+0:45 6.000000
+0:47 Test condition and select (temp void)
+0:47 Condition
+0:47 Compare Not Equal (temp bool)
+0:47 'a' (temp 3-element array of structure{global int i, global float f})
+0:47 'b' (temp 3-element array of structure{global int i, global float f})
+0:47 true case
+0:48 vector scale second child into first child (temp 4-component vector of float)
+0:48 'v' (temp 4-component vector of float)
+0:48 Constant:
+0:48 7.000000
+0:50 move second child to first child (temp 4-component vector of float)
+0:50 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:50 'v' (temp 4-component vector of float)
+0:? Linker Objects
+0:? 'sampler' (uniform sampler2D)
+0:? 'coord' (smooth in 2-component vector of float)
+0:? 'u' (smooth in 4-component vector of float)
+0:? 'w' (smooth in 4-component vector of float)
+0:? 'foo1' (uniform structure{global int i, global float f})
+0:? 'foo2a' (uniform structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:? 'foo2b' (uniform structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/always-discard.frag.out b/chromium/third_party/glslang/src/Test/baseResults/always-discard.frag.out
new file mode 100644
index 00000000000..e1eeae3e6cf
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/always-discard.frag.out
@@ -0,0 +1,239 @@
+always-discard.frag
+Shader version: 110
+0:? Sequence
+0:4 Function Definition: main( (global void)
+0:4 Function Parameters:
+0:6 Sequence
+0:6 Sequence
+0:6 move second child to first child (temp 4-component vector of float)
+0:6 'white' (temp 4-component vector of float)
+0:6 Constant:
+0:6 1.000000
+0:6 1.000000
+0:6 1.000000
+0:6 1.000000
+0:7 Sequence
+0:7 move second child to first child (temp 4-component vector of float)
+0:7 'black' (temp 4-component vector of float)
+0:7 Constant:
+0:7 0.200000
+0:7 0.200000
+0:7 0.200000
+0:7 0.200000
+0:8 Sequence
+0:8 move second child to first child (temp 4-component vector of float)
+0:8 'color' (temp 4-component vector of float)
+0:8 'white' (temp 4-component vector of float)
+0:11 Sequence
+0:11 move second child to first child (temp float)
+0:11 'x' (temp float)
+0:11 subtract (temp float)
+0:11 component-wise multiply (temp float)
+0:11 direct index (temp float)
+0:11 'tex_coord' (smooth in 2-component vector of float)
+0:11 Constant:
+0:11 0 (const int)
+0:11 Constant:
+0:11 2.000000
+0:11 Constant:
+0:11 1.000000
+0:12 Sequence
+0:12 move second child to first child (temp float)
+0:12 'y' (temp float)
+0:12 subtract (temp float)
+0:12 component-wise multiply (temp float)
+0:12 direct index (temp float)
+0:12 'tex_coord' (smooth in 2-component vector of float)
+0:12 Constant:
+0:12 1 (const int)
+0:12 Constant:
+0:12 2.000000
+0:12 Constant:
+0:12 1.000000
+0:14 Sequence
+0:14 move second child to first child (temp float)
+0:14 'radius' (temp float)
+0:14 sqrt (global float)
+0:14 add (temp float)
+0:14 component-wise multiply (temp float)
+0:14 'x' (temp float)
+0:14 'x' (temp float)
+0:14 component-wise multiply (temp float)
+0:14 'y' (temp float)
+0:14 'y' (temp float)
+0:15 Test condition and select (temp void)
+0:15 Condition
+0:15 Compare Greater Than (temp bool)
+0:15 'radius' (temp float)
+0:15 Constant:
+0:15 1.000000
+0:15 true case
+0:16 Sequence
+0:16 Test condition and select (temp void)
+0:16 Condition
+0:16 Compare Greater Than (temp bool)
+0:16 'radius' (temp float)
+0:16 Constant:
+0:16 1.100000
+0:16 true case
+0:17 Sequence
+0:17 Pre-Increment (temp 4-component vector of float)
+0:17 'color' (temp 4-component vector of float)
+0:20 move second child to first child (temp 4-component vector of float)
+0:20 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:20 'color' (temp 4-component vector of float)
+0:22 Test condition and select (temp void)
+0:22 Condition
+0:22 Compare Greater Than (temp bool)
+0:22 'radius' (temp float)
+0:22 Constant:
+0:22 1.200000
+0:22 true case
+0:23 Sequence
+0:23 Pre-Increment (temp 4-component vector of float)
+0:23 'color' (temp 4-component vector of float)
+0:28 Branch: Kill
+0:31 Test condition and select (temp void)
+0:31 Condition
+0:31 Compare Greater Than or Equal (temp bool)
+0:31 'radius' (temp float)
+0:31 Constant:
+0:31 0.750000
+0:31 true case
+0:32 subtract second child into first child (temp 4-component vector of float)
+0:32 'color' (temp 4-component vector of float)
+0:32 Absolute value (global float)
+0:32 divide (temp float)
+0:32 pow (global float)
+0:32 'radius' (temp float)
+0:32 Constant:
+0:32 16.000000
+0:32 Constant:
+0:32 2.000000
+0:34 move second child to first child (temp 4-component vector of float)
+0:34 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:34 'color' (temp 4-component vector of float)
+0:? Linker Objects
+0:? 'tex_coord' (smooth in 2-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 110
+0:? Sequence
+0:4 Function Definition: main( (global void)
+0:4 Function Parameters:
+0:6 Sequence
+0:6 Sequence
+0:6 move second child to first child (temp 4-component vector of float)
+0:6 'white' (temp 4-component vector of float)
+0:6 Constant:
+0:6 1.000000
+0:6 1.000000
+0:6 1.000000
+0:6 1.000000
+0:7 Sequence
+0:7 move second child to first child (temp 4-component vector of float)
+0:7 'black' (temp 4-component vector of float)
+0:7 Constant:
+0:7 0.200000
+0:7 0.200000
+0:7 0.200000
+0:7 0.200000
+0:8 Sequence
+0:8 move second child to first child (temp 4-component vector of float)
+0:8 'color' (temp 4-component vector of float)
+0:8 'white' (temp 4-component vector of float)
+0:11 Sequence
+0:11 move second child to first child (temp float)
+0:11 'x' (temp float)
+0:11 subtract (temp float)
+0:11 component-wise multiply (temp float)
+0:11 direct index (temp float)
+0:11 'tex_coord' (smooth in 2-component vector of float)
+0:11 Constant:
+0:11 0 (const int)
+0:11 Constant:
+0:11 2.000000
+0:11 Constant:
+0:11 1.000000
+0:12 Sequence
+0:12 move second child to first child (temp float)
+0:12 'y' (temp float)
+0:12 subtract (temp float)
+0:12 component-wise multiply (temp float)
+0:12 direct index (temp float)
+0:12 'tex_coord' (smooth in 2-component vector of float)
+0:12 Constant:
+0:12 1 (const int)
+0:12 Constant:
+0:12 2.000000
+0:12 Constant:
+0:12 1.000000
+0:14 Sequence
+0:14 move second child to first child (temp float)
+0:14 'radius' (temp float)
+0:14 sqrt (global float)
+0:14 add (temp float)
+0:14 component-wise multiply (temp float)
+0:14 'x' (temp float)
+0:14 'x' (temp float)
+0:14 component-wise multiply (temp float)
+0:14 'y' (temp float)
+0:14 'y' (temp float)
+0:15 Test condition and select (temp void)
+0:15 Condition
+0:15 Compare Greater Than (temp bool)
+0:15 'radius' (temp float)
+0:15 Constant:
+0:15 1.000000
+0:15 true case
+0:16 Sequence
+0:16 Test condition and select (temp void)
+0:16 Condition
+0:16 Compare Greater Than (temp bool)
+0:16 'radius' (temp float)
+0:16 Constant:
+0:16 1.100000
+0:16 true case
+0:17 Sequence
+0:17 Pre-Increment (temp 4-component vector of float)
+0:17 'color' (temp 4-component vector of float)
+0:20 move second child to first child (temp 4-component vector of float)
+0:20 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:20 'color' (temp 4-component vector of float)
+0:22 Test condition and select (temp void)
+0:22 Condition
+0:22 Compare Greater Than (temp bool)
+0:22 'radius' (temp float)
+0:22 Constant:
+0:22 1.200000
+0:22 true case
+0:23 Sequence
+0:23 Pre-Increment (temp 4-component vector of float)
+0:23 'color' (temp 4-component vector of float)
+0:28 Branch: Kill
+0:31 Test condition and select (temp void)
+0:31 Condition
+0:31 Compare Greater Than or Equal (temp bool)
+0:31 'radius' (temp float)
+0:31 Constant:
+0:31 0.750000
+0:31 true case
+0:32 subtract second child into first child (temp 4-component vector of float)
+0:32 'color' (temp 4-component vector of float)
+0:32 Absolute value (global float)
+0:32 divide (temp float)
+0:32 pow (global float)
+0:32 'radius' (temp float)
+0:32 Constant:
+0:32 16.000000
+0:32 Constant:
+0:32 2.000000
+0:34 move second child to first child (temp 4-component vector of float)
+0:34 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:34 'color' (temp 4-component vector of float)
+0:? Linker Objects
+0:? 'tex_coord' (smooth in 2-component vector of float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/always-discard2.frag.out b/chromium/third_party/glslang/src/Test/baseResults/always-discard2.frag.out
new file mode 100644
index 00000000000..72f21d2f00e
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/always-discard2.frag.out
@@ -0,0 +1,121 @@
+always-discard2.frag
+Shader version: 110
+0:? Sequence
+0:4 Function Definition: main( (global void)
+0:4 Function Parameters:
+0:6 Sequence
+0:6 Sequence
+0:6 move second child to first child (temp 4-component vector of float)
+0:6 'white' (temp 4-component vector of float)
+0:6 Constant:
+0:6 1.000000
+0:6 1.000000
+0:6 1.000000
+0:6 1.000000
+0:7 Sequence
+0:7 move second child to first child (temp 4-component vector of float)
+0:7 'black' (temp 4-component vector of float)
+0:7 Constant:
+0:7 0.200000
+0:7 0.200000
+0:7 0.200000
+0:7 0.200000
+0:8 Sequence
+0:8 move second child to first child (temp 4-component vector of float)
+0:8 'color' (temp 4-component vector of float)
+0:8 'white' (temp 4-component vector of float)
+0:11 Sequence
+0:11 move second child to first child (temp float)
+0:11 'x' (temp float)
+0:11 subtract (temp float)
+0:11 component-wise multiply (temp float)
+0:11 direct index (temp float)
+0:11 'tex_coord' (smooth in 2-component vector of float)
+0:11 Constant:
+0:11 0 (const int)
+0:11 Constant:
+0:11 2.000000
+0:11 Constant:
+0:11 1.000000
+0:12 Sequence
+0:12 move second child to first child (temp float)
+0:12 'y' (temp float)
+0:12 subtract (temp float)
+0:12 component-wise multiply (temp float)
+0:12 direct index (temp float)
+0:12 'tex_coord' (smooth in 2-component vector of float)
+0:12 Constant:
+0:12 1 (const int)
+0:12 Constant:
+0:12 2.000000
+0:12 Constant:
+0:12 1.000000
+0:14 Branch: Kill
+0:17 move second child to first child (temp 4-component vector of float)
+0:17 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:17 'color' (temp 4-component vector of float)
+0:? Linker Objects
+0:? 'tex_coord' (smooth in 2-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 110
+0:? Sequence
+0:4 Function Definition: main( (global void)
+0:4 Function Parameters:
+0:6 Sequence
+0:6 Sequence
+0:6 move second child to first child (temp 4-component vector of float)
+0:6 'white' (temp 4-component vector of float)
+0:6 Constant:
+0:6 1.000000
+0:6 1.000000
+0:6 1.000000
+0:6 1.000000
+0:7 Sequence
+0:7 move second child to first child (temp 4-component vector of float)
+0:7 'black' (temp 4-component vector of float)
+0:7 Constant:
+0:7 0.200000
+0:7 0.200000
+0:7 0.200000
+0:7 0.200000
+0:8 Sequence
+0:8 move second child to first child (temp 4-component vector of float)
+0:8 'color' (temp 4-component vector of float)
+0:8 'white' (temp 4-component vector of float)
+0:11 Sequence
+0:11 move second child to first child (temp float)
+0:11 'x' (temp float)
+0:11 subtract (temp float)
+0:11 component-wise multiply (temp float)
+0:11 direct index (temp float)
+0:11 'tex_coord' (smooth in 2-component vector of float)
+0:11 Constant:
+0:11 0 (const int)
+0:11 Constant:
+0:11 2.000000
+0:11 Constant:
+0:11 1.000000
+0:12 Sequence
+0:12 move second child to first child (temp float)
+0:12 'y' (temp float)
+0:12 subtract (temp float)
+0:12 component-wise multiply (temp float)
+0:12 direct index (temp float)
+0:12 'tex_coord' (smooth in 2-component vector of float)
+0:12 Constant:
+0:12 1 (const int)
+0:12 Constant:
+0:12 2.000000
+0:12 Constant:
+0:12 1.000000
+0:14 Branch: Kill
+0:17 move second child to first child (temp 4-component vector of float)
+0:17 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:17 'color' (temp 4-component vector of float)
+0:? Linker Objects
+0:? 'tex_coord' (smooth in 2-component vector of float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/array.frag.out b/chromium/third_party/glslang/src/Test/baseResults/array.frag.out
new file mode 100644
index 00000000000..8b3cf807a48
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/array.frag.out
@@ -0,0 +1,530 @@
+array.frag
+ERROR: 0:21: '[' : array index out of range '2'
+ERROR: 0:27: '[' : array must be redeclared with a size before being indexed with a variable
+ERROR: 0:30: 'assign' : cannot convert from 'global 4-element array of float' to 'global 5-element array of float'
+ERROR: 0:31: 'assign' : cannot convert from 'global 4-element array of float' to 'global implicitly-sized array of float'
+ERROR: 0:33: 'foo' : no matching overloaded function found
+ERROR: 0:42: '[' : array index out of range '5'
+ERROR: 0:45: '[' : array index out of range '1000'
+ERROR: 0:46: '[' : index out of range '-1'
+ERROR: 0:52: '[' : array index out of range '2'
+ERROR: 0:54: 'const' : non-matching or non-convertible constant type for const initializer
+ERROR: 0:56: '=' : cannot convert from 'const 2-element array of int' to 'temp 3-element array of int'
+ERROR: 0:57: '[]' : scalar integer expression required
+ERROR: 0:57: '[' : index out of range '-858993459'
+ERROR: 0:58: '[]' : scalar integer expression required
+ERROR: 0:61: '' : array size required
+ERROR: 0:62: '' : array size required
+ERROR: 0:63: '' : array size required
+ERROR: 0:66: '=' : cannot convert from 'temp 3-component vector of float' to 'global float'
+ERROR: 0:76: 'bar' : no matching overloaded function found
+ERROR: 0:79: '' : array size required
+ERROR: 0:84: 'return' : type does not match, or is not convertible to, the function's return type
+ERROR: 0:93: 'length' : array must be declared with a size before using this method
+ERROR: 0:101: '[' : array index out of range '5'
+ERROR: 0:104: 'constructor' : array constructor must have at least one argument
+ERROR: 0:104: '=' : cannot convert from 'const float' to 'global implicitly-sized array of int'
+ERROR: 0:106: 'constructor' : array argument must be sized
+ERROR: 26 compilation errors. No code generated.
+
+
+Shader version: 130
+ERROR: node is still EOpNull!
+0:9 Function Definition: foo(f1[5]; (global 4-element array of float)
+0:9 Function Parameters:
+0:9 'a' (in 5-element array of float)
+0:11 Sequence
+0:11 Branch: Return with expression
+0:11 Construct float (temp 4-element array of float)
+0:11 direct index (temp float)
+0:11 'a' (in 5-element array of float)
+0:11 Constant:
+0:11 0 (const int)
+0:11 direct index (temp float)
+0:11 'a' (in 5-element array of float)
+0:11 Constant:
+0:11 1 (const int)
+0:11 direct index (temp float)
+0:11 'a' (in 5-element array of float)
+0:11 Constant:
+0:11 2 (const int)
+0:11 direct index (temp float)
+0:11 'a' (in 5-element array of float)
+0:11 Constant:
+0:11 3 (const int)
+0:14 Function Definition: bar(f1[5]; (global void)
+0:14 Function Parameters:
+0:14 '' (in 5-element array of float)
+0:16 Function Definition: main( (global void)
+0:16 Function Parameters:
+0:? Sequence
+0:? Sequence
+0:21 move second child to first child (temp float)
+0:21 direct index (temp float)
+0:21 'gu' (temp 2-element array of float)
+0:21 Constant:
+0:21 2 (const int)
+0:21 Constant:
+0:21 4.000000
+0:24 move second child to first child (temp float)
+0:24 direct index (temp float)
+0:24 'gu' (global implicitly-sized array of float)
+0:24 Constant:
+0:24 2 (const int)
+0:24 Constant:
+0:24 4.000000
+0:26 move second child to first child (temp float)
+0:26 direct index (temp float)
+0:26 'gu' (global implicitly-sized array of float)
+0:26 Constant:
+0:26 3 (const int)
+0:26 Constant:
+0:26 3.000000
+0:27 move second child to first child (temp float)
+0:27 indirect index (temp float)
+0:27 'gu' (global implicitly-sized array of float)
+0:27 'a' (uniform int)
+0:27 Constant:
+0:27 5.000000
+0:29 move second child to first child (temp 4-element array of float)
+0:29 'g4' (global 4-element array of float)
+0:29 Function Call: foo(f1[5]; (global 4-element array of float)
+0:29 'g5' (global 5-element array of float)
+0:30 'g5' (global 5-element array of float)
+0:31 'gu' (global implicitly-sized array of float)
+0:33 Constant:
+0:33 0.000000
+0:34 Function Call: bar(f1[5]; (global void)
+0:34 'g5' (global 5-element array of float)
+0:36 Test condition and select (temp void)
+0:36 Condition
+0:36 Compare Equal (temp bool)
+0:36 Constant:
+0:36 1.000000
+0:36 2.000000
+0:36 3.000000
+0:36 4.000000
+0:36 'g4' (global 4-element array of float)
+0:36 true case
+0:37 move second child to first child (temp float)
+0:37 direct index (temp float)
+0:37 'gu' (global implicitly-sized array of float)
+0:37 Constant:
+0:37 0 (const int)
+0:37 Constant:
+0:37 2.000000
+0:40 move second child to first child (temp float)
+0:40 direct index (temp float)
+0:40 'u' (temp 5-element array of float)
+0:40 Constant:
+0:40 2 (const int)
+0:40 Constant:
+0:40 3.000000
+0:42 move second child to first child (temp float)
+0:42 direct index (temp float)
+0:42 'u' (temp 5-element array of float)
+0:42 Constant:
+0:42 5 (const int)
+0:42 Constant:
+0:42 5.000000
+0:43 Function Call: foo(f1[5]; (global 4-element array of float)
+0:43 'u' (temp 5-element array of float)
+0:45 move second child to first child (temp 4-component vector of float)
+0:45 direct index (temp 4-component vector of float FragData)
+0:45 'gl_FragData' (fragColor 32-element array of 4-component vector of float FragData)
+0:45 Constant:
+0:45 1000 (const int)
+0:45 Constant:
+0:45 1.000000
+0:45 1.000000
+0:45 1.000000
+0:45 1.000000
+0:46 move second child to first child (temp 4-component vector of float)
+0:46 direct index (temp 4-component vector of float FragData)
+0:46 'gl_FragData' (fragColor 32-element array of 4-component vector of float FragData)
+0:46 Constant:
+0:46 -1 (const int)
+0:46 Constant:
+0:46 1.000000
+0:46 1.000000
+0:46 1.000000
+0:46 1.000000
+0:47 move second child to first child (temp 4-component vector of float)
+0:47 direct index (temp 4-component vector of float FragData)
+0:47 'gl_FragData' (fragColor 32-element array of 4-component vector of float FragData)
+0:47 Constant:
+0:47 3 (const int)
+0:47 Constant:
+0:47 1.000000
+0:47 1.000000
+0:47 1.000000
+0:47 1.000000
+0:50 Sequence
+0:50 move second child to first child (temp int)
+0:50 'sum' (temp int)
+0:50 Constant:
+0:50 3 (const int)
+0:51 add second child into first child (temp int)
+0:51 'sum' (temp int)
+0:51 Constant:
+0:51 2 (const int)
+0:52 add second child into first child (temp int)
+0:52 'sum' (temp int)
+0:52 Constant:
+0:52 2 (const int)
+0:55 Sequence
+0:55 move second child to first child (temp 2-element array of int)
+0:55 'ica' (temp 2-element array of int)
+0:55 Constant:
+0:55 3 (const int)
+0:55 2 (const int)
+0:57 move second child to first child (temp int)
+0:57 direct index (temp int)
+0:57 'ica' (temp 2-element array of int)
+0:57 Constant:
+0:57 3.100000
+0:57 Constant:
+0:57 3 (const int)
+0:58 move second child to first child (temp int)
+0:58 indirect index (temp int)
+0:58 'ica' (temp 2-element array of int)
+0:58 direct index (temp float)
+0:58 'u' (temp 5-element array of float)
+0:58 Constant:
+0:58 1 (const int)
+0:58 Constant:
+0:58 4 (const int)
+0:68 Function Definition: foo( (global void)
+0:68 Function Parameters:
+0:? Sequence
+0:71 move second child to first child (temp int)
+0:71 direct index (temp int)
+0:71 'uns' (temp implicitly-sized array of int)
+0:71 Constant:
+0:71 3 (const int)
+0:71 Constant:
+0:71 40 (const int)
+0:72 move second child to first child (temp int)
+0:72 direct index (temp int)
+0:72 'uns' (temp implicitly-sized array of int)
+0:72 Constant:
+0:72 1 (const int)
+0:72 Constant:
+0:72 30 (const int)
+0:73 move second child to first child (temp 3-component vector of float)
+0:73 direct index (temp 3-component vector of float)
+0:73 'guns' (global implicitly-sized array of 3-component vector of float)
+0:73 Constant:
+0:73 2 (const int)
+0:73 Constant:
+0:73 2.400000
+0:73 2.400000
+0:73 2.400000
+0:76 Constant:
+0:76 0.000000
+0:79 Function Definition: foo2( (global implicitly-sized array of float)
+0:79 Function Parameters:
+0:? Sequence
+0:82 Branch: Return with expression
+0:82 'f' (temp implicitly-sized array of float)
+0:84 Branch: Return with expression
+0:84 'g' (temp 9-element array of float)
+0:89 Function Definition: foo3( (global void)
+0:89 Function Parameters:
+0:? Sequence
+0:92 move second child to first child (temp float)
+0:92 direct index (temp float)
+0:92 'resize1' (temp 3-element array of float)
+0:92 Constant:
+0:92 2 (const int)
+0:92 Constant:
+0:92 4.000000
+0:93 Constant:
+0:93 1 (const int)
+0:95 Constant:
+0:95 3 (const int)
+0:98 move second child to first child (temp float)
+0:98 direct index (temp float)
+0:98 'resize2' (temp 5-element array of float)
+0:98 Constant:
+0:98 5 (const int)
+0:98 Constant:
+0:98 4.000000
+0:100 Constant:
+0:100 5 (const int)
+0:101 move second child to first child (temp float)
+0:101 direct index (temp float)
+0:101 'resize2' (temp 5-element array of float)
+0:101 Constant:
+0:101 5 (const int)
+0:101 Constant:
+0:101 4.000000
+0:106 Sequence
+0:106 move second child to first child (temp float)
+0:106 'b' (global float)
+0:106 Constant:
+0:106 0.000000
+0:? Linker Objects
+0:? 'gu' (global implicitly-sized array of float)
+0:? 'g4' (global 4-element array of float)
+0:? 'g5' (global 5-element array of float)
+0:? 'a' (uniform int)
+0:? 'guns' (global implicitly-sized array of 3-component vector of float)
+0:? 'f' (global float)
+0:? 'gUnusedUnsized' (global implicitly-sized array of float)
+0:? 'i' (global implicitly-sized array of int)
+0:? 'emptyA' (global implicitly-sized array of float)
+0:? 'b' (global float)
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+ERROR: node is still EOpNull!
+0:9 Function Definition: foo(f1[5]; (global 4-element array of float)
+0:9 Function Parameters:
+0:9 'a' (in 5-element array of float)
+0:11 Sequence
+0:11 Branch: Return with expression
+0:11 Construct float (temp 4-element array of float)
+0:11 direct index (temp float)
+0:11 'a' (in 5-element array of float)
+0:11 Constant:
+0:11 0 (const int)
+0:11 direct index (temp float)
+0:11 'a' (in 5-element array of float)
+0:11 Constant:
+0:11 1 (const int)
+0:11 direct index (temp float)
+0:11 'a' (in 5-element array of float)
+0:11 Constant:
+0:11 2 (const int)
+0:11 direct index (temp float)
+0:11 'a' (in 5-element array of float)
+0:11 Constant:
+0:11 3 (const int)
+0:14 Function Definition: bar(f1[5]; (global void)
+0:14 Function Parameters:
+0:14 '' (in 5-element array of float)
+0:16 Function Definition: main( (global void)
+0:16 Function Parameters:
+0:? Sequence
+0:? Sequence
+0:21 move second child to first child (temp float)
+0:21 direct index (temp float)
+0:21 'gu' (temp 2-element array of float)
+0:21 Constant:
+0:21 2 (const int)
+0:21 Constant:
+0:21 4.000000
+0:24 move second child to first child (temp float)
+0:24 direct index (temp float)
+0:24 'gu' (global 4-element array of float)
+0:24 Constant:
+0:24 2 (const int)
+0:24 Constant:
+0:24 4.000000
+0:26 move second child to first child (temp float)
+0:26 direct index (temp float)
+0:26 'gu' (global 4-element array of float)
+0:26 Constant:
+0:26 3 (const int)
+0:26 Constant:
+0:26 3.000000
+0:27 move second child to first child (temp float)
+0:27 indirect index (temp float)
+0:27 'gu' (global 4-element array of float)
+0:27 'a' (uniform int)
+0:27 Constant:
+0:27 5.000000
+0:29 move second child to first child (temp 4-element array of float)
+0:29 'g4' (global 4-element array of float)
+0:29 Function Call: foo(f1[5]; (global 4-element array of float)
+0:29 'g5' (global 5-element array of float)
+0:30 'g5' (global 5-element array of float)
+0:31 'gu' (global 4-element array of float)
+0:33 Constant:
+0:33 0.000000
+0:34 Function Call: bar(f1[5]; (global void)
+0:34 'g5' (global 5-element array of float)
+0:36 Test condition and select (temp void)
+0:36 Condition
+0:36 Compare Equal (temp bool)
+0:36 Constant:
+0:36 1.000000
+0:36 2.000000
+0:36 3.000000
+0:36 4.000000
+0:36 'g4' (global 4-element array of float)
+0:36 true case
+0:37 move second child to first child (temp float)
+0:37 direct index (temp float)
+0:37 'gu' (global 4-element array of float)
+0:37 Constant:
+0:37 0 (const int)
+0:37 Constant:
+0:37 2.000000
+0:40 move second child to first child (temp float)
+0:40 direct index (temp float)
+0:40 'u' (temp 5-element array of float)
+0:40 Constant:
+0:40 2 (const int)
+0:40 Constant:
+0:40 3.000000
+0:42 move second child to first child (temp float)
+0:42 direct index (temp float)
+0:42 'u' (temp 5-element array of float)
+0:42 Constant:
+0:42 5 (const int)
+0:42 Constant:
+0:42 5.000000
+0:43 Function Call: foo(f1[5]; (global 4-element array of float)
+0:43 'u' (temp 5-element array of float)
+0:45 move second child to first child (temp 4-component vector of float)
+0:45 direct index (temp 4-component vector of float FragData)
+0:45 'gl_FragData' (fragColor 32-element array of 4-component vector of float FragData)
+0:45 Constant:
+0:45 1000 (const int)
+0:45 Constant:
+0:45 1.000000
+0:45 1.000000
+0:45 1.000000
+0:45 1.000000
+0:46 move second child to first child (temp 4-component vector of float)
+0:46 direct index (temp 4-component vector of float FragData)
+0:46 'gl_FragData' (fragColor 32-element array of 4-component vector of float FragData)
+0:46 Constant:
+0:46 -1 (const int)
+0:46 Constant:
+0:46 1.000000
+0:46 1.000000
+0:46 1.000000
+0:46 1.000000
+0:47 move second child to first child (temp 4-component vector of float)
+0:47 direct index (temp 4-component vector of float FragData)
+0:47 'gl_FragData' (fragColor 32-element array of 4-component vector of float FragData)
+0:47 Constant:
+0:47 3 (const int)
+0:47 Constant:
+0:47 1.000000
+0:47 1.000000
+0:47 1.000000
+0:47 1.000000
+0:50 Sequence
+0:50 move second child to first child (temp int)
+0:50 'sum' (temp int)
+0:50 Constant:
+0:50 3 (const int)
+0:51 add second child into first child (temp int)
+0:51 'sum' (temp int)
+0:51 Constant:
+0:51 2 (const int)
+0:52 add second child into first child (temp int)
+0:52 'sum' (temp int)
+0:52 Constant:
+0:52 2 (const int)
+0:55 Sequence
+0:55 move second child to first child (temp 2-element array of int)
+0:55 'ica' (temp 2-element array of int)
+0:55 Constant:
+0:55 3 (const int)
+0:55 2 (const int)
+0:57 move second child to first child (temp int)
+0:57 direct index (temp int)
+0:57 'ica' (temp 2-element array of int)
+0:57 Constant:
+0:57 3.100000
+0:57 Constant:
+0:57 3 (const int)
+0:58 move second child to first child (temp int)
+0:58 indirect index (temp int)
+0:58 'ica' (temp 2-element array of int)
+0:58 direct index (temp float)
+0:58 'u' (temp 5-element array of float)
+0:58 Constant:
+0:58 1 (const int)
+0:58 Constant:
+0:58 4 (const int)
+0:68 Function Definition: foo( (global void)
+0:68 Function Parameters:
+0:? Sequence
+0:71 move second child to first child (temp int)
+0:71 direct index (temp int)
+0:71 'uns' (temp 4-element array of int)
+0:71 Constant:
+0:71 3 (const int)
+0:71 Constant:
+0:71 40 (const int)
+0:72 move second child to first child (temp int)
+0:72 direct index (temp int)
+0:72 'uns' (temp 4-element array of int)
+0:72 Constant:
+0:72 1 (const int)
+0:72 Constant:
+0:72 30 (const int)
+0:73 move second child to first child (temp 3-component vector of float)
+0:73 direct index (temp 3-component vector of float)
+0:73 'guns' (global 8-element array of 3-component vector of float)
+0:73 Constant:
+0:73 2 (const int)
+0:73 Constant:
+0:73 2.400000
+0:73 2.400000
+0:73 2.400000
+0:76 Constant:
+0:76 0.000000
+0:79 Function Definition: foo2( (global implicitly-sized array of float)
+0:79 Function Parameters:
+0:? Sequence
+0:82 Branch: Return with expression
+0:82 'f' (temp 1-element array of float)
+0:84 Branch: Return with expression
+0:84 'g' (temp 9-element array of float)
+0:89 Function Definition: foo3( (global void)
+0:89 Function Parameters:
+0:? Sequence
+0:92 move second child to first child (temp float)
+0:92 direct index (temp float)
+0:92 'resize1' (temp 3-element array of float)
+0:92 Constant:
+0:92 2 (const int)
+0:92 Constant:
+0:92 4.000000
+0:93 Constant:
+0:93 1 (const int)
+0:95 Constant:
+0:95 3 (const int)
+0:98 move second child to first child (temp float)
+0:98 direct index (temp float)
+0:98 'resize2' (temp 5-element array of float)
+0:98 Constant:
+0:98 5 (const int)
+0:98 Constant:
+0:98 4.000000
+0:100 Constant:
+0:100 5 (const int)
+0:101 move second child to first child (temp float)
+0:101 direct index (temp float)
+0:101 'resize2' (temp 5-element array of float)
+0:101 Constant:
+0:101 5 (const int)
+0:101 Constant:
+0:101 4.000000
+0:106 Sequence
+0:106 move second child to first child (temp float)
+0:106 'b' (global float)
+0:106 Constant:
+0:106 0.000000
+0:? Linker Objects
+0:? 'gu' (global 4-element array of float)
+0:? 'g4' (global 4-element array of float)
+0:? 'g5' (global 5-element array of float)
+0:? 'a' (uniform int)
+0:? 'guns' (global 8-element array of 3-component vector of float)
+0:? 'f' (global float)
+0:? 'gUnusedUnsized' (global 1-element array of float)
+0:? 'i' (global 1-element array of int)
+0:? 'emptyA' (global 1-element array of float)
+0:? 'b' (global float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/array100.frag.out b/chromium/third_party/glslang/src/Test/baseResults/array100.frag.out
new file mode 100644
index 00000000000..b44f6a02cbc
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/array100.frag.out
@@ -0,0 +1,296 @@
+array100.frag
+ERROR: 0:3: 'float' : type requires declaration of default precision qualifier
+ERROR: 0:3: '' : array size required
+ERROR: 0:9: 'arrayed type' : not supported for this version or the enabled extensions
+ERROR: 0:9: 'arrayed type' : not supported for this version or the enabled extensions
+ERROR: 0:9: 'array in function return type' : not supported for this version or the enabled extensions
+ERROR: 0:11: 'arrayed constructor' : not supported for this version or the enabled extensions
+ERROR: 0:21: '[' : array index out of range '2'
+ERROR: 0:24: 'array assignment' : not supported for this version or the enabled extensions
+ERROR: 0:25: 'array assignment' : not supported for this version or the enabled extensions
+ERROR: 0:25: 'assign' : cannot convert from 'global 4-element array of mediump float' to 'global 5-element array of mediump float'
+ERROR: 0:26: 'array assignment' : not supported for this version or the enabled extensions
+ERROR: 0:26: 'assign' : cannot convert from 'global 4-element array of mediump float' to 'global implicitly-sized array of mediump float'
+ERROR: 0:28: 'foo' : no matching overloaded function found
+ERROR: 0:31: 'arrayed constructor' : not supported for this version or the enabled extensions
+ERROR: 0:31: 'array comparison' : not supported for this version or the enabled extensions
+ERROR: 0:35: '[' : array index out of range '5'
+ERROR: 0:38: '[' : array index out of range '1000'
+ERROR: 0:39: '[' : index out of range '-1'
+ERROR: 0:53: 'array in function return type' : not supported for this version or the enabled extensions
+ERROR: 0:66: 'array assignment' : not supported for this version or the enabled extensions
+ERROR: 0:68: 'array assignment' : not supported for this version or the enabled extensions
+ERROR: 0:69: 'array initializer' : not supported for this version or the enabled extensions
+ERROR: 22 compilation errors. No code generated.
+
+
+Shader version: 100
+ERROR: node is still EOpNull!
+0:9 Function Definition: foo(f1[5]; (global 4-element array of mediump float)
+0:9 Function Parameters:
+0:9 'a' (in 5-element array of mediump float)
+0:11 Sequence
+0:11 Branch: Return with expression
+0:11 Construct float (temp 4-element array of float)
+0:11 direct index (temp mediump float)
+0:11 'a' (in 5-element array of mediump float)
+0:11 Constant:
+0:11 0 (const int)
+0:11 direct index (temp mediump float)
+0:11 'a' (in 5-element array of mediump float)
+0:11 Constant:
+0:11 1 (const int)
+0:11 direct index (temp mediump float)
+0:11 'a' (in 5-element array of mediump float)
+0:11 Constant:
+0:11 2 (const int)
+0:11 direct index (temp mediump float)
+0:11 'a' (in 5-element array of mediump float)
+0:11 Constant:
+0:11 3 (const int)
+0:14 Function Definition: bar(f1[5]; (global void)
+0:14 Function Parameters:
+0:14 '' (in 5-element array of mediump float)
+0:16 Function Definition: main( (global void)
+0:16 Function Parameters:
+0:? Sequence
+0:? Sequence
+0:21 move second child to first child (temp mediump float)
+0:21 direct index (temp mediump float)
+0:21 'gu' (temp 2-element array of mediump float)
+0:21 Constant:
+0:21 2 (const int)
+0:21 Constant:
+0:21 4.000000
+0:24 move second child to first child (temp 4-element array of mediump float)
+0:24 'g4' (global 4-element array of mediump float)
+0:24 Function Call: foo(f1[5]; (global 4-element array of mediump float)
+0:24 'g5' (global 5-element array of mediump float)
+0:25 'g5' (global 5-element array of mediump float)
+0:26 'gu' (global implicitly-sized array of mediump float)
+0:28 Constant:
+0:28 0.000000
+0:29 Function Call: bar(f1[5]; (global void)
+0:29 'g5' (global 5-element array of mediump float)
+0:31 Test condition and select (temp void)
+0:31 Condition
+0:31 Compare Equal (temp bool)
+0:31 Constant:
+0:31 1.000000
+0:31 2.000000
+0:31 3.000000
+0:31 4.000000
+0:31 'g4' (global 4-element array of mediump float)
+0:31 true case
+0:32 move second child to first child (temp mediump float)
+0:32 direct index (temp mediump float)
+0:32 'gu' (global implicitly-sized array of mediump float)
+0:32 Constant:
+0:32 0 (const int)
+0:32 Constant:
+0:32 2.000000
+0:35 move second child to first child (temp mediump float)
+0:35 direct index (temp mediump float)
+0:35 'u' (temp 5-element array of mediump float)
+0:35 Constant:
+0:35 5 (const int)
+0:35 Constant:
+0:35 5.000000
+0:36 Function Call: foo(f1[5]; (global 4-element array of mediump float)
+0:36 'u' (temp 5-element array of mediump float)
+0:38 move second child to first child (temp mediump 4-component vector of float)
+0:38 direct index (temp mediump 4-component vector of float FragData)
+0:38 'gl_FragData' (fragColor 32-element array of mediump 4-component vector of float FragData)
+0:38 Constant:
+0:38 1000 (const int)
+0:38 Constant:
+0:38 1.000000
+0:38 1.000000
+0:38 1.000000
+0:38 1.000000
+0:39 move second child to first child (temp mediump 4-component vector of float)
+0:39 direct index (temp mediump 4-component vector of float FragData)
+0:39 'gl_FragData' (fragColor 32-element array of mediump 4-component vector of float FragData)
+0:39 Constant:
+0:39 -1 (const int)
+0:39 Constant:
+0:39 1.000000
+0:39 1.000000
+0:39 1.000000
+0:39 1.000000
+0:40 move second child to first child (temp mediump 4-component vector of float)
+0:40 direct index (temp mediump 4-component vector of float FragData)
+0:40 'gl_FragData' (fragColor 32-element array of mediump 4-component vector of float FragData)
+0:40 Constant:
+0:40 3 (const int)
+0:40 Constant:
+0:40 1.000000
+0:40 1.000000
+0:40 1.000000
+0:40 1.000000
+0:53 Function Definition: bar9( (global structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:53 Function Parameters:
+0:? Sequence
+0:56 Branch: Return with expression
+0:56 's' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:59 Function Definition: bar10(struct-SB-vf4-struct-SA-vf3-vf2[4]11; (global void)
+0:59 Function Parameters:
+0:59 's' (in structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:63 Function Definition: bar11( (global void)
+0:63 Function Parameters:
+0:? Sequence
+0:66 move second child to first child (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:66 's1' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:66 's2' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:67 Function Call: bar10(struct-SB-vf4-struct-SA-vf3-vf2[4]11; (global void)
+0:67 's1' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:68 move second child to first child (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:68 's2' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:68 Function Call: bar9( (global structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:69 Sequence
+0:69 move second child to first child (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:69 'initSb' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:69 's1' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:? Linker Objects
+0:? 'gu' (global implicitly-sized array of mediump float)
+0:? 'g4' (global 4-element array of mediump float)
+0:? 'g5' (global 5-element array of mediump float)
+0:? 'a' (uniform mediump int)
+
+
+Linked fragment stage:
+
+
+Shader version: 100
+ERROR: node is still EOpNull!
+0:9 Function Definition: foo(f1[5]; (global 4-element array of mediump float)
+0:9 Function Parameters:
+0:9 'a' (in 5-element array of mediump float)
+0:11 Sequence
+0:11 Branch: Return with expression
+0:11 Construct float (temp 4-element array of float)
+0:11 direct index (temp mediump float)
+0:11 'a' (in 5-element array of mediump float)
+0:11 Constant:
+0:11 0 (const int)
+0:11 direct index (temp mediump float)
+0:11 'a' (in 5-element array of mediump float)
+0:11 Constant:
+0:11 1 (const int)
+0:11 direct index (temp mediump float)
+0:11 'a' (in 5-element array of mediump float)
+0:11 Constant:
+0:11 2 (const int)
+0:11 direct index (temp mediump float)
+0:11 'a' (in 5-element array of mediump float)
+0:11 Constant:
+0:11 3 (const int)
+0:14 Function Definition: bar(f1[5]; (global void)
+0:14 Function Parameters:
+0:14 '' (in 5-element array of mediump float)
+0:16 Function Definition: main( (global void)
+0:16 Function Parameters:
+0:? Sequence
+0:? Sequence
+0:21 move second child to first child (temp mediump float)
+0:21 direct index (temp mediump float)
+0:21 'gu' (temp 2-element array of mediump float)
+0:21 Constant:
+0:21 2 (const int)
+0:21 Constant:
+0:21 4.000000
+0:24 move second child to first child (temp 4-element array of mediump float)
+0:24 'g4' (global 4-element array of mediump float)
+0:24 Function Call: foo(f1[5]; (global 4-element array of mediump float)
+0:24 'g5' (global 5-element array of mediump float)
+0:25 'g5' (global 5-element array of mediump float)
+0:26 'gu' (global 1-element array of mediump float)
+0:28 Constant:
+0:28 0.000000
+0:29 Function Call: bar(f1[5]; (global void)
+0:29 'g5' (global 5-element array of mediump float)
+0:31 Test condition and select (temp void)
+0:31 Condition
+0:31 Compare Equal (temp bool)
+0:31 Constant:
+0:31 1.000000
+0:31 2.000000
+0:31 3.000000
+0:31 4.000000
+0:31 'g4' (global 4-element array of mediump float)
+0:31 true case
+0:32 move second child to first child (temp mediump float)
+0:32 direct index (temp mediump float)
+0:32 'gu' (global 1-element array of mediump float)
+0:32 Constant:
+0:32 0 (const int)
+0:32 Constant:
+0:32 2.000000
+0:35 move second child to first child (temp mediump float)
+0:35 direct index (temp mediump float)
+0:35 'u' (temp 5-element array of mediump float)
+0:35 Constant:
+0:35 5 (const int)
+0:35 Constant:
+0:35 5.000000
+0:36 Function Call: foo(f1[5]; (global 4-element array of mediump float)
+0:36 'u' (temp 5-element array of mediump float)
+0:38 move second child to first child (temp mediump 4-component vector of float)
+0:38 direct index (temp mediump 4-component vector of float FragData)
+0:38 'gl_FragData' (fragColor 32-element array of mediump 4-component vector of float FragData)
+0:38 Constant:
+0:38 1000 (const int)
+0:38 Constant:
+0:38 1.000000
+0:38 1.000000
+0:38 1.000000
+0:38 1.000000
+0:39 move second child to first child (temp mediump 4-component vector of float)
+0:39 direct index (temp mediump 4-component vector of float FragData)
+0:39 'gl_FragData' (fragColor 32-element array of mediump 4-component vector of float FragData)
+0:39 Constant:
+0:39 -1 (const int)
+0:39 Constant:
+0:39 1.000000
+0:39 1.000000
+0:39 1.000000
+0:39 1.000000
+0:40 move second child to first child (temp mediump 4-component vector of float)
+0:40 direct index (temp mediump 4-component vector of float FragData)
+0:40 'gl_FragData' (fragColor 32-element array of mediump 4-component vector of float FragData)
+0:40 Constant:
+0:40 3 (const int)
+0:40 Constant:
+0:40 1.000000
+0:40 1.000000
+0:40 1.000000
+0:40 1.000000
+0:53 Function Definition: bar9( (global structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:53 Function Parameters:
+0:? Sequence
+0:56 Branch: Return with expression
+0:56 's' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:59 Function Definition: bar10(struct-SB-vf4-struct-SA-vf3-vf2[4]11; (global void)
+0:59 Function Parameters:
+0:59 's' (in structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:63 Function Definition: bar11( (global void)
+0:63 Function Parameters:
+0:? Sequence
+0:66 move second child to first child (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:66 's1' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:66 's2' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:67 Function Call: bar10(struct-SB-vf4-struct-SA-vf3-vf2[4]11; (global void)
+0:67 's1' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:68 move second child to first child (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:68 's2' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:68 Function Call: bar9( (global structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:69 Sequence
+0:69 move second child to first child (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:69 'initSb' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:69 's1' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:? Linker Objects
+0:? 'gu' (global 1-element array of mediump float)
+0:? 'g4' (global 4-element array of mediump float)
+0:? 'g5' (global 5-element array of mediump float)
+0:? 'a' (uniform mediump int)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/atomic_uint.frag.out b/chromium/third_party/glslang/src/Test/baseResults/atomic_uint.frag.out
new file mode 100644
index 00000000000..4d05756ca07
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/atomic_uint.frag.out
@@ -0,0 +1,145 @@
+atomic_uint.frag
+Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:10: 'atomic_uint' : samplers and atomic_uints cannot be output parameters
+ERROR: 0:12: 'return' : type does not match, or is not convertible to, the function's return type
+ERROR: 0:18: 'atomic_uint' : atomic_uints can only be used in uniform variables or function parameters: non_uniform_counter
+ERROR: 0:18: 'atomic_uint' : layout(binding=X) is required
+ERROR: 0:23: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings
+ERROR: 0:28: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type 'layout(binding=0 offset=0 ) uniform atomic_uint' and a right operand of type 'layout(binding=0 offset=0 ) uniform atomic_uint' (or there is no acceptable conversion)
+ERROR: 0:29: '-' : wrong operand type no operation '-' exists that takes an operand of type layout(binding=0 offset=0 ) uniform atomic_uint (or there is no acceptable conversion)
+ERROR: 0:31: '[]' : scalar integer expression required
+ERROR: 0:34: 'assign' : l-value required "counter" (can't modify a uniform)
+ERROR: 0:34: 'assign' : cannot convert from 'const int' to 'layout(binding=0 offset=0 ) uniform atomic_uint'
+ERROR: 0:37: 'atomic_uint' : atomic_uints can only be used in uniform variables or function parameters: acin
+ERROR: 0:37: 'atomic_uint' : layout(binding=X) is required
+ERROR: 0:38: 'atomic_uint' : atomic_uints can only be used in uniform variables or function parameters: acg
+ERROR: 0:38: 'atomic_uint' : layout(binding=X) is required
+ERROR: 0:40: 'atomic_uint' : layout(binding=X) is required
+ERROR: 0:46: 'atomic_uint' : layout(binding=X) is required
+ERROR: 0:47: 'offset' : atomic counters sharing the same offset: 12
+ERROR: 0:48: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings
+ERROR: 18 compilation errors. No code generated.
+
+
+Shader version: 420
+ERROR: node is still EOpNull!
+0:5 Function Definition: func(au1; (global uint)
+0:5 Function Parameters:
+0:5 'c' (in atomic_uint)
+0:7 Sequence
+0:7 Branch: Return with expression
+0:7 AtomicCounterIncrement (global uint)
+0:7 'c' (in atomic_uint)
+0:10 Function Definition: func2(au1; (global uint)
+0:10 Function Parameters:
+0:10 'c' (out atomic_uint)
+0:12 Sequence
+0:12 Branch: Return with expression
+0:12 'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
+0:13 Branch: Return with expression
+0:13 AtomicCounter (global uint)
+0:13 'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
+0:16 Function Definition: main( (global void)
+0:16 Function Parameters:
+0:? Sequence
+0:19 Sequence
+0:19 move second child to first child (temp uint)
+0:19 'val' (temp uint)
+0:19 AtomicCounter (global uint)
+0:19 'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
+0:20 AtomicCounterDecrement (global uint)
+0:20 'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
+0:26 Function Definition: opac( (global void)
+0:26 Function Parameters:
+0:28 Sequence
+0:28 'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
+0:29 'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
+0:31 indirect index (temp int)
+0:31 'a' (temp 3-element array of int)
+0:31 'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
+0:32 direct index (layout(binding=1 offset=3 ) temp atomic_uint)
+0:32 'countArr' (layout(binding=1 offset=3 ) uniform 4-element array of atomic_uint)
+0:32 Constant:
+0:32 2 (const int)
+0:33 indirect index (layout(binding=1 offset=3 ) temp atomic_uint)
+0:33 'countArr' (layout(binding=1 offset=3 ) uniform 4-element array of atomic_uint)
+0:33 'i' (uniform int)
+0:34 'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
+0:? Linker Objects
+0:? 'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
+0:? 'countArr' (layout(binding=1 offset=3 ) uniform 4-element array of atomic_uint)
+0:? 'i' (uniform int)
+0:? 'acin' (smooth in atomic_uint)
+0:? 'acg' (global atomic_uint)
+0:? 'aNoBind' (uniform atomic_uint)
+0:? 'aOffset' (layout(binding=0 offset=32 ) uniform atomic_uint)
+0:? 'bar3' (layout(binding=0 offset=4 ) uniform atomic_uint)
+0:? 'ac' (layout(binding=0 offset=8 ) uniform 3-element array of atomic_uint)
+0:? 'ad' (layout(binding=0 offset=20 ) uniform atomic_uint)
+0:? 'bar4' (layout(offset=8 ) uniform atomic_uint)
+0:? 'overlap' (layout(binding=0 offset=12 ) uniform atomic_uint)
+0:? 'bigBind' (layout(binding=20 ) uniform atomic_uint)
+
+
+Linked fragment stage:
+
+
+Shader version: 420
+ERROR: node is still EOpNull!
+0:5 Function Definition: func(au1; (global uint)
+0:5 Function Parameters:
+0:5 'c' (in atomic_uint)
+0:7 Sequence
+0:7 Branch: Return with expression
+0:7 AtomicCounterIncrement (global uint)
+0:7 'c' (in atomic_uint)
+0:10 Function Definition: func2(au1; (global uint)
+0:10 Function Parameters:
+0:10 'c' (out atomic_uint)
+0:12 Sequence
+0:12 Branch: Return with expression
+0:12 'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
+0:13 Branch: Return with expression
+0:13 AtomicCounter (global uint)
+0:13 'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
+0:16 Function Definition: main( (global void)
+0:16 Function Parameters:
+0:? Sequence
+0:19 Sequence
+0:19 move second child to first child (temp uint)
+0:19 'val' (temp uint)
+0:19 AtomicCounter (global uint)
+0:19 'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
+0:20 AtomicCounterDecrement (global uint)
+0:20 'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
+0:26 Function Definition: opac( (global void)
+0:26 Function Parameters:
+0:28 Sequence
+0:28 'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
+0:29 'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
+0:31 indirect index (temp int)
+0:31 'a' (temp 3-element array of int)
+0:31 'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
+0:32 direct index (layout(binding=1 offset=3 ) temp atomic_uint)
+0:32 'countArr' (layout(binding=1 offset=3 ) uniform 4-element array of atomic_uint)
+0:32 Constant:
+0:32 2 (const int)
+0:33 indirect index (layout(binding=1 offset=3 ) temp atomic_uint)
+0:33 'countArr' (layout(binding=1 offset=3 ) uniform 4-element array of atomic_uint)
+0:33 'i' (uniform int)
+0:34 'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
+0:? Linker Objects
+0:? 'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
+0:? 'countArr' (layout(binding=1 offset=3 ) uniform 4-element array of atomic_uint)
+0:? 'i' (uniform int)
+0:? 'acin' (smooth in atomic_uint)
+0:? 'acg' (global atomic_uint)
+0:? 'aNoBind' (uniform atomic_uint)
+0:? 'aOffset' (layout(binding=0 offset=32 ) uniform atomic_uint)
+0:? 'bar3' (layout(binding=0 offset=4 ) uniform atomic_uint)
+0:? 'ac' (layout(binding=0 offset=8 ) uniform 3-element array of atomic_uint)
+0:? 'ad' (layout(binding=0 offset=20 ) uniform atomic_uint)
+0:? 'bar4' (layout(offset=8 ) uniform atomic_uint)
+0:? 'overlap' (layout(binding=0 offset=12 ) uniform atomic_uint)
+0:? 'bigBind' (layout(binding=20 ) uniform atomic_uint)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/badChars.frag.out b/chromium/third_party/glslang/src/Test/baseResults/badChars.frag.out
new file mode 100644
index 00000000000..37af2875507
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/badChars.frag.out
@@ -0,0 +1,26 @@
+badChars.frag
+ERROR: 0:1: 'preprocessor evaluation' : bad expression
+ERROR: 0:1: '#if' : unexpected tokens following directive
+ERROR: 0:3: '#error' : A <bad token> B
+ERROR: 0:4: 'preprocessor evaluation' : bad expression
+ERROR: 0:4: '#if' : unexpected tokens following directive
+ERROR: 0:6: 'ÿ' : unexpected token
+ERROR: 0:7: '' : syntax error
+ERROR: 7 compilation errors. No code generated.
+
+
+Shader version: 100
+ERROR: node is still EOpNull!
+0:? Linker Objects
+0:? 'a' (global mediump int)
+
+
+Linked fragment stage:
+
+ERROR: Linking fragment stage: Missing entry point: Each stage requires one "void main()" entry point
+
+Shader version: 100
+ERROR: node is still EOpNull!
+0:? Linker Objects
+0:? 'a' (global mediump int)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/comment.frag.out b/chromium/third_party/glslang/src/Test/baseResults/comment.frag.out
new file mode 100644
index 00000000000..1c876bb597e
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/comment.frag.out
@@ -0,0 +1,23 @@
+comment.frag
+Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
+WARNING: 0:10: 'line continuation' : used at end of comment; the following line is still part of the comment
+WARNING: 0:12: 'line continuation' : used at end of comment; the following line is still part of the comment
+
+Shader version: 430
+0:? Sequence
+0:17 Function Definition: main( (global void)
+0:17 Function Parameters:
+0:? Linker Objects
+0:? 'v' (smooth in 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 430
+0:? Sequence
+0:17 Function Definition: main( (global void)
+0:17 Function Parameters:
+0:? Linker Objects
+0:? 'v' (smooth in 4-component vector of float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/conditionalDiscard.frag.out b/chromium/third_party/glslang/src/Test/baseResults/conditionalDiscard.frag.out
new file mode 100644
index 00000000000..169787f46c7
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/conditionalDiscard.frag.out
@@ -0,0 +1,63 @@
+conditionalDiscard.frag
+Shader version: 110
+0:? Sequence
+0:6 Function Definition: main( (global void)
+0:6 Function Parameters:
+0:8 Sequence
+0:8 Sequence
+0:8 move second child to first child (temp 4-component vector of float)
+0:8 'v' (temp 4-component vector of float)
+0:8 texture (global 4-component vector of float)
+0:8 'tex' (uniform sampler2D)
+0:8 'coord' (smooth in 2-component vector of float)
+0:10 Test condition and select (temp void)
+0:10 Condition
+0:10 Compare Equal (temp bool)
+0:10 'v' (temp 4-component vector of float)
+0:10 Constant:
+0:10 0.100000
+0:10 0.200000
+0:10 0.300000
+0:10 0.400000
+0:10 true case
+0:11 Branch: Kill
+0:13 move second child to first child (temp 4-component vector of float)
+0:13 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:13 'v' (temp 4-component vector of float)
+0:? Linker Objects
+0:? 'tex' (uniform sampler2D)
+0:? 'coord' (smooth in 2-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 110
+0:? Sequence
+0:6 Function Definition: main( (global void)
+0:6 Function Parameters:
+0:8 Sequence
+0:8 Sequence
+0:8 move second child to first child (temp 4-component vector of float)
+0:8 'v' (temp 4-component vector of float)
+0:8 texture (global 4-component vector of float)
+0:8 'tex' (uniform sampler2D)
+0:8 'coord' (smooth in 2-component vector of float)
+0:10 Test condition and select (temp void)
+0:10 Condition
+0:10 Compare Equal (temp bool)
+0:10 'v' (temp 4-component vector of float)
+0:10 Constant:
+0:10 0.100000
+0:10 0.200000
+0:10 0.300000
+0:10 0.400000
+0:10 true case
+0:11 Branch: Kill
+0:13 move second child to first child (temp 4-component vector of float)
+0:13 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:13 'v' (temp 4-component vector of float)
+0:? Linker Objects
+0:? 'tex' (uniform sampler2D)
+0:? 'coord' (smooth in 2-component vector of float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/constErrors.frag.out b/chromium/third_party/glslang/src/Test/baseResults/constErrors.frag.out
new file mode 100644
index 00000000000..f04c7369ff6
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/constErrors.frag.out
@@ -0,0 +1,54 @@
+constErrors.frag
+ERROR: 0:14: 'non-constant initializer' : not supported for this version or the enabled extensions
+ERROR: 0:17: '' : array size must be a constant integer expression
+ERROR: 0:18: '' : array size must be a constant integer expression
+ERROR: 0:19: '' : array size must be a constant integer expression
+ERROR: 0:27: '=' : global const initializers must be constant 'const structure{global 3-component vector of float v3, global 2-component vector of int iv2}'
+ERROR: 0:33: '=' : global const initializers must be constant 'const structure{global 3-component vector of float v3, global 2-component vector of int iv2, global 2X4 matrix of float m}'
+ERROR: 6 compilation errors. No code generated.
+
+
+Shader version: 330
+ERROR: node is still EOpNull!
+0:10 Function Definition: main( (global void)
+0:10 Function Parameters:
+0:? Sequence
+0:14 Sequence
+0:14 move second child to first child (temp int)
+0:14 'a3' (const (read only) int)
+0:14 'uniformInt' (uniform int)
+0:? Linker Objects
+0:? 'inVar' (smooth in 4-component vector of float)
+0:? 'outVar' (out 4-component vector of float)
+0:? 'constInt' (const int)
+0:? 3 (const int)
+0:? 'uniformInt' (uniform int)
+0:? 's' (temp structure{global 3-component vector of float v3, global 2-component vector of int iv2})
+0:? 's2' (temp structure{global 3-component vector of float v3, global 2-component vector of int iv2, global 2X4 matrix of float m})
+0:? 'f' (const float)
+0:? 3.000000
+
+
+Linked fragment stage:
+
+
+Shader version: 330
+ERROR: node is still EOpNull!
+0:10 Function Definition: main( (global void)
+0:10 Function Parameters:
+0:? Sequence
+0:14 Sequence
+0:14 move second child to first child (temp int)
+0:14 'a3' (const (read only) int)
+0:14 'uniformInt' (uniform int)
+0:? Linker Objects
+0:? 'inVar' (smooth in 4-component vector of float)
+0:? 'outVar' (out 4-component vector of float)
+0:? 'constInt' (const int)
+0:? 3 (const int)
+0:? 'uniformInt' (uniform int)
+0:? 's' (temp structure{global 3-component vector of float v3, global 2-component vector of int iv2})
+0:? 's2' (temp structure{global 3-component vector of float v3, global 2-component vector of int iv2, global 2X4 matrix of float m})
+0:? 'f' (const float)
+0:? 3.000000
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/constFold.frag.out b/chromium/third_party/glslang/src/Test/baseResults/constFold.frag.out
new file mode 100644
index 00000000000..f5c3e9c571c
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/constFold.frag.out
@@ -0,0 +1,747 @@
+constFold.frag
+Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:109: '[' : index out of range '-1'
+ERROR: 0:110: '[' : vector index out of range '4'
+ERROR: 0:111: '[' : index out of range '-2'
+ERROR: 0:112: '[' : index out of range '-1'
+ERROR: 0:113: '[' : vector index out of range '3'
+ERROR: 0:114: '[' : matrix index out of range '3'
+ERROR: 6 compilation errors. No code generated.
+
+
+Shader version: 430
+ERROR: node is still EOpNull!
+0:28 Function Definition: main( (global void)
+0:28 Function Parameters:
+0:30 Sequence
+0:30 Sequence
+0:30 move second child to first child (temp 4-component vector of float)
+0:30 'dx' (temp 4-component vector of float)
+0:30 dPdx (global 4-component vector of float)
+0:30 'inv' (smooth in 4-component vector of float)
+0:37 move second child to first child (temp 4-component vector of float)
+0:37 'FragColor' (out 4-component vector of float)
+0:37 Constant:
+0:37 2.000000
+0:37 6.000000
+0:37 3.000000
+0:37 171.887339
+0:42 move second child to first child (temp 4-component vector of float)
+0:42 'FragColor' (out 4-component vector of float)
+0:42 Constant:
+0:42 3.000000
+0:42 2.000000
+0:42 0.001593
+0:42 -0.999999
+0:43 move second child to first child (temp 2-component vector of float)
+0:43 'out2' (out 2-component vector of float)
+0:43 Constant:
+0:43 5.600000
+0:43 5.800000
+0:44 move second child to first child (temp 4-component vector of float)
+0:44 'out3' (out 4-component vector of float)
+0:44 Constant:
+0:44 20.085537
+0:44 2.302585
+0:44 16.000000
+0:44 8.000000
+0:45 move second child to first child (temp 4-component vector of float)
+0:45 'out4' (out 4-component vector of float)
+0:45 Constant:
+0:45 10.000000
+0:45 0.100000
+0:45 4.700000
+0:45 10.900000
+0:46 move second child to first child (temp 4-component vector of int)
+0:46 'out5' (out 4-component vector of int)
+0:46 Constant:
+0:46 8 (const int)
+0:46 17 (const int)
+0:46 -1 (const int)
+0:46 1 (const int)
+0:47 move second child to first child (temp 3-component vector of float)
+0:47 'out6' (out 3-component vector of float)
+0:47 Constant:
+0:47 -1.000000
+0:47 1.000000
+0:47 0.000000
+0:48 move second child to first child (temp 4-component vector of float)
+0:48 'out7' (out 4-component vector of float)
+0:48 Constant:
+0:48 4.000000
+0:48 -4.000000
+0:48 5.000000
+0:48 -5.000000
+0:49 move second child to first child (temp 4-component vector of float)
+0:49 'out8' (out 4-component vector of float)
+0:49 Constant:
+0:49 4.000000
+0:49 5.000000
+0:49 4.000000
+0:49 -6.000000
+0:50 move second child to first child (temp 4-component vector of float)
+0:50 'out9' (out 4-component vector of float)
+0:50 Constant:
+0:50 8.000000
+0:50 -4.000000
+0:50 0.345000
+0:50 0.400000
+0:51 move second child to first child (temp 4-component vector of float)
+0:51 'out10' (out 4-component vector of float)
+0:51 Constant:
+0:51 1.000000
+0:51 1.000000
+0:51 0.000000
+0:51 0.000000
+0:52 move second child to first child (temp 4-component vector of float)
+0:52 'out11' (out 4-component vector of float)
+0:52 Constant:
+0:52 0.000000
+0:52 0.000000
+0:52 1.000000
+0:52 0.000000
+0:53 move second child to first child (temp 4-component vector of float)
+0:53 'out11' (out 4-component vector of float)
+0:53 Constant:
+0:53 1.029639
+0:53 0.799690
+0:53 0.674741
+0:53 1.570696
+0:54 move second child to first child (temp 4-component vector of float)
+0:54 'out11' (out 4-component vector of float)
+0:54 Constant:
+0:54 0.000000
+0:54 0.523599
+0:54 1.570796
+0:54 1.047198
+0:58 move second child to first child (temp 4-component vector of float)
+0:58 'out11' (out 4-component vector of float)
+0:58 Constant:
+0:58 1.373401
+0:58 0.000000
+0:58 0.896055
+0:58 -0.380506
+0:62 move second child to first child (temp 2-component vector of int)
+0:62 'out12' (out 2-component vector of int)
+0:62 Constant:
+0:62 15 (const int)
+0:62 16 (const int)
+0:63 move second child to first child (temp 2-component vector of int)
+0:63 'out12' (out 2-component vector of int)
+0:63 Constant:
+0:63 17 (const int)
+0:63 17 (const int)
+0:64 move second child to first child (temp 2-component vector of float)
+0:64 'out2' (out 2-component vector of float)
+0:64 Constant:
+0:64 871.421253
+0:64 4913.000000
+0:65 move second child to first child (temp 3-component vector of uint)
+0:65 'out13' (out 3-component vector of uint)
+0:65 Constant:
+0:65 10 (const uint)
+0:65 20 (const uint)
+0:65 30 (const uint)
+0:66 move second child to first child (temp 2-component vector of float)
+0:66 'out2' (out 2-component vector of float)
+0:66 Constant:
+0:66 3.000000
+0:66 6.000000
+0:67 move second child to first child (temp 2-component vector of float)
+0:67 'out2' (out 2-component vector of float)
+0:67 Constant:
+0:67 3.500000
+0:67 4.500000
+0:68 move second child to first child (temp 2-component vector of float)
+0:68 'out2' (out 2-component vector of float)
+0:68 Constant:
+0:68 0.000000
+0:68 1.000000
+0:69 move second child to first child (temp 4-component vector of float)
+0:69 'out11' (out 4-component vector of float)
+0:69 Constant:
+0:69 0.000000
+0:69 0.028000
+0:69 0.500000
+0:69 1.000000
+0:78 Function Definition: foo( (global void)
+0:78 Function Parameters:
+0:? Sequence
+0:81 move second child to first child (temp float)
+0:81 direct index (temp float)
+0:81 'a' (temp 3-element array of float)
+0:81 Constant:
+0:81 0 (const int)
+0:81 Constant:
+0:81 7.000000
+0:82 Constant:
+0:82 2 (const int)
+0:83 Constant:
+0:83 2147483647 (const int)
+0:84 Constant:
+0:84 inf
+0:88 Constant:
+0:88 2 (const uint)
+0:88 3 (const uint)
+0:89 Constant:
+0:89 0 (const uint)
+0:90 Constant:
+0:90 6 (const uint)
+0:90 7 (const uint)
+0:103 Function Definition: foo2( (global void)
+0:103 Function Parameters:
+0:105 Sequence
+0:105 direct index (temp float)
+0:105 'a1' (global 1-element array of float)
+0:105 Constant:
+0:105 0 (const int)
+0:106 direct index (temp float)
+0:106 'a2' (global 2-element array of float)
+0:106 Constant:
+0:106 0 (const int)
+0:107 direct index (temp float)
+0:107 'a3' (global 4-element array of float)
+0:107 Constant:
+0:107 0 (const int)
+0:108 direct index (temp float)
+0:108 'a4' (global 2-element array of float)
+0:108 Constant:
+0:108 0 (const int)
+0:109 Constant:
+0:109 1.000000
+0:110 Constant:
+0:110 5.000000
+0:111 Constant:
+0:111 2.000000
+0:112 Constant:
+0:112 3.000000
+0:113 Constant:
+0:113 0.000000
+0:114 Constant:
+0:114 0.000000
+0:116 move second child to first child (temp int)
+0:116 'p' (temp int)
+0:116 Constant:
+0:116 2147483647 (const int)
+0:117 move second child to first child (temp int)
+0:117 'p' (temp int)
+0:117 Constant:
+0:117 -2147483648 (const int)
+0:118 move second child to first child (temp int)
+0:118 'p' (temp int)
+0:118 Constant:
+0:118 -2147483647 (const int)
+0:119 Sequence
+0:119 move second child to first child (temp float)
+0:119 'f' (temp float)
+0:119 Constant:
+0:119 1.444000
+0:120 move second child to first child (temp float)
+0:120 'f' (temp float)
+0:120 direct index (temp float)
+0:120 Construct vec4 (temp 4-component vector of float)
+0:120 Test condition and select (temp float)
+0:120 Condition
+0:120 Compare Less Than (temp bool)
+0:120 direct index (temp float)
+0:120 'inv' (smooth in 4-component vector of float)
+0:120 Constant:
+0:120 0 (const int)
+0:120 Constant:
+0:120 2.400000
+0:120 true case
+0:120 Constant:
+0:120 -1.000000
+0:120 false case
+0:120 Constant:
+0:120 1.000000
+0:120 Constant:
+0:120 3 (const int)
+0:126 Function Definition: foo3( (global void)
+0:126 Function Parameters:
+0:128 Sequence
+0:128 Sequence
+0:128 move second child to first child (temp 3X2 matrix of float)
+0:128 'r32' (temp 3X2 matrix of float)
+0:128 Constant:
+0:128 43.000000
+0:128 64.000000
+0:128 51.000000
+0:128 76.000000
+0:128 59.000000
+0:128 88.000000
+0:138 Function Definition: foo4( (global void)
+0:138 Function Parameters:
+0:140 Sequence
+0:140 Sequence
+0:140 move second child to first child (temp int)
+0:140 'a' (temp int)
+0:140 Constant:
+0:140 9 (const int)
+0:? Linker Objects
+0:? 'a' (const int)
+0:? 1 (const int)
+0:? 'b' (const int)
+0:? 2 (const int)
+0:? 'c' (const int)
+0:? 3 (const int)
+0:? 'd' (const int)
+0:? 2 (const int)
+0:? 'e' (const float)
+0:? 2.000000
+0:? 'f' (const float)
+0:? 6.000000
+0:? 'g' (const float)
+0:? 3.000000
+0:? 'pytho' (const 2-component vector of float)
+0:? 3.000000
+0:? 4.000000
+0:? 'inv' (smooth in 4-component vector of float)
+0:? 'FragColor' (out 4-component vector of float)
+0:? 'out2' (out 2-component vector of float)
+0:? 'out3' (out 4-component vector of float)
+0:? 'out4' (out 4-component vector of float)
+0:? 'out5' (out 4-component vector of int)
+0:? 'out6' (out 3-component vector of float)
+0:? 'out7' (out 4-component vector of float)
+0:? 'out8' (out 4-component vector of float)
+0:? 'out9' (out 4-component vector of float)
+0:? 'out10' (out 4-component vector of float)
+0:? 'out11' (out 4-component vector of float)
+0:? 'out12' (out 2-component vector of int)
+0:? 'out13' (out 3-component vector of uint)
+0:? 's' (const structure{global 3-component vector of float v3, global 2-component vector of int iv2, global 2X4 matrix of float m})
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3 (const int)
+0:? 3 (const int)
+0:? 1.000000
+0:? 2.000000
+0:? 3.000000
+0:? 4.000000
+0:? 5.000000
+0:? 6.000000
+0:? 7.000000
+0:? 8.000000
+0:? 'm2' (const 2X2 matrix of float)
+0:? 2.000000
+0:? 3.000000
+0:? 4.000000
+0:? 5.000000
+0:? 'm3' (const 3X3 matrix of float)
+0:? 2.000000
+0:? 3.000000
+0:? 0.000000
+0:? 4.000000
+0:? 5.000000
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:? 1.000000
+0:? 'mc' (const int)
+0:? 1 (const int)
+0:? 'a1' (global 1-element array of float)
+0:? 'a2' (global 2-element array of float)
+0:? 'a3' (global 4-element array of float)
+0:? 'v2' (const 2-component vector of float)
+0:? 1.000000
+0:? 2.000000
+0:? 'v3' (const 3-component vector of float)
+0:? 3.000000
+0:? 4.000000
+0:? 5.000000
+0:? 'a4' (global 2-element array of float)
+0:? 'mm2' (const 2X2 matrix of float)
+0:? 1.000000
+0:? 2.000000
+0:? 3.000000
+0:? 4.000000
+0:? 'mm32' (const 3X2 matrix of float)
+0:? 10.000000
+0:? 11.000000
+0:? 12.000000
+0:? 13.000000
+0:? 14.000000
+0:? 15.000000
+0:? 'a0' (const 3-element array of structure{global int i, global float f, global bool b})
+0:? 3 (const int)
+0:? 2.000000
+0:? true (const bool)
+0:? 1 (const int)
+0:? 5.000000
+0:? true (const bool)
+0:? 1 (const int)
+0:? 9.000000
+0:? false (const bool)
+
+
+Linked fragment stage:
+
+
+Shader version: 430
+ERROR: node is still EOpNull!
+0:28 Function Definition: main( (global void)
+0:28 Function Parameters:
+0:30 Sequence
+0:30 Sequence
+0:30 move second child to first child (temp 4-component vector of float)
+0:30 'dx' (temp 4-component vector of float)
+0:30 dPdx (global 4-component vector of float)
+0:30 'inv' (smooth in 4-component vector of float)
+0:37 move second child to first child (temp 4-component vector of float)
+0:37 'FragColor' (out 4-component vector of float)
+0:37 Constant:
+0:37 2.000000
+0:37 6.000000
+0:37 3.000000
+0:37 171.887339
+0:42 move second child to first child (temp 4-component vector of float)
+0:42 'FragColor' (out 4-component vector of float)
+0:42 Constant:
+0:42 3.000000
+0:42 2.000000
+0:42 0.001593
+0:42 -0.999999
+0:43 move second child to first child (temp 2-component vector of float)
+0:43 'out2' (out 2-component vector of float)
+0:43 Constant:
+0:43 5.600000
+0:43 5.800000
+0:44 move second child to first child (temp 4-component vector of float)
+0:44 'out3' (out 4-component vector of float)
+0:44 Constant:
+0:44 20.085537
+0:44 2.302585
+0:44 16.000000
+0:44 8.000000
+0:45 move second child to first child (temp 4-component vector of float)
+0:45 'out4' (out 4-component vector of float)
+0:45 Constant:
+0:45 10.000000
+0:45 0.100000
+0:45 4.700000
+0:45 10.900000
+0:46 move second child to first child (temp 4-component vector of int)
+0:46 'out5' (out 4-component vector of int)
+0:46 Constant:
+0:46 8 (const int)
+0:46 17 (const int)
+0:46 -1 (const int)
+0:46 1 (const int)
+0:47 move second child to first child (temp 3-component vector of float)
+0:47 'out6' (out 3-component vector of float)
+0:47 Constant:
+0:47 -1.000000
+0:47 1.000000
+0:47 0.000000
+0:48 move second child to first child (temp 4-component vector of float)
+0:48 'out7' (out 4-component vector of float)
+0:48 Constant:
+0:48 4.000000
+0:48 -4.000000
+0:48 5.000000
+0:48 -5.000000
+0:49 move second child to first child (temp 4-component vector of float)
+0:49 'out8' (out 4-component vector of float)
+0:49 Constant:
+0:49 4.000000
+0:49 5.000000
+0:49 4.000000
+0:49 -6.000000
+0:50 move second child to first child (temp 4-component vector of float)
+0:50 'out9' (out 4-component vector of float)
+0:50 Constant:
+0:50 8.000000
+0:50 -4.000000
+0:50 0.345000
+0:50 0.400000
+0:51 move second child to first child (temp 4-component vector of float)
+0:51 'out10' (out 4-component vector of float)
+0:51 Constant:
+0:51 1.000000
+0:51 1.000000
+0:51 0.000000
+0:51 0.000000
+0:52 move second child to first child (temp 4-component vector of float)
+0:52 'out11' (out 4-component vector of float)
+0:52 Constant:
+0:52 0.000000
+0:52 0.000000
+0:52 1.000000
+0:52 0.000000
+0:53 move second child to first child (temp 4-component vector of float)
+0:53 'out11' (out 4-component vector of float)
+0:53 Constant:
+0:53 1.029639
+0:53 0.799690
+0:53 0.674741
+0:53 1.570696
+0:54 move second child to first child (temp 4-component vector of float)
+0:54 'out11' (out 4-component vector of float)
+0:54 Constant:
+0:54 0.000000
+0:54 0.523599
+0:54 1.570796
+0:54 1.047198
+0:58 move second child to first child (temp 4-component vector of float)
+0:58 'out11' (out 4-component vector of float)
+0:58 Constant:
+0:58 1.373401
+0:58 0.000000
+0:58 0.896055
+0:58 -0.380506
+0:62 move second child to first child (temp 2-component vector of int)
+0:62 'out12' (out 2-component vector of int)
+0:62 Constant:
+0:62 15 (const int)
+0:62 16 (const int)
+0:63 move second child to first child (temp 2-component vector of int)
+0:63 'out12' (out 2-component vector of int)
+0:63 Constant:
+0:63 17 (const int)
+0:63 17 (const int)
+0:64 move second child to first child (temp 2-component vector of float)
+0:64 'out2' (out 2-component vector of float)
+0:64 Constant:
+0:64 871.421253
+0:64 4913.000000
+0:65 move second child to first child (temp 3-component vector of uint)
+0:65 'out13' (out 3-component vector of uint)
+0:65 Constant:
+0:65 10 (const uint)
+0:65 20 (const uint)
+0:65 30 (const uint)
+0:66 move second child to first child (temp 2-component vector of float)
+0:66 'out2' (out 2-component vector of float)
+0:66 Constant:
+0:66 3.000000
+0:66 6.000000
+0:67 move second child to first child (temp 2-component vector of float)
+0:67 'out2' (out 2-component vector of float)
+0:67 Constant:
+0:67 3.500000
+0:67 4.500000
+0:68 move second child to first child (temp 2-component vector of float)
+0:68 'out2' (out 2-component vector of float)
+0:68 Constant:
+0:68 0.000000
+0:68 1.000000
+0:69 move second child to first child (temp 4-component vector of float)
+0:69 'out11' (out 4-component vector of float)
+0:69 Constant:
+0:69 0.000000
+0:69 0.028000
+0:69 0.500000
+0:69 1.000000
+0:78 Function Definition: foo( (global void)
+0:78 Function Parameters:
+0:? Sequence
+0:81 move second child to first child (temp float)
+0:81 direct index (temp float)
+0:81 'a' (temp 3-element array of float)
+0:81 Constant:
+0:81 0 (const int)
+0:81 Constant:
+0:81 7.000000
+0:82 Constant:
+0:82 2 (const int)
+0:83 Constant:
+0:83 2147483647 (const int)
+0:84 Constant:
+0:84 inf
+0:88 Constant:
+0:88 2 (const uint)
+0:88 3 (const uint)
+0:89 Constant:
+0:89 0 (const uint)
+0:90 Constant:
+0:90 6 (const uint)
+0:90 7 (const uint)
+0:103 Function Definition: foo2( (global void)
+0:103 Function Parameters:
+0:105 Sequence
+0:105 direct index (temp float)
+0:105 'a1' (global 1-element array of float)
+0:105 Constant:
+0:105 0 (const int)
+0:106 direct index (temp float)
+0:106 'a2' (global 2-element array of float)
+0:106 Constant:
+0:106 0 (const int)
+0:107 direct index (temp float)
+0:107 'a3' (global 4-element array of float)
+0:107 Constant:
+0:107 0 (const int)
+0:108 direct index (temp float)
+0:108 'a4' (global 2-element array of float)
+0:108 Constant:
+0:108 0 (const int)
+0:109 Constant:
+0:109 1.000000
+0:110 Constant:
+0:110 5.000000
+0:111 Constant:
+0:111 2.000000
+0:112 Constant:
+0:112 3.000000
+0:113 Constant:
+0:113 0.000000
+0:114 Constant:
+0:114 0.000000
+0:116 move second child to first child (temp int)
+0:116 'p' (temp int)
+0:116 Constant:
+0:116 2147483647 (const int)
+0:117 move second child to first child (temp int)
+0:117 'p' (temp int)
+0:117 Constant:
+0:117 -2147483648 (const int)
+0:118 move second child to first child (temp int)
+0:118 'p' (temp int)
+0:118 Constant:
+0:118 -2147483647 (const int)
+0:119 Sequence
+0:119 move second child to first child (temp float)
+0:119 'f' (temp float)
+0:119 Constant:
+0:119 1.444000
+0:120 move second child to first child (temp float)
+0:120 'f' (temp float)
+0:120 direct index (temp float)
+0:120 Construct vec4 (temp 4-component vector of float)
+0:120 Test condition and select (temp float)
+0:120 Condition
+0:120 Compare Less Than (temp bool)
+0:120 direct index (temp float)
+0:120 'inv' (smooth in 4-component vector of float)
+0:120 Constant:
+0:120 0 (const int)
+0:120 Constant:
+0:120 2.400000
+0:120 true case
+0:120 Constant:
+0:120 -1.000000
+0:120 false case
+0:120 Constant:
+0:120 1.000000
+0:120 Constant:
+0:120 3 (const int)
+0:126 Function Definition: foo3( (global void)
+0:126 Function Parameters:
+0:128 Sequence
+0:128 Sequence
+0:128 move second child to first child (temp 3X2 matrix of float)
+0:128 'r32' (temp 3X2 matrix of float)
+0:128 Constant:
+0:128 43.000000
+0:128 64.000000
+0:128 51.000000
+0:128 76.000000
+0:128 59.000000
+0:128 88.000000
+0:138 Function Definition: foo4( (global void)
+0:138 Function Parameters:
+0:140 Sequence
+0:140 Sequence
+0:140 move second child to first child (temp int)
+0:140 'a' (temp int)
+0:140 Constant:
+0:140 9 (const int)
+0:? Linker Objects
+0:? 'a' (const int)
+0:? 1 (const int)
+0:? 'b' (const int)
+0:? 2 (const int)
+0:? 'c' (const int)
+0:? 3 (const int)
+0:? 'd' (const int)
+0:? 2 (const int)
+0:? 'e' (const float)
+0:? 2.000000
+0:? 'f' (const float)
+0:? 6.000000
+0:? 'g' (const float)
+0:? 3.000000
+0:? 'pytho' (const 2-component vector of float)
+0:? 3.000000
+0:? 4.000000
+0:? 'inv' (smooth in 4-component vector of float)
+0:? 'FragColor' (out 4-component vector of float)
+0:? 'out2' (out 2-component vector of float)
+0:? 'out3' (out 4-component vector of float)
+0:? 'out4' (out 4-component vector of float)
+0:? 'out5' (out 4-component vector of int)
+0:? 'out6' (out 3-component vector of float)
+0:? 'out7' (out 4-component vector of float)
+0:? 'out8' (out 4-component vector of float)
+0:? 'out9' (out 4-component vector of float)
+0:? 'out10' (out 4-component vector of float)
+0:? 'out11' (out 4-component vector of float)
+0:? 'out12' (out 2-component vector of int)
+0:? 'out13' (out 3-component vector of uint)
+0:? 's' (const structure{global 3-component vector of float v3, global 2-component vector of int iv2, global 2X4 matrix of float m})
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3 (const int)
+0:? 3 (const int)
+0:? 1.000000
+0:? 2.000000
+0:? 3.000000
+0:? 4.000000
+0:? 5.000000
+0:? 6.000000
+0:? 7.000000
+0:? 8.000000
+0:? 'm2' (const 2X2 matrix of float)
+0:? 2.000000
+0:? 3.000000
+0:? 4.000000
+0:? 5.000000
+0:? 'm3' (const 3X3 matrix of float)
+0:? 2.000000
+0:? 3.000000
+0:? 0.000000
+0:? 4.000000
+0:? 5.000000
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:? 1.000000
+0:? 'mc' (const int)
+0:? 1 (const int)
+0:? 'a1' (global 1-element array of float)
+0:? 'a2' (global 2-element array of float)
+0:? 'a3' (global 4-element array of float)
+0:? 'v2' (const 2-component vector of float)
+0:? 1.000000
+0:? 2.000000
+0:? 'v3' (const 3-component vector of float)
+0:? 3.000000
+0:? 4.000000
+0:? 5.000000
+0:? 'a4' (global 2-element array of float)
+0:? 'mm2' (const 2X2 matrix of float)
+0:? 1.000000
+0:? 2.000000
+0:? 3.000000
+0:? 4.000000
+0:? 'mm32' (const 3X2 matrix of float)
+0:? 10.000000
+0:? 11.000000
+0:? 12.000000
+0:? 13.000000
+0:? 14.000000
+0:? 15.000000
+0:? 'a0' (const 3-element array of structure{global int i, global float f, global bool b})
+0:? 3 (const int)
+0:? 2.000000
+0:? true (const bool)
+0:? 1 (const int)
+0:? 5.000000
+0:? true (const bool)
+0:? 1 (const int)
+0:? 9.000000
+0:? false (const bool)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/conversion.frag.out b/chromium/third_party/glslang/src/Test/baseResults/conversion.frag.out
new file mode 100644
index 00000000000..3abf82ceffc
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/conversion.frag.out
@@ -0,0 +1,955 @@
+conversion.frag
+Shader version: 130
+0:? Sequence
+0:33 Function Definition: main( (global void)
+0:33 Function Parameters:
+0:35 Sequence
+0:35 Sequence
+0:35 move second child to first child (temp bool)
+0:35 'b' (temp bool)
+0:35 logical-xor (temp bool)
+0:35 Convert int to bool (temp bool)
+0:35 'u_i' (uniform int)
+0:35 Convert float to bool (temp bool)
+0:35 'u_f' (uniform float)
+0:36 Sequence
+0:36 move second child to first child (temp 2-component vector of bool)
+0:36 'b2' (temp 2-component vector of bool)
+0:36 Construct bvec2 (temp 2-component vector of bool)
+0:36 Convert int to bool (temp bool)
+0:36 'u_i' (uniform int)
+0:36 Convert float to bool (temp bool)
+0:36 'u_f' (uniform float)
+0:37 Sequence
+0:37 move second child to first child (temp 3-component vector of bool)
+0:37 'b3' (temp 3-component vector of bool)
+0:37 Construct bvec3 (temp 3-component vector of bool)
+0:37 Convert int to bool (temp bool)
+0:37 'u_i' (uniform int)
+0:37 Convert float to bool (temp bool)
+0:37 'u_f' (uniform float)
+0:37 Convert int to bool (temp bool)
+0:37 'i_i' (flat in int)
+0:38 Sequence
+0:38 move second child to first child (temp 4-component vector of bool)
+0:38 'b4' (temp 4-component vector of bool)
+0:38 Construct bvec4 (temp 4-component vector of bool)
+0:38 Convert int to bool (temp bool)
+0:38 'u_i' (uniform int)
+0:38 Convert float to bool (temp bool)
+0:38 'u_f' (uniform float)
+0:38 Convert int to bool (temp bool)
+0:38 'i_i' (flat in int)
+0:38 Convert float to bool (temp bool)
+0:38 'i_f' (smooth in float)
+0:40 Sequence
+0:40 move second child to first child (temp int)
+0:40 'i' (temp int)
+0:40 add (temp int)
+0:40 Convert float to int (temp int)
+0:40 'u_f' (uniform float)
+0:40 Convert bool to int (temp int)
+0:40 'b' (temp bool)
+0:41 Sequence
+0:41 move second child to first child (temp 2-component vector of int)
+0:41 'i2' (temp 2-component vector of int)
+0:41 add (temp 2-component vector of int)
+0:41 Convert float to int (temp 2-component vector of int)
+0:41 'u_f2' (uniform 2-component vector of float)
+0:41 Convert bool to int (temp 2-component vector of int)
+0:41 'b2' (temp 2-component vector of bool)
+0:42 Sequence
+0:42 move second child to first child (temp 3-component vector of int)
+0:42 'i3' (temp 3-component vector of int)
+0:42 add (temp 3-component vector of int)
+0:42 Convert float to int (temp 3-component vector of int)
+0:42 'u_f3' (uniform 3-component vector of float)
+0:42 Convert bool to int (temp 3-component vector of int)
+0:42 'b3' (temp 3-component vector of bool)
+0:43 Sequence
+0:43 move second child to first child (temp 4-component vector of int)
+0:43 'i4' (temp 4-component vector of int)
+0:43 add (temp 4-component vector of int)
+0:43 Convert float to int (temp 4-component vector of int)
+0:43 'u_f4' (uniform 4-component vector of float)
+0:43 Convert bool to int (temp 4-component vector of int)
+0:43 'b4' (temp 4-component vector of bool)
+0:45 Sequence
+0:45 move second child to first child (temp float)
+0:45 'f' (temp float)
+0:45 Convert int to float (temp float)
+0:45 'i' (temp int)
+0:46 Sequence
+0:46 move second child to first child (temp 2-component vector of float)
+0:46 'f2' (temp 2-component vector of float)
+0:46 Convert int to float (temp 2-component vector of float)
+0:46 'i2' (temp 2-component vector of int)
+0:47 Sequence
+0:47 move second child to first child (temp 3-component vector of float)
+0:47 'f3' (temp 3-component vector of float)
+0:47 Convert int to float (temp 3-component vector of float)
+0:47 'i3' (temp 3-component vector of int)
+0:48 Sequence
+0:48 move second child to first child (temp 4-component vector of float)
+0:48 'f4' (temp 4-component vector of float)
+0:48 Convert int to float (temp 4-component vector of float)
+0:48 'i4' (temp 4-component vector of int)
+0:50 add second child into first child (temp float)
+0:50 'f' (temp float)
+0:50 add (temp float)
+0:50 Convert int to float (temp float)
+0:50 'i' (temp int)
+0:50 Convert bool to float (temp float)
+0:50 'b' (temp bool)
+0:51 subtract second child into first child (temp 2-component vector of float)
+0:51 'f2' (temp 2-component vector of float)
+0:51 add (temp 2-component vector of float)
+0:51 Convert int to float (temp 2-component vector of float)
+0:51 'i2' (temp 2-component vector of int)
+0:51 Convert bool to float (temp 2-component vector of float)
+0:51 'b2' (temp 2-component vector of bool)
+0:52 divide second child into first child (temp 3-component vector of float)
+0:52 'f3' (temp 3-component vector of float)
+0:52 add (temp 3-component vector of float)
+0:52 Convert int to float (temp 3-component vector of float)
+0:52 'i3' (temp 3-component vector of int)
+0:52 Convert bool to float (temp 3-component vector of float)
+0:52 'b3' (temp 3-component vector of bool)
+0:53 add second child into first child (temp 4-component vector of float)
+0:53 'f4' (temp 4-component vector of float)
+0:53 add (temp 4-component vector of float)
+0:53 Convert int to float (temp 4-component vector of float)
+0:53 'i4' (temp 4-component vector of int)
+0:53 Convert bool to float (temp 4-component vector of float)
+0:53 'b4' (temp 4-component vector of bool)
+0:55 add second child into first child (temp 4-component vector of float)
+0:55 'f4' (temp 4-component vector of float)
+0:55 Convert bool to float (temp 4-component vector of float)
+0:55 Convert int to bool (temp 4-component vector of bool)
+0:55 'i_i4' (flat in 4-component vector of int)
+0:56 add second child into first child (temp 4-component vector of float)
+0:56 'f4' (temp 4-component vector of float)
+0:56 Convert bool to float (temp 4-component vector of float)
+0:56 Convert float to bool (temp 4-component vector of bool)
+0:56 'u_f4' (uniform 4-component vector of float)
+0:58 add second child into first child (temp float)
+0:58 'f' (temp float)
+0:58 subtract (temp float)
+0:58 'f' (temp float)
+0:58 Convert int to float (temp float)
+0:58 'i' (temp int)
+0:59 add second child into first child (temp 2-component vector of float)
+0:59 'f2' (temp 2-component vector of float)
+0:59 add (temp 2-component vector of float)
+0:59 Construct vec2 (temp 2-component vector of float)
+0:59 'f' (temp float)
+0:59 Convert int to float (temp float)
+0:59 'i' (temp int)
+0:59 Convert int to float (temp 2-component vector of float)
+0:59 'i2' (temp 2-component vector of int)
+0:60 add second child into first child (temp 3-component vector of float)
+0:60 'f3' (temp 3-component vector of float)
+0:60 add (temp 3-component vector of float)
+0:60 Convert int to float (temp 3-component vector of float)
+0:60 'i3' (temp 3-component vector of int)
+0:60 Construct vec3 (temp 3-component vector of float)
+0:60 'f' (temp float)
+0:60 Convert int to float (temp float)
+0:60 'i' (temp int)
+0:60 'f' (temp float)
+0:61 add second child into first child (temp 4-component vector of float)
+0:61 'f4' (temp 4-component vector of float)
+0:61 add (temp 4-component vector of float)
+0:61 Construct vec4 (temp 4-component vector of float)
+0:61 Convert bool to float (temp float)
+0:61 'b' (temp bool)
+0:61 Convert int to float (temp float)
+0:61 'i' (temp int)
+0:61 'f' (temp float)
+0:61 Convert int to float (temp float)
+0:61 'i' (temp int)
+0:61 Convert int to float (temp 4-component vector of float)
+0:61 'i4' (temp 4-component vector of int)
+0:63 add second child into first child (temp 2-component vector of float)
+0:63 'f2' (temp 2-component vector of float)
+0:63 vector-scale (temp 2-component vector of float)
+0:63 Construct vec2 (temp 2-component vector of float)
+0:63 'f' (temp float)
+0:63 Convert int to float (temp float)
+0:63 'i' (temp int)
+0:63 Convert int to float (temp float)
+0:63 'i' (temp int)
+0:64 add second child into first child (temp 3-component vector of float)
+0:64 'f3' (temp 3-component vector of float)
+0:64 add (temp 3-component vector of float)
+0:64 Construct vec3 (temp 3-component vector of float)
+0:64 'f' (temp float)
+0:64 Convert int to float (temp float)
+0:64 'i' (temp int)
+0:64 'f' (temp float)
+0:64 Convert int to float (temp float)
+0:64 'i' (temp int)
+0:65 add second child into first child (temp 4-component vector of float)
+0:65 'f4' (temp 4-component vector of float)
+0:65 subtract (temp 4-component vector of float)
+0:65 Convert int to float (temp float)
+0:65 'i' (temp int)
+0:65 Construct vec4 (temp 4-component vector of float)
+0:65 Convert bool to float (temp float)
+0:65 'b' (temp bool)
+0:65 Convert int to float (temp float)
+0:65 'i' (temp int)
+0:65 'f' (temp float)
+0:65 Convert int to float (temp float)
+0:65 'i' (temp int)
+0:67 add second child into first child (temp 2-component vector of int)
+0:67 'i2' (temp 2-component vector of int)
+0:67 Construct ivec2 (temp 2-component vector of int)
+0:67 Convert float to int (temp int)
+0:67 'f' (temp float)
+0:67 'i' (temp int)
+0:68 add second child into first child (temp 3-component vector of int)
+0:68 'i3' (temp 3-component vector of int)
+0:68 Construct ivec3 (temp 3-component vector of int)
+0:68 Convert float to int (temp int)
+0:68 'f' (temp float)
+0:68 'i' (temp int)
+0:68 Convert float to int (temp int)
+0:68 'f' (temp float)
+0:69 add second child into first child (temp 4-component vector of int)
+0:69 'i4' (temp 4-component vector of int)
+0:69 Construct ivec4 (temp 4-component vector of int)
+0:69 Convert bool to int (temp int)
+0:69 'b' (temp bool)
+0:69 'i' (temp int)
+0:69 Convert float to int (temp int)
+0:69 'f' (temp float)
+0:69 'i' (temp int)
+0:71 Test condition and select (temp void)
+0:71 Condition
+0:72 logical-or (temp bool)
+0:71 logical-or (temp bool)
+0:71 logical-or (temp bool)
+0:71 Compare Less Than (temp bool)
+0:71 'f' (temp float)
+0:71 Convert int to float (temp float)
+0:71 'i' (temp int)
+0:71 Compare Less Than (temp bool)
+0:71 Convert int to float (temp float)
+0:71 'i' (temp int)
+0:71 'f' (temp float)
+0:72 Compare Equal (temp bool)
+0:72 'f2' (temp 2-component vector of float)
+0:72 Convert int to float (temp 2-component vector of float)
+0:72 'i2' (temp 2-component vector of int)
+0:73 Compare Not Equal (temp bool)
+0:73 Convert int to float (temp 3-component vector of float)
+0:73 'i3' (temp 3-component vector of int)
+0:73 'f3' (temp 3-component vector of float)
+0:71 true case
+0:74 move second child to first child (temp float)
+0:74 'f' (temp float)
+0:74 add (temp float)
+0:74 Test condition and select (temp float)
+0:74 Condition
+0:74 'b' (temp bool)
+0:74 true case
+0:74 Convert int to float (temp float)
+0:74 'i' (temp int)
+0:74 false case
+0:74 direct index (temp float)
+0:74 'f2' (temp 2-component vector of float)
+0:74 Constant:
+0:74 0 (const int)
+0:74 Test condition and select (temp float)
+0:74 Condition
+0:74 direct index (temp bool)
+0:74 'b2' (temp 2-component vector of bool)
+0:74 Constant:
+0:74 0 (const int)
+0:74 true case
+0:74 direct index (temp float)
+0:74 'f3' (temp 3-component vector of float)
+0:74 Constant:
+0:74 0 (const int)
+0:74 false case
+0:74 Convert int to float (temp float)
+0:74 direct index (temp int)
+0:74 'i2' (temp 2-component vector of int)
+0:74 Constant:
+0:74 1 (const int)
+0:76 move second child to first child (temp 4-component vector of float)
+0:76 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:86 Test condition and select (temp 4-component vector of float)
+0:86 Condition
+0:85 logical-or (temp bool)
+0:84 logical-or (temp bool)
+0:83 logical-or (temp bool)
+0:82 logical-or (temp bool)
+0:81 logical-or (temp bool)
+0:80 logical-or (temp bool)
+0:79 logical-or (temp bool)
+0:78 logical-or (temp bool)
+0:77 logical-or (temp bool)
+0:77 'b' (temp bool)
+0:78 direct index (temp bool)
+0:78 'b2' (temp 2-component vector of bool)
+0:78 Constant:
+0:78 0 (const int)
+0:79 direct index (temp bool)
+0:79 'b2' (temp 2-component vector of bool)
+0:79 Constant:
+0:79 1 (const int)
+0:80 direct index (temp bool)
+0:80 'b3' (temp 3-component vector of bool)
+0:80 Constant:
+0:80 0 (const int)
+0:81 direct index (temp bool)
+0:81 'b3' (temp 3-component vector of bool)
+0:81 Constant:
+0:81 1 (const int)
+0:82 direct index (temp bool)
+0:82 'b3' (temp 3-component vector of bool)
+0:82 Constant:
+0:82 2 (const int)
+0:83 direct index (temp bool)
+0:83 'b4' (temp 4-component vector of bool)
+0:83 Constant:
+0:83 0 (const int)
+0:84 direct index (temp bool)
+0:84 'b4' (temp 4-component vector of bool)
+0:84 Constant:
+0:84 1 (const int)
+0:85 direct index (temp bool)
+0:85 'b4' (temp 4-component vector of bool)
+0:85 Constant:
+0:85 2 (const int)
+0:86 direct index (temp bool)
+0:86 'b4' (temp 4-component vector of bool)
+0:86 Constant:
+0:86 3 (const int)
+0:86 true case
+0:105 Construct vec4 (temp 4-component vector of float)
+0:105 add (temp float)
+0:104 add (temp float)
+0:103 add (temp float)
+0:102 add (temp float)
+0:101 add (temp float)
+0:100 add (temp float)
+0:99 add (temp float)
+0:98 add (temp float)
+0:97 add (temp float)
+0:96 add (temp float)
+0:95 Convert int to float (temp float)
+0:95 add (temp int)
+0:94 add (temp int)
+0:93 add (temp int)
+0:92 add (temp int)
+0:91 add (temp int)
+0:90 add (temp int)
+0:89 add (temp int)
+0:88 add (temp int)
+0:87 add (temp int)
+0:87 'i' (temp int)
+0:88 direct index (temp int)
+0:88 'i2' (temp 2-component vector of int)
+0:88 Constant:
+0:88 0 (const int)
+0:89 direct index (temp int)
+0:89 'i2' (temp 2-component vector of int)
+0:89 Constant:
+0:89 1 (const int)
+0:90 direct index (temp int)
+0:90 'i3' (temp 3-component vector of int)
+0:90 Constant:
+0:90 0 (const int)
+0:91 direct index (temp int)
+0:91 'i3' (temp 3-component vector of int)
+0:91 Constant:
+0:91 1 (const int)
+0:92 direct index (temp int)
+0:92 'i3' (temp 3-component vector of int)
+0:92 Constant:
+0:92 2 (const int)
+0:93 direct index (temp int)
+0:93 'i4' (temp 4-component vector of int)
+0:93 Constant:
+0:93 0 (const int)
+0:94 direct index (temp int)
+0:94 'i4' (temp 4-component vector of int)
+0:94 Constant:
+0:94 1 (const int)
+0:95 direct index (temp int)
+0:95 'i4' (temp 4-component vector of int)
+0:95 Constant:
+0:95 2 (const int)
+0:96 direct index (temp int)
+0:96 'i4' (temp 4-component vector of int)
+0:96 Constant:
+0:96 3 (const int)
+0:97 'f' (temp float)
+0:98 direct index (temp float)
+0:98 'f2' (temp 2-component vector of float)
+0:98 Constant:
+0:98 0 (const int)
+0:99 direct index (temp float)
+0:99 'f2' (temp 2-component vector of float)
+0:99 Constant:
+0:99 1 (const int)
+0:100 direct index (temp float)
+0:100 'f3' (temp 3-component vector of float)
+0:100 Constant:
+0:100 0 (const int)
+0:101 direct index (temp float)
+0:101 'f3' (temp 3-component vector of float)
+0:101 Constant:
+0:101 1 (const int)
+0:102 direct index (temp float)
+0:102 'f3' (temp 3-component vector of float)
+0:102 Constant:
+0:102 2 (const int)
+0:103 direct index (temp float)
+0:103 'f4' (temp 4-component vector of float)
+0:103 Constant:
+0:103 0 (const int)
+0:104 direct index (temp float)
+0:104 'f4' (temp 4-component vector of float)
+0:104 Constant:
+0:104 1 (const int)
+0:105 direct index (temp float)
+0:105 'f4' (temp 4-component vector of float)
+0:105 Constant:
+0:105 2 (const int)
+0:106 direct index (temp float)
+0:106 'f4' (temp 4-component vector of float)
+0:106 Constant:
+0:106 3 (const int)
+0:86 false case
+0:106 Constant:
+0:106 1.000000
+0:106 1.000000
+0:106 1.000000
+0:106 1.000000
+0:109 Sequence
+0:109 move second child to first child (temp 4-component vector of int)
+0:109 'cv2' (temp 4-component vector of int)
+0:109 Constant:
+0:109 1 (const int)
+0:109 1 (const int)
+0:109 1 (const int)
+0:109 1 (const int)
+0:110 Sequence
+0:110 move second child to first child (temp 4-component vector of bool)
+0:110 'cv5' (temp 4-component vector of bool)
+0:110 Convert int to bool (temp 4-component vector of bool)
+0:110 'cv2' (temp 4-component vector of int)
+0:111 add second child into first child (temp 4-component vector of float)
+0:111 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:111 Construct float (temp float)
+0:111 Convert bool to float (temp 4-component vector of float)
+0:111 'cv5' (temp 4-component vector of bool)
+0:? Linker Objects
+0:? 'u_b' (uniform bool)
+0:? 'u_b2' (uniform 2-component vector of bool)
+0:? 'u_b3' (uniform 3-component vector of bool)
+0:? 'u_b4' (uniform 4-component vector of bool)
+0:? 'u_i' (uniform int)
+0:? 'u_i2' (uniform 2-component vector of int)
+0:? 'u_i3' (uniform 3-component vector of int)
+0:? 'u_i4' (uniform 4-component vector of int)
+0:? 'u_f' (uniform float)
+0:? 'u_f2' (uniform 2-component vector of float)
+0:? 'u_f3' (uniform 3-component vector of float)
+0:? 'u_f4' (uniform 4-component vector of float)
+0:? 'i_b' (uniform bool)
+0:? 'i_b2' (uniform 2-component vector of bool)
+0:? 'i_b3' (uniform 3-component vector of bool)
+0:? 'i_b4' (uniform 4-component vector of bool)
+0:? 'i_i' (flat in int)
+0:? 'i_i2' (flat in 2-component vector of int)
+0:? 'i_i3' (flat in 3-component vector of int)
+0:? 'i_i4' (flat in 4-component vector of int)
+0:? 'i_f' (smooth in float)
+0:? 'i_f2' (smooth in 2-component vector of float)
+0:? 'i_f3' (smooth in 3-component vector of float)
+0:? 'i_f4' (smooth in 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+0:? Sequence
+0:33 Function Definition: main( (global void)
+0:33 Function Parameters:
+0:35 Sequence
+0:35 Sequence
+0:35 move second child to first child (temp bool)
+0:35 'b' (temp bool)
+0:35 logical-xor (temp bool)
+0:35 Convert int to bool (temp bool)
+0:35 'u_i' (uniform int)
+0:35 Convert float to bool (temp bool)
+0:35 'u_f' (uniform float)
+0:36 Sequence
+0:36 move second child to first child (temp 2-component vector of bool)
+0:36 'b2' (temp 2-component vector of bool)
+0:36 Construct bvec2 (temp 2-component vector of bool)
+0:36 Convert int to bool (temp bool)
+0:36 'u_i' (uniform int)
+0:36 Convert float to bool (temp bool)
+0:36 'u_f' (uniform float)
+0:37 Sequence
+0:37 move second child to first child (temp 3-component vector of bool)
+0:37 'b3' (temp 3-component vector of bool)
+0:37 Construct bvec3 (temp 3-component vector of bool)
+0:37 Convert int to bool (temp bool)
+0:37 'u_i' (uniform int)
+0:37 Convert float to bool (temp bool)
+0:37 'u_f' (uniform float)
+0:37 Convert int to bool (temp bool)
+0:37 'i_i' (flat in int)
+0:38 Sequence
+0:38 move second child to first child (temp 4-component vector of bool)
+0:38 'b4' (temp 4-component vector of bool)
+0:38 Construct bvec4 (temp 4-component vector of bool)
+0:38 Convert int to bool (temp bool)
+0:38 'u_i' (uniform int)
+0:38 Convert float to bool (temp bool)
+0:38 'u_f' (uniform float)
+0:38 Convert int to bool (temp bool)
+0:38 'i_i' (flat in int)
+0:38 Convert float to bool (temp bool)
+0:38 'i_f' (smooth in float)
+0:40 Sequence
+0:40 move second child to first child (temp int)
+0:40 'i' (temp int)
+0:40 add (temp int)
+0:40 Convert float to int (temp int)
+0:40 'u_f' (uniform float)
+0:40 Convert bool to int (temp int)
+0:40 'b' (temp bool)
+0:41 Sequence
+0:41 move second child to first child (temp 2-component vector of int)
+0:41 'i2' (temp 2-component vector of int)
+0:41 add (temp 2-component vector of int)
+0:41 Convert float to int (temp 2-component vector of int)
+0:41 'u_f2' (uniform 2-component vector of float)
+0:41 Convert bool to int (temp 2-component vector of int)
+0:41 'b2' (temp 2-component vector of bool)
+0:42 Sequence
+0:42 move second child to first child (temp 3-component vector of int)
+0:42 'i3' (temp 3-component vector of int)
+0:42 add (temp 3-component vector of int)
+0:42 Convert float to int (temp 3-component vector of int)
+0:42 'u_f3' (uniform 3-component vector of float)
+0:42 Convert bool to int (temp 3-component vector of int)
+0:42 'b3' (temp 3-component vector of bool)
+0:43 Sequence
+0:43 move second child to first child (temp 4-component vector of int)
+0:43 'i4' (temp 4-component vector of int)
+0:43 add (temp 4-component vector of int)
+0:43 Convert float to int (temp 4-component vector of int)
+0:43 'u_f4' (uniform 4-component vector of float)
+0:43 Convert bool to int (temp 4-component vector of int)
+0:43 'b4' (temp 4-component vector of bool)
+0:45 Sequence
+0:45 move second child to first child (temp float)
+0:45 'f' (temp float)
+0:45 Convert int to float (temp float)
+0:45 'i' (temp int)
+0:46 Sequence
+0:46 move second child to first child (temp 2-component vector of float)
+0:46 'f2' (temp 2-component vector of float)
+0:46 Convert int to float (temp 2-component vector of float)
+0:46 'i2' (temp 2-component vector of int)
+0:47 Sequence
+0:47 move second child to first child (temp 3-component vector of float)
+0:47 'f3' (temp 3-component vector of float)
+0:47 Convert int to float (temp 3-component vector of float)
+0:47 'i3' (temp 3-component vector of int)
+0:48 Sequence
+0:48 move second child to first child (temp 4-component vector of float)
+0:48 'f4' (temp 4-component vector of float)
+0:48 Convert int to float (temp 4-component vector of float)
+0:48 'i4' (temp 4-component vector of int)
+0:50 add second child into first child (temp float)
+0:50 'f' (temp float)
+0:50 add (temp float)
+0:50 Convert int to float (temp float)
+0:50 'i' (temp int)
+0:50 Convert bool to float (temp float)
+0:50 'b' (temp bool)
+0:51 subtract second child into first child (temp 2-component vector of float)
+0:51 'f2' (temp 2-component vector of float)
+0:51 add (temp 2-component vector of float)
+0:51 Convert int to float (temp 2-component vector of float)
+0:51 'i2' (temp 2-component vector of int)
+0:51 Convert bool to float (temp 2-component vector of float)
+0:51 'b2' (temp 2-component vector of bool)
+0:52 divide second child into first child (temp 3-component vector of float)
+0:52 'f3' (temp 3-component vector of float)
+0:52 add (temp 3-component vector of float)
+0:52 Convert int to float (temp 3-component vector of float)
+0:52 'i3' (temp 3-component vector of int)
+0:52 Convert bool to float (temp 3-component vector of float)
+0:52 'b3' (temp 3-component vector of bool)
+0:53 add second child into first child (temp 4-component vector of float)
+0:53 'f4' (temp 4-component vector of float)
+0:53 add (temp 4-component vector of float)
+0:53 Convert int to float (temp 4-component vector of float)
+0:53 'i4' (temp 4-component vector of int)
+0:53 Convert bool to float (temp 4-component vector of float)
+0:53 'b4' (temp 4-component vector of bool)
+0:55 add second child into first child (temp 4-component vector of float)
+0:55 'f4' (temp 4-component vector of float)
+0:55 Convert bool to float (temp 4-component vector of float)
+0:55 Convert int to bool (temp 4-component vector of bool)
+0:55 'i_i4' (flat in 4-component vector of int)
+0:56 add second child into first child (temp 4-component vector of float)
+0:56 'f4' (temp 4-component vector of float)
+0:56 Convert bool to float (temp 4-component vector of float)
+0:56 Convert float to bool (temp 4-component vector of bool)
+0:56 'u_f4' (uniform 4-component vector of float)
+0:58 add second child into first child (temp float)
+0:58 'f' (temp float)
+0:58 subtract (temp float)
+0:58 'f' (temp float)
+0:58 Convert int to float (temp float)
+0:58 'i' (temp int)
+0:59 add second child into first child (temp 2-component vector of float)
+0:59 'f2' (temp 2-component vector of float)
+0:59 add (temp 2-component vector of float)
+0:59 Construct vec2 (temp 2-component vector of float)
+0:59 'f' (temp float)
+0:59 Convert int to float (temp float)
+0:59 'i' (temp int)
+0:59 Convert int to float (temp 2-component vector of float)
+0:59 'i2' (temp 2-component vector of int)
+0:60 add second child into first child (temp 3-component vector of float)
+0:60 'f3' (temp 3-component vector of float)
+0:60 add (temp 3-component vector of float)
+0:60 Convert int to float (temp 3-component vector of float)
+0:60 'i3' (temp 3-component vector of int)
+0:60 Construct vec3 (temp 3-component vector of float)
+0:60 'f' (temp float)
+0:60 Convert int to float (temp float)
+0:60 'i' (temp int)
+0:60 'f' (temp float)
+0:61 add second child into first child (temp 4-component vector of float)
+0:61 'f4' (temp 4-component vector of float)
+0:61 add (temp 4-component vector of float)
+0:61 Construct vec4 (temp 4-component vector of float)
+0:61 Convert bool to float (temp float)
+0:61 'b' (temp bool)
+0:61 Convert int to float (temp float)
+0:61 'i' (temp int)
+0:61 'f' (temp float)
+0:61 Convert int to float (temp float)
+0:61 'i' (temp int)
+0:61 Convert int to float (temp 4-component vector of float)
+0:61 'i4' (temp 4-component vector of int)
+0:63 add second child into first child (temp 2-component vector of float)
+0:63 'f2' (temp 2-component vector of float)
+0:63 vector-scale (temp 2-component vector of float)
+0:63 Construct vec2 (temp 2-component vector of float)
+0:63 'f' (temp float)
+0:63 Convert int to float (temp float)
+0:63 'i' (temp int)
+0:63 Convert int to float (temp float)
+0:63 'i' (temp int)
+0:64 add second child into first child (temp 3-component vector of float)
+0:64 'f3' (temp 3-component vector of float)
+0:64 add (temp 3-component vector of float)
+0:64 Construct vec3 (temp 3-component vector of float)
+0:64 'f' (temp float)
+0:64 Convert int to float (temp float)
+0:64 'i' (temp int)
+0:64 'f' (temp float)
+0:64 Convert int to float (temp float)
+0:64 'i' (temp int)
+0:65 add second child into first child (temp 4-component vector of float)
+0:65 'f4' (temp 4-component vector of float)
+0:65 subtract (temp 4-component vector of float)
+0:65 Convert int to float (temp float)
+0:65 'i' (temp int)
+0:65 Construct vec4 (temp 4-component vector of float)
+0:65 Convert bool to float (temp float)
+0:65 'b' (temp bool)
+0:65 Convert int to float (temp float)
+0:65 'i' (temp int)
+0:65 'f' (temp float)
+0:65 Convert int to float (temp float)
+0:65 'i' (temp int)
+0:67 add second child into first child (temp 2-component vector of int)
+0:67 'i2' (temp 2-component vector of int)
+0:67 Construct ivec2 (temp 2-component vector of int)
+0:67 Convert float to int (temp int)
+0:67 'f' (temp float)
+0:67 'i' (temp int)
+0:68 add second child into first child (temp 3-component vector of int)
+0:68 'i3' (temp 3-component vector of int)
+0:68 Construct ivec3 (temp 3-component vector of int)
+0:68 Convert float to int (temp int)
+0:68 'f' (temp float)
+0:68 'i' (temp int)
+0:68 Convert float to int (temp int)
+0:68 'f' (temp float)
+0:69 add second child into first child (temp 4-component vector of int)
+0:69 'i4' (temp 4-component vector of int)
+0:69 Construct ivec4 (temp 4-component vector of int)
+0:69 Convert bool to int (temp int)
+0:69 'b' (temp bool)
+0:69 'i' (temp int)
+0:69 Convert float to int (temp int)
+0:69 'f' (temp float)
+0:69 'i' (temp int)
+0:71 Test condition and select (temp void)
+0:71 Condition
+0:72 logical-or (temp bool)
+0:71 logical-or (temp bool)
+0:71 logical-or (temp bool)
+0:71 Compare Less Than (temp bool)
+0:71 'f' (temp float)
+0:71 Convert int to float (temp float)
+0:71 'i' (temp int)
+0:71 Compare Less Than (temp bool)
+0:71 Convert int to float (temp float)
+0:71 'i' (temp int)
+0:71 'f' (temp float)
+0:72 Compare Equal (temp bool)
+0:72 'f2' (temp 2-component vector of float)
+0:72 Convert int to float (temp 2-component vector of float)
+0:72 'i2' (temp 2-component vector of int)
+0:73 Compare Not Equal (temp bool)
+0:73 Convert int to float (temp 3-component vector of float)
+0:73 'i3' (temp 3-component vector of int)
+0:73 'f3' (temp 3-component vector of float)
+0:71 true case
+0:74 move second child to first child (temp float)
+0:74 'f' (temp float)
+0:74 add (temp float)
+0:74 Test condition and select (temp float)
+0:74 Condition
+0:74 'b' (temp bool)
+0:74 true case
+0:74 Convert int to float (temp float)
+0:74 'i' (temp int)
+0:74 false case
+0:74 direct index (temp float)
+0:74 'f2' (temp 2-component vector of float)
+0:74 Constant:
+0:74 0 (const int)
+0:74 Test condition and select (temp float)
+0:74 Condition
+0:74 direct index (temp bool)
+0:74 'b2' (temp 2-component vector of bool)
+0:74 Constant:
+0:74 0 (const int)
+0:74 true case
+0:74 direct index (temp float)
+0:74 'f3' (temp 3-component vector of float)
+0:74 Constant:
+0:74 0 (const int)
+0:74 false case
+0:74 Convert int to float (temp float)
+0:74 direct index (temp int)
+0:74 'i2' (temp 2-component vector of int)
+0:74 Constant:
+0:74 1 (const int)
+0:76 move second child to first child (temp 4-component vector of float)
+0:76 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:86 Test condition and select (temp 4-component vector of float)
+0:86 Condition
+0:85 logical-or (temp bool)
+0:84 logical-or (temp bool)
+0:83 logical-or (temp bool)
+0:82 logical-or (temp bool)
+0:81 logical-or (temp bool)
+0:80 logical-or (temp bool)
+0:79 logical-or (temp bool)
+0:78 logical-or (temp bool)
+0:77 logical-or (temp bool)
+0:77 'b' (temp bool)
+0:78 direct index (temp bool)
+0:78 'b2' (temp 2-component vector of bool)
+0:78 Constant:
+0:78 0 (const int)
+0:79 direct index (temp bool)
+0:79 'b2' (temp 2-component vector of bool)
+0:79 Constant:
+0:79 1 (const int)
+0:80 direct index (temp bool)
+0:80 'b3' (temp 3-component vector of bool)
+0:80 Constant:
+0:80 0 (const int)
+0:81 direct index (temp bool)
+0:81 'b3' (temp 3-component vector of bool)
+0:81 Constant:
+0:81 1 (const int)
+0:82 direct index (temp bool)
+0:82 'b3' (temp 3-component vector of bool)
+0:82 Constant:
+0:82 2 (const int)
+0:83 direct index (temp bool)
+0:83 'b4' (temp 4-component vector of bool)
+0:83 Constant:
+0:83 0 (const int)
+0:84 direct index (temp bool)
+0:84 'b4' (temp 4-component vector of bool)
+0:84 Constant:
+0:84 1 (const int)
+0:85 direct index (temp bool)
+0:85 'b4' (temp 4-component vector of bool)
+0:85 Constant:
+0:85 2 (const int)
+0:86 direct index (temp bool)
+0:86 'b4' (temp 4-component vector of bool)
+0:86 Constant:
+0:86 3 (const int)
+0:86 true case
+0:105 Construct vec4 (temp 4-component vector of float)
+0:105 add (temp float)
+0:104 add (temp float)
+0:103 add (temp float)
+0:102 add (temp float)
+0:101 add (temp float)
+0:100 add (temp float)
+0:99 add (temp float)
+0:98 add (temp float)
+0:97 add (temp float)
+0:96 add (temp float)
+0:95 Convert int to float (temp float)
+0:95 add (temp int)
+0:94 add (temp int)
+0:93 add (temp int)
+0:92 add (temp int)
+0:91 add (temp int)
+0:90 add (temp int)
+0:89 add (temp int)
+0:88 add (temp int)
+0:87 add (temp int)
+0:87 'i' (temp int)
+0:88 direct index (temp int)
+0:88 'i2' (temp 2-component vector of int)
+0:88 Constant:
+0:88 0 (const int)
+0:89 direct index (temp int)
+0:89 'i2' (temp 2-component vector of int)
+0:89 Constant:
+0:89 1 (const int)
+0:90 direct index (temp int)
+0:90 'i3' (temp 3-component vector of int)
+0:90 Constant:
+0:90 0 (const int)
+0:91 direct index (temp int)
+0:91 'i3' (temp 3-component vector of int)
+0:91 Constant:
+0:91 1 (const int)
+0:92 direct index (temp int)
+0:92 'i3' (temp 3-component vector of int)
+0:92 Constant:
+0:92 2 (const int)
+0:93 direct index (temp int)
+0:93 'i4' (temp 4-component vector of int)
+0:93 Constant:
+0:93 0 (const int)
+0:94 direct index (temp int)
+0:94 'i4' (temp 4-component vector of int)
+0:94 Constant:
+0:94 1 (const int)
+0:95 direct index (temp int)
+0:95 'i4' (temp 4-component vector of int)
+0:95 Constant:
+0:95 2 (const int)
+0:96 direct index (temp int)
+0:96 'i4' (temp 4-component vector of int)
+0:96 Constant:
+0:96 3 (const int)
+0:97 'f' (temp float)
+0:98 direct index (temp float)
+0:98 'f2' (temp 2-component vector of float)
+0:98 Constant:
+0:98 0 (const int)
+0:99 direct index (temp float)
+0:99 'f2' (temp 2-component vector of float)
+0:99 Constant:
+0:99 1 (const int)
+0:100 direct index (temp float)
+0:100 'f3' (temp 3-component vector of float)
+0:100 Constant:
+0:100 0 (const int)
+0:101 direct index (temp float)
+0:101 'f3' (temp 3-component vector of float)
+0:101 Constant:
+0:101 1 (const int)
+0:102 direct index (temp float)
+0:102 'f3' (temp 3-component vector of float)
+0:102 Constant:
+0:102 2 (const int)
+0:103 direct index (temp float)
+0:103 'f4' (temp 4-component vector of float)
+0:103 Constant:
+0:103 0 (const int)
+0:104 direct index (temp float)
+0:104 'f4' (temp 4-component vector of float)
+0:104 Constant:
+0:104 1 (const int)
+0:105 direct index (temp float)
+0:105 'f4' (temp 4-component vector of float)
+0:105 Constant:
+0:105 2 (const int)
+0:106 direct index (temp float)
+0:106 'f4' (temp 4-component vector of float)
+0:106 Constant:
+0:106 3 (const int)
+0:86 false case
+0:106 Constant:
+0:106 1.000000
+0:106 1.000000
+0:106 1.000000
+0:106 1.000000
+0:109 Sequence
+0:109 move second child to first child (temp 4-component vector of int)
+0:109 'cv2' (temp 4-component vector of int)
+0:109 Constant:
+0:109 1 (const int)
+0:109 1 (const int)
+0:109 1 (const int)
+0:109 1 (const int)
+0:110 Sequence
+0:110 move second child to first child (temp 4-component vector of bool)
+0:110 'cv5' (temp 4-component vector of bool)
+0:110 Convert int to bool (temp 4-component vector of bool)
+0:110 'cv2' (temp 4-component vector of int)
+0:111 add second child into first child (temp 4-component vector of float)
+0:111 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:111 Construct float (temp float)
+0:111 Convert bool to float (temp 4-component vector of float)
+0:111 'cv5' (temp 4-component vector of bool)
+0:? Linker Objects
+0:? 'u_b' (uniform bool)
+0:? 'u_b2' (uniform 2-component vector of bool)
+0:? 'u_b3' (uniform 3-component vector of bool)
+0:? 'u_b4' (uniform 4-component vector of bool)
+0:? 'u_i' (uniform int)
+0:? 'u_i2' (uniform 2-component vector of int)
+0:? 'u_i3' (uniform 3-component vector of int)
+0:? 'u_i4' (uniform 4-component vector of int)
+0:? 'u_f' (uniform float)
+0:? 'u_f2' (uniform 2-component vector of float)
+0:? 'u_f3' (uniform 3-component vector of float)
+0:? 'u_f4' (uniform 4-component vector of float)
+0:? 'i_b' (uniform bool)
+0:? 'i_b2' (uniform 2-component vector of bool)
+0:? 'i_b3' (uniform 3-component vector of bool)
+0:? 'i_b4' (uniform 4-component vector of bool)
+0:? 'i_i' (flat in int)
+0:? 'i_i2' (flat in 2-component vector of int)
+0:? 'i_i3' (flat in 3-component vector of int)
+0:? 'i_i4' (flat in 4-component vector of int)
+0:? 'i_f' (smooth in float)
+0:? 'i_f2' (smooth in 2-component vector of float)
+0:? 'i_f3' (smooth in 3-component vector of float)
+0:? 'i_f4' (smooth in 4-component vector of float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/cppComplexExpr.vert.out b/chromium/third_party/glslang/src/Test/baseResults/cppComplexExpr.vert.out
new file mode 100644
index 00000000000..aa73a069d38
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/cppComplexExpr.vert.out
@@ -0,0 +1,200 @@
+cppComplexExpr.vert
+ERROR: 0:46: 'xyxwx' : illegal vector field selection
+ERROR: 0:46: 'xyxwx' : illegal vector field selection
+ERROR: 0:66: '#define' : Macro redefined; different substitutions: BIG
+ERROR: 0:81: 'preprocessor evaluation' : bad expression
+ERROR: 0:81: '#if' : unexpected tokens following directive
+ERROR: 0:82: '#error' : good macro
+ERROR: 0:87: 'macro expansion' : End of line in macro substitution: foobar
+ERROR: 0:88: 'preprocessor evaluation' : can't evaluate expression
+ERROR: 0:88: 'preprocessor evaluation' : bad expression
+ERROR: 0:88: '#if' : unexpected tokens following directive
+ERROR: 0:92: 'macro expansion' : End of line in macro substitution: foobar
+ERROR: 0:93: 'preprocessor evaluation' : can't evaluate expression
+ERROR: 0:93: 'preprocessor evaluation' : bad expression
+ERROR: 0:93: '#if' : unexpected tokens following directive
+ERROR: 0:99: 'macro expansion' : End of line in macro substitution: foobar
+ERROR: 0:100: 'preprocessor evaluation' : can't evaluate expression
+ERROR: 0:100: 'preprocessor evaluation' : bad expression
+ERROR: 0:100: '#if' : unexpected tokens following directive
+ERROR: 0:101: 'macro expansion' : End of line in macro substitution: foobar
+ERROR: 0:102: 'preprocessor evaluation' : can't evaluate expression
+ERROR: 0:102: 'preprocessor evaluation' : bad expression
+ERROR: 0:102: '#if' : unexpected tokens following directive
+ERROR: 0:108: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile UNDEF
+ERROR: 0:111: '#error' : good 0
+ERROR: 0:115: '#error' : good 1
+ERROR: 0:120: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile UNDEF
+ERROR: 0:123: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile UNDEF
+ERROR: 0:129: '#error' : good 1
+ERROR: 0:133: '#error' : good 3
+ERROR: 0:139: '#error' : good 4
+ERROR: 0:144: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile UNDEF
+ERROR: 0:153: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile UNDEF
+ERROR: 0:156: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile UNDEF2
+ERROR: 0:159: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile UNDEF2
+ERROR: 0:3000: '#error' : line of this error should be 3000
+ERROR: 0:3002: '#define' : predefined names can't be (un)defined: __LINE__
+ERROR: 0:3003: '#define' : predefined names can't be (un)defined: __FILE__
+ERROR: 0:3004: '#define' : predefined names can't be (un)defined: __VERSION__
+ERROR: 0:3005: '#define' : names beginning with "GL_" can't be (un)defined: GL_SOME_EXTENSION
+ERROR: 0:3006: '#undef' : predefined names can't be (un)defined: __LINE__
+ERROR: 0:3007: '#undef' : predefined names can't be (un)defined: __FILE__
+ERROR: 0:3008: '#undef' : predefined names can't be (un)defined: __VERSION__
+ERROR: 0:3009: '#undef' : names beginning with "GL_" can't be (un)defined: GL_SOME_EXTENSION
+ERROR: 0:4000: 'preprocessor evaluation' : division by 0
+ERROR: 0:0: 'preprocessor evaluation' : division by 0
+ERROR: 0:3: 'preprocessor evaluation' : bad expression
+ERROR: 0:3: 'preprocessor evaluation' : division by 0
+ERROR: 0:10001: '' : missing #endif
+ERROR: 48 compilation errors. No code generated.
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:4 Sequence
+0:4 move second child to first child (temp highp float)
+0:4 'sum' (global highp float)
+0:4 Constant:
+0:4 0.000000
+0:6 Function Definition: main( (global void)
+0:6 Function Parameters:
+0:10 Sequence
+0:10 add second child into first child (temp highp float)
+0:10 'sum' (global highp float)
+0:10 Constant:
+0:10 1.000000
+0:15 add second child into first child (temp highp float)
+0:15 'sum' (global highp float)
+0:15 Constant:
+0:15 20.000000
+0:30 add second child into first child (temp highp float)
+0:30 'sum' (global highp float)
+0:30 Constant:
+0:30 300.000000
+0:39 move second child to first child (temp highp 4-component vector of float)
+0:39 'gl_Position' (gl_Position highp 4-component vector of float Position)
+0:39 Construct vec4 (temp highp 4-component vector of float)
+0:39 'sum' (global highp float)
+0:44 Function Definition: foo( (global highp float)
+0:44 Function Parameters:
+0:46 Sequence
+0:46 Branch: Return with expression
+0:46 add (temp highp float)
+0:46 add (temp highp float)
+0:46 direct index (temp highp float)
+0:46 'gl_Position' (gl_Position highp 4-component vector of float Position)
+0:46 Constant:
+0:46 0 (const int)
+0:46 Constant:
+0:46 3.000000
+0:46 add (temp highp float)
+0:46 direct index (temp highp float)
+0:46 'gl_Position' (gl_Position highp 4-component vector of float Position)
+0:46 Constant:
+0:46 0 (const int)
+0:46 Constant:
+0:46 3.000000
+0:47 Branch: Return with expression
+0:47 add (temp highp float)
+0:47 add (temp highp float)
+0:47 direct index (temp highp float)
+0:47 'gl_Position' (gl_Position highp 4-component vector of float Position)
+0:47 Constant:
+0:47 1 (const int)
+0:47 Constant:
+0:47 3.000000
+0:47 add (temp highp float)
+0:47 direct index (temp highp float)
+0:47 'gl_Position' (gl_Position highp 4-component vector of float Position)
+0:47 Constant:
+0:47 1 (const int)
+0:47 Constant:
+0:47 3.000000
+0:97 Sequence
+0:97 move second child to first child (temp highp float)
+0:97 'c' (global highp float)
+0:98 Constant:
+0:98 3.300000
+0:? Linker Objects
+0:? 'sum' (global highp float)
+0:? 'c' (global highp float)
+0:? 'gl_VertexID' (gl_VertexId highp int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+
+
+Linked vertex stage:
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:4 Sequence
+0:4 move second child to first child (temp highp float)
+0:4 'sum' (global highp float)
+0:4 Constant:
+0:4 0.000000
+0:6 Function Definition: main( (global void)
+0:6 Function Parameters:
+0:10 Sequence
+0:10 add second child into first child (temp highp float)
+0:10 'sum' (global highp float)
+0:10 Constant:
+0:10 1.000000
+0:15 add second child into first child (temp highp float)
+0:15 'sum' (global highp float)
+0:15 Constant:
+0:15 20.000000
+0:30 add second child into first child (temp highp float)
+0:30 'sum' (global highp float)
+0:30 Constant:
+0:30 300.000000
+0:39 move second child to first child (temp highp 4-component vector of float)
+0:39 'gl_Position' (gl_Position highp 4-component vector of float Position)
+0:39 Construct vec4 (temp highp 4-component vector of float)
+0:39 'sum' (global highp float)
+0:44 Function Definition: foo( (global highp float)
+0:44 Function Parameters:
+0:46 Sequence
+0:46 Branch: Return with expression
+0:46 add (temp highp float)
+0:46 add (temp highp float)
+0:46 direct index (temp highp float)
+0:46 'gl_Position' (gl_Position highp 4-component vector of float Position)
+0:46 Constant:
+0:46 0 (const int)
+0:46 Constant:
+0:46 3.000000
+0:46 add (temp highp float)
+0:46 direct index (temp highp float)
+0:46 'gl_Position' (gl_Position highp 4-component vector of float Position)
+0:46 Constant:
+0:46 0 (const int)
+0:46 Constant:
+0:46 3.000000
+0:47 Branch: Return with expression
+0:47 add (temp highp float)
+0:47 add (temp highp float)
+0:47 direct index (temp highp float)
+0:47 'gl_Position' (gl_Position highp 4-component vector of float Position)
+0:47 Constant:
+0:47 1 (const int)
+0:47 Constant:
+0:47 3.000000
+0:47 add (temp highp float)
+0:47 direct index (temp highp float)
+0:47 'gl_Position' (gl_Position highp 4-component vector of float Position)
+0:47 Constant:
+0:47 1 (const int)
+0:47 Constant:
+0:47 3.000000
+0:97 Sequence
+0:97 move second child to first child (temp highp float)
+0:97 'c' (global highp float)
+0:98 Constant:
+0:98 3.300000
+0:? Linker Objects
+0:? 'sum' (global highp float)
+0:? 'c' (global highp float)
+0:? 'gl_VertexID' (gl_VertexId highp int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/cppIndent.vert.out b/chromium/third_party/glslang/src/Test/baseResults/cppIndent.vert.out
new file mode 100644
index 00000000000..318ca815d4d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/cppIndent.vert.out
@@ -0,0 +1,84 @@
+cppIndent.vert
+ERROR: 0:61: 'macro expansion' : Too few args in Macro FUNC
+ERROR: 0:61: '' : syntax error
+ERROR: 2 compilation errors. No code generated.
+
+
+Shader version: 110
+ERROR: node is still EOpNull!
+0:5 Sequence
+0:5 move second child to first child (temp float)
+0:5 'sum' (global float)
+0:5 Constant:
+0:5 0.000000
+0:7 Function Definition: main( (global void)
+0:7 Function Parameters:
+0:12 Sequence
+0:12 add second child into first child (temp float)
+0:12 'sum' (global float)
+0:12 Constant:
+0:12 1.000000
+0:22 add second child into first child (temp float)
+0:22 'sum' (global float)
+0:22 Constant:
+0:22 300.000000
+0:37 add second child into first child (temp float)
+0:37 'sum' (global float)
+0:37 Constant:
+0:37 600000.000000
+0:47 add second child into first child (temp float)
+0:47 'sum' (global float)
+0:47 Constant:
+0:47 80000000.000000
+0:52 add second child into first child (temp float)
+0:52 'sum' (global float)
+0:52 Constant:
+0:52 900000000.000000
+0:56 move second child to first child (temp 4-component vector of float)
+0:56 'gl_Position' (gl_Position 4-component vector of float Position)
+0:56 Construct vec4 (temp 4-component vector of float)
+0:56 'sum' (global float)
+0:? Linker Objects
+0:? 'sum' (global float)
+
+
+Linked vertex stage:
+
+
+Shader version: 110
+ERROR: node is still EOpNull!
+0:5 Sequence
+0:5 move second child to first child (temp float)
+0:5 'sum' (global float)
+0:5 Constant:
+0:5 0.000000
+0:7 Function Definition: main( (global void)
+0:7 Function Parameters:
+0:12 Sequence
+0:12 add second child into first child (temp float)
+0:12 'sum' (global float)
+0:12 Constant:
+0:12 1.000000
+0:22 add second child into first child (temp float)
+0:22 'sum' (global float)
+0:22 Constant:
+0:22 300.000000
+0:37 add second child into first child (temp float)
+0:37 'sum' (global float)
+0:37 Constant:
+0:37 600000.000000
+0:47 add second child into first child (temp float)
+0:47 'sum' (global float)
+0:47 Constant:
+0:47 80000000.000000
+0:52 add second child into first child (temp float)
+0:52 'sum' (global float)
+0:52 Constant:
+0:52 900000000.000000
+0:56 move second child to first child (temp 4-component vector of float)
+0:56 'gl_Position' (gl_Position 4-component vector of float Position)
+0:56 Construct vec4 (temp 4-component vector of float)
+0:56 'sum' (global float)
+0:? Linker Objects
+0:? 'sum' (global float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/cppNest.vert.out b/chromium/third_party/glslang/src/Test/baseResults/cppNest.vert.out
new file mode 100644
index 00000000000..4f95f5a2acf
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/cppNest.vert.out
@@ -0,0 +1,154 @@
+cppNest.vert
+ERROR: 0:144: '#elif' : #elif after #else
+ERROR: 0:152: '#else' : #else after #else
+ERROR: 0:161: '#elif' : #elif after #else
+ERROR: 0:169: '#else' : #else after #else
+ERROR: 0:177: 'macro expansion' : End of input in macro FUNC
+ERROR: 0:178: '' : syntax error
+ERROR: 6 compilation errors. No code generated.
+
+
+Shader version: 110
+ERROR: node is still EOpNull!
+0:5 Sequence
+0:5 move second child to first child (temp float)
+0:5 'sum' (global float)
+0:5 Constant:
+0:5 0.000000
+0:7 Function Definition: main( (global void)
+0:7 Function Parameters:
+0:12 Sequence
+0:12 add second child into first child (temp float)
+0:12 'sum' (global float)
+0:12 Constant:
+0:12 1.000000
+0:21 add second child into first child (temp float)
+0:21 'sum' (global float)
+0:21 Constant:
+0:21 300.000000
+0:61 add second child into first child (temp float)
+0:61 'sum' (global float)
+0:61 Constant:
+0:61 600000.000000
+0:65 add second child into first child (temp float)
+0:65 'sum' (global float)
+0:65 Constant:
+0:65 80000000.000000
+0:69 add second child into first child (temp float)
+0:69 'sum' (global float)
+0:69 Constant:
+0:69 900000000.000000
+0:76 add second child into first child (temp float)
+0:76 'sum' (global float)
+0:76 Constant:
+0:76 7000000.000000
+0:86 move second child to first child (temp 4-component vector of float)
+0:86 'gl_Position' (gl_Position 4-component vector of float Position)
+0:86 Construct vec4 (temp 4-component vector of float)
+0:86 'sum' (global float)
+0:103 Sequence
+0:103 move second child to first child (temp int)
+0:103 'selected4' (global int)
+0:103 Constant:
+0:103 4 (const int)
+0:115 Sequence
+0:115 move second child to first child (temp int)
+0:115 'selected2' (global int)
+0:115 Constant:
+0:115 2 (const int)
+0:133 Sequence
+0:133 move second child to first child (temp int)
+0:133 'selected3' (global int)
+0:133 Constant:
+0:133 3 (const int)
+0:175 Function Definition: foo985( (global void)
+0:175 Function Parameters:
+0:175 Sequence
+0:175 add (temp int)
+0:175 Constant:
+0:175 2 (const int)
+0:175 Comma (temp int)
+0:175 Constant:
+0:175 3 (const int)
+0:175 Constant:
+0:175 4 (const int)
+0:? Linker Objects
+0:? 'sum' (global float)
+0:? 'selected4' (global int)
+0:? 'selected2' (global int)
+0:? 'selected3' (global int)
+
+
+Linked vertex stage:
+
+
+Shader version: 110
+ERROR: node is still EOpNull!
+0:5 Sequence
+0:5 move second child to first child (temp float)
+0:5 'sum' (global float)
+0:5 Constant:
+0:5 0.000000
+0:7 Function Definition: main( (global void)
+0:7 Function Parameters:
+0:12 Sequence
+0:12 add second child into first child (temp float)
+0:12 'sum' (global float)
+0:12 Constant:
+0:12 1.000000
+0:21 add second child into first child (temp float)
+0:21 'sum' (global float)
+0:21 Constant:
+0:21 300.000000
+0:61 add second child into first child (temp float)
+0:61 'sum' (global float)
+0:61 Constant:
+0:61 600000.000000
+0:65 add second child into first child (temp float)
+0:65 'sum' (global float)
+0:65 Constant:
+0:65 80000000.000000
+0:69 add second child into first child (temp float)
+0:69 'sum' (global float)
+0:69 Constant:
+0:69 900000000.000000
+0:76 add second child into first child (temp float)
+0:76 'sum' (global float)
+0:76 Constant:
+0:76 7000000.000000
+0:86 move second child to first child (temp 4-component vector of float)
+0:86 'gl_Position' (gl_Position 4-component vector of float Position)
+0:86 Construct vec4 (temp 4-component vector of float)
+0:86 'sum' (global float)
+0:103 Sequence
+0:103 move second child to first child (temp int)
+0:103 'selected4' (global int)
+0:103 Constant:
+0:103 4 (const int)
+0:115 Sequence
+0:115 move second child to first child (temp int)
+0:115 'selected2' (global int)
+0:115 Constant:
+0:115 2 (const int)
+0:133 Sequence
+0:133 move second child to first child (temp int)
+0:133 'selected3' (global int)
+0:133 Constant:
+0:133 3 (const int)
+0:175 Function Definition: foo985( (global void)
+0:175 Function Parameters:
+0:175 Sequence
+0:175 add (temp int)
+0:175 Constant:
+0:175 2 (const int)
+0:175 Comma (temp int)
+0:175 Constant:
+0:175 3 (const int)
+0:175 Constant:
+0:175 4 (const int)
+0:? Linker Objects
+0:? 'sum' (global float)
+0:? 'selected4' (global int)
+0:? 'selected2' (global int)
+0:? 'selected3' (global int)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/cppSimple.vert.out b/chromium/third_party/glslang/src/Test/baseResults/cppSimple.vert.out
new file mode 100644
index 00000000000..366770d13d7
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/cppSimple.vert.out
@@ -0,0 +1,317 @@
+cppSimple.vert
+Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:77: '#error' : good1
+ERROR: 0:81: '#error' : good2
+ERROR: 0:85: '#error' : good3
+ERROR: 0:89: '#error' : good4
+ERROR: 0:93: '#error' : good5
+ERROR: 0:97: '#error' : good6
+ERROR: 0:100: 'preprocessor evaluation' : expected ')'
+ERROR: 0:101: '#error' : bad1
+ERROR: 0:104: '#if' : unexpected tokens following directive
+ERROR: 0:105: '#error' : bad2
+ERROR: 0:108: 'preprocessor evaluation' : expected ')'
+ERROR: 0:109: '#error' : bad3
+ERROR: 0:112: '#if' : unexpected tokens following directive
+ERROR: 0:113: '#error' : bad4
+ERROR: 0:116: 'preprocessor evaluation' : expected ')'
+ERROR: 0:117: '#error' : bad5
+ERROR: 0:120: '#if' : unexpected tokens following directive
+ERROR: 0:121: '#error' : bad6
+ERROR: 0:122: '#endif' : unexpected tokens following directive
+ERROR: 0:135: '""' : string literals not supported
+ERROR: 0:136: '""' : string literals not supported
+ERROR: 0:136: 'length' : no matching overloaded function found
+ERROR: 0:136: '=' : cannot convert from 'const float' to 'global int'
+ERROR: 0:138: ''' : character literals not supported
+ERROR: 0:138: ''' : character literals not supported
+ERROR: 0:141: '#define' : names beginning with "GL_" can't be (un)defined: GL_
+ERROR: 0:142: '#define' : names beginning with "GL_" can't be (un)defined: GL_Macro
+WARNING: 0:143: '#define' : names containing consecutive underscores are reserved: __M
+WARNING: 0:144: '#define' : names containing consecutive underscores are reserved: M__
+WARNING: 0:145: '#define' : names containing consecutive underscores are reserved: ABC__DE
+ERROR: 0:148: '#else' : unexpected tokens following directive
+ERROR: 0:149: '#elif' : #elif after #else
+ERROR: 0:155: '#else' : unexpected tokens following directive
+ERROR: 0:158: '#else' : #else after #else
+ERROR: 0:160: '#endif' : unexpected tokens following directive
+ERROR: 0:164: '#define' : duplicate macro parameter
+ERROR: 0:173: '#define' : Macro redefined; different number of arguments: m4
+ERROR: 0:178: '#define' : Macro redefined; different number of arguments: m5
+ERROR: 0:182: '#define' : Macro redefined; different number of arguments: m6
+ERROR: 0:185: '#define' : Macro redefined; different substitutions: m7
+ERROR: 0:192: '#define' : Macro redefined; different substitutions: m8
+ERROR: 0:196: '#define' : Macro redefined; different argument names: m9
+WARNING: 0:204: '#undef' : names containing consecutive underscores are reserved: __VERSION__
+ERROR: 0:205: '#undef' : names beginning with "GL_" can't be (un)defined: GL_ARB_texture_rectangle
+ERROR: 0:210: '#' : invalid directive
+ERROR: 0:211: '#' : invalid directive
+ERROR: 0:212: '#' : invalid directive
+ERROR: 0:213: '#' : invalid directive
+ERROR: 0:214: '#' : invalid directive
+ERROR: 0:215: '#' : invalid directive
+ERROR: 0:224: '#pragma' : optimize pragma syntax is incorrect
+ERROR: 0:225: '#pragma' : optimize pragma syntax is incorrect
+ERROR: 0:226: '#pragma' : debug pragma syntax is incorrect
+ERROR: 0:227: '#pragma' : debug pragma syntax is incorrect
+ERROR: 0:229: '#pragma' : optimize pragma syntax is incorrect
+ERROR: 0:230: '#pragma' : debug pragma syntax is incorrect
+ERROR: 0:233: 'line continuation' : not supported for this version or the enabled extensions
+ERROR: 0:235: 'line continuation' : not supported for this version or the enabled extensions
+ERROR: 0:236: '#error' : good continuation
+ERROR: 0:238: '#' : invalid directive: flizbit
+ERROR: 0:242: '#' : invalid directive: directive
+ERROR: 0:12000: '#error' : line should be 12000
+ERROR: 7:13000: '#error' : line should be 13000 , string 7
+ERROR: 7:14013: '#error' : line should be 14013 , string 7
+ERROR: 12:14013: '#error' : line should be 14013 , string 12
+ERROR: 12:14025: '#error' : line should be 14025 , string 12
+ERROR: 12:1233: '#line' : unexpected tokens following directive
+ERROR: 12:1236: '#line' : unexpected tokens following directive
+ERROR: 12:20000: '#error' : line should be 20000
+ERROR: 12:20010: '#error' : line should be 20010
+ERROR: 12:20020: '#error' : line should be 20020
+ERROR: 12:20045: '#define' : Macro redefined; different substitutions: SPACE_IN_MIDDLE
+ERROR: 12:20051: '#error' : good evaluation 1
+ERROR: 12:20055: '#error' : good evaluation 2
+ERROR: 12:9000: 'preprocessor evaluation' : expected ')'
+ERROR: 12:9002: '#if' : unexpected tokens following directive
+ERROR: 12:9014: 'macro expansion' : expected '(' following FOOOM
+ERROR: 12:9014: 'FOOOM' : undeclared identifier
+ERROR: 12:9014: '=' : cannot convert from 'temp float' to 'global int'
+ERROR: 12:9015: 'macro expansion' : expected '(' following FOOOM
+ERROR: 12:9016: 'preprocessor evaluation' : can't evaluate expression
+ERROR: 12:9016: 'preprocessor evaluation' : bad expression
+ERROR: 12:9500: 'preprocessor evaluation' : bad expression
+ERROR: 12:9500: '#if' : unexpected tokens following directive
+ERROR: 12:9502: 'preprocessor evaluation' : bad expression
+ERROR: 12:9502: '#if' : unexpected tokens following directive
+ERROR: 12:9504: 'preprocessor evaluation' : bad expression
+ERROR: 12:9504: '#if' : unexpected tokens following directive
+ERROR: 12:9506: '#error' : \ 377
+ERROR: 12:9507: '#error' : \ 376
+ERROR: 12:9508: '#error' : \ 377
+ERROR: 12:10002: '' : missing #endif
+ERROR: 88 compilation errors. No code generated.
+
+
+Shader version: 400
+ERROR: node is still EOpNull!
+0:5 Sequence
+0:5 move second child to first child (temp float)
+0:5 'sum' (global float)
+0:5 Constant:
+0:5 0.000000
+0:7 Function Definition: main( (global void)
+0:7 Function Parameters:
+0:12 Sequence
+0:12 add second child into first child (temp float)
+0:12 'sum' (global float)
+0:12 Constant:
+0:12 1.000000
+0:22 add second child into first child (temp float)
+0:22 'sum' (global float)
+0:22 Constant:
+0:22 300.000000
+0:37 add second child into first child (temp float)
+0:37 'sum' (global float)
+0:37 Constant:
+0:37 600000.000000
+0:48 add second child into first child (temp float)
+0:48 'sum' (global float)
+0:48 Constant:
+0:48 7000000.000000
+0:53 add second child into first child (temp float)
+0:53 'sum' (global float)
+0:53 Constant:
+0:53 80000000.000000
+0:58 add second child into first child (temp float)
+0:58 'sum' (global float)
+0:58 Constant:
+0:58 900000000.000000
+0:65 add second child into first child (temp float)
+0:65 'sum' (global float)
+0:65 Constant:
+0:65 0.050000
+0:69 move second child to first child (temp 4-component vector of float)
+0:69 gl_Position: direct index for structure (gl_Position 4-component vector of float Position)
+0:69 'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:69 Constant:
+0:69 0 (const uint)
+0:69 Construct vec4 (temp 4-component vector of float)
+0:69 'sum' (global float)
+0:124 Sequence
+0:124 move second child to first child (temp int)
+0:124 'linenumber' (global int)
+0:124 Constant:
+0:124 124 (const int)
+0:125 Sequence
+0:125 move second child to first child (temp int)
+0:125 'filenumber' (global int)
+0:125 Constant:
+0:125 0 (const int)
+0:126 Sequence
+0:126 move second child to first child (temp int)
+0:126 'version' (global int)
+0:126 Constant:
+0:126 400 (const int)
+0:130 Sequence
+0:130 move second child to first child (temp float)
+0:130 'twoPi' (global float)
+0:130 Constant:
+0:130 6.280000
+0:199 Sequence
+0:199 move second child to first child (temp int)
+0:199 'n' (global int)
+0:199 Constant:
+0:199 15 (const int)
+0:202 Sequence
+0:202 move second child to first child (temp double)
+0:202 'f' (global double)
+0:202 Constant:
+0:202 0.000800
+12:20031 Function Definition: foo234( (global void)
+12:20031 Function Parameters:
+12:20033 Sequence
+12:20033 move second child to first child (temp 4-component vector of float)
+12:20033 gl_Position: direct index for structure (gl_Position 4-component vector of float Position)
+12:20033 'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+12:20033 Constant:
+12:20033 0 (const uint)
+12:20033 Constant:
+12:20033 6.000000
+12:20033 6.000000
+12:20033 6.000000
+12:20033 6.000000
+12:9011 Sequence
+12:9011 move second child to first child (temp int)
+12:9011 'R1' (global int)
+12:9011 'RECURSE' (global int)
+0:? Linker Objects
+0:? 'sum' (global float)
+0:? 'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:? 'linenumber' (global int)
+0:? 'filenumber' (global int)
+0:? 'version' (global int)
+0:? 'twoPi' (global float)
+0:? 'a' (global int)
+0:? 'n' (global int)
+0:? 'f' (global double)
+0:? 'RECURSE' (global int)
+0:? 'R1' (global int)
+0:? 'aoeua' (global int)
+0:? 'gl_VertexID' (gl_VertexId int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
+
+
+Linked vertex stage:
+
+
+Shader version: 400
+ERROR: node is still EOpNull!
+0:5 Sequence
+0:5 move second child to first child (temp float)
+0:5 'sum' (global float)
+0:5 Constant:
+0:5 0.000000
+0:7 Function Definition: main( (global void)
+0:7 Function Parameters:
+0:12 Sequence
+0:12 add second child into first child (temp float)
+0:12 'sum' (global float)
+0:12 Constant:
+0:12 1.000000
+0:22 add second child into first child (temp float)
+0:22 'sum' (global float)
+0:22 Constant:
+0:22 300.000000
+0:37 add second child into first child (temp float)
+0:37 'sum' (global float)
+0:37 Constant:
+0:37 600000.000000
+0:48 add second child into first child (temp float)
+0:48 'sum' (global float)
+0:48 Constant:
+0:48 7000000.000000
+0:53 add second child into first child (temp float)
+0:53 'sum' (global float)
+0:53 Constant:
+0:53 80000000.000000
+0:58 add second child into first child (temp float)
+0:58 'sum' (global float)
+0:58 Constant:
+0:58 900000000.000000
+0:65 add second child into first child (temp float)
+0:65 'sum' (global float)
+0:65 Constant:
+0:65 0.050000
+0:69 move second child to first child (temp 4-component vector of float)
+0:69 gl_Position: direct index for structure (gl_Position 4-component vector of float Position)
+0:69 'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:69 Constant:
+0:69 0 (const uint)
+0:69 Construct vec4 (temp 4-component vector of float)
+0:69 'sum' (global float)
+0:124 Sequence
+0:124 move second child to first child (temp int)
+0:124 'linenumber' (global int)
+0:124 Constant:
+0:124 124 (const int)
+0:125 Sequence
+0:125 move second child to first child (temp int)
+0:125 'filenumber' (global int)
+0:125 Constant:
+0:125 0 (const int)
+0:126 Sequence
+0:126 move second child to first child (temp int)
+0:126 'version' (global int)
+0:126 Constant:
+0:126 400 (const int)
+0:130 Sequence
+0:130 move second child to first child (temp float)
+0:130 'twoPi' (global float)
+0:130 Constant:
+0:130 6.280000
+0:199 Sequence
+0:199 move second child to first child (temp int)
+0:199 'n' (global int)
+0:199 Constant:
+0:199 15 (const int)
+0:202 Sequence
+0:202 move second child to first child (temp double)
+0:202 'f' (global double)
+0:202 Constant:
+0:202 0.000800
+12:20031 Function Definition: foo234( (global void)
+12:20031 Function Parameters:
+12:20033 Sequence
+12:20033 move second child to first child (temp 4-component vector of float)
+12:20033 gl_Position: direct index for structure (gl_Position 4-component vector of float Position)
+12:20033 'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+12:20033 Constant:
+12:20033 0 (const uint)
+12:20033 Constant:
+12:20033 6.000000
+12:20033 6.000000
+12:20033 6.000000
+12:20033 6.000000
+12:9011 Sequence
+12:9011 move second child to first child (temp int)
+12:9011 'R1' (global int)
+12:9011 'RECURSE' (global int)
+0:? Linker Objects
+0:? 'sum' (global float)
+0:? 'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:? 'linenumber' (global int)
+0:? 'filenumber' (global int)
+0:? 'version' (global int)
+0:? 'twoPi' (global float)
+0:? 'a' (global int)
+0:? 'n' (global int)
+0:? 'f' (global double)
+0:? 'RECURSE' (global int)
+0:? 'R1' (global int)
+0:? 'aoeua' (global int)
+0:? 'gl_VertexID' (gl_VertexId int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/dataOut.frag.out b/chromium/third_party/glslang/src/Test/baseResults/dataOut.frag.out
new file mode 100644
index 00000000000..030bae7d9eb
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/dataOut.frag.out
@@ -0,0 +1,35 @@
+dataOut.frag
+WARNING: 0:3: varying deprecated in version 130; may be removed in future release
+
+Shader version: 130
+0:? Sequence
+0:5 Function Definition: main( (global void)
+0:5 Function Parameters:
+0:7 Sequence
+0:7 move second child to first child (temp 4-component vector of float)
+0:7 direct index (temp 4-component vector of float FragData)
+0:7 'gl_FragData' (fragColor 32-element array of 4-component vector of float FragData)
+0:7 Constant:
+0:7 1 (const int)
+0:7 'Color' (smooth in 4-component vector of float)
+0:? Linker Objects
+0:? 'Color' (smooth in 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+0:? Sequence
+0:5 Function Definition: main( (global void)
+0:5 Function Parameters:
+0:7 Sequence
+0:7 move second child to first child (temp 4-component vector of float)
+0:7 direct index (temp 4-component vector of float FragData)
+0:7 'gl_FragData' (fragColor 32-element array of 4-component vector of float FragData)
+0:7 Constant:
+0:7 1 (const int)
+0:7 'Color' (smooth in 4-component vector of float)
+0:? Linker Objects
+0:? 'Color' (smooth in 4-component vector of float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/dataOutIndirect.frag.out b/chromium/third_party/glslang/src/Test/baseResults/dataOutIndirect.frag.out
new file mode 100644
index 00000000000..31b4f07a5fe
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/dataOutIndirect.frag.out
@@ -0,0 +1,35 @@
+dataOutIndirect.frag
+WARNING: 0:3: varying deprecated in version 130; may be removed in future release
+
+Shader version: 130
+0:? Sequence
+0:7 Function Definition: main( (global void)
+0:7 Function Parameters:
+0:9 Sequence
+0:9 move second child to first child (temp 4-component vector of float)
+0:9 indirect index (temp 4-component vector of float FragData)
+0:9 'gl_FragData' (fragColor 32-element array of 4-component vector of float FragData)
+0:9 'i' (uniform int)
+0:9 'Color' (smooth in 4-component vector of float)
+0:? Linker Objects
+0:? 'Color' (smooth in 4-component vector of float)
+0:? 'i' (uniform int)
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+0:? Sequence
+0:7 Function Definition: main( (global void)
+0:7 Function Parameters:
+0:9 Sequence
+0:9 move second child to first child (temp 4-component vector of float)
+0:9 indirect index (temp 4-component vector of float FragData)
+0:9 'gl_FragData' (fragColor 32-element array of 4-component vector of float FragData)
+0:9 'i' (uniform int)
+0:9 'Color' (smooth in 4-component vector of float)
+0:? Linker Objects
+0:? 'Color' (smooth in 4-component vector of float)
+0:? 'i' (uniform int)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/dce.frag.out b/chromium/third_party/glslang/src/Test/baseResults/dce.frag.out
new file mode 100644
index 00000000000..a19fe4e8b1a
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/dce.frag.out
@@ -0,0 +1,276 @@
+dce.frag
+Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
+
+Shader version: 400
+0:? Sequence
+0:5 Sequence
+0:5 move second child to first child (temp int)
+0:5 'c' (global int)
+0:5 Constant:
+0:5 0 (const int)
+0:7 Function Definition: bar( (global void)
+0:7 Function Parameters:
+0:9 Sequence
+0:9 Test condition and select (temp void)
+0:9 Condition
+0:9 Constant:
+0:9 false (const bool)
+0:9 true case
+0:10 Pre-Increment (temp int)
+0:10 'c' (global int)
+0:9 false case
+0:12 Pre-Increment (temp int)
+0:12 'c' (global int)
+0:14 Test condition and select (temp int)
+0:14 Condition
+0:14 Constant:
+0:14 false (const bool)
+0:14 true case
+0:14 Pre-Increment (temp int)
+0:14 'c' (global int)
+0:14 false case
+0:14 Pre-Increment (temp int)
+0:14 'c' (global int)
+0:16 switch
+0:16 condition
+0:16 'c' (global int)
+0:16 body
+0:16 Sequence
+0:17 case: with expression
+0:17 Constant:
+0:17 1 (const int)
+0:? Sequence
+0:18 Pre-Increment (temp int)
+0:18 'c' (global int)
+0:19 Branch: Break
+0:20 Pre-Increment (temp int)
+0:20 'c' (global int)
+0:21 case: with expression
+0:21 Constant:
+0:21 2 (const int)
+0:? Sequence
+0:22 Branch: Break
+0:23 Pre-Increment (temp int)
+0:23 'c' (global int)
+0:24 default:
+0:? Sequence
+0:25 Branch: Break
+0:28 Sequence
+0:28 Sequence
+0:28 move second child to first child (temp int)
+0:28 'i' (temp int)
+0:28 Constant:
+0:28 0 (const int)
+0:28 Loop with condition tested first
+0:28 Loop Condition
+0:28 Compare Less Than (temp bool)
+0:28 'i' (temp int)
+0:28 Constant:
+0:28 0 (const int)
+0:28 Loop Body
+0:29 Pre-Increment (temp int)
+0:29 'c' (global int)
+0:28 Loop Terminal Expression
+0:28 Pre-Increment (temp int)
+0:28 'i' (temp int)
+0:31 Sequence
+0:31 Sequence
+0:31 move second child to first child (temp int)
+0:31 'i' (temp int)
+0:31 Constant:
+0:31 0 (const int)
+0:31 Loop with condition tested first
+0:31 Loop Condition
+0:31 Compare Less Than (temp bool)
+0:31 'i' (temp int)
+0:31 Constant:
+0:31 10 (const int)
+0:31 Loop Body
+0:32 Sequence
+0:32 Test condition and select (temp void)
+0:32 Condition
+0:32 Compare Less Than (temp bool)
+0:32 'c' (global int)
+0:32 Constant:
+0:32 3 (const int)
+0:32 true case
+0:33 Sequence
+0:33 Branch: Break
+0:34 Pre-Increment (temp int)
+0:34 'c' (global int)
+0:32 false case
+0:36 Sequence
+0:36 Branch: Continue
+0:37 Pre-Increment (temp int)
+0:37 'c' (global int)
+0:31 Loop Terminal Expression
+0:31 Pre-Increment (temp int)
+0:31 'i' (temp int)
+0:41 Branch: Return
+0:43 Pre-Increment (temp int)
+0:43 'c' (global int)
+0:46 Function Definition: foo( (global int)
+0:46 Function Parameters:
+0:48 Sequence
+0:48 Test condition and select (temp void)
+0:48 Condition
+0:48 Compare Greater Than (temp bool)
+0:48 'c' (global int)
+0:48 Constant:
+0:48 4 (const int)
+0:48 true case
+0:49 Sequence
+0:49 Branch: Return with expression
+0:49 Constant:
+0:49 4 (const int)
+0:50 Pre-Increment (temp int)
+0:50 'c' (global int)
+0:53 Branch: Return with expression
+0:53 Constant:
+0:53 5 (const int)
+0:55 Pre-Increment (temp int)
+0:55 'c' (global int)
+0:? Linker Objects
+0:? 'flag' (const bool)
+0:? false (const bool)
+0:? 'c' (global int)
+
+
+Linked fragment stage:
+
+ERROR: Linking fragment stage: Missing entry point: Each stage requires one "void main()" entry point
+
+Shader version: 400
+0:? Sequence
+0:5 Sequence
+0:5 move second child to first child (temp int)
+0:5 'c' (global int)
+0:5 Constant:
+0:5 0 (const int)
+0:7 Function Definition: bar( (global void)
+0:7 Function Parameters:
+0:9 Sequence
+0:9 Test condition and select (temp void)
+0:9 Condition
+0:9 Constant:
+0:9 false (const bool)
+0:9 true case
+0:10 Pre-Increment (temp int)
+0:10 'c' (global int)
+0:9 false case
+0:12 Pre-Increment (temp int)
+0:12 'c' (global int)
+0:14 Test condition and select (temp int)
+0:14 Condition
+0:14 Constant:
+0:14 false (const bool)
+0:14 true case
+0:14 Pre-Increment (temp int)
+0:14 'c' (global int)
+0:14 false case
+0:14 Pre-Increment (temp int)
+0:14 'c' (global int)
+0:16 switch
+0:16 condition
+0:16 'c' (global int)
+0:16 body
+0:16 Sequence
+0:17 case: with expression
+0:17 Constant:
+0:17 1 (const int)
+0:? Sequence
+0:18 Pre-Increment (temp int)
+0:18 'c' (global int)
+0:19 Branch: Break
+0:20 Pre-Increment (temp int)
+0:20 'c' (global int)
+0:21 case: with expression
+0:21 Constant:
+0:21 2 (const int)
+0:? Sequence
+0:22 Branch: Break
+0:23 Pre-Increment (temp int)
+0:23 'c' (global int)
+0:24 default:
+0:? Sequence
+0:25 Branch: Break
+0:28 Sequence
+0:28 Sequence
+0:28 move second child to first child (temp int)
+0:28 'i' (temp int)
+0:28 Constant:
+0:28 0 (const int)
+0:28 Loop with condition tested first
+0:28 Loop Condition
+0:28 Compare Less Than (temp bool)
+0:28 'i' (temp int)
+0:28 Constant:
+0:28 0 (const int)
+0:28 Loop Body
+0:29 Pre-Increment (temp int)
+0:29 'c' (global int)
+0:28 Loop Terminal Expression
+0:28 Pre-Increment (temp int)
+0:28 'i' (temp int)
+0:31 Sequence
+0:31 Sequence
+0:31 move second child to first child (temp int)
+0:31 'i' (temp int)
+0:31 Constant:
+0:31 0 (const int)
+0:31 Loop with condition tested first
+0:31 Loop Condition
+0:31 Compare Less Than (temp bool)
+0:31 'i' (temp int)
+0:31 Constant:
+0:31 10 (const int)
+0:31 Loop Body
+0:32 Sequence
+0:32 Test condition and select (temp void)
+0:32 Condition
+0:32 Compare Less Than (temp bool)
+0:32 'c' (global int)
+0:32 Constant:
+0:32 3 (const int)
+0:32 true case
+0:33 Sequence
+0:33 Branch: Break
+0:34 Pre-Increment (temp int)
+0:34 'c' (global int)
+0:32 false case
+0:36 Sequence
+0:36 Branch: Continue
+0:37 Pre-Increment (temp int)
+0:37 'c' (global int)
+0:31 Loop Terminal Expression
+0:31 Pre-Increment (temp int)
+0:31 'i' (temp int)
+0:41 Branch: Return
+0:43 Pre-Increment (temp int)
+0:43 'c' (global int)
+0:46 Function Definition: foo( (global int)
+0:46 Function Parameters:
+0:48 Sequence
+0:48 Test condition and select (temp void)
+0:48 Condition
+0:48 Compare Greater Than (temp bool)
+0:48 'c' (global int)
+0:48 Constant:
+0:48 4 (const int)
+0:48 true case
+0:49 Sequence
+0:49 Branch: Return with expression
+0:49 Constant:
+0:49 4 (const int)
+0:50 Pre-Increment (temp int)
+0:50 'c' (global int)
+0:53 Branch: Return with expression
+0:53 Constant:
+0:53 5 (const int)
+0:55 Pre-Increment (temp int)
+0:55 'c' (global int)
+0:? Linker Objects
+0:? 'flag' (const bool)
+0:? false (const bool)
+0:? 'c' (global int)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/decls.frag.out b/chromium/third_party/glslang/src/Test/baseResults/decls.frag.out
new file mode 100644
index 00000000000..a7e2137d4e0
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/decls.frag.out
@@ -0,0 +1,515 @@
+decls.frag
+ERROR: 0:19: 'vi4' : illegal use of type 'void'
+ERROR: 0:20: 'vj' : illegal use of type 'void'
+ERROR: 0:20: 'vk5' : illegal use of type 'void'
+ERROR: 0:21: 'vm2' : illegal use of type 'void'
+ERROR: 0:21: 'vm3' : illegal use of type 'void'
+ERROR: 0:22: 'vn8' : illegal use of type 'void'
+ERROR: 0:22: 'vp' : illegal use of type 'void'
+ERROR: 0:25: 'cij' : variables with qualifier 'const' must be initialized
+ERROR: 0:27: 'cip' : variables with qualifier 'const' must be initialized
+ERROR: 0:34: 'gl_vi4' : identifiers starting with "gl_" are reserved
+ERROR: 0:35: 'gl_vj' : identifiers starting with "gl_" are reserved
+ERROR: 0:35: 'gl_vk5' : identifiers starting with "gl_" are reserved
+ERROR: 0:36: 'gl_vm2' : identifiers starting with "gl_" are reserved
+ERROR: 0:36: 'gl_vm3' : identifiers starting with "gl_" are reserved
+ERROR: 0:37: 'gl_vn8' : identifiers starting with "gl_" are reserved
+ERROR: 0:37: 'gl_vp' : identifiers starting with "gl_" are reserved
+ERROR: 0:42: '' : boolean expression expected
+ERROR: 0:43: 'gl_cond' : identifiers starting with "gl_" are reserved
+WARNING: 0:46: 'foob__vi4' : identifiers containing consecutive underscores ("__") are reserved
+WARNING: 0:47: 'foob__vj' : identifiers containing consecutive underscores ("__") are reserved
+WARNING: 0:47: 'foob__vk5' : identifiers containing consecutive underscores ("__") are reserved
+WARNING: 0:48: '__foobvm2' : identifiers containing consecutive underscores ("__") are reserved
+WARNING: 0:48: '__foobvm3' : identifiers containing consecutive underscores ("__") are reserved
+WARNING: 0:49: 'foob__vn8' : identifiers containing consecutive underscores ("__") are reserved
+WARNING: 0:49: 'foob__vp' : identifiers containing consecutive underscores ("__") are reserved
+ERROR: 18 compilation errors. No code generated.
+
+
+Shader version: 120
+ERROR: node is still EOpNull!
+0:5 Sequence
+0:5 move second child to first child (temp int)
+0:5 'd1' (global int)
+0:5 Constant:
+0:5 1 (const int)
+0:6 Sequence
+0:6 move second child to first child (temp int)
+0:6 'e2' (global int)
+0:6 Constant:
+0:6 2 (const int)
+0:7 Sequence
+0:7 move second child to first child (temp int)
+0:7 'h3' (global int)
+0:7 Constant:
+0:7 3 (const int)
+0:14 Sequence
+0:14 move second child to first child (temp 4-element array of int)
+0:14 'ii4' (global 4-element array of int)
+0:14 Constant:
+0:14 1 (const int)
+0:14 2 (const int)
+0:14 3 (const int)
+0:14 4 (const int)
+0:15 Sequence
+0:15 move second child to first child (temp 5-element array of int)
+0:15 'ik5' (global 5-element array of int)
+0:15 Constant:
+0:15 5 (const int)
+0:15 6 (const int)
+0:15 7 (const int)
+0:15 8 (const int)
+0:15 9 (const int)
+0:16 Sequence
+0:16 move second child to first child (temp 2-element array of int)
+0:16 'im2' (global 2-element array of int)
+0:16 Constant:
+0:16 10 (const int)
+0:16 11 (const int)
+0:16 move second child to first child (temp 3-element array of int)
+0:16 'im3' (global 3-element array of int)
+0:16 Constant:
+0:16 12 (const int)
+0:16 13 (const int)
+0:16 14 (const int)
+0:17 Sequence
+0:17 move second child to first child (temp 4-element array of int)
+0:17 'in8' (global 4-element array of int)
+0:17 Constant:
+0:17 21 (const int)
+0:17 22 (const int)
+0:17 23 (const int)
+0:17 24 (const int)
+0:34 Sequence
+0:34 move second child to first child (temp 4-element array of int)
+0:34 'gl_vi4' (global 4-element array of int)
+0:34 Constant:
+0:34 1 (const int)
+0:34 2 (const int)
+0:34 3 (const int)
+0:34 4 (const int)
+0:35 Sequence
+0:35 move second child to first child (temp 5-element array of int)
+0:35 'gl_vk5' (global 5-element array of int)
+0:35 Constant:
+0:35 5 (const int)
+0:35 6 (const int)
+0:35 7 (const int)
+0:35 8 (const int)
+0:35 9 (const int)
+0:36 Sequence
+0:36 move second child to first child (temp 2-element array of int)
+0:36 'gl_vm2' (global 2-element array of int)
+0:36 Constant:
+0:36 10 (const int)
+0:36 11 (const int)
+0:36 move second child to first child (temp 3-element array of int)
+0:36 'gl_vm3' (global 3-element array of int)
+0:36 Constant:
+0:36 12 (const int)
+0:36 13 (const int)
+0:36 14 (const int)
+0:37 Sequence
+0:37 move second child to first child (temp 4-element array of int)
+0:37 'gl_vn8' (global 4-element array of int)
+0:37 Constant:
+0:37 21 (const int)
+0:37 22 (const int)
+0:37 23 (const int)
+0:37 24 (const int)
+0:39 Function Definition: main( (global void)
+0:39 Function Parameters:
+0:41 Sequence
+0:41 Loop with condition tested first
+0:41 Loop Condition
+0:41 move second child to first child (temp bool)
+0:41 'cond' (temp bool)
+0:41 Compare Less Than (temp bool)
+0:41 'b' (global int)
+0:41 'c' (global int)
+0:41 No loop body
+0:42 Loop with condition tested first
+0:42 Loop Condition
+0:42 move second child to first child (temp int)
+0:42 'icond' (temp int)
+0:42 'b' (global int)
+0:42 No loop body
+0:43 Loop with condition tested first
+0:43 Loop Condition
+0:43 move second child to first child (temp bool)
+0:43 'gl_cond' (temp bool)
+0:43 Compare Less Than (temp bool)
+0:43 'b' (global int)
+0:43 'c' (global int)
+0:43 No loop body
+0:46 Sequence
+0:46 move second child to first child (temp 4-element array of int)
+0:46 'foob__vi4' (global 4-element array of int)
+0:46 Constant:
+0:46 1 (const int)
+0:46 2 (const int)
+0:46 3 (const int)
+0:46 4 (const int)
+0:47 Sequence
+0:47 move second child to first child (temp 5-element array of int)
+0:47 'foob__vk5' (global 5-element array of int)
+0:47 Constant:
+0:47 5 (const int)
+0:47 6 (const int)
+0:47 7 (const int)
+0:47 8 (const int)
+0:47 9 (const int)
+0:48 Sequence
+0:48 move second child to first child (temp 2-element array of int)
+0:48 '__foobvm2' (global 2-element array of int)
+0:48 Constant:
+0:48 10 (const int)
+0:48 11 (const int)
+0:48 move second child to first child (temp 3-element array of int)
+0:48 '__foobvm3' (global 3-element array of int)
+0:48 Constant:
+0:48 12 (const int)
+0:48 13 (const int)
+0:48 14 (const int)
+0:49 Sequence
+0:49 move second child to first child (temp 4-element array of int)
+0:49 'foob__vn8' (global 4-element array of int)
+0:49 Constant:
+0:49 21 (const int)
+0:49 22 (const int)
+0:49 23 (const int)
+0:49 24 (const int)
+0:? Linker Objects
+0:? 'a' (global int)
+0:? 'b' (global int)
+0:? 'c' (global int)
+0:? 'd1' (global int)
+0:? 'e2' (global int)
+0:? 'f' (global int)
+0:? 'g' (global int)
+0:? 'h3' (global int)
+0:? 'i4' (global 4-element array of int)
+0:? 'j' (global int)
+0:? 'k5' (global 5-element array of int)
+0:? 'm6' (global 6-element array of int)
+0:? 'm7' (global 7-element array of int)
+0:? 'n8' (global 8-element array of int)
+0:? 'p' (global int)
+0:? 'ii4' (global 4-element array of int)
+0:? 'ij' (global int)
+0:? 'ik5' (global 5-element array of int)
+0:? 'im2' (global 2-element array of int)
+0:? 'im3' (global 3-element array of int)
+0:? 'in8' (global 4-element array of int)
+0:? 'ip' (global int)
+0:? 'cii4' (const 4-element array of int)
+0:? 1 (const int)
+0:? 2 (const int)
+0:? 3 (const int)
+0:? 4 (const int)
+0:? 'cij' (temp int)
+0:? 'cik5' (const 5-element array of int)
+0:? 5 (const int)
+0:? 6 (const int)
+0:? 7 (const int)
+0:? 8 (const int)
+0:? 9 (const int)
+0:? 'cim2' (const 2-element array of int)
+0:? 10 (const int)
+0:? 11 (const int)
+0:? 'cim3' (const 3-element array of int)
+0:? 12 (const int)
+0:? 13 (const int)
+0:? 14 (const int)
+0:? 'cin8' (const 4-element array of int)
+0:? 21 (const int)
+0:? 22 (const int)
+0:? 23 (const int)
+0:? 24 (const int)
+0:? 'cip' (temp int)
+0:? 'uii4' (uniform 4-element array of int)
+0:? 1 (const int)
+0:? 2 (const int)
+0:? 3 (const int)
+0:? 4 (const int)
+0:? 'uij' (uniform int)
+0:? 'uik5' (uniform 5-element array of int)
+0:? 5 (const int)
+0:? 6 (const int)
+0:? 7 (const int)
+0:? 8 (const int)
+0:? 9 (const int)
+0:? 'uim2' (uniform 2-element array of int)
+0:? 10 (const int)
+0:? 11 (const int)
+0:? 'uim3' (uniform 3-element array of int)
+0:? 12 (const int)
+0:? 13 (const int)
+0:? 14 (const int)
+0:? 'uin8' (uniform 4-element array of int)
+0:? 21 (const int)
+0:? 22 (const int)
+0:? 23 (const int)
+0:? 24 (const int)
+0:? 'uip' (uniform int)
+0:? 'gl_vi4' (global 4-element array of int)
+0:? 'gl_vj' (global int)
+0:? 'gl_vk5' (global 5-element array of int)
+0:? 'gl_vm2' (global 2-element array of int)
+0:? 'gl_vm3' (global 3-element array of int)
+0:? 'gl_vn8' (global 4-element array of int)
+0:? 'gl_vp' (global int)
+0:? 'foob__vi4' (global 4-element array of int)
+0:? 'foob__vj' (global int)
+0:? 'foob__vk5' (global 5-element array of int)
+0:? '__foobvm2' (global 2-element array of int)
+0:? '__foobvm3' (global 3-element array of int)
+0:? 'foob__vn8' (global 4-element array of int)
+0:? 'foob__vp' (global int)
+
+
+Linked fragment stage:
+
+
+Shader version: 120
+ERROR: node is still EOpNull!
+0:5 Sequence
+0:5 move second child to first child (temp int)
+0:5 'd1' (global int)
+0:5 Constant:
+0:5 1 (const int)
+0:6 Sequence
+0:6 move second child to first child (temp int)
+0:6 'e2' (global int)
+0:6 Constant:
+0:6 2 (const int)
+0:7 Sequence
+0:7 move second child to first child (temp int)
+0:7 'h3' (global int)
+0:7 Constant:
+0:7 3 (const int)
+0:14 Sequence
+0:14 move second child to first child (temp 4-element array of int)
+0:14 'ii4' (global 4-element array of int)
+0:14 Constant:
+0:14 1 (const int)
+0:14 2 (const int)
+0:14 3 (const int)
+0:14 4 (const int)
+0:15 Sequence
+0:15 move second child to first child (temp 5-element array of int)
+0:15 'ik5' (global 5-element array of int)
+0:15 Constant:
+0:15 5 (const int)
+0:15 6 (const int)
+0:15 7 (const int)
+0:15 8 (const int)
+0:15 9 (const int)
+0:16 Sequence
+0:16 move second child to first child (temp 2-element array of int)
+0:16 'im2' (global 2-element array of int)
+0:16 Constant:
+0:16 10 (const int)
+0:16 11 (const int)
+0:16 move second child to first child (temp 3-element array of int)
+0:16 'im3' (global 3-element array of int)
+0:16 Constant:
+0:16 12 (const int)
+0:16 13 (const int)
+0:16 14 (const int)
+0:17 Sequence
+0:17 move second child to first child (temp 4-element array of int)
+0:17 'in8' (global 4-element array of int)
+0:17 Constant:
+0:17 21 (const int)
+0:17 22 (const int)
+0:17 23 (const int)
+0:17 24 (const int)
+0:34 Sequence
+0:34 move second child to first child (temp 4-element array of int)
+0:34 'gl_vi4' (global 4-element array of int)
+0:34 Constant:
+0:34 1 (const int)
+0:34 2 (const int)
+0:34 3 (const int)
+0:34 4 (const int)
+0:35 Sequence
+0:35 move second child to first child (temp 5-element array of int)
+0:35 'gl_vk5' (global 5-element array of int)
+0:35 Constant:
+0:35 5 (const int)
+0:35 6 (const int)
+0:35 7 (const int)
+0:35 8 (const int)
+0:35 9 (const int)
+0:36 Sequence
+0:36 move second child to first child (temp 2-element array of int)
+0:36 'gl_vm2' (global 2-element array of int)
+0:36 Constant:
+0:36 10 (const int)
+0:36 11 (const int)
+0:36 move second child to first child (temp 3-element array of int)
+0:36 'gl_vm3' (global 3-element array of int)
+0:36 Constant:
+0:36 12 (const int)
+0:36 13 (const int)
+0:36 14 (const int)
+0:37 Sequence
+0:37 move second child to first child (temp 4-element array of int)
+0:37 'gl_vn8' (global 4-element array of int)
+0:37 Constant:
+0:37 21 (const int)
+0:37 22 (const int)
+0:37 23 (const int)
+0:37 24 (const int)
+0:39 Function Definition: main( (global void)
+0:39 Function Parameters:
+0:41 Sequence
+0:41 Loop with condition tested first
+0:41 Loop Condition
+0:41 move second child to first child (temp bool)
+0:41 'cond' (temp bool)
+0:41 Compare Less Than (temp bool)
+0:41 'b' (global int)
+0:41 'c' (global int)
+0:41 No loop body
+0:42 Loop with condition tested first
+0:42 Loop Condition
+0:42 move second child to first child (temp int)
+0:42 'icond' (temp int)
+0:42 'b' (global int)
+0:42 No loop body
+0:43 Loop with condition tested first
+0:43 Loop Condition
+0:43 move second child to first child (temp bool)
+0:43 'gl_cond' (temp bool)
+0:43 Compare Less Than (temp bool)
+0:43 'b' (global int)
+0:43 'c' (global int)
+0:43 No loop body
+0:46 Sequence
+0:46 move second child to first child (temp 4-element array of int)
+0:46 'foob__vi4' (global 4-element array of int)
+0:46 Constant:
+0:46 1 (const int)
+0:46 2 (const int)
+0:46 3 (const int)
+0:46 4 (const int)
+0:47 Sequence
+0:47 move second child to first child (temp 5-element array of int)
+0:47 'foob__vk5' (global 5-element array of int)
+0:47 Constant:
+0:47 5 (const int)
+0:47 6 (const int)
+0:47 7 (const int)
+0:47 8 (const int)
+0:47 9 (const int)
+0:48 Sequence
+0:48 move second child to first child (temp 2-element array of int)
+0:48 '__foobvm2' (global 2-element array of int)
+0:48 Constant:
+0:48 10 (const int)
+0:48 11 (const int)
+0:48 move second child to first child (temp 3-element array of int)
+0:48 '__foobvm3' (global 3-element array of int)
+0:48 Constant:
+0:48 12 (const int)
+0:48 13 (const int)
+0:48 14 (const int)
+0:49 Sequence
+0:49 move second child to first child (temp 4-element array of int)
+0:49 'foob__vn8' (global 4-element array of int)
+0:49 Constant:
+0:49 21 (const int)
+0:49 22 (const int)
+0:49 23 (const int)
+0:49 24 (const int)
+0:? Linker Objects
+0:? 'a' (global int)
+0:? 'b' (global int)
+0:? 'c' (global int)
+0:? 'd1' (global int)
+0:? 'e2' (global int)
+0:? 'f' (global int)
+0:? 'g' (global int)
+0:? 'h3' (global int)
+0:? 'i4' (global 4-element array of int)
+0:? 'j' (global int)
+0:? 'k5' (global 5-element array of int)
+0:? 'm6' (global 6-element array of int)
+0:? 'm7' (global 7-element array of int)
+0:? 'n8' (global 8-element array of int)
+0:? 'p' (global int)
+0:? 'ii4' (global 4-element array of int)
+0:? 'ij' (global int)
+0:? 'ik5' (global 5-element array of int)
+0:? 'im2' (global 2-element array of int)
+0:? 'im3' (global 3-element array of int)
+0:? 'in8' (global 4-element array of int)
+0:? 'ip' (global int)
+0:? 'cii4' (const 4-element array of int)
+0:? 1 (const int)
+0:? 2 (const int)
+0:? 3 (const int)
+0:? 4 (const int)
+0:? 'cij' (temp int)
+0:? 'cik5' (const 5-element array of int)
+0:? 5 (const int)
+0:? 6 (const int)
+0:? 7 (const int)
+0:? 8 (const int)
+0:? 9 (const int)
+0:? 'cim2' (const 2-element array of int)
+0:? 10 (const int)
+0:? 11 (const int)
+0:? 'cim3' (const 3-element array of int)
+0:? 12 (const int)
+0:? 13 (const int)
+0:? 14 (const int)
+0:? 'cin8' (const 4-element array of int)
+0:? 21 (const int)
+0:? 22 (const int)
+0:? 23 (const int)
+0:? 24 (const int)
+0:? 'cip' (temp int)
+0:? 'uii4' (uniform 4-element array of int)
+0:? 1 (const int)
+0:? 2 (const int)
+0:? 3 (const int)
+0:? 4 (const int)
+0:? 'uij' (uniform int)
+0:? 'uik5' (uniform 5-element array of int)
+0:? 5 (const int)
+0:? 6 (const int)
+0:? 7 (const int)
+0:? 8 (const int)
+0:? 9 (const int)
+0:? 'uim2' (uniform 2-element array of int)
+0:? 10 (const int)
+0:? 11 (const int)
+0:? 'uim3' (uniform 3-element array of int)
+0:? 12 (const int)
+0:? 13 (const int)
+0:? 14 (const int)
+0:? 'uin8' (uniform 4-element array of int)
+0:? 21 (const int)
+0:? 22 (const int)
+0:? 23 (const int)
+0:? 24 (const int)
+0:? 'uip' (uniform int)
+0:? 'gl_vi4' (global 4-element array of int)
+0:? 'gl_vj' (global int)
+0:? 'gl_vk5' (global 5-element array of int)
+0:? 'gl_vm2' (global 2-element array of int)
+0:? 'gl_vm3' (global 3-element array of int)
+0:? 'gl_vn8' (global 4-element array of int)
+0:? 'gl_vp' (global int)
+0:? 'foob__vi4' (global 4-element array of int)
+0:? 'foob__vj' (global int)
+0:? 'foob__vk5' (global 5-element array of int)
+0:? '__foobvm2' (global 2-element array of int)
+0:? '__foobvm3' (global 3-element array of int)
+0:? 'foob__vn8' (global 4-element array of int)
+0:? 'foob__vp' (global int)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/deepRvalue.frag.out b/chromium/third_party/glslang/src/Test/baseResults/deepRvalue.frag.out
new file mode 100644
index 00000000000..9441ace9750
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/deepRvalue.frag.out
@@ -0,0 +1,285 @@
+deepRvalue.frag
+Shader version: 120
+0:? Sequence
+0:5 Sequence
+0:5 move second child to first child (temp 4-component vector of float)
+0:5 'v1' (global 4-component vector of float)
+0:5 Constant:
+0:5 2.000000
+0:5 3.000000
+0:5 5.000000
+0:5 7.000000
+0:6 Sequence
+0:6 move second child to first child (temp 4-component vector of float)
+0:6 'v2' (global 4-component vector of float)
+0:6 Constant:
+0:6 11.000000
+0:6 13.000000
+0:6 17.000000
+0:6 19.000000
+0:7 Sequence
+0:7 move second child to first child (temp 4-component vector of float)
+0:7 'v3' (global 4-component vector of float)
+0:7 Constant:
+0:7 23.000000
+0:7 29.000000
+0:7 31.000000
+0:7 37.000000
+0:8 Sequence
+0:8 move second child to first child (temp 4-component vector of float)
+0:8 'v4' (global 4-component vector of float)
+0:8 Constant:
+0:8 41.000000
+0:8 43.000000
+0:8 47.000000
+0:8 53.000000
+0:16 Function Definition: main( (global void)
+0:16 Function Parameters:
+0:18 Sequence
+0:18 Sequence
+0:18 move second child to first child (temp 4X4 matrix of float)
+0:18 'm' (temp 4X4 matrix of float)
+0:18 Construct mat4 (temp 4X4 matrix of float)
+0:18 'v1' (global 4-component vector of float)
+0:18 'v2' (global 4-component vector of float)
+0:18 'v3' (global 4-component vector of float)
+0:18 'v4' (global 4-component vector of float)
+0:20 Sequence
+0:20 move second child to first child (temp 4X4 matrix of float)
+0:20 'mm' (temp 4X4 matrix of float)
+0:20 component-wise multiply (global 4X4 matrix of float)
+0:20 'm' (temp 4X4 matrix of float)
+0:20 'm' (temp 4X4 matrix of float)
+0:21 Sequence
+0:21 move second child to first child (temp float)
+0:21 'f' (temp float)
+0:21 direct index (temp float)
+0:21 direct index (temp 4-component vector of float)
+0:21 'mm' (temp 4X4 matrix of float)
+0:21 Constant:
+0:21 1 (const int)
+0:21 Constant:
+0:21 3 (const int)
+0:24 Sequence
+0:24 move second child to first child (temp float)
+0:24 'g' (temp float)
+0:24 direct index (temp float)
+0:24 direct index (temp 4-component vector of float)
+0:24 component-wise multiply (global 4X4 matrix of float)
+0:24 'm' (temp 4X4 matrix of float)
+0:24 'm' (temp 4X4 matrix of float)
+0:24 Constant:
+0:24 2 (const int)
+0:24 Constant:
+0:24 1 (const int)
+0:26 Sequence
+0:26 move second child to first child (temp float)
+0:26 'h' (temp float)
+0:26 Constant:
+0:26 5.000000
+0:28 Sequence
+0:28 move second child to first child (temp float)
+0:28 'i' (temp float)
+0:28 direct index (temp float)
+0:28 texture (global 4-component vector of float)
+0:28 'sampler' (uniform sampler2D)
+0:28 Constant:
+0:28 0.500000
+0:28 0.500000
+0:28 Constant:
+0:28 1 (const int)
+0:30 add second child into first child (temp float)
+0:30 'i' (temp float)
+0:30 direct index (temp float)
+0:30 Test condition and select (temp 4-component vector of float)
+0:30 Condition
+0:30 Compare Greater Than (temp bool)
+0:30 'i' (temp float)
+0:30 Constant:
+0:30 0.100000
+0:30 true case
+0:30 'v1' (global 4-component vector of float)
+0:30 false case
+0:30 'v2' (global 4-component vector of float)
+0:30 Constant:
+0:30 3 (const int)
+0:33 add second child into first child (temp float)
+0:33 'i' (temp float)
+0:33 direct index (temp float)
+0:33 direct index (temp 2-component vector of float)
+0:33 b: direct index for structure (global 3-element array of 2-component vector of float)
+0:33 move second child to first child (temp structure{global int a, global 3-element array of 2-component vector of float b, global bool c})
+0:33 't' (temp structure{global int a, global 3-element array of 2-component vector of float b, global bool c})
+0:33 Constant:
+0:33 1 (const int)
+0:33 2.000000
+0:33 3.000000
+0:33 4.000000
+0:33 5.000000
+0:33 6.000000
+0:33 7.000000
+0:33 true (const bool)
+0:33 Constant:
+0:33 1 (const int)
+0:33 Constant:
+0:33 2 (const int)
+0:33 Constant:
+0:33 1 (const int)
+0:35 move second child to first child (temp 4-component vector of float)
+0:35 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:35 Construct vec4 (temp 4-component vector of float)
+0:35 'f' (temp float)
+0:35 'g' (temp float)
+0:35 'h' (temp float)
+0:35 'i' (temp float)
+0:? Linker Objects
+0:? 'sampler' (uniform sampler2D)
+0:? 'v1' (global 4-component vector of float)
+0:? 'v2' (global 4-component vector of float)
+0:? 'v3' (global 4-component vector of float)
+0:? 'v4' (global 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 120
+0:? Sequence
+0:5 Sequence
+0:5 move second child to first child (temp 4-component vector of float)
+0:5 'v1' (global 4-component vector of float)
+0:5 Constant:
+0:5 2.000000
+0:5 3.000000
+0:5 5.000000
+0:5 7.000000
+0:6 Sequence
+0:6 move second child to first child (temp 4-component vector of float)
+0:6 'v2' (global 4-component vector of float)
+0:6 Constant:
+0:6 11.000000
+0:6 13.000000
+0:6 17.000000
+0:6 19.000000
+0:7 Sequence
+0:7 move second child to first child (temp 4-component vector of float)
+0:7 'v3' (global 4-component vector of float)
+0:7 Constant:
+0:7 23.000000
+0:7 29.000000
+0:7 31.000000
+0:7 37.000000
+0:8 Sequence
+0:8 move second child to first child (temp 4-component vector of float)
+0:8 'v4' (global 4-component vector of float)
+0:8 Constant:
+0:8 41.000000
+0:8 43.000000
+0:8 47.000000
+0:8 53.000000
+0:16 Function Definition: main( (global void)
+0:16 Function Parameters:
+0:18 Sequence
+0:18 Sequence
+0:18 move second child to first child (temp 4X4 matrix of float)
+0:18 'm' (temp 4X4 matrix of float)
+0:18 Construct mat4 (temp 4X4 matrix of float)
+0:18 'v1' (global 4-component vector of float)
+0:18 'v2' (global 4-component vector of float)
+0:18 'v3' (global 4-component vector of float)
+0:18 'v4' (global 4-component vector of float)
+0:20 Sequence
+0:20 move second child to first child (temp 4X4 matrix of float)
+0:20 'mm' (temp 4X4 matrix of float)
+0:20 component-wise multiply (global 4X4 matrix of float)
+0:20 'm' (temp 4X4 matrix of float)
+0:20 'm' (temp 4X4 matrix of float)
+0:21 Sequence
+0:21 move second child to first child (temp float)
+0:21 'f' (temp float)
+0:21 direct index (temp float)
+0:21 direct index (temp 4-component vector of float)
+0:21 'mm' (temp 4X4 matrix of float)
+0:21 Constant:
+0:21 1 (const int)
+0:21 Constant:
+0:21 3 (const int)
+0:24 Sequence
+0:24 move second child to first child (temp float)
+0:24 'g' (temp float)
+0:24 direct index (temp float)
+0:24 direct index (temp 4-component vector of float)
+0:24 component-wise multiply (global 4X4 matrix of float)
+0:24 'm' (temp 4X4 matrix of float)
+0:24 'm' (temp 4X4 matrix of float)
+0:24 Constant:
+0:24 2 (const int)
+0:24 Constant:
+0:24 1 (const int)
+0:26 Sequence
+0:26 move second child to first child (temp float)
+0:26 'h' (temp float)
+0:26 Constant:
+0:26 5.000000
+0:28 Sequence
+0:28 move second child to first child (temp float)
+0:28 'i' (temp float)
+0:28 direct index (temp float)
+0:28 texture (global 4-component vector of float)
+0:28 'sampler' (uniform sampler2D)
+0:28 Constant:
+0:28 0.500000
+0:28 0.500000
+0:28 Constant:
+0:28 1 (const int)
+0:30 add second child into first child (temp float)
+0:30 'i' (temp float)
+0:30 direct index (temp float)
+0:30 Test condition and select (temp 4-component vector of float)
+0:30 Condition
+0:30 Compare Greater Than (temp bool)
+0:30 'i' (temp float)
+0:30 Constant:
+0:30 0.100000
+0:30 true case
+0:30 'v1' (global 4-component vector of float)
+0:30 false case
+0:30 'v2' (global 4-component vector of float)
+0:30 Constant:
+0:30 3 (const int)
+0:33 add second child into first child (temp float)
+0:33 'i' (temp float)
+0:33 direct index (temp float)
+0:33 direct index (temp 2-component vector of float)
+0:33 b: direct index for structure (global 3-element array of 2-component vector of float)
+0:33 move second child to first child (temp structure{global int a, global 3-element array of 2-component vector of float b, global bool c})
+0:33 't' (temp structure{global int a, global 3-element array of 2-component vector of float b, global bool c})
+0:33 Constant:
+0:33 1 (const int)
+0:33 2.000000
+0:33 3.000000
+0:33 4.000000
+0:33 5.000000
+0:33 6.000000
+0:33 7.000000
+0:33 true (const bool)
+0:33 Constant:
+0:33 1 (const int)
+0:33 Constant:
+0:33 2 (const int)
+0:33 Constant:
+0:33 1 (const int)
+0:35 move second child to first child (temp 4-component vector of float)
+0:35 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:35 Construct vec4 (temp 4-component vector of float)
+0:35 'f' (temp float)
+0:35 'g' (temp float)
+0:35 'h' (temp float)
+0:35 'i' (temp float)
+0:? Linker Objects
+0:? 'sampler' (uniform sampler2D)
+0:? 'v1' (global 4-component vector of float)
+0:? 'v2' (global 4-component vector of float)
+0:? 'v3' (global 4-component vector of float)
+0:? 'v4' (global 4-component vector of float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/depthOut.frag.out b/chromium/third_party/glslang/src/Test/baseResults/depthOut.frag.out
new file mode 100644
index 00000000000..0177b39e328
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/depthOut.frag.out
@@ -0,0 +1,38 @@
+depthOut.frag
+WARNING: 0:3: varying deprecated in version 130; may be removed in future release
+WARNING: 0:4: varying deprecated in version 130; may be removed in future release
+
+Shader version: 130
+0:? Sequence
+0:6 Function Definition: main( (global void)
+0:6 Function Parameters:
+0:8 Sequence
+0:8 move second child to first child (temp float)
+0:8 'gl_FragDepth' (gl_FragDepth float FragDepth)
+0:8 'Depth' (smooth in float)
+0:9 move second child to first child (temp 4-component vector of float)
+0:9 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:9 'Color' (smooth in 4-component vector of float)
+0:? Linker Objects
+0:? 'Color' (smooth in 4-component vector of float)
+0:? 'Depth' (smooth in float)
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+0:? Sequence
+0:6 Function Definition: main( (global void)
+0:6 Function Parameters:
+0:8 Sequence
+0:8 move second child to first child (temp float)
+0:8 'gl_FragDepth' (gl_FragDepth float FragDepth)
+0:8 'Depth' (smooth in float)
+0:9 move second child to first child (temp 4-component vector of float)
+0:9 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:9 'Color' (smooth in 4-component vector of float)
+0:? Linker Objects
+0:? 'Color' (smooth in 4-component vector of float)
+0:? 'Depth' (smooth in float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/discard-dce.frag.out b/chromium/third_party/glslang/src/Test/baseResults/discard-dce.frag.out
new file mode 100644
index 00000000000..9b194c7bd2d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/discard-dce.frag.out
@@ -0,0 +1,239 @@
+discard-dce.frag
+Shader version: 110
+0:? Sequence
+0:4 Function Definition: main( (global void)
+0:4 Function Parameters:
+0:6 Sequence
+0:6 Sequence
+0:6 move second child to first child (temp 4-component vector of float)
+0:6 'white' (temp 4-component vector of float)
+0:6 Constant:
+0:6 1.000000
+0:6 1.000000
+0:6 1.000000
+0:6 1.000000
+0:7 Sequence
+0:7 move second child to first child (temp 4-component vector of float)
+0:7 'black' (temp 4-component vector of float)
+0:7 Constant:
+0:7 0.200000
+0:7 0.200000
+0:7 0.200000
+0:7 0.200000
+0:8 Sequence
+0:8 move second child to first child (temp 4-component vector of float)
+0:8 'color' (temp 4-component vector of float)
+0:8 'white' (temp 4-component vector of float)
+0:11 Sequence
+0:11 move second child to first child (temp float)
+0:11 'x' (temp float)
+0:11 subtract (temp float)
+0:11 component-wise multiply (temp float)
+0:11 direct index (temp float)
+0:11 'tex_coord' (smooth in 2-component vector of float)
+0:11 Constant:
+0:11 0 (const int)
+0:11 Constant:
+0:11 2.000000
+0:11 Constant:
+0:11 1.000000
+0:12 Sequence
+0:12 move second child to first child (temp float)
+0:12 'y' (temp float)
+0:12 subtract (temp float)
+0:12 component-wise multiply (temp float)
+0:12 direct index (temp float)
+0:12 'tex_coord' (smooth in 2-component vector of float)
+0:12 Constant:
+0:12 1 (const int)
+0:12 Constant:
+0:12 2.000000
+0:12 Constant:
+0:12 1.000000
+0:14 Sequence
+0:14 move second child to first child (temp float)
+0:14 'radius' (temp float)
+0:14 sqrt (global float)
+0:14 add (temp float)
+0:14 component-wise multiply (temp float)
+0:14 'x' (temp float)
+0:14 'x' (temp float)
+0:14 component-wise multiply (temp float)
+0:14 'y' (temp float)
+0:14 'y' (temp float)
+0:15 Test condition and select (temp void)
+0:15 Condition
+0:15 Compare Greater Than (temp bool)
+0:15 'radius' (temp float)
+0:15 Constant:
+0:15 1.000000
+0:15 true case
+0:16 Sequence
+0:16 Test condition and select (temp void)
+0:16 Condition
+0:16 Compare Greater Than (temp bool)
+0:16 'radius' (temp float)
+0:16 Constant:
+0:16 1.100000
+0:16 true case
+0:17 Sequence
+0:17 Pre-Increment (temp 4-component vector of float)
+0:17 'color' (temp 4-component vector of float)
+0:20 move second child to first child (temp 4-component vector of float)
+0:20 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:20 'color' (temp 4-component vector of float)
+0:22 Test condition and select (temp void)
+0:22 Condition
+0:22 Compare Greater Than (temp bool)
+0:22 'radius' (temp float)
+0:22 Constant:
+0:22 1.200000
+0:22 true case
+0:23 Sequence
+0:23 Pre-Increment (temp 4-component vector of float)
+0:23 'color' (temp 4-component vector of float)
+0:26 Branch: Kill
+0:30 Test condition and select (temp void)
+0:30 Condition
+0:30 Compare Greater Than or Equal (temp bool)
+0:30 'radius' (temp float)
+0:30 Constant:
+0:30 0.750000
+0:30 true case
+0:31 subtract second child into first child (temp 4-component vector of float)
+0:31 'color' (temp 4-component vector of float)
+0:31 Absolute value (global float)
+0:31 divide (temp float)
+0:31 pow (global float)
+0:31 'radius' (temp float)
+0:31 Constant:
+0:31 16.000000
+0:31 Constant:
+0:31 2.000000
+0:33 move second child to first child (temp 4-component vector of float)
+0:33 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:33 'color' (temp 4-component vector of float)
+0:? Linker Objects
+0:? 'tex_coord' (smooth in 2-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 110
+0:? Sequence
+0:4 Function Definition: main( (global void)
+0:4 Function Parameters:
+0:6 Sequence
+0:6 Sequence
+0:6 move second child to first child (temp 4-component vector of float)
+0:6 'white' (temp 4-component vector of float)
+0:6 Constant:
+0:6 1.000000
+0:6 1.000000
+0:6 1.000000
+0:6 1.000000
+0:7 Sequence
+0:7 move second child to first child (temp 4-component vector of float)
+0:7 'black' (temp 4-component vector of float)
+0:7 Constant:
+0:7 0.200000
+0:7 0.200000
+0:7 0.200000
+0:7 0.200000
+0:8 Sequence
+0:8 move second child to first child (temp 4-component vector of float)
+0:8 'color' (temp 4-component vector of float)
+0:8 'white' (temp 4-component vector of float)
+0:11 Sequence
+0:11 move second child to first child (temp float)
+0:11 'x' (temp float)
+0:11 subtract (temp float)
+0:11 component-wise multiply (temp float)
+0:11 direct index (temp float)
+0:11 'tex_coord' (smooth in 2-component vector of float)
+0:11 Constant:
+0:11 0 (const int)
+0:11 Constant:
+0:11 2.000000
+0:11 Constant:
+0:11 1.000000
+0:12 Sequence
+0:12 move second child to first child (temp float)
+0:12 'y' (temp float)
+0:12 subtract (temp float)
+0:12 component-wise multiply (temp float)
+0:12 direct index (temp float)
+0:12 'tex_coord' (smooth in 2-component vector of float)
+0:12 Constant:
+0:12 1 (const int)
+0:12 Constant:
+0:12 2.000000
+0:12 Constant:
+0:12 1.000000
+0:14 Sequence
+0:14 move second child to first child (temp float)
+0:14 'radius' (temp float)
+0:14 sqrt (global float)
+0:14 add (temp float)
+0:14 component-wise multiply (temp float)
+0:14 'x' (temp float)
+0:14 'x' (temp float)
+0:14 component-wise multiply (temp float)
+0:14 'y' (temp float)
+0:14 'y' (temp float)
+0:15 Test condition and select (temp void)
+0:15 Condition
+0:15 Compare Greater Than (temp bool)
+0:15 'radius' (temp float)
+0:15 Constant:
+0:15 1.000000
+0:15 true case
+0:16 Sequence
+0:16 Test condition and select (temp void)
+0:16 Condition
+0:16 Compare Greater Than (temp bool)
+0:16 'radius' (temp float)
+0:16 Constant:
+0:16 1.100000
+0:16 true case
+0:17 Sequence
+0:17 Pre-Increment (temp 4-component vector of float)
+0:17 'color' (temp 4-component vector of float)
+0:20 move second child to first child (temp 4-component vector of float)
+0:20 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:20 'color' (temp 4-component vector of float)
+0:22 Test condition and select (temp void)
+0:22 Condition
+0:22 Compare Greater Than (temp bool)
+0:22 'radius' (temp float)
+0:22 Constant:
+0:22 1.200000
+0:22 true case
+0:23 Sequence
+0:23 Pre-Increment (temp 4-component vector of float)
+0:23 'color' (temp 4-component vector of float)
+0:26 Branch: Kill
+0:30 Test condition and select (temp void)
+0:30 Condition
+0:30 Compare Greater Than or Equal (temp bool)
+0:30 'radius' (temp float)
+0:30 Constant:
+0:30 0.750000
+0:30 true case
+0:31 subtract second child into first child (temp 4-component vector of float)
+0:31 'color' (temp 4-component vector of float)
+0:31 Absolute value (global float)
+0:31 divide (temp float)
+0:31 pow (global float)
+0:31 'radius' (temp float)
+0:31 Constant:
+0:31 16.000000
+0:31 Constant:
+0:31 2.000000
+0:33 move second child to first child (temp 4-component vector of float)
+0:33 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:33 'color' (temp 4-component vector of float)
+0:? Linker Objects
+0:? 'tex_coord' (smooth in 2-component vector of float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/doWhileLoop.frag.out b/chromium/third_party/glslang/src/Test/baseResults/doWhileLoop.frag.out
new file mode 100644
index 00000000000..4cfbea97dc8
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/doWhileLoop.frag.out
@@ -0,0 +1,65 @@
+doWhileLoop.frag
+Shader version: 110
+0:? Sequence
+0:7 Function Definition: main( (global void)
+0:7 Function Parameters:
+0:9 Sequence
+0:9 Sequence
+0:9 move second child to first child (temp 4-component vector of float)
+0:9 'color' (temp 4-component vector of float)
+0:9 'BaseColor' (smooth in 4-component vector of float)
+0:13 Loop with condition not tested first
+0:13 Loop Condition
+0:13 Compare Less Than (temp bool)
+0:13 direct index (temp float)
+0:13 'color' (temp 4-component vector of float)
+0:13 Constant:
+0:13 0 (const int)
+0:13 'd' (uniform float)
+0:13 Loop Body
+0:12 Sequence
+0:12 add second child into first child (temp 4-component vector of float)
+0:12 'color' (temp 4-component vector of float)
+0:12 'bigColor' (uniform 4-component vector of float)
+0:15 move second child to first child (temp 4-component vector of float)
+0:15 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:15 'color' (temp 4-component vector of float)
+0:? Linker Objects
+0:? 'bigColor' (uniform 4-component vector of float)
+0:? 'BaseColor' (smooth in 4-component vector of float)
+0:? 'd' (uniform float)
+
+
+Linked fragment stage:
+
+
+Shader version: 110
+0:? Sequence
+0:7 Function Definition: main( (global void)
+0:7 Function Parameters:
+0:9 Sequence
+0:9 Sequence
+0:9 move second child to first child (temp 4-component vector of float)
+0:9 'color' (temp 4-component vector of float)
+0:9 'BaseColor' (smooth in 4-component vector of float)
+0:13 Loop with condition not tested first
+0:13 Loop Condition
+0:13 Compare Less Than (temp bool)
+0:13 direct index (temp float)
+0:13 'color' (temp 4-component vector of float)
+0:13 Constant:
+0:13 0 (const int)
+0:13 'd' (uniform float)
+0:13 Loop Body
+0:12 Sequence
+0:12 add second child into first child (temp 4-component vector of float)
+0:12 'color' (temp 4-component vector of float)
+0:12 'bigColor' (uniform 4-component vector of float)
+0:15 move second child to first child (temp 4-component vector of float)
+0:15 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:15 'color' (temp 4-component vector of float)
+0:? Linker Objects
+0:? 'bigColor' (uniform 4-component vector of float)
+0:? 'BaseColor' (smooth in 4-component vector of float)
+0:? 'd' (uniform float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/earlyReturnDiscard.frag.out b/chromium/third_party/glslang/src/Test/baseResults/earlyReturnDiscard.frag.out
new file mode 100644
index 00000000000..160b7566971
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/earlyReturnDiscard.frag.out
@@ -0,0 +1,257 @@
+earlyReturnDiscard.frag
+Shader version: 110
+0:? Sequence
+0:19 Function Definition: main( (global void)
+0:19 Function Parameters:
+0:21 Sequence
+0:21 Sequence
+0:21 move second child to first child (temp 4-component vector of float)
+0:21 'color' (temp 4-component vector of float)
+0:21 'BaseColor' (smooth in 4-component vector of float)
+0:24 move second child to first child (temp 4-component vector of float)
+0:24 'color2' (temp 4-component vector of float)
+0:24 'otherColor' (uniform 4-component vector of float)
+0:26 Test condition and select (temp void)
+0:26 Condition
+0:26 Compare Greater Than (temp bool)
+0:26 'c' (smooth in float)
+0:26 'd' (uniform float)
+0:26 true case
+0:27 add second child into first child (temp 4-component vector of float)
+0:27 'color' (temp 4-component vector of float)
+0:27 'bigColor' (uniform 4-component vector of float)
+0:26 false case
+0:29 add second child into first child (temp 4-component vector of float)
+0:29 'color' (temp 4-component vector of float)
+0:29 'smallColor' (uniform 4-component vector of float)
+0:31 Test condition and select (temp void)
+0:31 Condition
+0:31 Compare Less Than (temp bool)
+0:31 direct index (temp float)
+0:31 'color' (temp 4-component vector of float)
+0:31 Constant:
+0:31 2 (const int)
+0:31 'minimum' (uniform float)
+0:31 true case
+0:32 Branch: Return
+0:34 Post-Increment (temp float)
+0:34 direct index (temp float)
+0:34 'color' (temp 4-component vector of float)
+0:34 Constant:
+0:34 2 (const int)
+0:36 Test condition and select (temp void)
+0:36 Condition
+0:36 Compare Greater Than (temp bool)
+0:36 direct index (temp float)
+0:36 'color' (temp 4-component vector of float)
+0:36 Constant:
+0:36 2 (const int)
+0:36 'threshhold' (uniform float)
+0:36 true case
+0:37 Branch: Kill
+0:39 Post-Increment (temp 4-component vector of float)
+0:39 'color' (temp 4-component vector of float)
+0:42 Test condition and select (temp void)
+0:42 Condition
+0:42 Compare Greater Than (temp bool)
+0:42 direct index (temp float)
+0:42 'color' (temp 4-component vector of float)
+0:42 Constant:
+0:42 3 (const int)
+0:42 'threshhold2' (uniform float)
+0:42 true case
+0:43 Sequence
+0:43 Test condition and select (temp void)
+0:43 Condition
+0:43 Compare Greater Than (temp bool)
+0:43 direct index (temp float)
+0:43 'color' (temp 4-component vector of float)
+0:43 Constant:
+0:43 2 (const int)
+0:43 'threshhold2' (uniform float)
+0:43 true case
+0:44 Branch: Return
+0:43 false case
+0:45 Test condition and select (temp void)
+0:45 Condition
+0:45 'b' (uniform bool)
+0:45 true case
+0:46 Post-Increment (temp float)
+0:46 direct index (temp float)
+0:46 'color' (temp 4-component vector of float)
+0:46 Constant:
+0:46 2 (const int)
+0:45 false case
+0:48 Sequence
+0:48 Test condition and select (temp void)
+0:48 Condition
+0:48 Compare Less Than (temp bool)
+0:48 direct index (temp float)
+0:48 'color' (temp 4-component vector of float)
+0:48 Constant:
+0:48 0 (const int)
+0:48 'minimum' (uniform float)
+0:48 true case
+0:49 Sequence
+0:49 Branch: Kill
+0:48 false case
+0:51 Sequence
+0:51 Post-Increment (temp 4-component vector of float)
+0:51 'color' (temp 4-component vector of float)
+0:42 false case
+0:55 Sequence
+0:55 Test condition and select (temp void)
+0:55 Condition
+0:55 'b' (uniform bool)
+0:55 true case
+0:56 Branch: Kill
+0:55 false case
+0:58 Branch: Return
+0:101 move second child to first child (temp 4-component vector of float)
+0:101 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:101 component-wise multiply (temp 4-component vector of float)
+0:101 'color' (temp 4-component vector of float)
+0:101 'color2' (temp 4-component vector of float)
+0:? Linker Objects
+0:? 'd' (uniform float)
+0:? 'bigColor' (uniform 4-component vector of float)
+0:? 'smallColor' (uniform 4-component vector of float)
+0:? 'otherColor' (uniform 4-component vector of float)
+0:? 'c' (smooth in float)
+0:? 'threshhold' (uniform float)
+0:? 'threshhold2' (uniform float)
+0:? 'threshhold3' (uniform float)
+0:? 'minimum' (uniform float)
+0:? 'BaseColor' (smooth in 4-component vector of float)
+0:? 'b' (uniform bool)
+
+
+Linked fragment stage:
+
+
+Shader version: 110
+0:? Sequence
+0:19 Function Definition: main( (global void)
+0:19 Function Parameters:
+0:21 Sequence
+0:21 Sequence
+0:21 move second child to first child (temp 4-component vector of float)
+0:21 'color' (temp 4-component vector of float)
+0:21 'BaseColor' (smooth in 4-component vector of float)
+0:24 move second child to first child (temp 4-component vector of float)
+0:24 'color2' (temp 4-component vector of float)
+0:24 'otherColor' (uniform 4-component vector of float)
+0:26 Test condition and select (temp void)
+0:26 Condition
+0:26 Compare Greater Than (temp bool)
+0:26 'c' (smooth in float)
+0:26 'd' (uniform float)
+0:26 true case
+0:27 add second child into first child (temp 4-component vector of float)
+0:27 'color' (temp 4-component vector of float)
+0:27 'bigColor' (uniform 4-component vector of float)
+0:26 false case
+0:29 add second child into first child (temp 4-component vector of float)
+0:29 'color' (temp 4-component vector of float)
+0:29 'smallColor' (uniform 4-component vector of float)
+0:31 Test condition and select (temp void)
+0:31 Condition
+0:31 Compare Less Than (temp bool)
+0:31 direct index (temp float)
+0:31 'color' (temp 4-component vector of float)
+0:31 Constant:
+0:31 2 (const int)
+0:31 'minimum' (uniform float)
+0:31 true case
+0:32 Branch: Return
+0:34 Post-Increment (temp float)
+0:34 direct index (temp float)
+0:34 'color' (temp 4-component vector of float)
+0:34 Constant:
+0:34 2 (const int)
+0:36 Test condition and select (temp void)
+0:36 Condition
+0:36 Compare Greater Than (temp bool)
+0:36 direct index (temp float)
+0:36 'color' (temp 4-component vector of float)
+0:36 Constant:
+0:36 2 (const int)
+0:36 'threshhold' (uniform float)
+0:36 true case
+0:37 Branch: Kill
+0:39 Post-Increment (temp 4-component vector of float)
+0:39 'color' (temp 4-component vector of float)
+0:42 Test condition and select (temp void)
+0:42 Condition
+0:42 Compare Greater Than (temp bool)
+0:42 direct index (temp float)
+0:42 'color' (temp 4-component vector of float)
+0:42 Constant:
+0:42 3 (const int)
+0:42 'threshhold2' (uniform float)
+0:42 true case
+0:43 Sequence
+0:43 Test condition and select (temp void)
+0:43 Condition
+0:43 Compare Greater Than (temp bool)
+0:43 direct index (temp float)
+0:43 'color' (temp 4-component vector of float)
+0:43 Constant:
+0:43 2 (const int)
+0:43 'threshhold2' (uniform float)
+0:43 true case
+0:44 Branch: Return
+0:43 false case
+0:45 Test condition and select (temp void)
+0:45 Condition
+0:45 'b' (uniform bool)
+0:45 true case
+0:46 Post-Increment (temp float)
+0:46 direct index (temp float)
+0:46 'color' (temp 4-component vector of float)
+0:46 Constant:
+0:46 2 (const int)
+0:45 false case
+0:48 Sequence
+0:48 Test condition and select (temp void)
+0:48 Condition
+0:48 Compare Less Than (temp bool)
+0:48 direct index (temp float)
+0:48 'color' (temp 4-component vector of float)
+0:48 Constant:
+0:48 0 (const int)
+0:48 'minimum' (uniform float)
+0:48 true case
+0:49 Sequence
+0:49 Branch: Kill
+0:48 false case
+0:51 Sequence
+0:51 Post-Increment (temp 4-component vector of float)
+0:51 'color' (temp 4-component vector of float)
+0:42 false case
+0:55 Sequence
+0:55 Test condition and select (temp void)
+0:55 Condition
+0:55 'b' (uniform bool)
+0:55 true case
+0:56 Branch: Kill
+0:55 false case
+0:58 Branch: Return
+0:101 move second child to first child (temp 4-component vector of float)
+0:101 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:101 component-wise multiply (temp 4-component vector of float)
+0:101 'color' (temp 4-component vector of float)
+0:101 'color2' (temp 4-component vector of float)
+0:? Linker Objects
+0:? 'd' (uniform float)
+0:? 'bigColor' (uniform 4-component vector of float)
+0:? 'smallColor' (uniform 4-component vector of float)
+0:? 'otherColor' (uniform 4-component vector of float)
+0:? 'c' (smooth in float)
+0:? 'threshhold' (uniform float)
+0:? 'threshhold2' (uniform float)
+0:? 'threshhold3' (uniform float)
+0:? 'minimum' (uniform float)
+0:? 'BaseColor' (smooth in 4-component vector of float)
+0:? 'b' (uniform bool)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/empty.frag.out b/chromium/third_party/glslang/src/Test/baseResults/empty.frag.out
new file mode 100644
index 00000000000..be186bb9f8a
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/empty.frag.out
@@ -0,0 +1,17 @@
+empty.frag
+Shader version: 100
+0:? Sequence
+0:? Linker Objects
+
+empty2.frag
+Shader version: 100
+0:? Sequence
+0:? Linker Objects
+
+empty3.frag
+Shader version: 110
+0:? Sequence
+0:? Linker Objects
+
+ERROR: Cannot mix ES profile with non-ES profile shaders
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/errors.frag.out b/chromium/third_party/glslang/src/Test/baseResults/errors.frag.out
new file mode 100644
index 00000000000..f1e06d2cc7c
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/errors.frag.out
@@ -0,0 +1,32 @@
+errors.frag
+ERROR: 0:1: 'main' : function cannot take any parameter(s)
+ERROR: 0:1: 'int' : main function cannot return a value
+ERROR: 2 compilation errors. No code generated.
+
+
+Shader version: 100
+ERROR: node is still EOpNull!
+0:1 Function Definition: main(i1; (global mediump int)
+0:1 Function Parameters:
+0:1 'foo' (in mediump int)
+0:3 Sequence
+0:3 Branch: Return with expression
+0:3 Constant:
+0:3 1 (const int)
+0:? Linker Objects
+
+
+Linked fragment stage:
+
+
+Shader version: 100
+ERROR: node is still EOpNull!
+0:1 Function Definition: main(i1; (global mediump int)
+0:1 Function Parameters:
+0:1 'foo' (in mediump int)
+0:3 Sequence
+0:3 Branch: Return with expression
+0:3 Constant:
+0:3 1 (const int)
+0:? Linker Objects
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/es-link1.frag.out b/chromium/third_party/glslang/src/Test/baseResults/es-link1.frag.out
new file mode 100644
index 00000000000..41ce9a0fdfe
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/es-link1.frag.out
@@ -0,0 +1,27 @@
+es-link1.frag
+Shader version: 100
+0:? Sequence
+0:5 Function Definition: main( (global void)
+0:5 Function Parameters:
+0:7 Sequence
+0:7 move second child to first child (temp mediump 4-component vector of float)
+0:7 'gl_FragColor' (fragColor mediump 4-component vector of float FragColor)
+0:7 Function Call: calculateColor( (global mediump 4-component vector of float)
+0:? Linker Objects
+
+es-link2.frag
+Shader version: 100
+0:? Sequence
+0:5 Function Definition: calculateColor( (global mediump 4-component vector of float)
+0:5 Function Parameters:
+0:7 Sequence
+0:7 Branch: Return with expression
+0:7 vector-scale (temp mediump 4-component vector of float)
+0:7 'varyingColor' (smooth in mediump 4-component vector of float)
+0:7 Constant:
+0:7 0.500000
+0:? Linker Objects
+0:? 'varyingColor' (smooth in mediump 4-component vector of float)
+
+ERROR: Cannot attach multiple ES shaders of the same type to a single program
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/flowControl.frag.out b/chromium/third_party/glslang/src/Test/baseResults/flowControl.frag.out
new file mode 100644
index 00000000000..324da066c14
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/flowControl.frag.out
@@ -0,0 +1,81 @@
+flowControl.frag
+Shader version: 120
+0:? Sequence
+0:10 Function Definition: main( (global void)
+0:10 Function Parameters:
+0:12 Sequence
+0:12 Sequence
+0:12 move second child to first child (temp 4-component vector of float)
+0:12 'color' (temp 4-component vector of float)
+0:12 'BaseColor' (smooth in 4-component vector of float)
+0:15 move second child to first child (temp 4-component vector of float)
+0:15 'color2' (temp 4-component vector of float)
+0:15 'otherColor' (uniform 4-component vector of float)
+0:17 Test condition and select (temp void)
+0:17 Condition
+0:17 Compare Greater Than (temp bool)
+0:17 'c' (smooth in float)
+0:17 'd' (uniform float)
+0:17 true case
+0:18 add second child into first child (temp 4-component vector of float)
+0:18 'color' (temp 4-component vector of float)
+0:18 'bigColor' (uniform 4-component vector of float)
+0:17 false case
+0:20 add second child into first child (temp 4-component vector of float)
+0:20 'color' (temp 4-component vector of float)
+0:20 'smallColor' (uniform 4-component vector of float)
+0:22 move second child to first child (temp 4-component vector of float)
+0:22 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:22 component-wise multiply (temp 4-component vector of float)
+0:22 'color' (temp 4-component vector of float)
+0:22 'color2' (temp 4-component vector of float)
+0:? Linker Objects
+0:? 'd' (uniform float)
+0:? 'bigColor' (uniform 4-component vector of float)
+0:? 'smallColor' (uniform 4-component vector of float)
+0:? 'otherColor' (uniform 4-component vector of float)
+0:? 'c' (smooth in float)
+0:? 'BaseColor' (smooth in 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 120
+0:? Sequence
+0:10 Function Definition: main( (global void)
+0:10 Function Parameters:
+0:12 Sequence
+0:12 Sequence
+0:12 move second child to first child (temp 4-component vector of float)
+0:12 'color' (temp 4-component vector of float)
+0:12 'BaseColor' (smooth in 4-component vector of float)
+0:15 move second child to first child (temp 4-component vector of float)
+0:15 'color2' (temp 4-component vector of float)
+0:15 'otherColor' (uniform 4-component vector of float)
+0:17 Test condition and select (temp void)
+0:17 Condition
+0:17 Compare Greater Than (temp bool)
+0:17 'c' (smooth in float)
+0:17 'd' (uniform float)
+0:17 true case
+0:18 add second child into first child (temp 4-component vector of float)
+0:18 'color' (temp 4-component vector of float)
+0:18 'bigColor' (uniform 4-component vector of float)
+0:17 false case
+0:20 add second child into first child (temp 4-component vector of float)
+0:20 'color' (temp 4-component vector of float)
+0:20 'smallColor' (uniform 4-component vector of float)
+0:22 move second child to first child (temp 4-component vector of float)
+0:22 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:22 component-wise multiply (temp 4-component vector of float)
+0:22 'color' (temp 4-component vector of float)
+0:22 'color2' (temp 4-component vector of float)
+0:? Linker Objects
+0:? 'd' (uniform float)
+0:? 'bigColor' (uniform 4-component vector of float)
+0:? 'smallColor' (uniform 4-component vector of float)
+0:? 'otherColor' (uniform 4-component vector of float)
+0:? 'c' (smooth in float)
+0:? 'BaseColor' (smooth in 4-component vector of float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/forLoop.frag.out b/chromium/third_party/glslang/src/Test/baseResults/forLoop.frag.out
new file mode 100644
index 00000000000..babd30e45d6
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/forLoop.frag.out
@@ -0,0 +1,361 @@
+forLoop.frag
+Shader version: 130
+0:? Sequence
+0:10 Function Definition: main( (global void)
+0:10 Function Parameters:
+0:12 Sequence
+0:12 Sequence
+0:12 move second child to first child (temp 4-component vector of float)
+0:12 'color' (temp 4-component vector of float)
+0:12 'BaseColor' (smooth in 4-component vector of float)
+0:14 Sequence
+0:14 Sequence
+0:14 move second child to first child (temp int)
+0:14 'i' (temp int)
+0:14 Constant:
+0:14 0 (const int)
+0:14 Loop with condition tested first
+0:14 Loop Condition
+0:14 Compare Less Than (temp bool)
+0:14 'i' (temp int)
+0:14 'Count' (uniform int)
+0:14 Loop Body
+0:15 Sequence
+0:15 add second child into first child (temp 4-component vector of float)
+0:15 'color' (temp 4-component vector of float)
+0:15 'bigColor' (uniform 4-component vector of float)
+0:14 Loop Terminal Expression
+0:14 Pre-Increment (temp int)
+0:14 'i' (temp int)
+0:18 move second child to first child (temp 4-component vector of float)
+0:18 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:18 'color' (temp 4-component vector of float)
+0:20 Sequence
+0:20 move second child to first child (temp float)
+0:20 'sum' (temp float)
+0:20 Constant:
+0:20 0.000000
+0:21 Sequence
+0:21 Sequence
+0:21 move second child to first child (temp int)
+0:21 'i' (temp int)
+0:21 Constant:
+0:21 0 (const int)
+0:21 Loop with condition tested first
+0:21 Loop Condition
+0:21 Compare Less Than (temp bool)
+0:21 'i' (temp int)
+0:21 Constant:
+0:21 4 (const int)
+0:21 Loop Body
+0:22 add second child into first child (temp float)
+0:22 'sum' (temp float)
+0:22 Convert uint to float (temp float)
+0:22 indirect index (temp uint)
+0:22 'v4' (uniform 4-component vector of uint)
+0:22 'i' (temp int)
+0:21 Loop Terminal Expression
+0:21 Pre-Increment (temp int)
+0:21 'i' (temp int)
+0:26 Sequence
+0:26 Sequence
+0:26 move second child to first child (temp int)
+0:26 'i' (temp int)
+0:26 Constant:
+0:26 0 (const int)
+0:26 Loop with condition tested first
+0:26 Loop Condition
+0:26 Compare Less Than (temp bool)
+0:26 'i' (temp int)
+0:26 Constant:
+0:26 4 (const int)
+0:26 Loop Body
+0:27 move second child to first child (temp float)
+0:27 indirect index (temp float)
+0:27 'tv4' (temp 4-component vector of float)
+0:27 'i' (temp int)
+0:27 Convert uint to float (temp float)
+0:27 component-wise multiply (temp uint)
+0:27 indirect index (temp uint)
+0:27 'v4' (uniform 4-component vector of uint)
+0:27 'i' (temp int)
+0:27 Constant:
+0:27 4 (const uint)
+0:26 Loop Terminal Expression
+0:26 Pre-Increment (temp int)
+0:26 'i' (temp int)
+0:29 add second child into first child (temp 4-component vector of float)
+0:29 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:29 add (temp 4-component vector of float)
+0:29 Construct vec4 (temp 4-component vector of float)
+0:29 'sum' (temp float)
+0:29 'tv4' (temp 4-component vector of float)
+0:32 move second child to first child (temp 3-component vector of float)
+0:32 vector swizzle (temp 3-component vector of float)
+0:32 'r' (temp 4-component vector of float)
+0:32 Sequence
+0:32 Constant:
+0:32 0 (const int)
+0:32 Constant:
+0:32 1 (const int)
+0:32 Constant:
+0:32 2 (const int)
+0:32 vector swizzle (temp 3-component vector of float)
+0:32 'BaseColor' (smooth in 4-component vector of float)
+0:32 Sequence
+0:32 Constant:
+0:32 0 (const int)
+0:32 Constant:
+0:32 1 (const int)
+0:32 Constant:
+0:32 2 (const int)
+0:34 Sequence
+0:34 Sequence
+0:34 move second child to first child (temp int)
+0:34 'i' (temp int)
+0:34 Constant:
+0:34 0 (const int)
+0:34 Loop with condition tested first
+0:34 Loop Condition
+0:34 Compare Less Than (temp bool)
+0:34 'i' (temp int)
+0:34 'Count' (uniform int)
+0:34 Loop Body
+0:35 move second child to first child (temp float)
+0:35 direct index (temp float)
+0:35 'r' (temp 4-component vector of float)
+0:35 Constant:
+0:35 3 (const int)
+0:35 'f' (smooth in float)
+0:34 Loop Terminal Expression
+0:34 Pre-Increment (temp int)
+0:34 'i' (temp int)
+0:37 add second child into first child (temp 3-component vector of float)
+0:37 vector swizzle (temp 3-component vector of float)
+0:37 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:37 Sequence
+0:37 Constant:
+0:37 0 (const int)
+0:37 Constant:
+0:37 1 (const int)
+0:37 Constant:
+0:37 2 (const int)
+0:37 vector swizzle (temp 3-component vector of float)
+0:37 'r' (temp 4-component vector of float)
+0:37 Sequence
+0:37 Constant:
+0:37 0 (const int)
+0:37 Constant:
+0:37 1 (const int)
+0:37 Constant:
+0:37 2 (const int)
+0:39 Sequence
+0:39 Sequence
+0:39 move second child to first child (temp int)
+0:39 'i' (temp int)
+0:39 Constant:
+0:39 0 (const int)
+0:39 Loop with condition tested first
+0:39 Loop Condition
+0:39 Compare Less Than (temp bool)
+0:39 'i' (temp int)
+0:39 Constant:
+0:39 16 (const int)
+0:39 Loop Body
+0:40 vector scale second child into first child (temp 4-component vector of float)
+0:40 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:40 'f' (smooth in float)
+0:39 Loop Terminal Expression
+0:39 add second child into first child (temp int)
+0:39 'i' (temp int)
+0:39 Constant:
+0:39 4 (const int)
+0:? Linker Objects
+0:? 'bigColor' (uniform 4-component vector of float)
+0:? 'BaseColor' (smooth in 4-component vector of float)
+0:? 'f' (smooth in float)
+0:? 'Count' (uniform int)
+0:? 'v4' (uniform 4-component vector of uint)
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+0:? Sequence
+0:10 Function Definition: main( (global void)
+0:10 Function Parameters:
+0:12 Sequence
+0:12 Sequence
+0:12 move second child to first child (temp 4-component vector of float)
+0:12 'color' (temp 4-component vector of float)
+0:12 'BaseColor' (smooth in 4-component vector of float)
+0:14 Sequence
+0:14 Sequence
+0:14 move second child to first child (temp int)
+0:14 'i' (temp int)
+0:14 Constant:
+0:14 0 (const int)
+0:14 Loop with condition tested first
+0:14 Loop Condition
+0:14 Compare Less Than (temp bool)
+0:14 'i' (temp int)
+0:14 'Count' (uniform int)
+0:14 Loop Body
+0:15 Sequence
+0:15 add second child into first child (temp 4-component vector of float)
+0:15 'color' (temp 4-component vector of float)
+0:15 'bigColor' (uniform 4-component vector of float)
+0:14 Loop Terminal Expression
+0:14 Pre-Increment (temp int)
+0:14 'i' (temp int)
+0:18 move second child to first child (temp 4-component vector of float)
+0:18 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:18 'color' (temp 4-component vector of float)
+0:20 Sequence
+0:20 move second child to first child (temp float)
+0:20 'sum' (temp float)
+0:20 Constant:
+0:20 0.000000
+0:21 Sequence
+0:21 Sequence
+0:21 move second child to first child (temp int)
+0:21 'i' (temp int)
+0:21 Constant:
+0:21 0 (const int)
+0:21 Loop with condition tested first
+0:21 Loop Condition
+0:21 Compare Less Than (temp bool)
+0:21 'i' (temp int)
+0:21 Constant:
+0:21 4 (const int)
+0:21 Loop Body
+0:22 add second child into first child (temp float)
+0:22 'sum' (temp float)
+0:22 Convert uint to float (temp float)
+0:22 indirect index (temp uint)
+0:22 'v4' (uniform 4-component vector of uint)
+0:22 'i' (temp int)
+0:21 Loop Terminal Expression
+0:21 Pre-Increment (temp int)
+0:21 'i' (temp int)
+0:26 Sequence
+0:26 Sequence
+0:26 move second child to first child (temp int)
+0:26 'i' (temp int)
+0:26 Constant:
+0:26 0 (const int)
+0:26 Loop with condition tested first
+0:26 Loop Condition
+0:26 Compare Less Than (temp bool)
+0:26 'i' (temp int)
+0:26 Constant:
+0:26 4 (const int)
+0:26 Loop Body
+0:27 move second child to first child (temp float)
+0:27 indirect index (temp float)
+0:27 'tv4' (temp 4-component vector of float)
+0:27 'i' (temp int)
+0:27 Convert uint to float (temp float)
+0:27 component-wise multiply (temp uint)
+0:27 indirect index (temp uint)
+0:27 'v4' (uniform 4-component vector of uint)
+0:27 'i' (temp int)
+0:27 Constant:
+0:27 4 (const uint)
+0:26 Loop Terminal Expression
+0:26 Pre-Increment (temp int)
+0:26 'i' (temp int)
+0:29 add second child into first child (temp 4-component vector of float)
+0:29 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:29 add (temp 4-component vector of float)
+0:29 Construct vec4 (temp 4-component vector of float)
+0:29 'sum' (temp float)
+0:29 'tv4' (temp 4-component vector of float)
+0:32 move second child to first child (temp 3-component vector of float)
+0:32 vector swizzle (temp 3-component vector of float)
+0:32 'r' (temp 4-component vector of float)
+0:32 Sequence
+0:32 Constant:
+0:32 0 (const int)
+0:32 Constant:
+0:32 1 (const int)
+0:32 Constant:
+0:32 2 (const int)
+0:32 vector swizzle (temp 3-component vector of float)
+0:32 'BaseColor' (smooth in 4-component vector of float)
+0:32 Sequence
+0:32 Constant:
+0:32 0 (const int)
+0:32 Constant:
+0:32 1 (const int)
+0:32 Constant:
+0:32 2 (const int)
+0:34 Sequence
+0:34 Sequence
+0:34 move second child to first child (temp int)
+0:34 'i' (temp int)
+0:34 Constant:
+0:34 0 (const int)
+0:34 Loop with condition tested first
+0:34 Loop Condition
+0:34 Compare Less Than (temp bool)
+0:34 'i' (temp int)
+0:34 'Count' (uniform int)
+0:34 Loop Body
+0:35 move second child to first child (temp float)
+0:35 direct index (temp float)
+0:35 'r' (temp 4-component vector of float)
+0:35 Constant:
+0:35 3 (const int)
+0:35 'f' (smooth in float)
+0:34 Loop Terminal Expression
+0:34 Pre-Increment (temp int)
+0:34 'i' (temp int)
+0:37 add second child into first child (temp 3-component vector of float)
+0:37 vector swizzle (temp 3-component vector of float)
+0:37 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:37 Sequence
+0:37 Constant:
+0:37 0 (const int)
+0:37 Constant:
+0:37 1 (const int)
+0:37 Constant:
+0:37 2 (const int)
+0:37 vector swizzle (temp 3-component vector of float)
+0:37 'r' (temp 4-component vector of float)
+0:37 Sequence
+0:37 Constant:
+0:37 0 (const int)
+0:37 Constant:
+0:37 1 (const int)
+0:37 Constant:
+0:37 2 (const int)
+0:39 Sequence
+0:39 Sequence
+0:39 move second child to first child (temp int)
+0:39 'i' (temp int)
+0:39 Constant:
+0:39 0 (const int)
+0:39 Loop with condition tested first
+0:39 Loop Condition
+0:39 Compare Less Than (temp bool)
+0:39 'i' (temp int)
+0:39 Constant:
+0:39 16 (const int)
+0:39 Loop Body
+0:40 vector scale second child into first child (temp 4-component vector of float)
+0:40 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:40 'f' (smooth in float)
+0:39 Loop Terminal Expression
+0:39 add second child into first child (temp int)
+0:39 'i' (temp int)
+0:39 Constant:
+0:39 4 (const int)
+0:? Linker Objects
+0:? 'bigColor' (uniform 4-component vector of float)
+0:? 'BaseColor' (smooth in 4-component vector of float)
+0:? 'f' (smooth in float)
+0:? 'Count' (uniform int)
+0:? 'v4' (uniform 4-component vector of uint)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/forwardRef.frag.out b/chromium/third_party/glslang/src/Test/baseResults/forwardRef.frag.out
new file mode 100644
index 00000000000..357cc2bd458
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/forwardRef.frag.out
@@ -0,0 +1,125 @@
+forwardRef.frag
+Shader version: 110
+0:? Sequence
+0:11 Function Definition: main( (global void)
+0:11 Function Parameters:
+0:13 Sequence
+0:13 Sequence
+0:13 move second child to first child (temp 4-component vector of float)
+0:13 'color' (temp 4-component vector of float)
+0:13 Construct vec4 (temp 4-component vector of float)
+0:13 Function Call: foo(vf4; (global float)
+0:13 'BaseColor' (smooth in 4-component vector of float)
+0:15 Function Call: bar( (global void)
+0:16 Sequence
+0:16 move second child to first child (temp float)
+0:16 'f' (temp float)
+0:16 Function Call: unreachableReturn( (global float)
+0:18 move second child to first child (temp 4-component vector of float)
+0:18 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:18 vector-scale (temp 4-component vector of float)
+0:18 'color' (temp 4-component vector of float)
+0:18 'f' (temp float)
+0:21 Function Definition: bar( (global void)
+0:21 Function Parameters:
+0:25 Function Definition: unreachableReturn( (global float)
+0:25 Function Parameters:
+0:27 Sequence
+0:27 Function Call: bar( (global void)
+0:28 Test condition and select (temp void)
+0:28 Condition
+0:28 Compare Less Than (temp bool)
+0:28 'd' (uniform float)
+0:28 Constant:
+0:28 4.200000
+0:28 true case
+0:29 Branch: Return with expression
+0:29 Constant:
+0:29 1.200000
+0:28 false case
+0:31 Branch: Return with expression
+0:31 Constant:
+0:31 4.500000
+0:34 Function Definition: foo(vf4; (global float)
+0:34 Function Parameters:
+0:34 'bar' (in 4-component vector of float)
+0:36 Sequence
+0:36 Branch: Return with expression
+0:36 add (temp float)
+0:36 direct index (temp float)
+0:36 'bar' (in 4-component vector of float)
+0:36 Constant:
+0:36 0 (const int)
+0:36 direct index (temp float)
+0:36 'bar' (in 4-component vector of float)
+0:36 Constant:
+0:36 1 (const int)
+0:? Linker Objects
+0:? 'bigColor' (uniform 4-component vector of float)
+0:? 'BaseColor' (smooth in 4-component vector of float)
+0:? 'd' (uniform float)
+
+
+Linked fragment stage:
+
+
+Shader version: 110
+0:? Sequence
+0:11 Function Definition: main( (global void)
+0:11 Function Parameters:
+0:13 Sequence
+0:13 Sequence
+0:13 move second child to first child (temp 4-component vector of float)
+0:13 'color' (temp 4-component vector of float)
+0:13 Construct vec4 (temp 4-component vector of float)
+0:13 Function Call: foo(vf4; (global float)
+0:13 'BaseColor' (smooth in 4-component vector of float)
+0:15 Function Call: bar( (global void)
+0:16 Sequence
+0:16 move second child to first child (temp float)
+0:16 'f' (temp float)
+0:16 Function Call: unreachableReturn( (global float)
+0:18 move second child to first child (temp 4-component vector of float)
+0:18 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:18 vector-scale (temp 4-component vector of float)
+0:18 'color' (temp 4-component vector of float)
+0:18 'f' (temp float)
+0:21 Function Definition: bar( (global void)
+0:21 Function Parameters:
+0:25 Function Definition: unreachableReturn( (global float)
+0:25 Function Parameters:
+0:27 Sequence
+0:27 Function Call: bar( (global void)
+0:28 Test condition and select (temp void)
+0:28 Condition
+0:28 Compare Less Than (temp bool)
+0:28 'd' (uniform float)
+0:28 Constant:
+0:28 4.200000
+0:28 true case
+0:29 Branch: Return with expression
+0:29 Constant:
+0:29 1.200000
+0:28 false case
+0:31 Branch: Return with expression
+0:31 Constant:
+0:31 4.500000
+0:34 Function Definition: foo(vf4; (global float)
+0:34 Function Parameters:
+0:34 'bar' (in 4-component vector of float)
+0:36 Sequence
+0:36 Branch: Return with expression
+0:36 add (temp float)
+0:36 direct index (temp float)
+0:36 'bar' (in 4-component vector of float)
+0:36 Constant:
+0:36 0 (const int)
+0:36 direct index (temp float)
+0:36 'bar' (in 4-component vector of float)
+0:36 Constant:
+0:36 1 (const int)
+0:? Linker Objects
+0:? 'bigColor' (uniform 4-component vector of float)
+0:? 'BaseColor' (smooth in 4-component vector of float)
+0:? 'd' (uniform float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/functionCall.frag.out b/chromium/third_party/glslang/src/Test/baseResults/functionCall.frag.out
new file mode 100644
index 00000000000..610f2bb1e65
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/functionCall.frag.out
@@ -0,0 +1,183 @@
+functionCall.frag
+WARNING: 0:4: varying deprecated in version 130; may be removed in future release
+
+Shader version: 130
+0:? Sequence
+0:7 Sequence
+0:7 move second child to first child (temp float)
+0:7 'h' (global float)
+0:7 Constant:
+0:7 0.000000
+0:9 Function Definition: foo(vf4; (global float)
+0:9 Function Parameters:
+0:9 'bar' (in 4-component vector of float)
+0:11 Sequence
+0:11 Branch: Return with expression
+0:11 add (temp float)
+0:11 direct index (temp float)
+0:11 'bar' (in 4-component vector of float)
+0:11 Constant:
+0:11 0 (const int)
+0:11 direct index (temp float)
+0:11 'bar' (in 4-component vector of float)
+0:11 Constant:
+0:11 1 (const int)
+0:14 Function Definition: bar( (global void)
+0:14 Function Parameters:
+0:18 Function Definition: unreachableReturn( (global float)
+0:18 Function Parameters:
+0:20 Sequence
+0:20 Test condition and select (temp void)
+0:20 Condition
+0:20 Compare Less Than (temp bool)
+0:20 'd' (uniform float)
+0:20 Constant:
+0:20 4.200000
+0:20 true case
+0:21 Branch: Return with expression
+0:21 Constant:
+0:21 1.200000
+0:20 false case
+0:23 Branch: Return with expression
+0:23 Constant:
+0:23 4.500000
+0:27 Function Definition: missingReturn( (global float)
+0:27 Function Parameters:
+0:29 Sequence
+0:29 Test condition and select (temp void)
+0:29 Condition
+0:29 Compare Less Than (temp bool)
+0:29 'd' (uniform float)
+0:29 Constant:
+0:29 4.500000
+0:29 true case
+0:30 Sequence
+0:30 move second child to first child (temp float)
+0:30 'h' (global float)
+0:30 'd' (uniform float)
+0:31 Branch: Return with expression
+0:31 Constant:
+0:31 3.900000
+0:35 Function Definition: main( (global void)
+0:35 Function Parameters:
+0:37 Sequence
+0:37 Sequence
+0:37 move second child to first child (temp 4-component vector of float)
+0:37 'color' (temp 4-component vector of float)
+0:37 Construct vec4 (temp 4-component vector of float)
+0:37 Function Call: foo(vf4; (global float)
+0:37 'BaseColor' (smooth in 4-component vector of float)
+0:39 Function Call: bar( (global void)
+0:40 Sequence
+0:40 move second child to first child (temp float)
+0:40 'f' (temp float)
+0:40 Function Call: unreachableReturn( (global float)
+0:41 Sequence
+0:41 move second child to first child (temp float)
+0:41 'g' (temp float)
+0:41 Function Call: missingReturn( (global float)
+0:43 move second child to first child (temp 4-component vector of float)
+0:43 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:43 vector-scale (temp 4-component vector of float)
+0:43 vector-scale (temp 4-component vector of float)
+0:43 'color' (temp 4-component vector of float)
+0:43 'f' (temp float)
+0:43 'h' (global float)
+0:? Linker Objects
+0:? 'bigColor' (uniform 4-component vector of float)
+0:? 'BaseColor' (smooth in 4-component vector of float)
+0:? 'd' (uniform float)
+0:? 'h' (global float)
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+0:? Sequence
+0:7 Sequence
+0:7 move second child to first child (temp float)
+0:7 'h' (global float)
+0:7 Constant:
+0:7 0.000000
+0:9 Function Definition: foo(vf4; (global float)
+0:9 Function Parameters:
+0:9 'bar' (in 4-component vector of float)
+0:11 Sequence
+0:11 Branch: Return with expression
+0:11 add (temp float)
+0:11 direct index (temp float)
+0:11 'bar' (in 4-component vector of float)
+0:11 Constant:
+0:11 0 (const int)
+0:11 direct index (temp float)
+0:11 'bar' (in 4-component vector of float)
+0:11 Constant:
+0:11 1 (const int)
+0:14 Function Definition: bar( (global void)
+0:14 Function Parameters:
+0:18 Function Definition: unreachableReturn( (global float)
+0:18 Function Parameters:
+0:20 Sequence
+0:20 Test condition and select (temp void)
+0:20 Condition
+0:20 Compare Less Than (temp bool)
+0:20 'd' (uniform float)
+0:20 Constant:
+0:20 4.200000
+0:20 true case
+0:21 Branch: Return with expression
+0:21 Constant:
+0:21 1.200000
+0:20 false case
+0:23 Branch: Return with expression
+0:23 Constant:
+0:23 4.500000
+0:27 Function Definition: missingReturn( (global float)
+0:27 Function Parameters:
+0:29 Sequence
+0:29 Test condition and select (temp void)
+0:29 Condition
+0:29 Compare Less Than (temp bool)
+0:29 'd' (uniform float)
+0:29 Constant:
+0:29 4.500000
+0:29 true case
+0:30 Sequence
+0:30 move second child to first child (temp float)
+0:30 'h' (global float)
+0:30 'd' (uniform float)
+0:31 Branch: Return with expression
+0:31 Constant:
+0:31 3.900000
+0:35 Function Definition: main( (global void)
+0:35 Function Parameters:
+0:37 Sequence
+0:37 Sequence
+0:37 move second child to first child (temp 4-component vector of float)
+0:37 'color' (temp 4-component vector of float)
+0:37 Construct vec4 (temp 4-component vector of float)
+0:37 Function Call: foo(vf4; (global float)
+0:37 'BaseColor' (smooth in 4-component vector of float)
+0:39 Function Call: bar( (global void)
+0:40 Sequence
+0:40 move second child to first child (temp float)
+0:40 'f' (temp float)
+0:40 Function Call: unreachableReturn( (global float)
+0:41 Sequence
+0:41 move second child to first child (temp float)
+0:41 'g' (temp float)
+0:41 Function Call: missingReturn( (global float)
+0:43 move second child to first child (temp 4-component vector of float)
+0:43 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:43 vector-scale (temp 4-component vector of float)
+0:43 vector-scale (temp 4-component vector of float)
+0:43 'color' (temp 4-component vector of float)
+0:43 'f' (temp float)
+0:43 'h' (global float)
+0:? Linker Objects
+0:? 'bigColor' (uniform 4-component vector of float)
+0:? 'BaseColor' (smooth in 4-component vector of float)
+0:? 'd' (uniform float)
+0:? 'h' (global float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/functionSemantics.frag.out b/chromium/third_party/glslang/src/Test/baseResults/functionSemantics.frag.out
new file mode 100644
index 00000000000..a9dfb91c53c
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/functionSemantics.frag.out
@@ -0,0 +1,401 @@
+functionSemantics.frag
+Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
+
+Shader version: 400
+0:? Sequence
+0:5 Function Definition: foo(i1;i1;i1;i1;i1;i1; (global int)
+0:5 Function Parameters:
+0:5 'a' (in int)
+0:5 'b' (const (read only) int)
+0:5 'c' (in int)
+0:5 'd' (const (read only) int)
+0:5 'e' (out int)
+0:5 'f' (inout int)
+0:7 Sequence
+0:7 Sequence
+0:7 move second child to first child (temp int)
+0:7 'sum' (temp int)
+0:7 add (temp int)
+0:7 add (temp int)
+0:7 add (temp int)
+0:7 add (temp int)
+0:7 'a' (in int)
+0:7 'b' (const (read only) int)
+0:7 'c' (in int)
+0:7 'd' (const (read only) int)
+0:7 'f' (inout int)
+0:10 multiply second child into first child (temp int)
+0:10 'a' (in int)
+0:10 Constant:
+0:10 64 (const int)
+0:12 multiply second child into first child (temp int)
+0:12 'c' (in int)
+0:12 Constant:
+0:12 64 (const int)
+0:14 move second child to first child (temp int)
+0:14 'e' (out int)
+0:14 Constant:
+0:14 1024 (const int)
+0:15 multiply second child into first child (temp int)
+0:15 'f' (inout int)
+0:15 Constant:
+0:15 64 (const int)
+0:17 add second child into first child (temp int)
+0:17 'sum' (temp int)
+0:17 add (temp int)
+0:17 add (temp int)
+0:17 add (temp int)
+0:17 add (temp int)
+0:17 add (temp int)
+0:17 'a' (in int)
+0:17 component-wise multiply (temp int)
+0:17 Constant:
+0:17 64 (const int)
+0:17 'b' (const (read only) int)
+0:17 'c' (in int)
+0:17 component-wise multiply (temp int)
+0:17 Constant:
+0:17 64 (const int)
+0:17 'd' (const (read only) int)
+0:17 'e' (out int)
+0:17 'f' (inout int)
+0:20 Branch: Return with expression
+0:20 'sum' (temp int)
+0:23 Function Definition: foo2(f1;vf3;i1; (global int)
+0:23 Function Parameters:
+0:23 'a' (in float)
+0:23 'b' (in 3-component vector of float)
+0:23 'r' (out int)
+0:25 Sequence
+0:25 move second child to first child (temp int)
+0:25 'r' (out int)
+0:25 Convert float to int (temp int)
+0:25 component-wise multiply (temp float)
+0:25 Constant:
+0:25 3.000000
+0:25 'a' (in float)
+0:26 Branch: Return with expression
+0:26 Convert float to int (temp int)
+0:26 component-wise multiply (temp float)
+0:26 Constant:
+0:26 5.000000
+0:26 direct index (temp float)
+0:26 'b' (in 3-component vector of float)
+0:26 Constant:
+0:26 1 (const int)
+0:29 Function Definition: foo3( (global int)
+0:29 Function Parameters:
+0:31 Sequence
+0:31 Test condition and select (temp void)
+0:31 Condition
+0:31 Compare Greater Than (temp bool)
+0:31 'u' (uniform float)
+0:31 Constant:
+0:31 3.200000
+0:31 true case
+0:32 Sequence
+0:32 Branch: Kill
+0:33 Branch: Return with expression
+0:33 Constant:
+0:33 1000000 (const int)
+0:36 Branch: Return with expression
+0:36 Constant:
+0:36 2000000 (const int)
+0:39 Function Definition: main( (global void)
+0:39 Function Parameters:
+0:? Sequence
+0:42 Sequence
+0:42 move second child to first child (temp int)
+0:42 't' (temp int)
+0:42 Constant:
+0:42 2 (const int)
+0:46 move second child to first child (temp int)
+0:46 direct index (temp int)
+0:46 t: direct index for structure (temp 4-component vector of int)
+0:46 'f' (temp structure{temp 4-component vector of int t})
+0:46 Constant:
+0:46 0 (const int)
+0:46 Constant:
+0:46 1 (const int)
+0:46 Constant:
+0:46 32 (const int)
+0:49 Sequence
+0:49 move second child to first child (temp int)
+0:49 'color' (temp int)
+0:49 Function Call: foo(i1;i1;i1;i1;i1;i1; (global int)
+0:49 Constant:
+0:49 1 (const int)
+0:49 Constant:
+0:49 2 (const int)
+0:49 add (temp int)
+0:49 't' (temp int)
+0:49 't' (temp int)
+0:49 Constant:
+0:49 8 (const int)
+0:49 'e' (temp int)
+0:49 direct index (temp int)
+0:49 t: direct index for structure (temp 4-component vector of int)
+0:49 'f' (temp structure{temp 4-component vector of int t})
+0:49 Constant:
+0:49 0 (const int)
+0:49 Constant:
+0:49 1 (const int)
+0:51 add second child into first child (temp int)
+0:51 'color' (temp int)
+0:51 component-wise multiply (temp int)
+0:51 Constant:
+0:51 128 (const int)
+0:51 add (temp int)
+0:51 'e' (temp int)
+0:51 direct index (temp int)
+0:51 t: direct index for structure (temp 4-component vector of int)
+0:51 'f' (temp structure{temp 4-component vector of int t})
+0:51 Constant:
+0:51 0 (const int)
+0:51 Constant:
+0:51 1 (const int)
+0:57 move second child to first child (temp float)
+0:57 'ret' (temp float)
+0:57 Convert int to float (temp float)
+0:57 Comma (global int)
+0:57 move second child to first child (temp int)
+0:57 'tempReturn' (global int)
+0:57 Function Call: foo2(f1;vf3;i1; (global int)
+0:57 Constant:
+0:57 4.000000
+0:57 Constant:
+0:57 1.000000
+0:57 2.000000
+0:57 3.000000
+0:57 'tempArg' (temp int)
+0:57 move second child to first child (temp float)
+0:57 'arg' (temp float)
+0:57 Convert int to float (temp float)
+0:57 'tempArg' (temp int)
+0:57 'tempReturn' (global int)
+0:58 add second child into first child (temp int)
+0:58 'color' (temp int)
+0:58 Convert float to int (temp int)
+0:58 add (temp float)
+0:58 'ret' (temp float)
+0:58 'arg' (temp float)
+0:60 add second child into first child (temp int)
+0:60 'color' (temp int)
+0:60 Function Call: foo3( (global int)
+0:62 move second child to first child (temp 4-component vector of float)
+0:62 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:62 Construct vec4 (temp 4-component vector of float)
+0:62 Convert int to float (temp float)
+0:62 'color' (temp int)
+0:66 Function Definition: aggCall( (global void)
+0:66 Function Parameters:
+0:? Sequence
+0:69 Function Call: m(vf2; (global 3-component vector of float)
+0:69 Convert int to float (temp 2-component vector of float)
+0:69 Construct ivec2 (temp 2-component vector of int)
+0:69 Convert float to int (temp int)
+0:69 'F' (temp float)
+0:? Linker Objects
+0:? 'u' (uniform float)
+
+
+Linked fragment stage:
+
+
+Shader version: 400
+0:? Sequence
+0:5 Function Definition: foo(i1;i1;i1;i1;i1;i1; (global int)
+0:5 Function Parameters:
+0:5 'a' (in int)
+0:5 'b' (const (read only) int)
+0:5 'c' (in int)
+0:5 'd' (const (read only) int)
+0:5 'e' (out int)
+0:5 'f' (inout int)
+0:7 Sequence
+0:7 Sequence
+0:7 move second child to first child (temp int)
+0:7 'sum' (temp int)
+0:7 add (temp int)
+0:7 add (temp int)
+0:7 add (temp int)
+0:7 add (temp int)
+0:7 'a' (in int)
+0:7 'b' (const (read only) int)
+0:7 'c' (in int)
+0:7 'd' (const (read only) int)
+0:7 'f' (inout int)
+0:10 multiply second child into first child (temp int)
+0:10 'a' (in int)
+0:10 Constant:
+0:10 64 (const int)
+0:12 multiply second child into first child (temp int)
+0:12 'c' (in int)
+0:12 Constant:
+0:12 64 (const int)
+0:14 move second child to first child (temp int)
+0:14 'e' (out int)
+0:14 Constant:
+0:14 1024 (const int)
+0:15 multiply second child into first child (temp int)
+0:15 'f' (inout int)
+0:15 Constant:
+0:15 64 (const int)
+0:17 add second child into first child (temp int)
+0:17 'sum' (temp int)
+0:17 add (temp int)
+0:17 add (temp int)
+0:17 add (temp int)
+0:17 add (temp int)
+0:17 add (temp int)
+0:17 'a' (in int)
+0:17 component-wise multiply (temp int)
+0:17 Constant:
+0:17 64 (const int)
+0:17 'b' (const (read only) int)
+0:17 'c' (in int)
+0:17 component-wise multiply (temp int)
+0:17 Constant:
+0:17 64 (const int)
+0:17 'd' (const (read only) int)
+0:17 'e' (out int)
+0:17 'f' (inout int)
+0:20 Branch: Return with expression
+0:20 'sum' (temp int)
+0:23 Function Definition: foo2(f1;vf3;i1; (global int)
+0:23 Function Parameters:
+0:23 'a' (in float)
+0:23 'b' (in 3-component vector of float)
+0:23 'r' (out int)
+0:25 Sequence
+0:25 move second child to first child (temp int)
+0:25 'r' (out int)
+0:25 Convert float to int (temp int)
+0:25 component-wise multiply (temp float)
+0:25 Constant:
+0:25 3.000000
+0:25 'a' (in float)
+0:26 Branch: Return with expression
+0:26 Convert float to int (temp int)
+0:26 component-wise multiply (temp float)
+0:26 Constant:
+0:26 5.000000
+0:26 direct index (temp float)
+0:26 'b' (in 3-component vector of float)
+0:26 Constant:
+0:26 1 (const int)
+0:29 Function Definition: foo3( (global int)
+0:29 Function Parameters:
+0:31 Sequence
+0:31 Test condition and select (temp void)
+0:31 Condition
+0:31 Compare Greater Than (temp bool)
+0:31 'u' (uniform float)
+0:31 Constant:
+0:31 3.200000
+0:31 true case
+0:32 Sequence
+0:32 Branch: Kill
+0:33 Branch: Return with expression
+0:33 Constant:
+0:33 1000000 (const int)
+0:36 Branch: Return with expression
+0:36 Constant:
+0:36 2000000 (const int)
+0:39 Function Definition: main( (global void)
+0:39 Function Parameters:
+0:? Sequence
+0:42 Sequence
+0:42 move second child to first child (temp int)
+0:42 't' (temp int)
+0:42 Constant:
+0:42 2 (const int)
+0:46 move second child to first child (temp int)
+0:46 direct index (temp int)
+0:46 t: direct index for structure (temp 4-component vector of int)
+0:46 'f' (temp structure{temp 4-component vector of int t})
+0:46 Constant:
+0:46 0 (const int)
+0:46 Constant:
+0:46 1 (const int)
+0:46 Constant:
+0:46 32 (const int)
+0:49 Sequence
+0:49 move second child to first child (temp int)
+0:49 'color' (temp int)
+0:49 Function Call: foo(i1;i1;i1;i1;i1;i1; (global int)
+0:49 Constant:
+0:49 1 (const int)
+0:49 Constant:
+0:49 2 (const int)
+0:49 add (temp int)
+0:49 't' (temp int)
+0:49 't' (temp int)
+0:49 Constant:
+0:49 8 (const int)
+0:49 'e' (temp int)
+0:49 direct index (temp int)
+0:49 t: direct index for structure (temp 4-component vector of int)
+0:49 'f' (temp structure{temp 4-component vector of int t})
+0:49 Constant:
+0:49 0 (const int)
+0:49 Constant:
+0:49 1 (const int)
+0:51 add second child into first child (temp int)
+0:51 'color' (temp int)
+0:51 component-wise multiply (temp int)
+0:51 Constant:
+0:51 128 (const int)
+0:51 add (temp int)
+0:51 'e' (temp int)
+0:51 direct index (temp int)
+0:51 t: direct index for structure (temp 4-component vector of int)
+0:51 'f' (temp structure{temp 4-component vector of int t})
+0:51 Constant:
+0:51 0 (const int)
+0:51 Constant:
+0:51 1 (const int)
+0:57 move second child to first child (temp float)
+0:57 'ret' (temp float)
+0:57 Convert int to float (temp float)
+0:57 Comma (global int)
+0:57 move second child to first child (temp int)
+0:57 'tempReturn' (global int)
+0:57 Function Call: foo2(f1;vf3;i1; (global int)
+0:57 Constant:
+0:57 4.000000
+0:57 Constant:
+0:57 1.000000
+0:57 2.000000
+0:57 3.000000
+0:57 'tempArg' (temp int)
+0:57 move second child to first child (temp float)
+0:57 'arg' (temp float)
+0:57 Convert int to float (temp float)
+0:57 'tempArg' (temp int)
+0:57 'tempReturn' (global int)
+0:58 add second child into first child (temp int)
+0:58 'color' (temp int)
+0:58 Convert float to int (temp int)
+0:58 add (temp float)
+0:58 'ret' (temp float)
+0:58 'arg' (temp float)
+0:60 add second child into first child (temp int)
+0:60 'color' (temp int)
+0:60 Function Call: foo3( (global int)
+0:62 move second child to first child (temp 4-component vector of float)
+0:62 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:62 Construct vec4 (temp 4-component vector of float)
+0:62 Convert int to float (temp float)
+0:62 'color' (temp int)
+0:66 Function Definition: aggCall( (global void)
+0:66 Function Parameters:
+0:? Sequence
+0:69 Function Call: m(vf2; (global 3-component vector of float)
+0:69 Convert int to float (temp 2-component vector of float)
+0:69 Construct ivec2 (temp 2-component vector of int)
+0:69 Convert float to int (temp int)
+0:69 'F' (temp float)
+0:? Linker Objects
+0:? 'u' (uniform float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/hlsl.assoc.frag.out b/chromium/third_party/glslang/src/Test/baseResults/hlsl.assoc.frag.out
new file mode 100755
index 00000000000..a027a62c617
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/hlsl.assoc.frag.out
@@ -0,0 +1,113 @@
+hlsl.assoc.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:12 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (temp 4-component vector of float)
+0:8 Function Parameters:
+0:8 'a1' (temp 4-component vector of float)
+0:8 'a2' (temp 4-component vector of float)
+0:8 'a3' (temp 4-component vector of float)
+0:8 'a4' (temp 4-component vector of float)
+0:8 'a5' (temp 4-component vector of float)
+0:? Sequence
+0:9 move second child to first child (temp 4-component vector of float)
+0:9 'a1' (temp 4-component vector of float)
+0:9 move second child to first child (temp 4-component vector of float)
+0:9 'a2' (temp 4-component vector of float)
+0:9 move second child to first child (temp 4-component vector of float)
+0:9 'a3' (temp 4-component vector of float)
+0:9 move second child to first child (temp 4-component vector of float)
+0:9 'a4' (temp 4-component vector of float)
+0:9 'a5' (temp 4-component vector of float)
+0:10 Branch: Return with expression
+0:10 add (temp 4-component vector of float)
+0:10 add (temp 4-component vector of float)
+0:10 add (temp 4-component vector of float)
+0:10 'a1' (temp 4-component vector of float)
+0:10 'a2' (temp 4-component vector of float)
+0:10 add (temp 4-component vector of float)
+0:10 'a3' (temp 4-component vector of float)
+0:10 'a4' (temp 4-component vector of float)
+0:10 'a5' (temp 4-component vector of float)
+0:? Linker Objects
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:12 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (temp 4-component vector of float)
+0:8 Function Parameters:
+0:8 'a1' (temp 4-component vector of float)
+0:8 'a2' (temp 4-component vector of float)
+0:8 'a3' (temp 4-component vector of float)
+0:8 'a4' (temp 4-component vector of float)
+0:8 'a5' (temp 4-component vector of float)
+0:? Sequence
+0:9 move second child to first child (temp 4-component vector of float)
+0:9 'a1' (temp 4-component vector of float)
+0:9 move second child to first child (temp 4-component vector of float)
+0:9 'a2' (temp 4-component vector of float)
+0:9 move second child to first child (temp 4-component vector of float)
+0:9 'a3' (temp 4-component vector of float)
+0:9 move second child to first child (temp 4-component vector of float)
+0:9 'a4' (temp 4-component vector of float)
+0:9 'a5' (temp 4-component vector of float)
+0:10 Branch: Return with expression
+0:10 add (temp 4-component vector of float)
+0:10 add (temp 4-component vector of float)
+0:10 add (temp 4-component vector of float)
+0:10 'a1' (temp 4-component vector of float)
+0:10 'a2' (temp 4-component vector of float)
+0:10 add (temp 4-component vector of float)
+0:10 'a3' (temp 4-component vector of float)
+0:10 'a4' (temp 4-component vector of float)
+0:10 'a5' (temp 4-component vector of float)
+0:? Linker Objects
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 25
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "PixelShaderFunction"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "PixelShaderFunction"
+ Name 9 "a1"
+ Name 10 "a2"
+ Name 11 "a3"
+ Name 12 "a4"
+ Name 13 "a5"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+4(PixelShaderFunction): 2 Function None 3
+ 5: Label
+ 9(a1): 8(ptr) Variable Function
+ 10(a2): 8(ptr) Variable Function
+ 11(a3): 8(ptr) Variable Function
+ 12(a4): 8(ptr) Variable Function
+ 13(a5): 8(ptr) Variable Function
+ 14: 7(fvec4) Load 13(a5)
+ Store 12(a4) 14
+ Store 11(a3) 14
+ Store 10(a2) 14
+ Store 9(a1) 14
+ 15: 7(fvec4) Load 9(a1)
+ 16: 7(fvec4) Load 10(a2)
+ 17: 7(fvec4) FAdd 15 16
+ 18: 7(fvec4) Load 11(a3)
+ 19: 7(fvec4) Load 12(a4)
+ 20: 7(fvec4) FAdd 18 19
+ 21: 7(fvec4) FAdd 17 20
+ 22: 7(fvec4) Load 13(a5)
+ 23: 7(fvec4) FAdd 21 22
+ ReturnValue 23
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/hlsl.attribute.frag.out b/chromium/third_party/glslang/src/Test/baseResults/hlsl.attribute.frag.out
new file mode 100755
index 00000000000..6ee4a24659c
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/hlsl.attribute.frag.out
@@ -0,0 +1,57 @@
+hlsl.attribute.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:14 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:2 Function Parameters:
+0:2 'input' (temp 4-component vector of float)
+0:? Sequence
+0:11 Test condition and select (temp void)
+0:11 Condition
+0:11 Constant:
+0:11 0 (const int)
+0:11 true case is null
+0:? Linker Objects
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:14 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:2 Function Parameters:
+0:2 'input' (temp 4-component vector of float)
+0:? Sequence
+0:11 Test condition and select (temp void)
+0:11 Condition
+0:11 Constant:
+0:11 0 (const int)
+0:11 true case is null
+0:? Linker Objects
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 10
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "PixelShaderFunction"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "PixelShaderFunction"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: 6(int) Constant 0
+4(PixelShaderFunction): 2 Function None 3
+ 5: Label
+ SelectionMerge 9 None
+ BranchConditional 7 8 9
+ 8: Label
+ Branch 9
+ 9: Label
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/hlsl.cast.frag.out b/chromium/third_party/glslang/src/Test/baseResults/hlsl.cast.frag.out
new file mode 100755
index 00000000000..1e689788774
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/hlsl.cast.frag.out
@@ -0,0 +1,86 @@
+hlsl.cast.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:5 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:2 Function Parameters:
+0:2 'input' (temp 4-component vector of float)
+0:? Sequence
+0:3 Branch: Return with expression
+0:3 add (temp 4-component vector of float)
+0:3 add (temp 4-component vector of float)
+0:3 Construct vec4 (temp 4-component vector of float)
+0:3 'input' (temp 4-component vector of float)
+0:3 Convert int to float (temp 4-component vector of float)
+0:3 Convert float to int (temp 4-component vector of int)
+0:3 'input' (temp 4-component vector of float)
+0:3 Constant:
+0:3 1.198000
+0:3 1.198000
+0:3 1.198000
+0:3 1.198000
+0:? Linker Objects
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:5 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:2 Function Parameters:
+0:2 'input' (temp 4-component vector of float)
+0:? Sequence
+0:3 Branch: Return with expression
+0:3 add (temp 4-component vector of float)
+0:3 add (temp 4-component vector of float)
+0:3 Construct vec4 (temp 4-component vector of float)
+0:3 'input' (temp 4-component vector of float)
+0:3 Convert int to float (temp 4-component vector of float)
+0:3 Convert float to int (temp 4-component vector of int)
+0:3 'input' (temp 4-component vector of float)
+0:3 Constant:
+0:3 1.198000
+0:3 1.198000
+0:3 1.198000
+0:3 1.198000
+0:? Linker Objects
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 26
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "PixelShaderFunction"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "PixelShaderFunction"
+ Name 9 "input"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+ 17: TypeInt 32 1
+ 18: TypeVector 17(int) 4
+ 22: 6(float) Constant 1067014160
+ 23: 7(fvec4) ConstantComposite 22 22 22 22
+4(PixelShaderFunction): 2 Function None 3
+ 5: Label
+ 9(input): 8(ptr) Variable Function
+ 10: 7(fvec4) Load 9(input)
+ 11: 6(float) CompositeExtract 10 0
+ 12: 6(float) CompositeExtract 10 1
+ 13: 6(float) CompositeExtract 10 2
+ 14: 6(float) CompositeExtract 10 3
+ 15: 7(fvec4) CompositeConstruct 11 12 13 14
+ 16: 7(fvec4) Load 9(input)
+ 19: 18(ivec4) ConvertFToS 16
+ 20: 7(fvec4) ConvertSToF 19
+ 21: 7(fvec4) FAdd 15 20
+ 24: 7(fvec4) FAdd 21 23
+ ReturnValue 24
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/hlsl.doLoop.frag.out b/chromium/third_party/glslang/src/Test/baseResults/hlsl.doLoop.frag.out
new file mode 100755
index 00000000000..eed2d9136f5
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/hlsl.doLoop.frag.out
@@ -0,0 +1,116 @@
+hlsl.doLoop.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:7 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:2 Function Parameters:
+0:2 'input' (temp 4-component vector of float)
+0:? Sequence
+0:3 Loop with condition not tested first
+0:3 Loop Condition
+0:3 Constant:
+0:3 false (const bool)
+0:3 No loop body
+0:4 Loop with condition not tested first
+0:4 Loop Condition
+0:4 Constant:
+0:4 false (const bool)
+0:4 No loop body
+0:5 Loop with condition not tested first
+0:5 Loop Condition
+0:5 Compare Equal (temp bool)
+0:5 'input' (temp 4-component vector of float)
+0:5 'input' (temp 4-component vector of float)
+0:5 Loop Body
+0:5 Branch: Return with expression
+0:5 'input' (temp 4-component vector of float)
+0:? Linker Objects
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:7 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:2 Function Parameters:
+0:2 'input' (temp 4-component vector of float)
+0:? Sequence
+0:3 Loop with condition not tested first
+0:3 Loop Condition
+0:3 Constant:
+0:3 false (const bool)
+0:3 No loop body
+0:4 Loop with condition not tested first
+0:4 Loop Condition
+0:4 Constant:
+0:4 false (const bool)
+0:4 No loop body
+0:5 Loop with condition not tested first
+0:5 Loop Condition
+0:5 Compare Equal (temp bool)
+0:5 'input' (temp 4-component vector of float)
+0:5 'input' (temp 4-component vector of float)
+0:5 Loop Body
+0:5 Branch: Return with expression
+0:5 'input' (temp 4-component vector of float)
+0:? Linker Objects
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 31
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "PixelShaderFunction"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "PixelShaderFunction"
+ Name 23 "input"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 10: TypeBool
+ 11: 10(bool) ConstantFalse
+ 20: TypeFloat 32
+ 21: TypeVector 20(float) 4
+ 22: TypePointer Function 21(fvec4)
+ 28: TypeVector 10(bool) 4
+4(PixelShaderFunction): 2 Function None 3
+ 5: Label
+ 23(input): 22(ptr) Variable Function
+ Branch 6
+ 6: Label
+ LoopMerge 8 9 None
+ Branch 7
+ 7: Label
+ Branch 9
+ 9: Label
+ BranchConditional 11 6 8
+ 8: Label
+ Branch 12
+ 12: Label
+ LoopMerge 14 15 None
+ Branch 13
+ 13: Label
+ Branch 15
+ 15: Label
+ BranchConditional 11 12 14
+ 14: Label
+ Branch 16
+ 16: Label
+ LoopMerge 18 19 None
+ Branch 17
+ 17: Label
+ 24: 21(fvec4) Load 23(input)
+ ReturnValue 24
+ 19: Label
+ 26: 21(fvec4) Load 23(input)
+ 27: 21(fvec4) Load 23(input)
+ 29: 28(bvec4) FOrdEqual 26 27
+ 30: 10(bool) All 29
+ BranchConditional 30 16 18
+ 18: Label
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/hlsl.float1.frag.out b/chromium/third_party/glslang/src/Test/baseResults/hlsl.float1.frag.out
new file mode 100755
index 00000000000..4cf0a0d1ff9
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/hlsl.float1.frag.out
@@ -0,0 +1,100 @@
+hlsl.float1.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:1 move second child to first child (temp 1-component vector of float)
+0:1 'f1' (temp 1-component vector of float)
+0:1 Constant:
+0:1 1.000000
+0:2 move second child to first child (temp float)
+0:2 'scalar' (temp float)
+0:2 Constant:
+0:2 2.000000
+0:8 Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float)
+0:5 Function Parameters:
+0:5 'inFloat1' (temp 1-component vector of float)
+0:5 'inScalar' (temp float)
+0:? Sequence
+0:6 Branch: Return with expression
+0:6 add (temp 1-component vector of float)
+0:6 vector-scale (temp 1-component vector of float)
+0:6 'f1' (temp 1-component vector of float)
+0:6 'scalar' (temp float)
+0:6 vector-scale (temp 1-component vector of float)
+0:6 'inFloat1' (temp 1-component vector of float)
+0:6 'inScalar' (temp float)
+0:? Linker Objects
+0:? 'f1' (temp 1-component vector of float)
+0:? 'scalar' (temp float)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:1 move second child to first child (temp 1-component vector of float)
+0:1 'f1' (temp 1-component vector of float)
+0:1 Constant:
+0:1 1.000000
+0:2 move second child to first child (temp float)
+0:2 'scalar' (temp float)
+0:2 Constant:
+0:2 2.000000
+0:8 Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float)
+0:5 Function Parameters:
+0:5 'inFloat1' (temp 1-component vector of float)
+0:5 'inScalar' (temp float)
+0:? Sequence
+0:6 Branch: Return with expression
+0:6 add (temp 1-component vector of float)
+0:6 vector-scale (temp 1-component vector of float)
+0:6 'f1' (temp 1-component vector of float)
+0:6 'scalar' (temp float)
+0:6 vector-scale (temp 1-component vector of float)
+0:6 'inFloat1' (temp 1-component vector of float)
+0:6 'inScalar' (temp float)
+0:? Linker Objects
+0:? 'f1' (temp 1-component vector of float)
+0:? 'scalar' (temp float)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 24
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "PixelShaderFunction"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "PixelShaderFunction"
+ Name 11 "ShaderFunction(vf1;f1;"
+ Name 9 "inFloat1"
+ Name 10 "inScalar"
+ Name 13 "f1"
+ Name 15 "scalar"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypePointer Function 6(float)
+ 8: TypeFunction 6(float) 7(ptr) 7(ptr)
+4(PixelShaderFunction): 2 Function None 3
+ 5: Label
+ FunctionEnd
+11(ShaderFunction(vf1;f1;): 6(float) Function None 8
+ 9(inFloat1): 7(ptr) FunctionParameter
+ 10(inScalar): 7(ptr) FunctionParameter
+ 12: Label
+ 13(f1): 7(ptr) Variable Function
+ 15(scalar): 7(ptr) Variable Function
+ 14: 6(float) Load 13(f1)
+ 16: 6(float) Load 15(scalar)
+ 17: 6(float) IMul 14 16
+ 18: 6(float) Load 9(inFloat1)
+ 19: 6(float) Load 10(inScalar)
+ 20: 6(float) IMul 18 19
+ 21: 6(float) FAdd 17 20
+ ReturnValue 21
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/hlsl.float4.frag.out b/chromium/third_party/glslang/src/Test/baseResults/hlsl.float4.frag.out
new file mode 100755
index 00000000000..2ea803f1a8d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/hlsl.float4.frag.out
@@ -0,0 +1,99 @@
+hlsl.float4.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:1 move second child to first child (temp 4-component vector of float)
+0:1 'AmbientColor' (temp 4-component vector of float)
+0:? Constant:
+0:? 1.000000
+0:? 0.500000
+0:? 0.000000
+0:? 1.000000
+0:12 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float)
+0:9 Function Parameters:
+0:9 'input' (temp 4-component vector of float)
+0:? Sequence
+0:10 Branch: Return with expression
+0:10 component-wise multiply (temp 4-component vector of float)
+0:10 'input' (temp 4-component vector of float)
+0:10 'AmbientColor' (temp 4-component vector of float)
+0:? Linker Objects
+0:? 'AmbientColor' (temp 4-component vector of float)
+0:? 'ff1' (temp bool Face)
+0:? 'ff2' (temp 4-component vector of float)
+0:? 'ff3' (temp 4-component vector of float)
+0:? 'ff4' (temp 4-component vector of float FragCoord)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:1 move second child to first child (temp 4-component vector of float)
+0:1 'AmbientColor' (temp 4-component vector of float)
+0:? Constant:
+0:? 1.000000
+0:? 0.500000
+0:? 0.000000
+0:? 1.000000
+0:12 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float)
+0:9 Function Parameters:
+0:9 'input' (temp 4-component vector of float)
+0:? Sequence
+0:10 Branch: Return with expression
+0:10 component-wise multiply (temp 4-component vector of float)
+0:10 'input' (temp 4-component vector of float)
+0:10 'AmbientColor' (temp 4-component vector of float)
+0:? Linker Objects
+0:? 'AmbientColor' (temp 4-component vector of float)
+0:? 'ff1' (temp bool Face)
+0:? 'ff2' (temp 4-component vector of float)
+0:? 'ff3' (temp 4-component vector of float)
+0:? 'ff4' (temp 4-component vector of float FragCoord)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 25
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "PixelShaderFunction"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "PixelShaderFunction"
+ Name 11 "ShaderFunction(vf4;"
+ Name 10 "input"
+ Name 14 "AmbientColor"
+ Name 21 "ff1"
+ Name 22 "ff2"
+ Name 23 "ff3"
+ Name 24 "ff4"
+ Decorate 21(ff1) BuiltIn FrontFacing
+ Decorate 24(ff4) BuiltIn FragCoord
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+ 9: TypeFunction 7(fvec4) 8(ptr)
+ 19: TypeBool
+ 20: TypePointer Function 19(bool)
+4(PixelShaderFunction): 2 Function None 3
+ 5: Label
+ FunctionEnd
+11(ShaderFunction(vf4;): 7(fvec4) Function None 9
+ 10(input): 8(ptr) FunctionParameter
+ 12: Label
+14(AmbientColor): 8(ptr) Variable Function
+ 21(ff1): 20(ptr) Variable Function
+ 22(ff2): 8(ptr) Variable Function
+ 23(ff3): 8(ptr) Variable Function
+ 24(ff4): 8(ptr) Variable Function
+ 13: 7(fvec4) Load 10(input)
+ 15: 7(fvec4) Load 14(AmbientColor)
+ 16: 7(fvec4) FMul 13 15
+ ReturnValue 16
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/hlsl.forLoop.frag.out b/chromium/third_party/glslang/src/Test/baseResults/hlsl.forLoop.frag.out
new file mode 100755
index 00000000000..2e654e19188
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/hlsl.forLoop.frag.out
@@ -0,0 +1,220 @@
+hlsl.forLoop.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:9 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:2 Function Parameters:
+0:2 'input' (temp 4-component vector of float)
+0:? Sequence
+0:? Sequence
+0:3 Loop with condition tested first
+0:3 No loop condition
+0:3 No loop body
+0:4 Sequence
+0:4 Pre-Increment (temp 4-component vector of float)
+0:4 'input' (temp 4-component vector of float)
+0:4 Loop with condition tested first
+0:4 No loop condition
+0:4 No loop body
+0:? Sequence
+0:5 Loop with condition tested first
+0:5 Loop Condition
+0:5 Compare Not Equal (temp bool)
+0:5 'input' (temp 4-component vector of float)
+0:5 'input' (temp 4-component vector of float)
+0:5 No loop body
+0:? Sequence
+0:6 Loop with condition tested first
+0:6 Loop Condition
+0:6 Compare Not Equal (temp bool)
+0:6 'input' (temp 4-component vector of float)
+0:6 'input' (temp 4-component vector of float)
+0:6 Loop Body
+0:? Sequence
+0:6 Branch: Return with expression
+0:6 Negate value (temp 4-component vector of float)
+0:6 'input' (temp 4-component vector of float)
+0:7 Sequence
+0:7 Pre-Decrement (temp 4-component vector of float)
+0:7 'input' (temp 4-component vector of float)
+0:7 Loop with condition tested first
+0:7 Loop Condition
+0:7 Compare Not Equal (temp bool)
+0:7 'input' (temp 4-component vector of float)
+0:7 'input' (temp 4-component vector of float)
+0:7 Loop Body
+0:? Sequence
+0:7 Branch: Return with expression
+0:7 Negate value (temp 4-component vector of float)
+0:7 'input' (temp 4-component vector of float)
+0:7 Loop Terminal Expression
+0:7 add second child into first child (temp 4-component vector of float)
+0:7 'input' (temp 4-component vector of float)
+0:7 Constant:
+0:7 2.000000
+0:? Linker Objects
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:9 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:2 Function Parameters:
+0:2 'input' (temp 4-component vector of float)
+0:? Sequence
+0:? Sequence
+0:3 Loop with condition tested first
+0:3 No loop condition
+0:3 No loop body
+0:4 Sequence
+0:4 Pre-Increment (temp 4-component vector of float)
+0:4 'input' (temp 4-component vector of float)
+0:4 Loop with condition tested first
+0:4 No loop condition
+0:4 No loop body
+0:? Sequence
+0:5 Loop with condition tested first
+0:5 Loop Condition
+0:5 Compare Not Equal (temp bool)
+0:5 'input' (temp 4-component vector of float)
+0:5 'input' (temp 4-component vector of float)
+0:5 No loop body
+0:? Sequence
+0:6 Loop with condition tested first
+0:6 Loop Condition
+0:6 Compare Not Equal (temp bool)
+0:6 'input' (temp 4-component vector of float)
+0:6 'input' (temp 4-component vector of float)
+0:6 Loop Body
+0:? Sequence
+0:6 Branch: Return with expression
+0:6 Negate value (temp 4-component vector of float)
+0:6 'input' (temp 4-component vector of float)
+0:7 Sequence
+0:7 Pre-Decrement (temp 4-component vector of float)
+0:7 'input' (temp 4-component vector of float)
+0:7 Loop with condition tested first
+0:7 Loop Condition
+0:7 Compare Not Equal (temp bool)
+0:7 'input' (temp 4-component vector of float)
+0:7 'input' (temp 4-component vector of float)
+0:7 Loop Body
+0:? Sequence
+0:7 Branch: Return with expression
+0:7 Negate value (temp 4-component vector of float)
+0:7 'input' (temp 4-component vector of float)
+0:7 Loop Terminal Expression
+0:7 add second child into first child (temp 4-component vector of float)
+0:7 'input' (temp 4-component vector of float)
+0:7 Constant:
+0:7 2.000000
+0:? Linker Objects
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 64
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "PixelShaderFunction"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "PixelShaderFunction"
+ Name 13 "input"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 10: TypeFloat 32
+ 11: TypeVector 10(float) 4
+ 12: TypePointer Function 11(fvec4)
+ 15: 10(float) Constant 1065353216
+ 29: TypeBool
+ 30: TypeVector 29(bool) 4
+ 60: 10(float) Constant 1073741824
+4(PixelShaderFunction): 2 Function None 3
+ 5: Label
+ 13(input): 12(ptr) Variable Function
+ Branch 6
+ 6: Label
+ LoopMerge 8 9 None
+ Branch 7
+ 7: Label
+ Branch 9
+ 9: Label
+ Branch 6
+ 8: Label
+ 14: 11(fvec4) Load 13(input)
+ 16: 11(fvec4) CompositeConstruct 15 15 15 15
+ 17: 11(fvec4) FAdd 14 16
+ Store 13(input) 17
+ Branch 18
+ 18: Label
+ LoopMerge 20 21 None
+ Branch 19
+ 19: Label
+ Branch 21
+ 21: Label
+ Branch 18
+ 20: Label
+ Branch 22
+ 22: Label
+ LoopMerge 24 25 None
+ Branch 26
+ 26: Label
+ 27: 11(fvec4) Load 13(input)
+ 28: 11(fvec4) Load 13(input)
+ 31: 30(bvec4) FOrdNotEqual 27 28
+ 32: 29(bool) Any 31
+ BranchConditional 32 23 24
+ 23: Label
+ Branch 25
+ 25: Label
+ Branch 22
+ 24: Label
+ Branch 33
+ 33: Label
+ LoopMerge 35 36 None
+ Branch 37
+ 37: Label
+ 38: 11(fvec4) Load 13(input)
+ 39: 11(fvec4) Load 13(input)
+ 40: 30(bvec4) FOrdNotEqual 38 39
+ 41: 29(bool) Any 40
+ BranchConditional 41 34 35
+ 34: Label
+ 42: 11(fvec4) Load 13(input)
+ 43: 11(fvec4) FNegate 42
+ ReturnValue 43
+ 36: Label
+ Branch 33
+ 35: Label
+ 45: 11(fvec4) Load 13(input)
+ 46: 11(fvec4) CompositeConstruct 15 15 15 15
+ 47: 11(fvec4) FSub 45 46
+ Store 13(input) 47
+ Branch 48
+ 48: Label
+ LoopMerge 50 51 None
+ Branch 52
+ 52: Label
+ 53: 11(fvec4) Load 13(input)
+ 54: 11(fvec4) Load 13(input)
+ 55: 30(bvec4) FOrdNotEqual 53 54
+ 56: 29(bool) Any 55
+ BranchConditional 56 49 50
+ 49: Label
+ 57: 11(fvec4) Load 13(input)
+ 58: 11(fvec4) FNegate 57
+ ReturnValue 58
+ 51: Label
+ 61: 11(fvec4) Load 13(input)
+ 62: 11(fvec4) CompositeConstruct 60 60 60 60
+ 63: 11(fvec4) FAdd 61 62
+ Store 13(input) 63
+ Branch 48
+ 50: Label
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/hlsl.frag.out b/chromium/third_party/glslang/src/Test/baseResults/hlsl.frag.out
new file mode 100644
index 00000000000..cfed9051fba
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/hlsl.frag.out
@@ -0,0 +1,160 @@
+hlsl.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:1 move second child to first child (temp 4-component vector of float)
+0:1 'AmbientColor' (temp 4-component vector of float)
+0:? Constant:
+0:? 1.000000
+0:? 0.500000
+0:? 0.000000
+0:? 1.000000
+0:2 move second child to first child (temp float)
+0:2 'AmbientIntensity' (temp float)
+0:2 Constant:
+0:2 0.100000
+0:13 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:5 Function Parameters:
+0:5 'input' (temp 4-component vector of float)
+0:? Sequence
+0:6 Branch: Return with expression
+0:6 add (temp 4-component vector of float)
+0:6 vector-scale (temp 4-component vector of float)
+0:6 'input' (temp 4-component vector of float)
+0:6 'AmbientIntensity' (temp float)
+0:6 'AmbientColor' (temp 4-component vector of float)
+0:7 Branch: Return with expression
+0:7 add (temp 4-component vector of float)
+0:7 component-wise multiply (temp 4-component vector of float)
+0:7 'input' (temp 4-component vector of float)
+0:7 'input' (temp 4-component vector of float)
+0:7 component-wise multiply (temp 4-component vector of float)
+0:7 'input' (temp 4-component vector of float)
+0:7 'input' (temp 4-component vector of float)
+0:8 Branch: Return with expression
+0:8 add (temp 4-component vector of float)
+0:8 add (temp 4-component vector of float)
+0:8 'input' (temp 4-component vector of float)
+0:8 component-wise multiply (temp 4-component vector of float)
+0:8 'input' (temp 4-component vector of float)
+0:8 'input' (temp 4-component vector of float)
+0:8 'input' (temp 4-component vector of float)
+0:9 Branch: Return with expression
+0:9 component-wise multiply (temp 4-component vector of float)
+0:9 Pre-Increment (temp 4-component vector of float)
+0:9 'input' (temp 4-component vector of float)
+0:9 Negate value (temp 4-component vector of float)
+0:9 Negate value (temp 4-component vector of float)
+0:9 Pre-Decrement (temp 4-component vector of float)
+0:9 'input' (temp 4-component vector of float)
+0:10 Branch: Return with expression
+0:10 add (temp 4-component vector of float)
+0:10 Post-Increment (temp 4-component vector of float)
+0:10 'input' (temp 4-component vector of float)
+0:10 Pre-Increment (temp 4-component vector of float)
+0:10 'input' (temp 4-component vector of float)
+0:11 Branch: Return with expression
+0:11 sine (global 4-component vector of float)
+0:11 'input' (temp 4-component vector of float)
+0:? Linker Objects
+0:? 'AmbientColor' (temp 4-component vector of float)
+0:? 'AmbientIntensity' (temp float)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:1 move second child to first child (temp 4-component vector of float)
+0:1 'AmbientColor' (temp 4-component vector of float)
+0:? Constant:
+0:? 1.000000
+0:? 0.500000
+0:? 0.000000
+0:? 1.000000
+0:2 move second child to first child (temp float)
+0:2 'AmbientIntensity' (temp float)
+0:2 Constant:
+0:2 0.100000
+0:13 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:5 Function Parameters:
+0:5 'input' (temp 4-component vector of float)
+0:? Sequence
+0:6 Branch: Return with expression
+0:6 add (temp 4-component vector of float)
+0:6 vector-scale (temp 4-component vector of float)
+0:6 'input' (temp 4-component vector of float)
+0:6 'AmbientIntensity' (temp float)
+0:6 'AmbientColor' (temp 4-component vector of float)
+0:7 Branch: Return with expression
+0:7 add (temp 4-component vector of float)
+0:7 component-wise multiply (temp 4-component vector of float)
+0:7 'input' (temp 4-component vector of float)
+0:7 'input' (temp 4-component vector of float)
+0:7 component-wise multiply (temp 4-component vector of float)
+0:7 'input' (temp 4-component vector of float)
+0:7 'input' (temp 4-component vector of float)
+0:8 Branch: Return with expression
+0:8 add (temp 4-component vector of float)
+0:8 add (temp 4-component vector of float)
+0:8 'input' (temp 4-component vector of float)
+0:8 component-wise multiply (temp 4-component vector of float)
+0:8 'input' (temp 4-component vector of float)
+0:8 'input' (temp 4-component vector of float)
+0:8 'input' (temp 4-component vector of float)
+0:9 Branch: Return with expression
+0:9 component-wise multiply (temp 4-component vector of float)
+0:9 Pre-Increment (temp 4-component vector of float)
+0:9 'input' (temp 4-component vector of float)
+0:9 Negate value (temp 4-component vector of float)
+0:9 Negate value (temp 4-component vector of float)
+0:9 Pre-Decrement (temp 4-component vector of float)
+0:9 'input' (temp 4-component vector of float)
+0:10 Branch: Return with expression
+0:10 add (temp 4-component vector of float)
+0:10 Post-Increment (temp 4-component vector of float)
+0:10 'input' (temp 4-component vector of float)
+0:10 Pre-Increment (temp 4-component vector of float)
+0:10 'input' (temp 4-component vector of float)
+0:11 Branch: Return with expression
+0:11 sine (global 4-component vector of float)
+0:11 'input' (temp 4-component vector of float)
+0:? Linker Objects
+0:? 'AmbientColor' (temp 4-component vector of float)
+0:? 'AmbientIntensity' (temp float)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 57
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "PixelShaderFunction"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "PixelShaderFunction"
+ Name 9 "input"
+ Name 12 "AmbientIntensity"
+ Name 15 "AmbientColor"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+ 11: TypePointer Function 6(float)
+ 36: 6(float) Constant 1065353216
+4(PixelShaderFunction): 2 Function None 3
+ 5: Label
+ 9(input): 8(ptr) Variable Function
+12(AmbientIntensity): 11(ptr) Variable Function
+15(AmbientColor): 8(ptr) Variable Function
+ 10: 7(fvec4) Load 9(input)
+ 13: 6(float) Load 12(AmbientIntensity)
+ 14: 7(fvec4) VectorTimesScalar 10 13
+ 16: 7(fvec4) Load 15(AmbientColor)
+ 17: 7(fvec4) FAdd 14 16
+ ReturnValue 17
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/hlsl.if.frag.out b/chromium/third_party/glslang/src/Test/baseResults/hlsl.if.frag.out
new file mode 100755
index 00000000000..8908279bac7
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/hlsl.if.frag.out
@@ -0,0 +1,223 @@
+hlsl.if.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:29 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:2 Function Parameters:
+0:2 'input' (temp 4-component vector of float)
+0:? Sequence
+0:3 Test condition and select (temp void)
+0:3 Condition
+0:3 Compare Equal (temp bool)
+0:3 'input' (temp 4-component vector of float)
+0:3 'input' (temp 4-component vector of float)
+0:3 true case
+0:4 Branch: Return with expression
+0:4 'input' (temp 4-component vector of float)
+0:6 Test condition and select (temp void)
+0:6 Condition
+0:6 Compare Equal (temp bool)
+0:6 'input' (temp 4-component vector of float)
+0:6 'input' (temp 4-component vector of float)
+0:6 true case
+0:7 Branch: Return with expression
+0:7 'input' (temp 4-component vector of float)
+0:6 false case
+0:9 Branch: Return with expression
+0:9 Negate value (temp 4-component vector of float)
+0:9 'input' (temp 4-component vector of float)
+0:11 Test condition and select (temp void)
+0:11 Condition
+0:11 Compare Equal (temp bool)
+0:11 'input' (temp 4-component vector of float)
+0:11 'input' (temp 4-component vector of float)
+0:11 true case is null
+0:14 Test condition and select (temp void)
+0:14 Condition
+0:14 Compare Equal (temp bool)
+0:14 'input' (temp 4-component vector of float)
+0:14 'input' (temp 4-component vector of float)
+0:14 true case is null
+0:19 Test condition and select (temp void)
+0:19 Condition
+0:19 Compare Equal (temp bool)
+0:19 'input' (temp 4-component vector of float)
+0:19 'input' (temp 4-component vector of float)
+0:19 true case
+0:? Sequence
+0:20 Branch: Return with expression
+0:20 'input' (temp 4-component vector of float)
+0:23 Test condition and select (temp void)
+0:23 Condition
+0:23 Compare Equal (temp bool)
+0:23 'input' (temp 4-component vector of float)
+0:23 'input' (temp 4-component vector of float)
+0:23 true case
+0:? Sequence
+0:24 Branch: Return with expression
+0:24 'input' (temp 4-component vector of float)
+0:23 false case
+0:? Sequence
+0:26 Branch: Return with expression
+0:26 Negate value (temp 4-component vector of float)
+0:26 'input' (temp 4-component vector of float)
+0:? Linker Objects
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:29 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:2 Function Parameters:
+0:2 'input' (temp 4-component vector of float)
+0:? Sequence
+0:3 Test condition and select (temp void)
+0:3 Condition
+0:3 Compare Equal (temp bool)
+0:3 'input' (temp 4-component vector of float)
+0:3 'input' (temp 4-component vector of float)
+0:3 true case
+0:4 Branch: Return with expression
+0:4 'input' (temp 4-component vector of float)
+0:6 Test condition and select (temp void)
+0:6 Condition
+0:6 Compare Equal (temp bool)
+0:6 'input' (temp 4-component vector of float)
+0:6 'input' (temp 4-component vector of float)
+0:6 true case
+0:7 Branch: Return with expression
+0:7 'input' (temp 4-component vector of float)
+0:6 false case
+0:9 Branch: Return with expression
+0:9 Negate value (temp 4-component vector of float)
+0:9 'input' (temp 4-component vector of float)
+0:11 Test condition and select (temp void)
+0:11 Condition
+0:11 Compare Equal (temp bool)
+0:11 'input' (temp 4-component vector of float)
+0:11 'input' (temp 4-component vector of float)
+0:11 true case is null
+0:14 Test condition and select (temp void)
+0:14 Condition
+0:14 Compare Equal (temp bool)
+0:14 'input' (temp 4-component vector of float)
+0:14 'input' (temp 4-component vector of float)
+0:14 true case is null
+0:19 Test condition and select (temp void)
+0:19 Condition
+0:19 Compare Equal (temp bool)
+0:19 'input' (temp 4-component vector of float)
+0:19 'input' (temp 4-component vector of float)
+0:19 true case
+0:? Sequence
+0:20 Branch: Return with expression
+0:20 'input' (temp 4-component vector of float)
+0:23 Test condition and select (temp void)
+0:23 Condition
+0:23 Compare Equal (temp bool)
+0:23 'input' (temp 4-component vector of float)
+0:23 'input' (temp 4-component vector of float)
+0:23 true case
+0:? Sequence
+0:24 Branch: Return with expression
+0:24 'input' (temp 4-component vector of float)
+0:23 false case
+0:? Sequence
+0:26 Branch: Return with expression
+0:26 Negate value (temp 4-component vector of float)
+0:26 'input' (temp 4-component vector of float)
+0:? Linker Objects
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 64
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "PixelShaderFunction"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "PixelShaderFunction"
+ Name 9 "input"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+ 12: TypeBool
+ 13: TypeVector 12(bool) 4
+4(PixelShaderFunction): 2 Function None 3
+ 5: Label
+ 9(input): 8(ptr) Variable Function
+ 10: 7(fvec4) Load 9(input)
+ 11: 7(fvec4) Load 9(input)
+ 14: 13(bvec4) FOrdEqual 10 11
+ 15: 12(bool) All 14
+ SelectionMerge 17 None
+ BranchConditional 15 16 17
+ 16: Label
+ 18: 7(fvec4) Load 9(input)
+ ReturnValue 18
+ 17: Label
+ 20: 7(fvec4) Load 9(input)
+ 21: 7(fvec4) Load 9(input)
+ 22: 13(bvec4) FOrdEqual 20 21
+ 23: 12(bool) All 22
+ SelectionMerge 25 None
+ BranchConditional 23 24 28
+ 24: Label
+ 26: 7(fvec4) Load 9(input)
+ ReturnValue 26
+ 28: Label
+ 29: 7(fvec4) Load 9(input)
+ 30: 7(fvec4) FNegate 29
+ ReturnValue 30
+ 25: Label
+ 32: 7(fvec4) Load 9(input)
+ 33: 7(fvec4) Load 9(input)
+ 34: 13(bvec4) FOrdEqual 32 33
+ 35: 12(bool) All 34
+ SelectionMerge 37 None
+ BranchConditional 35 36 37
+ 36: Label
+ Branch 37
+ 37: Label
+ 38: 7(fvec4) Load 9(input)
+ 39: 7(fvec4) Load 9(input)
+ 40: 13(bvec4) FOrdEqual 38 39
+ 41: 12(bool) All 40
+ SelectionMerge 43 None
+ BranchConditional 41 42 43
+ 42: Label
+ Branch 43
+ 43: Label
+ 44: 7(fvec4) Load 9(input)
+ 45: 7(fvec4) Load 9(input)
+ 46: 13(bvec4) FOrdEqual 44 45
+ 47: 12(bool) All 46
+ SelectionMerge 49 None
+ BranchConditional 47 48 49
+ 48: Label
+ 50: 7(fvec4) Load 9(input)
+ ReturnValue 50
+ 49: Label
+ 52: 7(fvec4) Load 9(input)
+ 53: 7(fvec4) Load 9(input)
+ 54: 13(bvec4) FOrdEqual 52 53
+ 55: 12(bool) All 54
+ SelectionMerge 57 None
+ BranchConditional 55 56 60
+ 56: Label
+ 58: 7(fvec4) Load 9(input)
+ ReturnValue 58
+ 60: Label
+ 61: 7(fvec4) Load 9(input)
+ 62: 7(fvec4) FNegate 61
+ ReturnValue 62
+ 57: Label
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/hlsl.intrinsics.frag.out b/chromium/third_party/glslang/src/Test/baseResults/hlsl.intrinsics.frag.out
new file mode 100644
index 00000000000..e27b11a3d58
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/hlsl.intrinsics.frag.out
@@ -0,0 +1,3290 @@
+hlsl.intrinsics.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:66 Function Definition: PixelShaderFunction(f1;f1;f1; (temp float)
+0:2 Function Parameters:
+0:2 'inF0' (temp float)
+0:2 'inF1' (temp float)
+0:2 'inF2' (temp float)
+0:? Sequence
+0:3 all (global bool)
+0:3 'inF0' (temp float)
+0:4 Absolute value (global float)
+0:4 'inF0' (temp float)
+0:5 arc cosine (global float)
+0:5 'inF0' (temp float)
+0:6 any (global bool)
+0:6 'inF0' (temp float)
+0:7 arc sine (global float)
+0:7 'inF0' (temp float)
+0:8 arc tangent (global float)
+0:8 'inF0' (temp float)
+0:9 arc tangent (global float)
+0:9 'inF0' (temp float)
+0:9 'inF1' (temp float)
+0:10 Ceiling (global float)
+0:10 'inF0' (temp float)
+0:11 clamp (global float)
+0:11 'inF0' (temp float)
+0:11 'inF1' (temp float)
+0:11 'inF2' (temp float)
+0:12 Test condition and select (temp void)
+0:12 Condition
+0:12 Compare Less Than (temp bool)
+0:12 'inF0' (temp float)
+0:12 Constant:
+0:12 0.000000
+0:12 true case
+0:12 Branch: Kill
+0:13 cosine (global float)
+0:13 'inF0' (temp float)
+0:14 hyp. cosine (global float)
+0:14 'inF0' (temp float)
+0:15 bitCount (global uint)
+0:15 Constant:
+0:15 7 (const uint)
+0:16 dPdx (global float)
+0:16 'inF0' (temp float)
+0:17 dPdxCoarse (global float)
+0:17 'inF0' (temp float)
+0:18 dPdxFine (global float)
+0:18 'inF0' (temp float)
+0:19 dPdy (global float)
+0:19 'inF0' (temp float)
+0:20 dPdyCoarse (global float)
+0:20 'inF0' (temp float)
+0:21 dPdyFine (global float)
+0:21 'inF0' (temp float)
+0:22 degrees (global float)
+0:22 'inF0' (temp float)
+0:26 exp (global float)
+0:26 'inF0' (temp float)
+0:27 exp2 (global float)
+0:27 'inF0' (temp float)
+0:28 findMSB (global int)
+0:28 Constant:
+0:28 7 (const int)
+0:29 findLSB (global int)
+0:29 Constant:
+0:29 7 (const int)
+0:30 Floor (global float)
+0:30 'inF0' (temp float)
+0:32 mod (global float)
+0:32 'inF0' (temp float)
+0:32 'inF1' (temp float)
+0:33 Fraction (global float)
+0:33 'inF0' (temp float)
+0:34 frexp (global float)
+0:34 'inF0' (temp float)
+0:34 'inF1' (temp float)
+0:35 fwidth (global float)
+0:35 'inF0' (temp float)
+0:36 isinf (global bool)
+0:36 'inF0' (temp float)
+0:37 isnan (global bool)
+0:37 'inF0' (temp float)
+0:38 ldexp (global float)
+0:38 'inF0' (temp float)
+0:38 'inF1' (temp float)
+0:39 log (global float)
+0:39 'inF0' (temp float)
+0:40 component-wise multiply (temp float)
+0:40 log2 (temp float)
+0:40 'inF0' (temp float)
+0:40 Constant:
+0:40 0.301030
+0:41 log2 (global float)
+0:41 'inF0' (temp float)
+0:42 max (global float)
+0:42 'inF0' (temp float)
+0:42 'inF1' (temp float)
+0:43 min (global float)
+0:43 'inF0' (temp float)
+0:43 'inF1' (temp float)
+0:44 pow (global float)
+0:44 'inF0' (temp float)
+0:44 'inF1' (temp float)
+0:45 radians (global float)
+0:45 'inF0' (temp float)
+0:46 divide (temp float)
+0:46 Constant:
+0:46 1.000000
+0:46 'inF0' (temp float)
+0:47 bitFieldReverse (global uint)
+0:47 Constant:
+0:47 2 (const uint)
+0:48 roundEven (global float)
+0:48 'inF0' (temp float)
+0:49 inverse sqrt (global float)
+0:49 'inF0' (temp float)
+0:50 clamp (global float)
+0:50 'inF0' (temp float)
+0:50 Constant:
+0:50 0.000000
+0:50 Constant:
+0:50 1.000000
+0:51 Sign (global float)
+0:51 'inF0' (temp float)
+0:52 sine (global float)
+0:52 'inF0' (temp float)
+0:53 Sequence
+0:53 move second child to first child (temp float)
+0:53 'inF1' (temp float)
+0:53 sine (temp float)
+0:53 'inF0' (temp float)
+0:53 move second child to first child (temp float)
+0:53 'inF2' (temp float)
+0:53 cosine (temp float)
+0:53 'inF0' (temp float)
+0:54 hyp. sine (global float)
+0:54 'inF0' (temp float)
+0:55 smoothstep (global float)
+0:55 'inF0' (temp float)
+0:55 'inF1' (temp float)
+0:55 'inF2' (temp float)
+0:56 sqrt (global float)
+0:56 'inF0' (temp float)
+0:57 step (global float)
+0:57 'inF0' (temp float)
+0:57 'inF1' (temp float)
+0:58 tangent (global float)
+0:58 'inF0' (temp float)
+0:59 hyp. tangent (global float)
+0:59 'inF0' (temp float)
+0:61 trunc (global float)
+0:61 'inF0' (temp float)
+0:63 Branch: Return with expression
+0:63 Constant:
+0:63 0.000000
+0:72 Function Definition: PixelShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float)
+0:67 Function Parameters:
+0:67 'inF0' (temp 1-component vector of float)
+0:67 'inF1' (temp 1-component vector of float)
+0:67 'inF2' (temp 1-component vector of float)
+0:? Sequence
+0:69 Branch: Return with expression
+0:69 Constant:
+0:69 0.000000
+0:145 Function Definition: PixelShaderFunction(vf2;vf2;vf2; (temp 2-component vector of float)
+0:73 Function Parameters:
+0:73 'inF0' (temp 2-component vector of float)
+0:73 'inF1' (temp 2-component vector of float)
+0:73 'inF2' (temp 2-component vector of float)
+0:? Sequence
+0:74 all (global bool)
+0:74 'inF0' (temp 2-component vector of float)
+0:75 Absolute value (global 2-component vector of float)
+0:75 'inF0' (temp 2-component vector of float)
+0:76 arc cosine (global 2-component vector of float)
+0:76 'inF0' (temp 2-component vector of float)
+0:77 any (global bool)
+0:77 'inF0' (temp 2-component vector of float)
+0:78 arc sine (global 2-component vector of float)
+0:78 'inF0' (temp 2-component vector of float)
+0:79 arc tangent (global 2-component vector of float)
+0:79 'inF0' (temp 2-component vector of float)
+0:80 arc tangent (global 2-component vector of float)
+0:80 'inF0' (temp 2-component vector of float)
+0:80 'inF1' (temp 2-component vector of float)
+0:81 Ceiling (global 2-component vector of float)
+0:81 'inF0' (temp 2-component vector of float)
+0:82 clamp (global 2-component vector of float)
+0:82 'inF0' (temp 2-component vector of float)
+0:82 'inF1' (temp 2-component vector of float)
+0:82 'inF2' (temp 2-component vector of float)
+0:83 Test condition and select (temp void)
+0:83 Condition
+0:83 any (temp bool)
+0:83 Compare Less Than (temp 2-component vector of bool)
+0:83 'inF0' (temp 2-component vector of float)
+0:83 Constant:
+0:83 0.000000
+0:83 0.000000
+0:83 true case
+0:83 Branch: Kill
+0:84 cosine (global 2-component vector of float)
+0:84 'inF0' (temp 2-component vector of float)
+0:85 hyp. cosine (global 2-component vector of float)
+0:85 'inF0' (temp 2-component vector of float)
+0:? bitCount (global 2-component vector of uint)
+0:? Constant:
+0:? 7 (const uint)
+0:? 3 (const uint)
+0:87 dPdx (global 2-component vector of float)
+0:87 'inF0' (temp 2-component vector of float)
+0:88 dPdxCoarse (global 2-component vector of float)
+0:88 'inF0' (temp 2-component vector of float)
+0:89 dPdxFine (global 2-component vector of float)
+0:89 'inF0' (temp 2-component vector of float)
+0:90 dPdy (global 2-component vector of float)
+0:90 'inF0' (temp 2-component vector of float)
+0:91 dPdyCoarse (global 2-component vector of float)
+0:91 'inF0' (temp 2-component vector of float)
+0:92 dPdyFine (global 2-component vector of float)
+0:92 'inF0' (temp 2-component vector of float)
+0:93 degrees (global 2-component vector of float)
+0:93 'inF0' (temp 2-component vector of float)
+0:94 distance (global float)
+0:94 'inF0' (temp 2-component vector of float)
+0:94 'inF1' (temp 2-component vector of float)
+0:95 dot-product (global float)
+0:95 'inF0' (temp 2-component vector of float)
+0:95 'inF1' (temp 2-component vector of float)
+0:99 exp (global 2-component vector of float)
+0:99 'inF0' (temp 2-component vector of float)
+0:100 exp2 (global 2-component vector of float)
+0:100 'inF0' (temp 2-component vector of float)
+0:101 face-forward (global 2-component vector of float)
+0:101 'inF0' (temp 2-component vector of float)
+0:101 'inF1' (temp 2-component vector of float)
+0:101 'inF2' (temp 2-component vector of float)
+0:102 findMSB (global int)
+0:102 Constant:
+0:102 7 (const int)
+0:103 findLSB (global int)
+0:103 Constant:
+0:103 7 (const int)
+0:104 Floor (global 2-component vector of float)
+0:104 'inF0' (temp 2-component vector of float)
+0:106 mod (global 2-component vector of float)
+0:106 'inF0' (temp 2-component vector of float)
+0:106 'inF1' (temp 2-component vector of float)
+0:107 Fraction (global 2-component vector of float)
+0:107 'inF0' (temp 2-component vector of float)
+0:108 frexp (global 2-component vector of float)
+0:108 'inF0' (temp 2-component vector of float)
+0:108 'inF1' (temp 2-component vector of float)
+0:109 fwidth (global 2-component vector of float)
+0:109 'inF0' (temp 2-component vector of float)
+0:110 isinf (global 2-component vector of bool)
+0:110 'inF0' (temp 2-component vector of float)
+0:111 isnan (global 2-component vector of bool)
+0:111 'inF0' (temp 2-component vector of float)
+0:112 ldexp (global 2-component vector of float)
+0:112 'inF0' (temp 2-component vector of float)
+0:112 'inF1' (temp 2-component vector of float)
+0:113 length (global float)
+0:113 'inF0' (temp 2-component vector of float)
+0:114 log (global 2-component vector of float)
+0:114 'inF0' (temp 2-component vector of float)
+0:115 vector-scale (temp 2-component vector of float)
+0:115 log2 (temp 2-component vector of float)
+0:115 'inF0' (temp 2-component vector of float)
+0:115 Constant:
+0:115 0.301030
+0:116 log2 (global 2-component vector of float)
+0:116 'inF0' (temp 2-component vector of float)
+0:117 max (global 2-component vector of float)
+0:117 'inF0' (temp 2-component vector of float)
+0:117 'inF1' (temp 2-component vector of float)
+0:118 min (global 2-component vector of float)
+0:118 'inF0' (temp 2-component vector of float)
+0:118 'inF1' (temp 2-component vector of float)
+0:119 normalize (global 2-component vector of float)
+0:119 'inF0' (temp 2-component vector of float)
+0:120 pow (global 2-component vector of float)
+0:120 'inF0' (temp 2-component vector of float)
+0:120 'inF1' (temp 2-component vector of float)
+0:121 radians (global 2-component vector of float)
+0:121 'inF0' (temp 2-component vector of float)
+0:122 divide (temp 2-component vector of float)
+0:122 Constant:
+0:122 1.000000
+0:122 'inF0' (temp 2-component vector of float)
+0:123 reflect (global 2-component vector of float)
+0:123 'inF0' (temp 2-component vector of float)
+0:123 'inF1' (temp 2-component vector of float)
+0:124 refract (global 2-component vector of float)
+0:124 'inF0' (temp 2-component vector of float)
+0:124 'inF1' (temp 2-component vector of float)
+0:124 Constant:
+0:124 2.000000
+0:? bitFieldReverse (global 2-component vector of uint)
+0:? Constant:
+0:? 1 (const uint)
+0:? 2 (const uint)
+0:126 roundEven (global 2-component vector of float)
+0:126 'inF0' (temp 2-component vector of float)
+0:127 inverse sqrt (global 2-component vector of float)
+0:127 'inF0' (temp 2-component vector of float)
+0:128 clamp (global 2-component vector of float)
+0:128 'inF0' (temp 2-component vector of float)
+0:128 Constant:
+0:128 0.000000
+0:128 Constant:
+0:128 1.000000
+0:129 Sign (global 2-component vector of float)
+0:129 'inF0' (temp 2-component vector of float)
+0:130 sine (global 2-component vector of float)
+0:130 'inF0' (temp 2-component vector of float)
+0:131 Sequence
+0:131 move second child to first child (temp 2-component vector of float)
+0:131 'inF1' (temp 2-component vector of float)
+0:131 sine (temp 2-component vector of float)
+0:131 'inF0' (temp 2-component vector of float)
+0:131 move second child to first child (temp 2-component vector of float)
+0:131 'inF2' (temp 2-component vector of float)
+0:131 cosine (temp 2-component vector of float)
+0:131 'inF0' (temp 2-component vector of float)
+0:132 hyp. sine (global 2-component vector of float)
+0:132 'inF0' (temp 2-component vector of float)
+0:133 smoothstep (global 2-component vector of float)
+0:133 'inF0' (temp 2-component vector of float)
+0:133 'inF1' (temp 2-component vector of float)
+0:133 'inF2' (temp 2-component vector of float)
+0:134 sqrt (global 2-component vector of float)
+0:134 'inF0' (temp 2-component vector of float)
+0:135 step (global 2-component vector of float)
+0:135 'inF0' (temp 2-component vector of float)
+0:135 'inF1' (temp 2-component vector of float)
+0:136 tangent (global 2-component vector of float)
+0:136 'inF0' (temp 2-component vector of float)
+0:137 hyp. tangent (global 2-component vector of float)
+0:137 'inF0' (temp 2-component vector of float)
+0:139 trunc (global 2-component vector of float)
+0:139 'inF0' (temp 2-component vector of float)
+0:142 Branch: Return with expression
+0:? Constant:
+0:? 1.000000
+0:? 2.000000
+0:219 Function Definition: PixelShaderFunction(vf3;vf3;vf3; (temp 3-component vector of float)
+0:146 Function Parameters:
+0:146 'inF0' (temp 3-component vector of float)
+0:146 'inF1' (temp 3-component vector of float)
+0:146 'inF2' (temp 3-component vector of float)
+0:? Sequence
+0:147 all (global bool)
+0:147 'inF0' (temp 3-component vector of float)
+0:148 Absolute value (global 3-component vector of float)
+0:148 'inF0' (temp 3-component vector of float)
+0:149 arc cosine (global 3-component vector of float)
+0:149 'inF0' (temp 3-component vector of float)
+0:150 any (global bool)
+0:150 'inF0' (temp 3-component vector of float)
+0:151 arc sine (global 3-component vector of float)
+0:151 'inF0' (temp 3-component vector of float)
+0:152 arc tangent (global 3-component vector of float)
+0:152 'inF0' (temp 3-component vector of float)
+0:153 arc tangent (global 3-component vector of float)
+0:153 'inF0' (temp 3-component vector of float)
+0:153 'inF1' (temp 3-component vector of float)
+0:154 Ceiling (global 3-component vector of float)
+0:154 'inF0' (temp 3-component vector of float)
+0:155 clamp (global 3-component vector of float)
+0:155 'inF0' (temp 3-component vector of float)
+0:155 'inF1' (temp 3-component vector of float)
+0:155 'inF2' (temp 3-component vector of float)
+0:156 Test condition and select (temp void)
+0:156 Condition
+0:156 any (temp bool)
+0:156 Compare Less Than (temp 3-component vector of bool)
+0:156 'inF0' (temp 3-component vector of float)
+0:156 Constant:
+0:156 0.000000
+0:156 0.000000
+0:156 0.000000
+0:156 true case
+0:156 Branch: Kill
+0:157 cosine (global 3-component vector of float)
+0:157 'inF0' (temp 3-component vector of float)
+0:158 hyp. cosine (global 3-component vector of float)
+0:158 'inF0' (temp 3-component vector of float)
+0:? bitCount (global 3-component vector of uint)
+0:? Constant:
+0:? 7 (const uint)
+0:? 3 (const uint)
+0:? 5 (const uint)
+0:160 cross-product (global 3-component vector of float)
+0:160 'inF0' (temp 3-component vector of float)
+0:160 'inF1' (temp 3-component vector of float)
+0:161 dPdx (global 3-component vector of float)
+0:161 'inF0' (temp 3-component vector of float)
+0:162 dPdxCoarse (global 3-component vector of float)
+0:162 'inF0' (temp 3-component vector of float)
+0:163 dPdxFine (global 3-component vector of float)
+0:163 'inF0' (temp 3-component vector of float)
+0:164 dPdy (global 3-component vector of float)
+0:164 'inF0' (temp 3-component vector of float)
+0:165 dPdyCoarse (global 3-component vector of float)
+0:165 'inF0' (temp 3-component vector of float)
+0:166 dPdyFine (global 3-component vector of float)
+0:166 'inF0' (temp 3-component vector of float)
+0:167 degrees (global 3-component vector of float)
+0:167 'inF0' (temp 3-component vector of float)
+0:168 distance (global float)
+0:168 'inF0' (temp 3-component vector of float)
+0:168 'inF1' (temp 3-component vector of float)
+0:169 dot-product (global float)
+0:169 'inF0' (temp 3-component vector of float)
+0:169 'inF1' (temp 3-component vector of float)
+0:173 exp (global 3-component vector of float)
+0:173 'inF0' (temp 3-component vector of float)
+0:174 exp2 (global 3-component vector of float)
+0:174 'inF0' (temp 3-component vector of float)
+0:175 face-forward (global 3-component vector of float)
+0:175 'inF0' (temp 3-component vector of float)
+0:175 'inF1' (temp 3-component vector of float)
+0:175 'inF2' (temp 3-component vector of float)
+0:176 findMSB (global int)
+0:176 Constant:
+0:176 7 (const int)
+0:177 findLSB (global int)
+0:177 Constant:
+0:177 7 (const int)
+0:178 Floor (global 3-component vector of float)
+0:178 'inF0' (temp 3-component vector of float)
+0:180 mod (global 3-component vector of float)
+0:180 'inF0' (temp 3-component vector of float)
+0:180 'inF1' (temp 3-component vector of float)
+0:181 Fraction (global 3-component vector of float)
+0:181 'inF0' (temp 3-component vector of float)
+0:182 frexp (global 3-component vector of float)
+0:182 'inF0' (temp 3-component vector of float)
+0:182 'inF1' (temp 3-component vector of float)
+0:183 fwidth (global 3-component vector of float)
+0:183 'inF0' (temp 3-component vector of float)
+0:184 isinf (global 3-component vector of bool)
+0:184 'inF0' (temp 3-component vector of float)
+0:185 isnan (global 3-component vector of bool)
+0:185 'inF0' (temp 3-component vector of float)
+0:186 ldexp (global 3-component vector of float)
+0:186 'inF0' (temp 3-component vector of float)
+0:186 'inF1' (temp 3-component vector of float)
+0:187 length (global float)
+0:187 'inF0' (temp 3-component vector of float)
+0:188 log (global 3-component vector of float)
+0:188 'inF0' (temp 3-component vector of float)
+0:189 vector-scale (temp 3-component vector of float)
+0:189 log2 (temp 3-component vector of float)
+0:189 'inF0' (temp 3-component vector of float)
+0:189 Constant:
+0:189 0.301030
+0:190 log2 (global 3-component vector of float)
+0:190 'inF0' (temp 3-component vector of float)
+0:191 max (global 3-component vector of float)
+0:191 'inF0' (temp 3-component vector of float)
+0:191 'inF1' (temp 3-component vector of float)
+0:192 min (global 3-component vector of float)
+0:192 'inF0' (temp 3-component vector of float)
+0:192 'inF1' (temp 3-component vector of float)
+0:193 normalize (global 3-component vector of float)
+0:193 'inF0' (temp 3-component vector of float)
+0:194 pow (global 3-component vector of float)
+0:194 'inF0' (temp 3-component vector of float)
+0:194 'inF1' (temp 3-component vector of float)
+0:195 radians (global 3-component vector of float)
+0:195 'inF0' (temp 3-component vector of float)
+0:196 divide (temp 3-component vector of float)
+0:196 Constant:
+0:196 1.000000
+0:196 'inF0' (temp 3-component vector of float)
+0:197 reflect (global 3-component vector of float)
+0:197 'inF0' (temp 3-component vector of float)
+0:197 'inF1' (temp 3-component vector of float)
+0:198 refract (global 3-component vector of float)
+0:198 'inF0' (temp 3-component vector of float)
+0:198 'inF1' (temp 3-component vector of float)
+0:198 Constant:
+0:198 2.000000
+0:? bitFieldReverse (global 3-component vector of uint)
+0:? Constant:
+0:? 1 (const uint)
+0:? 2 (const uint)
+0:? 3 (const uint)
+0:200 roundEven (global 3-component vector of float)
+0:200 'inF0' (temp 3-component vector of float)
+0:201 inverse sqrt (global 3-component vector of float)
+0:201 'inF0' (temp 3-component vector of float)
+0:202 clamp (global 3-component vector of float)
+0:202 'inF0' (temp 3-component vector of float)
+0:202 Constant:
+0:202 0.000000
+0:202 Constant:
+0:202 1.000000
+0:203 Sign (global 3-component vector of float)
+0:203 'inF0' (temp 3-component vector of float)
+0:204 sine (global 3-component vector of float)
+0:204 'inF0' (temp 3-component vector of float)
+0:205 Sequence
+0:205 move second child to first child (temp 3-component vector of float)
+0:205 'inF1' (temp 3-component vector of float)
+0:205 sine (temp 3-component vector of float)
+0:205 'inF0' (temp 3-component vector of float)
+0:205 move second child to first child (temp 3-component vector of float)
+0:205 'inF2' (temp 3-component vector of float)
+0:205 cosine (temp 3-component vector of float)
+0:205 'inF0' (temp 3-component vector of float)
+0:206 hyp. sine (global 3-component vector of float)
+0:206 'inF0' (temp 3-component vector of float)
+0:207 smoothstep (global 3-component vector of float)
+0:207 'inF0' (temp 3-component vector of float)
+0:207 'inF1' (temp 3-component vector of float)
+0:207 'inF2' (temp 3-component vector of float)
+0:208 sqrt (global 3-component vector of float)
+0:208 'inF0' (temp 3-component vector of float)
+0:209 step (global 3-component vector of float)
+0:209 'inF0' (temp 3-component vector of float)
+0:209 'inF1' (temp 3-component vector of float)
+0:210 tangent (global 3-component vector of float)
+0:210 'inF0' (temp 3-component vector of float)
+0:211 hyp. tangent (global 3-component vector of float)
+0:211 'inF0' (temp 3-component vector of float)
+0:213 trunc (global 3-component vector of float)
+0:213 'inF0' (temp 3-component vector of float)
+0:216 Branch: Return with expression
+0:? Constant:
+0:? 1.000000
+0:? 2.000000
+0:? 3.000000
+0:349 Function Definition: PixelShaderFunction(vf4;vf4;vf4; (temp 4-component vector of float)
+0:220 Function Parameters:
+0:220 'inF0' (temp 4-component vector of float)
+0:220 'inF1' (temp 4-component vector of float)
+0:220 'inF2' (temp 4-component vector of float)
+0:? Sequence
+0:221 all (global bool)
+0:221 'inF0' (temp 4-component vector of float)
+0:222 Absolute value (global 4-component vector of float)
+0:222 'inF0' (temp 4-component vector of float)
+0:223 arc cosine (global 4-component vector of float)
+0:223 'inF0' (temp 4-component vector of float)
+0:224 any (global bool)
+0:224 'inF0' (temp 4-component vector of float)
+0:225 arc sine (global 4-component vector of float)
+0:225 'inF0' (temp 4-component vector of float)
+0:226 arc tangent (global 4-component vector of float)
+0:226 'inF0' (temp 4-component vector of float)
+0:227 arc tangent (global 4-component vector of float)
+0:227 'inF0' (temp 4-component vector of float)
+0:227 'inF1' (temp 4-component vector of float)
+0:228 Ceiling (global 4-component vector of float)
+0:228 'inF0' (temp 4-component vector of float)
+0:229 clamp (global 4-component vector of float)
+0:229 'inF0' (temp 4-component vector of float)
+0:229 'inF1' (temp 4-component vector of float)
+0:229 'inF2' (temp 4-component vector of float)
+0:230 Test condition and select (temp void)
+0:230 Condition
+0:230 any (temp bool)
+0:230 Compare Less Than (temp 4-component vector of bool)
+0:230 'inF0' (temp 4-component vector of float)
+0:230 Constant:
+0:230 0.000000
+0:230 0.000000
+0:230 0.000000
+0:230 0.000000
+0:230 true case
+0:230 Branch: Kill
+0:231 cosine (global 4-component vector of float)
+0:231 'inF0' (temp 4-component vector of float)
+0:232 hyp. cosine (global 4-component vector of float)
+0:232 'inF0' (temp 4-component vector of float)
+0:? bitCount (global 4-component vector of uint)
+0:? Constant:
+0:? 7 (const uint)
+0:? 3 (const uint)
+0:? 5 (const uint)
+0:? 2 (const uint)
+0:234 dPdx (global 4-component vector of float)
+0:234 'inF0' (temp 4-component vector of float)
+0:235 dPdxCoarse (global 4-component vector of float)
+0:235 'inF0' (temp 4-component vector of float)
+0:236 dPdxFine (global 4-component vector of float)
+0:236 'inF0' (temp 4-component vector of float)
+0:237 dPdy (global 4-component vector of float)
+0:237 'inF0' (temp 4-component vector of float)
+0:238 dPdyCoarse (global 4-component vector of float)
+0:238 'inF0' (temp 4-component vector of float)
+0:239 dPdyFine (global 4-component vector of float)
+0:239 'inF0' (temp 4-component vector of float)
+0:240 degrees (global 4-component vector of float)
+0:240 'inF0' (temp 4-component vector of float)
+0:241 distance (global float)
+0:241 'inF0' (temp 4-component vector of float)
+0:241 'inF1' (temp 4-component vector of float)
+0:242 dot-product (global float)
+0:242 'inF0' (temp 4-component vector of float)
+0:242 'inF1' (temp 4-component vector of float)
+0:243 Construct vec4 (temp float)
+0:243 Constant:
+0:243 1.000000
+0:243 component-wise multiply (temp float)
+0:243 direct index (temp float)
+0:243 'inF0' (temp 4-component vector of float)
+0:243 Constant:
+0:243 1 (const int)
+0:243 direct index (temp float)
+0:243 'inF1' (temp 4-component vector of float)
+0:243 Constant:
+0:243 1 (const int)
+0:243 direct index (temp float)
+0:243 'inF0' (temp 4-component vector of float)
+0:243 Constant:
+0:243 2 (const int)
+0:243 direct index (temp float)
+0:243 'inF1' (temp 4-component vector of float)
+0:243 Constant:
+0:243 3 (const int)
+0:247 exp (global 4-component vector of float)
+0:247 'inF0' (temp 4-component vector of float)
+0:248 exp2 (global 4-component vector of float)
+0:248 'inF0' (temp 4-component vector of float)
+0:249 face-forward (global 4-component vector of float)
+0:249 'inF0' (temp 4-component vector of float)
+0:249 'inF1' (temp 4-component vector of float)
+0:249 'inF2' (temp 4-component vector of float)
+0:250 findMSB (global int)
+0:250 Constant:
+0:250 7 (const int)
+0:251 findLSB (global int)
+0:251 Constant:
+0:251 7 (const int)
+0:252 Floor (global 4-component vector of float)
+0:252 'inF0' (temp 4-component vector of float)
+0:254 mod (global 4-component vector of float)
+0:254 'inF0' (temp 4-component vector of float)
+0:254 'inF1' (temp 4-component vector of float)
+0:255 Fraction (global 4-component vector of float)
+0:255 'inF0' (temp 4-component vector of float)
+0:256 frexp (global 4-component vector of float)
+0:256 'inF0' (temp 4-component vector of float)
+0:256 'inF1' (temp 4-component vector of float)
+0:257 fwidth (global 4-component vector of float)
+0:257 'inF0' (temp 4-component vector of float)
+0:258 isinf (global 4-component vector of bool)
+0:258 'inF0' (temp 4-component vector of float)
+0:259 isnan (global 4-component vector of bool)
+0:259 'inF0' (temp 4-component vector of float)
+0:260 ldexp (global 4-component vector of float)
+0:260 'inF0' (temp 4-component vector of float)
+0:260 'inF1' (temp 4-component vector of float)
+0:261 length (global float)
+0:261 'inF0' (temp 4-component vector of float)
+0:262 log (global 4-component vector of float)
+0:262 'inF0' (temp 4-component vector of float)
+0:263 vector-scale (temp 4-component vector of float)
+0:263 log2 (temp 4-component vector of float)
+0:263 'inF0' (temp 4-component vector of float)
+0:263 Constant:
+0:263 0.301030
+0:264 log2 (global 4-component vector of float)
+0:264 'inF0' (temp 4-component vector of float)
+0:265 max (global 4-component vector of float)
+0:265 'inF0' (temp 4-component vector of float)
+0:265 'inF1' (temp 4-component vector of float)
+0:266 min (global 4-component vector of float)
+0:266 'inF0' (temp 4-component vector of float)
+0:266 'inF1' (temp 4-component vector of float)
+0:267 normalize (global 4-component vector of float)
+0:267 'inF0' (temp 4-component vector of float)
+0:268 pow (global 4-component vector of float)
+0:268 'inF0' (temp 4-component vector of float)
+0:268 'inF1' (temp 4-component vector of float)
+0:269 radians (global 4-component vector of float)
+0:269 'inF0' (temp 4-component vector of float)
+0:270 divide (temp 4-component vector of float)
+0:270 Constant:
+0:270 1.000000
+0:270 'inF0' (temp 4-component vector of float)
+0:271 reflect (global 4-component vector of float)
+0:271 'inF0' (temp 4-component vector of float)
+0:271 'inF1' (temp 4-component vector of float)
+0:272 refract (global 4-component vector of float)
+0:272 'inF0' (temp 4-component vector of float)
+0:272 'inF1' (temp 4-component vector of float)
+0:272 Constant:
+0:272 2.000000
+0:? bitFieldReverse (global 4-component vector of uint)
+0:? Constant:
+0:? 1 (const uint)
+0:? 2 (const uint)
+0:? 3 (const uint)
+0:? 4 (const uint)
+0:274 roundEven (global 4-component vector of float)
+0:274 'inF0' (temp 4-component vector of float)
+0:275 inverse sqrt (global 4-component vector of float)
+0:275 'inF0' (temp 4-component vector of float)
+0:276 clamp (global 4-component vector of float)
+0:276 'inF0' (temp 4-component vector of float)
+0:276 Constant:
+0:276 0.000000
+0:276 Constant:
+0:276 1.000000
+0:277 Sign (global 4-component vector of float)
+0:277 'inF0' (temp 4-component vector of float)
+0:278 sine (global 4-component vector of float)
+0:278 'inF0' (temp 4-component vector of float)
+0:279 Sequence
+0:279 move second child to first child (temp 4-component vector of float)
+0:279 'inF1' (temp 4-component vector of float)
+0:279 sine (temp 4-component vector of float)
+0:279 'inF0' (temp 4-component vector of float)
+0:279 move second child to first child (temp 4-component vector of float)
+0:279 'inF2' (temp 4-component vector of float)
+0:279 cosine (temp 4-component vector of float)
+0:279 'inF0' (temp 4-component vector of float)
+0:280 hyp. sine (global 4-component vector of float)
+0:280 'inF0' (temp 4-component vector of float)
+0:281 smoothstep (global 4-component vector of float)
+0:281 'inF0' (temp 4-component vector of float)
+0:281 'inF1' (temp 4-component vector of float)
+0:281 'inF2' (temp 4-component vector of float)
+0:282 sqrt (global 4-component vector of float)
+0:282 'inF0' (temp 4-component vector of float)
+0:283 step (global 4-component vector of float)
+0:283 'inF0' (temp 4-component vector of float)
+0:283 'inF1' (temp 4-component vector of float)
+0:284 tangent (global 4-component vector of float)
+0:284 'inF0' (temp 4-component vector of float)
+0:285 hyp. tangent (global 4-component vector of float)
+0:285 'inF0' (temp 4-component vector of float)
+0:287 trunc (global 4-component vector of float)
+0:287 'inF0' (temp 4-component vector of float)
+0:290 Branch: Return with expression
+0:? Constant:
+0:? 1.000000
+0:? 2.000000
+0:? 3.000000
+0:? 4.000000
+0:358 Function Definition: PixelShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float)
+0:350 Function Parameters:
+0:350 'inF0' (temp 2X2 matrix of float)
+0:350 'inF1' (temp 2X2 matrix of float)
+0:350 'inF2' (temp 2X2 matrix of float)
+0:? Sequence
+0:352 all (global bool)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 Absolute value (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 arc cosine (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 any (global bool)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 arc sine (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 arc tangent (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 arc tangent (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 'inF1' (temp 2X2 matrix of float)
+0:352 Ceiling (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 Test condition and select (temp void)
+0:352 Condition
+0:352 any (temp bool)
+0:352 Compare Less Than (temp 2X2 matrix of bool)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 Constant:
+0:352 0.000000
+0:352 0.000000
+0:352 0.000000
+0:352 0.000000
+0:352 true case
+0:352 Branch: Kill
+0:352 clamp (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 'inF1' (temp 2X2 matrix of float)
+0:352 'inF2' (temp 2X2 matrix of float)
+0:352 cosine (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 hyp. cosine (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 dPdx (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 dPdxCoarse (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 dPdxFine (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 dPdy (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 dPdyCoarse (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 dPdyFine (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 degrees (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 determinant (global float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 exp (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 exp2 (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 findMSB (global int)
+0:352 Constant:
+0:352 7 (const int)
+0:352 findLSB (global int)
+0:352 Constant:
+0:352 7 (const int)
+0:352 Floor (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 mod (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 'inF1' (temp 2X2 matrix of float)
+0:352 Fraction (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 frexp (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 'inF1' (temp 2X2 matrix of float)
+0:352 fwidth (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 ldexp (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 'inF1' (temp 2X2 matrix of float)
+0:352 log (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 matrix-scale (temp 2X2 matrix of float)
+0:352 log2 (temp 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 Constant:
+0:352 0.301030
+0:352 log2 (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 max (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 'inF1' (temp 2X2 matrix of float)
+0:352 min (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 'inF1' (temp 2X2 matrix of float)
+0:352 pow (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 'inF1' (temp 2X2 matrix of float)
+0:352 radians (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 roundEven (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 inverse sqrt (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 clamp (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 Constant:
+0:352 0.000000
+0:352 Constant:
+0:352 1.000000
+0:352 Sign (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 sine (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 Sequence
+0:352 move second child to first child (temp 2X2 matrix of float)
+0:352 'inF1' (temp 2X2 matrix of float)
+0:352 sine (temp 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 move second child to first child (temp 2X2 matrix of float)
+0:352 'inF2' (temp 2X2 matrix of float)
+0:352 cosine (temp 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 hyp. sine (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 smoothstep (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 'inF1' (temp 2X2 matrix of float)
+0:352 'inF2' (temp 2X2 matrix of float)
+0:352 sqrt (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 step (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 'inF1' (temp 2X2 matrix of float)
+0:352 tangent (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 hyp. tangent (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 transpose (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 trunc (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:355 Branch: Return with expression
+0:? Constant:
+0:? 2.000000
+0:? 2.000000
+0:? 2.000000
+0:? 2.000000
+0:367 Function Definition: PixelShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float)
+0:359 Function Parameters:
+0:359 'inF0' (temp 3X3 matrix of float)
+0:359 'inF1' (temp 3X3 matrix of float)
+0:359 'inF2' (temp 3X3 matrix of float)
+0:? Sequence
+0:361 all (global bool)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 Absolute value (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 arc cosine (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 any (global bool)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 arc sine (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 arc tangent (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 arc tangent (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 'inF1' (temp 3X3 matrix of float)
+0:361 Ceiling (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 Test condition and select (temp void)
+0:361 Condition
+0:361 any (temp bool)
+0:361 Compare Less Than (temp 3X3 matrix of bool)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 Constant:
+0:361 0.000000
+0:361 0.000000
+0:361 0.000000
+0:361 0.000000
+0:361 0.000000
+0:361 0.000000
+0:361 0.000000
+0:361 0.000000
+0:361 0.000000
+0:361 true case
+0:361 Branch: Kill
+0:361 clamp (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 'inF1' (temp 3X3 matrix of float)
+0:361 'inF2' (temp 3X3 matrix of float)
+0:361 cosine (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 hyp. cosine (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 dPdx (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 dPdxCoarse (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 dPdxFine (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 dPdy (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 dPdyCoarse (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 dPdyFine (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 degrees (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 determinant (global float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 exp (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 exp2 (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 findMSB (global int)
+0:361 Constant:
+0:361 7 (const int)
+0:361 findLSB (global int)
+0:361 Constant:
+0:361 7 (const int)
+0:361 Floor (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 mod (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 'inF1' (temp 3X3 matrix of float)
+0:361 Fraction (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 frexp (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 'inF1' (temp 3X3 matrix of float)
+0:361 fwidth (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 ldexp (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 'inF1' (temp 3X3 matrix of float)
+0:361 log (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 matrix-scale (temp 3X3 matrix of float)
+0:361 log2 (temp 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 Constant:
+0:361 0.301030
+0:361 log2 (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 max (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 'inF1' (temp 3X3 matrix of float)
+0:361 min (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 'inF1' (temp 3X3 matrix of float)
+0:361 pow (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 'inF1' (temp 3X3 matrix of float)
+0:361 radians (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 roundEven (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 inverse sqrt (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 clamp (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 Constant:
+0:361 0.000000
+0:361 Constant:
+0:361 1.000000
+0:361 Sign (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 sine (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 Sequence
+0:361 move second child to first child (temp 3X3 matrix of float)
+0:361 'inF1' (temp 3X3 matrix of float)
+0:361 sine (temp 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 move second child to first child (temp 3X3 matrix of float)
+0:361 'inF2' (temp 3X3 matrix of float)
+0:361 cosine (temp 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 hyp. sine (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 smoothstep (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 'inF1' (temp 3X3 matrix of float)
+0:361 'inF2' (temp 3X3 matrix of float)
+0:361 sqrt (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 step (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 'inF1' (temp 3X3 matrix of float)
+0:361 tangent (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 hyp. tangent (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 transpose (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 trunc (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:364 Branch: Return with expression
+0:? Constant:
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:388 Function Definition: PixelShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float)
+0:368 Function Parameters:
+0:368 'inF0' (temp 4X4 matrix of float)
+0:368 'inF1' (temp 4X4 matrix of float)
+0:368 'inF2' (temp 4X4 matrix of float)
+0:? Sequence
+0:370 all (global bool)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 Absolute value (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 arc cosine (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 any (global bool)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 arc sine (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 arc tangent (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 arc tangent (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 'inF1' (temp 4X4 matrix of float)
+0:370 Ceiling (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 Test condition and select (temp void)
+0:370 Condition
+0:370 any (temp bool)
+0:370 Compare Less Than (temp 4X4 matrix of bool)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 Constant:
+0:370 0.000000
+0:370 0.000000
+0:370 0.000000
+0:370 0.000000
+0:370 0.000000
+0:370 0.000000
+0:370 0.000000
+0:370 0.000000
+0:370 0.000000
+0:370 0.000000
+0:370 0.000000
+0:370 0.000000
+0:370 0.000000
+0:370 0.000000
+0:370 0.000000
+0:370 0.000000
+0:370 true case
+0:370 Branch: Kill
+0:370 clamp (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 'inF1' (temp 4X4 matrix of float)
+0:370 'inF2' (temp 4X4 matrix of float)
+0:370 cosine (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 hyp. cosine (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 dPdx (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 dPdxCoarse (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 dPdxFine (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 dPdy (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 dPdyCoarse (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 dPdyFine (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 degrees (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 determinant (global float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 exp (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 exp2 (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 findMSB (global int)
+0:370 Constant:
+0:370 7 (const int)
+0:370 findLSB (global int)
+0:370 Constant:
+0:370 7 (const int)
+0:370 Floor (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 mod (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 'inF1' (temp 4X4 matrix of float)
+0:370 Fraction (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 frexp (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 'inF1' (temp 4X4 matrix of float)
+0:370 fwidth (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 ldexp (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 'inF1' (temp 4X4 matrix of float)
+0:370 log (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 matrix-scale (temp 4X4 matrix of float)
+0:370 log2 (temp 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 Constant:
+0:370 0.301030
+0:370 log2 (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 max (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 'inF1' (temp 4X4 matrix of float)
+0:370 min (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 'inF1' (temp 4X4 matrix of float)
+0:370 pow (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 'inF1' (temp 4X4 matrix of float)
+0:370 radians (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 roundEven (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 inverse sqrt (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 clamp (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 Constant:
+0:370 0.000000
+0:370 Constant:
+0:370 1.000000
+0:370 Sign (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 sine (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 Sequence
+0:370 move second child to first child (temp 4X4 matrix of float)
+0:370 'inF1' (temp 4X4 matrix of float)
+0:370 sine (temp 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 move second child to first child (temp 4X4 matrix of float)
+0:370 'inF2' (temp 4X4 matrix of float)
+0:370 cosine (temp 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 hyp. sine (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 smoothstep (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 'inF1' (temp 4X4 matrix of float)
+0:370 'inF2' (temp 4X4 matrix of float)
+0:370 sqrt (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 step (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 'inF1' (temp 4X4 matrix of float)
+0:370 tangent (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 hyp. tangent (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 transpose (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 trunc (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:373 Branch: Return with expression
+0:? Constant:
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:395 Function Definition: TestGenMul(f1;f1;vf2;vf2;mf22;mf22; (temp void)
+0:391 Function Parameters:
+0:391 'inF0' (temp float)
+0:391 'inF1' (temp float)
+0:391 'inFV0' (temp 2-component vector of float)
+0:391 'inFV1' (temp 2-component vector of float)
+0:391 'inFM0' (temp 2X2 matrix of float)
+0:391 'inFM1' (temp 2X2 matrix of float)
+0:? Sequence
+0:392 move second child to first child (temp float)
+0:392 'r0' (temp float)
+0:392 component-wise multiply (temp float)
+0:392 'inF0' (temp float)
+0:392 'inF1' (temp float)
+0:392 move second child to first child (temp 2-component vector of float)
+0:392 'r1' (temp 2-component vector of float)
+0:392 vector-scale (temp 2-component vector of float)
+0:392 'inFV0' (temp 2-component vector of float)
+0:392 'inF0' (temp float)
+0:392 move second child to first child (temp 2-component vector of float)
+0:392 'r2' (temp 2-component vector of float)
+0:392 vector-scale (temp 2-component vector of float)
+0:392 'inF0' (temp float)
+0:392 'inFV0' (temp 2-component vector of float)
+0:392 move second child to first child (temp float)
+0:392 'r3' (temp float)
+0:392 dot-product (global float)
+0:392 'inFV0' (temp 2-component vector of float)
+0:392 'inFV1' (temp 2-component vector of float)
+0:392 move second child to first child (temp 2-component vector of float)
+0:392 'r4' (temp 2-component vector of float)
+0:392 matrix-times-vector (temp 2-component vector of float)
+0:392 'inFM0' (temp 2X2 matrix of float)
+0:392 'inFV0' (temp 2-component vector of float)
+0:392 move second child to first child (temp 2-component vector of float)
+0:392 'r5' (temp 2-component vector of float)
+0:392 vector-times-matrix (temp 2-component vector of float)
+0:392 'inFV0' (temp 2-component vector of float)
+0:392 'inFM0' (temp 2X2 matrix of float)
+0:392 move second child to first child (temp 2X2 matrix of float)
+0:392 'r6' (temp 2X2 matrix of float)
+0:392 matrix-scale (temp 2X2 matrix of float)
+0:392 'inFM0' (temp 2X2 matrix of float)
+0:392 'inF0' (temp float)
+0:392 move second child to first child (temp 2X2 matrix of float)
+0:392 'r7' (temp 2X2 matrix of float)
+0:392 matrix-scale (temp 2X2 matrix of float)
+0:392 'inF0' (temp float)
+0:392 'inFM0' (temp 2X2 matrix of float)
+0:392 move second child to first child (temp 2X2 matrix of float)
+0:392 'r8' (temp 2X2 matrix of float)
+0:392 matrix-multiply (temp 2X2 matrix of float)
+0:392 'inFM0' (temp 2X2 matrix of float)
+0:392 'inFM1' (temp 2X2 matrix of float)
+0:402 Function Definition: TestGenMul(f1;f1;vf3;vf3;mf33;mf33; (temp void)
+0:398 Function Parameters:
+0:398 'inF0' (temp float)
+0:398 'inF1' (temp float)
+0:398 'inFV0' (temp 3-component vector of float)
+0:398 'inFV1' (temp 3-component vector of float)
+0:398 'inFM0' (temp 3X3 matrix of float)
+0:398 'inFM1' (temp 3X3 matrix of float)
+0:? Sequence
+0:399 move second child to first child (temp float)
+0:399 'r0' (temp float)
+0:399 component-wise multiply (temp float)
+0:399 'inF0' (temp float)
+0:399 'inF1' (temp float)
+0:399 move second child to first child (temp 3-component vector of float)
+0:399 'r1' (temp 3-component vector of float)
+0:399 vector-scale (temp 3-component vector of float)
+0:399 'inFV0' (temp 3-component vector of float)
+0:399 'inF0' (temp float)
+0:399 move second child to first child (temp 3-component vector of float)
+0:399 'r2' (temp 3-component vector of float)
+0:399 vector-scale (temp 3-component vector of float)
+0:399 'inF0' (temp float)
+0:399 'inFV0' (temp 3-component vector of float)
+0:399 move second child to first child (temp float)
+0:399 'r3' (temp float)
+0:399 dot-product (global float)
+0:399 'inFV0' (temp 3-component vector of float)
+0:399 'inFV1' (temp 3-component vector of float)
+0:399 move second child to first child (temp 3-component vector of float)
+0:399 'r4' (temp 3-component vector of float)
+0:399 matrix-times-vector (temp 3-component vector of float)
+0:399 'inFM0' (temp 3X3 matrix of float)
+0:399 'inFV0' (temp 3-component vector of float)
+0:399 move second child to first child (temp 3-component vector of float)
+0:399 'r5' (temp 3-component vector of float)
+0:399 vector-times-matrix (temp 3-component vector of float)
+0:399 'inFV0' (temp 3-component vector of float)
+0:399 'inFM0' (temp 3X3 matrix of float)
+0:399 move second child to first child (temp 3X3 matrix of float)
+0:399 'r6' (temp 3X3 matrix of float)
+0:399 matrix-scale (temp 3X3 matrix of float)
+0:399 'inFM0' (temp 3X3 matrix of float)
+0:399 'inF0' (temp float)
+0:399 move second child to first child (temp 3X3 matrix of float)
+0:399 'r7' (temp 3X3 matrix of float)
+0:399 matrix-scale (temp 3X3 matrix of float)
+0:399 'inF0' (temp float)
+0:399 'inFM0' (temp 3X3 matrix of float)
+0:399 move second child to first child (temp 3X3 matrix of float)
+0:399 'r8' (temp 3X3 matrix of float)
+0:399 matrix-multiply (temp 3X3 matrix of float)
+0:399 'inFM0' (temp 3X3 matrix of float)
+0:399 'inFM1' (temp 3X3 matrix of float)
+0:408 Function Definition: TestGenMul(f1;f1;vf4;vf4;mf44;mf44; (temp void)
+0:405 Function Parameters:
+0:405 'inF0' (temp float)
+0:405 'inF1' (temp float)
+0:405 'inFV0' (temp 4-component vector of float)
+0:405 'inFV1' (temp 4-component vector of float)
+0:405 'inFM0' (temp 4X4 matrix of float)
+0:405 'inFM1' (temp 4X4 matrix of float)
+0:? Sequence
+0:406 move second child to first child (temp float)
+0:406 'r0' (temp float)
+0:406 component-wise multiply (temp float)
+0:406 'inF0' (temp float)
+0:406 'inF1' (temp float)
+0:406 move second child to first child (temp 4-component vector of float)
+0:406 'r1' (temp 4-component vector of float)
+0:406 vector-scale (temp 4-component vector of float)
+0:406 'inFV0' (temp 4-component vector of float)
+0:406 'inF0' (temp float)
+0:406 move second child to first child (temp 4-component vector of float)
+0:406 'r2' (temp 4-component vector of float)
+0:406 vector-scale (temp 4-component vector of float)
+0:406 'inF0' (temp float)
+0:406 'inFV0' (temp 4-component vector of float)
+0:406 move second child to first child (temp float)
+0:406 'r3' (temp float)
+0:406 dot-product (global float)
+0:406 'inFV0' (temp 4-component vector of float)
+0:406 'inFV1' (temp 4-component vector of float)
+0:406 move second child to first child (temp 4-component vector of float)
+0:406 'r4' (temp 4-component vector of float)
+0:406 matrix-times-vector (temp 4-component vector of float)
+0:406 'inFM0' (temp 4X4 matrix of float)
+0:406 'inFV0' (temp 4-component vector of float)
+0:406 move second child to first child (temp 4-component vector of float)
+0:406 'r5' (temp 4-component vector of float)
+0:406 vector-times-matrix (temp 4-component vector of float)
+0:406 'inFV0' (temp 4-component vector of float)
+0:406 'inFM0' (temp 4X4 matrix of float)
+0:406 move second child to first child (temp 4X4 matrix of float)
+0:406 'r6' (temp 4X4 matrix of float)
+0:406 matrix-scale (temp 4X4 matrix of float)
+0:406 'inFM0' (temp 4X4 matrix of float)
+0:406 'inF0' (temp float)
+0:406 move second child to first child (temp 4X4 matrix of float)
+0:406 'r7' (temp 4X4 matrix of float)
+0:406 matrix-scale (temp 4X4 matrix of float)
+0:406 'inF0' (temp float)
+0:406 'inFM0' (temp 4X4 matrix of float)
+0:406 move second child to first child (temp 4X4 matrix of float)
+0:406 'r8' (temp 4X4 matrix of float)
+0:406 matrix-multiply (temp 4X4 matrix of float)
+0:406 'inFM0' (temp 4X4 matrix of float)
+0:406 'inFM1' (temp 4X4 matrix of float)
+0:? Linker Objects
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:66 Function Definition: PixelShaderFunction(f1;f1;f1; (temp float)
+0:2 Function Parameters:
+0:2 'inF0' (temp float)
+0:2 'inF1' (temp float)
+0:2 'inF2' (temp float)
+0:? Sequence
+0:3 all (global bool)
+0:3 'inF0' (temp float)
+0:4 Absolute value (global float)
+0:4 'inF0' (temp float)
+0:5 arc cosine (global float)
+0:5 'inF0' (temp float)
+0:6 any (global bool)
+0:6 'inF0' (temp float)
+0:7 arc sine (global float)
+0:7 'inF0' (temp float)
+0:8 arc tangent (global float)
+0:8 'inF0' (temp float)
+0:9 arc tangent (global float)
+0:9 'inF0' (temp float)
+0:9 'inF1' (temp float)
+0:10 Ceiling (global float)
+0:10 'inF0' (temp float)
+0:11 clamp (global float)
+0:11 'inF0' (temp float)
+0:11 'inF1' (temp float)
+0:11 'inF2' (temp float)
+0:12 Test condition and select (temp void)
+0:12 Condition
+0:12 Compare Less Than (temp bool)
+0:12 'inF0' (temp float)
+0:12 Constant:
+0:12 0.000000
+0:12 true case
+0:12 Branch: Kill
+0:13 cosine (global float)
+0:13 'inF0' (temp float)
+0:14 hyp. cosine (global float)
+0:14 'inF0' (temp float)
+0:15 bitCount (global uint)
+0:15 Constant:
+0:15 7 (const uint)
+0:16 dPdx (global float)
+0:16 'inF0' (temp float)
+0:17 dPdxCoarse (global float)
+0:17 'inF0' (temp float)
+0:18 dPdxFine (global float)
+0:18 'inF0' (temp float)
+0:19 dPdy (global float)
+0:19 'inF0' (temp float)
+0:20 dPdyCoarse (global float)
+0:20 'inF0' (temp float)
+0:21 dPdyFine (global float)
+0:21 'inF0' (temp float)
+0:22 degrees (global float)
+0:22 'inF0' (temp float)
+0:26 exp (global float)
+0:26 'inF0' (temp float)
+0:27 exp2 (global float)
+0:27 'inF0' (temp float)
+0:28 findMSB (global int)
+0:28 Constant:
+0:28 7 (const int)
+0:29 findLSB (global int)
+0:29 Constant:
+0:29 7 (const int)
+0:30 Floor (global float)
+0:30 'inF0' (temp float)
+0:32 mod (global float)
+0:32 'inF0' (temp float)
+0:32 'inF1' (temp float)
+0:33 Fraction (global float)
+0:33 'inF0' (temp float)
+0:34 frexp (global float)
+0:34 'inF0' (temp float)
+0:34 'inF1' (temp float)
+0:35 fwidth (global float)
+0:35 'inF0' (temp float)
+0:36 isinf (global bool)
+0:36 'inF0' (temp float)
+0:37 isnan (global bool)
+0:37 'inF0' (temp float)
+0:38 ldexp (global float)
+0:38 'inF0' (temp float)
+0:38 'inF1' (temp float)
+0:39 log (global float)
+0:39 'inF0' (temp float)
+0:40 component-wise multiply (temp float)
+0:40 log2 (temp float)
+0:40 'inF0' (temp float)
+0:40 Constant:
+0:40 0.301030
+0:41 log2 (global float)
+0:41 'inF0' (temp float)
+0:42 max (global float)
+0:42 'inF0' (temp float)
+0:42 'inF1' (temp float)
+0:43 min (global float)
+0:43 'inF0' (temp float)
+0:43 'inF1' (temp float)
+0:44 pow (global float)
+0:44 'inF0' (temp float)
+0:44 'inF1' (temp float)
+0:45 radians (global float)
+0:45 'inF0' (temp float)
+0:46 divide (temp float)
+0:46 Constant:
+0:46 1.000000
+0:46 'inF0' (temp float)
+0:47 bitFieldReverse (global uint)
+0:47 Constant:
+0:47 2 (const uint)
+0:48 roundEven (global float)
+0:48 'inF0' (temp float)
+0:49 inverse sqrt (global float)
+0:49 'inF0' (temp float)
+0:50 clamp (global float)
+0:50 'inF0' (temp float)
+0:50 Constant:
+0:50 0.000000
+0:50 Constant:
+0:50 1.000000
+0:51 Sign (global float)
+0:51 'inF0' (temp float)
+0:52 sine (global float)
+0:52 'inF0' (temp float)
+0:53 Sequence
+0:53 move second child to first child (temp float)
+0:53 'inF1' (temp float)
+0:53 sine (temp float)
+0:53 'inF0' (temp float)
+0:53 move second child to first child (temp float)
+0:53 'inF2' (temp float)
+0:53 cosine (temp float)
+0:53 'inF0' (temp float)
+0:54 hyp. sine (global float)
+0:54 'inF0' (temp float)
+0:55 smoothstep (global float)
+0:55 'inF0' (temp float)
+0:55 'inF1' (temp float)
+0:55 'inF2' (temp float)
+0:56 sqrt (global float)
+0:56 'inF0' (temp float)
+0:57 step (global float)
+0:57 'inF0' (temp float)
+0:57 'inF1' (temp float)
+0:58 tangent (global float)
+0:58 'inF0' (temp float)
+0:59 hyp. tangent (global float)
+0:59 'inF0' (temp float)
+0:61 trunc (global float)
+0:61 'inF0' (temp float)
+0:63 Branch: Return with expression
+0:63 Constant:
+0:63 0.000000
+0:72 Function Definition: PixelShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float)
+0:67 Function Parameters:
+0:67 'inF0' (temp 1-component vector of float)
+0:67 'inF1' (temp 1-component vector of float)
+0:67 'inF2' (temp 1-component vector of float)
+0:? Sequence
+0:69 Branch: Return with expression
+0:69 Constant:
+0:69 0.000000
+0:145 Function Definition: PixelShaderFunction(vf2;vf2;vf2; (temp 2-component vector of float)
+0:73 Function Parameters:
+0:73 'inF0' (temp 2-component vector of float)
+0:73 'inF1' (temp 2-component vector of float)
+0:73 'inF2' (temp 2-component vector of float)
+0:? Sequence
+0:74 all (global bool)
+0:74 'inF0' (temp 2-component vector of float)
+0:75 Absolute value (global 2-component vector of float)
+0:75 'inF0' (temp 2-component vector of float)
+0:76 arc cosine (global 2-component vector of float)
+0:76 'inF0' (temp 2-component vector of float)
+0:77 any (global bool)
+0:77 'inF0' (temp 2-component vector of float)
+0:78 arc sine (global 2-component vector of float)
+0:78 'inF0' (temp 2-component vector of float)
+0:79 arc tangent (global 2-component vector of float)
+0:79 'inF0' (temp 2-component vector of float)
+0:80 arc tangent (global 2-component vector of float)
+0:80 'inF0' (temp 2-component vector of float)
+0:80 'inF1' (temp 2-component vector of float)
+0:81 Ceiling (global 2-component vector of float)
+0:81 'inF0' (temp 2-component vector of float)
+0:82 clamp (global 2-component vector of float)
+0:82 'inF0' (temp 2-component vector of float)
+0:82 'inF1' (temp 2-component vector of float)
+0:82 'inF2' (temp 2-component vector of float)
+0:83 Test condition and select (temp void)
+0:83 Condition
+0:83 any (temp bool)
+0:83 Compare Less Than (temp 2-component vector of bool)
+0:83 'inF0' (temp 2-component vector of float)
+0:83 Constant:
+0:83 0.000000
+0:83 0.000000
+0:83 true case
+0:83 Branch: Kill
+0:84 cosine (global 2-component vector of float)
+0:84 'inF0' (temp 2-component vector of float)
+0:85 hyp. cosine (global 2-component vector of float)
+0:85 'inF0' (temp 2-component vector of float)
+0:? bitCount (global 2-component vector of uint)
+0:? Constant:
+0:? 7 (const uint)
+0:? 3 (const uint)
+0:87 dPdx (global 2-component vector of float)
+0:87 'inF0' (temp 2-component vector of float)
+0:88 dPdxCoarse (global 2-component vector of float)
+0:88 'inF0' (temp 2-component vector of float)
+0:89 dPdxFine (global 2-component vector of float)
+0:89 'inF0' (temp 2-component vector of float)
+0:90 dPdy (global 2-component vector of float)
+0:90 'inF0' (temp 2-component vector of float)
+0:91 dPdyCoarse (global 2-component vector of float)
+0:91 'inF0' (temp 2-component vector of float)
+0:92 dPdyFine (global 2-component vector of float)
+0:92 'inF0' (temp 2-component vector of float)
+0:93 degrees (global 2-component vector of float)
+0:93 'inF0' (temp 2-component vector of float)
+0:94 distance (global float)
+0:94 'inF0' (temp 2-component vector of float)
+0:94 'inF1' (temp 2-component vector of float)
+0:95 dot-product (global float)
+0:95 'inF0' (temp 2-component vector of float)
+0:95 'inF1' (temp 2-component vector of float)
+0:99 exp (global 2-component vector of float)
+0:99 'inF0' (temp 2-component vector of float)
+0:100 exp2 (global 2-component vector of float)
+0:100 'inF0' (temp 2-component vector of float)
+0:101 face-forward (global 2-component vector of float)
+0:101 'inF0' (temp 2-component vector of float)
+0:101 'inF1' (temp 2-component vector of float)
+0:101 'inF2' (temp 2-component vector of float)
+0:102 findMSB (global int)
+0:102 Constant:
+0:102 7 (const int)
+0:103 findLSB (global int)
+0:103 Constant:
+0:103 7 (const int)
+0:104 Floor (global 2-component vector of float)
+0:104 'inF0' (temp 2-component vector of float)
+0:106 mod (global 2-component vector of float)
+0:106 'inF0' (temp 2-component vector of float)
+0:106 'inF1' (temp 2-component vector of float)
+0:107 Fraction (global 2-component vector of float)
+0:107 'inF0' (temp 2-component vector of float)
+0:108 frexp (global 2-component vector of float)
+0:108 'inF0' (temp 2-component vector of float)
+0:108 'inF1' (temp 2-component vector of float)
+0:109 fwidth (global 2-component vector of float)
+0:109 'inF0' (temp 2-component vector of float)
+0:110 isinf (global 2-component vector of bool)
+0:110 'inF0' (temp 2-component vector of float)
+0:111 isnan (global 2-component vector of bool)
+0:111 'inF0' (temp 2-component vector of float)
+0:112 ldexp (global 2-component vector of float)
+0:112 'inF0' (temp 2-component vector of float)
+0:112 'inF1' (temp 2-component vector of float)
+0:113 length (global float)
+0:113 'inF0' (temp 2-component vector of float)
+0:114 log (global 2-component vector of float)
+0:114 'inF0' (temp 2-component vector of float)
+0:115 vector-scale (temp 2-component vector of float)
+0:115 log2 (temp 2-component vector of float)
+0:115 'inF0' (temp 2-component vector of float)
+0:115 Constant:
+0:115 0.301030
+0:116 log2 (global 2-component vector of float)
+0:116 'inF0' (temp 2-component vector of float)
+0:117 max (global 2-component vector of float)
+0:117 'inF0' (temp 2-component vector of float)
+0:117 'inF1' (temp 2-component vector of float)
+0:118 min (global 2-component vector of float)
+0:118 'inF0' (temp 2-component vector of float)
+0:118 'inF1' (temp 2-component vector of float)
+0:119 normalize (global 2-component vector of float)
+0:119 'inF0' (temp 2-component vector of float)
+0:120 pow (global 2-component vector of float)
+0:120 'inF0' (temp 2-component vector of float)
+0:120 'inF1' (temp 2-component vector of float)
+0:121 radians (global 2-component vector of float)
+0:121 'inF0' (temp 2-component vector of float)
+0:122 divide (temp 2-component vector of float)
+0:122 Constant:
+0:122 1.000000
+0:122 'inF0' (temp 2-component vector of float)
+0:123 reflect (global 2-component vector of float)
+0:123 'inF0' (temp 2-component vector of float)
+0:123 'inF1' (temp 2-component vector of float)
+0:124 refract (global 2-component vector of float)
+0:124 'inF0' (temp 2-component vector of float)
+0:124 'inF1' (temp 2-component vector of float)
+0:124 Constant:
+0:124 2.000000
+0:? bitFieldReverse (global 2-component vector of uint)
+0:? Constant:
+0:? 1 (const uint)
+0:? 2 (const uint)
+0:126 roundEven (global 2-component vector of float)
+0:126 'inF0' (temp 2-component vector of float)
+0:127 inverse sqrt (global 2-component vector of float)
+0:127 'inF0' (temp 2-component vector of float)
+0:128 clamp (global 2-component vector of float)
+0:128 'inF0' (temp 2-component vector of float)
+0:128 Constant:
+0:128 0.000000
+0:128 Constant:
+0:128 1.000000
+0:129 Sign (global 2-component vector of float)
+0:129 'inF0' (temp 2-component vector of float)
+0:130 sine (global 2-component vector of float)
+0:130 'inF0' (temp 2-component vector of float)
+0:131 Sequence
+0:131 move second child to first child (temp 2-component vector of float)
+0:131 'inF1' (temp 2-component vector of float)
+0:131 sine (temp 2-component vector of float)
+0:131 'inF0' (temp 2-component vector of float)
+0:131 move second child to first child (temp 2-component vector of float)
+0:131 'inF2' (temp 2-component vector of float)
+0:131 cosine (temp 2-component vector of float)
+0:131 'inF0' (temp 2-component vector of float)
+0:132 hyp. sine (global 2-component vector of float)
+0:132 'inF0' (temp 2-component vector of float)
+0:133 smoothstep (global 2-component vector of float)
+0:133 'inF0' (temp 2-component vector of float)
+0:133 'inF1' (temp 2-component vector of float)
+0:133 'inF2' (temp 2-component vector of float)
+0:134 sqrt (global 2-component vector of float)
+0:134 'inF0' (temp 2-component vector of float)
+0:135 step (global 2-component vector of float)
+0:135 'inF0' (temp 2-component vector of float)
+0:135 'inF1' (temp 2-component vector of float)
+0:136 tangent (global 2-component vector of float)
+0:136 'inF0' (temp 2-component vector of float)
+0:137 hyp. tangent (global 2-component vector of float)
+0:137 'inF0' (temp 2-component vector of float)
+0:139 trunc (global 2-component vector of float)
+0:139 'inF0' (temp 2-component vector of float)
+0:142 Branch: Return with expression
+0:? Constant:
+0:? 1.000000
+0:? 2.000000
+0:219 Function Definition: PixelShaderFunction(vf3;vf3;vf3; (temp 3-component vector of float)
+0:146 Function Parameters:
+0:146 'inF0' (temp 3-component vector of float)
+0:146 'inF1' (temp 3-component vector of float)
+0:146 'inF2' (temp 3-component vector of float)
+0:? Sequence
+0:147 all (global bool)
+0:147 'inF0' (temp 3-component vector of float)
+0:148 Absolute value (global 3-component vector of float)
+0:148 'inF0' (temp 3-component vector of float)
+0:149 arc cosine (global 3-component vector of float)
+0:149 'inF0' (temp 3-component vector of float)
+0:150 any (global bool)
+0:150 'inF0' (temp 3-component vector of float)
+0:151 arc sine (global 3-component vector of float)
+0:151 'inF0' (temp 3-component vector of float)
+0:152 arc tangent (global 3-component vector of float)
+0:152 'inF0' (temp 3-component vector of float)
+0:153 arc tangent (global 3-component vector of float)
+0:153 'inF0' (temp 3-component vector of float)
+0:153 'inF1' (temp 3-component vector of float)
+0:154 Ceiling (global 3-component vector of float)
+0:154 'inF0' (temp 3-component vector of float)
+0:155 clamp (global 3-component vector of float)
+0:155 'inF0' (temp 3-component vector of float)
+0:155 'inF1' (temp 3-component vector of float)
+0:155 'inF2' (temp 3-component vector of float)
+0:156 Test condition and select (temp void)
+0:156 Condition
+0:156 any (temp bool)
+0:156 Compare Less Than (temp 3-component vector of bool)
+0:156 'inF0' (temp 3-component vector of float)
+0:156 Constant:
+0:156 0.000000
+0:156 0.000000
+0:156 0.000000
+0:156 true case
+0:156 Branch: Kill
+0:157 cosine (global 3-component vector of float)
+0:157 'inF0' (temp 3-component vector of float)
+0:158 hyp. cosine (global 3-component vector of float)
+0:158 'inF0' (temp 3-component vector of float)
+0:? bitCount (global 3-component vector of uint)
+0:? Constant:
+0:? 7 (const uint)
+0:? 3 (const uint)
+0:? 5 (const uint)
+0:160 cross-product (global 3-component vector of float)
+0:160 'inF0' (temp 3-component vector of float)
+0:160 'inF1' (temp 3-component vector of float)
+0:161 dPdx (global 3-component vector of float)
+0:161 'inF0' (temp 3-component vector of float)
+0:162 dPdxCoarse (global 3-component vector of float)
+0:162 'inF0' (temp 3-component vector of float)
+0:163 dPdxFine (global 3-component vector of float)
+0:163 'inF0' (temp 3-component vector of float)
+0:164 dPdy (global 3-component vector of float)
+0:164 'inF0' (temp 3-component vector of float)
+0:165 dPdyCoarse (global 3-component vector of float)
+0:165 'inF0' (temp 3-component vector of float)
+0:166 dPdyFine (global 3-component vector of float)
+0:166 'inF0' (temp 3-component vector of float)
+0:167 degrees (global 3-component vector of float)
+0:167 'inF0' (temp 3-component vector of float)
+0:168 distance (global float)
+0:168 'inF0' (temp 3-component vector of float)
+0:168 'inF1' (temp 3-component vector of float)
+0:169 dot-product (global float)
+0:169 'inF0' (temp 3-component vector of float)
+0:169 'inF1' (temp 3-component vector of float)
+0:173 exp (global 3-component vector of float)
+0:173 'inF0' (temp 3-component vector of float)
+0:174 exp2 (global 3-component vector of float)
+0:174 'inF0' (temp 3-component vector of float)
+0:175 face-forward (global 3-component vector of float)
+0:175 'inF0' (temp 3-component vector of float)
+0:175 'inF1' (temp 3-component vector of float)
+0:175 'inF2' (temp 3-component vector of float)
+0:176 findMSB (global int)
+0:176 Constant:
+0:176 7 (const int)
+0:177 findLSB (global int)
+0:177 Constant:
+0:177 7 (const int)
+0:178 Floor (global 3-component vector of float)
+0:178 'inF0' (temp 3-component vector of float)
+0:180 mod (global 3-component vector of float)
+0:180 'inF0' (temp 3-component vector of float)
+0:180 'inF1' (temp 3-component vector of float)
+0:181 Fraction (global 3-component vector of float)
+0:181 'inF0' (temp 3-component vector of float)
+0:182 frexp (global 3-component vector of float)
+0:182 'inF0' (temp 3-component vector of float)
+0:182 'inF1' (temp 3-component vector of float)
+0:183 fwidth (global 3-component vector of float)
+0:183 'inF0' (temp 3-component vector of float)
+0:184 isinf (global 3-component vector of bool)
+0:184 'inF0' (temp 3-component vector of float)
+0:185 isnan (global 3-component vector of bool)
+0:185 'inF0' (temp 3-component vector of float)
+0:186 ldexp (global 3-component vector of float)
+0:186 'inF0' (temp 3-component vector of float)
+0:186 'inF1' (temp 3-component vector of float)
+0:187 length (global float)
+0:187 'inF0' (temp 3-component vector of float)
+0:188 log (global 3-component vector of float)
+0:188 'inF0' (temp 3-component vector of float)
+0:189 vector-scale (temp 3-component vector of float)
+0:189 log2 (temp 3-component vector of float)
+0:189 'inF0' (temp 3-component vector of float)
+0:189 Constant:
+0:189 0.301030
+0:190 log2 (global 3-component vector of float)
+0:190 'inF0' (temp 3-component vector of float)
+0:191 max (global 3-component vector of float)
+0:191 'inF0' (temp 3-component vector of float)
+0:191 'inF1' (temp 3-component vector of float)
+0:192 min (global 3-component vector of float)
+0:192 'inF0' (temp 3-component vector of float)
+0:192 'inF1' (temp 3-component vector of float)
+0:193 normalize (global 3-component vector of float)
+0:193 'inF0' (temp 3-component vector of float)
+0:194 pow (global 3-component vector of float)
+0:194 'inF0' (temp 3-component vector of float)
+0:194 'inF1' (temp 3-component vector of float)
+0:195 radians (global 3-component vector of float)
+0:195 'inF0' (temp 3-component vector of float)
+0:196 divide (temp 3-component vector of float)
+0:196 Constant:
+0:196 1.000000
+0:196 'inF0' (temp 3-component vector of float)
+0:197 reflect (global 3-component vector of float)
+0:197 'inF0' (temp 3-component vector of float)
+0:197 'inF1' (temp 3-component vector of float)
+0:198 refract (global 3-component vector of float)
+0:198 'inF0' (temp 3-component vector of float)
+0:198 'inF1' (temp 3-component vector of float)
+0:198 Constant:
+0:198 2.000000
+0:? bitFieldReverse (global 3-component vector of uint)
+0:? Constant:
+0:? 1 (const uint)
+0:? 2 (const uint)
+0:? 3 (const uint)
+0:200 roundEven (global 3-component vector of float)
+0:200 'inF0' (temp 3-component vector of float)
+0:201 inverse sqrt (global 3-component vector of float)
+0:201 'inF0' (temp 3-component vector of float)
+0:202 clamp (global 3-component vector of float)
+0:202 'inF0' (temp 3-component vector of float)
+0:202 Constant:
+0:202 0.000000
+0:202 Constant:
+0:202 1.000000
+0:203 Sign (global 3-component vector of float)
+0:203 'inF0' (temp 3-component vector of float)
+0:204 sine (global 3-component vector of float)
+0:204 'inF0' (temp 3-component vector of float)
+0:205 Sequence
+0:205 move second child to first child (temp 3-component vector of float)
+0:205 'inF1' (temp 3-component vector of float)
+0:205 sine (temp 3-component vector of float)
+0:205 'inF0' (temp 3-component vector of float)
+0:205 move second child to first child (temp 3-component vector of float)
+0:205 'inF2' (temp 3-component vector of float)
+0:205 cosine (temp 3-component vector of float)
+0:205 'inF0' (temp 3-component vector of float)
+0:206 hyp. sine (global 3-component vector of float)
+0:206 'inF0' (temp 3-component vector of float)
+0:207 smoothstep (global 3-component vector of float)
+0:207 'inF0' (temp 3-component vector of float)
+0:207 'inF1' (temp 3-component vector of float)
+0:207 'inF2' (temp 3-component vector of float)
+0:208 sqrt (global 3-component vector of float)
+0:208 'inF0' (temp 3-component vector of float)
+0:209 step (global 3-component vector of float)
+0:209 'inF0' (temp 3-component vector of float)
+0:209 'inF1' (temp 3-component vector of float)
+0:210 tangent (global 3-component vector of float)
+0:210 'inF0' (temp 3-component vector of float)
+0:211 hyp. tangent (global 3-component vector of float)
+0:211 'inF0' (temp 3-component vector of float)
+0:213 trunc (global 3-component vector of float)
+0:213 'inF0' (temp 3-component vector of float)
+0:216 Branch: Return with expression
+0:? Constant:
+0:? 1.000000
+0:? 2.000000
+0:? 3.000000
+0:349 Function Definition: PixelShaderFunction(vf4;vf4;vf4; (temp 4-component vector of float)
+0:220 Function Parameters:
+0:220 'inF0' (temp 4-component vector of float)
+0:220 'inF1' (temp 4-component vector of float)
+0:220 'inF2' (temp 4-component vector of float)
+0:? Sequence
+0:221 all (global bool)
+0:221 'inF0' (temp 4-component vector of float)
+0:222 Absolute value (global 4-component vector of float)
+0:222 'inF0' (temp 4-component vector of float)
+0:223 arc cosine (global 4-component vector of float)
+0:223 'inF0' (temp 4-component vector of float)
+0:224 any (global bool)
+0:224 'inF0' (temp 4-component vector of float)
+0:225 arc sine (global 4-component vector of float)
+0:225 'inF0' (temp 4-component vector of float)
+0:226 arc tangent (global 4-component vector of float)
+0:226 'inF0' (temp 4-component vector of float)
+0:227 arc tangent (global 4-component vector of float)
+0:227 'inF0' (temp 4-component vector of float)
+0:227 'inF1' (temp 4-component vector of float)
+0:228 Ceiling (global 4-component vector of float)
+0:228 'inF0' (temp 4-component vector of float)
+0:229 clamp (global 4-component vector of float)
+0:229 'inF0' (temp 4-component vector of float)
+0:229 'inF1' (temp 4-component vector of float)
+0:229 'inF2' (temp 4-component vector of float)
+0:230 Test condition and select (temp void)
+0:230 Condition
+0:230 any (temp bool)
+0:230 Compare Less Than (temp 4-component vector of bool)
+0:230 'inF0' (temp 4-component vector of float)
+0:230 Constant:
+0:230 0.000000
+0:230 0.000000
+0:230 0.000000
+0:230 0.000000
+0:230 true case
+0:230 Branch: Kill
+0:231 cosine (global 4-component vector of float)
+0:231 'inF0' (temp 4-component vector of float)
+0:232 hyp. cosine (global 4-component vector of float)
+0:232 'inF0' (temp 4-component vector of float)
+0:? bitCount (global 4-component vector of uint)
+0:? Constant:
+0:? 7 (const uint)
+0:? 3 (const uint)
+0:? 5 (const uint)
+0:? 2 (const uint)
+0:234 dPdx (global 4-component vector of float)
+0:234 'inF0' (temp 4-component vector of float)
+0:235 dPdxCoarse (global 4-component vector of float)
+0:235 'inF0' (temp 4-component vector of float)
+0:236 dPdxFine (global 4-component vector of float)
+0:236 'inF0' (temp 4-component vector of float)
+0:237 dPdy (global 4-component vector of float)
+0:237 'inF0' (temp 4-component vector of float)
+0:238 dPdyCoarse (global 4-component vector of float)
+0:238 'inF0' (temp 4-component vector of float)
+0:239 dPdyFine (global 4-component vector of float)
+0:239 'inF0' (temp 4-component vector of float)
+0:240 degrees (global 4-component vector of float)
+0:240 'inF0' (temp 4-component vector of float)
+0:241 distance (global float)
+0:241 'inF0' (temp 4-component vector of float)
+0:241 'inF1' (temp 4-component vector of float)
+0:242 dot-product (global float)
+0:242 'inF0' (temp 4-component vector of float)
+0:242 'inF1' (temp 4-component vector of float)
+0:243 Construct vec4 (temp float)
+0:243 Constant:
+0:243 1.000000
+0:243 component-wise multiply (temp float)
+0:243 direct index (temp float)
+0:243 'inF0' (temp 4-component vector of float)
+0:243 Constant:
+0:243 1 (const int)
+0:243 direct index (temp float)
+0:243 'inF1' (temp 4-component vector of float)
+0:243 Constant:
+0:243 1 (const int)
+0:243 direct index (temp float)
+0:243 'inF0' (temp 4-component vector of float)
+0:243 Constant:
+0:243 2 (const int)
+0:243 direct index (temp float)
+0:243 'inF1' (temp 4-component vector of float)
+0:243 Constant:
+0:243 3 (const int)
+0:247 exp (global 4-component vector of float)
+0:247 'inF0' (temp 4-component vector of float)
+0:248 exp2 (global 4-component vector of float)
+0:248 'inF0' (temp 4-component vector of float)
+0:249 face-forward (global 4-component vector of float)
+0:249 'inF0' (temp 4-component vector of float)
+0:249 'inF1' (temp 4-component vector of float)
+0:249 'inF2' (temp 4-component vector of float)
+0:250 findMSB (global int)
+0:250 Constant:
+0:250 7 (const int)
+0:251 findLSB (global int)
+0:251 Constant:
+0:251 7 (const int)
+0:252 Floor (global 4-component vector of float)
+0:252 'inF0' (temp 4-component vector of float)
+0:254 mod (global 4-component vector of float)
+0:254 'inF0' (temp 4-component vector of float)
+0:254 'inF1' (temp 4-component vector of float)
+0:255 Fraction (global 4-component vector of float)
+0:255 'inF0' (temp 4-component vector of float)
+0:256 frexp (global 4-component vector of float)
+0:256 'inF0' (temp 4-component vector of float)
+0:256 'inF1' (temp 4-component vector of float)
+0:257 fwidth (global 4-component vector of float)
+0:257 'inF0' (temp 4-component vector of float)
+0:258 isinf (global 4-component vector of bool)
+0:258 'inF0' (temp 4-component vector of float)
+0:259 isnan (global 4-component vector of bool)
+0:259 'inF0' (temp 4-component vector of float)
+0:260 ldexp (global 4-component vector of float)
+0:260 'inF0' (temp 4-component vector of float)
+0:260 'inF1' (temp 4-component vector of float)
+0:261 length (global float)
+0:261 'inF0' (temp 4-component vector of float)
+0:262 log (global 4-component vector of float)
+0:262 'inF0' (temp 4-component vector of float)
+0:263 vector-scale (temp 4-component vector of float)
+0:263 log2 (temp 4-component vector of float)
+0:263 'inF0' (temp 4-component vector of float)
+0:263 Constant:
+0:263 0.301030
+0:264 log2 (global 4-component vector of float)
+0:264 'inF0' (temp 4-component vector of float)
+0:265 max (global 4-component vector of float)
+0:265 'inF0' (temp 4-component vector of float)
+0:265 'inF1' (temp 4-component vector of float)
+0:266 min (global 4-component vector of float)
+0:266 'inF0' (temp 4-component vector of float)
+0:266 'inF1' (temp 4-component vector of float)
+0:267 normalize (global 4-component vector of float)
+0:267 'inF0' (temp 4-component vector of float)
+0:268 pow (global 4-component vector of float)
+0:268 'inF0' (temp 4-component vector of float)
+0:268 'inF1' (temp 4-component vector of float)
+0:269 radians (global 4-component vector of float)
+0:269 'inF0' (temp 4-component vector of float)
+0:270 divide (temp 4-component vector of float)
+0:270 Constant:
+0:270 1.000000
+0:270 'inF0' (temp 4-component vector of float)
+0:271 reflect (global 4-component vector of float)
+0:271 'inF0' (temp 4-component vector of float)
+0:271 'inF1' (temp 4-component vector of float)
+0:272 refract (global 4-component vector of float)
+0:272 'inF0' (temp 4-component vector of float)
+0:272 'inF1' (temp 4-component vector of float)
+0:272 Constant:
+0:272 2.000000
+0:? bitFieldReverse (global 4-component vector of uint)
+0:? Constant:
+0:? 1 (const uint)
+0:? 2 (const uint)
+0:? 3 (const uint)
+0:? 4 (const uint)
+0:274 roundEven (global 4-component vector of float)
+0:274 'inF0' (temp 4-component vector of float)
+0:275 inverse sqrt (global 4-component vector of float)
+0:275 'inF0' (temp 4-component vector of float)
+0:276 clamp (global 4-component vector of float)
+0:276 'inF0' (temp 4-component vector of float)
+0:276 Constant:
+0:276 0.000000
+0:276 Constant:
+0:276 1.000000
+0:277 Sign (global 4-component vector of float)
+0:277 'inF0' (temp 4-component vector of float)
+0:278 sine (global 4-component vector of float)
+0:278 'inF0' (temp 4-component vector of float)
+0:279 Sequence
+0:279 move second child to first child (temp 4-component vector of float)
+0:279 'inF1' (temp 4-component vector of float)
+0:279 sine (temp 4-component vector of float)
+0:279 'inF0' (temp 4-component vector of float)
+0:279 move second child to first child (temp 4-component vector of float)
+0:279 'inF2' (temp 4-component vector of float)
+0:279 cosine (temp 4-component vector of float)
+0:279 'inF0' (temp 4-component vector of float)
+0:280 hyp. sine (global 4-component vector of float)
+0:280 'inF0' (temp 4-component vector of float)
+0:281 smoothstep (global 4-component vector of float)
+0:281 'inF0' (temp 4-component vector of float)
+0:281 'inF1' (temp 4-component vector of float)
+0:281 'inF2' (temp 4-component vector of float)
+0:282 sqrt (global 4-component vector of float)
+0:282 'inF0' (temp 4-component vector of float)
+0:283 step (global 4-component vector of float)
+0:283 'inF0' (temp 4-component vector of float)
+0:283 'inF1' (temp 4-component vector of float)
+0:284 tangent (global 4-component vector of float)
+0:284 'inF0' (temp 4-component vector of float)
+0:285 hyp. tangent (global 4-component vector of float)
+0:285 'inF0' (temp 4-component vector of float)
+0:287 trunc (global 4-component vector of float)
+0:287 'inF0' (temp 4-component vector of float)
+0:290 Branch: Return with expression
+0:? Constant:
+0:? 1.000000
+0:? 2.000000
+0:? 3.000000
+0:? 4.000000
+0:358 Function Definition: PixelShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float)
+0:350 Function Parameters:
+0:350 'inF0' (temp 2X2 matrix of float)
+0:350 'inF1' (temp 2X2 matrix of float)
+0:350 'inF2' (temp 2X2 matrix of float)
+0:? Sequence
+0:352 all (global bool)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 Absolute value (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 arc cosine (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 any (global bool)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 arc sine (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 arc tangent (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 arc tangent (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 'inF1' (temp 2X2 matrix of float)
+0:352 Ceiling (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 Test condition and select (temp void)
+0:352 Condition
+0:352 any (temp bool)
+0:352 Compare Less Than (temp 2X2 matrix of bool)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 Constant:
+0:352 0.000000
+0:352 0.000000
+0:352 0.000000
+0:352 0.000000
+0:352 true case
+0:352 Branch: Kill
+0:352 clamp (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 'inF1' (temp 2X2 matrix of float)
+0:352 'inF2' (temp 2X2 matrix of float)
+0:352 cosine (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 hyp. cosine (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 dPdx (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 dPdxCoarse (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 dPdxFine (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 dPdy (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 dPdyCoarse (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 dPdyFine (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 degrees (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 determinant (global float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 exp (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 exp2 (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 findMSB (global int)
+0:352 Constant:
+0:352 7 (const int)
+0:352 findLSB (global int)
+0:352 Constant:
+0:352 7 (const int)
+0:352 Floor (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 mod (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 'inF1' (temp 2X2 matrix of float)
+0:352 Fraction (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 frexp (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 'inF1' (temp 2X2 matrix of float)
+0:352 fwidth (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 ldexp (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 'inF1' (temp 2X2 matrix of float)
+0:352 log (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 matrix-scale (temp 2X2 matrix of float)
+0:352 log2 (temp 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 Constant:
+0:352 0.301030
+0:352 log2 (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 max (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 'inF1' (temp 2X2 matrix of float)
+0:352 min (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 'inF1' (temp 2X2 matrix of float)
+0:352 pow (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 'inF1' (temp 2X2 matrix of float)
+0:352 radians (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 roundEven (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 inverse sqrt (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 clamp (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 Constant:
+0:352 0.000000
+0:352 Constant:
+0:352 1.000000
+0:352 Sign (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 sine (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 Sequence
+0:352 move second child to first child (temp 2X2 matrix of float)
+0:352 'inF1' (temp 2X2 matrix of float)
+0:352 sine (temp 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 move second child to first child (temp 2X2 matrix of float)
+0:352 'inF2' (temp 2X2 matrix of float)
+0:352 cosine (temp 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 hyp. sine (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 smoothstep (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 'inF1' (temp 2X2 matrix of float)
+0:352 'inF2' (temp 2X2 matrix of float)
+0:352 sqrt (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 step (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 'inF1' (temp 2X2 matrix of float)
+0:352 tangent (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 hyp. tangent (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 transpose (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:352 trunc (global 2X2 matrix of float)
+0:352 'inF0' (temp 2X2 matrix of float)
+0:355 Branch: Return with expression
+0:? Constant:
+0:? 2.000000
+0:? 2.000000
+0:? 2.000000
+0:? 2.000000
+0:367 Function Definition: PixelShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float)
+0:359 Function Parameters:
+0:359 'inF0' (temp 3X3 matrix of float)
+0:359 'inF1' (temp 3X3 matrix of float)
+0:359 'inF2' (temp 3X3 matrix of float)
+0:? Sequence
+0:361 all (global bool)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 Absolute value (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 arc cosine (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 any (global bool)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 arc sine (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 arc tangent (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 arc tangent (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 'inF1' (temp 3X3 matrix of float)
+0:361 Ceiling (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 Test condition and select (temp void)
+0:361 Condition
+0:361 any (temp bool)
+0:361 Compare Less Than (temp 3X3 matrix of bool)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 Constant:
+0:361 0.000000
+0:361 0.000000
+0:361 0.000000
+0:361 0.000000
+0:361 0.000000
+0:361 0.000000
+0:361 0.000000
+0:361 0.000000
+0:361 0.000000
+0:361 true case
+0:361 Branch: Kill
+0:361 clamp (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 'inF1' (temp 3X3 matrix of float)
+0:361 'inF2' (temp 3X3 matrix of float)
+0:361 cosine (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 hyp. cosine (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 dPdx (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 dPdxCoarse (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 dPdxFine (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 dPdy (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 dPdyCoarse (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 dPdyFine (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 degrees (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 determinant (global float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 exp (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 exp2 (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 findMSB (global int)
+0:361 Constant:
+0:361 7 (const int)
+0:361 findLSB (global int)
+0:361 Constant:
+0:361 7 (const int)
+0:361 Floor (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 mod (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 'inF1' (temp 3X3 matrix of float)
+0:361 Fraction (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 frexp (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 'inF1' (temp 3X3 matrix of float)
+0:361 fwidth (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 ldexp (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 'inF1' (temp 3X3 matrix of float)
+0:361 log (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 matrix-scale (temp 3X3 matrix of float)
+0:361 log2 (temp 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 Constant:
+0:361 0.301030
+0:361 log2 (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 max (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 'inF1' (temp 3X3 matrix of float)
+0:361 min (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 'inF1' (temp 3X3 matrix of float)
+0:361 pow (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 'inF1' (temp 3X3 matrix of float)
+0:361 radians (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 roundEven (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 inverse sqrt (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 clamp (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 Constant:
+0:361 0.000000
+0:361 Constant:
+0:361 1.000000
+0:361 Sign (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 sine (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 Sequence
+0:361 move second child to first child (temp 3X3 matrix of float)
+0:361 'inF1' (temp 3X3 matrix of float)
+0:361 sine (temp 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 move second child to first child (temp 3X3 matrix of float)
+0:361 'inF2' (temp 3X3 matrix of float)
+0:361 cosine (temp 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 hyp. sine (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 smoothstep (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 'inF1' (temp 3X3 matrix of float)
+0:361 'inF2' (temp 3X3 matrix of float)
+0:361 sqrt (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 step (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 'inF1' (temp 3X3 matrix of float)
+0:361 tangent (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 hyp. tangent (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 transpose (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:361 trunc (global 3X3 matrix of float)
+0:361 'inF0' (temp 3X3 matrix of float)
+0:364 Branch: Return with expression
+0:? Constant:
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:388 Function Definition: PixelShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float)
+0:368 Function Parameters:
+0:368 'inF0' (temp 4X4 matrix of float)
+0:368 'inF1' (temp 4X4 matrix of float)
+0:368 'inF2' (temp 4X4 matrix of float)
+0:? Sequence
+0:370 all (global bool)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 Absolute value (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 arc cosine (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 any (global bool)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 arc sine (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 arc tangent (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 arc tangent (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 'inF1' (temp 4X4 matrix of float)
+0:370 Ceiling (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 Test condition and select (temp void)
+0:370 Condition
+0:370 any (temp bool)
+0:370 Compare Less Than (temp 4X4 matrix of bool)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 Constant:
+0:370 0.000000
+0:370 0.000000
+0:370 0.000000
+0:370 0.000000
+0:370 0.000000
+0:370 0.000000
+0:370 0.000000
+0:370 0.000000
+0:370 0.000000
+0:370 0.000000
+0:370 0.000000
+0:370 0.000000
+0:370 0.000000
+0:370 0.000000
+0:370 0.000000
+0:370 0.000000
+0:370 true case
+0:370 Branch: Kill
+0:370 clamp (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 'inF1' (temp 4X4 matrix of float)
+0:370 'inF2' (temp 4X4 matrix of float)
+0:370 cosine (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 hyp. cosine (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 dPdx (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 dPdxCoarse (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 dPdxFine (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 dPdy (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 dPdyCoarse (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 dPdyFine (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 degrees (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 determinant (global float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 exp (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 exp2 (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 findMSB (global int)
+0:370 Constant:
+0:370 7 (const int)
+0:370 findLSB (global int)
+0:370 Constant:
+0:370 7 (const int)
+0:370 Floor (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 mod (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 'inF1' (temp 4X4 matrix of float)
+0:370 Fraction (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 frexp (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 'inF1' (temp 4X4 matrix of float)
+0:370 fwidth (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 ldexp (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 'inF1' (temp 4X4 matrix of float)
+0:370 log (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 matrix-scale (temp 4X4 matrix of float)
+0:370 log2 (temp 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 Constant:
+0:370 0.301030
+0:370 log2 (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 max (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 'inF1' (temp 4X4 matrix of float)
+0:370 min (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 'inF1' (temp 4X4 matrix of float)
+0:370 pow (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 'inF1' (temp 4X4 matrix of float)
+0:370 radians (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 roundEven (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 inverse sqrt (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 clamp (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 Constant:
+0:370 0.000000
+0:370 Constant:
+0:370 1.000000
+0:370 Sign (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 sine (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 Sequence
+0:370 move second child to first child (temp 4X4 matrix of float)
+0:370 'inF1' (temp 4X4 matrix of float)
+0:370 sine (temp 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 move second child to first child (temp 4X4 matrix of float)
+0:370 'inF2' (temp 4X4 matrix of float)
+0:370 cosine (temp 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 hyp. sine (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 smoothstep (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 'inF1' (temp 4X4 matrix of float)
+0:370 'inF2' (temp 4X4 matrix of float)
+0:370 sqrt (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 step (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 'inF1' (temp 4X4 matrix of float)
+0:370 tangent (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 hyp. tangent (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 transpose (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:370 trunc (global 4X4 matrix of float)
+0:370 'inF0' (temp 4X4 matrix of float)
+0:373 Branch: Return with expression
+0:? Constant:
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:395 Function Definition: TestGenMul(f1;f1;vf2;vf2;mf22;mf22; (temp void)
+0:391 Function Parameters:
+0:391 'inF0' (temp float)
+0:391 'inF1' (temp float)
+0:391 'inFV0' (temp 2-component vector of float)
+0:391 'inFV1' (temp 2-component vector of float)
+0:391 'inFM0' (temp 2X2 matrix of float)
+0:391 'inFM1' (temp 2X2 matrix of float)
+0:? Sequence
+0:392 move second child to first child (temp float)
+0:392 'r0' (temp float)
+0:392 component-wise multiply (temp float)
+0:392 'inF0' (temp float)
+0:392 'inF1' (temp float)
+0:392 move second child to first child (temp 2-component vector of float)
+0:392 'r1' (temp 2-component vector of float)
+0:392 vector-scale (temp 2-component vector of float)
+0:392 'inFV0' (temp 2-component vector of float)
+0:392 'inF0' (temp float)
+0:392 move second child to first child (temp 2-component vector of float)
+0:392 'r2' (temp 2-component vector of float)
+0:392 vector-scale (temp 2-component vector of float)
+0:392 'inF0' (temp float)
+0:392 'inFV0' (temp 2-component vector of float)
+0:392 move second child to first child (temp float)
+0:392 'r3' (temp float)
+0:392 dot-product (global float)
+0:392 'inFV0' (temp 2-component vector of float)
+0:392 'inFV1' (temp 2-component vector of float)
+0:392 move second child to first child (temp 2-component vector of float)
+0:392 'r4' (temp 2-component vector of float)
+0:392 matrix-times-vector (temp 2-component vector of float)
+0:392 'inFM0' (temp 2X2 matrix of float)
+0:392 'inFV0' (temp 2-component vector of float)
+0:392 move second child to first child (temp 2-component vector of float)
+0:392 'r5' (temp 2-component vector of float)
+0:392 vector-times-matrix (temp 2-component vector of float)
+0:392 'inFV0' (temp 2-component vector of float)
+0:392 'inFM0' (temp 2X2 matrix of float)
+0:392 move second child to first child (temp 2X2 matrix of float)
+0:392 'r6' (temp 2X2 matrix of float)
+0:392 matrix-scale (temp 2X2 matrix of float)
+0:392 'inFM0' (temp 2X2 matrix of float)
+0:392 'inF0' (temp float)
+0:392 move second child to first child (temp 2X2 matrix of float)
+0:392 'r7' (temp 2X2 matrix of float)
+0:392 matrix-scale (temp 2X2 matrix of float)
+0:392 'inF0' (temp float)
+0:392 'inFM0' (temp 2X2 matrix of float)
+0:392 move second child to first child (temp 2X2 matrix of float)
+0:392 'r8' (temp 2X2 matrix of float)
+0:392 matrix-multiply (temp 2X2 matrix of float)
+0:392 'inFM0' (temp 2X2 matrix of float)
+0:392 'inFM1' (temp 2X2 matrix of float)
+0:402 Function Definition: TestGenMul(f1;f1;vf3;vf3;mf33;mf33; (temp void)
+0:398 Function Parameters:
+0:398 'inF0' (temp float)
+0:398 'inF1' (temp float)
+0:398 'inFV0' (temp 3-component vector of float)
+0:398 'inFV1' (temp 3-component vector of float)
+0:398 'inFM0' (temp 3X3 matrix of float)
+0:398 'inFM1' (temp 3X3 matrix of float)
+0:? Sequence
+0:399 move second child to first child (temp float)
+0:399 'r0' (temp float)
+0:399 component-wise multiply (temp float)
+0:399 'inF0' (temp float)
+0:399 'inF1' (temp float)
+0:399 move second child to first child (temp 3-component vector of float)
+0:399 'r1' (temp 3-component vector of float)
+0:399 vector-scale (temp 3-component vector of float)
+0:399 'inFV0' (temp 3-component vector of float)
+0:399 'inF0' (temp float)
+0:399 move second child to first child (temp 3-component vector of float)
+0:399 'r2' (temp 3-component vector of float)
+0:399 vector-scale (temp 3-component vector of float)
+0:399 'inF0' (temp float)
+0:399 'inFV0' (temp 3-component vector of float)
+0:399 move second child to first child (temp float)
+0:399 'r3' (temp float)
+0:399 dot-product (global float)
+0:399 'inFV0' (temp 3-component vector of float)
+0:399 'inFV1' (temp 3-component vector of float)
+0:399 move second child to first child (temp 3-component vector of float)
+0:399 'r4' (temp 3-component vector of float)
+0:399 matrix-times-vector (temp 3-component vector of float)
+0:399 'inFM0' (temp 3X3 matrix of float)
+0:399 'inFV0' (temp 3-component vector of float)
+0:399 move second child to first child (temp 3-component vector of float)
+0:399 'r5' (temp 3-component vector of float)
+0:399 vector-times-matrix (temp 3-component vector of float)
+0:399 'inFV0' (temp 3-component vector of float)
+0:399 'inFM0' (temp 3X3 matrix of float)
+0:399 move second child to first child (temp 3X3 matrix of float)
+0:399 'r6' (temp 3X3 matrix of float)
+0:399 matrix-scale (temp 3X3 matrix of float)
+0:399 'inFM0' (temp 3X3 matrix of float)
+0:399 'inF0' (temp float)
+0:399 move second child to first child (temp 3X3 matrix of float)
+0:399 'r7' (temp 3X3 matrix of float)
+0:399 matrix-scale (temp 3X3 matrix of float)
+0:399 'inF0' (temp float)
+0:399 'inFM0' (temp 3X3 matrix of float)
+0:399 move second child to first child (temp 3X3 matrix of float)
+0:399 'r8' (temp 3X3 matrix of float)
+0:399 matrix-multiply (temp 3X3 matrix of float)
+0:399 'inFM0' (temp 3X3 matrix of float)
+0:399 'inFM1' (temp 3X3 matrix of float)
+0:408 Function Definition: TestGenMul(f1;f1;vf4;vf4;mf44;mf44; (temp void)
+0:405 Function Parameters:
+0:405 'inF0' (temp float)
+0:405 'inF1' (temp float)
+0:405 'inFV0' (temp 4-component vector of float)
+0:405 'inFV1' (temp 4-component vector of float)
+0:405 'inFM0' (temp 4X4 matrix of float)
+0:405 'inFM1' (temp 4X4 matrix of float)
+0:? Sequence
+0:406 move second child to first child (temp float)
+0:406 'r0' (temp float)
+0:406 component-wise multiply (temp float)
+0:406 'inF0' (temp float)
+0:406 'inF1' (temp float)
+0:406 move second child to first child (temp 4-component vector of float)
+0:406 'r1' (temp 4-component vector of float)
+0:406 vector-scale (temp 4-component vector of float)
+0:406 'inFV0' (temp 4-component vector of float)
+0:406 'inF0' (temp float)
+0:406 move second child to first child (temp 4-component vector of float)
+0:406 'r2' (temp 4-component vector of float)
+0:406 vector-scale (temp 4-component vector of float)
+0:406 'inF0' (temp float)
+0:406 'inFV0' (temp 4-component vector of float)
+0:406 move second child to first child (temp float)
+0:406 'r3' (temp float)
+0:406 dot-product (global float)
+0:406 'inFV0' (temp 4-component vector of float)
+0:406 'inFV1' (temp 4-component vector of float)
+0:406 move second child to first child (temp 4-component vector of float)
+0:406 'r4' (temp 4-component vector of float)
+0:406 matrix-times-vector (temp 4-component vector of float)
+0:406 'inFM0' (temp 4X4 matrix of float)
+0:406 'inFV0' (temp 4-component vector of float)
+0:406 move second child to first child (temp 4-component vector of float)
+0:406 'r5' (temp 4-component vector of float)
+0:406 vector-times-matrix (temp 4-component vector of float)
+0:406 'inFV0' (temp 4-component vector of float)
+0:406 'inFM0' (temp 4X4 matrix of float)
+0:406 move second child to first child (temp 4X4 matrix of float)
+0:406 'r6' (temp 4X4 matrix of float)
+0:406 matrix-scale (temp 4X4 matrix of float)
+0:406 'inFM0' (temp 4X4 matrix of float)
+0:406 'inF0' (temp float)
+0:406 move second child to first child (temp 4X4 matrix of float)
+0:406 'r7' (temp 4X4 matrix of float)
+0:406 matrix-scale (temp 4X4 matrix of float)
+0:406 'inF0' (temp float)
+0:406 'inFM0' (temp 4X4 matrix of float)
+0:406 move second child to first child (temp 4X4 matrix of float)
+0:406 'r8' (temp 4X4 matrix of float)
+0:406 matrix-multiply (temp 4X4 matrix of float)
+0:406 'inFM0' (temp 4X4 matrix of float)
+0:406 'inFM1' (temp 4X4 matrix of float)
+0:? Linker Objects
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 1209
+
+ Capability Shader
+ Capability DerivativeControl
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "PixelShaderFunction"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "PixelShaderFunction"
+ Name 19 "TestGenMul(f1;f1;vf2;vf2;mf22;mf22;"
+ Name 13 "inF0"
+ Name 14 "inF1"
+ Name 15 "inFV0"
+ Name 16 "inFV1"
+ Name 17 "inFM0"
+ Name 18 "inFM1"
+ Name 32 "TestGenMul(f1;f1;vf3;vf3;mf33;mf33;"
+ Name 26 "inF0"
+ Name 27 "inF1"
+ Name 28 "inFV0"
+ Name 29 "inFV1"
+ Name 30 "inFM0"
+ Name 31 "inFM1"
+ Name 45 "TestGenMul(f1;f1;vf4;vf4;mf44;mf44;"
+ Name 39 "inF0"
+ Name 40 "inF1"
+ Name 41 "inFV0"
+ Name 42 "inFV1"
+ Name 43 "inFM0"
+ Name 44 "inFM1"
+ Name 47 "inF0"
+ Name 62 "inF1"
+ Name 69 "inF2"
+ Name 115 "ResType"
+ Name 185 "inF0"
+ Name 199 "inF1"
+ Name 206 "inF2"
+ Name 264 "ResType"
+ Name 347 "inF0"
+ Name 361 "inF1"
+ Name 368 "inF2"
+ Name 429 "ResType"
+ Name 511 "inF0"
+ Name 525 "inF1"
+ Name 532 "inF2"
+ Name 598 "ResType"
+ Name 681 "inF0"
+ Name 695 "inF1"
+ Name 710 "inF2"
+ Name 753 "ResType"
+ Name 818 "inF0"
+ Name 832 "inF1"
+ Name 847 "inF2"
+ Name 893 "ResType"
+ Name 958 "inF0"
+ Name 972 "inF1"
+ Name 987 "inF2"
+ Name 1036 "ResType"
+ Name 1101 "r0"
+ Name 1105 "r1"
+ Name 1109 "r2"
+ Name 1113 "r3"
+ Name 1117 "r4"
+ Name 1121 "r5"
+ Name 1125 "r6"
+ Name 1129 "r7"
+ Name 1133 "r8"
+ Name 1137 "r0"
+ Name 1141 "r1"
+ Name 1145 "r2"
+ Name 1149 "r3"
+ Name 1153 "r4"
+ Name 1157 "r5"
+ Name 1161 "r6"
+ Name 1165 "r7"
+ Name 1169 "r8"
+ Name 1173 "r0"
+ Name 1177 "r1"
+ Name 1181 "r2"
+ Name 1185 "r3"
+ Name 1189 "r4"
+ Name 1193 "r5"
+ Name 1197 "r6"
+ Name 1201 "r7"
+ Name 1205 "r8"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypePointer Function 6(float)
+ 8: TypeVector 6(float) 2
+ 9: TypePointer Function 8(fvec2)
+ 10: TypeMatrix 8(fvec2) 2
+ 11: TypePointer Function 10
+ 12: TypeFunction 2 7(ptr) 7(ptr) 9(ptr) 9(ptr) 11(ptr) 11(ptr)
+ 21: TypeVector 6(float) 3
+ 22: TypePointer Function 21(fvec3)
+ 23: TypeMatrix 21(fvec3) 3
+ 24: TypePointer Function 23
+ 25: TypeFunction 2 7(ptr) 7(ptr) 22(ptr) 22(ptr) 24(ptr) 24(ptr)
+ 34: TypeVector 6(float) 4
+ 35: TypePointer Function 34(fvec4)
+ 36: TypeMatrix 34(fvec4) 4
+ 37: TypePointer Function 36
+ 38: TypeFunction 2 7(ptr) 7(ptr) 35(ptr) 35(ptr) 37(ptr) 37(ptr)
+ 49: TypeBool
+ 73: 6(float) Constant 0
+ 82: TypeInt 32 0
+ 83: 82(int) Constant 7
+ 103: TypeInt 32 1
+ 104: 103(int) Constant 7
+ 115(ResType): TypeStruct 6(float) 103(int)
+ 132: 6(float) Constant 1050288283
+ 147: 6(float) Constant 1065353216
+ 150: 82(int) Constant 2
+ 210: 8(fvec2) ConstantComposite 73 73
+ 211: TypeVector 49(bool) 2
+ 221: TypeVector 82(int) 2
+ 222: 82(int) Constant 3
+ 223: 221(ivec2) ConstantComposite 83 222
+ 263: TypeVector 103(int) 2
+ 264(ResType): TypeStruct 8(fvec2) 263(ivec2)
+ 307: 6(float) Constant 1073741824
+ 309: 82(int) Constant 1
+ 310: 221(ivec2) ConstantComposite 309 150
+ 345: 8(fvec2) ConstantComposite 147 307
+ 372: 21(fvec3) ConstantComposite 73 73 73
+ 373: TypeVector 49(bool) 3
+ 383: TypeVector 82(int) 3
+ 384: 82(int) Constant 5
+ 385: 383(ivec3) ConstantComposite 83 222 384
+ 428: TypeVector 103(int) 3
+ 429(ResType): TypeStruct 21(fvec3) 428(ivec3)
+ 473: 383(ivec3) ConstantComposite 309 150 222
+ 508: 6(float) Constant 1077936128
+ 509: 21(fvec3) ConstantComposite 147 307 508
+ 536: 34(fvec4) ConstantComposite 73 73 73 73
+ 537: TypeVector 49(bool) 4
+ 547: TypeVector 82(int) 4
+ 548: 547(ivec4) ConstantComposite 83 222 384 150
+ 597: TypeVector 103(int) 4
+ 598(ResType): TypeStruct 34(fvec4) 597(ivec4)
+ 642: 82(int) Constant 4
+ 643: 547(ivec4) ConstantComposite 309 150 222 642
+ 678: 6(float) Constant 1082130432
+ 679: 34(fvec4) ConstantComposite 147 307 508 678
+ 701: 10 ConstantComposite 210 210
+ 702: TypeMatrix 211(bvec2) 2
+ 753(ResType): TypeStruct 10 263(ivec2)
+ 815: 8(fvec2) ConstantComposite 307 307
+ 816: 10 ConstantComposite 815 815
+ 838: 23 ConstantComposite 372 372 372
+ 839: TypeMatrix 373(bvec3) 3
+ 893(ResType): TypeStruct 23 428(ivec3)
+ 955: 21(fvec3) ConstantComposite 508 508 508
+ 956: 23 ConstantComposite 955 955 955
+ 978: 36 ConstantComposite 536 536 536 536
+ 979: TypeMatrix 537(bvec4) 4
+ 1036(ResType): TypeStruct 36 597(ivec4)
+ 1098: 34(fvec4) ConstantComposite 678 678 678 678
+ 1099: 36 ConstantComposite 1098 1098 1098 1098
+4(PixelShaderFunction): 2 Function None 3
+ 5: Label
+ 47(inF0): 7(ptr) Variable Function
+ 62(inF1): 7(ptr) Variable Function
+ 69(inF2): 7(ptr) Variable Function
+ 185(inF0): 9(ptr) Variable Function
+ 199(inF1): 9(ptr) Variable Function
+ 206(inF2): 9(ptr) Variable Function
+ 347(inF0): 22(ptr) Variable Function
+ 361(inF1): 22(ptr) Variable Function
+ 368(inF2): 22(ptr) Variable Function
+ 511(inF0): 35(ptr) Variable Function
+ 525(inF1): 35(ptr) Variable Function
+ 532(inF2): 35(ptr) Variable Function
+ 681(inF0): 11(ptr) Variable Function
+ 695(inF1): 11(ptr) Variable Function
+ 710(inF2): 11(ptr) Variable Function
+ 818(inF0): 24(ptr) Variable Function
+ 832(inF1): 24(ptr) Variable Function
+ 847(inF2): 24(ptr) Variable Function
+ 958(inF0): 37(ptr) Variable Function
+ 972(inF1): 37(ptr) Variable Function
+ 987(inF2): 37(ptr) Variable Function
+ 48: 6(float) Load 47(inF0)
+ 50: 49(bool) All 48
+ 51: 6(float) Load 47(inF0)
+ 52: 6(float) ExtInst 1(GLSL.std.450) 4(FAbs) 51
+ 53: 6(float) Load 47(inF0)
+ 54: 6(float) ExtInst 1(GLSL.std.450) 17(Acos) 53
+ 55: 6(float) Load 47(inF0)
+ 56: 49(bool) Any 55
+ 57: 6(float) Load 47(inF0)
+ 58: 6(float) ExtInst 1(GLSL.std.450) 16(Asin) 57
+ 59: 6(float) Load 47(inF0)
+ 60: 6(float) ExtInst 1(GLSL.std.450) 18(Atan) 59
+ 61: 6(float) Load 47(inF0)
+ 63: 6(float) Load 62(inF1)
+ 64: 6(float) ExtInst 1(GLSL.std.450) 25(Atan2) 61 63
+ 65: 6(float) Load 47(inF0)
+ 66: 6(float) ExtInst 1(GLSL.std.450) 9(Ceil) 65
+ 67: 6(float) Load 47(inF0)
+ 68: 6(float) Load 62(inF1)
+ 70: 6(float) Load 69(inF2)
+ 71: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 67 68 70
+ 72: 6(float) Load 47(inF0)
+ 74: 49(bool) FOrdLessThan 72 73
+ SelectionMerge 76 None
+ BranchConditional 74 75 76
+ 75: Label
+ Kill
+ 76: Label
+ 78: 6(float) Load 47(inF0)
+ 79: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 78
+ 80: 6(float) Load 47(inF0)
+ 81: 6(float) ExtInst 1(GLSL.std.450) 20(Cosh) 80
+ 84: 82(int) BitCount 83
+ 85: 6(float) Load 47(inF0)
+ 86: 6(float) DPdx 85
+ 87: 6(float) Load 47(inF0)
+ 88: 6(float) DPdxCoarse 87
+ 89: 6(float) Load 47(inF0)
+ 90: 6(float) DPdxFine 89
+ 91: 6(float) Load 47(inF0)
+ 92: 6(float) DPdy 91
+ 93: 6(float) Load 47(inF0)
+ 94: 6(float) DPdyCoarse 93
+ 95: 6(float) Load 47(inF0)
+ 96: 6(float) DPdyFine 95
+ 97: 6(float) Load 47(inF0)
+ 98: 6(float) ExtInst 1(GLSL.std.450) 12(Degrees) 97
+ 99: 6(float) Load 47(inF0)
+ 100: 6(float) ExtInst 1(GLSL.std.450) 27(Exp) 99
+ 101: 6(float) Load 47(inF0)
+ 102: 6(float) ExtInst 1(GLSL.std.450) 29(Exp2) 101
+ 105: 103(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 104
+ 106: 103(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 104
+ 107: 6(float) Load 47(inF0)
+ 108: 6(float) ExtInst 1(GLSL.std.450) 8(Floor) 107
+ 109: 6(float) Load 47(inF0)
+ 110: 6(float) Load 62(inF1)
+ 111: 6(float) FMod 109 110
+ 112: 6(float) Load 47(inF0)
+ 113: 6(float) ExtInst 1(GLSL.std.450) 10(Fract) 112
+ 114: 6(float) Load 47(inF0)
+ 116:115(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 114
+ 117: 103(int) CompositeExtract 116 1
+ Store 62(inF1) 117
+ 118: 6(float) CompositeExtract 116 0
+ 119: 6(float) Load 47(inF0)
+ 120: 6(float) Fwidth 119
+ 121: 6(float) Load 47(inF0)
+ 122: 49(bool) IsInf 121
+ 123: 6(float) Load 47(inF0)
+ 124: 49(bool) IsNan 123
+ 125: 6(float) Load 47(inF0)
+ 126: 6(float) Load 62(inF1)
+ 127: 6(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 125 126
+ 128: 6(float) Load 47(inF0)
+ 129: 6(float) ExtInst 1(GLSL.std.450) 28(Log) 128
+ 130: 6(float) Load 47(inF0)
+ 131: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 130
+ 133: 6(float) FMul 131 132
+ 134: 6(float) Load 47(inF0)
+ 135: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 134
+ 136: 6(float) Load 47(inF0)
+ 137: 6(float) Load 62(inF1)
+ 138: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 136 137
+ 139: 6(float) Load 47(inF0)
+ 140: 6(float) Load 62(inF1)
+ 141: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 139 140
+ 142: 6(float) Load 47(inF0)
+ 143: 6(float) Load 62(inF1)
+ 144: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 142 143
+ 145: 6(float) Load 47(inF0)
+ 146: 6(float) ExtInst 1(GLSL.std.450) 11(Radians) 145
+ 148: 6(float) Load 47(inF0)
+ 149: 6(float) FDiv 147 148
+ 151: 82(int) BitReverse 150
+ 152: 6(float) Load 47(inF0)
+ 153: 6(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 152
+ 154: 6(float) Load 47(inF0)
+ 155: 6(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 154
+ 156: 6(float) Load 47(inF0)
+ 157: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 156 73 147
+ 158: 6(float) Load 47(inF0)
+ 159: 6(float) ExtInst 1(GLSL.std.450) 6(FSign) 158
+ 160: 6(float) Load 47(inF0)
+ 161: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 160
+ 162: 6(float) Load 47(inF0)
+ 163: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 162
+ Store 62(inF1) 163
+ 164: 6(float) Load 47(inF0)
+ 165: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 164
+ Store 69(inF2) 165
+ 166: 6(float) Load 47(inF0)
+ 167: 6(float) ExtInst 1(GLSL.std.450) 19(Sinh) 166
+ 168: 6(float) Load 47(inF0)
+ 169: 6(float) Load 62(inF1)
+ 170: 6(float) Load 69(inF2)
+ 171: 6(float) ExtInst 1(GLSL.std.450) 49(SmoothStep) 168 169 170
+ 172: 6(float) Load 47(inF0)
+ 173: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 172
+ 174: 6(float) Load 47(inF0)
+ 175: 6(float) Load 62(inF1)
+ 176: 6(float) ExtInst 1(GLSL.std.450) 48(Step) 174 175
+ 177: 6(float) Load 47(inF0)
+ 178: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 177
+ 179: 6(float) Load 47(inF0)
+ 180: 6(float) ExtInst 1(GLSL.std.450) 21(Tanh) 179
+ 181: 6(float) Load 47(inF0)
+ 182: 6(float) ExtInst 1(GLSL.std.450) 3(Trunc) 181
+ ReturnValue 73
+ FunctionEnd
+19(TestGenMul(f1;f1;vf2;vf2;mf22;mf22;): 2 Function None 12
+ 13(inF0): 7(ptr) FunctionParameter
+ 14(inF1): 7(ptr) FunctionParameter
+ 15(inFV0): 9(ptr) FunctionParameter
+ 16(inFV1): 9(ptr) FunctionParameter
+ 17(inFM0): 11(ptr) FunctionParameter
+ 18(inFM1): 11(ptr) FunctionParameter
+ 20: Label
+ 1101(r0): 7(ptr) Variable Function
+ 1105(r1): 9(ptr) Variable Function
+ 1109(r2): 9(ptr) Variable Function
+ 1113(r3): 7(ptr) Variable Function
+ 1117(r4): 9(ptr) Variable Function
+ 1121(r5): 9(ptr) Variable Function
+ 1125(r6): 11(ptr) Variable Function
+ 1129(r7): 11(ptr) Variable Function
+ 1133(r8): 11(ptr) Variable Function
+ 1102: 6(float) Load 13(inF0)
+ 1103: 6(float) Load 14(inF1)
+ 1104: 6(float) FMul 1102 1103
+ Store 1101(r0) 1104
+ 1106: 8(fvec2) Load 15(inFV0)
+ 1107: 6(float) Load 13(inF0)
+ 1108: 8(fvec2) VectorTimesScalar 1106 1107
+ Store 1105(r1) 1108
+ 1110: 6(float) Load 13(inF0)
+ 1111: 8(fvec2) Load 15(inFV0)
+ 1112: 8(fvec2) VectorTimesScalar 1111 1110
+ Store 1109(r2) 1112
+ 1114: 8(fvec2) Load 15(inFV0)
+ 1115: 8(fvec2) Load 16(inFV1)
+ 1116: 6(float) Dot 1114 1115
+ Store 1113(r3) 1116
+ 1118: 10 Load 17(inFM0)
+ 1119: 8(fvec2) Load 15(inFV0)
+ 1120: 8(fvec2) MatrixTimesVector 1118 1119
+ Store 1117(r4) 1120
+ 1122: 8(fvec2) Load 15(inFV0)
+ 1123: 10 Load 17(inFM0)
+ 1124: 8(fvec2) VectorTimesMatrix 1122 1123
+ Store 1121(r5) 1124
+ 1126: 10 Load 17(inFM0)
+ 1127: 6(float) Load 13(inF0)
+ 1128: 10 MatrixTimesScalar 1126 1127
+ Store 1125(r6) 1128
+ 1130: 6(float) Load 13(inF0)
+ 1131: 10 Load 17(inFM0)
+ 1132: 10 MatrixTimesScalar 1131 1130
+ Store 1129(r7) 1132
+ 1134: 10 Load 17(inFM0)
+ 1135: 10 Load 18(inFM1)
+ 1136: 10 MatrixTimesMatrix 1134 1135
+ Store 1133(r8) 1136
+ Return
+ FunctionEnd
+32(TestGenMul(f1;f1;vf3;vf3;mf33;mf33;): 2 Function None 25
+ 26(inF0): 7(ptr) FunctionParameter
+ 27(inF1): 7(ptr) FunctionParameter
+ 28(inFV0): 22(ptr) FunctionParameter
+ 29(inFV1): 22(ptr) FunctionParameter
+ 30(inFM0): 24(ptr) FunctionParameter
+ 31(inFM1): 24(ptr) FunctionParameter
+ 33: Label
+ 1137(r0): 7(ptr) Variable Function
+ 1141(r1): 22(ptr) Variable Function
+ 1145(r2): 22(ptr) Variable Function
+ 1149(r3): 7(ptr) Variable Function
+ 1153(r4): 22(ptr) Variable Function
+ 1157(r5): 22(ptr) Variable Function
+ 1161(r6): 24(ptr) Variable Function
+ 1165(r7): 24(ptr) Variable Function
+ 1169(r8): 24(ptr) Variable Function
+ 1138: 6(float) Load 26(inF0)
+ 1139: 6(float) Load 27(inF1)
+ 1140: 6(float) FMul 1138 1139
+ Store 1137(r0) 1140
+ 1142: 21(fvec3) Load 28(inFV0)
+ 1143: 6(float) Load 26(inF0)
+ 1144: 21(fvec3) VectorTimesScalar 1142 1143
+ Store 1141(r1) 1144
+ 1146: 6(float) Load 26(inF0)
+ 1147: 21(fvec3) Load 28(inFV0)
+ 1148: 21(fvec3) VectorTimesScalar 1147 1146
+ Store 1145(r2) 1148
+ 1150: 21(fvec3) Load 28(inFV0)
+ 1151: 21(fvec3) Load 29(inFV1)
+ 1152: 6(float) Dot 1150 1151
+ Store 1149(r3) 1152
+ 1154: 23 Load 30(inFM0)
+ 1155: 21(fvec3) Load 28(inFV0)
+ 1156: 21(fvec3) MatrixTimesVector 1154 1155
+ Store 1153(r4) 1156
+ 1158: 21(fvec3) Load 28(inFV0)
+ 1159: 23 Load 30(inFM0)
+ 1160: 21(fvec3) VectorTimesMatrix 1158 1159
+ Store 1157(r5) 1160
+ 1162: 23 Load 30(inFM0)
+ 1163: 6(float) Load 26(inF0)
+ 1164: 23 MatrixTimesScalar 1162 1163
+ Store 1161(r6) 1164
+ 1166: 6(float) Load 26(inF0)
+ 1167: 23 Load 30(inFM0)
+ 1168: 23 MatrixTimesScalar 1167 1166
+ Store 1165(r7) 1168
+ 1170: 23 Load 30(inFM0)
+ 1171: 23 Load 31(inFM1)
+ 1172: 23 MatrixTimesMatrix 1170 1171
+ Store 1169(r8) 1172
+ Return
+ FunctionEnd
+45(TestGenMul(f1;f1;vf4;vf4;mf44;mf44;): 2 Function None 38
+ 39(inF0): 7(ptr) FunctionParameter
+ 40(inF1): 7(ptr) FunctionParameter
+ 41(inFV0): 35(ptr) FunctionParameter
+ 42(inFV1): 35(ptr) FunctionParameter
+ 43(inFM0): 37(ptr) FunctionParameter
+ 44(inFM1): 37(ptr) FunctionParameter
+ 46: Label
+ 1173(r0): 7(ptr) Variable Function
+ 1177(r1): 35(ptr) Variable Function
+ 1181(r2): 35(ptr) Variable Function
+ 1185(r3): 7(ptr) Variable Function
+ 1189(r4): 35(ptr) Variable Function
+ 1193(r5): 35(ptr) Variable Function
+ 1197(r6): 37(ptr) Variable Function
+ 1201(r7): 37(ptr) Variable Function
+ 1205(r8): 37(ptr) Variable Function
+ 1174: 6(float) Load 39(inF0)
+ 1175: 6(float) Load 40(inF1)
+ 1176: 6(float) FMul 1174 1175
+ Store 1173(r0) 1176
+ 1178: 34(fvec4) Load 41(inFV0)
+ 1179: 6(float) Load 39(inF0)
+ 1180: 34(fvec4) VectorTimesScalar 1178 1179
+ Store 1177(r1) 1180
+ 1182: 6(float) Load 39(inF0)
+ 1183: 34(fvec4) Load 41(inFV0)
+ 1184: 34(fvec4) VectorTimesScalar 1183 1182
+ Store 1181(r2) 1184
+ 1186: 34(fvec4) Load 41(inFV0)
+ 1187: 34(fvec4) Load 42(inFV1)
+ 1188: 6(float) Dot 1186 1187
+ Store 1185(r3) 1188
+ 1190: 36 Load 43(inFM0)
+ 1191: 34(fvec4) Load 41(inFV0)
+ 1192: 34(fvec4) MatrixTimesVector 1190 1191
+ Store 1189(r4) 1192
+ 1194: 34(fvec4) Load 41(inFV0)
+ 1195: 36 Load 43(inFM0)
+ 1196: 34(fvec4) VectorTimesMatrix 1194 1195
+ Store 1193(r5) 1196
+ 1198: 36 Load 43(inFM0)
+ 1199: 6(float) Load 39(inF0)
+ 1200: 36 MatrixTimesScalar 1198 1199
+ Store 1197(r6) 1200
+ 1202: 6(float) Load 39(inF0)
+ 1203: 36 Load 43(inFM0)
+ 1204: 36 MatrixTimesScalar 1203 1202
+ Store 1201(r7) 1204
+ 1206: 36 Load 43(inFM0)
+ 1207: 36 Load 44(inFM1)
+ 1208: 36 MatrixTimesMatrix 1206 1207
+ Store 1205(r8) 1208
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/hlsl.intrinsics.negative.frag.out b/chromium/third_party/glslang/src/Test/baseResults/hlsl.intrinsics.negative.frag.out
new file mode 100644
index 00000000000..d1f9b429b4b
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/hlsl.intrinsics.negative.frag.out
@@ -0,0 +1,702 @@
+hlsl.intrinsics.negative.frag
+ERROR: 0:5: 'asdouble' : no matching overloaded function found
+ERROR: 0:6: 'CheckAccessFullyMapped' : no matching overloaded function found
+ERROR: 0:7: 'countbits' : no matching overloaded function found
+ERROR: 0:8: 'cross' : no matching overloaded function found
+ERROR: 0:9: 'D3DCOLORtoUBYTE4' : no matching overloaded function found
+ERROR: 0:10: 'determinant' : no matching overloaded function found
+ERROR: 0:12: 'f16tof32' : no matching overloaded function found
+ERROR: 0:13: 'firstbithigh' : no matching overloaded function found
+ERROR: 0:14: 'firstbitlow' : no matching overloaded function found
+ERROR: 0:15: 'fma' : no matching overloaded function found
+ERROR: 0:23: 'length' : no matching overloaded function found
+ERROR: 0:24: 'msad4' : no matching overloaded function found
+ERROR: 0:25: 'normalize' : no matching overloaded function found
+ERROR: 0:26: 'reflect' : no matching overloaded function found
+ERROR: 0:27: 'refract' : no matching overloaded function found
+ERROR: 0:28: 'refract' : no matching overloaded function found
+ERROR: 0:29: 'reversebits' : no matching overloaded function found
+ERROR: 0:30: 'transpose' : no matching overloaded function found
+ERROR: 0:39: 'GetRenderTargetSamplePosition' : no matching overloaded function found
+ERROR: 0:46: 'asdouble' : no matching overloaded function found
+ERROR: 0:47: 'CheckAccessFullyMapped' : no matching overloaded function found
+ERROR: 0:48: 'countbits' : no matching overloaded function found
+ERROR: 0:49: 'cross' : no matching overloaded function found
+ERROR: 0:50: 'D3DCOLORtoUBYTE4' : no matching overloaded function found
+ERROR: 0:51: 'determinant' : no matching overloaded function found
+ERROR: 0:52: 'f16tof32' : no matching overloaded function found
+ERROR: 0:53: 'firstbithigh' : no matching overloaded function found
+ERROR: 0:54: 'firstbitlow' : no matching overloaded function found
+ERROR: 0:55: 'fma' : no matching overloaded function found
+ERROR: 0:56: 'reversebits' : no matching overloaded function found
+ERROR: 0:57: 'transpose' : no matching overloaded function found
+ERROR: 0:64: 'CheckAccessFullyMapped' : no matching overloaded function found
+ERROR: 0:65: 'countbits' : no matching overloaded function found
+ERROR: 0:66: 'D3DCOLORtoUBYTE4' : no matching overloaded function found
+ERROR: 0:67: 'determinant' : no matching overloaded function found
+ERROR: 0:68: 'f16tof32' : no matching overloaded function found
+ERROR: 0:69: 'firstbithigh' : no matching overloaded function found
+ERROR: 0:70: 'firstbitlow' : no matching overloaded function found
+ERROR: 0:71: 'fma' : no matching overloaded function found
+ERROR: 0:72: 'reversebits' : no matching overloaded function found
+ERROR: 0:73: 'transpose' : no matching overloaded function found
+ERROR: 0:81: 'CheckAccessFullyMapped' : no matching overloaded function found
+ERROR: 0:82: 'countbits' : no matching overloaded function found
+ERROR: 0:83: 'cross' : no matching overloaded function found
+ERROR: 0:84: 'determinant' : no matching overloaded function found
+ERROR: 0:85: 'f16tof32' : no matching overloaded function found
+ERROR: 0:86: 'firstbithigh' : no matching overloaded function found
+ERROR: 0:87: 'firstbitlow' : no matching overloaded function found
+ERROR: 0:88: 'fma' : no matching overloaded function found
+ERROR: 0:89: 'reversebits' : no matching overloaded function found
+ERROR: 0:90: 'transpose' : no matching overloaded function found
+ERROR: 0:118: 'countbits' : no matching overloaded function found
+ERROR: 0:118: 'D3DCOLORtoUBYTE4' : no matching overloaded function found
+ERROR: 0:118: 'cross' : no matching overloaded function found
+ERROR: 0:118: 'f16tof32' : no matching overloaded function found
+ERROR: 0:118: 'firstbithigh' : no matching overloaded function found
+ERROR: 0:118: 'firstbitlow' : no matching overloaded function found
+ERROR: 0:118: 'fma' : no matching overloaded function found
+ERROR: 0:118: 'reversebits' : no matching overloaded function found
+ERROR: 0:118: 'length' : no matching overloaded function found
+ERROR: 0:118: 'noise' : no matching overloaded function found
+ERROR: 0:118: 'normalize' : no matching overloaded function found
+ERROR: 0:118: 'reflect' : no matching overloaded function found
+ERROR: 0:118: 'refract' : no matching overloaded function found
+ERROR: 0:118: 'reversebits' : no matching overloaded function found
+ERROR: 0:126: 'countbits' : no matching overloaded function found
+ERROR: 0:126: 'D3DCOLORtoUBYTE4' : no matching overloaded function found
+ERROR: 0:126: 'cross' : no matching overloaded function found
+ERROR: 0:126: 'f16tof32' : no matching overloaded function found
+ERROR: 0:126: 'firstbithigh' : no matching overloaded function found
+ERROR: 0:126: 'firstbitlow' : no matching overloaded function found
+ERROR: 0:126: 'fma' : no matching overloaded function found
+ERROR: 0:126: 'reversebits' : no matching overloaded function found
+ERROR: 0:126: 'length' : no matching overloaded function found
+ERROR: 0:126: 'noise' : no matching overloaded function found
+ERROR: 0:126: 'normalize' : no matching overloaded function found
+ERROR: 0:126: 'reflect' : no matching overloaded function found
+ERROR: 0:126: 'refract' : no matching overloaded function found
+ERROR: 0:126: 'reversebits' : no matching overloaded function found
+ERROR: 0:134: 'countbits' : no matching overloaded function found
+ERROR: 0:134: 'D3DCOLORtoUBYTE4' : no matching overloaded function found
+ERROR: 0:134: 'cross' : no matching overloaded function found
+ERROR: 0:134: 'f16tof32' : no matching overloaded function found
+ERROR: 0:134: 'firstbithigh' : no matching overloaded function found
+ERROR: 0:134: 'firstbitlow' : no matching overloaded function found
+ERROR: 0:134: 'fma' : no matching overloaded function found
+ERROR: 0:134: 'reversebits' : no matching overloaded function found
+ERROR: 0:134: 'length' : no matching overloaded function found
+ERROR: 0:134: 'noise' : no matching overloaded function found
+ERROR: 0:134: 'normalize' : no matching overloaded function found
+ERROR: 0:134: 'reflect' : no matching overloaded function found
+ERROR: 0:134: 'refract' : no matching overloaded function found
+ERROR: 0:134: 'reversebits' : no matching overloaded function found
+ERROR: 93 compilation errors. No code generated.
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+ERROR: node is still EOpNull!
+0:35 Function Definition: PixelShaderFunction(f1;f1;f1;i1; (temp float)
+0:2 Function Parameters:
+0:2 'inF0' (temp float)
+0:2 'inF1' (temp float)
+0:2 'inF2' (temp float)
+0:2 'inI0' (temp int)
+0:? Sequence
+0:5 Constant:
+0:5 0.000000
+0:6 Constant:
+0:6 0.000000
+0:7 Constant:
+0:7 0.000000
+0:8 Constant:
+0:8 0.000000
+0:9 Constant:
+0:9 0.000000
+0:10 Constant:
+0:10 0.000000
+0:12 Constant:
+0:12 0.000000
+0:13 Constant:
+0:13 0.000000
+0:14 Constant:
+0:14 0.000000
+0:15 Constant:
+0:15 0.000000
+0:23 Constant:
+0:23 0.000000
+0:24 Constant:
+0:24 0.000000
+0:25 Constant:
+0:25 0.000000
+0:26 Constant:
+0:26 0.000000
+0:27 Constant:
+0:27 0.000000
+0:28 Constant:
+0:28 0.000000
+0:29 Constant:
+0:29 0.000000
+0:30 Constant:
+0:30 0.000000
+0:32 Branch: Return with expression
+0:32 Constant:
+0:32 0.000000
+0:44 Function Definition: PixelShaderFunction(vf1;vf1;vf1;vi1; (temp 1-component vector of float)
+0:36 Function Parameters:
+0:36 'inF0' (temp 1-component vector of float)
+0:36 'inF1' (temp 1-component vector of float)
+0:36 'inF2' (temp 1-component vector of float)
+0:36 'inI0' (temp 1-component vector of int)
+0:? Sequence
+0:39 Constant:
+0:39 0.000000
+0:41 Branch: Return with expression
+0:41 Constant:
+0:41 0.000000
+0:62 Function Definition: PixelShaderFunction(vf2;vf2;vf2;vi2; (temp 2-component vector of float)
+0:45 Function Parameters:
+0:45 'inF0' (temp 2-component vector of float)
+0:45 'inF1' (temp 2-component vector of float)
+0:45 'inF2' (temp 2-component vector of float)
+0:45 'inI0' (temp 2-component vector of int)
+0:? Sequence
+0:46 Constant:
+0:46 0.000000
+0:47 Constant:
+0:47 0.000000
+0:48 Constant:
+0:48 0.000000
+0:49 Constant:
+0:49 0.000000
+0:50 Constant:
+0:50 0.000000
+0:51 Constant:
+0:51 0.000000
+0:52 Constant:
+0:52 0.000000
+0:53 Constant:
+0:53 0.000000
+0:54 Constant:
+0:54 0.000000
+0:55 Constant:
+0:55 0.000000
+0:56 Constant:
+0:56 0.000000
+0:57 Constant:
+0:57 0.000000
+0:59 Branch: Return with expression
+0:? Constant:
+0:? 1.000000
+0:? 2.000000
+0:79 Function Definition: PixelShaderFunction(vf3;vf3;vf3;vi3; (temp 3-component vector of float)
+0:63 Function Parameters:
+0:63 'inF0' (temp 3-component vector of float)
+0:63 'inF1' (temp 3-component vector of float)
+0:63 'inF2' (temp 3-component vector of float)
+0:63 'inI0' (temp 3-component vector of int)
+0:? Sequence
+0:64 Constant:
+0:64 0.000000
+0:65 Constant:
+0:65 0.000000
+0:66 Constant:
+0:66 0.000000
+0:67 Constant:
+0:67 0.000000
+0:68 Constant:
+0:68 0.000000
+0:69 Constant:
+0:69 0.000000
+0:70 Constant:
+0:70 0.000000
+0:71 Constant:
+0:71 0.000000
+0:72 Constant:
+0:72 0.000000
+0:73 Constant:
+0:73 0.000000
+0:76 Branch: Return with expression
+0:? Constant:
+0:? 1.000000
+0:? 2.000000
+0:? 3.000000
+0:115 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float)
+0:80 Function Parameters:
+0:80 'inF0' (temp 4-component vector of float)
+0:80 'inF1' (temp 4-component vector of float)
+0:80 'inF2' (temp 4-component vector of float)
+0:80 'inI0' (temp 4-component vector of int)
+0:? Sequence
+0:81 Constant:
+0:81 0.000000
+0:82 Constant:
+0:82 0.000000
+0:83 Constant:
+0:83 0.000000
+0:84 Constant:
+0:84 0.000000
+0:85 Constant:
+0:85 0.000000
+0:86 Constant:
+0:86 0.000000
+0:87 Constant:
+0:87 0.000000
+0:88 Constant:
+0:88 0.000000
+0:89 Constant:
+0:89 0.000000
+0:90 Constant:
+0:90 0.000000
+0:92 Branch: Return with expression
+0:? Constant:
+0:? 1.000000
+0:? 2.000000
+0:? 3.000000
+0:? 4.000000
+0:123 Function Definition: PixelShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float)
+0:116 Function Parameters:
+0:116 'inF0' (temp 2X2 matrix of float)
+0:116 'inF1' (temp 2X2 matrix of float)
+0:116 'inF2' (temp 2X2 matrix of float)
+0:? Sequence
+0:118 Constant:
+0:118 0.000000
+0:118 Constant:
+0:118 0.000000
+0:118 Constant:
+0:118 0.000000
+0:118 Constant:
+0:118 0.000000
+0:118 Constant:
+0:118 0.000000
+0:118 Constant:
+0:118 0.000000
+0:118 Constant:
+0:118 0.000000
+0:118 Constant:
+0:118 0.000000
+0:118 Constant:
+0:118 0.000000
+0:118 Constant:
+0:118 0.000000
+0:118 Constant:
+0:118 0.000000
+0:118 Constant:
+0:118 0.000000
+0:118 Constant:
+0:118 0.000000
+0:118 Constant:
+0:118 0.000000
+0:120 Branch: Return with expression
+0:? Constant:
+0:? 2.000000
+0:? 2.000000
+0:? 2.000000
+0:? 2.000000
+0:131 Function Definition: PixelShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float)
+0:124 Function Parameters:
+0:124 'inF0' (temp 3X3 matrix of float)
+0:124 'inF1' (temp 3X3 matrix of float)
+0:124 'inF2' (temp 3X3 matrix of float)
+0:? Sequence
+0:126 Constant:
+0:126 0.000000
+0:126 Constant:
+0:126 0.000000
+0:126 Constant:
+0:126 0.000000
+0:126 Constant:
+0:126 0.000000
+0:126 Constant:
+0:126 0.000000
+0:126 Constant:
+0:126 0.000000
+0:126 Constant:
+0:126 0.000000
+0:126 Constant:
+0:126 0.000000
+0:126 Constant:
+0:126 0.000000
+0:126 Constant:
+0:126 0.000000
+0:126 Constant:
+0:126 0.000000
+0:126 Constant:
+0:126 0.000000
+0:126 Constant:
+0:126 0.000000
+0:126 Constant:
+0:126 0.000000
+0:128 Branch: Return with expression
+0:? Constant:
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:138 Function Definition: PixelShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float)
+0:132 Function Parameters:
+0:132 'inF0' (temp 4X4 matrix of float)
+0:132 'inF1' (temp 4X4 matrix of float)
+0:132 'inF2' (temp 4X4 matrix of float)
+0:? Sequence
+0:134 Constant:
+0:134 0.000000
+0:134 Constant:
+0:134 0.000000
+0:134 Constant:
+0:134 0.000000
+0:134 Constant:
+0:134 0.000000
+0:134 Constant:
+0:134 0.000000
+0:134 Constant:
+0:134 0.000000
+0:134 Constant:
+0:134 0.000000
+0:134 Constant:
+0:134 0.000000
+0:134 Constant:
+0:134 0.000000
+0:134 Constant:
+0:134 0.000000
+0:134 Constant:
+0:134 0.000000
+0:134 Constant:
+0:134 0.000000
+0:134 Constant:
+0:134 0.000000
+0:134 Constant:
+0:134 0.000000
+0:136 Branch: Return with expression
+0:? Constant:
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? Linker Objects
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+ERROR: node is still EOpNull!
+0:35 Function Definition: PixelShaderFunction(f1;f1;f1;i1; (temp float)
+0:2 Function Parameters:
+0:2 'inF0' (temp float)
+0:2 'inF1' (temp float)
+0:2 'inF2' (temp float)
+0:2 'inI0' (temp int)
+0:? Sequence
+0:5 Constant:
+0:5 0.000000
+0:6 Constant:
+0:6 0.000000
+0:7 Constant:
+0:7 0.000000
+0:8 Constant:
+0:8 0.000000
+0:9 Constant:
+0:9 0.000000
+0:10 Constant:
+0:10 0.000000
+0:12 Constant:
+0:12 0.000000
+0:13 Constant:
+0:13 0.000000
+0:14 Constant:
+0:14 0.000000
+0:15 Constant:
+0:15 0.000000
+0:23 Constant:
+0:23 0.000000
+0:24 Constant:
+0:24 0.000000
+0:25 Constant:
+0:25 0.000000
+0:26 Constant:
+0:26 0.000000
+0:27 Constant:
+0:27 0.000000
+0:28 Constant:
+0:28 0.000000
+0:29 Constant:
+0:29 0.000000
+0:30 Constant:
+0:30 0.000000
+0:32 Branch: Return with expression
+0:32 Constant:
+0:32 0.000000
+0:44 Function Definition: PixelShaderFunction(vf1;vf1;vf1;vi1; (temp 1-component vector of float)
+0:36 Function Parameters:
+0:36 'inF0' (temp 1-component vector of float)
+0:36 'inF1' (temp 1-component vector of float)
+0:36 'inF2' (temp 1-component vector of float)
+0:36 'inI0' (temp 1-component vector of int)
+0:? Sequence
+0:39 Constant:
+0:39 0.000000
+0:41 Branch: Return with expression
+0:41 Constant:
+0:41 0.000000
+0:62 Function Definition: PixelShaderFunction(vf2;vf2;vf2;vi2; (temp 2-component vector of float)
+0:45 Function Parameters:
+0:45 'inF0' (temp 2-component vector of float)
+0:45 'inF1' (temp 2-component vector of float)
+0:45 'inF2' (temp 2-component vector of float)
+0:45 'inI0' (temp 2-component vector of int)
+0:? Sequence
+0:46 Constant:
+0:46 0.000000
+0:47 Constant:
+0:47 0.000000
+0:48 Constant:
+0:48 0.000000
+0:49 Constant:
+0:49 0.000000
+0:50 Constant:
+0:50 0.000000
+0:51 Constant:
+0:51 0.000000
+0:52 Constant:
+0:52 0.000000
+0:53 Constant:
+0:53 0.000000
+0:54 Constant:
+0:54 0.000000
+0:55 Constant:
+0:55 0.000000
+0:56 Constant:
+0:56 0.000000
+0:57 Constant:
+0:57 0.000000
+0:59 Branch: Return with expression
+0:? Constant:
+0:? 1.000000
+0:? 2.000000
+0:79 Function Definition: PixelShaderFunction(vf3;vf3;vf3;vi3; (temp 3-component vector of float)
+0:63 Function Parameters:
+0:63 'inF0' (temp 3-component vector of float)
+0:63 'inF1' (temp 3-component vector of float)
+0:63 'inF2' (temp 3-component vector of float)
+0:63 'inI0' (temp 3-component vector of int)
+0:? Sequence
+0:64 Constant:
+0:64 0.000000
+0:65 Constant:
+0:65 0.000000
+0:66 Constant:
+0:66 0.000000
+0:67 Constant:
+0:67 0.000000
+0:68 Constant:
+0:68 0.000000
+0:69 Constant:
+0:69 0.000000
+0:70 Constant:
+0:70 0.000000
+0:71 Constant:
+0:71 0.000000
+0:72 Constant:
+0:72 0.000000
+0:73 Constant:
+0:73 0.000000
+0:76 Branch: Return with expression
+0:? Constant:
+0:? 1.000000
+0:? 2.000000
+0:? 3.000000
+0:115 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float)
+0:80 Function Parameters:
+0:80 'inF0' (temp 4-component vector of float)
+0:80 'inF1' (temp 4-component vector of float)
+0:80 'inF2' (temp 4-component vector of float)
+0:80 'inI0' (temp 4-component vector of int)
+0:? Sequence
+0:81 Constant:
+0:81 0.000000
+0:82 Constant:
+0:82 0.000000
+0:83 Constant:
+0:83 0.000000
+0:84 Constant:
+0:84 0.000000
+0:85 Constant:
+0:85 0.000000
+0:86 Constant:
+0:86 0.000000
+0:87 Constant:
+0:87 0.000000
+0:88 Constant:
+0:88 0.000000
+0:89 Constant:
+0:89 0.000000
+0:90 Constant:
+0:90 0.000000
+0:92 Branch: Return with expression
+0:? Constant:
+0:? 1.000000
+0:? 2.000000
+0:? 3.000000
+0:? 4.000000
+0:123 Function Definition: PixelShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float)
+0:116 Function Parameters:
+0:116 'inF0' (temp 2X2 matrix of float)
+0:116 'inF1' (temp 2X2 matrix of float)
+0:116 'inF2' (temp 2X2 matrix of float)
+0:? Sequence
+0:118 Constant:
+0:118 0.000000
+0:118 Constant:
+0:118 0.000000
+0:118 Constant:
+0:118 0.000000
+0:118 Constant:
+0:118 0.000000
+0:118 Constant:
+0:118 0.000000
+0:118 Constant:
+0:118 0.000000
+0:118 Constant:
+0:118 0.000000
+0:118 Constant:
+0:118 0.000000
+0:118 Constant:
+0:118 0.000000
+0:118 Constant:
+0:118 0.000000
+0:118 Constant:
+0:118 0.000000
+0:118 Constant:
+0:118 0.000000
+0:118 Constant:
+0:118 0.000000
+0:118 Constant:
+0:118 0.000000
+0:120 Branch: Return with expression
+0:? Constant:
+0:? 2.000000
+0:? 2.000000
+0:? 2.000000
+0:? 2.000000
+0:131 Function Definition: PixelShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float)
+0:124 Function Parameters:
+0:124 'inF0' (temp 3X3 matrix of float)
+0:124 'inF1' (temp 3X3 matrix of float)
+0:124 'inF2' (temp 3X3 matrix of float)
+0:? Sequence
+0:126 Constant:
+0:126 0.000000
+0:126 Constant:
+0:126 0.000000
+0:126 Constant:
+0:126 0.000000
+0:126 Constant:
+0:126 0.000000
+0:126 Constant:
+0:126 0.000000
+0:126 Constant:
+0:126 0.000000
+0:126 Constant:
+0:126 0.000000
+0:126 Constant:
+0:126 0.000000
+0:126 Constant:
+0:126 0.000000
+0:126 Constant:
+0:126 0.000000
+0:126 Constant:
+0:126 0.000000
+0:126 Constant:
+0:126 0.000000
+0:126 Constant:
+0:126 0.000000
+0:126 Constant:
+0:126 0.000000
+0:128 Branch: Return with expression
+0:? Constant:
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:138 Function Definition: PixelShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float)
+0:132 Function Parameters:
+0:132 'inF0' (temp 4X4 matrix of float)
+0:132 'inF1' (temp 4X4 matrix of float)
+0:132 'inF2' (temp 4X4 matrix of float)
+0:? Sequence
+0:134 Constant:
+0:134 0.000000
+0:134 Constant:
+0:134 0.000000
+0:134 Constant:
+0:134 0.000000
+0:134 Constant:
+0:134 0.000000
+0:134 Constant:
+0:134 0.000000
+0:134 Constant:
+0:134 0.000000
+0:134 Constant:
+0:134 0.000000
+0:134 Constant:
+0:134 0.000000
+0:134 Constant:
+0:134 0.000000
+0:134 Constant:
+0:134 0.000000
+0:134 Constant:
+0:134 0.000000
+0:134 Constant:
+0:134 0.000000
+0:134 Constant:
+0:134 0.000000
+0:134 Constant:
+0:134 0.000000
+0:136 Branch: Return with expression
+0:? Constant:
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? Linker Objects
+
+SPIR-V is not generated for failed compile or link
diff --git a/chromium/third_party/glslang/src/Test/baseResults/hlsl.intrinsics.negative.vert.out b/chromium/third_party/glslang/src/Test/baseResults/hlsl.intrinsics.negative.vert.out
new file mode 100644
index 00000000000..de711e9b03b
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/hlsl.intrinsics.negative.vert.out
@@ -0,0 +1,1055 @@
+hlsl.intrinsics.negative.vert
+ERROR: 0:5: 'asdouble' : no matching overloaded function found
+ERROR: 0:6: 'CheckAccessFullyMapped' : no matching overloaded function found
+ERROR: 0:7: 'CheckAccessFullyMapped' : no matching overloaded function found
+ERROR: 0:8: 'clip' : no matching overloaded function found
+ERROR: 0:9: 'countbits' : no matching overloaded function found
+ERROR: 0:10: 'cross' : no matching overloaded function found
+ERROR: 0:11: 'D3DCOLORtoUBYTE4' : no matching overloaded function found
+ERROR: 0:14: 'ddx' : no matching overloaded function found
+ERROR: 0:15: 'ddx_coarse' : no matching overloaded function found
+ERROR: 0:16: 'ddx_fine' : no matching overloaded function found
+ERROR: 0:17: 'ddy' : no matching overloaded function found
+ERROR: 0:18: 'ddy_coarse' : no matching overloaded function found
+ERROR: 0:19: 'ddy_fine' : no matching overloaded function found
+ERROR: 0:20: 'determinant' : no matching overloaded function found
+ERROR: 0:21: 'EvaluateAttributeAtCentroid' : no matching overloaded function found
+ERROR: 0:22: 'EvaluateAttributeAtSample' : no matching overloaded function found
+ERROR: 0:23: 'EvaluateAttributeSnapped' : no matching overloaded function found
+ERROR: 0:24: 'f16tof32' : no matching overloaded function found
+ERROR: 0:25: 'firstbithigh' : no matching overloaded function found
+ERROR: 0:26: 'firstbitlow' : no matching overloaded function found
+ERROR: 0:27: 'fma' : no matching overloaded function found
+ERROR: 0:35: 'length' : no matching overloaded function found
+ERROR: 0:36: 'msad4' : no matching overloaded function found
+ERROR: 0:37: 'normalize' : no matching overloaded function found
+ERROR: 0:38: 'reflect' : no matching overloaded function found
+ERROR: 0:39: 'refract' : no matching overloaded function found
+ERROR: 0:40: 'refract' : no matching overloaded function found
+ERROR: 0:41: 'reversebits' : no matching overloaded function found
+ERROR: 0:42: 'transpose' : no matching overloaded function found
+ERROR: 0:53: 'GetRenderTargetSamplePosition' : no matching overloaded function found
+ERROR: 0:60: 'asdouble' : no matching overloaded function found
+ERROR: 0:61: 'CheckAccessFullyMapped' : no matching overloaded function found
+ERROR: 0:62: 'countbits' : no matching overloaded function found
+ERROR: 0:63: 'cross' : no matching overloaded function found
+ERROR: 0:64: 'D3DCOLORtoUBYTE4' : no matching overloaded function found
+ERROR: 0:65: 'ddx' : no matching overloaded function found
+ERROR: 0:66: 'ddx_coarse' : no matching overloaded function found
+ERROR: 0:67: 'ddx_fine' : no matching overloaded function found
+ERROR: 0:68: 'ddy' : no matching overloaded function found
+ERROR: 0:69: 'ddy_coarse' : no matching overloaded function found
+ERROR: 0:70: 'ddy_fine' : no matching overloaded function found
+ERROR: 0:71: 'determinant' : no matching overloaded function found
+ERROR: 0:72: 'EvaluateAttributeAtCentroid' : no matching overloaded function found
+ERROR: 0:73: 'EvaluateAttributeAtSample' : no matching overloaded function found
+ERROR: 0:74: 'EvaluateAttributeSnapped' : no matching overloaded function found
+ERROR: 0:75: 'f16tof32' : no matching overloaded function found
+ERROR: 0:76: 'firstbithigh' : no matching overloaded function found
+ERROR: 0:77: 'firstbitlow' : no matching overloaded function found
+ERROR: 0:78: 'fma' : no matching overloaded function found
+ERROR: 0:79: 'noise' : no matching overloaded function found
+ERROR: 0:80: 'reversebits' : no matching overloaded function found
+ERROR: 0:81: 'transpose' : no matching overloaded function found
+ERROR: 0:90: 'CheckAccessFullyMapped' : no matching overloaded function found
+ERROR: 0:91: 'countbits' : no matching overloaded function found
+ERROR: 0:92: 'ddx' : no matching overloaded function found
+ERROR: 0:93: 'ddx_coarse' : no matching overloaded function found
+ERROR: 0:94: 'ddx_fine' : no matching overloaded function found
+ERROR: 0:95: 'ddy' : no matching overloaded function found
+ERROR: 0:96: 'ddy_coarse' : no matching overloaded function found
+ERROR: 0:97: 'ddy_fine' : no matching overloaded function found
+ERROR: 0:98: 'D3DCOLORtoUBYTE4' : no matching overloaded function found
+ERROR: 0:99: 'determinant' : no matching overloaded function found
+ERROR: 0:100: 'EvaluateAttributeAtCentroid' : no matching overloaded function found
+ERROR: 0:101: 'EvaluateAttributeAtSample' : no matching overloaded function found
+ERROR: 0:102: 'EvaluateAttributeSnapped' : no matching overloaded function found
+ERROR: 0:103: 'f16tof32' : no matching overloaded function found
+ERROR: 0:104: 'firstbithigh' : no matching overloaded function found
+ERROR: 0:105: 'firstbitlow' : no matching overloaded function found
+ERROR: 0:106: 'fma' : no matching overloaded function found
+ERROR: 0:107: 'noise' : no matching overloaded function found
+ERROR: 0:108: 'reversebits' : no matching overloaded function found
+ERROR: 0:109: 'transpose' : no matching overloaded function found
+ERROR: 0:118: 'CheckAccessFullyMapped' : no matching overloaded function found
+ERROR: 0:119: 'countbits' : no matching overloaded function found
+ERROR: 0:120: 'cross' : no matching overloaded function found
+ERROR: 0:121: 'determinant' : no matching overloaded function found
+ERROR: 0:122: 'ddx' : no matching overloaded function found
+ERROR: 0:123: 'ddx_coarse' : no matching overloaded function found
+ERROR: 0:124: 'ddx_fine' : no matching overloaded function found
+ERROR: 0:125: 'ddy' : no matching overloaded function found
+ERROR: 0:126: 'ddy_coarse' : no matching overloaded function found
+ERROR: 0:127: 'ddy_fine' : no matching overloaded function found
+ERROR: 0:128: 'EvaluateAttributeAtCentroid' : no matching overloaded function found
+ERROR: 0:129: 'EvaluateAttributeAtSample' : no matching overloaded function found
+ERROR: 0:130: 'EvaluateAttributeSnapped' : no matching overloaded function found
+ERROR: 0:131: 'f16tof32' : no matching overloaded function found
+ERROR: 0:132: 'firstbithigh' : no matching overloaded function found
+ERROR: 0:133: 'firstbitlow' : no matching overloaded function found
+ERROR: 0:134: 'fma' : no matching overloaded function found
+ERROR: 0:135: 'noise' : no matching overloaded function found
+ERROR: 0:136: 'reversebits' : no matching overloaded function found
+ERROR: 0:137: 'transpose' : no matching overloaded function found
+ERROR: 0:177: 'countbits' : no matching overloaded function found
+ERROR: 0:177: 'cross' : no matching overloaded function found
+ERROR: 0:177: 'D3DCOLORtoUBYTE4' : no matching overloaded function found
+ERROR: 0:177: 'ddx' : no matching overloaded function found
+ERROR: 0:177: 'ddx_coarse' : no matching overloaded function found
+ERROR: 0:177: 'ddx_fine' : no matching overloaded function found
+ERROR: 0:177: 'ddy' : no matching overloaded function found
+ERROR: 0:177: 'ddy_coarse' : no matching overloaded function found
+ERROR: 0:177: 'ddy_fine' : no matching overloaded function found
+ERROR: 0:177: 'EvaluateAttributeAtCentroid' : no matching overloaded function found
+ERROR: 0:177: 'EvaluateAttributeAtSample' : no matching overloaded function found
+ERROR: 0:177: 'EvaluateAttributeSnapped' : no matching overloaded function found
+ERROR: 0:177: 'f16tof32' : no matching overloaded function found
+ERROR: 0:177: 'firstbithigh' : no matching overloaded function found
+ERROR: 0:177: 'firstbitlow' : no matching overloaded function found
+ERROR: 0:177: 'fma' : no matching overloaded function found
+ERROR: 0:177: 'noise' : no matching overloaded function found
+ERROR: 0:177: 'reversebits' : no matching overloaded function found
+ERROR: 0:177: 'length' : no matching overloaded function found
+ERROR: 0:177: 'noise' : no matching overloaded function found
+ERROR: 0:177: 'normalize' : no matching overloaded function found
+ERROR: 0:177: 'reflect' : no matching overloaded function found
+ERROR: 0:177: 'refract' : no matching overloaded function found
+ERROR: 0:177: 'reversebits' : no matching overloaded function found
+ERROR: 0:185: 'countbits' : no matching overloaded function found
+ERROR: 0:185: 'cross' : no matching overloaded function found
+ERROR: 0:185: 'D3DCOLORtoUBYTE4' : no matching overloaded function found
+ERROR: 0:185: 'ddx' : no matching overloaded function found
+ERROR: 0:185: 'ddx_coarse' : no matching overloaded function found
+ERROR: 0:185: 'ddx_fine' : no matching overloaded function found
+ERROR: 0:185: 'ddy' : no matching overloaded function found
+ERROR: 0:185: 'ddy_coarse' : no matching overloaded function found
+ERROR: 0:185: 'ddy_fine' : no matching overloaded function found
+ERROR: 0:185: 'EvaluateAttributeAtCentroid' : no matching overloaded function found
+ERROR: 0:185: 'EvaluateAttributeAtSample' : no matching overloaded function found
+ERROR: 0:185: 'EvaluateAttributeSnapped' : no matching overloaded function found
+ERROR: 0:185: 'f16tof32' : no matching overloaded function found
+ERROR: 0:185: 'firstbithigh' : no matching overloaded function found
+ERROR: 0:185: 'firstbitlow' : no matching overloaded function found
+ERROR: 0:185: 'fma' : no matching overloaded function found
+ERROR: 0:185: 'noise' : no matching overloaded function found
+ERROR: 0:185: 'reversebits' : no matching overloaded function found
+ERROR: 0:185: 'length' : no matching overloaded function found
+ERROR: 0:185: 'noise' : no matching overloaded function found
+ERROR: 0:185: 'normalize' : no matching overloaded function found
+ERROR: 0:185: 'reflect' : no matching overloaded function found
+ERROR: 0:185: 'refract' : no matching overloaded function found
+ERROR: 0:185: 'reversebits' : no matching overloaded function found
+ERROR: 0:193: 'countbits' : no matching overloaded function found
+ERROR: 0:193: 'cross' : no matching overloaded function found
+ERROR: 0:193: 'D3DCOLORtoUBYTE4' : no matching overloaded function found
+ERROR: 0:193: 'ddx' : no matching overloaded function found
+ERROR: 0:193: 'ddx_coarse' : no matching overloaded function found
+ERROR: 0:193: 'ddx_fine' : no matching overloaded function found
+ERROR: 0:193: 'ddy' : no matching overloaded function found
+ERROR: 0:193: 'ddy_coarse' : no matching overloaded function found
+ERROR: 0:193: 'ddy_fine' : no matching overloaded function found
+ERROR: 0:193: 'EvaluateAttributeAtCentroid' : no matching overloaded function found
+ERROR: 0:193: 'EvaluateAttributeAtSample' : no matching overloaded function found
+ERROR: 0:193: 'EvaluateAttributeSnapped' : no matching overloaded function found
+ERROR: 0:193: 'f16tof32' : no matching overloaded function found
+ERROR: 0:193: 'firstbithigh' : no matching overloaded function found
+ERROR: 0:193: 'firstbitlow' : no matching overloaded function found
+ERROR: 0:193: 'fma' : no matching overloaded function found
+ERROR: 0:193: 'noise' : no matching overloaded function found
+ERROR: 0:193: 'reversebits' : no matching overloaded function found
+ERROR: 0:193: 'length' : no matching overloaded function found
+ERROR: 0:193: 'noise' : no matching overloaded function found
+ERROR: 0:193: 'normalize' : no matching overloaded function found
+ERROR: 0:193: 'reflect' : no matching overloaded function found
+ERROR: 0:193: 'refract' : no matching overloaded function found
+ERROR: 0:193: 'reversebits' : no matching overloaded function found
+ERROR: 164 compilation errors. No code generated.
+
+
+Shader version: 450
+ERROR: node is still EOpNull!
+0:49 Function Definition: VertexShaderFunction(f1;f1;f1;i1; (temp float)
+0:2 Function Parameters:
+0:2 'inF0' (temp float)
+0:2 'inF1' (temp float)
+0:2 'inF2' (temp float)
+0:2 'inI0' (temp int)
+0:? Sequence
+0:5 Constant:
+0:5 0.000000
+0:6 Constant:
+0:6 0.000000
+0:7 Constant:
+0:7 0.000000
+0:8 Constant:
+0:8 0.000000
+0:9 Constant:
+0:9 0.000000
+0:10 Constant:
+0:10 0.000000
+0:11 Constant:
+0:11 0.000000
+0:14 Constant:
+0:14 0.000000
+0:15 Constant:
+0:15 0.000000
+0:16 Constant:
+0:16 0.000000
+0:17 Constant:
+0:17 0.000000
+0:18 Constant:
+0:18 0.000000
+0:19 Constant:
+0:19 0.000000
+0:20 Constant:
+0:20 0.000000
+0:21 Constant:
+0:21 0.000000
+0:22 Constant:
+0:22 0.000000
+0:23 Constant:
+0:23 0.000000
+0:24 Constant:
+0:24 0.000000
+0:25 Constant:
+0:25 0.000000
+0:26 Constant:
+0:26 0.000000
+0:27 Constant:
+0:27 0.000000
+0:35 Constant:
+0:35 0.000000
+0:36 Constant:
+0:36 0.000000
+0:37 Constant:
+0:37 0.000000
+0:38 Constant:
+0:38 0.000000
+0:39 Constant:
+0:39 0.000000
+0:40 Constant:
+0:40 0.000000
+0:41 Constant:
+0:41 0.000000
+0:42 Constant:
+0:42 0.000000
+0:46 Branch: Return with expression
+0:46 Constant:
+0:46 0.000000
+0:58 Function Definition: VertexShaderFunction(vf1;vf1;vf1;vi1; (temp 1-component vector of float)
+0:50 Function Parameters:
+0:50 'inF0' (temp 1-component vector of float)
+0:50 'inF1' (temp 1-component vector of float)
+0:50 'inF2' (temp 1-component vector of float)
+0:50 'inI0' (temp 1-component vector of int)
+0:? Sequence
+0:53 Constant:
+0:53 0.000000
+0:55 Branch: Return with expression
+0:55 Constant:
+0:55 0.000000
+0:88 Function Definition: VertexShaderFunction(vf2;vf2;vf2;vi2; (temp 2-component vector of float)
+0:59 Function Parameters:
+0:59 'inF0' (temp 2-component vector of float)
+0:59 'inF1' (temp 2-component vector of float)
+0:59 'inF2' (temp 2-component vector of float)
+0:59 'inI0' (temp 2-component vector of int)
+0:? Sequence
+0:60 Constant:
+0:60 0.000000
+0:61 Constant:
+0:61 0.000000
+0:62 Constant:
+0:62 0.000000
+0:63 Constant:
+0:63 0.000000
+0:64 Constant:
+0:64 0.000000
+0:65 Constant:
+0:65 0.000000
+0:66 Constant:
+0:66 0.000000
+0:67 Constant:
+0:67 0.000000
+0:68 Constant:
+0:68 0.000000
+0:69 Constant:
+0:69 0.000000
+0:70 Constant:
+0:70 0.000000
+0:71 Constant:
+0:71 0.000000
+0:72 Constant:
+0:72 0.000000
+0:73 Constant:
+0:73 0.000000
+0:74 Constant:
+0:74 0.000000
+0:75 Constant:
+0:75 0.000000
+0:76 Constant:
+0:76 0.000000
+0:77 Constant:
+0:77 0.000000
+0:78 Constant:
+0:78 0.000000
+0:79 Constant:
+0:79 0.000000
+0:80 Constant:
+0:80 0.000000
+0:81 Constant:
+0:81 0.000000
+0:85 Branch: Return with expression
+0:? Constant:
+0:? 1.000000
+0:? 2.000000
+0:116 Function Definition: VertexShaderFunction(vf3;vf3;vf3;vi3; (temp 3-component vector of float)
+0:89 Function Parameters:
+0:89 'inF0' (temp 3-component vector of float)
+0:89 'inF1' (temp 3-component vector of float)
+0:89 'inF2' (temp 3-component vector of float)
+0:89 'inI0' (temp 3-component vector of int)
+0:? Sequence
+0:90 Constant:
+0:90 0.000000
+0:91 Constant:
+0:91 0.000000
+0:92 Constant:
+0:92 0.000000
+0:93 Constant:
+0:93 0.000000
+0:94 Constant:
+0:94 0.000000
+0:95 Constant:
+0:95 0.000000
+0:96 Constant:
+0:96 0.000000
+0:97 Constant:
+0:97 0.000000
+0:98 Constant:
+0:98 0.000000
+0:99 Constant:
+0:99 0.000000
+0:100 Constant:
+0:100 0.000000
+0:101 Constant:
+0:101 0.000000
+0:102 Constant:
+0:102 0.000000
+0:103 Constant:
+0:103 0.000000
+0:104 Constant:
+0:104 0.000000
+0:105 Constant:
+0:105 0.000000
+0:106 Constant:
+0:106 0.000000
+0:107 Constant:
+0:107 0.000000
+0:108 Constant:
+0:108 0.000000
+0:109 Constant:
+0:109 0.000000
+0:113 Branch: Return with expression
+0:? Constant:
+0:? 1.000000
+0:? 2.000000
+0:? 3.000000
+0:174 Function Definition: VertexShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float)
+0:117 Function Parameters:
+0:117 'inF0' (temp 4-component vector of float)
+0:117 'inF1' (temp 4-component vector of float)
+0:117 'inF2' (temp 4-component vector of float)
+0:117 'inI0' (temp 4-component vector of int)
+0:? Sequence
+0:118 Constant:
+0:118 0.000000
+0:119 Constant:
+0:119 0.000000
+0:120 Constant:
+0:120 0.000000
+0:121 Constant:
+0:121 0.000000
+0:122 Constant:
+0:122 0.000000
+0:123 Constant:
+0:123 0.000000
+0:124 Constant:
+0:124 0.000000
+0:125 Constant:
+0:125 0.000000
+0:126 Constant:
+0:126 0.000000
+0:127 Constant:
+0:127 0.000000
+0:128 Constant:
+0:128 0.000000
+0:129 Constant:
+0:129 0.000000
+0:130 Constant:
+0:130 0.000000
+0:131 Constant:
+0:131 0.000000
+0:132 Constant:
+0:132 0.000000
+0:133 Constant:
+0:133 0.000000
+0:134 Constant:
+0:134 0.000000
+0:135 Constant:
+0:135 0.000000
+0:136 Constant:
+0:136 0.000000
+0:137 Constant:
+0:137 0.000000
+0:141 Branch: Return with expression
+0:? Constant:
+0:? 1.000000
+0:? 2.000000
+0:? 3.000000
+0:? 4.000000
+0:182 Function Definition: VertexShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float)
+0:175 Function Parameters:
+0:175 'inF0' (temp 2X2 matrix of float)
+0:175 'inF1' (temp 2X2 matrix of float)
+0:175 'inF2' (temp 2X2 matrix of float)
+0:? Sequence
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:179 Branch: Return with expression
+0:? Constant:
+0:? 2.000000
+0:? 2.000000
+0:? 2.000000
+0:? 2.000000
+0:190 Function Definition: VertexShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float)
+0:183 Function Parameters:
+0:183 'inF0' (temp 3X3 matrix of float)
+0:183 'inF1' (temp 3X3 matrix of float)
+0:183 'inF2' (temp 3X3 matrix of float)
+0:? Sequence
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:187 Branch: Return with expression
+0:? Constant:
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:197 Function Definition: VertexShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float)
+0:191 Function Parameters:
+0:191 'inF0' (temp 4X4 matrix of float)
+0:191 'inF1' (temp 4X4 matrix of float)
+0:191 'inF2' (temp 4X4 matrix of float)
+0:? Sequence
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:195 Branch: Return with expression
+0:? Constant:
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? Linker Objects
+
+
+Linked vertex stage:
+
+
+Shader version: 450
+ERROR: node is still EOpNull!
+0:49 Function Definition: VertexShaderFunction(f1;f1;f1;i1; (temp float)
+0:2 Function Parameters:
+0:2 'inF0' (temp float)
+0:2 'inF1' (temp float)
+0:2 'inF2' (temp float)
+0:2 'inI0' (temp int)
+0:? Sequence
+0:5 Constant:
+0:5 0.000000
+0:6 Constant:
+0:6 0.000000
+0:7 Constant:
+0:7 0.000000
+0:8 Constant:
+0:8 0.000000
+0:9 Constant:
+0:9 0.000000
+0:10 Constant:
+0:10 0.000000
+0:11 Constant:
+0:11 0.000000
+0:14 Constant:
+0:14 0.000000
+0:15 Constant:
+0:15 0.000000
+0:16 Constant:
+0:16 0.000000
+0:17 Constant:
+0:17 0.000000
+0:18 Constant:
+0:18 0.000000
+0:19 Constant:
+0:19 0.000000
+0:20 Constant:
+0:20 0.000000
+0:21 Constant:
+0:21 0.000000
+0:22 Constant:
+0:22 0.000000
+0:23 Constant:
+0:23 0.000000
+0:24 Constant:
+0:24 0.000000
+0:25 Constant:
+0:25 0.000000
+0:26 Constant:
+0:26 0.000000
+0:27 Constant:
+0:27 0.000000
+0:35 Constant:
+0:35 0.000000
+0:36 Constant:
+0:36 0.000000
+0:37 Constant:
+0:37 0.000000
+0:38 Constant:
+0:38 0.000000
+0:39 Constant:
+0:39 0.000000
+0:40 Constant:
+0:40 0.000000
+0:41 Constant:
+0:41 0.000000
+0:42 Constant:
+0:42 0.000000
+0:46 Branch: Return with expression
+0:46 Constant:
+0:46 0.000000
+0:58 Function Definition: VertexShaderFunction(vf1;vf1;vf1;vi1; (temp 1-component vector of float)
+0:50 Function Parameters:
+0:50 'inF0' (temp 1-component vector of float)
+0:50 'inF1' (temp 1-component vector of float)
+0:50 'inF2' (temp 1-component vector of float)
+0:50 'inI0' (temp 1-component vector of int)
+0:? Sequence
+0:53 Constant:
+0:53 0.000000
+0:55 Branch: Return with expression
+0:55 Constant:
+0:55 0.000000
+0:88 Function Definition: VertexShaderFunction(vf2;vf2;vf2;vi2; (temp 2-component vector of float)
+0:59 Function Parameters:
+0:59 'inF0' (temp 2-component vector of float)
+0:59 'inF1' (temp 2-component vector of float)
+0:59 'inF2' (temp 2-component vector of float)
+0:59 'inI0' (temp 2-component vector of int)
+0:? Sequence
+0:60 Constant:
+0:60 0.000000
+0:61 Constant:
+0:61 0.000000
+0:62 Constant:
+0:62 0.000000
+0:63 Constant:
+0:63 0.000000
+0:64 Constant:
+0:64 0.000000
+0:65 Constant:
+0:65 0.000000
+0:66 Constant:
+0:66 0.000000
+0:67 Constant:
+0:67 0.000000
+0:68 Constant:
+0:68 0.000000
+0:69 Constant:
+0:69 0.000000
+0:70 Constant:
+0:70 0.000000
+0:71 Constant:
+0:71 0.000000
+0:72 Constant:
+0:72 0.000000
+0:73 Constant:
+0:73 0.000000
+0:74 Constant:
+0:74 0.000000
+0:75 Constant:
+0:75 0.000000
+0:76 Constant:
+0:76 0.000000
+0:77 Constant:
+0:77 0.000000
+0:78 Constant:
+0:78 0.000000
+0:79 Constant:
+0:79 0.000000
+0:80 Constant:
+0:80 0.000000
+0:81 Constant:
+0:81 0.000000
+0:85 Branch: Return with expression
+0:? Constant:
+0:? 1.000000
+0:? 2.000000
+0:116 Function Definition: VertexShaderFunction(vf3;vf3;vf3;vi3; (temp 3-component vector of float)
+0:89 Function Parameters:
+0:89 'inF0' (temp 3-component vector of float)
+0:89 'inF1' (temp 3-component vector of float)
+0:89 'inF2' (temp 3-component vector of float)
+0:89 'inI0' (temp 3-component vector of int)
+0:? Sequence
+0:90 Constant:
+0:90 0.000000
+0:91 Constant:
+0:91 0.000000
+0:92 Constant:
+0:92 0.000000
+0:93 Constant:
+0:93 0.000000
+0:94 Constant:
+0:94 0.000000
+0:95 Constant:
+0:95 0.000000
+0:96 Constant:
+0:96 0.000000
+0:97 Constant:
+0:97 0.000000
+0:98 Constant:
+0:98 0.000000
+0:99 Constant:
+0:99 0.000000
+0:100 Constant:
+0:100 0.000000
+0:101 Constant:
+0:101 0.000000
+0:102 Constant:
+0:102 0.000000
+0:103 Constant:
+0:103 0.000000
+0:104 Constant:
+0:104 0.000000
+0:105 Constant:
+0:105 0.000000
+0:106 Constant:
+0:106 0.000000
+0:107 Constant:
+0:107 0.000000
+0:108 Constant:
+0:108 0.000000
+0:109 Constant:
+0:109 0.000000
+0:113 Branch: Return with expression
+0:? Constant:
+0:? 1.000000
+0:? 2.000000
+0:? 3.000000
+0:174 Function Definition: VertexShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float)
+0:117 Function Parameters:
+0:117 'inF0' (temp 4-component vector of float)
+0:117 'inF1' (temp 4-component vector of float)
+0:117 'inF2' (temp 4-component vector of float)
+0:117 'inI0' (temp 4-component vector of int)
+0:? Sequence
+0:118 Constant:
+0:118 0.000000
+0:119 Constant:
+0:119 0.000000
+0:120 Constant:
+0:120 0.000000
+0:121 Constant:
+0:121 0.000000
+0:122 Constant:
+0:122 0.000000
+0:123 Constant:
+0:123 0.000000
+0:124 Constant:
+0:124 0.000000
+0:125 Constant:
+0:125 0.000000
+0:126 Constant:
+0:126 0.000000
+0:127 Constant:
+0:127 0.000000
+0:128 Constant:
+0:128 0.000000
+0:129 Constant:
+0:129 0.000000
+0:130 Constant:
+0:130 0.000000
+0:131 Constant:
+0:131 0.000000
+0:132 Constant:
+0:132 0.000000
+0:133 Constant:
+0:133 0.000000
+0:134 Constant:
+0:134 0.000000
+0:135 Constant:
+0:135 0.000000
+0:136 Constant:
+0:136 0.000000
+0:137 Constant:
+0:137 0.000000
+0:141 Branch: Return with expression
+0:? Constant:
+0:? 1.000000
+0:? 2.000000
+0:? 3.000000
+0:? 4.000000
+0:182 Function Definition: VertexShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float)
+0:175 Function Parameters:
+0:175 'inF0' (temp 2X2 matrix of float)
+0:175 'inF1' (temp 2X2 matrix of float)
+0:175 'inF2' (temp 2X2 matrix of float)
+0:? Sequence
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:177 Constant:
+0:177 0.000000
+0:179 Branch: Return with expression
+0:? Constant:
+0:? 2.000000
+0:? 2.000000
+0:? 2.000000
+0:? 2.000000
+0:190 Function Definition: VertexShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float)
+0:183 Function Parameters:
+0:183 'inF0' (temp 3X3 matrix of float)
+0:183 'inF1' (temp 3X3 matrix of float)
+0:183 'inF2' (temp 3X3 matrix of float)
+0:? Sequence
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:185 Constant:
+0:185 0.000000
+0:187 Branch: Return with expression
+0:? Constant:
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:197 Function Definition: VertexShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float)
+0:191 Function Parameters:
+0:191 'inF0' (temp 4X4 matrix of float)
+0:191 'inF1' (temp 4X4 matrix of float)
+0:191 'inF2' (temp 4X4 matrix of float)
+0:? Sequence
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:193 Constant:
+0:193 0.000000
+0:195 Branch: Return with expression
+0:? Constant:
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? Linker Objects
+
+SPIR-V is not generated for failed compile or link
diff --git a/chromium/third_party/glslang/src/Test/baseResults/hlsl.intrinsics.vert.out b/chromium/third_party/glslang/src/Test/baseResults/hlsl.intrinsics.vert.out
new file mode 100644
index 00000000000..6f92fc36598
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/hlsl.intrinsics.vert.out
@@ -0,0 +1,2868 @@
+hlsl.intrinsics.vert
+Shader version: 450
+0:? Sequence
+0:59 Function Definition: VertexShaderFunction(f1;f1;f1; (temp float)
+0:2 Function Parameters:
+0:2 'inF0' (temp float)
+0:2 'inF1' (temp float)
+0:2 'inF2' (temp float)
+0:? Sequence
+0:3 all (global bool)
+0:3 'inF0' (temp float)
+0:4 Absolute value (global float)
+0:4 'inF0' (temp float)
+0:5 arc cosine (global float)
+0:5 'inF0' (temp float)
+0:6 any (global bool)
+0:6 'inF0' (temp float)
+0:7 arc sine (global float)
+0:7 'inF0' (temp float)
+0:8 arc tangent (global float)
+0:8 'inF0' (temp float)
+0:9 arc tangent (global float)
+0:9 'inF0' (temp float)
+0:9 'inF1' (temp float)
+0:10 Ceiling (global float)
+0:10 'inF0' (temp float)
+0:11 clamp (global float)
+0:11 'inF0' (temp float)
+0:11 'inF1' (temp float)
+0:11 'inF2' (temp float)
+0:12 cosine (global float)
+0:12 'inF0' (temp float)
+0:13 hyp. cosine (global float)
+0:13 'inF0' (temp float)
+0:14 bitCount (global uint)
+0:14 Constant:
+0:14 7 (const uint)
+0:15 degrees (global float)
+0:15 'inF0' (temp float)
+0:19 exp (global float)
+0:19 'inF0' (temp float)
+0:20 exp2 (global float)
+0:20 'inF0' (temp float)
+0:21 findMSB (global int)
+0:21 Constant:
+0:21 7 (const int)
+0:22 findLSB (global int)
+0:22 Constant:
+0:22 7 (const int)
+0:23 Floor (global float)
+0:23 'inF0' (temp float)
+0:25 mod (global float)
+0:25 'inF0' (temp float)
+0:25 'inF1' (temp float)
+0:26 Fraction (global float)
+0:26 'inF0' (temp float)
+0:27 frexp (global float)
+0:27 'inF0' (temp float)
+0:27 'inF1' (temp float)
+0:28 fwidth (global float)
+0:28 'inF0' (temp float)
+0:29 isinf (global bool)
+0:29 'inF0' (temp float)
+0:30 isnan (global bool)
+0:30 'inF0' (temp float)
+0:31 ldexp (global float)
+0:31 'inF0' (temp float)
+0:31 'inF1' (temp float)
+0:32 log (global float)
+0:32 'inF0' (temp float)
+0:33 component-wise multiply (temp float)
+0:33 log2 (temp float)
+0:33 'inF0' (temp float)
+0:33 Constant:
+0:33 0.301030
+0:34 log2 (global float)
+0:34 'inF0' (temp float)
+0:35 max (global float)
+0:35 'inF0' (temp float)
+0:35 'inF1' (temp float)
+0:36 min (global float)
+0:36 'inF0' (temp float)
+0:36 'inF1' (temp float)
+0:38 pow (global float)
+0:38 'inF0' (temp float)
+0:38 'inF1' (temp float)
+0:39 radians (global float)
+0:39 'inF0' (temp float)
+0:40 bitFieldReverse (global uint)
+0:40 Constant:
+0:40 2 (const uint)
+0:41 roundEven (global float)
+0:41 'inF0' (temp float)
+0:42 inverse sqrt (global float)
+0:42 'inF0' (temp float)
+0:43 clamp (global float)
+0:43 'inF0' (temp float)
+0:43 Constant:
+0:43 0.000000
+0:43 Constant:
+0:43 1.000000
+0:44 Sign (global float)
+0:44 'inF0' (temp float)
+0:45 sine (global float)
+0:45 'inF0' (temp float)
+0:46 Sequence
+0:46 move second child to first child (temp float)
+0:46 'inF1' (temp float)
+0:46 sine (temp float)
+0:46 'inF0' (temp float)
+0:46 move second child to first child (temp float)
+0:46 'inF2' (temp float)
+0:46 cosine (temp float)
+0:46 'inF0' (temp float)
+0:47 hyp. sine (global float)
+0:47 'inF0' (temp float)
+0:48 smoothstep (global float)
+0:48 'inF0' (temp float)
+0:48 'inF1' (temp float)
+0:48 'inF2' (temp float)
+0:49 sqrt (global float)
+0:49 'inF0' (temp float)
+0:50 step (global float)
+0:50 'inF0' (temp float)
+0:50 'inF1' (temp float)
+0:51 tangent (global float)
+0:51 'inF0' (temp float)
+0:52 hyp. tangent (global float)
+0:52 'inF0' (temp float)
+0:54 trunc (global float)
+0:54 'inF0' (temp float)
+0:56 Branch: Return with expression
+0:56 Constant:
+0:56 0.000000
+0:65 Function Definition: VertexShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float)
+0:60 Function Parameters:
+0:60 'inF0' (temp 1-component vector of float)
+0:60 'inF1' (temp 1-component vector of float)
+0:60 'inF2' (temp 1-component vector of float)
+0:? Sequence
+0:62 Branch: Return with expression
+0:62 Constant:
+0:62 0.000000
+0:131 Function Definition: VertexShaderFunction(vf2;vf2;vf2; (temp 2-component vector of float)
+0:66 Function Parameters:
+0:66 'inF0' (temp 2-component vector of float)
+0:66 'inF1' (temp 2-component vector of float)
+0:66 'inF2' (temp 2-component vector of float)
+0:? Sequence
+0:67 all (global bool)
+0:67 'inF0' (temp 2-component vector of float)
+0:68 Absolute value (global 2-component vector of float)
+0:68 'inF0' (temp 2-component vector of float)
+0:69 arc cosine (global 2-component vector of float)
+0:69 'inF0' (temp 2-component vector of float)
+0:70 any (global bool)
+0:70 'inF0' (temp 2-component vector of float)
+0:71 arc sine (global 2-component vector of float)
+0:71 'inF0' (temp 2-component vector of float)
+0:72 arc tangent (global 2-component vector of float)
+0:72 'inF0' (temp 2-component vector of float)
+0:73 arc tangent (global 2-component vector of float)
+0:73 'inF0' (temp 2-component vector of float)
+0:73 'inF1' (temp 2-component vector of float)
+0:74 Ceiling (global 2-component vector of float)
+0:74 'inF0' (temp 2-component vector of float)
+0:75 clamp (global 2-component vector of float)
+0:75 'inF0' (temp 2-component vector of float)
+0:75 'inF1' (temp 2-component vector of float)
+0:75 'inF2' (temp 2-component vector of float)
+0:76 cosine (global 2-component vector of float)
+0:76 'inF0' (temp 2-component vector of float)
+0:77 hyp. cosine (global 2-component vector of float)
+0:77 'inF0' (temp 2-component vector of float)
+0:? bitCount (global 2-component vector of uint)
+0:? Constant:
+0:? 7 (const uint)
+0:? 3 (const uint)
+0:79 degrees (global 2-component vector of float)
+0:79 'inF0' (temp 2-component vector of float)
+0:80 distance (global float)
+0:80 'inF0' (temp 2-component vector of float)
+0:80 'inF1' (temp 2-component vector of float)
+0:81 dot-product (global float)
+0:81 'inF0' (temp 2-component vector of float)
+0:81 'inF1' (temp 2-component vector of float)
+0:85 exp (global 2-component vector of float)
+0:85 'inF0' (temp 2-component vector of float)
+0:86 exp2 (global 2-component vector of float)
+0:86 'inF0' (temp 2-component vector of float)
+0:87 face-forward (global 2-component vector of float)
+0:87 'inF0' (temp 2-component vector of float)
+0:87 'inF1' (temp 2-component vector of float)
+0:87 'inF2' (temp 2-component vector of float)
+0:88 findMSB (global int)
+0:88 Constant:
+0:88 7 (const int)
+0:89 findLSB (global int)
+0:89 Constant:
+0:89 7 (const int)
+0:90 Floor (global 2-component vector of float)
+0:90 'inF0' (temp 2-component vector of float)
+0:92 mod (global 2-component vector of float)
+0:92 'inF0' (temp 2-component vector of float)
+0:92 'inF1' (temp 2-component vector of float)
+0:93 Fraction (global 2-component vector of float)
+0:93 'inF0' (temp 2-component vector of float)
+0:94 frexp (global 2-component vector of float)
+0:94 'inF0' (temp 2-component vector of float)
+0:94 'inF1' (temp 2-component vector of float)
+0:95 fwidth (global 2-component vector of float)
+0:95 'inF0' (temp 2-component vector of float)
+0:96 isinf (global 2-component vector of bool)
+0:96 'inF0' (temp 2-component vector of float)
+0:97 isnan (global 2-component vector of bool)
+0:97 'inF0' (temp 2-component vector of float)
+0:98 ldexp (global 2-component vector of float)
+0:98 'inF0' (temp 2-component vector of float)
+0:98 'inF1' (temp 2-component vector of float)
+0:99 length (global float)
+0:99 'inF0' (temp 2-component vector of float)
+0:100 log (global 2-component vector of float)
+0:100 'inF0' (temp 2-component vector of float)
+0:101 vector-scale (temp 2-component vector of float)
+0:101 log2 (temp 2-component vector of float)
+0:101 'inF0' (temp 2-component vector of float)
+0:101 Constant:
+0:101 0.301030
+0:102 log2 (global 2-component vector of float)
+0:102 'inF0' (temp 2-component vector of float)
+0:103 max (global 2-component vector of float)
+0:103 'inF0' (temp 2-component vector of float)
+0:103 'inF1' (temp 2-component vector of float)
+0:104 min (global 2-component vector of float)
+0:104 'inF0' (temp 2-component vector of float)
+0:104 'inF1' (temp 2-component vector of float)
+0:106 normalize (global 2-component vector of float)
+0:106 'inF0' (temp 2-component vector of float)
+0:107 pow (global 2-component vector of float)
+0:107 'inF0' (temp 2-component vector of float)
+0:107 'inF1' (temp 2-component vector of float)
+0:108 radians (global 2-component vector of float)
+0:108 'inF0' (temp 2-component vector of float)
+0:109 reflect (global 2-component vector of float)
+0:109 'inF0' (temp 2-component vector of float)
+0:109 'inF1' (temp 2-component vector of float)
+0:110 refract (global 2-component vector of float)
+0:110 'inF0' (temp 2-component vector of float)
+0:110 'inF1' (temp 2-component vector of float)
+0:110 Constant:
+0:110 2.000000
+0:? bitFieldReverse (global 2-component vector of uint)
+0:? Constant:
+0:? 1 (const uint)
+0:? 2 (const uint)
+0:112 roundEven (global 2-component vector of float)
+0:112 'inF0' (temp 2-component vector of float)
+0:113 inverse sqrt (global 2-component vector of float)
+0:113 'inF0' (temp 2-component vector of float)
+0:114 clamp (global 2-component vector of float)
+0:114 'inF0' (temp 2-component vector of float)
+0:114 Constant:
+0:114 0.000000
+0:114 Constant:
+0:114 1.000000
+0:115 Sign (global 2-component vector of float)
+0:115 'inF0' (temp 2-component vector of float)
+0:116 sine (global 2-component vector of float)
+0:116 'inF0' (temp 2-component vector of float)
+0:117 Sequence
+0:117 move second child to first child (temp 2-component vector of float)
+0:117 'inF1' (temp 2-component vector of float)
+0:117 sine (temp 2-component vector of float)
+0:117 'inF0' (temp 2-component vector of float)
+0:117 move second child to first child (temp 2-component vector of float)
+0:117 'inF2' (temp 2-component vector of float)
+0:117 cosine (temp 2-component vector of float)
+0:117 'inF0' (temp 2-component vector of float)
+0:118 hyp. sine (global 2-component vector of float)
+0:118 'inF0' (temp 2-component vector of float)
+0:119 smoothstep (global 2-component vector of float)
+0:119 'inF0' (temp 2-component vector of float)
+0:119 'inF1' (temp 2-component vector of float)
+0:119 'inF2' (temp 2-component vector of float)
+0:120 sqrt (global 2-component vector of float)
+0:120 'inF0' (temp 2-component vector of float)
+0:121 step (global 2-component vector of float)
+0:121 'inF0' (temp 2-component vector of float)
+0:121 'inF1' (temp 2-component vector of float)
+0:122 tangent (global 2-component vector of float)
+0:122 'inF0' (temp 2-component vector of float)
+0:123 hyp. tangent (global 2-component vector of float)
+0:123 'inF0' (temp 2-component vector of float)
+0:125 trunc (global 2-component vector of float)
+0:125 'inF0' (temp 2-component vector of float)
+0:128 Branch: Return with expression
+0:? Constant:
+0:? 1.000000
+0:? 2.000000
+0:198 Function Definition: VertexShaderFunction(vf3;vf3;vf3; (temp 3-component vector of float)
+0:132 Function Parameters:
+0:132 'inF0' (temp 3-component vector of float)
+0:132 'inF1' (temp 3-component vector of float)
+0:132 'inF2' (temp 3-component vector of float)
+0:? Sequence
+0:133 all (global bool)
+0:133 'inF0' (temp 3-component vector of float)
+0:134 Absolute value (global 3-component vector of float)
+0:134 'inF0' (temp 3-component vector of float)
+0:135 arc cosine (global 3-component vector of float)
+0:135 'inF0' (temp 3-component vector of float)
+0:136 any (global bool)
+0:136 'inF0' (temp 3-component vector of float)
+0:137 arc sine (global 3-component vector of float)
+0:137 'inF0' (temp 3-component vector of float)
+0:138 arc tangent (global 3-component vector of float)
+0:138 'inF0' (temp 3-component vector of float)
+0:139 arc tangent (global 3-component vector of float)
+0:139 'inF0' (temp 3-component vector of float)
+0:139 'inF1' (temp 3-component vector of float)
+0:140 Ceiling (global 3-component vector of float)
+0:140 'inF0' (temp 3-component vector of float)
+0:141 clamp (global 3-component vector of float)
+0:141 'inF0' (temp 3-component vector of float)
+0:141 'inF1' (temp 3-component vector of float)
+0:141 'inF2' (temp 3-component vector of float)
+0:142 cosine (global 3-component vector of float)
+0:142 'inF0' (temp 3-component vector of float)
+0:143 hyp. cosine (global 3-component vector of float)
+0:143 'inF0' (temp 3-component vector of float)
+0:? bitCount (global 3-component vector of uint)
+0:? Constant:
+0:? 7 (const uint)
+0:? 3 (const uint)
+0:? 5 (const uint)
+0:145 cross-product (global 3-component vector of float)
+0:145 'inF0' (temp 3-component vector of float)
+0:145 'inF1' (temp 3-component vector of float)
+0:146 degrees (global 3-component vector of float)
+0:146 'inF0' (temp 3-component vector of float)
+0:147 distance (global float)
+0:147 'inF0' (temp 3-component vector of float)
+0:147 'inF1' (temp 3-component vector of float)
+0:148 dot-product (global float)
+0:148 'inF0' (temp 3-component vector of float)
+0:148 'inF1' (temp 3-component vector of float)
+0:152 exp (global 3-component vector of float)
+0:152 'inF0' (temp 3-component vector of float)
+0:153 exp2 (global 3-component vector of float)
+0:153 'inF0' (temp 3-component vector of float)
+0:154 face-forward (global 3-component vector of float)
+0:154 'inF0' (temp 3-component vector of float)
+0:154 'inF1' (temp 3-component vector of float)
+0:154 'inF2' (temp 3-component vector of float)
+0:155 findMSB (global int)
+0:155 Constant:
+0:155 7 (const int)
+0:156 findLSB (global int)
+0:156 Constant:
+0:156 7 (const int)
+0:157 Floor (global 3-component vector of float)
+0:157 'inF0' (temp 3-component vector of float)
+0:159 mod (global 3-component vector of float)
+0:159 'inF0' (temp 3-component vector of float)
+0:159 'inF1' (temp 3-component vector of float)
+0:160 Fraction (global 3-component vector of float)
+0:160 'inF0' (temp 3-component vector of float)
+0:161 frexp (global 3-component vector of float)
+0:161 'inF0' (temp 3-component vector of float)
+0:161 'inF1' (temp 3-component vector of float)
+0:162 fwidth (global 3-component vector of float)
+0:162 'inF0' (temp 3-component vector of float)
+0:163 isinf (global 3-component vector of bool)
+0:163 'inF0' (temp 3-component vector of float)
+0:164 isnan (global 3-component vector of bool)
+0:164 'inF0' (temp 3-component vector of float)
+0:165 ldexp (global 3-component vector of float)
+0:165 'inF0' (temp 3-component vector of float)
+0:165 'inF1' (temp 3-component vector of float)
+0:166 length (global float)
+0:166 'inF0' (temp 3-component vector of float)
+0:167 log (global 3-component vector of float)
+0:167 'inF0' (temp 3-component vector of float)
+0:168 vector-scale (temp 3-component vector of float)
+0:168 log2 (temp 3-component vector of float)
+0:168 'inF0' (temp 3-component vector of float)
+0:168 Constant:
+0:168 0.301030
+0:169 log2 (global 3-component vector of float)
+0:169 'inF0' (temp 3-component vector of float)
+0:170 max (global 3-component vector of float)
+0:170 'inF0' (temp 3-component vector of float)
+0:170 'inF1' (temp 3-component vector of float)
+0:171 min (global 3-component vector of float)
+0:171 'inF0' (temp 3-component vector of float)
+0:171 'inF1' (temp 3-component vector of float)
+0:173 normalize (global 3-component vector of float)
+0:173 'inF0' (temp 3-component vector of float)
+0:174 pow (global 3-component vector of float)
+0:174 'inF0' (temp 3-component vector of float)
+0:174 'inF1' (temp 3-component vector of float)
+0:175 radians (global 3-component vector of float)
+0:175 'inF0' (temp 3-component vector of float)
+0:176 reflect (global 3-component vector of float)
+0:176 'inF0' (temp 3-component vector of float)
+0:176 'inF1' (temp 3-component vector of float)
+0:177 refract (global 3-component vector of float)
+0:177 'inF0' (temp 3-component vector of float)
+0:177 'inF1' (temp 3-component vector of float)
+0:177 Constant:
+0:177 2.000000
+0:? bitFieldReverse (global 3-component vector of uint)
+0:? Constant:
+0:? 1 (const uint)
+0:? 2 (const uint)
+0:? 3 (const uint)
+0:179 roundEven (global 3-component vector of float)
+0:179 'inF0' (temp 3-component vector of float)
+0:180 inverse sqrt (global 3-component vector of float)
+0:180 'inF0' (temp 3-component vector of float)
+0:181 clamp (global 3-component vector of float)
+0:181 'inF0' (temp 3-component vector of float)
+0:181 Constant:
+0:181 0.000000
+0:181 Constant:
+0:181 1.000000
+0:182 Sign (global 3-component vector of float)
+0:182 'inF0' (temp 3-component vector of float)
+0:183 sine (global 3-component vector of float)
+0:183 'inF0' (temp 3-component vector of float)
+0:184 Sequence
+0:184 move second child to first child (temp 3-component vector of float)
+0:184 'inF1' (temp 3-component vector of float)
+0:184 sine (temp 3-component vector of float)
+0:184 'inF0' (temp 3-component vector of float)
+0:184 move second child to first child (temp 3-component vector of float)
+0:184 'inF2' (temp 3-component vector of float)
+0:184 cosine (temp 3-component vector of float)
+0:184 'inF0' (temp 3-component vector of float)
+0:185 hyp. sine (global 3-component vector of float)
+0:185 'inF0' (temp 3-component vector of float)
+0:186 smoothstep (global 3-component vector of float)
+0:186 'inF0' (temp 3-component vector of float)
+0:186 'inF1' (temp 3-component vector of float)
+0:186 'inF2' (temp 3-component vector of float)
+0:187 sqrt (global 3-component vector of float)
+0:187 'inF0' (temp 3-component vector of float)
+0:188 step (global 3-component vector of float)
+0:188 'inF0' (temp 3-component vector of float)
+0:188 'inF1' (temp 3-component vector of float)
+0:189 tangent (global 3-component vector of float)
+0:189 'inF0' (temp 3-component vector of float)
+0:190 hyp. tangent (global 3-component vector of float)
+0:190 'inF0' (temp 3-component vector of float)
+0:192 trunc (global 3-component vector of float)
+0:192 'inF0' (temp 3-component vector of float)
+0:195 Branch: Return with expression
+0:? Constant:
+0:? 1.000000
+0:? 2.000000
+0:? 3.000000
+0:314 Function Definition: VertexShaderFunction(vf4;vf4;vf4; (temp 4-component vector of float)
+0:199 Function Parameters:
+0:199 'inF0' (temp 4-component vector of float)
+0:199 'inF1' (temp 4-component vector of float)
+0:199 'inF2' (temp 4-component vector of float)
+0:? Sequence
+0:200 all (global bool)
+0:200 'inF0' (temp 4-component vector of float)
+0:201 Absolute value (global 4-component vector of float)
+0:201 'inF0' (temp 4-component vector of float)
+0:202 arc cosine (global 4-component vector of float)
+0:202 'inF0' (temp 4-component vector of float)
+0:203 any (global bool)
+0:203 'inF0' (temp 4-component vector of float)
+0:204 arc sine (global 4-component vector of float)
+0:204 'inF0' (temp 4-component vector of float)
+0:205 arc tangent (global 4-component vector of float)
+0:205 'inF0' (temp 4-component vector of float)
+0:206 arc tangent (global 4-component vector of float)
+0:206 'inF0' (temp 4-component vector of float)
+0:206 'inF1' (temp 4-component vector of float)
+0:207 Ceiling (global 4-component vector of float)
+0:207 'inF0' (temp 4-component vector of float)
+0:208 clamp (global 4-component vector of float)
+0:208 'inF0' (temp 4-component vector of float)
+0:208 'inF1' (temp 4-component vector of float)
+0:208 'inF2' (temp 4-component vector of float)
+0:209 cosine (global 4-component vector of float)
+0:209 'inF0' (temp 4-component vector of float)
+0:210 hyp. cosine (global 4-component vector of float)
+0:210 'inF0' (temp 4-component vector of float)
+0:? bitCount (global 4-component vector of uint)
+0:? Constant:
+0:? 7 (const uint)
+0:? 3 (const uint)
+0:? 5 (const uint)
+0:? 2 (const uint)
+0:212 degrees (global 4-component vector of float)
+0:212 'inF0' (temp 4-component vector of float)
+0:213 distance (global float)
+0:213 'inF0' (temp 4-component vector of float)
+0:213 'inF1' (temp 4-component vector of float)
+0:214 dot-product (global float)
+0:214 'inF0' (temp 4-component vector of float)
+0:214 'inF1' (temp 4-component vector of float)
+0:215 Construct vec4 (temp float)
+0:215 Constant:
+0:215 1.000000
+0:215 component-wise multiply (temp float)
+0:215 direct index (temp float)
+0:215 'inF0' (temp 4-component vector of float)
+0:215 Constant:
+0:215 1 (const int)
+0:215 direct index (temp float)
+0:215 'inF1' (temp 4-component vector of float)
+0:215 Constant:
+0:215 1 (const int)
+0:215 direct index (temp float)
+0:215 'inF0' (temp 4-component vector of float)
+0:215 Constant:
+0:215 2 (const int)
+0:215 direct index (temp float)
+0:215 'inF1' (temp 4-component vector of float)
+0:215 Constant:
+0:215 3 (const int)
+0:219 exp (global 4-component vector of float)
+0:219 'inF0' (temp 4-component vector of float)
+0:220 exp2 (global 4-component vector of float)
+0:220 'inF0' (temp 4-component vector of float)
+0:221 face-forward (global 4-component vector of float)
+0:221 'inF0' (temp 4-component vector of float)
+0:221 'inF1' (temp 4-component vector of float)
+0:221 'inF2' (temp 4-component vector of float)
+0:222 findMSB (global int)
+0:222 Constant:
+0:222 7 (const int)
+0:223 findLSB (global int)
+0:223 Constant:
+0:223 7 (const int)
+0:224 Floor (global 4-component vector of float)
+0:224 'inF0' (temp 4-component vector of float)
+0:226 mod (global 4-component vector of float)
+0:226 'inF0' (temp 4-component vector of float)
+0:226 'inF1' (temp 4-component vector of float)
+0:227 Fraction (global 4-component vector of float)
+0:227 'inF0' (temp 4-component vector of float)
+0:228 frexp (global 4-component vector of float)
+0:228 'inF0' (temp 4-component vector of float)
+0:228 'inF1' (temp 4-component vector of float)
+0:229 fwidth (global 4-component vector of float)
+0:229 'inF0' (temp 4-component vector of float)
+0:230 isinf (global 4-component vector of bool)
+0:230 'inF0' (temp 4-component vector of float)
+0:231 isnan (global 4-component vector of bool)
+0:231 'inF0' (temp 4-component vector of float)
+0:232 ldexp (global 4-component vector of float)
+0:232 'inF0' (temp 4-component vector of float)
+0:232 'inF1' (temp 4-component vector of float)
+0:233 length (global float)
+0:233 'inF0' (temp 4-component vector of float)
+0:234 log (global 4-component vector of float)
+0:234 'inF0' (temp 4-component vector of float)
+0:235 vector-scale (temp 4-component vector of float)
+0:235 log2 (temp 4-component vector of float)
+0:235 'inF0' (temp 4-component vector of float)
+0:235 Constant:
+0:235 0.301030
+0:236 log2 (global 4-component vector of float)
+0:236 'inF0' (temp 4-component vector of float)
+0:237 max (global 4-component vector of float)
+0:237 'inF0' (temp 4-component vector of float)
+0:237 'inF1' (temp 4-component vector of float)
+0:238 min (global 4-component vector of float)
+0:238 'inF0' (temp 4-component vector of float)
+0:238 'inF1' (temp 4-component vector of float)
+0:240 normalize (global 4-component vector of float)
+0:240 'inF0' (temp 4-component vector of float)
+0:241 pow (global 4-component vector of float)
+0:241 'inF0' (temp 4-component vector of float)
+0:241 'inF1' (temp 4-component vector of float)
+0:242 radians (global 4-component vector of float)
+0:242 'inF0' (temp 4-component vector of float)
+0:243 reflect (global 4-component vector of float)
+0:243 'inF0' (temp 4-component vector of float)
+0:243 'inF1' (temp 4-component vector of float)
+0:244 refract (global 4-component vector of float)
+0:244 'inF0' (temp 4-component vector of float)
+0:244 'inF1' (temp 4-component vector of float)
+0:244 Constant:
+0:244 2.000000
+0:? bitFieldReverse (global 4-component vector of uint)
+0:? Constant:
+0:? 1 (const uint)
+0:? 2 (const uint)
+0:? 3 (const uint)
+0:? 4 (const uint)
+0:246 roundEven (global 4-component vector of float)
+0:246 'inF0' (temp 4-component vector of float)
+0:247 inverse sqrt (global 4-component vector of float)
+0:247 'inF0' (temp 4-component vector of float)
+0:248 clamp (global 4-component vector of float)
+0:248 'inF0' (temp 4-component vector of float)
+0:248 Constant:
+0:248 0.000000
+0:248 Constant:
+0:248 1.000000
+0:249 Sign (global 4-component vector of float)
+0:249 'inF0' (temp 4-component vector of float)
+0:250 sine (global 4-component vector of float)
+0:250 'inF0' (temp 4-component vector of float)
+0:251 Sequence
+0:251 move second child to first child (temp 4-component vector of float)
+0:251 'inF1' (temp 4-component vector of float)
+0:251 sine (temp 4-component vector of float)
+0:251 'inF0' (temp 4-component vector of float)
+0:251 move second child to first child (temp 4-component vector of float)
+0:251 'inF2' (temp 4-component vector of float)
+0:251 cosine (temp 4-component vector of float)
+0:251 'inF0' (temp 4-component vector of float)
+0:252 hyp. sine (global 4-component vector of float)
+0:252 'inF0' (temp 4-component vector of float)
+0:253 smoothstep (global 4-component vector of float)
+0:253 'inF0' (temp 4-component vector of float)
+0:253 'inF1' (temp 4-component vector of float)
+0:253 'inF2' (temp 4-component vector of float)
+0:254 sqrt (global 4-component vector of float)
+0:254 'inF0' (temp 4-component vector of float)
+0:255 step (global 4-component vector of float)
+0:255 'inF0' (temp 4-component vector of float)
+0:255 'inF1' (temp 4-component vector of float)
+0:256 tangent (global 4-component vector of float)
+0:256 'inF0' (temp 4-component vector of float)
+0:257 hyp. tangent (global 4-component vector of float)
+0:257 'inF0' (temp 4-component vector of float)
+0:259 trunc (global 4-component vector of float)
+0:259 'inF0' (temp 4-component vector of float)
+0:262 Branch: Return with expression
+0:? Constant:
+0:? 1.000000
+0:? 2.000000
+0:? 3.000000
+0:? 4.000000
+0:323 Function Definition: VertexShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float)
+0:315 Function Parameters:
+0:315 'inF0' (temp 2X2 matrix of float)
+0:315 'inF1' (temp 2X2 matrix of float)
+0:315 'inF2' (temp 2X2 matrix of float)
+0:? Sequence
+0:317 all (global bool)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 Absolute value (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 arc cosine (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 any (global bool)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 arc sine (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 arc tangent (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 arc tangent (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 'inF1' (temp 2X2 matrix of float)
+0:317 Ceiling (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 clamp (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 'inF1' (temp 2X2 matrix of float)
+0:317 'inF2' (temp 2X2 matrix of float)
+0:317 cosine (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 hyp. cosine (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 degrees (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 determinant (global float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 exp (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 exp2 (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 findMSB (global int)
+0:317 Constant:
+0:317 7 (const int)
+0:317 findLSB (global int)
+0:317 Constant:
+0:317 7 (const int)
+0:317 Floor (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 mod (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 'inF1' (temp 2X2 matrix of float)
+0:317 Fraction (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 frexp (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 'inF1' (temp 2X2 matrix of float)
+0:317 fwidth (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 ldexp (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 'inF1' (temp 2X2 matrix of float)
+0:317 log (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 matrix-scale (temp 2X2 matrix of float)
+0:317 log2 (temp 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 Constant:
+0:317 0.301030
+0:317 log2 (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 max (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 'inF1' (temp 2X2 matrix of float)
+0:317 min (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 'inF1' (temp 2X2 matrix of float)
+0:317 pow (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 'inF1' (temp 2X2 matrix of float)
+0:317 radians (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 roundEven (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 inverse sqrt (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 clamp (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 Constant:
+0:317 0.000000
+0:317 Constant:
+0:317 1.000000
+0:317 Sign (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 sine (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 Sequence
+0:317 move second child to first child (temp 2X2 matrix of float)
+0:317 'inF1' (temp 2X2 matrix of float)
+0:317 sine (temp 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 move second child to first child (temp 2X2 matrix of float)
+0:317 'inF2' (temp 2X2 matrix of float)
+0:317 cosine (temp 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 hyp. sine (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 smoothstep (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 'inF1' (temp 2X2 matrix of float)
+0:317 'inF2' (temp 2X2 matrix of float)
+0:317 sqrt (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 step (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 'inF1' (temp 2X2 matrix of float)
+0:317 tangent (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 hyp. tangent (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 transpose (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 trunc (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:320 Branch: Return with expression
+0:? Constant:
+0:? 2.000000
+0:? 2.000000
+0:? 2.000000
+0:? 2.000000
+0:332 Function Definition: VertexShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float)
+0:324 Function Parameters:
+0:324 'inF0' (temp 3X3 matrix of float)
+0:324 'inF1' (temp 3X3 matrix of float)
+0:324 'inF2' (temp 3X3 matrix of float)
+0:? Sequence
+0:326 all (global bool)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 Absolute value (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 arc cosine (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 any (global bool)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 arc sine (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 arc tangent (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 arc tangent (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 'inF1' (temp 3X3 matrix of float)
+0:326 Ceiling (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 clamp (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 'inF1' (temp 3X3 matrix of float)
+0:326 'inF2' (temp 3X3 matrix of float)
+0:326 cosine (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 hyp. cosine (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 degrees (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 determinant (global float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 exp (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 exp2 (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 findMSB (global int)
+0:326 Constant:
+0:326 7 (const int)
+0:326 findLSB (global int)
+0:326 Constant:
+0:326 7 (const int)
+0:326 Floor (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 mod (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 'inF1' (temp 3X3 matrix of float)
+0:326 Fraction (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 frexp (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 'inF1' (temp 3X3 matrix of float)
+0:326 fwidth (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 ldexp (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 'inF1' (temp 3X3 matrix of float)
+0:326 log (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 matrix-scale (temp 3X3 matrix of float)
+0:326 log2 (temp 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 Constant:
+0:326 0.301030
+0:326 log2 (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 max (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 'inF1' (temp 3X3 matrix of float)
+0:326 min (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 'inF1' (temp 3X3 matrix of float)
+0:326 pow (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 'inF1' (temp 3X3 matrix of float)
+0:326 radians (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 roundEven (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 inverse sqrt (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 clamp (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 Constant:
+0:326 0.000000
+0:326 Constant:
+0:326 1.000000
+0:326 Sign (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 sine (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 Sequence
+0:326 move second child to first child (temp 3X3 matrix of float)
+0:326 'inF1' (temp 3X3 matrix of float)
+0:326 sine (temp 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 move second child to first child (temp 3X3 matrix of float)
+0:326 'inF2' (temp 3X3 matrix of float)
+0:326 cosine (temp 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 hyp. sine (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 smoothstep (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 'inF1' (temp 3X3 matrix of float)
+0:326 'inF2' (temp 3X3 matrix of float)
+0:326 sqrt (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 step (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 'inF1' (temp 3X3 matrix of float)
+0:326 tangent (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 hyp. tangent (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 transpose (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 trunc (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:329 Branch: Return with expression
+0:? Constant:
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:353 Function Definition: VertexShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float)
+0:333 Function Parameters:
+0:333 'inF0' (temp 4X4 matrix of float)
+0:333 'inF1' (temp 4X4 matrix of float)
+0:333 'inF2' (temp 4X4 matrix of float)
+0:? Sequence
+0:335 all (global bool)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 Absolute value (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 arc cosine (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 any (global bool)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 arc sine (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 arc tangent (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 arc tangent (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 'inF1' (temp 4X4 matrix of float)
+0:335 Ceiling (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 clamp (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 'inF1' (temp 4X4 matrix of float)
+0:335 'inF2' (temp 4X4 matrix of float)
+0:335 cosine (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 hyp. cosine (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 degrees (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 determinant (global float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 exp (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 exp2 (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 findMSB (global int)
+0:335 Constant:
+0:335 7 (const int)
+0:335 findLSB (global int)
+0:335 Constant:
+0:335 7 (const int)
+0:335 Floor (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 mod (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 'inF1' (temp 4X4 matrix of float)
+0:335 Fraction (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 frexp (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 'inF1' (temp 4X4 matrix of float)
+0:335 fwidth (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 ldexp (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 'inF1' (temp 4X4 matrix of float)
+0:335 log (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 matrix-scale (temp 4X4 matrix of float)
+0:335 log2 (temp 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 Constant:
+0:335 0.301030
+0:335 log2 (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 max (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 'inF1' (temp 4X4 matrix of float)
+0:335 min (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 'inF1' (temp 4X4 matrix of float)
+0:335 pow (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 'inF1' (temp 4X4 matrix of float)
+0:335 radians (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 roundEven (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 inverse sqrt (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 clamp (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 Constant:
+0:335 0.000000
+0:335 Constant:
+0:335 1.000000
+0:335 Sign (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 sine (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 Sequence
+0:335 move second child to first child (temp 4X4 matrix of float)
+0:335 'inF1' (temp 4X4 matrix of float)
+0:335 sine (temp 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 move second child to first child (temp 4X4 matrix of float)
+0:335 'inF2' (temp 4X4 matrix of float)
+0:335 cosine (temp 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 hyp. sine (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 smoothstep (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 'inF1' (temp 4X4 matrix of float)
+0:335 'inF2' (temp 4X4 matrix of float)
+0:335 sqrt (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 step (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 'inF1' (temp 4X4 matrix of float)
+0:335 tangent (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 hyp. tangent (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 transpose (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 trunc (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:338 Branch: Return with expression
+0:? Constant:
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:360 Function Definition: TestGenMul(f1;f1;vf2;vf2;mf22;mf22; (temp void)
+0:356 Function Parameters:
+0:356 'inF0' (temp float)
+0:356 'inF1' (temp float)
+0:356 'inFV0' (temp 2-component vector of float)
+0:356 'inFV1' (temp 2-component vector of float)
+0:356 'inFM0' (temp 2X2 matrix of float)
+0:356 'inFM1' (temp 2X2 matrix of float)
+0:? Sequence
+0:357 move second child to first child (temp float)
+0:357 'r0' (temp float)
+0:357 component-wise multiply (temp float)
+0:357 'inF0' (temp float)
+0:357 'inF1' (temp float)
+0:357 move second child to first child (temp 2-component vector of float)
+0:357 'r1' (temp 2-component vector of float)
+0:357 vector-scale (temp 2-component vector of float)
+0:357 'inFV0' (temp 2-component vector of float)
+0:357 'inF0' (temp float)
+0:357 move second child to first child (temp 2-component vector of float)
+0:357 'r2' (temp 2-component vector of float)
+0:357 vector-scale (temp 2-component vector of float)
+0:357 'inF0' (temp float)
+0:357 'inFV0' (temp 2-component vector of float)
+0:357 move second child to first child (temp float)
+0:357 'r3' (temp float)
+0:357 dot-product (global float)
+0:357 'inFV0' (temp 2-component vector of float)
+0:357 'inFV1' (temp 2-component vector of float)
+0:357 move second child to first child (temp 2-component vector of float)
+0:357 'r4' (temp 2-component vector of float)
+0:357 matrix-times-vector (temp 2-component vector of float)
+0:357 'inFM0' (temp 2X2 matrix of float)
+0:357 'inFV0' (temp 2-component vector of float)
+0:357 move second child to first child (temp 2-component vector of float)
+0:357 'r5' (temp 2-component vector of float)
+0:357 vector-times-matrix (temp 2-component vector of float)
+0:357 'inFV0' (temp 2-component vector of float)
+0:357 'inFM0' (temp 2X2 matrix of float)
+0:357 move second child to first child (temp 2X2 matrix of float)
+0:357 'r6' (temp 2X2 matrix of float)
+0:357 matrix-scale (temp 2X2 matrix of float)
+0:357 'inFM0' (temp 2X2 matrix of float)
+0:357 'inF0' (temp float)
+0:357 move second child to first child (temp 2X2 matrix of float)
+0:357 'r7' (temp 2X2 matrix of float)
+0:357 matrix-scale (temp 2X2 matrix of float)
+0:357 'inF0' (temp float)
+0:357 'inFM0' (temp 2X2 matrix of float)
+0:357 move second child to first child (temp 2X2 matrix of float)
+0:357 'r8' (temp 2X2 matrix of float)
+0:357 matrix-multiply (temp 2X2 matrix of float)
+0:357 'inFM0' (temp 2X2 matrix of float)
+0:357 'inFM1' (temp 2X2 matrix of float)
+0:367 Function Definition: TestGenMul(f1;f1;vf3;vf3;mf33;mf33; (temp void)
+0:363 Function Parameters:
+0:363 'inF0' (temp float)
+0:363 'inF1' (temp float)
+0:363 'inFV0' (temp 3-component vector of float)
+0:363 'inFV1' (temp 3-component vector of float)
+0:363 'inFM0' (temp 3X3 matrix of float)
+0:363 'inFM1' (temp 3X3 matrix of float)
+0:? Sequence
+0:364 move second child to first child (temp float)
+0:364 'r0' (temp float)
+0:364 component-wise multiply (temp float)
+0:364 'inF0' (temp float)
+0:364 'inF1' (temp float)
+0:364 move second child to first child (temp 3-component vector of float)
+0:364 'r1' (temp 3-component vector of float)
+0:364 vector-scale (temp 3-component vector of float)
+0:364 'inFV0' (temp 3-component vector of float)
+0:364 'inF0' (temp float)
+0:364 move second child to first child (temp 3-component vector of float)
+0:364 'r2' (temp 3-component vector of float)
+0:364 vector-scale (temp 3-component vector of float)
+0:364 'inF0' (temp float)
+0:364 'inFV0' (temp 3-component vector of float)
+0:364 move second child to first child (temp float)
+0:364 'r3' (temp float)
+0:364 dot-product (global float)
+0:364 'inFV0' (temp 3-component vector of float)
+0:364 'inFV1' (temp 3-component vector of float)
+0:364 move second child to first child (temp 3-component vector of float)
+0:364 'r4' (temp 3-component vector of float)
+0:364 matrix-times-vector (temp 3-component vector of float)
+0:364 'inFM0' (temp 3X3 matrix of float)
+0:364 'inFV0' (temp 3-component vector of float)
+0:364 move second child to first child (temp 3-component vector of float)
+0:364 'r5' (temp 3-component vector of float)
+0:364 vector-times-matrix (temp 3-component vector of float)
+0:364 'inFV0' (temp 3-component vector of float)
+0:364 'inFM0' (temp 3X3 matrix of float)
+0:364 move second child to first child (temp 3X3 matrix of float)
+0:364 'r6' (temp 3X3 matrix of float)
+0:364 matrix-scale (temp 3X3 matrix of float)
+0:364 'inFM0' (temp 3X3 matrix of float)
+0:364 'inF0' (temp float)
+0:364 move second child to first child (temp 3X3 matrix of float)
+0:364 'r7' (temp 3X3 matrix of float)
+0:364 matrix-scale (temp 3X3 matrix of float)
+0:364 'inF0' (temp float)
+0:364 'inFM0' (temp 3X3 matrix of float)
+0:364 move second child to first child (temp 3X3 matrix of float)
+0:364 'r8' (temp 3X3 matrix of float)
+0:364 matrix-multiply (temp 3X3 matrix of float)
+0:364 'inFM0' (temp 3X3 matrix of float)
+0:364 'inFM1' (temp 3X3 matrix of float)
+0:373 Function Definition: TestGenMul(f1;f1;vf4;vf4;mf44;mf44; (temp void)
+0:370 Function Parameters:
+0:370 'inF0' (temp float)
+0:370 'inF1' (temp float)
+0:370 'inFV0' (temp 4-component vector of float)
+0:370 'inFV1' (temp 4-component vector of float)
+0:370 'inFM0' (temp 4X4 matrix of float)
+0:370 'inFM1' (temp 4X4 matrix of float)
+0:? Sequence
+0:371 move second child to first child (temp float)
+0:371 'r0' (temp float)
+0:371 component-wise multiply (temp float)
+0:371 'inF0' (temp float)
+0:371 'inF1' (temp float)
+0:371 move second child to first child (temp 4-component vector of float)
+0:371 'r1' (temp 4-component vector of float)
+0:371 vector-scale (temp 4-component vector of float)
+0:371 'inFV0' (temp 4-component vector of float)
+0:371 'inF0' (temp float)
+0:371 move second child to first child (temp 4-component vector of float)
+0:371 'r2' (temp 4-component vector of float)
+0:371 vector-scale (temp 4-component vector of float)
+0:371 'inF0' (temp float)
+0:371 'inFV0' (temp 4-component vector of float)
+0:371 move second child to first child (temp float)
+0:371 'r3' (temp float)
+0:371 dot-product (global float)
+0:371 'inFV0' (temp 4-component vector of float)
+0:371 'inFV1' (temp 4-component vector of float)
+0:371 move second child to first child (temp 4-component vector of float)
+0:371 'r4' (temp 4-component vector of float)
+0:371 matrix-times-vector (temp 4-component vector of float)
+0:371 'inFM0' (temp 4X4 matrix of float)
+0:371 'inFV0' (temp 4-component vector of float)
+0:371 move second child to first child (temp 4-component vector of float)
+0:371 'r5' (temp 4-component vector of float)
+0:371 vector-times-matrix (temp 4-component vector of float)
+0:371 'inFV0' (temp 4-component vector of float)
+0:371 'inFM0' (temp 4X4 matrix of float)
+0:371 move second child to first child (temp 4X4 matrix of float)
+0:371 'r6' (temp 4X4 matrix of float)
+0:371 matrix-scale (temp 4X4 matrix of float)
+0:371 'inFM0' (temp 4X4 matrix of float)
+0:371 'inF0' (temp float)
+0:371 move second child to first child (temp 4X4 matrix of float)
+0:371 'r7' (temp 4X4 matrix of float)
+0:371 matrix-scale (temp 4X4 matrix of float)
+0:371 'inF0' (temp float)
+0:371 'inFM0' (temp 4X4 matrix of float)
+0:371 move second child to first child (temp 4X4 matrix of float)
+0:371 'r8' (temp 4X4 matrix of float)
+0:371 matrix-multiply (temp 4X4 matrix of float)
+0:371 'inFM0' (temp 4X4 matrix of float)
+0:371 'inFM1' (temp 4X4 matrix of float)
+0:? Linker Objects
+
+
+Linked vertex stage:
+
+
+Shader version: 450
+0:? Sequence
+0:59 Function Definition: VertexShaderFunction(f1;f1;f1; (temp float)
+0:2 Function Parameters:
+0:2 'inF0' (temp float)
+0:2 'inF1' (temp float)
+0:2 'inF2' (temp float)
+0:? Sequence
+0:3 all (global bool)
+0:3 'inF0' (temp float)
+0:4 Absolute value (global float)
+0:4 'inF0' (temp float)
+0:5 arc cosine (global float)
+0:5 'inF0' (temp float)
+0:6 any (global bool)
+0:6 'inF0' (temp float)
+0:7 arc sine (global float)
+0:7 'inF0' (temp float)
+0:8 arc tangent (global float)
+0:8 'inF0' (temp float)
+0:9 arc tangent (global float)
+0:9 'inF0' (temp float)
+0:9 'inF1' (temp float)
+0:10 Ceiling (global float)
+0:10 'inF0' (temp float)
+0:11 clamp (global float)
+0:11 'inF0' (temp float)
+0:11 'inF1' (temp float)
+0:11 'inF2' (temp float)
+0:12 cosine (global float)
+0:12 'inF0' (temp float)
+0:13 hyp. cosine (global float)
+0:13 'inF0' (temp float)
+0:14 bitCount (global uint)
+0:14 Constant:
+0:14 7 (const uint)
+0:15 degrees (global float)
+0:15 'inF0' (temp float)
+0:19 exp (global float)
+0:19 'inF0' (temp float)
+0:20 exp2 (global float)
+0:20 'inF0' (temp float)
+0:21 findMSB (global int)
+0:21 Constant:
+0:21 7 (const int)
+0:22 findLSB (global int)
+0:22 Constant:
+0:22 7 (const int)
+0:23 Floor (global float)
+0:23 'inF0' (temp float)
+0:25 mod (global float)
+0:25 'inF0' (temp float)
+0:25 'inF1' (temp float)
+0:26 Fraction (global float)
+0:26 'inF0' (temp float)
+0:27 frexp (global float)
+0:27 'inF0' (temp float)
+0:27 'inF1' (temp float)
+0:28 fwidth (global float)
+0:28 'inF0' (temp float)
+0:29 isinf (global bool)
+0:29 'inF0' (temp float)
+0:30 isnan (global bool)
+0:30 'inF0' (temp float)
+0:31 ldexp (global float)
+0:31 'inF0' (temp float)
+0:31 'inF1' (temp float)
+0:32 log (global float)
+0:32 'inF0' (temp float)
+0:33 component-wise multiply (temp float)
+0:33 log2 (temp float)
+0:33 'inF0' (temp float)
+0:33 Constant:
+0:33 0.301030
+0:34 log2 (global float)
+0:34 'inF0' (temp float)
+0:35 max (global float)
+0:35 'inF0' (temp float)
+0:35 'inF1' (temp float)
+0:36 min (global float)
+0:36 'inF0' (temp float)
+0:36 'inF1' (temp float)
+0:38 pow (global float)
+0:38 'inF0' (temp float)
+0:38 'inF1' (temp float)
+0:39 radians (global float)
+0:39 'inF0' (temp float)
+0:40 bitFieldReverse (global uint)
+0:40 Constant:
+0:40 2 (const uint)
+0:41 roundEven (global float)
+0:41 'inF0' (temp float)
+0:42 inverse sqrt (global float)
+0:42 'inF0' (temp float)
+0:43 clamp (global float)
+0:43 'inF0' (temp float)
+0:43 Constant:
+0:43 0.000000
+0:43 Constant:
+0:43 1.000000
+0:44 Sign (global float)
+0:44 'inF0' (temp float)
+0:45 sine (global float)
+0:45 'inF0' (temp float)
+0:46 Sequence
+0:46 move second child to first child (temp float)
+0:46 'inF1' (temp float)
+0:46 sine (temp float)
+0:46 'inF0' (temp float)
+0:46 move second child to first child (temp float)
+0:46 'inF2' (temp float)
+0:46 cosine (temp float)
+0:46 'inF0' (temp float)
+0:47 hyp. sine (global float)
+0:47 'inF0' (temp float)
+0:48 smoothstep (global float)
+0:48 'inF0' (temp float)
+0:48 'inF1' (temp float)
+0:48 'inF2' (temp float)
+0:49 sqrt (global float)
+0:49 'inF0' (temp float)
+0:50 step (global float)
+0:50 'inF0' (temp float)
+0:50 'inF1' (temp float)
+0:51 tangent (global float)
+0:51 'inF0' (temp float)
+0:52 hyp. tangent (global float)
+0:52 'inF0' (temp float)
+0:54 trunc (global float)
+0:54 'inF0' (temp float)
+0:56 Branch: Return with expression
+0:56 Constant:
+0:56 0.000000
+0:65 Function Definition: VertexShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float)
+0:60 Function Parameters:
+0:60 'inF0' (temp 1-component vector of float)
+0:60 'inF1' (temp 1-component vector of float)
+0:60 'inF2' (temp 1-component vector of float)
+0:? Sequence
+0:62 Branch: Return with expression
+0:62 Constant:
+0:62 0.000000
+0:131 Function Definition: VertexShaderFunction(vf2;vf2;vf2; (temp 2-component vector of float)
+0:66 Function Parameters:
+0:66 'inF0' (temp 2-component vector of float)
+0:66 'inF1' (temp 2-component vector of float)
+0:66 'inF2' (temp 2-component vector of float)
+0:? Sequence
+0:67 all (global bool)
+0:67 'inF0' (temp 2-component vector of float)
+0:68 Absolute value (global 2-component vector of float)
+0:68 'inF0' (temp 2-component vector of float)
+0:69 arc cosine (global 2-component vector of float)
+0:69 'inF0' (temp 2-component vector of float)
+0:70 any (global bool)
+0:70 'inF0' (temp 2-component vector of float)
+0:71 arc sine (global 2-component vector of float)
+0:71 'inF0' (temp 2-component vector of float)
+0:72 arc tangent (global 2-component vector of float)
+0:72 'inF0' (temp 2-component vector of float)
+0:73 arc tangent (global 2-component vector of float)
+0:73 'inF0' (temp 2-component vector of float)
+0:73 'inF1' (temp 2-component vector of float)
+0:74 Ceiling (global 2-component vector of float)
+0:74 'inF0' (temp 2-component vector of float)
+0:75 clamp (global 2-component vector of float)
+0:75 'inF0' (temp 2-component vector of float)
+0:75 'inF1' (temp 2-component vector of float)
+0:75 'inF2' (temp 2-component vector of float)
+0:76 cosine (global 2-component vector of float)
+0:76 'inF0' (temp 2-component vector of float)
+0:77 hyp. cosine (global 2-component vector of float)
+0:77 'inF0' (temp 2-component vector of float)
+0:? bitCount (global 2-component vector of uint)
+0:? Constant:
+0:? 7 (const uint)
+0:? 3 (const uint)
+0:79 degrees (global 2-component vector of float)
+0:79 'inF0' (temp 2-component vector of float)
+0:80 distance (global float)
+0:80 'inF0' (temp 2-component vector of float)
+0:80 'inF1' (temp 2-component vector of float)
+0:81 dot-product (global float)
+0:81 'inF0' (temp 2-component vector of float)
+0:81 'inF1' (temp 2-component vector of float)
+0:85 exp (global 2-component vector of float)
+0:85 'inF0' (temp 2-component vector of float)
+0:86 exp2 (global 2-component vector of float)
+0:86 'inF0' (temp 2-component vector of float)
+0:87 face-forward (global 2-component vector of float)
+0:87 'inF0' (temp 2-component vector of float)
+0:87 'inF1' (temp 2-component vector of float)
+0:87 'inF2' (temp 2-component vector of float)
+0:88 findMSB (global int)
+0:88 Constant:
+0:88 7 (const int)
+0:89 findLSB (global int)
+0:89 Constant:
+0:89 7 (const int)
+0:90 Floor (global 2-component vector of float)
+0:90 'inF0' (temp 2-component vector of float)
+0:92 mod (global 2-component vector of float)
+0:92 'inF0' (temp 2-component vector of float)
+0:92 'inF1' (temp 2-component vector of float)
+0:93 Fraction (global 2-component vector of float)
+0:93 'inF0' (temp 2-component vector of float)
+0:94 frexp (global 2-component vector of float)
+0:94 'inF0' (temp 2-component vector of float)
+0:94 'inF1' (temp 2-component vector of float)
+0:95 fwidth (global 2-component vector of float)
+0:95 'inF0' (temp 2-component vector of float)
+0:96 isinf (global 2-component vector of bool)
+0:96 'inF0' (temp 2-component vector of float)
+0:97 isnan (global 2-component vector of bool)
+0:97 'inF0' (temp 2-component vector of float)
+0:98 ldexp (global 2-component vector of float)
+0:98 'inF0' (temp 2-component vector of float)
+0:98 'inF1' (temp 2-component vector of float)
+0:99 length (global float)
+0:99 'inF0' (temp 2-component vector of float)
+0:100 log (global 2-component vector of float)
+0:100 'inF0' (temp 2-component vector of float)
+0:101 vector-scale (temp 2-component vector of float)
+0:101 log2 (temp 2-component vector of float)
+0:101 'inF0' (temp 2-component vector of float)
+0:101 Constant:
+0:101 0.301030
+0:102 log2 (global 2-component vector of float)
+0:102 'inF0' (temp 2-component vector of float)
+0:103 max (global 2-component vector of float)
+0:103 'inF0' (temp 2-component vector of float)
+0:103 'inF1' (temp 2-component vector of float)
+0:104 min (global 2-component vector of float)
+0:104 'inF0' (temp 2-component vector of float)
+0:104 'inF1' (temp 2-component vector of float)
+0:106 normalize (global 2-component vector of float)
+0:106 'inF0' (temp 2-component vector of float)
+0:107 pow (global 2-component vector of float)
+0:107 'inF0' (temp 2-component vector of float)
+0:107 'inF1' (temp 2-component vector of float)
+0:108 radians (global 2-component vector of float)
+0:108 'inF0' (temp 2-component vector of float)
+0:109 reflect (global 2-component vector of float)
+0:109 'inF0' (temp 2-component vector of float)
+0:109 'inF1' (temp 2-component vector of float)
+0:110 refract (global 2-component vector of float)
+0:110 'inF0' (temp 2-component vector of float)
+0:110 'inF1' (temp 2-component vector of float)
+0:110 Constant:
+0:110 2.000000
+0:? bitFieldReverse (global 2-component vector of uint)
+0:? Constant:
+0:? 1 (const uint)
+0:? 2 (const uint)
+0:112 roundEven (global 2-component vector of float)
+0:112 'inF0' (temp 2-component vector of float)
+0:113 inverse sqrt (global 2-component vector of float)
+0:113 'inF0' (temp 2-component vector of float)
+0:114 clamp (global 2-component vector of float)
+0:114 'inF0' (temp 2-component vector of float)
+0:114 Constant:
+0:114 0.000000
+0:114 Constant:
+0:114 1.000000
+0:115 Sign (global 2-component vector of float)
+0:115 'inF0' (temp 2-component vector of float)
+0:116 sine (global 2-component vector of float)
+0:116 'inF0' (temp 2-component vector of float)
+0:117 Sequence
+0:117 move second child to first child (temp 2-component vector of float)
+0:117 'inF1' (temp 2-component vector of float)
+0:117 sine (temp 2-component vector of float)
+0:117 'inF0' (temp 2-component vector of float)
+0:117 move second child to first child (temp 2-component vector of float)
+0:117 'inF2' (temp 2-component vector of float)
+0:117 cosine (temp 2-component vector of float)
+0:117 'inF0' (temp 2-component vector of float)
+0:118 hyp. sine (global 2-component vector of float)
+0:118 'inF0' (temp 2-component vector of float)
+0:119 smoothstep (global 2-component vector of float)
+0:119 'inF0' (temp 2-component vector of float)
+0:119 'inF1' (temp 2-component vector of float)
+0:119 'inF2' (temp 2-component vector of float)
+0:120 sqrt (global 2-component vector of float)
+0:120 'inF0' (temp 2-component vector of float)
+0:121 step (global 2-component vector of float)
+0:121 'inF0' (temp 2-component vector of float)
+0:121 'inF1' (temp 2-component vector of float)
+0:122 tangent (global 2-component vector of float)
+0:122 'inF0' (temp 2-component vector of float)
+0:123 hyp. tangent (global 2-component vector of float)
+0:123 'inF0' (temp 2-component vector of float)
+0:125 trunc (global 2-component vector of float)
+0:125 'inF0' (temp 2-component vector of float)
+0:128 Branch: Return with expression
+0:? Constant:
+0:? 1.000000
+0:? 2.000000
+0:198 Function Definition: VertexShaderFunction(vf3;vf3;vf3; (temp 3-component vector of float)
+0:132 Function Parameters:
+0:132 'inF0' (temp 3-component vector of float)
+0:132 'inF1' (temp 3-component vector of float)
+0:132 'inF2' (temp 3-component vector of float)
+0:? Sequence
+0:133 all (global bool)
+0:133 'inF0' (temp 3-component vector of float)
+0:134 Absolute value (global 3-component vector of float)
+0:134 'inF0' (temp 3-component vector of float)
+0:135 arc cosine (global 3-component vector of float)
+0:135 'inF0' (temp 3-component vector of float)
+0:136 any (global bool)
+0:136 'inF0' (temp 3-component vector of float)
+0:137 arc sine (global 3-component vector of float)
+0:137 'inF0' (temp 3-component vector of float)
+0:138 arc tangent (global 3-component vector of float)
+0:138 'inF0' (temp 3-component vector of float)
+0:139 arc tangent (global 3-component vector of float)
+0:139 'inF0' (temp 3-component vector of float)
+0:139 'inF1' (temp 3-component vector of float)
+0:140 Ceiling (global 3-component vector of float)
+0:140 'inF0' (temp 3-component vector of float)
+0:141 clamp (global 3-component vector of float)
+0:141 'inF0' (temp 3-component vector of float)
+0:141 'inF1' (temp 3-component vector of float)
+0:141 'inF2' (temp 3-component vector of float)
+0:142 cosine (global 3-component vector of float)
+0:142 'inF0' (temp 3-component vector of float)
+0:143 hyp. cosine (global 3-component vector of float)
+0:143 'inF0' (temp 3-component vector of float)
+0:? bitCount (global 3-component vector of uint)
+0:? Constant:
+0:? 7 (const uint)
+0:? 3 (const uint)
+0:? 5 (const uint)
+0:145 cross-product (global 3-component vector of float)
+0:145 'inF0' (temp 3-component vector of float)
+0:145 'inF1' (temp 3-component vector of float)
+0:146 degrees (global 3-component vector of float)
+0:146 'inF0' (temp 3-component vector of float)
+0:147 distance (global float)
+0:147 'inF0' (temp 3-component vector of float)
+0:147 'inF1' (temp 3-component vector of float)
+0:148 dot-product (global float)
+0:148 'inF0' (temp 3-component vector of float)
+0:148 'inF1' (temp 3-component vector of float)
+0:152 exp (global 3-component vector of float)
+0:152 'inF0' (temp 3-component vector of float)
+0:153 exp2 (global 3-component vector of float)
+0:153 'inF0' (temp 3-component vector of float)
+0:154 face-forward (global 3-component vector of float)
+0:154 'inF0' (temp 3-component vector of float)
+0:154 'inF1' (temp 3-component vector of float)
+0:154 'inF2' (temp 3-component vector of float)
+0:155 findMSB (global int)
+0:155 Constant:
+0:155 7 (const int)
+0:156 findLSB (global int)
+0:156 Constant:
+0:156 7 (const int)
+0:157 Floor (global 3-component vector of float)
+0:157 'inF0' (temp 3-component vector of float)
+0:159 mod (global 3-component vector of float)
+0:159 'inF0' (temp 3-component vector of float)
+0:159 'inF1' (temp 3-component vector of float)
+0:160 Fraction (global 3-component vector of float)
+0:160 'inF0' (temp 3-component vector of float)
+0:161 frexp (global 3-component vector of float)
+0:161 'inF0' (temp 3-component vector of float)
+0:161 'inF1' (temp 3-component vector of float)
+0:162 fwidth (global 3-component vector of float)
+0:162 'inF0' (temp 3-component vector of float)
+0:163 isinf (global 3-component vector of bool)
+0:163 'inF0' (temp 3-component vector of float)
+0:164 isnan (global 3-component vector of bool)
+0:164 'inF0' (temp 3-component vector of float)
+0:165 ldexp (global 3-component vector of float)
+0:165 'inF0' (temp 3-component vector of float)
+0:165 'inF1' (temp 3-component vector of float)
+0:166 length (global float)
+0:166 'inF0' (temp 3-component vector of float)
+0:167 log (global 3-component vector of float)
+0:167 'inF0' (temp 3-component vector of float)
+0:168 vector-scale (temp 3-component vector of float)
+0:168 log2 (temp 3-component vector of float)
+0:168 'inF0' (temp 3-component vector of float)
+0:168 Constant:
+0:168 0.301030
+0:169 log2 (global 3-component vector of float)
+0:169 'inF0' (temp 3-component vector of float)
+0:170 max (global 3-component vector of float)
+0:170 'inF0' (temp 3-component vector of float)
+0:170 'inF1' (temp 3-component vector of float)
+0:171 min (global 3-component vector of float)
+0:171 'inF0' (temp 3-component vector of float)
+0:171 'inF1' (temp 3-component vector of float)
+0:173 normalize (global 3-component vector of float)
+0:173 'inF0' (temp 3-component vector of float)
+0:174 pow (global 3-component vector of float)
+0:174 'inF0' (temp 3-component vector of float)
+0:174 'inF1' (temp 3-component vector of float)
+0:175 radians (global 3-component vector of float)
+0:175 'inF0' (temp 3-component vector of float)
+0:176 reflect (global 3-component vector of float)
+0:176 'inF0' (temp 3-component vector of float)
+0:176 'inF1' (temp 3-component vector of float)
+0:177 refract (global 3-component vector of float)
+0:177 'inF0' (temp 3-component vector of float)
+0:177 'inF1' (temp 3-component vector of float)
+0:177 Constant:
+0:177 2.000000
+0:? bitFieldReverse (global 3-component vector of uint)
+0:? Constant:
+0:? 1 (const uint)
+0:? 2 (const uint)
+0:? 3 (const uint)
+0:179 roundEven (global 3-component vector of float)
+0:179 'inF0' (temp 3-component vector of float)
+0:180 inverse sqrt (global 3-component vector of float)
+0:180 'inF0' (temp 3-component vector of float)
+0:181 clamp (global 3-component vector of float)
+0:181 'inF0' (temp 3-component vector of float)
+0:181 Constant:
+0:181 0.000000
+0:181 Constant:
+0:181 1.000000
+0:182 Sign (global 3-component vector of float)
+0:182 'inF0' (temp 3-component vector of float)
+0:183 sine (global 3-component vector of float)
+0:183 'inF0' (temp 3-component vector of float)
+0:184 Sequence
+0:184 move second child to first child (temp 3-component vector of float)
+0:184 'inF1' (temp 3-component vector of float)
+0:184 sine (temp 3-component vector of float)
+0:184 'inF0' (temp 3-component vector of float)
+0:184 move second child to first child (temp 3-component vector of float)
+0:184 'inF2' (temp 3-component vector of float)
+0:184 cosine (temp 3-component vector of float)
+0:184 'inF0' (temp 3-component vector of float)
+0:185 hyp. sine (global 3-component vector of float)
+0:185 'inF0' (temp 3-component vector of float)
+0:186 smoothstep (global 3-component vector of float)
+0:186 'inF0' (temp 3-component vector of float)
+0:186 'inF1' (temp 3-component vector of float)
+0:186 'inF2' (temp 3-component vector of float)
+0:187 sqrt (global 3-component vector of float)
+0:187 'inF0' (temp 3-component vector of float)
+0:188 step (global 3-component vector of float)
+0:188 'inF0' (temp 3-component vector of float)
+0:188 'inF1' (temp 3-component vector of float)
+0:189 tangent (global 3-component vector of float)
+0:189 'inF0' (temp 3-component vector of float)
+0:190 hyp. tangent (global 3-component vector of float)
+0:190 'inF0' (temp 3-component vector of float)
+0:192 trunc (global 3-component vector of float)
+0:192 'inF0' (temp 3-component vector of float)
+0:195 Branch: Return with expression
+0:? Constant:
+0:? 1.000000
+0:? 2.000000
+0:? 3.000000
+0:314 Function Definition: VertexShaderFunction(vf4;vf4;vf4; (temp 4-component vector of float)
+0:199 Function Parameters:
+0:199 'inF0' (temp 4-component vector of float)
+0:199 'inF1' (temp 4-component vector of float)
+0:199 'inF2' (temp 4-component vector of float)
+0:? Sequence
+0:200 all (global bool)
+0:200 'inF0' (temp 4-component vector of float)
+0:201 Absolute value (global 4-component vector of float)
+0:201 'inF0' (temp 4-component vector of float)
+0:202 arc cosine (global 4-component vector of float)
+0:202 'inF0' (temp 4-component vector of float)
+0:203 any (global bool)
+0:203 'inF0' (temp 4-component vector of float)
+0:204 arc sine (global 4-component vector of float)
+0:204 'inF0' (temp 4-component vector of float)
+0:205 arc tangent (global 4-component vector of float)
+0:205 'inF0' (temp 4-component vector of float)
+0:206 arc tangent (global 4-component vector of float)
+0:206 'inF0' (temp 4-component vector of float)
+0:206 'inF1' (temp 4-component vector of float)
+0:207 Ceiling (global 4-component vector of float)
+0:207 'inF0' (temp 4-component vector of float)
+0:208 clamp (global 4-component vector of float)
+0:208 'inF0' (temp 4-component vector of float)
+0:208 'inF1' (temp 4-component vector of float)
+0:208 'inF2' (temp 4-component vector of float)
+0:209 cosine (global 4-component vector of float)
+0:209 'inF0' (temp 4-component vector of float)
+0:210 hyp. cosine (global 4-component vector of float)
+0:210 'inF0' (temp 4-component vector of float)
+0:? bitCount (global 4-component vector of uint)
+0:? Constant:
+0:? 7 (const uint)
+0:? 3 (const uint)
+0:? 5 (const uint)
+0:? 2 (const uint)
+0:212 degrees (global 4-component vector of float)
+0:212 'inF0' (temp 4-component vector of float)
+0:213 distance (global float)
+0:213 'inF0' (temp 4-component vector of float)
+0:213 'inF1' (temp 4-component vector of float)
+0:214 dot-product (global float)
+0:214 'inF0' (temp 4-component vector of float)
+0:214 'inF1' (temp 4-component vector of float)
+0:215 Construct vec4 (temp float)
+0:215 Constant:
+0:215 1.000000
+0:215 component-wise multiply (temp float)
+0:215 direct index (temp float)
+0:215 'inF0' (temp 4-component vector of float)
+0:215 Constant:
+0:215 1 (const int)
+0:215 direct index (temp float)
+0:215 'inF1' (temp 4-component vector of float)
+0:215 Constant:
+0:215 1 (const int)
+0:215 direct index (temp float)
+0:215 'inF0' (temp 4-component vector of float)
+0:215 Constant:
+0:215 2 (const int)
+0:215 direct index (temp float)
+0:215 'inF1' (temp 4-component vector of float)
+0:215 Constant:
+0:215 3 (const int)
+0:219 exp (global 4-component vector of float)
+0:219 'inF0' (temp 4-component vector of float)
+0:220 exp2 (global 4-component vector of float)
+0:220 'inF0' (temp 4-component vector of float)
+0:221 face-forward (global 4-component vector of float)
+0:221 'inF0' (temp 4-component vector of float)
+0:221 'inF1' (temp 4-component vector of float)
+0:221 'inF2' (temp 4-component vector of float)
+0:222 findMSB (global int)
+0:222 Constant:
+0:222 7 (const int)
+0:223 findLSB (global int)
+0:223 Constant:
+0:223 7 (const int)
+0:224 Floor (global 4-component vector of float)
+0:224 'inF0' (temp 4-component vector of float)
+0:226 mod (global 4-component vector of float)
+0:226 'inF0' (temp 4-component vector of float)
+0:226 'inF1' (temp 4-component vector of float)
+0:227 Fraction (global 4-component vector of float)
+0:227 'inF0' (temp 4-component vector of float)
+0:228 frexp (global 4-component vector of float)
+0:228 'inF0' (temp 4-component vector of float)
+0:228 'inF1' (temp 4-component vector of float)
+0:229 fwidth (global 4-component vector of float)
+0:229 'inF0' (temp 4-component vector of float)
+0:230 isinf (global 4-component vector of bool)
+0:230 'inF0' (temp 4-component vector of float)
+0:231 isnan (global 4-component vector of bool)
+0:231 'inF0' (temp 4-component vector of float)
+0:232 ldexp (global 4-component vector of float)
+0:232 'inF0' (temp 4-component vector of float)
+0:232 'inF1' (temp 4-component vector of float)
+0:233 length (global float)
+0:233 'inF0' (temp 4-component vector of float)
+0:234 log (global 4-component vector of float)
+0:234 'inF0' (temp 4-component vector of float)
+0:235 vector-scale (temp 4-component vector of float)
+0:235 log2 (temp 4-component vector of float)
+0:235 'inF0' (temp 4-component vector of float)
+0:235 Constant:
+0:235 0.301030
+0:236 log2 (global 4-component vector of float)
+0:236 'inF0' (temp 4-component vector of float)
+0:237 max (global 4-component vector of float)
+0:237 'inF0' (temp 4-component vector of float)
+0:237 'inF1' (temp 4-component vector of float)
+0:238 min (global 4-component vector of float)
+0:238 'inF0' (temp 4-component vector of float)
+0:238 'inF1' (temp 4-component vector of float)
+0:240 normalize (global 4-component vector of float)
+0:240 'inF0' (temp 4-component vector of float)
+0:241 pow (global 4-component vector of float)
+0:241 'inF0' (temp 4-component vector of float)
+0:241 'inF1' (temp 4-component vector of float)
+0:242 radians (global 4-component vector of float)
+0:242 'inF0' (temp 4-component vector of float)
+0:243 reflect (global 4-component vector of float)
+0:243 'inF0' (temp 4-component vector of float)
+0:243 'inF1' (temp 4-component vector of float)
+0:244 refract (global 4-component vector of float)
+0:244 'inF0' (temp 4-component vector of float)
+0:244 'inF1' (temp 4-component vector of float)
+0:244 Constant:
+0:244 2.000000
+0:? bitFieldReverse (global 4-component vector of uint)
+0:? Constant:
+0:? 1 (const uint)
+0:? 2 (const uint)
+0:? 3 (const uint)
+0:? 4 (const uint)
+0:246 roundEven (global 4-component vector of float)
+0:246 'inF0' (temp 4-component vector of float)
+0:247 inverse sqrt (global 4-component vector of float)
+0:247 'inF0' (temp 4-component vector of float)
+0:248 clamp (global 4-component vector of float)
+0:248 'inF0' (temp 4-component vector of float)
+0:248 Constant:
+0:248 0.000000
+0:248 Constant:
+0:248 1.000000
+0:249 Sign (global 4-component vector of float)
+0:249 'inF0' (temp 4-component vector of float)
+0:250 sine (global 4-component vector of float)
+0:250 'inF0' (temp 4-component vector of float)
+0:251 Sequence
+0:251 move second child to first child (temp 4-component vector of float)
+0:251 'inF1' (temp 4-component vector of float)
+0:251 sine (temp 4-component vector of float)
+0:251 'inF0' (temp 4-component vector of float)
+0:251 move second child to first child (temp 4-component vector of float)
+0:251 'inF2' (temp 4-component vector of float)
+0:251 cosine (temp 4-component vector of float)
+0:251 'inF0' (temp 4-component vector of float)
+0:252 hyp. sine (global 4-component vector of float)
+0:252 'inF0' (temp 4-component vector of float)
+0:253 smoothstep (global 4-component vector of float)
+0:253 'inF0' (temp 4-component vector of float)
+0:253 'inF1' (temp 4-component vector of float)
+0:253 'inF2' (temp 4-component vector of float)
+0:254 sqrt (global 4-component vector of float)
+0:254 'inF0' (temp 4-component vector of float)
+0:255 step (global 4-component vector of float)
+0:255 'inF0' (temp 4-component vector of float)
+0:255 'inF1' (temp 4-component vector of float)
+0:256 tangent (global 4-component vector of float)
+0:256 'inF0' (temp 4-component vector of float)
+0:257 hyp. tangent (global 4-component vector of float)
+0:257 'inF0' (temp 4-component vector of float)
+0:259 trunc (global 4-component vector of float)
+0:259 'inF0' (temp 4-component vector of float)
+0:262 Branch: Return with expression
+0:? Constant:
+0:? 1.000000
+0:? 2.000000
+0:? 3.000000
+0:? 4.000000
+0:323 Function Definition: VertexShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float)
+0:315 Function Parameters:
+0:315 'inF0' (temp 2X2 matrix of float)
+0:315 'inF1' (temp 2X2 matrix of float)
+0:315 'inF2' (temp 2X2 matrix of float)
+0:? Sequence
+0:317 all (global bool)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 Absolute value (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 arc cosine (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 any (global bool)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 arc sine (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 arc tangent (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 arc tangent (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 'inF1' (temp 2X2 matrix of float)
+0:317 Ceiling (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 clamp (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 'inF1' (temp 2X2 matrix of float)
+0:317 'inF2' (temp 2X2 matrix of float)
+0:317 cosine (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 hyp. cosine (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 degrees (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 determinant (global float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 exp (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 exp2 (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 findMSB (global int)
+0:317 Constant:
+0:317 7 (const int)
+0:317 findLSB (global int)
+0:317 Constant:
+0:317 7 (const int)
+0:317 Floor (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 mod (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 'inF1' (temp 2X2 matrix of float)
+0:317 Fraction (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 frexp (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 'inF1' (temp 2X2 matrix of float)
+0:317 fwidth (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 ldexp (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 'inF1' (temp 2X2 matrix of float)
+0:317 log (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 matrix-scale (temp 2X2 matrix of float)
+0:317 log2 (temp 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 Constant:
+0:317 0.301030
+0:317 log2 (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 max (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 'inF1' (temp 2X2 matrix of float)
+0:317 min (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 'inF1' (temp 2X2 matrix of float)
+0:317 pow (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 'inF1' (temp 2X2 matrix of float)
+0:317 radians (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 roundEven (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 inverse sqrt (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 clamp (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 Constant:
+0:317 0.000000
+0:317 Constant:
+0:317 1.000000
+0:317 Sign (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 sine (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 Sequence
+0:317 move second child to first child (temp 2X2 matrix of float)
+0:317 'inF1' (temp 2X2 matrix of float)
+0:317 sine (temp 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 move second child to first child (temp 2X2 matrix of float)
+0:317 'inF2' (temp 2X2 matrix of float)
+0:317 cosine (temp 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 hyp. sine (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 smoothstep (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 'inF1' (temp 2X2 matrix of float)
+0:317 'inF2' (temp 2X2 matrix of float)
+0:317 sqrt (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 step (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 'inF1' (temp 2X2 matrix of float)
+0:317 tangent (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 hyp. tangent (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 transpose (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:317 trunc (global 2X2 matrix of float)
+0:317 'inF0' (temp 2X2 matrix of float)
+0:320 Branch: Return with expression
+0:? Constant:
+0:? 2.000000
+0:? 2.000000
+0:? 2.000000
+0:? 2.000000
+0:332 Function Definition: VertexShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float)
+0:324 Function Parameters:
+0:324 'inF0' (temp 3X3 matrix of float)
+0:324 'inF1' (temp 3X3 matrix of float)
+0:324 'inF2' (temp 3X3 matrix of float)
+0:? Sequence
+0:326 all (global bool)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 Absolute value (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 arc cosine (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 any (global bool)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 arc sine (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 arc tangent (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 arc tangent (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 'inF1' (temp 3X3 matrix of float)
+0:326 Ceiling (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 clamp (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 'inF1' (temp 3X3 matrix of float)
+0:326 'inF2' (temp 3X3 matrix of float)
+0:326 cosine (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 hyp. cosine (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 degrees (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 determinant (global float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 exp (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 exp2 (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 findMSB (global int)
+0:326 Constant:
+0:326 7 (const int)
+0:326 findLSB (global int)
+0:326 Constant:
+0:326 7 (const int)
+0:326 Floor (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 mod (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 'inF1' (temp 3X3 matrix of float)
+0:326 Fraction (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 frexp (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 'inF1' (temp 3X3 matrix of float)
+0:326 fwidth (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 ldexp (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 'inF1' (temp 3X3 matrix of float)
+0:326 log (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 matrix-scale (temp 3X3 matrix of float)
+0:326 log2 (temp 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 Constant:
+0:326 0.301030
+0:326 log2 (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 max (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 'inF1' (temp 3X3 matrix of float)
+0:326 min (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 'inF1' (temp 3X3 matrix of float)
+0:326 pow (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 'inF1' (temp 3X3 matrix of float)
+0:326 radians (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 roundEven (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 inverse sqrt (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 clamp (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 Constant:
+0:326 0.000000
+0:326 Constant:
+0:326 1.000000
+0:326 Sign (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 sine (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 Sequence
+0:326 move second child to first child (temp 3X3 matrix of float)
+0:326 'inF1' (temp 3X3 matrix of float)
+0:326 sine (temp 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 move second child to first child (temp 3X3 matrix of float)
+0:326 'inF2' (temp 3X3 matrix of float)
+0:326 cosine (temp 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 hyp. sine (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 smoothstep (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 'inF1' (temp 3X3 matrix of float)
+0:326 'inF2' (temp 3X3 matrix of float)
+0:326 sqrt (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 step (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 'inF1' (temp 3X3 matrix of float)
+0:326 tangent (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 hyp. tangent (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 transpose (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:326 trunc (global 3X3 matrix of float)
+0:326 'inF0' (temp 3X3 matrix of float)
+0:329 Branch: Return with expression
+0:? Constant:
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:? 3.000000
+0:353 Function Definition: VertexShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float)
+0:333 Function Parameters:
+0:333 'inF0' (temp 4X4 matrix of float)
+0:333 'inF1' (temp 4X4 matrix of float)
+0:333 'inF2' (temp 4X4 matrix of float)
+0:? Sequence
+0:335 all (global bool)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 Absolute value (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 arc cosine (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 any (global bool)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 arc sine (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 arc tangent (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 arc tangent (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 'inF1' (temp 4X4 matrix of float)
+0:335 Ceiling (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 clamp (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 'inF1' (temp 4X4 matrix of float)
+0:335 'inF2' (temp 4X4 matrix of float)
+0:335 cosine (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 hyp. cosine (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 degrees (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 determinant (global float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 exp (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 exp2 (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 findMSB (global int)
+0:335 Constant:
+0:335 7 (const int)
+0:335 findLSB (global int)
+0:335 Constant:
+0:335 7 (const int)
+0:335 Floor (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 mod (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 'inF1' (temp 4X4 matrix of float)
+0:335 Fraction (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 frexp (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 'inF1' (temp 4X4 matrix of float)
+0:335 fwidth (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 ldexp (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 'inF1' (temp 4X4 matrix of float)
+0:335 log (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 matrix-scale (temp 4X4 matrix of float)
+0:335 log2 (temp 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 Constant:
+0:335 0.301030
+0:335 log2 (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 max (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 'inF1' (temp 4X4 matrix of float)
+0:335 min (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 'inF1' (temp 4X4 matrix of float)
+0:335 pow (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 'inF1' (temp 4X4 matrix of float)
+0:335 radians (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 roundEven (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 inverse sqrt (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 clamp (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 Constant:
+0:335 0.000000
+0:335 Constant:
+0:335 1.000000
+0:335 Sign (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 sine (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 Sequence
+0:335 move second child to first child (temp 4X4 matrix of float)
+0:335 'inF1' (temp 4X4 matrix of float)
+0:335 sine (temp 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 move second child to first child (temp 4X4 matrix of float)
+0:335 'inF2' (temp 4X4 matrix of float)
+0:335 cosine (temp 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 hyp. sine (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 smoothstep (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 'inF1' (temp 4X4 matrix of float)
+0:335 'inF2' (temp 4X4 matrix of float)
+0:335 sqrt (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 step (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 'inF1' (temp 4X4 matrix of float)
+0:335 tangent (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 hyp. tangent (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 transpose (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:335 trunc (global 4X4 matrix of float)
+0:335 'inF0' (temp 4X4 matrix of float)
+0:338 Branch: Return with expression
+0:? Constant:
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:? 4.000000
+0:360 Function Definition: TestGenMul(f1;f1;vf2;vf2;mf22;mf22; (temp void)
+0:356 Function Parameters:
+0:356 'inF0' (temp float)
+0:356 'inF1' (temp float)
+0:356 'inFV0' (temp 2-component vector of float)
+0:356 'inFV1' (temp 2-component vector of float)
+0:356 'inFM0' (temp 2X2 matrix of float)
+0:356 'inFM1' (temp 2X2 matrix of float)
+0:? Sequence
+0:357 move second child to first child (temp float)
+0:357 'r0' (temp float)
+0:357 component-wise multiply (temp float)
+0:357 'inF0' (temp float)
+0:357 'inF1' (temp float)
+0:357 move second child to first child (temp 2-component vector of float)
+0:357 'r1' (temp 2-component vector of float)
+0:357 vector-scale (temp 2-component vector of float)
+0:357 'inFV0' (temp 2-component vector of float)
+0:357 'inF0' (temp float)
+0:357 move second child to first child (temp 2-component vector of float)
+0:357 'r2' (temp 2-component vector of float)
+0:357 vector-scale (temp 2-component vector of float)
+0:357 'inF0' (temp float)
+0:357 'inFV0' (temp 2-component vector of float)
+0:357 move second child to first child (temp float)
+0:357 'r3' (temp float)
+0:357 dot-product (global float)
+0:357 'inFV0' (temp 2-component vector of float)
+0:357 'inFV1' (temp 2-component vector of float)
+0:357 move second child to first child (temp 2-component vector of float)
+0:357 'r4' (temp 2-component vector of float)
+0:357 matrix-times-vector (temp 2-component vector of float)
+0:357 'inFM0' (temp 2X2 matrix of float)
+0:357 'inFV0' (temp 2-component vector of float)
+0:357 move second child to first child (temp 2-component vector of float)
+0:357 'r5' (temp 2-component vector of float)
+0:357 vector-times-matrix (temp 2-component vector of float)
+0:357 'inFV0' (temp 2-component vector of float)
+0:357 'inFM0' (temp 2X2 matrix of float)
+0:357 move second child to first child (temp 2X2 matrix of float)
+0:357 'r6' (temp 2X2 matrix of float)
+0:357 matrix-scale (temp 2X2 matrix of float)
+0:357 'inFM0' (temp 2X2 matrix of float)
+0:357 'inF0' (temp float)
+0:357 move second child to first child (temp 2X2 matrix of float)
+0:357 'r7' (temp 2X2 matrix of float)
+0:357 matrix-scale (temp 2X2 matrix of float)
+0:357 'inF0' (temp float)
+0:357 'inFM0' (temp 2X2 matrix of float)
+0:357 move second child to first child (temp 2X2 matrix of float)
+0:357 'r8' (temp 2X2 matrix of float)
+0:357 matrix-multiply (temp 2X2 matrix of float)
+0:357 'inFM0' (temp 2X2 matrix of float)
+0:357 'inFM1' (temp 2X2 matrix of float)
+0:367 Function Definition: TestGenMul(f1;f1;vf3;vf3;mf33;mf33; (temp void)
+0:363 Function Parameters:
+0:363 'inF0' (temp float)
+0:363 'inF1' (temp float)
+0:363 'inFV0' (temp 3-component vector of float)
+0:363 'inFV1' (temp 3-component vector of float)
+0:363 'inFM0' (temp 3X3 matrix of float)
+0:363 'inFM1' (temp 3X3 matrix of float)
+0:? Sequence
+0:364 move second child to first child (temp float)
+0:364 'r0' (temp float)
+0:364 component-wise multiply (temp float)
+0:364 'inF0' (temp float)
+0:364 'inF1' (temp float)
+0:364 move second child to first child (temp 3-component vector of float)
+0:364 'r1' (temp 3-component vector of float)
+0:364 vector-scale (temp 3-component vector of float)
+0:364 'inFV0' (temp 3-component vector of float)
+0:364 'inF0' (temp float)
+0:364 move second child to first child (temp 3-component vector of float)
+0:364 'r2' (temp 3-component vector of float)
+0:364 vector-scale (temp 3-component vector of float)
+0:364 'inF0' (temp float)
+0:364 'inFV0' (temp 3-component vector of float)
+0:364 move second child to first child (temp float)
+0:364 'r3' (temp float)
+0:364 dot-product (global float)
+0:364 'inFV0' (temp 3-component vector of float)
+0:364 'inFV1' (temp 3-component vector of float)
+0:364 move second child to first child (temp 3-component vector of float)
+0:364 'r4' (temp 3-component vector of float)
+0:364 matrix-times-vector (temp 3-component vector of float)
+0:364 'inFM0' (temp 3X3 matrix of float)
+0:364 'inFV0' (temp 3-component vector of float)
+0:364 move second child to first child (temp 3-component vector of float)
+0:364 'r5' (temp 3-component vector of float)
+0:364 vector-times-matrix (temp 3-component vector of float)
+0:364 'inFV0' (temp 3-component vector of float)
+0:364 'inFM0' (temp 3X3 matrix of float)
+0:364 move second child to first child (temp 3X3 matrix of float)
+0:364 'r6' (temp 3X3 matrix of float)
+0:364 matrix-scale (temp 3X3 matrix of float)
+0:364 'inFM0' (temp 3X3 matrix of float)
+0:364 'inF0' (temp float)
+0:364 move second child to first child (temp 3X3 matrix of float)
+0:364 'r7' (temp 3X3 matrix of float)
+0:364 matrix-scale (temp 3X3 matrix of float)
+0:364 'inF0' (temp float)
+0:364 'inFM0' (temp 3X3 matrix of float)
+0:364 move second child to first child (temp 3X3 matrix of float)
+0:364 'r8' (temp 3X3 matrix of float)
+0:364 matrix-multiply (temp 3X3 matrix of float)
+0:364 'inFM0' (temp 3X3 matrix of float)
+0:364 'inFM1' (temp 3X3 matrix of float)
+0:373 Function Definition: TestGenMul(f1;f1;vf4;vf4;mf44;mf44; (temp void)
+0:370 Function Parameters:
+0:370 'inF0' (temp float)
+0:370 'inF1' (temp float)
+0:370 'inFV0' (temp 4-component vector of float)
+0:370 'inFV1' (temp 4-component vector of float)
+0:370 'inFM0' (temp 4X4 matrix of float)
+0:370 'inFM1' (temp 4X4 matrix of float)
+0:? Sequence
+0:371 move second child to first child (temp float)
+0:371 'r0' (temp float)
+0:371 component-wise multiply (temp float)
+0:371 'inF0' (temp float)
+0:371 'inF1' (temp float)
+0:371 move second child to first child (temp 4-component vector of float)
+0:371 'r1' (temp 4-component vector of float)
+0:371 vector-scale (temp 4-component vector of float)
+0:371 'inFV0' (temp 4-component vector of float)
+0:371 'inF0' (temp float)
+0:371 move second child to first child (temp 4-component vector of float)
+0:371 'r2' (temp 4-component vector of float)
+0:371 vector-scale (temp 4-component vector of float)
+0:371 'inF0' (temp float)
+0:371 'inFV0' (temp 4-component vector of float)
+0:371 move second child to first child (temp float)
+0:371 'r3' (temp float)
+0:371 dot-product (global float)
+0:371 'inFV0' (temp 4-component vector of float)
+0:371 'inFV1' (temp 4-component vector of float)
+0:371 move second child to first child (temp 4-component vector of float)
+0:371 'r4' (temp 4-component vector of float)
+0:371 matrix-times-vector (temp 4-component vector of float)
+0:371 'inFM0' (temp 4X4 matrix of float)
+0:371 'inFV0' (temp 4-component vector of float)
+0:371 move second child to first child (temp 4-component vector of float)
+0:371 'r5' (temp 4-component vector of float)
+0:371 vector-times-matrix (temp 4-component vector of float)
+0:371 'inFV0' (temp 4-component vector of float)
+0:371 'inFM0' (temp 4X4 matrix of float)
+0:371 move second child to first child (temp 4X4 matrix of float)
+0:371 'r6' (temp 4X4 matrix of float)
+0:371 matrix-scale (temp 4X4 matrix of float)
+0:371 'inFM0' (temp 4X4 matrix of float)
+0:371 'inF0' (temp float)
+0:371 move second child to first child (temp 4X4 matrix of float)
+0:371 'r7' (temp 4X4 matrix of float)
+0:371 matrix-scale (temp 4X4 matrix of float)
+0:371 'inF0' (temp float)
+0:371 'inFM0' (temp 4X4 matrix of float)
+0:371 move second child to first child (temp 4X4 matrix of float)
+0:371 'r8' (temp 4X4 matrix of float)
+0:371 matrix-multiply (temp 4X4 matrix of float)
+0:371 'inFM0' (temp 4X4 matrix of float)
+0:371 'inFM1' (temp 4X4 matrix of float)
+0:? Linker Objects
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 1064
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Vertex 4 "VertexShaderFunction"
+ Source HLSL 450
+ Name 4 "VertexShaderFunction"
+ Name 19 "TestGenMul(f1;f1;vf2;vf2;mf22;mf22;"
+ Name 13 "inF0"
+ Name 14 "inF1"
+ Name 15 "inFV0"
+ Name 16 "inFV1"
+ Name 17 "inFM0"
+ Name 18 "inFM1"
+ Name 32 "TestGenMul(f1;f1;vf3;vf3;mf33;mf33;"
+ Name 26 "inF0"
+ Name 27 "inF1"
+ Name 28 "inFV0"
+ Name 29 "inFV1"
+ Name 30 "inFM0"
+ Name 31 "inFM1"
+ Name 45 "TestGenMul(f1;f1;vf4;vf4;mf44;mf44;"
+ Name 39 "inF0"
+ Name 40 "inF1"
+ Name 41 "inFV0"
+ Name 42 "inFV1"
+ Name 43 "inFM0"
+ Name 44 "inFM1"
+ Name 47 "inF0"
+ Name 62 "inF1"
+ Name 69 "inF2"
+ Name 97 "ResType"
+ Name 166 "inF0"
+ Name 180 "inF1"
+ Name 187 "inF2"
+ Name 225 "ResType"
+ Name 306 "inF0"
+ Name 320 "inF1"
+ Name 327 "inF2"
+ Name 368 "ResType"
+ Name 448 "inF0"
+ Name 462 "inF1"
+ Name 469 "inF2"
+ Name 515 "ResType"
+ Name 596 "inF0"
+ Name 610 "inF1"
+ Name 617 "inF2"
+ Name 648 "ResType"
+ Name 713 "inF0"
+ Name 727 "inF1"
+ Name 734 "inF2"
+ Name 768 "ResType"
+ Name 833 "inF0"
+ Name 847 "inF1"
+ Name 854 "inF2"
+ Name 891 "ResType"
+ Name 956 "r0"
+ Name 960 "r1"
+ Name 964 "r2"
+ Name 968 "r3"
+ Name 972 "r4"
+ Name 976 "r5"
+ Name 980 "r6"
+ Name 984 "r7"
+ Name 988 "r8"
+ Name 992 "r0"
+ Name 996 "r1"
+ Name 1000 "r2"
+ Name 1004 "r3"
+ Name 1008 "r4"
+ Name 1012 "r5"
+ Name 1016 "r6"
+ Name 1020 "r7"
+ Name 1024 "r8"
+ Name 1028 "r0"
+ Name 1032 "r1"
+ Name 1036 "r2"
+ Name 1040 "r3"
+ Name 1044 "r4"
+ Name 1048 "r5"
+ Name 1052 "r6"
+ Name 1056 "r7"
+ Name 1060 "r8"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypePointer Function 6(float)
+ 8: TypeVector 6(float) 2
+ 9: TypePointer Function 8(fvec2)
+ 10: TypeMatrix 8(fvec2) 2
+ 11: TypePointer Function 10
+ 12: TypeFunction 2 7(ptr) 7(ptr) 9(ptr) 9(ptr) 11(ptr) 11(ptr)
+ 21: TypeVector 6(float) 3
+ 22: TypePointer Function 21(fvec3)
+ 23: TypeMatrix 21(fvec3) 3
+ 24: TypePointer Function 23
+ 25: TypeFunction 2 7(ptr) 7(ptr) 22(ptr) 22(ptr) 24(ptr) 24(ptr)
+ 34: TypeVector 6(float) 4
+ 35: TypePointer Function 34(fvec4)
+ 36: TypeMatrix 34(fvec4) 4
+ 37: TypePointer Function 36
+ 38: TypeFunction 2 7(ptr) 7(ptr) 35(ptr) 35(ptr) 37(ptr) 37(ptr)
+ 49: TypeBool
+ 76: TypeInt 32 0
+ 77: 76(int) Constant 7
+ 85: TypeInt 32 1
+ 86: 85(int) Constant 7
+ 97(ResType): TypeStruct 6(float) 85(int)
+ 114: 6(float) Constant 1050288283
+ 129: 76(int) Constant 2
+ 136: 6(float) Constant 0
+ 137: 6(float) Constant 1065353216
+ 194: TypeVector 76(int) 2
+ 195: 76(int) Constant 3
+ 196: 194(ivec2) ConstantComposite 77 195
+ 224: TypeVector 85(int) 2
+ 225(ResType): TypeStruct 8(fvec2) 224(ivec2)
+ 232: TypeVector 49(bool) 2
+ 266: 6(float) Constant 1073741824
+ 268: 76(int) Constant 1
+ 269: 194(ivec2) ConstantComposite 268 129
+ 304: 8(fvec2) ConstantComposite 137 266
+ 334: TypeVector 76(int) 3
+ 335: 76(int) Constant 5
+ 336: 334(ivec3) ConstantComposite 77 195 335
+ 367: TypeVector 85(int) 3
+ 368(ResType): TypeStruct 21(fvec3) 367(ivec3)
+ 375: TypeVector 49(bool) 3
+ 410: 334(ivec3) ConstantComposite 268 129 195
+ 445: 6(float) Constant 1077936128
+ 446: 21(fvec3) ConstantComposite 137 266 445
+ 476: TypeVector 76(int) 4
+ 477: 476(ivec4) ConstantComposite 77 195 335 129
+ 514: TypeVector 85(int) 4
+ 515(ResType): TypeStruct 34(fvec4) 514(ivec4)
+ 522: TypeVector 49(bool) 4
+ 557: 76(int) Constant 4
+ 558: 476(ivec4) ConstantComposite 268 129 195 557
+ 593: 6(float) Constant 1082130432
+ 594: 34(fvec4) ConstantComposite 137 266 445 593
+ 648(ResType): TypeStruct 10 224(ivec2)
+ 710: 8(fvec2) ConstantComposite 266 266
+ 711: 10 ConstantComposite 710 710
+ 768(ResType): TypeStruct 23 367(ivec3)
+ 830: 21(fvec3) ConstantComposite 445 445 445
+ 831: 23 ConstantComposite 830 830 830
+ 891(ResType): TypeStruct 36 514(ivec4)
+ 953: 34(fvec4) ConstantComposite 593 593 593 593
+ 954: 36 ConstantComposite 953 953 953 953
+4(VertexShaderFunction): 2 Function None 3
+ 5: Label
+ 47(inF0): 7(ptr) Variable Function
+ 62(inF1): 7(ptr) Variable Function
+ 69(inF2): 7(ptr) Variable Function
+ 166(inF0): 9(ptr) Variable Function
+ 180(inF1): 9(ptr) Variable Function
+ 187(inF2): 9(ptr) Variable Function
+ 306(inF0): 22(ptr) Variable Function
+ 320(inF1): 22(ptr) Variable Function
+ 327(inF2): 22(ptr) Variable Function
+ 448(inF0): 35(ptr) Variable Function
+ 462(inF1): 35(ptr) Variable Function
+ 469(inF2): 35(ptr) Variable Function
+ 596(inF0): 11(ptr) Variable Function
+ 610(inF1): 11(ptr) Variable Function
+ 617(inF2): 11(ptr) Variable Function
+ 713(inF0): 24(ptr) Variable Function
+ 727(inF1): 24(ptr) Variable Function
+ 734(inF2): 24(ptr) Variable Function
+ 833(inF0): 37(ptr) Variable Function
+ 847(inF1): 37(ptr) Variable Function
+ 854(inF2): 37(ptr) Variable Function
+ 48: 6(float) Load 47(inF0)
+ 50: 49(bool) All 48
+ 51: 6(float) Load 47(inF0)
+ 52: 6(float) ExtInst 1(GLSL.std.450) 4(FAbs) 51
+ 53: 6(float) Load 47(inF0)
+ 54: 6(float) ExtInst 1(GLSL.std.450) 17(Acos) 53
+ 55: 6(float) Load 47(inF0)
+ 56: 49(bool) Any 55
+ 57: 6(float) Load 47(inF0)
+ 58: 6(float) ExtInst 1(GLSL.std.450) 16(Asin) 57
+ 59: 6(float) Load 47(inF0)
+ 60: 6(float) ExtInst 1(GLSL.std.450) 18(Atan) 59
+ 61: 6(float) Load 47(inF0)
+ 63: 6(float) Load 62(inF1)
+ 64: 6(float) ExtInst 1(GLSL.std.450) 25(Atan2) 61 63
+ 65: 6(float) Load 47(inF0)
+ 66: 6(float) ExtInst 1(GLSL.std.450) 9(Ceil) 65
+ 67: 6(float) Load 47(inF0)
+ 68: 6(float) Load 62(inF1)
+ 70: 6(float) Load 69(inF2)
+ 71: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 67 68 70
+ 72: 6(float) Load 47(inF0)
+ 73: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 72
+ 74: 6(float) Load 47(inF0)
+ 75: 6(float) ExtInst 1(GLSL.std.450) 20(Cosh) 74
+ 78: 76(int) BitCount 77
+ 79: 6(float) Load 47(inF0)
+ 80: 6(float) ExtInst 1(GLSL.std.450) 12(Degrees) 79
+ 81: 6(float) Load 47(inF0)
+ 82: 6(float) ExtInst 1(GLSL.std.450) 27(Exp) 81
+ 83: 6(float) Load 47(inF0)
+ 84: 6(float) ExtInst 1(GLSL.std.450) 29(Exp2) 83
+ 87: 85(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 86
+ 88: 85(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 86
+ 89: 6(float) Load 47(inF0)
+ 90: 6(float) ExtInst 1(GLSL.std.450) 8(Floor) 89
+ 91: 6(float) Load 47(inF0)
+ 92: 6(float) Load 62(inF1)
+ 93: 6(float) FMod 91 92
+ 94: 6(float) Load 47(inF0)
+ 95: 6(float) ExtInst 1(GLSL.std.450) 10(Fract) 94
+ 96: 6(float) Load 47(inF0)
+ 98: 97(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 96
+ 99: 85(int) CompositeExtract 98 1
+ Store 62(inF1) 99
+ 100: 6(float) CompositeExtract 98 0
+ 101: 6(float) Load 47(inF0)
+ 102: 6(float) Fwidth 101
+ 103: 6(float) Load 47(inF0)
+ 104: 49(bool) IsInf 103
+ 105: 6(float) Load 47(inF0)
+ 106: 49(bool) IsNan 105
+ 107: 6(float) Load 47(inF0)
+ 108: 6(float) Load 62(inF1)
+ 109: 6(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 107 108
+ 110: 6(float) Load 47(inF0)
+ 111: 6(float) ExtInst 1(GLSL.std.450) 28(Log) 110
+ 112: 6(float) Load 47(inF0)
+ 113: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 112
+ 115: 6(float) FMul 113 114
+ 116: 6(float) Load 47(inF0)
+ 117: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 116
+ 118: 6(float) Load 47(inF0)
+ 119: 6(float) Load 62(inF1)
+ 120: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 118 119
+ 121: 6(float) Load 47(inF0)
+ 122: 6(float) Load 62(inF1)
+ 123: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 121 122
+ 124: 6(float) Load 47(inF0)
+ 125: 6(float) Load 62(inF1)
+ 126: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 124 125
+ 127: 6(float) Load 47(inF0)
+ 128: 6(float) ExtInst 1(GLSL.std.450) 11(Radians) 127
+ 130: 76(int) BitReverse 129
+ 131: 6(float) Load 47(inF0)
+ 132: 6(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 131
+ 133: 6(float) Load 47(inF0)
+ 134: 6(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 133
+ 135: 6(float) Load 47(inF0)
+ 138: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 135 136 137
+ 139: 6(float) Load 47(inF0)
+ 140: 6(float) ExtInst 1(GLSL.std.450) 6(FSign) 139
+ 141: 6(float) Load 47(inF0)
+ 142: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 141
+ 143: 6(float) Load 47(inF0)
+ 144: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 143
+ Store 62(inF1) 144
+ 145: 6(float) Load 47(inF0)
+ 146: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 145
+ Store 69(inF2) 146
+ 147: 6(float) Load 47(inF0)
+ 148: 6(float) ExtInst 1(GLSL.std.450) 19(Sinh) 147
+ 149: 6(float) Load 47(inF0)
+ 150: 6(float) Load 62(inF1)
+ 151: 6(float) Load 69(inF2)
+ 152: 6(float) ExtInst 1(GLSL.std.450) 49(SmoothStep) 149 150 151
+ 153: 6(float) Load 47(inF0)
+ 154: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 153
+ 155: 6(float) Load 47(inF0)
+ 156: 6(float) Load 62(inF1)
+ 157: 6(float) ExtInst 1(GLSL.std.450) 48(Step) 155 156
+ 158: 6(float) Load 47(inF0)
+ 159: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 158
+ 160: 6(float) Load 47(inF0)
+ 161: 6(float) ExtInst 1(GLSL.std.450) 21(Tanh) 160
+ 162: 6(float) Load 47(inF0)
+ 163: 6(float) ExtInst 1(GLSL.std.450) 3(Trunc) 162
+ ReturnValue 136
+ FunctionEnd
+19(TestGenMul(f1;f1;vf2;vf2;mf22;mf22;): 2 Function None 12
+ 13(inF0): 7(ptr) FunctionParameter
+ 14(inF1): 7(ptr) FunctionParameter
+ 15(inFV0): 9(ptr) FunctionParameter
+ 16(inFV1): 9(ptr) FunctionParameter
+ 17(inFM0): 11(ptr) FunctionParameter
+ 18(inFM1): 11(ptr) FunctionParameter
+ 20: Label
+ 956(r0): 7(ptr) Variable Function
+ 960(r1): 9(ptr) Variable Function
+ 964(r2): 9(ptr) Variable Function
+ 968(r3): 7(ptr) Variable Function
+ 972(r4): 9(ptr) Variable Function
+ 976(r5): 9(ptr) Variable Function
+ 980(r6): 11(ptr) Variable Function
+ 984(r7): 11(ptr) Variable Function
+ 988(r8): 11(ptr) Variable Function
+ 957: 6(float) Load 13(inF0)
+ 958: 6(float) Load 14(inF1)
+ 959: 6(float) FMul 957 958
+ Store 956(r0) 959
+ 961: 8(fvec2) Load 15(inFV0)
+ 962: 6(float) Load 13(inF0)
+ 963: 8(fvec2) VectorTimesScalar 961 962
+ Store 960(r1) 963
+ 965: 6(float) Load 13(inF0)
+ 966: 8(fvec2) Load 15(inFV0)
+ 967: 8(fvec2) VectorTimesScalar 966 965
+ Store 964(r2) 967
+ 969: 8(fvec2) Load 15(inFV0)
+ 970: 8(fvec2) Load 16(inFV1)
+ 971: 6(float) Dot 969 970
+ Store 968(r3) 971
+ 973: 10 Load 17(inFM0)
+ 974: 8(fvec2) Load 15(inFV0)
+ 975: 8(fvec2) MatrixTimesVector 973 974
+ Store 972(r4) 975
+ 977: 8(fvec2) Load 15(inFV0)
+ 978: 10 Load 17(inFM0)
+ 979: 8(fvec2) VectorTimesMatrix 977 978
+ Store 976(r5) 979
+ 981: 10 Load 17(inFM0)
+ 982: 6(float) Load 13(inF0)
+ 983: 10 MatrixTimesScalar 981 982
+ Store 980(r6) 983
+ 985: 6(float) Load 13(inF0)
+ 986: 10 Load 17(inFM0)
+ 987: 10 MatrixTimesScalar 986 985
+ Store 984(r7) 987
+ 989: 10 Load 17(inFM0)
+ 990: 10 Load 18(inFM1)
+ 991: 10 MatrixTimesMatrix 989 990
+ Store 988(r8) 991
+ Return
+ FunctionEnd
+32(TestGenMul(f1;f1;vf3;vf3;mf33;mf33;): 2 Function None 25
+ 26(inF0): 7(ptr) FunctionParameter
+ 27(inF1): 7(ptr) FunctionParameter
+ 28(inFV0): 22(ptr) FunctionParameter
+ 29(inFV1): 22(ptr) FunctionParameter
+ 30(inFM0): 24(ptr) FunctionParameter
+ 31(inFM1): 24(ptr) FunctionParameter
+ 33: Label
+ 992(r0): 7(ptr) Variable Function
+ 996(r1): 22(ptr) Variable Function
+ 1000(r2): 22(ptr) Variable Function
+ 1004(r3): 7(ptr) Variable Function
+ 1008(r4): 22(ptr) Variable Function
+ 1012(r5): 22(ptr) Variable Function
+ 1016(r6): 24(ptr) Variable Function
+ 1020(r7): 24(ptr) Variable Function
+ 1024(r8): 24(ptr) Variable Function
+ 993: 6(float) Load 26(inF0)
+ 994: 6(float) Load 27(inF1)
+ 995: 6(float) FMul 993 994
+ Store 992(r0) 995
+ 997: 21(fvec3) Load 28(inFV0)
+ 998: 6(float) Load 26(inF0)
+ 999: 21(fvec3) VectorTimesScalar 997 998
+ Store 996(r1) 999
+ 1001: 6(float) Load 26(inF0)
+ 1002: 21(fvec3) Load 28(inFV0)
+ 1003: 21(fvec3) VectorTimesScalar 1002 1001
+ Store 1000(r2) 1003
+ 1005: 21(fvec3) Load 28(inFV0)
+ 1006: 21(fvec3) Load 29(inFV1)
+ 1007: 6(float) Dot 1005 1006
+ Store 1004(r3) 1007
+ 1009: 23 Load 30(inFM0)
+ 1010: 21(fvec3) Load 28(inFV0)
+ 1011: 21(fvec3) MatrixTimesVector 1009 1010
+ Store 1008(r4) 1011
+ 1013: 21(fvec3) Load 28(inFV0)
+ 1014: 23 Load 30(inFM0)
+ 1015: 21(fvec3) VectorTimesMatrix 1013 1014
+ Store 1012(r5) 1015
+ 1017: 23 Load 30(inFM0)
+ 1018: 6(float) Load 26(inF0)
+ 1019: 23 MatrixTimesScalar 1017 1018
+ Store 1016(r6) 1019
+ 1021: 6(float) Load 26(inF0)
+ 1022: 23 Load 30(inFM0)
+ 1023: 23 MatrixTimesScalar 1022 1021
+ Store 1020(r7) 1023
+ 1025: 23 Load 30(inFM0)
+ 1026: 23 Load 31(inFM1)
+ 1027: 23 MatrixTimesMatrix 1025 1026
+ Store 1024(r8) 1027
+ Return
+ FunctionEnd
+45(TestGenMul(f1;f1;vf4;vf4;mf44;mf44;): 2 Function None 38
+ 39(inF0): 7(ptr) FunctionParameter
+ 40(inF1): 7(ptr) FunctionParameter
+ 41(inFV0): 35(ptr) FunctionParameter
+ 42(inFV1): 35(ptr) FunctionParameter
+ 43(inFM0): 37(ptr) FunctionParameter
+ 44(inFM1): 37(ptr) FunctionParameter
+ 46: Label
+ 1028(r0): 7(ptr) Variable Function
+ 1032(r1): 35(ptr) Variable Function
+ 1036(r2): 35(ptr) Variable Function
+ 1040(r3): 7(ptr) Variable Function
+ 1044(r4): 35(ptr) Variable Function
+ 1048(r5): 35(ptr) Variable Function
+ 1052(r6): 37(ptr) Variable Function
+ 1056(r7): 37(ptr) Variable Function
+ 1060(r8): 37(ptr) Variable Function
+ 1029: 6(float) Load 39(inF0)
+ 1030: 6(float) Load 40(inF1)
+ 1031: 6(float) FMul 1029 1030
+ Store 1028(r0) 1031
+ 1033: 34(fvec4) Load 41(inFV0)
+ 1034: 6(float) Load 39(inF0)
+ 1035: 34(fvec4) VectorTimesScalar 1033 1034
+ Store 1032(r1) 1035
+ 1037: 6(float) Load 39(inF0)
+ 1038: 34(fvec4) Load 41(inFV0)
+ 1039: 34(fvec4) VectorTimesScalar 1038 1037
+ Store 1036(r2) 1039
+ 1041: 34(fvec4) Load 41(inFV0)
+ 1042: 34(fvec4) Load 42(inFV1)
+ 1043: 6(float) Dot 1041 1042
+ Store 1040(r3) 1043
+ 1045: 36 Load 43(inFM0)
+ 1046: 34(fvec4) Load 41(inFV0)
+ 1047: 34(fvec4) MatrixTimesVector 1045 1046
+ Store 1044(r4) 1047
+ 1049: 34(fvec4) Load 41(inFV0)
+ 1050: 36 Load 43(inFM0)
+ 1051: 34(fvec4) VectorTimesMatrix 1049 1050
+ Store 1048(r5) 1051
+ 1053: 36 Load 43(inFM0)
+ 1054: 6(float) Load 39(inF0)
+ 1055: 36 MatrixTimesScalar 1053 1054
+ Store 1052(r6) 1055
+ 1057: 6(float) Load 39(inF0)
+ 1058: 36 Load 43(inFM0)
+ 1059: 36 MatrixTimesScalar 1058 1057
+ Store 1056(r7) 1059
+ 1061: 36 Load 43(inFM0)
+ 1062: 36 Load 44(inFM1)
+ 1063: 36 MatrixTimesMatrix 1061 1062
+ Store 1060(r8) 1063
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/hlsl.matType.frag.out b/chromium/third_party/glslang/src/Test/baseResults/hlsl.matType.frag.out
new file mode 100755
index 00000000000..298211df4ad
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/hlsl.matType.frag.out
@@ -0,0 +1,101 @@
+hlsl.matType.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:1 move second child to first child (temp 1-component vector of float)
+0:1 'f1' (temp 1-component vector of float)
+0:1 Constant:
+0:1 1.000000
+0:11 Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float)
+0:9 Function Parameters:
+0:9 'inFloat1' (temp 1-component vector of float)
+0:9 'inScalar' (temp float)
+0:? Linker Objects
+0:? 'f1' (temp 1-component vector of float)
+0:? 'fmat11' (temp 1X1 matrix of float)
+0:? 'fmat41' (temp 1X4 matrix of float)
+0:? 'fmat12' (temp 2X1 matrix of float)
+0:? 'dmat23' (temp 3X2 matrix of double)
+0:? 'int44' (temp 4X4 matrix of int)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:1 move second child to first child (temp 1-component vector of float)
+0:1 'f1' (temp 1-component vector of float)
+0:1 Constant:
+0:1 1.000000
+0:11 Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float)
+0:9 Function Parameters:
+0:9 'inFloat1' (temp 1-component vector of float)
+0:9 'inScalar' (temp float)
+0:? Linker Objects
+0:? 'f1' (temp 1-component vector of float)
+0:? 'fmat11' (temp 1X1 matrix of float)
+0:? 'fmat41' (temp 1X4 matrix of float)
+0:? 'fmat12' (temp 2X1 matrix of float)
+0:? 'dmat23' (temp 3X2 matrix of double)
+0:? 'int44' (temp 4X4 matrix of int)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 36
+
+ Capability Shader
+ Capability Float64
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "PixelShaderFunction"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "PixelShaderFunction"
+ Name 11 "ShaderFunction(vf1;f1;"
+ Name 9 "inFloat1"
+ Name 10 "inScalar"
+ Name 14 "f1"
+ Name 18 "fmat11"
+ Name 22 "fmat41"
+ Name 25 "fmat12"
+ Name 30 "dmat23"
+ Name 35 "int44"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypePointer Function 6(float)
+ 8: TypeFunction 6(float) 7(ptr) 7(ptr)
+ 15: TypeVector 6(float) 1
+ 16: TypeMatrix 15(fvec) 1
+ 17: TypePointer Function 16
+ 19: TypeVector 6(float) 4
+ 20: TypeMatrix 19(fvec4) 1
+ 21: TypePointer Function 20
+ 23: TypeMatrix 15(fvec) 2
+ 24: TypePointer Function 23
+ 26: TypeFloat 64
+ 27: TypeVector 26(float) 2
+ 28: TypeMatrix 27(fvec2) 3
+ 29: TypePointer Function 28
+ 31: TypeInt 32 1
+ 32: TypeVector 31(int) 4
+ 33: TypeMatrix 32(ivec4) 4
+ 34: TypePointer Function 33
+4(PixelShaderFunction): 2 Function None 3
+ 5: Label
+ FunctionEnd
+11(ShaderFunction(vf1;f1;): 6(float) Function None 8
+ 9(inFloat1): 7(ptr) FunctionParameter
+ 10(inScalar): 7(ptr) FunctionParameter
+ 12: Label
+ 14(f1): 7(ptr) Variable Function
+ 18(fmat11): 17(ptr) Variable Function
+ 22(fmat41): 21(ptr) Variable Function
+ 25(fmat12): 24(ptr) Variable Function
+ 30(dmat23): 29(ptr) Variable Function
+ 35(int44): 34(ptr) Variable Function
+ 13: 6(float) Undef
+ ReturnValue 13
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/hlsl.max.frag.out b/chromium/third_party/glslang/src/Test/baseResults/hlsl.max.frag.out
new file mode 100755
index 00000000000..7c3c7e69194
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/hlsl.max.frag.out
@@ -0,0 +1,60 @@
+hlsl.max.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:5 Function Definition: PixelShaderFunction(vf4;vf4; (temp 4-component vector of float)
+0:2 Function Parameters:
+0:2 'input1' (temp 4-component vector of float)
+0:2 'input2' (temp 4-component vector of float)
+0:? Sequence
+0:3 Branch: Return with expression
+0:3 max (global 4-component vector of float)
+0:3 'input1' (temp 4-component vector of float)
+0:3 'input2' (temp 4-component vector of float)
+0:? Linker Objects
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:5 Function Definition: PixelShaderFunction(vf4;vf4; (temp 4-component vector of float)
+0:2 Function Parameters:
+0:2 'input1' (temp 4-component vector of float)
+0:2 'input2' (temp 4-component vector of float)
+0:? Sequence
+0:3 Branch: Return with expression
+0:3 max (global 4-component vector of float)
+0:3 'input1' (temp 4-component vector of float)
+0:3 'input2' (temp 4-component vector of float)
+0:? Linker Objects
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 15
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "PixelShaderFunction"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "PixelShaderFunction"
+ Name 9 "input1"
+ Name 11 "input2"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+4(PixelShaderFunction): 2 Function None 3
+ 5: Label
+ 9(input1): 8(ptr) Variable Function
+ 11(input2): 8(ptr) Variable Function
+ 10: 7(fvec4) Load 9(input1)
+ 12: 7(fvec4) Load 11(input2)
+ 13: 7(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 10 12
+ ReturnValue 13
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/hlsl.precedence.frag.out b/chromium/third_party/glslang/src/Test/baseResults/hlsl.precedence.frag.out
new file mode 100755
index 00000000000..dc0b0e93ab9
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/hlsl.precedence.frag.out
@@ -0,0 +1,80 @@
+hlsl.precedence.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:10 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4; (temp 4-component vector of float)
+0:7 Function Parameters:
+0:7 'a1' (temp 4-component vector of float)
+0:7 'a2' (temp 4-component vector of float)
+0:7 'a3' (temp 4-component vector of float)
+0:7 'a4' (temp 4-component vector of float)
+0:? Sequence
+0:8 Branch: Return with expression
+0:8 add (temp 4-component vector of float)
+0:8 add (temp 4-component vector of float)
+0:8 'a1' (temp 4-component vector of float)
+0:8 component-wise multiply (temp 4-component vector of float)
+0:8 'a2' (temp 4-component vector of float)
+0:8 'a3' (temp 4-component vector of float)
+0:8 'a4' (temp 4-component vector of float)
+0:? Linker Objects
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:10 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4; (temp 4-component vector of float)
+0:7 Function Parameters:
+0:7 'a1' (temp 4-component vector of float)
+0:7 'a2' (temp 4-component vector of float)
+0:7 'a3' (temp 4-component vector of float)
+0:7 'a4' (temp 4-component vector of float)
+0:? Sequence
+0:8 Branch: Return with expression
+0:8 add (temp 4-component vector of float)
+0:8 add (temp 4-component vector of float)
+0:8 'a1' (temp 4-component vector of float)
+0:8 component-wise multiply (temp 4-component vector of float)
+0:8 'a2' (temp 4-component vector of float)
+0:8 'a3' (temp 4-component vector of float)
+0:8 'a4' (temp 4-component vector of float)
+0:? Linker Objects
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 21
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "PixelShaderFunction"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "PixelShaderFunction"
+ Name 9 "a1"
+ Name 11 "a2"
+ Name 13 "a3"
+ Name 17 "a4"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+4(PixelShaderFunction): 2 Function None 3
+ 5: Label
+ 9(a1): 8(ptr) Variable Function
+ 11(a2): 8(ptr) Variable Function
+ 13(a3): 8(ptr) Variable Function
+ 17(a4): 8(ptr) Variable Function
+ 10: 7(fvec4) Load 9(a1)
+ 12: 7(fvec4) Load 11(a2)
+ 14: 7(fvec4) Load 13(a3)
+ 15: 7(fvec4) FMul 12 14
+ 16: 7(fvec4) FAdd 10 15
+ 18: 7(fvec4) Load 17(a4)
+ 19: 7(fvec4) FAdd 16 18
+ ReturnValue 19
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/hlsl.precedence2.frag.out b/chromium/third_party/glslang/src/Test/baseResults/hlsl.precedence2.frag.out
new file mode 100755
index 00000000000..73d500d3c73
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/hlsl.precedence2.frag.out
@@ -0,0 +1,103 @@
+hlsl.precedence2.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:10 Function Definition: PixelShaderFunction(i1;i1;i1;i1; (temp int)
+0:7 Function Parameters:
+0:7 'a1' (temp int)
+0:7 'a2' (temp int)
+0:7 'a3' (temp int)
+0:7 'a4' (temp int)
+0:? Sequence
+0:8 Branch: Return with expression
+0:8 add (temp int)
+0:8 left-shift (temp int)
+0:8 add (temp int)
+0:8 component-wise multiply (temp int)
+0:8 'a1' (temp int)
+0:8 'a2' (temp int)
+0:8 'a3' (temp int)
+0:8 'a4' (temp int)
+0:8 left-shift (temp int)
+0:8 'a1' (temp int)
+0:8 add (temp int)
+0:8 'a2' (temp int)
+0:8 component-wise multiply (temp int)
+0:8 'a3' (temp int)
+0:8 'a4' (temp int)
+0:? Linker Objects
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:10 Function Definition: PixelShaderFunction(i1;i1;i1;i1; (temp int)
+0:7 Function Parameters:
+0:7 'a1' (temp int)
+0:7 'a2' (temp int)
+0:7 'a3' (temp int)
+0:7 'a4' (temp int)
+0:? Sequence
+0:8 Branch: Return with expression
+0:8 add (temp int)
+0:8 left-shift (temp int)
+0:8 add (temp int)
+0:8 component-wise multiply (temp int)
+0:8 'a1' (temp int)
+0:8 'a2' (temp int)
+0:8 'a3' (temp int)
+0:8 'a4' (temp int)
+0:8 left-shift (temp int)
+0:8 'a1' (temp int)
+0:8 add (temp int)
+0:8 'a2' (temp int)
+0:8 component-wise multiply (temp int)
+0:8 'a3' (temp int)
+0:8 'a4' (temp int)
+0:? Linker Objects
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 28
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "PixelShaderFunction"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "PixelShaderFunction"
+ Name 8 "a1"
+ Name 10 "a2"
+ Name 13 "a3"
+ Name 16 "a4"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypePointer Function 6(int)
+4(PixelShaderFunction): 2 Function None 3
+ 5: Label
+ 8(a1): 7(ptr) Variable Function
+ 10(a2): 7(ptr) Variable Function
+ 13(a3): 7(ptr) Variable Function
+ 16(a4): 7(ptr) Variable Function
+ 9: 6(int) Load 8(a1)
+ 11: 6(int) Load 10(a2)
+ 12: 6(int) IMul 9 11
+ 14: 6(int) Load 13(a3)
+ 15: 6(int) IAdd 12 14
+ 17: 6(int) Load 16(a4)
+ 18: 6(int) ShiftLeftLogical 15 17
+ 19: 6(int) Load 8(a1)
+ 20: 6(int) Load 10(a2)
+ 21: 6(int) Load 13(a3)
+ 22: 6(int) Load 16(a4)
+ 23: 6(int) IMul 21 22
+ 24: 6(int) IAdd 20 23
+ 25: 6(int) ShiftLeftLogical 19 24
+ 26: 6(int) IAdd 18 25
+ ReturnValue 26
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/hlsl.scope.frag.out b/chromium/third_party/glslang/src/Test/baseResults/hlsl.scope.frag.out
new file mode 100755
index 00000000000..274477a461f
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/hlsl.scope.frag.out
@@ -0,0 +1,150 @@
+hlsl.scope.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:31 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:2 Function Parameters:
+0:2 'input' (temp 4-component vector of float)
+0:? Sequence
+0:4 'x' (temp int)
+0:? Sequence
+0:7 'x' (temp float)
+0:? Sequence
+0:10 'x' (temp bool)
+0:? Sequence
+0:13 'x' (temp 3-component vector of float)
+0:15 'x' (temp bool)
+0:17 'x' (temp float)
+0:19 'x' (temp int)
+0:21 Test condition and select (temp void)
+0:21 Condition
+0:21 Compare Greater Than (temp bool)
+0:21 'x' (temp int)
+0:21 Constant:
+0:21 0 (const int)
+0:21 true case is null
+0:24 Loop with condition tested first
+0:24 Loop Condition
+0:24 Compare Greater Than (temp bool)
+0:24 'x' (temp int)
+0:24 Constant:
+0:24 0 (const int)
+0:24 No loop body
+0:27 Loop with condition not tested first
+0:27 Loop Condition
+0:29 Compare Greater Than (temp bool)
+0:29 'x' (temp int)
+0:29 Constant:
+0:29 0 (const int)
+0:27 No loop body
+0:? Linker Objects
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:31 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:2 Function Parameters:
+0:2 'input' (temp 4-component vector of float)
+0:? Sequence
+0:4 'x' (temp int)
+0:? Sequence
+0:7 'x' (temp float)
+0:? Sequence
+0:10 'x' (temp bool)
+0:? Sequence
+0:13 'x' (temp 3-component vector of float)
+0:15 'x' (temp bool)
+0:17 'x' (temp float)
+0:19 'x' (temp int)
+0:21 Test condition and select (temp void)
+0:21 Condition
+0:21 Compare Greater Than (temp bool)
+0:21 'x' (temp int)
+0:21 Constant:
+0:21 0 (const int)
+0:21 true case is null
+0:24 Loop with condition tested first
+0:24 Loop Condition
+0:24 Compare Greater Than (temp bool)
+0:24 'x' (temp int)
+0:24 Constant:
+0:24 0 (const int)
+0:24 No loop body
+0:27 Loop with condition not tested first
+0:27 Loop Condition
+0:29 Compare Greater Than (temp bool)
+0:29 'x' (temp int)
+0:29 Constant:
+0:29 0 (const int)
+0:27 No loop body
+0:? Linker Objects
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 36
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "PixelShaderFunction"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "PixelShaderFunction"
+ Name 8 "x"
+ Name 11 "x"
+ Name 14 "x"
+ Name 17 "x"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypePointer Function 6(int)
+ 9: TypeFloat 32
+ 10: TypePointer Function 9(float)
+ 12: TypeBool
+ 13: TypePointer Function 12(bool)
+ 15: TypeVector 9(float) 3
+ 16: TypePointer Function 15(fvec3)
+ 19: 6(int) Constant 0
+4(PixelShaderFunction): 2 Function None 3
+ 5: Label
+ 8(x): 7(ptr) Variable Function
+ 11(x): 10(ptr) Variable Function
+ 14(x): 13(ptr) Variable Function
+ 17(x): 16(ptr) Variable Function
+ 18: 6(int) Load 8(x)
+ 20: 12(bool) SGreaterThan 18 19
+ SelectionMerge 22 None
+ BranchConditional 20 21 22
+ 21: Label
+ Branch 22
+ 22: Label
+ Branch 23
+ 23: Label
+ LoopMerge 25 26 None
+ Branch 27
+ 27: Label
+ 28: 6(int) Load 8(x)
+ 29: 12(bool) SGreaterThan 28 19
+ BranchConditional 29 24 25
+ 24: Label
+ Branch 26
+ 26: Label
+ Branch 23
+ 25: Label
+ Branch 30
+ 30: Label
+ LoopMerge 32 33 None
+ Branch 31
+ 31: Label
+ Branch 33
+ 33: Label
+ 34: 6(int) Load 8(x)
+ 35: 12(bool) SGreaterThan 34 19
+ BranchConditional 35 30 32
+ 32: Label
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/hlsl.sin.frag.out b/chromium/third_party/glslang/src/Test/baseResults/hlsl.sin.frag.out
new file mode 100755
index 00000000000..331945acfbe
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/hlsl.sin.frag.out
@@ -0,0 +1,53 @@
+hlsl.sin.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:5 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:2 Function Parameters:
+0:2 'input' (temp 4-component vector of float)
+0:? Sequence
+0:3 Branch: Return with expression
+0:3 sine (global 4-component vector of float)
+0:3 'input' (temp 4-component vector of float)
+0:? Linker Objects
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:5 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:2 Function Parameters:
+0:2 'input' (temp 4-component vector of float)
+0:? Sequence
+0:3 Branch: Return with expression
+0:3 sine (global 4-component vector of float)
+0:3 'input' (temp 4-component vector of float)
+0:? Linker Objects
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 13
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "PixelShaderFunction"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "PixelShaderFunction"
+ Name 9 "input"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+4(PixelShaderFunction): 2 Function None 3
+ 5: Label
+ 9(input): 8(ptr) Variable Function
+ 10: 7(fvec4) Load 9(input)
+ 11: 7(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 10
+ ReturnValue 11
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/hlsl.struct.frag.out b/chromium/third_party/glslang/src/Test/baseResults/hlsl.struct.frag.out
new file mode 100755
index 00000000000..de2c74becc5
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/hlsl.struct.frag.out
@@ -0,0 +1,107 @@
+hlsl.struct.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:39 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:31 Function Parameters:
+0:31 'input' (temp 4-component vector of float)
+0:? Sequence
+0:36 Compare Equal (temp bool)
+0:36 's3' (temp structure{temp 3-component vector of bool b3})
+0:36 's3' (temp structure{temp 3-component vector of bool b3})
+0:38 Branch: Return with expression
+0:38 'input' (temp 4-component vector of float)
+0:? Linker Objects
+0:? 's1' (temp structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d})
+0:? 's2' (temp structure{temp 4-component vector of float i})
+0:? 's4' (temp structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float FragCoord ff4})
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:39 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:31 Function Parameters:
+0:31 'input' (temp 4-component vector of float)
+0:? Sequence
+0:36 Compare Equal (temp bool)
+0:36 's3' (temp structure{temp 3-component vector of bool b3})
+0:36 's3' (temp structure{temp 3-component vector of bool b3})
+0:38 Branch: Return with expression
+0:38 'input' (temp 4-component vector of float)
+0:? Linker Objects
+0:? 's1' (temp structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d})
+0:? 's2' (temp structure{temp 4-component vector of float i})
+0:? 's4' (temp structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float FragCoord ff4})
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 33
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "PixelShaderFunction"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "PixelShaderFunction"
+ Name 8 "FS"
+ MemberName 8(FS) 0 "b3"
+ Name 10 "s3"
+ Name 20 "input"
+ Name 23 "myS"
+ MemberName 23(myS) 0 "b"
+ MemberName 23(myS) 1 "c"
+ MemberName 23(myS) 2 "a"
+ MemberName 23(myS) 3 "d"
+ Name 25 "s1"
+ Name 26 ""
+ MemberName 26 0 "i"
+ Name 28 "s2"
+ Name 30 ""
+ MemberName 30 0 "a"
+ MemberName 30 1 "b"
+ MemberName 30 2 "c"
+ MemberName 30 3 "d"
+ MemberName 30 4 "ff1"
+ MemberName 30 5 "ff2"
+ MemberName 30 6 "ff3"
+ MemberName 30 7 "ff4"
+ Name 32 "s4"
+ MemberDecorate 30 4 BuiltIn FrontFacing
+ MemberDecorate 30 7 BuiltIn FragCoord
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeBool
+ 7: TypeVector 6(bool) 3
+ 8(FS): TypeStruct 7(bvec3)
+ 9: TypePointer Function 8(FS)
+ 17: TypeFloat 32
+ 18: TypeVector 17(float) 4
+ 19: TypePointer Function 18(fvec4)
+ 23(myS): TypeStruct 6(bool) 6(bool) 18(fvec4) 18(fvec4)
+ 24: TypePointer Function 23(myS)
+ 26: TypeStruct 18(fvec4)
+ 27: TypePointer Function 26(struct)
+ 29: TypeVector 17(float) 2
+ 30: TypeStruct 18(fvec4) 6(bool) 17(float) 29(fvec2) 6(bool) 6(bool) 6(bool) 18(fvec4)
+ 31: TypePointer Function 30(struct)
+4(PixelShaderFunction): 2 Function None 3
+ 5: Label
+ 10(s3): 9(ptr) Variable Function
+ 20(input): 19(ptr) Variable Function
+ 25(s1): 24(ptr) Variable Function
+ 28(s2): 27(ptr) Variable Function
+ 32(s4): 31(ptr) Variable Function
+ 11: 8(FS) Load 10(s3)
+ 12: 8(FS) Load 10(s3)
+ 13: 7(bvec3) CompositeExtract 11 0
+ 14: 7(bvec3) CompositeExtract 12 0
+ 15: 7(bvec3) LogicalEqual 13 14
+ 16: 6(bool) All 15
+ 21: 18(fvec4) Load 20(input)
+ ReturnValue 21
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/hlsl.void.frag.out b/chromium/third_party/glslang/src/Test/baseResults/hlsl.void.frag.out
new file mode 100755
index 00000000000..a6e92317449
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/hlsl.void.frag.out
@@ -0,0 +1,64 @@
+hlsl.void.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:2 Function Definition: foo1( (temp void)
+0:1 Function Parameters:
+0:4 Function Definition: foo2( (temp void)
+0:2 Function Parameters:
+0:8 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:5 Function Parameters:
+0:5 'input' (temp 4-component vector of float)
+0:? Sequence
+0:6 Function Call: foo1( (temp void)
+0:7 Function Call: foo2( (temp void)
+0:? Linker Objects
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:2 Function Definition: foo1( (temp void)
+0:1 Function Parameters:
+0:4 Function Definition: foo2( (temp void)
+0:2 Function Parameters:
+0:8 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:5 Function Parameters:
+0:5 'input' (temp 4-component vector of float)
+0:? Sequence
+0:6 Function Call: foo1( (temp void)
+0:7 Function Call: foo2( (temp void)
+0:? Linker Objects
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 12
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "PixelShaderFunction"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "PixelShaderFunction"
+ Name 6 "foo1("
+ Name 8 "foo2("
+ 2: TypeVoid
+ 3: TypeFunction 2
+4(PixelShaderFunction): 2 Function None 3
+ 5: Label
+ 10: 2 FunctionCall 6(foo1()
+ 11: 2 FunctionCall 8(foo2()
+ Return
+ FunctionEnd
+ 6(foo1(): 2 Function None 3
+ 7: Label
+ Return
+ FunctionEnd
+ 8(foo2(): 2 Function None 3
+ 9: Label
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/hlsl.whileLoop.frag.out b/chromium/third_party/glslang/src/Test/baseResults/hlsl.whileLoop.frag.out
new file mode 100755
index 00000000000..686407bd29c
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/hlsl.whileLoop.frag.out
@@ -0,0 +1,145 @@
+hlsl.whileLoop.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:8 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:2 Function Parameters:
+0:2 'input' (temp 4-component vector of float)
+0:? Sequence
+0:3 Loop with condition tested first
+0:3 Loop Condition
+0:3 Compare Not Equal (temp bool)
+0:3 'input' (temp 4-component vector of float)
+0:3 'input' (temp 4-component vector of float)
+0:3 Loop Body
+0:? Sequence
+0:3 Branch: Return with expression
+0:3 'input' (temp 4-component vector of float)
+0:4 Loop with condition tested first
+0:4 Loop Condition
+0:4 Constant:
+0:4 false (const bool)
+0:4 No loop body
+0:5 Loop with condition tested first
+0:5 Loop Condition
+0:5 Constant:
+0:5 false (const bool)
+0:5 No loop body
+0:6 Loop with condition tested first
+0:6 Loop Condition
+0:6 Constant:
+0:6 false (const bool)
+0:6 No loop body
+0:? Linker Objects
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:8 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:2 Function Parameters:
+0:2 'input' (temp 4-component vector of float)
+0:? Sequence
+0:3 Loop with condition tested first
+0:3 Loop Condition
+0:3 Compare Not Equal (temp bool)
+0:3 'input' (temp 4-component vector of float)
+0:3 'input' (temp 4-component vector of float)
+0:3 Loop Body
+0:? Sequence
+0:3 Branch: Return with expression
+0:3 'input' (temp 4-component vector of float)
+0:4 Loop with condition tested first
+0:4 Loop Condition
+0:4 Constant:
+0:4 false (const bool)
+0:4 No loop body
+0:5 Loop with condition tested first
+0:5 Loop Condition
+0:5 Constant:
+0:5 false (const bool)
+0:5 No loop body
+0:6 Loop with condition tested first
+0:6 Loop Condition
+0:6 Constant:
+0:6 false (const bool)
+0:6 No loop body
+0:? Linker Objects
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 39
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "PixelShaderFunction"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "PixelShaderFunction"
+ Name 14 "input"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 11: TypeFloat 32
+ 12: TypeVector 11(float) 4
+ 13: TypePointer Function 12(fvec4)
+ 17: TypeBool
+ 18: TypeVector 17(bool) 4
+ 28: 17(bool) ConstantFalse
+4(PixelShaderFunction): 2 Function None 3
+ 5: Label
+ 14(input): 13(ptr) Variable Function
+ Branch 6
+ 6: Label
+ LoopMerge 8 9 None
+ Branch 10
+ 10: Label
+ 15: 12(fvec4) Load 14(input)
+ 16: 12(fvec4) Load 14(input)
+ 19: 18(bvec4) FOrdNotEqual 15 16
+ 20: 17(bool) Any 19
+ BranchConditional 20 7 8
+ 7: Label
+ 21: 12(fvec4) Load 14(input)
+ ReturnValue 21
+ 9: Label
+ Branch 6
+ 8: Label
+ Branch 23
+ 23: Label
+ LoopMerge 25 26 None
+ Branch 27
+ 27: Label
+ BranchConditional 28 24 25
+ 24: Label
+ Branch 26
+ 26: Label
+ Branch 23
+ 25: Label
+ Branch 29
+ 29: Label
+ LoopMerge 31 32 None
+ Branch 33
+ 33: Label
+ BranchConditional 28 30 31
+ 30: Label
+ Branch 32
+ 32: Label
+ Branch 29
+ 31: Label
+ Branch 34
+ 34: Label
+ LoopMerge 36 37 None
+ Branch 38
+ 38: Label
+ BranchConditional 28 35 36
+ 35: Label
+ Branch 37
+ 37: Label
+ Branch 34
+ 36: Label
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/length.frag.out b/chromium/third_party/glslang/src/Test/baseResults/length.frag.out
new file mode 100644
index 00000000000..1c42560711e
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/length.frag.out
@@ -0,0 +1,61 @@
+length.frag
+Shader version: 120
+0:? Sequence
+0:11 Function Definition: main( (global void)
+0:11 Function Parameters:
+0:? Sequence
+0:15 Sequence
+0:15 move second child to first child (temp 2-component vector of float)
+0:15 't' (temp 2-component vector of float)
+0:15 add (temp 2-component vector of float)
+0:15 direct index (smooth temp 2-component vector of float)
+0:15 'v' (smooth in 2-element array of 2-component vector of float)
+0:15 Constant:
+0:15 0 (const int)
+0:15 direct index (smooth temp 2-component vector of float)
+0:15 'v' (smooth in 2-element array of 2-component vector of float)
+0:15 Constant:
+0:15 1 (const int)
+0:17 move second child to first child (temp 4-component vector of float)
+0:17 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:17 Constant:
+0:17 30.000000
+0:17 30.000000
+0:17 30.000000
+0:17 30.000000
+0:? Linker Objects
+0:? 'u' (uniform 3-element array of 4-component vector of float)
+0:? 'v' (smooth in 2-element array of 2-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 120
+0:? Sequence
+0:11 Function Definition: main( (global void)
+0:11 Function Parameters:
+0:? Sequence
+0:15 Sequence
+0:15 move second child to first child (temp 2-component vector of float)
+0:15 't' (temp 2-component vector of float)
+0:15 add (temp 2-component vector of float)
+0:15 direct index (smooth temp 2-component vector of float)
+0:15 'v' (smooth in 2-element array of 2-component vector of float)
+0:15 Constant:
+0:15 0 (const int)
+0:15 direct index (smooth temp 2-component vector of float)
+0:15 'v' (smooth in 2-element array of 2-component vector of float)
+0:15 Constant:
+0:15 1 (const int)
+0:17 move second child to first child (temp 4-component vector of float)
+0:17 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:17 Constant:
+0:17 30.000000
+0:17 30.000000
+0:17 30.000000
+0:17 30.000000
+0:? Linker Objects
+0:? 'u' (uniform 3-element array of 4-component vector of float)
+0:? 'v' (smooth in 2-element array of 2-component vector of float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/lineContinuation.vert.out b/chromium/third_party/glslang/src/Test/baseResults/lineContinuation.vert.out
new file mode 100644
index 00000000000..78e5c0722d7
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/lineContinuation.vert.out
@@ -0,0 +1,309 @@
+lineContinuation.vert
+WARNING: 0:3: 'line continuation' : used at end of comment; the following line is still part of the comment
+ERROR: 0:6: '#error' : e1
+ERROR: 0:11: '#error' : e2
+ERROR: 0:18: '#error' : e3
+ERROR: 0:42: '\' : illegal use of escape character
+ERROR: 0:43: '@' : unexpected token
+ERROR: 0:44: '$' : unexpected token
+ERROR: 0:45: '\' : illegal use of escape character
+ERROR: 0:47: '\' : illegal use of escape character
+ERROR: 0:48: '\' : illegal use of escape character
+ERROR: 0:49: '$' : unexpected token
+ERROR: 0:50: '@' : unexpected token
+ERROR: 0:55: '#error' : good continuation
+WARNING: 0:62: 'line continuation' : used at end of comment; the following line is still part of the comment
+ERROR: 0:111: 'macro expansion' : End of line in macro substitution: FOOM
+ERROR: 0:112: 'preprocessor evaluation' : can't evaluate expression
+ERROR: 0:112: '#if' : unexpected tokens following directive
+ERROR: 0:117: 'macro expansion' : End of line in macro substitution: FOOM
+ERROR: 0:118: 'preprocessor evaluation' : can't evaluate expression
+ERROR: 0:118: '#if' : unexpected tokens following directive
+ERROR: 0:150: '' : syntax error
+ERROR: 19 compilation errors. No code generated.
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:20 Function Definition: main( (global void)
+0:20 Function Parameters:
+0:20 Sequence
+0:20 move second child to first child (temp highp 4-component vector of float)
+0:20 'gl_Position' (gl_Position highp 4-component vector of float Position)
+0:20 Construct vec4 (temp highp 4-component vector of float)
+0:20 'foo' (global highp float)
+0:22 Function Definition: foo2(vf4; (global highp 4-component vector of float)
+0:22 Function Parameters:
+0:22 'a' (in highp 4-component vector of float)
+0:24 Sequence
+0:24 Sequence
+0:24 move second child to first child (temp highp 4-component vector of float)
+0:24 'b' (temp highp 4-component vector of float)
+0:24 'a' (in highp 4-component vector of float)
+0:25 Branch: Return with expression
+0:25 'b' (temp highp 4-component vector of float)
+0:47 Sequence
+0:47 move second child to first child (temp highp int)
+0:47 'q1' (global highp int)
+0:47 Constant:
+0:47 1 (const int)
+0:48 Sequence
+0:48 move second child to first child (temp highp int)
+0:48 'q2' (global highp int)
+0:48 Constant:
+0:48 1 (const int)
+0:49 Sequence
+0:49 move second child to first child (temp highp int)
+0:49 'q3' (global highp int)
+0:49 Constant:
+0:49 1 (const int)
+0:50 Sequence
+0:50 move second child to first child (temp highp int)
+0:50 'q4' (global highp int)
+0:50 Constant:
+0:50 1 (const int)
+0:74 Sequence
+0:74 move second child to first child (temp highp float)
+0:74 'funkyf' (global highp float)
+0:75 Constant:
+0:75 12300000000000000.000000
+0:85 Sequence
+0:84 move second child to first child (temp highp int)
+0:84 'funkyh' (global highp int)
+0:86 Constant:
+0:86 244 (const int)
+0:91 Sequence
+0:91 move second child to first child (temp highp int)
+0:91 'funkyo' (global highp int)
+0:92 Constant:
+0:92 34 (const int)
+0:96 Sequence
+0:96 move second child to first child (temp highp int)
+0:96 'c' (global highp int)
+0:97 Constant:
+0:97 11 (const int)
+0:98 Sequence
+0:98 move second child to first child (temp highp int)
+0:98 'd' (global highp int)
+0:98 Constant:
+0:98 12 (const int)
+0:107 Sequence
+0:107 move second child to first child (temp highp int)
+0:107 'bar103' (global highp int)
+0:107 Constant:
+0:107 17 (const int)
+0:113 Sequence
+0:113 move second child to first child (temp highp int)
+0:113 'bar104' (global highp int)
+0:113 Constant:
+0:113 19 (const int)
+0:119 Sequence
+0:119 move second child to first child (temp highp int)
+0:119 'bar105' (global highp int)
+0:119 Constant:
+0:119 19 (const int)
+0:122 Sequence
+0:122 move second child to first child (temp highp int)
+0:122 'bar106' (global highp int)
+0:122 Constant:
+0:122 12 (const int)
+0:123 Sequence
+0:123 move second child to first child (temp highp int)
+0:123 'bar107' (global highp int)
+0:128 Constant:
+0:128 5 (const int)
+0:131 Function Definition: foo203209409( (global void)
+0:131 Function Parameters:
+0:134 Sequence
+0:134 add second child into first child (temp highp int)
+0:133 'bar107' (global highp int)
+0:134 Constant:
+0:134 37 (const int)
+0:135 multiply second child into first child (temp highp int)
+0:135 'bar107' (global highp int)
+0:136 Constant:
+0:136 38 (const int)
+0:137 divide second child into first child (temp highp int)
+0:137 'bar107' (global highp int)
+0:138 Constant:
+0:138 39 (const int)
+0:139 add (temp highp int)
+0:139 'bar107' (global highp int)
+0:140 Constant:
+0:140 41 (const int)
+0:? Linker Objects
+0:? 'foo' (global highp float)
+0:? 'goodDecl' (global highp int)
+0:? 'a1' (const highp int)
+0:? 4 (const int)
+0:? 'a2' (const highp int)
+0:? 3 (const int)
+0:? 'a3' (const highp int)
+0:? 4 (const int)
+0:? 'a4' (const highp int)
+0:? 3 (const int)
+0:? 'q1' (global highp int)
+0:? 'q2' (global highp int)
+0:? 'q3' (global highp int)
+0:? 'q4' (global highp int)
+0:? 'abdece' (const highp int)
+0:? 10 (const int)
+0:? 'aoeuntaoehu' (const highp int)
+0:? 10 (const int)
+0:? 'funkyf' (global highp float)
+0:? 'funkyh' (global highp int)
+0:? 'funkyo' (global highp int)
+0:? 'c' (global highp int)
+0:? 'd' (global highp int)
+0:? 'bar103' (global highp int)
+0:? 'bar104' (global highp int)
+0:? 'bar105' (global highp int)
+0:? 'bar106' (global highp int)
+0:? 'bar107' (global highp int)
+0:? 'gl_VertexID' (gl_VertexId highp int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+
+
+Linked vertex stage:
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:20 Function Definition: main( (global void)
+0:20 Function Parameters:
+0:20 Sequence
+0:20 move second child to first child (temp highp 4-component vector of float)
+0:20 'gl_Position' (gl_Position highp 4-component vector of float Position)
+0:20 Construct vec4 (temp highp 4-component vector of float)
+0:20 'foo' (global highp float)
+0:22 Function Definition: foo2(vf4; (global highp 4-component vector of float)
+0:22 Function Parameters:
+0:22 'a' (in highp 4-component vector of float)
+0:24 Sequence
+0:24 Sequence
+0:24 move second child to first child (temp highp 4-component vector of float)
+0:24 'b' (temp highp 4-component vector of float)
+0:24 'a' (in highp 4-component vector of float)
+0:25 Branch: Return with expression
+0:25 'b' (temp highp 4-component vector of float)
+0:47 Sequence
+0:47 move second child to first child (temp highp int)
+0:47 'q1' (global highp int)
+0:47 Constant:
+0:47 1 (const int)
+0:48 Sequence
+0:48 move second child to first child (temp highp int)
+0:48 'q2' (global highp int)
+0:48 Constant:
+0:48 1 (const int)
+0:49 Sequence
+0:49 move second child to first child (temp highp int)
+0:49 'q3' (global highp int)
+0:49 Constant:
+0:49 1 (const int)
+0:50 Sequence
+0:50 move second child to first child (temp highp int)
+0:50 'q4' (global highp int)
+0:50 Constant:
+0:50 1 (const int)
+0:74 Sequence
+0:74 move second child to first child (temp highp float)
+0:74 'funkyf' (global highp float)
+0:75 Constant:
+0:75 12300000000000000.000000
+0:85 Sequence
+0:84 move second child to first child (temp highp int)
+0:84 'funkyh' (global highp int)
+0:86 Constant:
+0:86 244 (const int)
+0:91 Sequence
+0:91 move second child to first child (temp highp int)
+0:91 'funkyo' (global highp int)
+0:92 Constant:
+0:92 34 (const int)
+0:96 Sequence
+0:96 move second child to first child (temp highp int)
+0:96 'c' (global highp int)
+0:97 Constant:
+0:97 11 (const int)
+0:98 Sequence
+0:98 move second child to first child (temp highp int)
+0:98 'd' (global highp int)
+0:98 Constant:
+0:98 12 (const int)
+0:107 Sequence
+0:107 move second child to first child (temp highp int)
+0:107 'bar103' (global highp int)
+0:107 Constant:
+0:107 17 (const int)
+0:113 Sequence
+0:113 move second child to first child (temp highp int)
+0:113 'bar104' (global highp int)
+0:113 Constant:
+0:113 19 (const int)
+0:119 Sequence
+0:119 move second child to first child (temp highp int)
+0:119 'bar105' (global highp int)
+0:119 Constant:
+0:119 19 (const int)
+0:122 Sequence
+0:122 move second child to first child (temp highp int)
+0:122 'bar106' (global highp int)
+0:122 Constant:
+0:122 12 (const int)
+0:123 Sequence
+0:123 move second child to first child (temp highp int)
+0:123 'bar107' (global highp int)
+0:128 Constant:
+0:128 5 (const int)
+0:131 Function Definition: foo203209409( (global void)
+0:131 Function Parameters:
+0:134 Sequence
+0:134 add second child into first child (temp highp int)
+0:133 'bar107' (global highp int)
+0:134 Constant:
+0:134 37 (const int)
+0:135 multiply second child into first child (temp highp int)
+0:135 'bar107' (global highp int)
+0:136 Constant:
+0:136 38 (const int)
+0:137 divide second child into first child (temp highp int)
+0:137 'bar107' (global highp int)
+0:138 Constant:
+0:138 39 (const int)
+0:139 add (temp highp int)
+0:139 'bar107' (global highp int)
+0:140 Constant:
+0:140 41 (const int)
+0:? Linker Objects
+0:? 'foo' (global highp float)
+0:? 'goodDecl' (global highp int)
+0:? 'a1' (const highp int)
+0:? 4 (const int)
+0:? 'a2' (const highp int)
+0:? 3 (const int)
+0:? 'a3' (const highp int)
+0:? 4 (const int)
+0:? 'a4' (const highp int)
+0:? 3 (const int)
+0:? 'q1' (global highp int)
+0:? 'q2' (global highp int)
+0:? 'q3' (global highp int)
+0:? 'q4' (global highp int)
+0:? 'abdece' (const highp int)
+0:? 10 (const int)
+0:? 'aoeuntaoehu' (const highp int)
+0:? 10 (const int)
+0:? 'funkyf' (global highp float)
+0:? 'funkyh' (global highp int)
+0:? 'funkyo' (global highp int)
+0:? 'c' (global highp int)
+0:? 'd' (global highp int)
+0:? 'bar103' (global highp int)
+0:? 'bar104' (global highp int)
+0:? 'bar105' (global highp int)
+0:? 'bar106' (global highp int)
+0:? 'bar107' (global highp int)
+0:? 'gl_VertexID' (gl_VertexId highp int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/lineContinuation100.vert.out b/chromium/third_party/glslang/src/Test/baseResults/lineContinuation100.vert.out
new file mode 100644
index 00000000000..003637d039f
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/lineContinuation100.vert.out
@@ -0,0 +1,137 @@
+lineContinuation100.vert
+WARNING: 0:3: 'line continuation' : used at end of comment, but this version does not provide line continuation
+ERROR: 0:4: '#error' : good error
+ERROR: 0:8: 'line continuation' : not supported for this version or the enabled extensions
+ERROR: 0:11: '#error' : e2
+ERROR: 0:13: 'line continuation' : not supported for this version or the enabled extensions
+ERROR: 0:14: 'line continuation' : not supported for this version or the enabled extensions
+ERROR: 0:15: 'line continuation' : not supported for this version or the enabled extensions
+ERROR: 0:18: '#error' : e3
+ERROR: 0:24: 'line continuation' : not supported for this version or the enabled extensions
+ERROR: 0:40: '\' : illegal use of escape character
+ERROR: 0:41: '@' : unexpected token
+ERROR: 0:42: '$' : unexpected token
+ERROR: 0:43: '\' : illegal use of escape character
+ERROR: 0:45: '\' : illegal use of escape character
+ERROR: 0:46: '\' : illegal use of escape character
+ERROR: 0:47: '$' : unexpected token
+ERROR: 0:48: '@' : unexpected token
+ERROR: 0:50: 'line continuation' : not supported for this version or the enabled extensions
+ERROR: 0:52: 'line continuation' : not supported for this version or the enabled extensions
+ERROR: 0:53: '#error' : bad continuation
+ERROR: 0:55: 'line continuation' : not supported for this version or the enabled extensions
+ERROR: 20 compilation errors. No code generated.
+
+
+Shader version: 100
+ERROR: node is still EOpNull!
+0:20 Function Definition: main( (global void)
+0:20 Function Parameters:
+0:20 Sequence
+0:20 move second child to first child (temp highp 4-component vector of float)
+0:20 'gl_Position' (gl_Position highp 4-component vector of float Position)
+0:20 Construct vec4 (temp highp 4-component vector of float)
+0:20 'foo' (global highp float)
+0:22 Function Definition: foo2(vf4; (global highp 4-component vector of float)
+0:22 Function Parameters:
+0:22 'a' (in highp 4-component vector of float)
+0:24 Sequence
+0:24 Sequence
+0:24 move second child to first child (temp highp 4-component vector of float)
+0:24 'b' (temp highp 4-component vector of float)
+0:24 'a' (in highp 4-component vector of float)
+0:25 Branch: Return with expression
+0:25 'b' (temp highp 4-component vector of float)
+0:45 Sequence
+0:45 move second child to first child (temp highp int)
+0:45 'q1' (global highp int)
+0:45 Constant:
+0:45 1 (const int)
+0:46 Sequence
+0:46 move second child to first child (temp highp int)
+0:46 'q2' (global highp int)
+0:46 Constant:
+0:46 1 (const int)
+0:47 Sequence
+0:47 move second child to first child (temp highp int)
+0:47 'q3' (global highp int)
+0:47 Constant:
+0:47 1 (const int)
+0:48 Sequence
+0:48 move second child to first child (temp highp int)
+0:48 'q4' (global highp int)
+0:48 Constant:
+0:48 1 (const int)
+0:? Linker Objects
+0:? 'foo' (global highp float)
+0:? 'a1' (const highp int)
+0:? 4 (const int)
+0:? 'a2' (const highp int)
+0:? 3 (const int)
+0:? 'a3' (const highp int)
+0:? 4 (const int)
+0:? 'a4' (const highp int)
+0:? 3 (const int)
+0:? 'q1' (global highp int)
+0:? 'q2' (global highp int)
+0:? 'q3' (global highp int)
+0:? 'q4' (global highp int)
+
+
+Linked vertex stage:
+
+
+Shader version: 100
+ERROR: node is still EOpNull!
+0:20 Function Definition: main( (global void)
+0:20 Function Parameters:
+0:20 Sequence
+0:20 move second child to first child (temp highp 4-component vector of float)
+0:20 'gl_Position' (gl_Position highp 4-component vector of float Position)
+0:20 Construct vec4 (temp highp 4-component vector of float)
+0:20 'foo' (global highp float)
+0:22 Function Definition: foo2(vf4; (global highp 4-component vector of float)
+0:22 Function Parameters:
+0:22 'a' (in highp 4-component vector of float)
+0:24 Sequence
+0:24 Sequence
+0:24 move second child to first child (temp highp 4-component vector of float)
+0:24 'b' (temp highp 4-component vector of float)
+0:24 'a' (in highp 4-component vector of float)
+0:25 Branch: Return with expression
+0:25 'b' (temp highp 4-component vector of float)
+0:45 Sequence
+0:45 move second child to first child (temp highp int)
+0:45 'q1' (global highp int)
+0:45 Constant:
+0:45 1 (const int)
+0:46 Sequence
+0:46 move second child to first child (temp highp int)
+0:46 'q2' (global highp int)
+0:46 Constant:
+0:46 1 (const int)
+0:47 Sequence
+0:47 move second child to first child (temp highp int)
+0:47 'q3' (global highp int)
+0:47 Constant:
+0:47 1 (const int)
+0:48 Sequence
+0:48 move second child to first child (temp highp int)
+0:48 'q4' (global highp int)
+0:48 Constant:
+0:48 1 (const int)
+0:? Linker Objects
+0:? 'foo' (global highp float)
+0:? 'a1' (const highp int)
+0:? 4 (const int)
+0:? 'a2' (const highp int)
+0:? 3 (const int)
+0:? 'a3' (const highp int)
+0:? 4 (const int)
+0:? 'a4' (const highp int)
+0:? 3 (const int)
+0:? 'q1' (global highp int)
+0:? 'q2' (global highp int)
+0:? 'q3' (global highp int)
+0:? 'q4' (global highp int)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/link1.frag.out b/chromium/third_party/glslang/src/Test/baseResults/link1.frag.out
new file mode 100644
index 00000000000..51d7475a5bf
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/link1.frag.out
@@ -0,0 +1,162 @@
+link1.frag
+Shader version: 130
+0:? Sequence
+0:8 Sequence
+0:8 move second child to first child (temp 4-component vector of float)
+0:8 'a' (global 4-component vector of float)
+0:8 vector-scale (temp 4-component vector of float)
+0:8 Constant:
+0:8 8.000000
+0:8 'uv4' (uniform 4-component vector of float)
+0:13 Function Definition: main( (global void)
+0:13 Function Parameters:
+0:17 Sequence
+0:17 move second child to first child (temp 4-component vector of float)
+0:17 'b' (global 4-component vector of float)
+0:17 vector-scale (temp 4-component vector of float)
+0:17 Constant:
+0:17 8.000000
+0:17 'a' (global 4-component vector of float)
+0:19 Function Definition: foo(mf22; (global 2-component vector of int)
+0:19 Function Parameters:
+0:19 'm' (in 2X2 matrix of float)
+0:21 Sequence
+0:21 Branch: Return with expression
+0:21 Convert float to int (temp 2-component vector of int)
+0:21 direct index (temp 2-component vector of float)
+0:21 'm' (in 2X2 matrix of float)
+0:21 Constant:
+0:21 0 (const int)
+0:24 Sequence
+0:24 move second child to first child (temp 4-component vector of float)
+0:24 'c' (global 4-component vector of float)
+0:24 component-wise multiply (temp 4-component vector of float)
+0:24 'b' (global 4-component vector of float)
+0:24 'b' (global 4-component vector of float)
+0:? Linker Objects
+0:? 'uv4' (uniform 4-component vector of float)
+0:? 'glass' (uniform 3-component vector of float)
+0:? 'ci' (const int)
+0:? 8 (const int)
+0:? 'a' (global 4-component vector of float)
+0:? 'iv3' (smooth in 3-component vector of float)
+0:? 'cup' (smooth in 4-component vector of float)
+0:? 'b' (global 4-component vector of float)
+0:? 'c' (global 4-component vector of float)
+0:? 'cv3' (const 3-component vector of float)
+0:? 43.000000
+0:? 0.340000
+0:? 9.900000
+0:? 'cv3n' (const 3-component vector of float)
+0:? 43.000000
+0:? 0.340000
+0:? 9.900000
+0:? 'cv3e' (const 3-component vector of float)
+0:? 43.000000
+0:? 0.340000
+0:? 9.900000
+0:? 'um2' (uniform 2X2 matrix of float)
+0:? 4.000000
+0:? 0.000000
+0:? 0.000000
+0:? 4.000000
+0:? 'um2n' (uniform 2X2 matrix of float)
+0:? 4.000000
+0:? 0.000000
+0:? 0.000000
+0:? 4.000000
+0:? 'um2e' (uniform 2X2 matrix of float)
+0:? 4.000000
+0:? 0.000000
+0:? 0.000000
+0:? 4.000000
+0:? 's' (uniform structure{global int a, global float b})
+0:? 82 (const int)
+0:? 3.900000
+0:? 'sn' (uniform structure{global int a, global float b})
+0:? 'se' (uniform structure{global int a, global float b})
+0:? 82 (const int)
+0:? 3.900000
+
+link2.frag
+Shader version: 130
+Requested GL_OES_standard_derivatives
+Requested GL_OES_texture_3D
+0:? Sequence
+0:8 Sequence
+0:8 move second child to first child (temp 4-component vector of float)
+0:8 'd' (global 4-component vector of float)
+0:8 vector-scale (temp 4-component vector of float)
+0:8 Constant:
+0:8 8.000000
+0:8 'uv4' (uniform 4-component vector of float)
+0:13 Sequence
+0:13 move second child to first child (temp 4-component vector of float)
+0:13 'e' (global 4-component vector of float)
+0:13 vector-scale (temp 4-component vector of float)
+0:13 Constant:
+0:13 8.000000
+0:13 'd' (global 4-component vector of float)
+0:15 Function Definition: foo( (global 2-component vector of int)
+0:15 Function Parameters:
+0:17 Sequence
+0:17 Branch: Return with expression
+0:17 Constant:
+0:17 2 (const int)
+0:17 2 (const int)
+0:20 Sequence
+0:20 move second child to first child (temp 4-component vector of float)
+0:20 'f' (global 4-component vector of float)
+0:20 component-wise multiply (temp 4-component vector of float)
+0:20 'e' (global 4-component vector of float)
+0:20 'e' (global 4-component vector of float)
+0:? Linker Objects
+0:? 'uv4' (uniform 4-component vector of float)
+0:? 'glass' (uniform 2-component vector of float)
+0:? 'ci' (const int)
+0:? 8 (const int)
+0:? 'd' (global 4-component vector of float)
+0:? 'iv3' (smooth in 3-component vector of float)
+0:? 'cup' (flat in 4-component vector of float)
+0:? 'e' (global 4-component vector of float)
+0:? 'f' (global 4-component vector of float)
+0:? 'cv3' (const 3-component vector of float)
+0:? 43.000000
+0:? 0.340000
+0:? 9.900000
+0:? 'cv3e' (const 3-component vector of float)
+0:? 43.000000
+0:? 0.340000
+0:? 2.900000
+0:? 'um2' (uniform 2X2 matrix of float)
+0:? 4.000000
+0:? 0.000000
+0:? 0.000000
+0:? 4.000000
+0:? 'um2n' (uniform 2X2 matrix of float)
+0:? 'um2e' (uniform 2X2 matrix of float)
+0:? 3.000000
+0:? 0.000000
+0:? 0.000000
+0:? 3.000000
+0:? 's' (uniform structure{global int a, global float b})
+0:? 82 (const int)
+0:? 3.900000
+0:? 'sn' (uniform structure{global int a, global float b})
+0:? 82 (const int)
+0:? 3.900000
+0:? 'se' (uniform structure{global int a, global float b})
+0:? 81 (const int)
+0:? 3.900000
+
+link3.frag
+Shader version: 300
+Requested GL_OES_EGL_image_external
+Requested GL_OES_standard_derivatives
+Requested GL_OES_texture_3D
+0:? Sequence
+0:? Linker Objects
+0:? 'iv3' (smooth in highp 2-component vector of float)
+
+ERROR: Cannot mix ES profile with non-ES profile shaders
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/localAggregates.frag.out b/chromium/third_party/glslang/src/Test/baseResults/localAggregates.frag.out
new file mode 100644
index 00000000000..2e8ae76c0bc
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/localAggregates.frag.out
@@ -0,0 +1,414 @@
+localAggregates.frag
+WARNING: 0:4: varying deprecated in version 130; may be removed in future release
+WARNING: 0:5: varying deprecated in version 130; may be removed in future release
+
+Shader version: 130
+0:? Sequence
+0:34 Function Definition: main( (global void)
+0:34 Function Parameters:
+0:? Sequence
+0:41 move second child to first child (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:41 'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:41 s2_1: direct index for structure (global structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:41 'foo3' (uniform structure{global structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
+0:41 Constant:
+0:41 0 (const int)
+0:43 Test condition and select (temp void)
+0:43 Condition
+0:43 Compare Greater Than (temp bool)
+0:43 i: direct index for structure (global int)
+0:43 s2_1: direct index for structure (global structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:43 'foo3' (uniform structure{global structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
+0:43 Constant:
+0:43 0 (const int)
+0:43 Constant:
+0:43 0 (const int)
+0:43 Constant:
+0:43 0 (const int)
+0:43 true case
+0:44 Sequence
+0:44 move second child to first child (temp float)
+0:44 f: direct index for structure (global float)
+0:44 s1_1: direct index for structure (global structure{global int i, global float f})
+0:44 'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:44 Constant:
+0:44 2 (const int)
+0:44 Constant:
+0:44 1 (const int)
+0:44 Constant:
+0:44 1.000000
+0:45 move second child to first child (temp float)
+0:45 direct index (temp float)
+0:45 'localFArray' (temp 16-element array of float)
+0:45 Constant:
+0:45 4 (const int)
+0:45 direct index (temp float)
+0:45 'coord' (smooth in 2-component vector of float)
+0:45 Constant:
+0:45 0 (const int)
+0:46 move second child to first child (temp int)
+0:46 direct index (temp int)
+0:46 'localIArray' (temp 8-element array of int)
+0:46 Constant:
+0:46 2 (const int)
+0:46 i: direct index for structure (global int)
+0:46 s2_1: direct index for structure (global structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:46 'foo3' (uniform structure{global structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
+0:46 Constant:
+0:46 0 (const int)
+0:46 Constant:
+0:46 0 (const int)
+0:43 false case
+0:48 Sequence
+0:48 move second child to first child (temp float)
+0:48 f: direct index for structure (global float)
+0:48 s1_1: direct index for structure (global structure{global int i, global float f})
+0:48 'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:48 Constant:
+0:48 2 (const int)
+0:48 Constant:
+0:48 1 (const int)
+0:48 direct index (temp float)
+0:48 'coord' (smooth in 2-component vector of float)
+0:48 Constant:
+0:48 0 (const int)
+0:49 move second child to first child (temp float)
+0:49 direct index (temp float)
+0:49 'localFArray' (temp 16-element array of float)
+0:49 Constant:
+0:49 4 (const int)
+0:49 Constant:
+0:49 1.000000
+0:50 move second child to first child (temp int)
+0:50 direct index (temp int)
+0:50 'localIArray' (temp 8-element array of int)
+0:50 Constant:
+0:50 2 (const int)
+0:50 Constant:
+0:50 0 (const int)
+0:53 Test condition and select (temp void)
+0:53 Condition
+0:53 Compare Equal (temp bool)
+0:53 direct index (temp int)
+0:53 'localIArray' (temp 8-element array of int)
+0:53 Constant:
+0:53 2 (const int)
+0:53 Constant:
+0:53 0 (const int)
+0:53 true case
+0:54 Pre-Increment (temp float)
+0:54 direct index (temp float)
+0:54 'localFArray' (temp 16-element array of float)
+0:54 Constant:
+0:54 4 (const int)
+0:57 Sequence
+0:57 move second child to first child (temp int)
+0:57 'x' (temp int)
+0:57 Constant:
+0:57 5 (const int)
+0:58 move second child to first child (temp float)
+0:58 indirect index (temp float)
+0:58 'localArray' (temp 16-element array of float)
+0:58 'x' (temp int)
+0:58 direct index (temp float)
+0:58 'coord' (smooth in 2-component vector of float)
+0:58 Constant:
+0:58 0 (const int)
+0:62 Sequence
+0:62 Sequence
+0:62 move second child to first child (temp int)
+0:62 'i' (temp int)
+0:62 Constant:
+0:62 0 (const int)
+0:62 Loop with condition tested first
+0:62 Loop Condition
+0:62 Compare Less Than (temp bool)
+0:62 'i' (temp int)
+0:62 Constant:
+0:62 16 (const int)
+0:62 Loop Body
+0:63 move second child to first child (temp float)
+0:63 indirect index (temp float)
+0:63 'a' (temp 16-element array of float)
+0:63 'i' (temp int)
+0:63 Constant:
+0:63 0.000000
+0:62 Loop Terminal Expression
+0:62 Post-Increment (temp int)
+0:62 'i' (temp int)
+0:65 Test condition and select (temp void)
+0:65 Condition
+0:65 Compare Equal (temp bool)
+0:65 'condition' (uniform int)
+0:65 Constant:
+0:65 1 (const int)
+0:65 true case
+0:66 move second child to first child (temp 16-element array of float)
+0:66 'a' (temp 16-element array of float)
+0:66 'localArray' (temp 16-element array of float)
+0:68 move second child to first child (temp 4-component vector of float)
+0:68 bleh: direct index for structure (global 4-component vector of float)
+0:68 'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:68 Constant:
+0:68 3 (const int)
+0:68 'color' (smooth in 4-component vector of float)
+0:69 move second child to first child (temp float)
+0:69 direct index (temp float)
+0:69 bleh: direct index for structure (global 4-component vector of float)
+0:69 'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:69 Constant:
+0:69 3 (const int)
+0:69 Constant:
+0:69 2 (const int)
+0:69 direct index (temp float)
+0:69 'coord' (smooth in 2-component vector of float)
+0:69 Constant:
+0:69 1 (const int)
+0:71 move second child to first child (temp 4-component vector of float)
+0:71 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:71 component-wise multiply (temp 4-component vector of float)
+0:71 vector-scale (temp 4-component vector of float)
+0:71 bleh: direct index for structure (global 4-component vector of float)
+0:71 'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:71 Constant:
+0:71 3 (const int)
+0:71 add (temp float)
+0:71 add (temp float)
+0:71 add (temp float)
+0:71 direct index (temp float)
+0:71 'localFArray' (temp 16-element array of float)
+0:71 Constant:
+0:71 4 (const int)
+0:71 f: direct index for structure (global float)
+0:71 s1_1: direct index for structure (global structure{global int i, global float f})
+0:71 'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:71 Constant:
+0:71 2 (const int)
+0:71 Constant:
+0:71 1 (const int)
+0:71 indirect index (temp float)
+0:71 'localArray' (temp 16-element array of float)
+0:71 'x' (temp int)
+0:71 indirect index (temp float)
+0:71 'a' (temp 16-element array of float)
+0:71 'x' (temp int)
+0:71 texture (global 4-component vector of float)
+0:71 'sampler' (uniform sampler2D)
+0:71 'coord' (smooth in 2-component vector of float)
+0:? Linker Objects
+0:? 'sampler' (uniform sampler2D)
+0:? 'coord' (smooth in 2-component vector of float)
+0:? 'color' (smooth in 4-component vector of float)
+0:? 'foo' (uniform structure{global int i, global float f})
+0:? 'foo2' (uniform structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:? 'foo3' (uniform structure{global structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
+0:? 'uFloatArray' (uniform 16-element array of float)
+0:? 'condition' (uniform int)
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+0:? Sequence
+0:34 Function Definition: main( (global void)
+0:34 Function Parameters:
+0:? Sequence
+0:41 move second child to first child (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:41 'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:41 s2_1: direct index for structure (global structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:41 'foo3' (uniform structure{global structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
+0:41 Constant:
+0:41 0 (const int)
+0:43 Test condition and select (temp void)
+0:43 Condition
+0:43 Compare Greater Than (temp bool)
+0:43 i: direct index for structure (global int)
+0:43 s2_1: direct index for structure (global structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:43 'foo3' (uniform structure{global structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
+0:43 Constant:
+0:43 0 (const int)
+0:43 Constant:
+0:43 0 (const int)
+0:43 Constant:
+0:43 0 (const int)
+0:43 true case
+0:44 Sequence
+0:44 move second child to first child (temp float)
+0:44 f: direct index for structure (global float)
+0:44 s1_1: direct index for structure (global structure{global int i, global float f})
+0:44 'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:44 Constant:
+0:44 2 (const int)
+0:44 Constant:
+0:44 1 (const int)
+0:44 Constant:
+0:44 1.000000
+0:45 move second child to first child (temp float)
+0:45 direct index (temp float)
+0:45 'localFArray' (temp 16-element array of float)
+0:45 Constant:
+0:45 4 (const int)
+0:45 direct index (temp float)
+0:45 'coord' (smooth in 2-component vector of float)
+0:45 Constant:
+0:45 0 (const int)
+0:46 move second child to first child (temp int)
+0:46 direct index (temp int)
+0:46 'localIArray' (temp 8-element array of int)
+0:46 Constant:
+0:46 2 (const int)
+0:46 i: direct index for structure (global int)
+0:46 s2_1: direct index for structure (global structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:46 'foo3' (uniform structure{global structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
+0:46 Constant:
+0:46 0 (const int)
+0:46 Constant:
+0:46 0 (const int)
+0:43 false case
+0:48 Sequence
+0:48 move second child to first child (temp float)
+0:48 f: direct index for structure (global float)
+0:48 s1_1: direct index for structure (global structure{global int i, global float f})
+0:48 'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:48 Constant:
+0:48 2 (const int)
+0:48 Constant:
+0:48 1 (const int)
+0:48 direct index (temp float)
+0:48 'coord' (smooth in 2-component vector of float)
+0:48 Constant:
+0:48 0 (const int)
+0:49 move second child to first child (temp float)
+0:49 direct index (temp float)
+0:49 'localFArray' (temp 16-element array of float)
+0:49 Constant:
+0:49 4 (const int)
+0:49 Constant:
+0:49 1.000000
+0:50 move second child to first child (temp int)
+0:50 direct index (temp int)
+0:50 'localIArray' (temp 8-element array of int)
+0:50 Constant:
+0:50 2 (const int)
+0:50 Constant:
+0:50 0 (const int)
+0:53 Test condition and select (temp void)
+0:53 Condition
+0:53 Compare Equal (temp bool)
+0:53 direct index (temp int)
+0:53 'localIArray' (temp 8-element array of int)
+0:53 Constant:
+0:53 2 (const int)
+0:53 Constant:
+0:53 0 (const int)
+0:53 true case
+0:54 Pre-Increment (temp float)
+0:54 direct index (temp float)
+0:54 'localFArray' (temp 16-element array of float)
+0:54 Constant:
+0:54 4 (const int)
+0:57 Sequence
+0:57 move second child to first child (temp int)
+0:57 'x' (temp int)
+0:57 Constant:
+0:57 5 (const int)
+0:58 move second child to first child (temp float)
+0:58 indirect index (temp float)
+0:58 'localArray' (temp 16-element array of float)
+0:58 'x' (temp int)
+0:58 direct index (temp float)
+0:58 'coord' (smooth in 2-component vector of float)
+0:58 Constant:
+0:58 0 (const int)
+0:62 Sequence
+0:62 Sequence
+0:62 move second child to first child (temp int)
+0:62 'i' (temp int)
+0:62 Constant:
+0:62 0 (const int)
+0:62 Loop with condition tested first
+0:62 Loop Condition
+0:62 Compare Less Than (temp bool)
+0:62 'i' (temp int)
+0:62 Constant:
+0:62 16 (const int)
+0:62 Loop Body
+0:63 move second child to first child (temp float)
+0:63 indirect index (temp float)
+0:63 'a' (temp 16-element array of float)
+0:63 'i' (temp int)
+0:63 Constant:
+0:63 0.000000
+0:62 Loop Terminal Expression
+0:62 Post-Increment (temp int)
+0:62 'i' (temp int)
+0:65 Test condition and select (temp void)
+0:65 Condition
+0:65 Compare Equal (temp bool)
+0:65 'condition' (uniform int)
+0:65 Constant:
+0:65 1 (const int)
+0:65 true case
+0:66 move second child to first child (temp 16-element array of float)
+0:66 'a' (temp 16-element array of float)
+0:66 'localArray' (temp 16-element array of float)
+0:68 move second child to first child (temp 4-component vector of float)
+0:68 bleh: direct index for structure (global 4-component vector of float)
+0:68 'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:68 Constant:
+0:68 3 (const int)
+0:68 'color' (smooth in 4-component vector of float)
+0:69 move second child to first child (temp float)
+0:69 direct index (temp float)
+0:69 bleh: direct index for structure (global 4-component vector of float)
+0:69 'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:69 Constant:
+0:69 3 (const int)
+0:69 Constant:
+0:69 2 (const int)
+0:69 direct index (temp float)
+0:69 'coord' (smooth in 2-component vector of float)
+0:69 Constant:
+0:69 1 (const int)
+0:71 move second child to first child (temp 4-component vector of float)
+0:71 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:71 component-wise multiply (temp 4-component vector of float)
+0:71 vector-scale (temp 4-component vector of float)
+0:71 bleh: direct index for structure (global 4-component vector of float)
+0:71 'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:71 Constant:
+0:71 3 (const int)
+0:71 add (temp float)
+0:71 add (temp float)
+0:71 add (temp float)
+0:71 direct index (temp float)
+0:71 'localFArray' (temp 16-element array of float)
+0:71 Constant:
+0:71 4 (const int)
+0:71 f: direct index for structure (global float)
+0:71 s1_1: direct index for structure (global structure{global int i, global float f})
+0:71 'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:71 Constant:
+0:71 2 (const int)
+0:71 Constant:
+0:71 1 (const int)
+0:71 indirect index (temp float)
+0:71 'localArray' (temp 16-element array of float)
+0:71 'x' (temp int)
+0:71 indirect index (temp float)
+0:71 'a' (temp 16-element array of float)
+0:71 'x' (temp int)
+0:71 texture (global 4-component vector of float)
+0:71 'sampler' (uniform sampler2D)
+0:71 'coord' (smooth in 2-component vector of float)
+0:? Linker Objects
+0:? 'sampler' (uniform sampler2D)
+0:? 'coord' (smooth in 2-component vector of float)
+0:? 'color' (smooth in 4-component vector of float)
+0:? 'foo' (uniform structure{global int i, global float f})
+0:? 'foo2' (uniform structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:? 'foo3' (uniform structure{global structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
+0:? 'uFloatArray' (uniform 16-element array of float)
+0:? 'condition' (uniform int)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/loops.frag.out b/chromium/third_party/glslang/src/Test/baseResults/loops.frag.out
new file mode 100644
index 00000000000..b592dbd8459
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/loops.frag.out
@@ -0,0 +1,1935 @@
+loops.frag
+WARNING: 0:14: varying deprecated in version 130; may be removed in future release
+
+Shader version: 130
+0:? Sequence
+0:53 Function Definition: main( (global void)
+0:53 Function Parameters:
+0:55 Sequence
+0:55 Sequence
+0:55 move second child to first child (temp 4-component vector of float)
+0:55 'color' (temp 4-component vector of float)
+0:55 'BaseColor' (smooth in 4-component vector of float)
+0:58 Loop with condition tested first
+0:58 Loop Condition
+0:58 Constant:
+0:58 true (const bool)
+0:58 Loop Body
+0:59 Sequence
+0:59 Test condition and select (temp void)
+0:59 Condition
+0:59 Compare Less Than (temp bool)
+0:59 direct index (temp float)
+0:59 'color' (temp 4-component vector of float)
+0:59 Constant:
+0:59 0 (const int)
+0:59 Constant:
+0:59 0.330000
+0:59 true case
+0:60 Sequence
+0:60 add second child into first child (temp 4-component vector of float)
+0:60 'color' (temp 4-component vector of float)
+0:60 Constant:
+0:60 0.330000
+0:60 0.330000
+0:60 0.330000
+0:60 0.330000
+0:61 Branch: Break
+0:63 Test condition and select (temp void)
+0:63 Condition
+0:63 Compare Less Than (temp bool)
+0:63 direct index (temp float)
+0:63 'color' (temp 4-component vector of float)
+0:63 Constant:
+0:63 0 (const int)
+0:63 Constant:
+0:63 0.660000
+0:63 true case
+0:64 Sequence
+0:64 add second child into first child (temp 4-component vector of float)
+0:64 'color' (temp 4-component vector of float)
+0:64 Constant:
+0:64 0.660000
+0:64 0.660000
+0:64 0.660000
+0:64 0.660000
+0:65 Branch: Break
+0:68 add second child into first child (temp 4-component vector of float)
+0:68 'color' (temp 4-component vector of float)
+0:68 Constant:
+0:68 0.330000
+0:68 0.330000
+0:68 0.330000
+0:68 0.330000
+0:69 Branch: Break
+0:73 Loop with condition tested first
+0:73 Loop Condition
+0:73 Compare Less Than (temp bool)
+0:73 direct index (temp float)
+0:73 'color' (temp 4-component vector of float)
+0:73 Constant:
+0:73 0 (const int)
+0:73 'd' (uniform float)
+0:73 Loop Body
+0:74 Sequence
+0:74 add second child into first child (temp 4-component vector of float)
+0:74 'color' (temp 4-component vector of float)
+0:74 'bigColor' (uniform 4-component vector of float)
+0:78 Loop with condition tested first
+0:78 Loop Condition
+0:78 Compare Less Than (temp bool)
+0:78 direct index (temp float)
+0:78 'color' (temp 4-component vector of float)
+0:78 Constant:
+0:78 2 (const int)
+0:78 'd' (uniform float)
+0:78 Loop Body
+0:79 Sequence
+0:79 add second child into first child (temp 4-component vector of float)
+0:79 'color' (temp 4-component vector of float)
+0:79 'bigColor1_1' (uniform 4-component vector of float)
+0:80 Test condition and select (temp void)
+0:80 Condition
+0:80 Compare Less Than (temp bool)
+0:80 direct index (temp float)
+0:80 'color' (temp 4-component vector of float)
+0:80 Constant:
+0:80 3 (const int)
+0:80 'd' (uniform float)
+0:80 true case
+0:81 Branch: Continue
+0:83 add second child into first child (temp 4-component vector of float)
+0:83 'color' (temp 4-component vector of float)
+0:83 'bigColor1_1' (uniform 4-component vector of float)
+0:87 Loop with condition tested first
+0:87 Loop Condition
+0:87 Compare Less Than (temp bool)
+0:87 direct index (temp float)
+0:87 'color' (temp 4-component vector of float)
+0:87 Constant:
+0:87 0 (const int)
+0:87 Constant:
+0:87 42.000000
+0:87 Loop Body
+0:88 Sequence
+0:88 Pre-Increment (temp 4-component vector of float)
+0:88 'color' (temp 4-component vector of float)
+0:92 Loop with condition tested first
+0:92 Loop Condition
+0:92 logical-and (temp bool)
+0:92 Compare Less Than (temp bool)
+0:92 direct index (temp float)
+0:92 'color' (temp 4-component vector of float)
+0:92 Constant:
+0:92 3 (const int)
+0:92 'd2' (uniform float)
+0:92 Compare Less Than (temp bool)
+0:92 direct index (temp float)
+0:92 'color' (temp 4-component vector of float)
+0:92 Constant:
+0:92 1 (const int)
+0:92 'd3' (uniform float)
+0:92 Loop Body
+0:93 Sequence
+0:93 add second child into first child (temp 4-component vector of float)
+0:93 'color' (temp 4-component vector of float)
+0:93 'bigColor1_2' (uniform 4-component vector of float)
+0:97 Loop with condition tested first
+0:97 Loop Condition
+0:97 Compare Less Than (temp bool)
+0:97 direct index (temp float)
+0:97 'color' (temp 4-component vector of float)
+0:97 Constant:
+0:97 2 (const int)
+0:97 'd3' (uniform float)
+0:97 Loop Body
+0:98 Sequence
+0:98 add second child into first child (temp 4-component vector of float)
+0:98 'color' (temp 4-component vector of float)
+0:98 'bigColor1_3' (uniform 4-component vector of float)
+0:99 Test condition and select (temp void)
+0:99 Condition
+0:99 Compare Less Than (temp bool)
+0:99 direct index (temp float)
+0:99 'color' (temp 4-component vector of float)
+0:99 Constant:
+0:99 1 (const int)
+0:99 'd4' (uniform float)
+0:99 true case
+0:100 Branch: Break
+0:101 add second child into first child (temp 4-component vector of float)
+0:101 'color' (temp 4-component vector of float)
+0:101 'bigColor1_3' (uniform 4-component vector of float)
+0:105 Sequence
+0:105 Sequence
+0:105 move second child to first child (temp int)
+0:105 'i' (temp int)
+0:105 Constant:
+0:105 0 (const int)
+0:105 Loop with condition tested first
+0:105 Loop Condition
+0:105 Compare Less Than (temp bool)
+0:105 'i' (temp int)
+0:105 'Count' (uniform int)
+0:105 Loop Body
+0:106 Sequence
+0:106 add second child into first child (temp 4-component vector of float)
+0:106 'color' (temp 4-component vector of float)
+0:106 'bigColor2' (uniform 4-component vector of float)
+0:105 Loop Terminal Expression
+0:105 Pre-Increment (temp int)
+0:105 'i' (temp int)
+0:112 Loop with condition not tested first
+0:112 Loop Condition
+0:112 Compare Less Than (temp bool)
+0:112 direct index (temp float)
+0:112 'color' (temp 4-component vector of float)
+0:112 Constant:
+0:112 0 (const int)
+0:112 'd2' (uniform float)
+0:112 Loop Body
+0:111 Sequence
+0:111 add second child into first child (temp 4-component vector of float)
+0:111 'color' (temp 4-component vector of float)
+0:111 'bigColor3' (uniform 4-component vector of float)
+0:115 Sequence
+0:115 Sequence
+0:115 move second child to first child (temp int)
+0:115 'i' (temp int)
+0:115 Constant:
+0:115 0 (const int)
+0:115 Loop with condition tested first
+0:115 Loop Condition
+0:115 Compare Less Than (temp bool)
+0:115 'i' (temp int)
+0:115 Constant:
+0:115 42 (const int)
+0:115 Loop Body
+0:116 Sequence
+0:116 add second child into first child (temp float)
+0:116 direct index (temp float)
+0:116 'color' (temp 4-component vector of float)
+0:116 Constant:
+0:116 2 (const int)
+0:116 'd3' (uniform float)
+0:115 Loop Terminal Expression
+0:115 Pre-Increment (temp int)
+0:115 'i' (temp int)
+0:120 Sequence
+0:120 Sequence
+0:120 move second child to first child (temp int)
+0:120 'i' (temp int)
+0:120 Constant:
+0:120 0 (const int)
+0:120 Loop with condition tested first
+0:120 Loop Condition
+0:120 Compare Less Than (temp bool)
+0:120 'i' (temp int)
+0:120 Constant:
+0:120 100 (const int)
+0:120 Loop Body
+0:121 Sequence
+0:121 Test condition and select (temp void)
+0:121 Condition
+0:121 Compare Less Than (temp bool)
+0:121 direct index (temp float)
+0:121 'color' (temp 4-component vector of float)
+0:121 Constant:
+0:121 2 (const int)
+0:121 Constant:
+0:121 20.000000
+0:121 true case
+0:122 Post-Increment (temp float)
+0:122 direct index (temp float)
+0:122 'color' (temp 4-component vector of float)
+0:122 Constant:
+0:122 0 (const int)
+0:121 false case
+0:124 Post-Increment (temp float)
+0:124 direct index (temp float)
+0:124 'color' (temp 4-component vector of float)
+0:124 Constant:
+0:124 1 (const int)
+0:125 Test condition and select (temp void)
+0:125 Condition
+0:125 Compare Less Than (temp bool)
+0:125 direct index (temp float)
+0:125 'color' (temp 4-component vector of float)
+0:125 Constant:
+0:125 3 (const int)
+0:125 Constant:
+0:125 20.000000
+0:125 true case
+0:126 Test condition and select (temp void)
+0:126 Condition
+0:126 Compare Greater Than (temp bool)
+0:126 direct index (temp float)
+0:126 'color' (temp 4-component vector of float)
+0:126 Constant:
+0:126 2 (const int)
+0:126 direct index (temp float)
+0:126 'color' (temp 4-component vector of float)
+0:126 Constant:
+0:126 1 (const int)
+0:126 true case
+0:127 Constant:
+0:127 0 (const int)
+0:120 Loop Terminal Expression
+0:120 Pre-Increment (temp int)
+0:120 'i' (temp int)
+0:131 Sequence
+0:131 Sequence
+0:131 move second child to first child (temp int)
+0:131 'i' (temp int)
+0:131 Constant:
+0:131 0 (const int)
+0:131 Loop with condition tested first
+0:131 Loop Condition
+0:131 Compare Less Than (temp bool)
+0:131 'i' (temp int)
+0:131 Constant:
+0:131 120 (const int)
+0:131 Loop Body
+0:132 Sequence
+0:132 Test condition and select (temp void)
+0:132 Condition
+0:132 Compare Less Than (temp bool)
+0:132 direct index (temp float)
+0:132 'color' (temp 4-component vector of float)
+0:132 Constant:
+0:132 2 (const int)
+0:132 Constant:
+0:132 20.000000
+0:132 true case
+0:133 Post-Increment (temp float)
+0:133 direct index (temp float)
+0:133 'color' (temp 4-component vector of float)
+0:133 Constant:
+0:133 0 (const int)
+0:132 false case
+0:135 Post-Increment (temp float)
+0:135 direct index (temp float)
+0:135 'color' (temp 4-component vector of float)
+0:135 Constant:
+0:135 1 (const int)
+0:131 Loop Terminal Expression
+0:131 Pre-Increment (temp int)
+0:131 'i' (temp int)
+0:139 Sequence
+0:139 Sequence
+0:139 move second child to first child (temp int)
+0:139 'i' (temp int)
+0:139 Constant:
+0:139 0 (const int)
+0:139 Loop with condition tested first
+0:139 Loop Condition
+0:139 Compare Less Than (temp bool)
+0:139 'i' (temp int)
+0:139 Constant:
+0:139 42 (const int)
+0:139 Loop Body
+0:140 Sequence
+0:140 add second child into first child (temp float)
+0:140 direct index (temp float)
+0:140 'color' (temp 4-component vector of float)
+0:140 Constant:
+0:140 2 (const int)
+0:140 'd3' (uniform float)
+0:141 Test condition and select (temp void)
+0:141 Condition
+0:141 Compare Less Than (temp bool)
+0:141 direct index (temp float)
+0:141 'color' (temp 4-component vector of float)
+0:141 Constant:
+0:141 0 (const int)
+0:141 'd4' (uniform float)
+0:141 true case
+0:142 Branch: Continue
+0:143 Pre-Increment (temp float)
+0:143 direct index (temp float)
+0:143 'color' (temp 4-component vector of float)
+0:143 Constant:
+0:143 3 (const int)
+0:139 Loop Terminal Expression
+0:139 Pre-Increment (temp int)
+0:139 'i' (temp int)
+0:147 Sequence
+0:147 Sequence
+0:147 move second child to first child (temp int)
+0:147 'i' (temp int)
+0:147 Constant:
+0:147 0 (const int)
+0:147 Loop with condition tested first
+0:147 Loop Condition
+0:147 Compare Less Than (temp bool)
+0:147 'i' (temp int)
+0:147 Constant:
+0:147 42 (const int)
+0:147 Loop Body
+0:148 Sequence
+0:148 add second child into first child (temp float)
+0:148 direct index (temp float)
+0:148 'color' (temp 4-component vector of float)
+0:148 Constant:
+0:148 2 (const int)
+0:148 'd3' (uniform float)
+0:149 Test condition and select (temp void)
+0:149 Condition
+0:149 Compare Less Than (temp bool)
+0:149 direct index (temp float)
+0:149 'color' (temp 4-component vector of float)
+0:149 Constant:
+0:149 0 (const int)
+0:149 'd4' (uniform float)
+0:149 true case
+0:150 Branch: Break
+0:151 Pre-Increment (temp float)
+0:151 direct index (temp float)
+0:151 'color' (temp 4-component vector of float)
+0:151 Constant:
+0:151 3 (const int)
+0:147 Loop Terminal Expression
+0:147 Pre-Increment (temp int)
+0:147 'i' (temp int)
+0:163 Loop with condition not tested first
+0:163 Loop Condition
+0:163 Compare Less Than (temp bool)
+0:163 direct index (temp float)
+0:163 'color' (temp 4-component vector of float)
+0:163 Constant:
+0:163 2 (const int)
+0:163 'd4' (uniform float)
+0:163 Loop Body
+0:156 Sequence
+0:156 add second child into first child (temp 4-component vector of float)
+0:156 'color' (temp 4-component vector of float)
+0:156 'bigColor4' (uniform 4-component vector of float)
+0:157 Test condition and select (temp void)
+0:157 Condition
+0:157 Compare Less Than (temp bool)
+0:157 direct index (temp float)
+0:157 'color' (temp 4-component vector of float)
+0:157 Constant:
+0:157 0 (const int)
+0:157 'd4' (uniform float)
+0:157 true case
+0:158 Branch: Continue
+0:159 Test condition and select (temp void)
+0:159 Condition
+0:159 Compare Less Than (temp bool)
+0:159 direct index (temp float)
+0:159 'color' (temp 4-component vector of float)
+0:159 Constant:
+0:159 1 (const int)
+0:159 'd4' (uniform float)
+0:159 true case
+0:160 add second child into first child (temp float)
+0:160 direct index (temp float)
+0:160 'color' (temp 4-component vector of float)
+0:160 Constant:
+0:160 1 (const int)
+0:160 'd4' (uniform float)
+0:159 false case
+0:162 add second child into first child (temp float)
+0:162 direct index (temp float)
+0:162 'color' (temp 4-component vector of float)
+0:162 Constant:
+0:162 0 (const int)
+0:162 'd4' (uniform float)
+0:170 Loop with condition not tested first
+0:170 Loop Condition
+0:170 Compare Less Than (temp bool)
+0:170 direct index (temp float)
+0:170 'color' (temp 4-component vector of float)
+0:170 Constant:
+0:170 0 (const int)
+0:170 'd5' (uniform float)
+0:170 Loop Body
+0:167 Sequence
+0:167 add second child into first child (temp 4-component vector of float)
+0:167 'color' (temp 4-component vector of float)
+0:167 'bigColor5' (uniform 4-component vector of float)
+0:168 Test condition and select (temp void)
+0:168 Condition
+0:168 Compare Less Than (temp bool)
+0:168 direct index (temp float)
+0:168 'color' (temp 4-component vector of float)
+0:168 Constant:
+0:168 1 (const int)
+0:168 'd5' (uniform float)
+0:168 true case
+0:169 add second child into first child (temp float)
+0:169 direct index (temp float)
+0:169 'color' (temp 4-component vector of float)
+0:169 Constant:
+0:169 1 (const int)
+0:169 'd5' (uniform float)
+0:173 Test condition and select (temp void)
+0:173 Condition
+0:173 Compare Less Than (temp bool)
+0:173 direct index (temp float)
+0:173 'color' (temp 4-component vector of float)
+0:173 Constant:
+0:173 0 (const int)
+0:173 'd6' (uniform float)
+0:173 true case
+0:174 Sequence
+0:174 Loop with condition tested first
+0:174 Loop Condition
+0:174 Compare Less Than (temp bool)
+0:174 direct index (temp float)
+0:174 'color' (temp 4-component vector of float)
+0:174 Constant:
+0:174 1 (const int)
+0:174 'd6' (uniform float)
+0:174 Loop Body
+0:175 add second child into first child (temp 4-component vector of float)
+0:175 'color' (temp 4-component vector of float)
+0:175 'bigColor6' (uniform 4-component vector of float)
+0:173 false case
+0:177 Sequence
+0:177 Loop with condition tested first
+0:177 Loop Condition
+0:177 Compare Less Than (temp bool)
+0:177 direct index (temp float)
+0:177 'color' (temp 4-component vector of float)
+0:177 Constant:
+0:177 2 (const int)
+0:177 'd6' (uniform float)
+0:177 Loop Body
+0:178 add second child into first child (temp float)
+0:178 direct index (temp float)
+0:178 'color' (temp 4-component vector of float)
+0:178 Constant:
+0:178 2 (const int)
+0:178 direct index (temp float)
+0:178 'bigColor6' (uniform 4-component vector of float)
+0:178 Constant:
+0:178 2 (const int)
+0:182 Test condition and select (temp void)
+0:182 Condition
+0:182 Compare Less Than (temp bool)
+0:182 direct index (temp float)
+0:182 'color' (temp 4-component vector of float)
+0:182 Constant:
+0:182 0 (const int)
+0:182 'd6' (uniform float)
+0:182 true case
+0:183 Sequence
+0:183 Loop with condition tested first
+0:183 Loop Condition
+0:183 Compare Less Than (temp bool)
+0:183 direct index (temp float)
+0:183 'color' (temp 4-component vector of float)
+0:183 Constant:
+0:183 1 (const int)
+0:183 'd6' (uniform float)
+0:183 Loop Body
+0:184 Sequence
+0:184 add second child into first child (temp 4-component vector of float)
+0:184 'color' (temp 4-component vector of float)
+0:184 'bigColor6' (uniform 4-component vector of float)
+0:185 Test condition and select (temp void)
+0:185 Condition
+0:185 Compare Less Than (temp bool)
+0:185 'd7' (uniform float)
+0:185 Constant:
+0:185 1.000000
+0:185 true case
+0:186 Branch: Break
+0:182 false case
+0:190 Sequence
+0:190 Loop with condition tested first
+0:190 Loop Condition
+0:190 Compare Less Than (temp bool)
+0:190 direct index (temp float)
+0:190 'color' (temp 4-component vector of float)
+0:190 Constant:
+0:190 2 (const int)
+0:190 'd6' (uniform float)
+0:190 Loop Body
+0:191 add second child into first child (temp float)
+0:191 direct index (temp float)
+0:191 'color' (temp 4-component vector of float)
+0:191 Constant:
+0:191 2 (const int)
+0:191 direct index (temp float)
+0:191 'bigColor6' (uniform 4-component vector of float)
+0:191 Constant:
+0:191 2 (const int)
+0:209 Loop with condition not tested first
+0:209 Loop Condition
+0:209 Constant:
+0:209 true (const bool)
+0:209 Loop Body
+0:197 Sequence
+0:197 Test condition and select (temp void)
+0:197 Condition
+0:197 Compare Less Than (temp bool)
+0:197 'd7' (uniform float)
+0:197 Constant:
+0:197 0.000000
+0:197 true case
+0:198 Branch: Break
+0:200 add second child into first child (temp 4-component vector of float)
+0:200 'color' (temp 4-component vector of float)
+0:200 'bigColor7' (uniform 4-component vector of float)
+0:202 Test condition and select (temp void)
+0:202 Condition
+0:202 Compare Less Than (temp bool)
+0:202 'd7' (uniform float)
+0:202 Constant:
+0:202 1.000000
+0:202 true case
+0:203 Sequence
+0:203 Post-Increment (temp float)
+0:203 direct index (temp float)
+0:203 'color' (temp 4-component vector of float)
+0:203 Constant:
+0:203 2 (const int)
+0:204 Branch: Break
+0:207 add second child into first child (temp 4-component vector of float)
+0:207 'color' (temp 4-component vector of float)
+0:207 'BaseColor' (smooth in 4-component vector of float)
+0:234 Loop with condition not tested first
+0:234 Loop Condition
+0:234 Compare Less Than (temp bool)
+0:234 direct index (temp float)
+0:234 'color' (temp 4-component vector of float)
+0:234 Constant:
+0:234 2 (const int)
+0:234 'd8' (uniform float)
+0:234 Loop Body
+0:217 Sequence
+0:217 Test condition and select (temp void)
+0:217 Condition
+0:217 Compare Less Than (temp bool)
+0:217 'd8' (uniform float)
+0:217 Constant:
+0:217 0.000000
+0:217 true case
+0:218 Branch: Break
+0:220 add second child into first child (temp 4-component vector of float)
+0:220 'color' (temp 4-component vector of float)
+0:220 'bigColor7' (uniform 4-component vector of float)
+0:222 Test condition and select (temp void)
+0:222 Condition
+0:222 Compare Less Than (temp bool)
+0:222 'd8' (uniform float)
+0:222 Constant:
+0:222 1.000000
+0:222 true case
+0:223 Sequence
+0:223 Post-Increment (temp float)
+0:223 direct index (temp float)
+0:223 'color' (temp 4-component vector of float)
+0:223 Constant:
+0:223 2 (const int)
+0:224 Test condition and select (temp void)
+0:224 Condition
+0:224 Compare Less Than (temp bool)
+0:224 'd8' (uniform float)
+0:224 Constant:
+0:224 2.000000
+0:224 true case
+0:225 Sequence
+0:225 Post-Increment (temp float)
+0:225 direct index (temp float)
+0:225 'color' (temp 4-component vector of float)
+0:225 Constant:
+0:225 1 (const int)
+0:224 false case
+0:227 Sequence
+0:227 Post-Increment (temp float)
+0:227 direct index (temp float)
+0:227 'color' (temp 4-component vector of float)
+0:227 Constant:
+0:227 0 (const int)
+0:229 Branch: Break
+0:232 add second child into first child (temp 4-component vector of float)
+0:232 'color' (temp 4-component vector of float)
+0:232 'BaseColor' (smooth in 4-component vector of float)
+0:237 Loop with condition tested first
+0:237 Loop Condition
+0:237 Compare Less Than (temp bool)
+0:237 direct index (temp float)
+0:237 'color' (temp 4-component vector of float)
+0:237 Constant:
+0:237 3 (const int)
+0:237 'd9' (uniform float)
+0:237 Loop Body
+0:238 Sequence
+0:238 Test condition and select (temp void)
+0:238 Condition
+0:238 Compare Greater Than (temp bool)
+0:238 'd9' (uniform float)
+0:238 'd8' (uniform float)
+0:238 true case
+0:239 Sequence
+0:239 Test condition and select (temp void)
+0:239 Condition
+0:239 Compare Less Than or Equal (temp bool)
+0:239 direct index (temp float)
+0:239 'color' (temp 4-component vector of float)
+0:239 Constant:
+0:239 0 (const int)
+0:239 'd7' (uniform float)
+0:239 true case
+0:240 Sequence
+0:240 Test condition and select (temp void)
+0:240 Condition
+0:240 Compare Equal (temp bool)
+0:240 direct index (temp float)
+0:240 'color' (temp 4-component vector of float)
+0:240 Constant:
+0:240 2 (const int)
+0:240 Constant:
+0:240 5.000000
+0:240 true case
+0:241 Post-Increment (temp float)
+0:241 direct index (temp float)
+0:241 'color' (temp 4-component vector of float)
+0:241 Constant:
+0:241 3 (const int)
+0:240 false case
+0:243 Branch: Break
+0:250 Loop with condition tested first
+0:250 Loop Condition
+0:250 Compare Less Than (temp bool)
+0:250 direct index (temp float)
+0:250 'color' (temp 4-component vector of float)
+0:250 Constant:
+0:250 2 (const int)
+0:250 'd10' (uniform float)
+0:250 Loop Body
+0:251 Sequence
+0:251 Post-Increment (temp float)
+0:251 direct index (temp float)
+0:251 'color' (temp 4-component vector of float)
+0:251 Constant:
+0:251 1 (const int)
+0:252 Test condition and select (temp void)
+0:252 Condition
+0:252 Compare Less Than (temp bool)
+0:252 direct index (temp float)
+0:252 'color' (temp 4-component vector of float)
+0:252 Constant:
+0:252 1 (const int)
+0:252 'd11' (uniform float)
+0:252 true case
+0:253 Sequence
+0:253 Post-Increment (temp float)
+0:253 direct index (temp float)
+0:253 'color' (temp 4-component vector of float)
+0:253 Constant:
+0:253 2 (const int)
+0:254 Test condition and select (temp void)
+0:254 Condition
+0:254 Compare Less Than (temp bool)
+0:254 direct index (temp float)
+0:254 'color' (temp 4-component vector of float)
+0:254 Constant:
+0:254 3 (const int)
+0:254 'd12' (uniform float)
+0:254 true case
+0:255 Post-Increment (temp float)
+0:255 direct index (temp float)
+0:255 'color' (temp 4-component vector of float)
+0:255 Constant:
+0:255 3 (const int)
+0:254 false case
+0:257 Post-Increment (temp float)
+0:257 direct index (temp float)
+0:257 'color' (temp 4-component vector of float)
+0:257 Constant:
+0:257 0 (const int)
+0:258 Branch: Continue
+0:261 Post-Increment (temp 4-component vector of float)
+0:261 'color' (temp 4-component vector of float)
+0:262 Branch: Break
+0:266 Loop with condition tested first
+0:266 Loop Condition
+0:266 Compare Less Than (temp bool)
+0:266 direct index (temp float)
+0:266 'color' (temp 4-component vector of float)
+0:266 Constant:
+0:266 0 (const int)
+0:266 Constant:
+0:266 10.000000
+0:266 Loop Body
+0:267 Sequence
+0:267 add second child into first child (temp 4-component vector of float)
+0:267 'color' (temp 4-component vector of float)
+0:267 'bigColor8' (uniform 4-component vector of float)
+0:269 Test condition and select (temp void)
+0:269 Condition
+0:269 Compare Less Than (temp bool)
+0:269 direct index (temp float)
+0:269 'color' (temp 4-component vector of float)
+0:269 Constant:
+0:269 2 (const int)
+0:269 'd8' (uniform float)
+0:269 true case
+0:270 Test condition and select (temp void)
+0:270 Condition
+0:270 Compare Less Than (temp bool)
+0:270 direct index (temp float)
+0:270 'color' (temp 4-component vector of float)
+0:270 Constant:
+0:270 3 (const int)
+0:270 'd6' (uniform float)
+0:270 true case
+0:271 Branch: Continue
+0:273 add second child into first child (temp float)
+0:273 direct index (temp float)
+0:273 'color' (temp 4-component vector of float)
+0:273 Constant:
+0:273 1 (const int)
+0:273 direct index (temp float)
+0:273 'bigColor8' (uniform 4-component vector of float)
+0:273 Constant:
+0:273 0 (const int)
+0:276 Post-Increment (temp 4-component vector of float)
+0:276 'color' (temp 4-component vector of float)
+0:277 move second child to first child (temp 4-component vector of float)
+0:277 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:277 'color' (temp 4-component vector of float)
+0:280 Loop with condition tested first
+0:280 Loop Condition
+0:280 Compare Less Than (temp bool)
+0:280 direct index (temp float)
+0:280 'color' (temp 4-component vector of float)
+0:280 Constant:
+0:280 0 (const int)
+0:280 'd14' (uniform float)
+0:280 Loop Body
+0:281 Sequence
+0:281 Test condition and select (temp void)
+0:281 Condition
+0:281 Compare Less Than (temp bool)
+0:281 direct index (temp float)
+0:281 'color' (temp 4-component vector of float)
+0:281 Constant:
+0:281 1 (const int)
+0:281 'd15' (uniform float)
+0:281 true case
+0:282 Sequence
+0:282 Branch: Return
+0:281 false case
+0:285 Post-Increment (temp 4-component vector of float)
+0:285 'color' (temp 4-component vector of float)
+0:288 Post-Increment (temp 4-component vector of float)
+0:288 'color' (temp 4-component vector of float)
+0:290 Loop with condition tested first
+0:290 Loop Condition
+0:290 Compare Less Than (temp bool)
+0:290 direct index (temp float)
+0:290 'color' (temp 4-component vector of float)
+0:290 Constant:
+0:290 3 (const int)
+0:290 'd16' (uniform float)
+0:290 Loop Body
+0:291 Sequence
+0:291 Post-Increment (temp float)
+0:291 direct index (temp float)
+0:291 'color' (temp 4-component vector of float)
+0:291 Constant:
+0:291 3 (const int)
+0:296 Loop with condition tested first
+0:296 Loop Condition
+0:296 logical-and (temp bool)
+0:296 Compare Less Than (temp bool)
+0:296 direct index (temp float)
+0:296 'color' (temp 4-component vector of float)
+0:296 Constant:
+0:296 3 (const int)
+0:296 'd2' (uniform float)
+0:296 Compare Less Than (temp bool)
+0:296 direct index (temp float)
+0:296 'color' (temp 4-component vector of float)
+0:296 Constant:
+0:296 1 (const int)
+0:296 'd3' (uniform float)
+0:296 Loop Body
+0:297 Sequence
+0:297 add second child into first child (temp 4-component vector of float)
+0:297 'color' (temp 4-component vector of float)
+0:297 'bigColor1_2' (uniform 4-component vector of float)
+0:298 Test condition and select (temp void)
+0:298 Condition
+0:298 Compare Less Than (temp bool)
+0:298 direct index (temp float)
+0:298 'color' (temp 4-component vector of float)
+0:298 Constant:
+0:298 2 (const int)
+0:298 'd3' (uniform float)
+0:298 true case
+0:299 Branch: Return
+0:307 Loop with condition not tested first
+0:307 Loop Condition
+0:307 Compare Less Than (temp bool)
+0:307 direct index (temp float)
+0:307 'color' (temp 4-component vector of float)
+0:307 Constant:
+0:307 0 (const int)
+0:307 'd17' (uniform float)
+0:307 Loop Body
+0:304 Sequence
+0:304 Test condition and select (temp void)
+0:304 Condition
+0:304 Compare Less Than (temp bool)
+0:304 direct index (temp float)
+0:304 'color' (temp 4-component vector of float)
+0:304 Constant:
+0:304 1 (const int)
+0:304 'd18' (uniform float)
+0:304 true case
+0:305 Branch: Return
+0:306 Post-Increment (temp 4-component vector of float)
+0:306 'color' (temp 4-component vector of float)
+0:310 Loop with condition tested first
+0:310 Loop Condition
+0:310 Compare Less Than (temp bool)
+0:310 direct index (temp float)
+0:310 'color' (temp 4-component vector of float)
+0:310 Constant:
+0:310 1 (const int)
+0:310 'd16' (uniform float)
+0:310 Loop Body
+0:311 Sequence
+0:311 Test condition and select (temp void)
+0:311 Condition
+0:311 Compare Less Than (temp bool)
+0:311 direct index (temp float)
+0:311 'color' (temp 4-component vector of float)
+0:311 Constant:
+0:311 3 (const int)
+0:311 'd16' (uniform float)
+0:311 true case
+0:312 Sequence
+0:312 Branch: Kill
+0:311 false case
+0:314 Post-Increment (temp 4-component vector of float)
+0:314 'color' (temp 4-component vector of float)
+0:317 Post-Increment (temp 4-component vector of float)
+0:317 'color' (temp 4-component vector of float)
+0:319 move second child to first child (temp 4-component vector of float)
+0:319 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:319 'color' (temp 4-component vector of float)
+0:? Linker Objects
+0:? 'bigColor' (uniform 4-component vector of float)
+0:? 'bigColor1_1' (uniform 4-component vector of float)
+0:? 'bigColor1_2' (uniform 4-component vector of float)
+0:? 'bigColor1_3' (uniform 4-component vector of float)
+0:? 'bigColor2' (uniform 4-component vector of float)
+0:? 'bigColor3' (uniform 4-component vector of float)
+0:? 'bigColor4' (uniform 4-component vector of float)
+0:? 'bigColor5' (uniform 4-component vector of float)
+0:? 'bigColor6' (uniform 4-component vector of float)
+0:? 'bigColor7' (uniform 4-component vector of float)
+0:? 'bigColor8' (uniform 4-component vector of float)
+0:? 'BaseColor' (smooth in 4-component vector of float)
+0:? 'd' (uniform float)
+0:? 'd2' (uniform float)
+0:? 'd3' (uniform float)
+0:? 'd4' (uniform float)
+0:? 'd5' (uniform float)
+0:? 'd6' (uniform float)
+0:? 'd7' (uniform float)
+0:? 'd8' (uniform float)
+0:? 'd9' (uniform float)
+0:? 'd10' (uniform float)
+0:? 'd11' (uniform float)
+0:? 'd12' (uniform float)
+0:? 'd13' (uniform float)
+0:? 'd14' (uniform float)
+0:? 'd15' (uniform float)
+0:? 'd16' (uniform float)
+0:? 'd17' (uniform float)
+0:? 'd18' (uniform float)
+0:? 'd19' (uniform float)
+0:? 'd20' (uniform float)
+0:? 'd21' (uniform float)
+0:? 'd22' (uniform float)
+0:? 'd23' (uniform float)
+0:? 'd24' (uniform float)
+0:? 'd25' (uniform float)
+0:? 'd26' (uniform float)
+0:? 'd27' (uniform float)
+0:? 'd28' (uniform float)
+0:? 'd29' (uniform float)
+0:? 'd30' (uniform float)
+0:? 'd31' (uniform float)
+0:? 'd32' (uniform float)
+0:? 'd33' (uniform float)
+0:? 'd34' (uniform float)
+0:? 'Count' (uniform int)
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+0:? Sequence
+0:53 Function Definition: main( (global void)
+0:53 Function Parameters:
+0:55 Sequence
+0:55 Sequence
+0:55 move second child to first child (temp 4-component vector of float)
+0:55 'color' (temp 4-component vector of float)
+0:55 'BaseColor' (smooth in 4-component vector of float)
+0:58 Loop with condition tested first
+0:58 Loop Condition
+0:58 Constant:
+0:58 true (const bool)
+0:58 Loop Body
+0:59 Sequence
+0:59 Test condition and select (temp void)
+0:59 Condition
+0:59 Compare Less Than (temp bool)
+0:59 direct index (temp float)
+0:59 'color' (temp 4-component vector of float)
+0:59 Constant:
+0:59 0 (const int)
+0:59 Constant:
+0:59 0.330000
+0:59 true case
+0:60 Sequence
+0:60 add second child into first child (temp 4-component vector of float)
+0:60 'color' (temp 4-component vector of float)
+0:60 Constant:
+0:60 0.330000
+0:60 0.330000
+0:60 0.330000
+0:60 0.330000
+0:61 Branch: Break
+0:63 Test condition and select (temp void)
+0:63 Condition
+0:63 Compare Less Than (temp bool)
+0:63 direct index (temp float)
+0:63 'color' (temp 4-component vector of float)
+0:63 Constant:
+0:63 0 (const int)
+0:63 Constant:
+0:63 0.660000
+0:63 true case
+0:64 Sequence
+0:64 add second child into first child (temp 4-component vector of float)
+0:64 'color' (temp 4-component vector of float)
+0:64 Constant:
+0:64 0.660000
+0:64 0.660000
+0:64 0.660000
+0:64 0.660000
+0:65 Branch: Break
+0:68 add second child into first child (temp 4-component vector of float)
+0:68 'color' (temp 4-component vector of float)
+0:68 Constant:
+0:68 0.330000
+0:68 0.330000
+0:68 0.330000
+0:68 0.330000
+0:69 Branch: Break
+0:73 Loop with condition tested first
+0:73 Loop Condition
+0:73 Compare Less Than (temp bool)
+0:73 direct index (temp float)
+0:73 'color' (temp 4-component vector of float)
+0:73 Constant:
+0:73 0 (const int)
+0:73 'd' (uniform float)
+0:73 Loop Body
+0:74 Sequence
+0:74 add second child into first child (temp 4-component vector of float)
+0:74 'color' (temp 4-component vector of float)
+0:74 'bigColor' (uniform 4-component vector of float)
+0:78 Loop with condition tested first
+0:78 Loop Condition
+0:78 Compare Less Than (temp bool)
+0:78 direct index (temp float)
+0:78 'color' (temp 4-component vector of float)
+0:78 Constant:
+0:78 2 (const int)
+0:78 'd' (uniform float)
+0:78 Loop Body
+0:79 Sequence
+0:79 add second child into first child (temp 4-component vector of float)
+0:79 'color' (temp 4-component vector of float)
+0:79 'bigColor1_1' (uniform 4-component vector of float)
+0:80 Test condition and select (temp void)
+0:80 Condition
+0:80 Compare Less Than (temp bool)
+0:80 direct index (temp float)
+0:80 'color' (temp 4-component vector of float)
+0:80 Constant:
+0:80 3 (const int)
+0:80 'd' (uniform float)
+0:80 true case
+0:81 Branch: Continue
+0:83 add second child into first child (temp 4-component vector of float)
+0:83 'color' (temp 4-component vector of float)
+0:83 'bigColor1_1' (uniform 4-component vector of float)
+0:87 Loop with condition tested first
+0:87 Loop Condition
+0:87 Compare Less Than (temp bool)
+0:87 direct index (temp float)
+0:87 'color' (temp 4-component vector of float)
+0:87 Constant:
+0:87 0 (const int)
+0:87 Constant:
+0:87 42.000000
+0:87 Loop Body
+0:88 Sequence
+0:88 Pre-Increment (temp 4-component vector of float)
+0:88 'color' (temp 4-component vector of float)
+0:92 Loop with condition tested first
+0:92 Loop Condition
+0:92 logical-and (temp bool)
+0:92 Compare Less Than (temp bool)
+0:92 direct index (temp float)
+0:92 'color' (temp 4-component vector of float)
+0:92 Constant:
+0:92 3 (const int)
+0:92 'd2' (uniform float)
+0:92 Compare Less Than (temp bool)
+0:92 direct index (temp float)
+0:92 'color' (temp 4-component vector of float)
+0:92 Constant:
+0:92 1 (const int)
+0:92 'd3' (uniform float)
+0:92 Loop Body
+0:93 Sequence
+0:93 add second child into first child (temp 4-component vector of float)
+0:93 'color' (temp 4-component vector of float)
+0:93 'bigColor1_2' (uniform 4-component vector of float)
+0:97 Loop with condition tested first
+0:97 Loop Condition
+0:97 Compare Less Than (temp bool)
+0:97 direct index (temp float)
+0:97 'color' (temp 4-component vector of float)
+0:97 Constant:
+0:97 2 (const int)
+0:97 'd3' (uniform float)
+0:97 Loop Body
+0:98 Sequence
+0:98 add second child into first child (temp 4-component vector of float)
+0:98 'color' (temp 4-component vector of float)
+0:98 'bigColor1_3' (uniform 4-component vector of float)
+0:99 Test condition and select (temp void)
+0:99 Condition
+0:99 Compare Less Than (temp bool)
+0:99 direct index (temp float)
+0:99 'color' (temp 4-component vector of float)
+0:99 Constant:
+0:99 1 (const int)
+0:99 'd4' (uniform float)
+0:99 true case
+0:100 Branch: Break
+0:101 add second child into first child (temp 4-component vector of float)
+0:101 'color' (temp 4-component vector of float)
+0:101 'bigColor1_3' (uniform 4-component vector of float)
+0:105 Sequence
+0:105 Sequence
+0:105 move second child to first child (temp int)
+0:105 'i' (temp int)
+0:105 Constant:
+0:105 0 (const int)
+0:105 Loop with condition tested first
+0:105 Loop Condition
+0:105 Compare Less Than (temp bool)
+0:105 'i' (temp int)
+0:105 'Count' (uniform int)
+0:105 Loop Body
+0:106 Sequence
+0:106 add second child into first child (temp 4-component vector of float)
+0:106 'color' (temp 4-component vector of float)
+0:106 'bigColor2' (uniform 4-component vector of float)
+0:105 Loop Terminal Expression
+0:105 Pre-Increment (temp int)
+0:105 'i' (temp int)
+0:112 Loop with condition not tested first
+0:112 Loop Condition
+0:112 Compare Less Than (temp bool)
+0:112 direct index (temp float)
+0:112 'color' (temp 4-component vector of float)
+0:112 Constant:
+0:112 0 (const int)
+0:112 'd2' (uniform float)
+0:112 Loop Body
+0:111 Sequence
+0:111 add second child into first child (temp 4-component vector of float)
+0:111 'color' (temp 4-component vector of float)
+0:111 'bigColor3' (uniform 4-component vector of float)
+0:115 Sequence
+0:115 Sequence
+0:115 move second child to first child (temp int)
+0:115 'i' (temp int)
+0:115 Constant:
+0:115 0 (const int)
+0:115 Loop with condition tested first
+0:115 Loop Condition
+0:115 Compare Less Than (temp bool)
+0:115 'i' (temp int)
+0:115 Constant:
+0:115 42 (const int)
+0:115 Loop Body
+0:116 Sequence
+0:116 add second child into first child (temp float)
+0:116 direct index (temp float)
+0:116 'color' (temp 4-component vector of float)
+0:116 Constant:
+0:116 2 (const int)
+0:116 'd3' (uniform float)
+0:115 Loop Terminal Expression
+0:115 Pre-Increment (temp int)
+0:115 'i' (temp int)
+0:120 Sequence
+0:120 Sequence
+0:120 move second child to first child (temp int)
+0:120 'i' (temp int)
+0:120 Constant:
+0:120 0 (const int)
+0:120 Loop with condition tested first
+0:120 Loop Condition
+0:120 Compare Less Than (temp bool)
+0:120 'i' (temp int)
+0:120 Constant:
+0:120 100 (const int)
+0:120 Loop Body
+0:121 Sequence
+0:121 Test condition and select (temp void)
+0:121 Condition
+0:121 Compare Less Than (temp bool)
+0:121 direct index (temp float)
+0:121 'color' (temp 4-component vector of float)
+0:121 Constant:
+0:121 2 (const int)
+0:121 Constant:
+0:121 20.000000
+0:121 true case
+0:122 Post-Increment (temp float)
+0:122 direct index (temp float)
+0:122 'color' (temp 4-component vector of float)
+0:122 Constant:
+0:122 0 (const int)
+0:121 false case
+0:124 Post-Increment (temp float)
+0:124 direct index (temp float)
+0:124 'color' (temp 4-component vector of float)
+0:124 Constant:
+0:124 1 (const int)
+0:125 Test condition and select (temp void)
+0:125 Condition
+0:125 Compare Less Than (temp bool)
+0:125 direct index (temp float)
+0:125 'color' (temp 4-component vector of float)
+0:125 Constant:
+0:125 3 (const int)
+0:125 Constant:
+0:125 20.000000
+0:125 true case
+0:126 Test condition and select (temp void)
+0:126 Condition
+0:126 Compare Greater Than (temp bool)
+0:126 direct index (temp float)
+0:126 'color' (temp 4-component vector of float)
+0:126 Constant:
+0:126 2 (const int)
+0:126 direct index (temp float)
+0:126 'color' (temp 4-component vector of float)
+0:126 Constant:
+0:126 1 (const int)
+0:126 true case
+0:127 Constant:
+0:127 0 (const int)
+0:120 Loop Terminal Expression
+0:120 Pre-Increment (temp int)
+0:120 'i' (temp int)
+0:131 Sequence
+0:131 Sequence
+0:131 move second child to first child (temp int)
+0:131 'i' (temp int)
+0:131 Constant:
+0:131 0 (const int)
+0:131 Loop with condition tested first
+0:131 Loop Condition
+0:131 Compare Less Than (temp bool)
+0:131 'i' (temp int)
+0:131 Constant:
+0:131 120 (const int)
+0:131 Loop Body
+0:132 Sequence
+0:132 Test condition and select (temp void)
+0:132 Condition
+0:132 Compare Less Than (temp bool)
+0:132 direct index (temp float)
+0:132 'color' (temp 4-component vector of float)
+0:132 Constant:
+0:132 2 (const int)
+0:132 Constant:
+0:132 20.000000
+0:132 true case
+0:133 Post-Increment (temp float)
+0:133 direct index (temp float)
+0:133 'color' (temp 4-component vector of float)
+0:133 Constant:
+0:133 0 (const int)
+0:132 false case
+0:135 Post-Increment (temp float)
+0:135 direct index (temp float)
+0:135 'color' (temp 4-component vector of float)
+0:135 Constant:
+0:135 1 (const int)
+0:131 Loop Terminal Expression
+0:131 Pre-Increment (temp int)
+0:131 'i' (temp int)
+0:139 Sequence
+0:139 Sequence
+0:139 move second child to first child (temp int)
+0:139 'i' (temp int)
+0:139 Constant:
+0:139 0 (const int)
+0:139 Loop with condition tested first
+0:139 Loop Condition
+0:139 Compare Less Than (temp bool)
+0:139 'i' (temp int)
+0:139 Constant:
+0:139 42 (const int)
+0:139 Loop Body
+0:140 Sequence
+0:140 add second child into first child (temp float)
+0:140 direct index (temp float)
+0:140 'color' (temp 4-component vector of float)
+0:140 Constant:
+0:140 2 (const int)
+0:140 'd3' (uniform float)
+0:141 Test condition and select (temp void)
+0:141 Condition
+0:141 Compare Less Than (temp bool)
+0:141 direct index (temp float)
+0:141 'color' (temp 4-component vector of float)
+0:141 Constant:
+0:141 0 (const int)
+0:141 'd4' (uniform float)
+0:141 true case
+0:142 Branch: Continue
+0:143 Pre-Increment (temp float)
+0:143 direct index (temp float)
+0:143 'color' (temp 4-component vector of float)
+0:143 Constant:
+0:143 3 (const int)
+0:139 Loop Terminal Expression
+0:139 Pre-Increment (temp int)
+0:139 'i' (temp int)
+0:147 Sequence
+0:147 Sequence
+0:147 move second child to first child (temp int)
+0:147 'i' (temp int)
+0:147 Constant:
+0:147 0 (const int)
+0:147 Loop with condition tested first
+0:147 Loop Condition
+0:147 Compare Less Than (temp bool)
+0:147 'i' (temp int)
+0:147 Constant:
+0:147 42 (const int)
+0:147 Loop Body
+0:148 Sequence
+0:148 add second child into first child (temp float)
+0:148 direct index (temp float)
+0:148 'color' (temp 4-component vector of float)
+0:148 Constant:
+0:148 2 (const int)
+0:148 'd3' (uniform float)
+0:149 Test condition and select (temp void)
+0:149 Condition
+0:149 Compare Less Than (temp bool)
+0:149 direct index (temp float)
+0:149 'color' (temp 4-component vector of float)
+0:149 Constant:
+0:149 0 (const int)
+0:149 'd4' (uniform float)
+0:149 true case
+0:150 Branch: Break
+0:151 Pre-Increment (temp float)
+0:151 direct index (temp float)
+0:151 'color' (temp 4-component vector of float)
+0:151 Constant:
+0:151 3 (const int)
+0:147 Loop Terminal Expression
+0:147 Pre-Increment (temp int)
+0:147 'i' (temp int)
+0:163 Loop with condition not tested first
+0:163 Loop Condition
+0:163 Compare Less Than (temp bool)
+0:163 direct index (temp float)
+0:163 'color' (temp 4-component vector of float)
+0:163 Constant:
+0:163 2 (const int)
+0:163 'd4' (uniform float)
+0:163 Loop Body
+0:156 Sequence
+0:156 add second child into first child (temp 4-component vector of float)
+0:156 'color' (temp 4-component vector of float)
+0:156 'bigColor4' (uniform 4-component vector of float)
+0:157 Test condition and select (temp void)
+0:157 Condition
+0:157 Compare Less Than (temp bool)
+0:157 direct index (temp float)
+0:157 'color' (temp 4-component vector of float)
+0:157 Constant:
+0:157 0 (const int)
+0:157 'd4' (uniform float)
+0:157 true case
+0:158 Branch: Continue
+0:159 Test condition and select (temp void)
+0:159 Condition
+0:159 Compare Less Than (temp bool)
+0:159 direct index (temp float)
+0:159 'color' (temp 4-component vector of float)
+0:159 Constant:
+0:159 1 (const int)
+0:159 'd4' (uniform float)
+0:159 true case
+0:160 add second child into first child (temp float)
+0:160 direct index (temp float)
+0:160 'color' (temp 4-component vector of float)
+0:160 Constant:
+0:160 1 (const int)
+0:160 'd4' (uniform float)
+0:159 false case
+0:162 add second child into first child (temp float)
+0:162 direct index (temp float)
+0:162 'color' (temp 4-component vector of float)
+0:162 Constant:
+0:162 0 (const int)
+0:162 'd4' (uniform float)
+0:170 Loop with condition not tested first
+0:170 Loop Condition
+0:170 Compare Less Than (temp bool)
+0:170 direct index (temp float)
+0:170 'color' (temp 4-component vector of float)
+0:170 Constant:
+0:170 0 (const int)
+0:170 'd5' (uniform float)
+0:170 Loop Body
+0:167 Sequence
+0:167 add second child into first child (temp 4-component vector of float)
+0:167 'color' (temp 4-component vector of float)
+0:167 'bigColor5' (uniform 4-component vector of float)
+0:168 Test condition and select (temp void)
+0:168 Condition
+0:168 Compare Less Than (temp bool)
+0:168 direct index (temp float)
+0:168 'color' (temp 4-component vector of float)
+0:168 Constant:
+0:168 1 (const int)
+0:168 'd5' (uniform float)
+0:168 true case
+0:169 add second child into first child (temp float)
+0:169 direct index (temp float)
+0:169 'color' (temp 4-component vector of float)
+0:169 Constant:
+0:169 1 (const int)
+0:169 'd5' (uniform float)
+0:173 Test condition and select (temp void)
+0:173 Condition
+0:173 Compare Less Than (temp bool)
+0:173 direct index (temp float)
+0:173 'color' (temp 4-component vector of float)
+0:173 Constant:
+0:173 0 (const int)
+0:173 'd6' (uniform float)
+0:173 true case
+0:174 Sequence
+0:174 Loop with condition tested first
+0:174 Loop Condition
+0:174 Compare Less Than (temp bool)
+0:174 direct index (temp float)
+0:174 'color' (temp 4-component vector of float)
+0:174 Constant:
+0:174 1 (const int)
+0:174 'd6' (uniform float)
+0:174 Loop Body
+0:175 add second child into first child (temp 4-component vector of float)
+0:175 'color' (temp 4-component vector of float)
+0:175 'bigColor6' (uniform 4-component vector of float)
+0:173 false case
+0:177 Sequence
+0:177 Loop with condition tested first
+0:177 Loop Condition
+0:177 Compare Less Than (temp bool)
+0:177 direct index (temp float)
+0:177 'color' (temp 4-component vector of float)
+0:177 Constant:
+0:177 2 (const int)
+0:177 'd6' (uniform float)
+0:177 Loop Body
+0:178 add second child into first child (temp float)
+0:178 direct index (temp float)
+0:178 'color' (temp 4-component vector of float)
+0:178 Constant:
+0:178 2 (const int)
+0:178 direct index (temp float)
+0:178 'bigColor6' (uniform 4-component vector of float)
+0:178 Constant:
+0:178 2 (const int)
+0:182 Test condition and select (temp void)
+0:182 Condition
+0:182 Compare Less Than (temp bool)
+0:182 direct index (temp float)
+0:182 'color' (temp 4-component vector of float)
+0:182 Constant:
+0:182 0 (const int)
+0:182 'd6' (uniform float)
+0:182 true case
+0:183 Sequence
+0:183 Loop with condition tested first
+0:183 Loop Condition
+0:183 Compare Less Than (temp bool)
+0:183 direct index (temp float)
+0:183 'color' (temp 4-component vector of float)
+0:183 Constant:
+0:183 1 (const int)
+0:183 'd6' (uniform float)
+0:183 Loop Body
+0:184 Sequence
+0:184 add second child into first child (temp 4-component vector of float)
+0:184 'color' (temp 4-component vector of float)
+0:184 'bigColor6' (uniform 4-component vector of float)
+0:185 Test condition and select (temp void)
+0:185 Condition
+0:185 Compare Less Than (temp bool)
+0:185 'd7' (uniform float)
+0:185 Constant:
+0:185 1.000000
+0:185 true case
+0:186 Branch: Break
+0:182 false case
+0:190 Sequence
+0:190 Loop with condition tested first
+0:190 Loop Condition
+0:190 Compare Less Than (temp bool)
+0:190 direct index (temp float)
+0:190 'color' (temp 4-component vector of float)
+0:190 Constant:
+0:190 2 (const int)
+0:190 'd6' (uniform float)
+0:190 Loop Body
+0:191 add second child into first child (temp float)
+0:191 direct index (temp float)
+0:191 'color' (temp 4-component vector of float)
+0:191 Constant:
+0:191 2 (const int)
+0:191 direct index (temp float)
+0:191 'bigColor6' (uniform 4-component vector of float)
+0:191 Constant:
+0:191 2 (const int)
+0:209 Loop with condition not tested first
+0:209 Loop Condition
+0:209 Constant:
+0:209 true (const bool)
+0:209 Loop Body
+0:197 Sequence
+0:197 Test condition and select (temp void)
+0:197 Condition
+0:197 Compare Less Than (temp bool)
+0:197 'd7' (uniform float)
+0:197 Constant:
+0:197 0.000000
+0:197 true case
+0:198 Branch: Break
+0:200 add second child into first child (temp 4-component vector of float)
+0:200 'color' (temp 4-component vector of float)
+0:200 'bigColor7' (uniform 4-component vector of float)
+0:202 Test condition and select (temp void)
+0:202 Condition
+0:202 Compare Less Than (temp bool)
+0:202 'd7' (uniform float)
+0:202 Constant:
+0:202 1.000000
+0:202 true case
+0:203 Sequence
+0:203 Post-Increment (temp float)
+0:203 direct index (temp float)
+0:203 'color' (temp 4-component vector of float)
+0:203 Constant:
+0:203 2 (const int)
+0:204 Branch: Break
+0:207 add second child into first child (temp 4-component vector of float)
+0:207 'color' (temp 4-component vector of float)
+0:207 'BaseColor' (smooth in 4-component vector of float)
+0:234 Loop with condition not tested first
+0:234 Loop Condition
+0:234 Compare Less Than (temp bool)
+0:234 direct index (temp float)
+0:234 'color' (temp 4-component vector of float)
+0:234 Constant:
+0:234 2 (const int)
+0:234 'd8' (uniform float)
+0:234 Loop Body
+0:217 Sequence
+0:217 Test condition and select (temp void)
+0:217 Condition
+0:217 Compare Less Than (temp bool)
+0:217 'd8' (uniform float)
+0:217 Constant:
+0:217 0.000000
+0:217 true case
+0:218 Branch: Break
+0:220 add second child into first child (temp 4-component vector of float)
+0:220 'color' (temp 4-component vector of float)
+0:220 'bigColor7' (uniform 4-component vector of float)
+0:222 Test condition and select (temp void)
+0:222 Condition
+0:222 Compare Less Than (temp bool)
+0:222 'd8' (uniform float)
+0:222 Constant:
+0:222 1.000000
+0:222 true case
+0:223 Sequence
+0:223 Post-Increment (temp float)
+0:223 direct index (temp float)
+0:223 'color' (temp 4-component vector of float)
+0:223 Constant:
+0:223 2 (const int)
+0:224 Test condition and select (temp void)
+0:224 Condition
+0:224 Compare Less Than (temp bool)
+0:224 'd8' (uniform float)
+0:224 Constant:
+0:224 2.000000
+0:224 true case
+0:225 Sequence
+0:225 Post-Increment (temp float)
+0:225 direct index (temp float)
+0:225 'color' (temp 4-component vector of float)
+0:225 Constant:
+0:225 1 (const int)
+0:224 false case
+0:227 Sequence
+0:227 Post-Increment (temp float)
+0:227 direct index (temp float)
+0:227 'color' (temp 4-component vector of float)
+0:227 Constant:
+0:227 0 (const int)
+0:229 Branch: Break
+0:232 add second child into first child (temp 4-component vector of float)
+0:232 'color' (temp 4-component vector of float)
+0:232 'BaseColor' (smooth in 4-component vector of float)
+0:237 Loop with condition tested first
+0:237 Loop Condition
+0:237 Compare Less Than (temp bool)
+0:237 direct index (temp float)
+0:237 'color' (temp 4-component vector of float)
+0:237 Constant:
+0:237 3 (const int)
+0:237 'd9' (uniform float)
+0:237 Loop Body
+0:238 Sequence
+0:238 Test condition and select (temp void)
+0:238 Condition
+0:238 Compare Greater Than (temp bool)
+0:238 'd9' (uniform float)
+0:238 'd8' (uniform float)
+0:238 true case
+0:239 Sequence
+0:239 Test condition and select (temp void)
+0:239 Condition
+0:239 Compare Less Than or Equal (temp bool)
+0:239 direct index (temp float)
+0:239 'color' (temp 4-component vector of float)
+0:239 Constant:
+0:239 0 (const int)
+0:239 'd7' (uniform float)
+0:239 true case
+0:240 Sequence
+0:240 Test condition and select (temp void)
+0:240 Condition
+0:240 Compare Equal (temp bool)
+0:240 direct index (temp float)
+0:240 'color' (temp 4-component vector of float)
+0:240 Constant:
+0:240 2 (const int)
+0:240 Constant:
+0:240 5.000000
+0:240 true case
+0:241 Post-Increment (temp float)
+0:241 direct index (temp float)
+0:241 'color' (temp 4-component vector of float)
+0:241 Constant:
+0:241 3 (const int)
+0:240 false case
+0:243 Branch: Break
+0:250 Loop with condition tested first
+0:250 Loop Condition
+0:250 Compare Less Than (temp bool)
+0:250 direct index (temp float)
+0:250 'color' (temp 4-component vector of float)
+0:250 Constant:
+0:250 2 (const int)
+0:250 'd10' (uniform float)
+0:250 Loop Body
+0:251 Sequence
+0:251 Post-Increment (temp float)
+0:251 direct index (temp float)
+0:251 'color' (temp 4-component vector of float)
+0:251 Constant:
+0:251 1 (const int)
+0:252 Test condition and select (temp void)
+0:252 Condition
+0:252 Compare Less Than (temp bool)
+0:252 direct index (temp float)
+0:252 'color' (temp 4-component vector of float)
+0:252 Constant:
+0:252 1 (const int)
+0:252 'd11' (uniform float)
+0:252 true case
+0:253 Sequence
+0:253 Post-Increment (temp float)
+0:253 direct index (temp float)
+0:253 'color' (temp 4-component vector of float)
+0:253 Constant:
+0:253 2 (const int)
+0:254 Test condition and select (temp void)
+0:254 Condition
+0:254 Compare Less Than (temp bool)
+0:254 direct index (temp float)
+0:254 'color' (temp 4-component vector of float)
+0:254 Constant:
+0:254 3 (const int)
+0:254 'd12' (uniform float)
+0:254 true case
+0:255 Post-Increment (temp float)
+0:255 direct index (temp float)
+0:255 'color' (temp 4-component vector of float)
+0:255 Constant:
+0:255 3 (const int)
+0:254 false case
+0:257 Post-Increment (temp float)
+0:257 direct index (temp float)
+0:257 'color' (temp 4-component vector of float)
+0:257 Constant:
+0:257 0 (const int)
+0:258 Branch: Continue
+0:261 Post-Increment (temp 4-component vector of float)
+0:261 'color' (temp 4-component vector of float)
+0:262 Branch: Break
+0:266 Loop with condition tested first
+0:266 Loop Condition
+0:266 Compare Less Than (temp bool)
+0:266 direct index (temp float)
+0:266 'color' (temp 4-component vector of float)
+0:266 Constant:
+0:266 0 (const int)
+0:266 Constant:
+0:266 10.000000
+0:266 Loop Body
+0:267 Sequence
+0:267 add second child into first child (temp 4-component vector of float)
+0:267 'color' (temp 4-component vector of float)
+0:267 'bigColor8' (uniform 4-component vector of float)
+0:269 Test condition and select (temp void)
+0:269 Condition
+0:269 Compare Less Than (temp bool)
+0:269 direct index (temp float)
+0:269 'color' (temp 4-component vector of float)
+0:269 Constant:
+0:269 2 (const int)
+0:269 'd8' (uniform float)
+0:269 true case
+0:270 Test condition and select (temp void)
+0:270 Condition
+0:270 Compare Less Than (temp bool)
+0:270 direct index (temp float)
+0:270 'color' (temp 4-component vector of float)
+0:270 Constant:
+0:270 3 (const int)
+0:270 'd6' (uniform float)
+0:270 true case
+0:271 Branch: Continue
+0:273 add second child into first child (temp float)
+0:273 direct index (temp float)
+0:273 'color' (temp 4-component vector of float)
+0:273 Constant:
+0:273 1 (const int)
+0:273 direct index (temp float)
+0:273 'bigColor8' (uniform 4-component vector of float)
+0:273 Constant:
+0:273 0 (const int)
+0:276 Post-Increment (temp 4-component vector of float)
+0:276 'color' (temp 4-component vector of float)
+0:277 move second child to first child (temp 4-component vector of float)
+0:277 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:277 'color' (temp 4-component vector of float)
+0:280 Loop with condition tested first
+0:280 Loop Condition
+0:280 Compare Less Than (temp bool)
+0:280 direct index (temp float)
+0:280 'color' (temp 4-component vector of float)
+0:280 Constant:
+0:280 0 (const int)
+0:280 'd14' (uniform float)
+0:280 Loop Body
+0:281 Sequence
+0:281 Test condition and select (temp void)
+0:281 Condition
+0:281 Compare Less Than (temp bool)
+0:281 direct index (temp float)
+0:281 'color' (temp 4-component vector of float)
+0:281 Constant:
+0:281 1 (const int)
+0:281 'd15' (uniform float)
+0:281 true case
+0:282 Sequence
+0:282 Branch: Return
+0:281 false case
+0:285 Post-Increment (temp 4-component vector of float)
+0:285 'color' (temp 4-component vector of float)
+0:288 Post-Increment (temp 4-component vector of float)
+0:288 'color' (temp 4-component vector of float)
+0:290 Loop with condition tested first
+0:290 Loop Condition
+0:290 Compare Less Than (temp bool)
+0:290 direct index (temp float)
+0:290 'color' (temp 4-component vector of float)
+0:290 Constant:
+0:290 3 (const int)
+0:290 'd16' (uniform float)
+0:290 Loop Body
+0:291 Sequence
+0:291 Post-Increment (temp float)
+0:291 direct index (temp float)
+0:291 'color' (temp 4-component vector of float)
+0:291 Constant:
+0:291 3 (const int)
+0:296 Loop with condition tested first
+0:296 Loop Condition
+0:296 logical-and (temp bool)
+0:296 Compare Less Than (temp bool)
+0:296 direct index (temp float)
+0:296 'color' (temp 4-component vector of float)
+0:296 Constant:
+0:296 3 (const int)
+0:296 'd2' (uniform float)
+0:296 Compare Less Than (temp bool)
+0:296 direct index (temp float)
+0:296 'color' (temp 4-component vector of float)
+0:296 Constant:
+0:296 1 (const int)
+0:296 'd3' (uniform float)
+0:296 Loop Body
+0:297 Sequence
+0:297 add second child into first child (temp 4-component vector of float)
+0:297 'color' (temp 4-component vector of float)
+0:297 'bigColor1_2' (uniform 4-component vector of float)
+0:298 Test condition and select (temp void)
+0:298 Condition
+0:298 Compare Less Than (temp bool)
+0:298 direct index (temp float)
+0:298 'color' (temp 4-component vector of float)
+0:298 Constant:
+0:298 2 (const int)
+0:298 'd3' (uniform float)
+0:298 true case
+0:299 Branch: Return
+0:307 Loop with condition not tested first
+0:307 Loop Condition
+0:307 Compare Less Than (temp bool)
+0:307 direct index (temp float)
+0:307 'color' (temp 4-component vector of float)
+0:307 Constant:
+0:307 0 (const int)
+0:307 'd17' (uniform float)
+0:307 Loop Body
+0:304 Sequence
+0:304 Test condition and select (temp void)
+0:304 Condition
+0:304 Compare Less Than (temp bool)
+0:304 direct index (temp float)
+0:304 'color' (temp 4-component vector of float)
+0:304 Constant:
+0:304 1 (const int)
+0:304 'd18' (uniform float)
+0:304 true case
+0:305 Branch: Return
+0:306 Post-Increment (temp 4-component vector of float)
+0:306 'color' (temp 4-component vector of float)
+0:310 Loop with condition tested first
+0:310 Loop Condition
+0:310 Compare Less Than (temp bool)
+0:310 direct index (temp float)
+0:310 'color' (temp 4-component vector of float)
+0:310 Constant:
+0:310 1 (const int)
+0:310 'd16' (uniform float)
+0:310 Loop Body
+0:311 Sequence
+0:311 Test condition and select (temp void)
+0:311 Condition
+0:311 Compare Less Than (temp bool)
+0:311 direct index (temp float)
+0:311 'color' (temp 4-component vector of float)
+0:311 Constant:
+0:311 3 (const int)
+0:311 'd16' (uniform float)
+0:311 true case
+0:312 Sequence
+0:312 Branch: Kill
+0:311 false case
+0:314 Post-Increment (temp 4-component vector of float)
+0:314 'color' (temp 4-component vector of float)
+0:317 Post-Increment (temp 4-component vector of float)
+0:317 'color' (temp 4-component vector of float)
+0:319 move second child to first child (temp 4-component vector of float)
+0:319 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:319 'color' (temp 4-component vector of float)
+0:? Linker Objects
+0:? 'bigColor' (uniform 4-component vector of float)
+0:? 'bigColor1_1' (uniform 4-component vector of float)
+0:? 'bigColor1_2' (uniform 4-component vector of float)
+0:? 'bigColor1_3' (uniform 4-component vector of float)
+0:? 'bigColor2' (uniform 4-component vector of float)
+0:? 'bigColor3' (uniform 4-component vector of float)
+0:? 'bigColor4' (uniform 4-component vector of float)
+0:? 'bigColor5' (uniform 4-component vector of float)
+0:? 'bigColor6' (uniform 4-component vector of float)
+0:? 'bigColor7' (uniform 4-component vector of float)
+0:? 'bigColor8' (uniform 4-component vector of float)
+0:? 'BaseColor' (smooth in 4-component vector of float)
+0:? 'd' (uniform float)
+0:? 'd2' (uniform float)
+0:? 'd3' (uniform float)
+0:? 'd4' (uniform float)
+0:? 'd5' (uniform float)
+0:? 'd6' (uniform float)
+0:? 'd7' (uniform float)
+0:? 'd8' (uniform float)
+0:? 'd9' (uniform float)
+0:? 'd10' (uniform float)
+0:? 'd11' (uniform float)
+0:? 'd12' (uniform float)
+0:? 'd13' (uniform float)
+0:? 'd14' (uniform float)
+0:? 'd15' (uniform float)
+0:? 'd16' (uniform float)
+0:? 'd17' (uniform float)
+0:? 'd18' (uniform float)
+0:? 'd19' (uniform float)
+0:? 'd20' (uniform float)
+0:? 'd21' (uniform float)
+0:? 'd22' (uniform float)
+0:? 'd23' (uniform float)
+0:? 'd24' (uniform float)
+0:? 'd25' (uniform float)
+0:? 'd26' (uniform float)
+0:? 'd27' (uniform float)
+0:? 'd28' (uniform float)
+0:? 'd29' (uniform float)
+0:? 'd30' (uniform float)
+0:? 'd31' (uniform float)
+0:? 'd32' (uniform float)
+0:? 'd33' (uniform float)
+0:? 'd34' (uniform float)
+0:? 'Count' (uniform int)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/loopsArtificial.frag.out b/chromium/third_party/glslang/src/Test/baseResults/loopsArtificial.frag.out
new file mode 100644
index 00000000000..39fae13d4dd
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/loopsArtificial.frag.out
@@ -0,0 +1,433 @@
+loopsArtificial.frag
+WARNING: 0:14: varying deprecated in version 130; may be removed in future release
+
+Shader version: 130
+0:? Sequence
+0:53 Function Definition: main( (global void)
+0:53 Function Parameters:
+0:55 Sequence
+0:55 Sequence
+0:55 move second child to first child (temp 4-component vector of float)
+0:55 'color' (temp 4-component vector of float)
+0:55 'BaseColor' (smooth in 4-component vector of float)
+0:71 Loop with condition not tested first
+0:71 Loop Condition
+0:71 Compare Less Than (temp bool)
+0:71 direct index (temp float)
+0:71 'color' (temp 4-component vector of float)
+0:71 Constant:
+0:71 2 (const int)
+0:71 'd4' (uniform float)
+0:71 Loop Body
+0:59 Sequence
+0:59 add second child into first child (temp 4-component vector of float)
+0:59 'color' (temp 4-component vector of float)
+0:59 'bigColor4' (uniform 4-component vector of float)
+0:60 Test condition and select (temp void)
+0:60 Condition
+0:60 Compare Less Than (temp bool)
+0:60 direct index (temp float)
+0:60 'color' (temp 4-component vector of float)
+0:60 Constant:
+0:60 0 (const int)
+0:60 'd4' (uniform float)
+0:60 true case
+0:61 Sequence
+0:61 add second child into first child (temp float)
+0:61 direct index (temp float)
+0:61 'color' (temp 4-component vector of float)
+0:61 Constant:
+0:61 2 (const int)
+0:61 Constant:
+0:61 2.000000
+0:62 Test condition and select (temp void)
+0:62 Condition
+0:62 Compare Less Than (temp bool)
+0:62 direct index (temp float)
+0:62 'color' (temp 4-component vector of float)
+0:62 Constant:
+0:62 2 (const int)
+0:62 'd4' (uniform float)
+0:62 true case
+0:63 Sequence
+0:63 Post-Increment (temp float)
+0:63 direct index (temp float)
+0:63 'color' (temp 4-component vector of float)
+0:63 Constant:
+0:63 0 (const int)
+0:64 Branch: Continue
+0:67 Test condition and select (temp void)
+0:67 Condition
+0:67 Compare Less Than (temp bool)
+0:67 direct index (temp float)
+0:67 'color' (temp 4-component vector of float)
+0:67 Constant:
+0:67 1 (const int)
+0:67 'd4' (uniform float)
+0:67 true case
+0:68 add second child into first child (temp float)
+0:68 direct index (temp float)
+0:68 'color' (temp 4-component vector of float)
+0:68 Constant:
+0:68 1 (const int)
+0:68 'd4' (uniform float)
+0:67 false case
+0:70 add second child into first child (temp float)
+0:70 direct index (temp float)
+0:70 'color' (temp 4-component vector of float)
+0:70 Constant:
+0:70 0 (const int)
+0:70 'd4' (uniform float)
+0:74 Loop with condition tested first
+0:74 Loop Condition
+0:74 Compare Less Than (temp bool)
+0:74 direct index (temp float)
+0:74 'color' (temp 4-component vector of float)
+0:74 Constant:
+0:74 3 (const int)
+0:74 'd13' (uniform float)
+0:74 Loop Body
+0:75 Sequence
+0:75 Test condition and select (temp void)
+0:75 Condition
+0:75 Compare Less Than (temp bool)
+0:75 direct index (temp float)
+0:75 'color' (temp 4-component vector of float)
+0:75 Constant:
+0:75 2 (const int)
+0:75 'd13' (uniform float)
+0:75 true case
+0:76 Post-Increment (temp 4-component vector of float)
+0:76 'color' (temp 4-component vector of float)
+0:75 false case
+0:78 Post-Decrement (temp 4-component vector of float)
+0:78 'color' (temp 4-component vector of float)
+0:80 add second child into first child (temp 4-component vector of float)
+0:80 'color' (temp 4-component vector of float)
+0:80 'bigColor4' (uniform 4-component vector of float)
+0:81 Test condition and select (temp void)
+0:81 Condition
+0:81 Compare Less Than (temp bool)
+0:81 direct index (temp float)
+0:81 'color' (temp 4-component vector of float)
+0:81 Constant:
+0:81 0 (const int)
+0:81 'd4' (uniform float)
+0:81 true case
+0:82 Sequence
+0:82 add second child into first child (temp float)
+0:82 direct index (temp float)
+0:82 'color' (temp 4-component vector of float)
+0:82 Constant:
+0:82 2 (const int)
+0:82 Constant:
+0:82 2.000000
+0:83 Test condition and select (temp void)
+0:83 Condition
+0:83 Compare Less Than (temp bool)
+0:83 direct index (temp float)
+0:83 'color' (temp 4-component vector of float)
+0:83 Constant:
+0:83 2 (const int)
+0:83 'd4' (uniform float)
+0:83 true case
+0:84 Sequence
+0:84 Post-Increment (temp float)
+0:84 direct index (temp float)
+0:84 'color' (temp 4-component vector of float)
+0:84 Constant:
+0:84 0 (const int)
+0:85 Branch: Continue
+0:88 Test condition and select (temp void)
+0:88 Condition
+0:88 Compare Less Than (temp bool)
+0:88 direct index (temp float)
+0:88 'color' (temp 4-component vector of float)
+0:88 Constant:
+0:88 1 (const int)
+0:88 'd4' (uniform float)
+0:88 true case
+0:89 add second child into first child (temp float)
+0:89 direct index (temp float)
+0:89 'color' (temp 4-component vector of float)
+0:89 Constant:
+0:89 1 (const int)
+0:89 'd4' (uniform float)
+0:88 false case
+0:91 add second child into first child (temp float)
+0:91 direct index (temp float)
+0:91 'color' (temp 4-component vector of float)
+0:91 Constant:
+0:91 0 (const int)
+0:91 'd4' (uniform float)
+0:94 Post-Increment (temp 4-component vector of float)
+0:94 'color' (temp 4-component vector of float)
+0:95 move second child to first child (temp 4-component vector of float)
+0:95 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:95 'color' (temp 4-component vector of float)
+0:? Linker Objects
+0:? 'bigColor' (uniform 4-component vector of float)
+0:? 'bigColor1_1' (uniform 4-component vector of float)
+0:? 'bigColor1_2' (uniform 4-component vector of float)
+0:? 'bigColor1_3' (uniform 4-component vector of float)
+0:? 'bigColor2' (uniform 4-component vector of float)
+0:? 'bigColor3' (uniform 4-component vector of float)
+0:? 'bigColor4' (uniform 4-component vector of float)
+0:? 'bigColor5' (uniform 4-component vector of float)
+0:? 'bigColor6' (uniform 4-component vector of float)
+0:? 'bigColor7' (uniform 4-component vector of float)
+0:? 'bigColor8' (uniform 4-component vector of float)
+0:? 'BaseColor' (smooth in 4-component vector of float)
+0:? 'd' (uniform float)
+0:? 'd2' (uniform float)
+0:? 'd3' (uniform float)
+0:? 'd4' (uniform float)
+0:? 'd5' (uniform float)
+0:? 'd6' (uniform float)
+0:? 'd7' (uniform float)
+0:? 'd8' (uniform float)
+0:? 'd9' (uniform float)
+0:? 'd10' (uniform float)
+0:? 'd11' (uniform float)
+0:? 'd12' (uniform float)
+0:? 'd13' (uniform float)
+0:? 'd14' (uniform float)
+0:? 'd15' (uniform float)
+0:? 'd16' (uniform float)
+0:? 'd17' (uniform float)
+0:? 'd18' (uniform float)
+0:? 'd19' (uniform float)
+0:? 'd20' (uniform float)
+0:? 'd21' (uniform float)
+0:? 'd22' (uniform float)
+0:? 'd23' (uniform float)
+0:? 'd24' (uniform float)
+0:? 'd25' (uniform float)
+0:? 'd26' (uniform float)
+0:? 'd27' (uniform float)
+0:? 'd28' (uniform float)
+0:? 'd29' (uniform float)
+0:? 'd30' (uniform float)
+0:? 'd31' (uniform float)
+0:? 'd32' (uniform float)
+0:? 'd33' (uniform float)
+0:? 'd34' (uniform float)
+0:? 'Count' (uniform int)
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+0:? Sequence
+0:53 Function Definition: main( (global void)
+0:53 Function Parameters:
+0:55 Sequence
+0:55 Sequence
+0:55 move second child to first child (temp 4-component vector of float)
+0:55 'color' (temp 4-component vector of float)
+0:55 'BaseColor' (smooth in 4-component vector of float)
+0:71 Loop with condition not tested first
+0:71 Loop Condition
+0:71 Compare Less Than (temp bool)
+0:71 direct index (temp float)
+0:71 'color' (temp 4-component vector of float)
+0:71 Constant:
+0:71 2 (const int)
+0:71 'd4' (uniform float)
+0:71 Loop Body
+0:59 Sequence
+0:59 add second child into first child (temp 4-component vector of float)
+0:59 'color' (temp 4-component vector of float)
+0:59 'bigColor4' (uniform 4-component vector of float)
+0:60 Test condition and select (temp void)
+0:60 Condition
+0:60 Compare Less Than (temp bool)
+0:60 direct index (temp float)
+0:60 'color' (temp 4-component vector of float)
+0:60 Constant:
+0:60 0 (const int)
+0:60 'd4' (uniform float)
+0:60 true case
+0:61 Sequence
+0:61 add second child into first child (temp float)
+0:61 direct index (temp float)
+0:61 'color' (temp 4-component vector of float)
+0:61 Constant:
+0:61 2 (const int)
+0:61 Constant:
+0:61 2.000000
+0:62 Test condition and select (temp void)
+0:62 Condition
+0:62 Compare Less Than (temp bool)
+0:62 direct index (temp float)
+0:62 'color' (temp 4-component vector of float)
+0:62 Constant:
+0:62 2 (const int)
+0:62 'd4' (uniform float)
+0:62 true case
+0:63 Sequence
+0:63 Post-Increment (temp float)
+0:63 direct index (temp float)
+0:63 'color' (temp 4-component vector of float)
+0:63 Constant:
+0:63 0 (const int)
+0:64 Branch: Continue
+0:67 Test condition and select (temp void)
+0:67 Condition
+0:67 Compare Less Than (temp bool)
+0:67 direct index (temp float)
+0:67 'color' (temp 4-component vector of float)
+0:67 Constant:
+0:67 1 (const int)
+0:67 'd4' (uniform float)
+0:67 true case
+0:68 add second child into first child (temp float)
+0:68 direct index (temp float)
+0:68 'color' (temp 4-component vector of float)
+0:68 Constant:
+0:68 1 (const int)
+0:68 'd4' (uniform float)
+0:67 false case
+0:70 add second child into first child (temp float)
+0:70 direct index (temp float)
+0:70 'color' (temp 4-component vector of float)
+0:70 Constant:
+0:70 0 (const int)
+0:70 'd4' (uniform float)
+0:74 Loop with condition tested first
+0:74 Loop Condition
+0:74 Compare Less Than (temp bool)
+0:74 direct index (temp float)
+0:74 'color' (temp 4-component vector of float)
+0:74 Constant:
+0:74 3 (const int)
+0:74 'd13' (uniform float)
+0:74 Loop Body
+0:75 Sequence
+0:75 Test condition and select (temp void)
+0:75 Condition
+0:75 Compare Less Than (temp bool)
+0:75 direct index (temp float)
+0:75 'color' (temp 4-component vector of float)
+0:75 Constant:
+0:75 2 (const int)
+0:75 'd13' (uniform float)
+0:75 true case
+0:76 Post-Increment (temp 4-component vector of float)
+0:76 'color' (temp 4-component vector of float)
+0:75 false case
+0:78 Post-Decrement (temp 4-component vector of float)
+0:78 'color' (temp 4-component vector of float)
+0:80 add second child into first child (temp 4-component vector of float)
+0:80 'color' (temp 4-component vector of float)
+0:80 'bigColor4' (uniform 4-component vector of float)
+0:81 Test condition and select (temp void)
+0:81 Condition
+0:81 Compare Less Than (temp bool)
+0:81 direct index (temp float)
+0:81 'color' (temp 4-component vector of float)
+0:81 Constant:
+0:81 0 (const int)
+0:81 'd4' (uniform float)
+0:81 true case
+0:82 Sequence
+0:82 add second child into first child (temp float)
+0:82 direct index (temp float)
+0:82 'color' (temp 4-component vector of float)
+0:82 Constant:
+0:82 2 (const int)
+0:82 Constant:
+0:82 2.000000
+0:83 Test condition and select (temp void)
+0:83 Condition
+0:83 Compare Less Than (temp bool)
+0:83 direct index (temp float)
+0:83 'color' (temp 4-component vector of float)
+0:83 Constant:
+0:83 2 (const int)
+0:83 'd4' (uniform float)
+0:83 true case
+0:84 Sequence
+0:84 Post-Increment (temp float)
+0:84 direct index (temp float)
+0:84 'color' (temp 4-component vector of float)
+0:84 Constant:
+0:84 0 (const int)
+0:85 Branch: Continue
+0:88 Test condition and select (temp void)
+0:88 Condition
+0:88 Compare Less Than (temp bool)
+0:88 direct index (temp float)
+0:88 'color' (temp 4-component vector of float)
+0:88 Constant:
+0:88 1 (const int)
+0:88 'd4' (uniform float)
+0:88 true case
+0:89 add second child into first child (temp float)
+0:89 direct index (temp float)
+0:89 'color' (temp 4-component vector of float)
+0:89 Constant:
+0:89 1 (const int)
+0:89 'd4' (uniform float)
+0:88 false case
+0:91 add second child into first child (temp float)
+0:91 direct index (temp float)
+0:91 'color' (temp 4-component vector of float)
+0:91 Constant:
+0:91 0 (const int)
+0:91 'd4' (uniform float)
+0:94 Post-Increment (temp 4-component vector of float)
+0:94 'color' (temp 4-component vector of float)
+0:95 move second child to first child (temp 4-component vector of float)
+0:95 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:95 'color' (temp 4-component vector of float)
+0:? Linker Objects
+0:? 'bigColor' (uniform 4-component vector of float)
+0:? 'bigColor1_1' (uniform 4-component vector of float)
+0:? 'bigColor1_2' (uniform 4-component vector of float)
+0:? 'bigColor1_3' (uniform 4-component vector of float)
+0:? 'bigColor2' (uniform 4-component vector of float)
+0:? 'bigColor3' (uniform 4-component vector of float)
+0:? 'bigColor4' (uniform 4-component vector of float)
+0:? 'bigColor5' (uniform 4-component vector of float)
+0:? 'bigColor6' (uniform 4-component vector of float)
+0:? 'bigColor7' (uniform 4-component vector of float)
+0:? 'bigColor8' (uniform 4-component vector of float)
+0:? 'BaseColor' (smooth in 4-component vector of float)
+0:? 'd' (uniform float)
+0:? 'd2' (uniform float)
+0:? 'd3' (uniform float)
+0:? 'd4' (uniform float)
+0:? 'd5' (uniform float)
+0:? 'd6' (uniform float)
+0:? 'd7' (uniform float)
+0:? 'd8' (uniform float)
+0:? 'd9' (uniform float)
+0:? 'd10' (uniform float)
+0:? 'd11' (uniform float)
+0:? 'd12' (uniform float)
+0:? 'd13' (uniform float)
+0:? 'd14' (uniform float)
+0:? 'd15' (uniform float)
+0:? 'd16' (uniform float)
+0:? 'd17' (uniform float)
+0:? 'd18' (uniform float)
+0:? 'd19' (uniform float)
+0:? 'd20' (uniform float)
+0:? 'd21' (uniform float)
+0:? 'd22' (uniform float)
+0:? 'd23' (uniform float)
+0:? 'd24' (uniform float)
+0:? 'd25' (uniform float)
+0:? 'd26' (uniform float)
+0:? 'd27' (uniform float)
+0:? 'd28' (uniform float)
+0:? 'd29' (uniform float)
+0:? 'd30' (uniform float)
+0:? 'd31' (uniform float)
+0:? 'd32' (uniform float)
+0:? 'd33' (uniform float)
+0:? 'd34' (uniform float)
+0:? 'Count' (uniform int)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/mains1.frag.out b/chromium/third_party/glslang/src/Test/baseResults/mains1.frag.out
new file mode 100644
index 00000000000..8ba02bf1efb
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/mains1.frag.out
@@ -0,0 +1,72 @@
+mains1.frag
+Shader version: 110
+0:? Sequence
+0:3 Function Definition: main( (global void)
+0:3 Function Parameters:
+0:? Linker Objects
+
+mains2.frag
+Shader version: 110
+0:? Sequence
+0:3 Function Definition: main( (global void)
+0:3 Function Parameters:
+0:? Linker Objects
+
+noMain1.geom
+ERROR: #version: geometry shaders require es profile with version 310 or non-es profile with version 150 or above
+ERROR: 1 compilation errors. No code generated.
+
+
+Shader version: 150
+invocations = -1
+max_vertices = -1
+input primitive = none
+output primitive = points
+ERROR: node is still EOpNull!
+0:3 Function Definition: foo( (global void)
+0:3 Function Parameters:
+0:? Linker Objects
+
+noMain2.geom
+Shader version: 150
+invocations = -1
+max_vertices = -1
+input primitive = none
+output primitive = line_strip
+0:? Sequence
+0:3 Function Definition: bar( (global void)
+0:3 Function Parameters:
+0:? Linker Objects
+
+
+Linked geometry stage:
+
+ERROR: Linking geometry stage: Contradictory output layout primitives
+ERROR: Linking geometry stage: Missing entry point: Each stage requires one "void main()" entry point
+ERROR: Linking geometry stage: At least one shader must specify an input layout primitive
+ERROR: Linking geometry stage: At least one shader must specify a layout(max_vertices = value)
+
+Linked fragment stage:
+
+ERROR: Linking fragment stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:
+ main(
+
+Shader version: 150
+invocations = 1
+max_vertices = -1
+input primitive = none
+output primitive = points
+ERROR: node is still EOpNull!
+0:3 Function Definition: foo( (global void)
+0:3 Function Parameters:
+0:3 Function Definition: bar( (global void)
+0:3 Function Parameters:
+0:? Linker Objects
+Shader version: 110
+0:? Sequence
+0:3 Function Definition: main( (global void)
+0:3 Function Parameters:
+0:3 Function Definition: main( (global void)
+0:3 Function Parameters:
+0:? Linker Objects
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/matrix.frag.out b/chromium/third_party/glslang/src/Test/baseResults/matrix.frag.out
new file mode 100644
index 00000000000..14c3548b14c
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/matrix.frag.out
@@ -0,0 +1,507 @@
+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
+
+Shader version: 130
+0:? Sequence
+0:25 Function Definition: main( (global void)
+0:25 Function Parameters:
+0:27 Sequence
+0:27 move second child to first child (temp 4-component vector of float)
+0:27 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:27 Construct vec4 (temp 4-component vector of float)
+0:27 direct index (temp 4-component vector of float)
+0:27 'un34' (uniform 4X4 matrix of float)
+0:27 Constant:
+0:27 1 (const int)
+0:28 add second child into first child (temp 4-component vector of float)
+0:28 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:28 Construct vec4 (temp 4-component vector of float)
+0:28 vector-times-matrix (temp 3-component vector of float)
+0:28 'Color' (smooth in 3-component vector of float)
+0:28 'colorTransform' (uniform 3X3 matrix of float)
+0:28 Constant:
+0:28 1.000000
+0:30 Test condition and select (temp void)
+0:30 Condition
+0:30 Compare Not Equal (temp bool)
+0:30 'm' (uniform 4X4 matrix of float)
+0:30 'n' (uniform 4X4 matrix of float)
+0:30 true case
+0:31 add second child into first child (temp 4-component vector of float)
+0:31 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:31 'v' (smooth in 4-component vector of float)
+0:30 false case
+0:33 Sequence
+0:33 add second child into first child (temp 4-component vector of float)
+0:33 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:33 matrix-times-vector (temp 4-component vector of float)
+0:33 'm' (uniform 4X4 matrix of float)
+0:33 'v' (smooth in 4-component vector of float)
+0:34 add second child into first child (temp 4-component vector of float)
+0:34 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:34 vector-times-matrix (temp 4-component vector of float)
+0:34 'v' (smooth in 4-component vector of float)
+0:34 subtract (temp 4X4 matrix of float)
+0:34 'm' (uniform 4X4 matrix of float)
+0:34 'n' (uniform 4X4 matrix of float)
+0:42 Sequence
+0:42 move second child to first child (temp 4X4 matrix of float)
+0:42 'm34' (temp 4X4 matrix of float)
+0:45 Construct mat4 (temp 4X4 matrix of float)
+0:42 component-wise multiply (temp float)
+0:42 direct index (temp float)
+0:42 'v' (smooth in 4-component vector of float)
+0:42 Constant:
+0:42 0 (const int)
+0:42 direct index (temp float)
+0:42 'u' (smooth in 4-component vector of float)
+0:42 Constant:
+0:42 0 (const int)
+0:42 component-wise multiply (temp float)
+0:42 direct index (temp float)
+0:42 'v' (smooth in 4-component vector of float)
+0:42 Constant:
+0:42 0 (const int)
+0:42 direct index (temp float)
+0:42 'u' (smooth in 4-component vector of float)
+0:42 Constant:
+0:42 1 (const int)
+0:42 component-wise multiply (temp float)
+0:42 direct index (temp float)
+0:42 'v' (smooth in 4-component vector of float)
+0:42 Constant:
+0:42 0 (const int)
+0:42 direct index (temp float)
+0:42 'u' (smooth in 4-component vector of float)
+0:42 Constant:
+0:42 2 (const int)
+0:42 component-wise multiply (temp float)
+0:42 direct index (temp float)
+0:42 'v' (smooth in 4-component vector of float)
+0:42 Constant:
+0:42 0 (const int)
+0:42 direct index (temp float)
+0:42 'u' (smooth in 4-component vector of float)
+0:42 Constant:
+0:42 3 (const int)
+0:43 component-wise multiply (temp float)
+0:43 direct index (temp float)
+0:43 'v' (smooth in 4-component vector of float)
+0:43 Constant:
+0:43 1 (const int)
+0:43 direct index (temp float)
+0:43 'u' (smooth in 4-component vector of float)
+0:43 Constant:
+0:43 0 (const int)
+0:43 component-wise multiply (temp float)
+0:43 direct index (temp float)
+0:43 'v' (smooth in 4-component vector of float)
+0:43 Constant:
+0:43 1 (const int)
+0:43 direct index (temp float)
+0:43 'u' (smooth in 4-component vector of float)
+0:43 Constant:
+0:43 1 (const int)
+0:43 component-wise multiply (temp float)
+0:43 direct index (temp float)
+0:43 'v' (smooth in 4-component vector of float)
+0:43 Constant:
+0:43 1 (const int)
+0:43 direct index (temp float)
+0:43 'u' (smooth in 4-component vector of float)
+0:43 Constant:
+0:43 2 (const int)
+0:43 component-wise multiply (temp float)
+0:43 direct index (temp float)
+0:43 'v' (smooth in 4-component vector of float)
+0:43 Constant:
+0:43 1 (const int)
+0:43 direct index (temp float)
+0:43 'u' (smooth in 4-component vector of float)
+0:43 Constant:
+0:43 3 (const int)
+0:44 component-wise multiply (temp float)
+0:44 direct index (temp float)
+0:44 'v' (smooth in 4-component vector of float)
+0:44 Constant:
+0:44 2 (const int)
+0:44 direct index (temp float)
+0:44 'u' (smooth in 4-component vector of float)
+0:44 Constant:
+0:44 0 (const int)
+0:44 component-wise multiply (temp float)
+0:44 direct index (temp float)
+0:44 'v' (smooth in 4-component vector of float)
+0:44 Constant:
+0:44 2 (const int)
+0:44 direct index (temp float)
+0:44 'u' (smooth in 4-component vector of float)
+0:44 Constant:
+0:44 1 (const int)
+0:44 component-wise multiply (temp float)
+0:44 direct index (temp float)
+0:44 'v' (smooth in 4-component vector of float)
+0:44 Constant:
+0:44 2 (const int)
+0:44 direct index (temp float)
+0:44 'u' (smooth in 4-component vector of float)
+0:44 Constant:
+0:44 2 (const int)
+0:44 component-wise multiply (temp float)
+0:44 direct index (temp float)
+0:44 'v' (smooth in 4-component vector of float)
+0:44 Constant:
+0:44 2 (const int)
+0:44 direct index (temp float)
+0:44 'u' (smooth in 4-component vector of float)
+0:44 Constant:
+0:44 3 (const int)
+0:45 component-wise multiply (temp float)
+0:45 direct index (temp float)
+0:45 'v' (smooth in 4-component vector of float)
+0:45 Constant:
+0:45 3 (const int)
+0:45 direct index (temp float)
+0:45 'u' (smooth in 4-component vector of float)
+0:45 Constant:
+0:45 0 (const int)
+0:45 component-wise multiply (temp float)
+0:45 direct index (temp float)
+0:45 'v' (smooth in 4-component vector of float)
+0:45 Constant:
+0:45 3 (const int)
+0:45 direct index (temp float)
+0:45 'u' (smooth in 4-component vector of float)
+0:45 Constant:
+0:45 1 (const int)
+0:45 component-wise multiply (temp float)
+0:45 direct index (temp float)
+0:45 'v' (smooth in 4-component vector of float)
+0:45 Constant:
+0:45 3 (const int)
+0:45 direct index (temp float)
+0:45 'u' (smooth in 4-component vector of float)
+0:45 Constant:
+0:45 2 (const int)
+0:45 component-wise multiply (temp float)
+0:45 direct index (temp float)
+0:45 'v' (smooth in 4-component vector of float)
+0:45 Constant:
+0:45 3 (const int)
+0:45 direct index (temp float)
+0:45 'u' (smooth in 4-component vector of float)
+0:45 Constant:
+0:45 3 (const int)
+0:46 add second child into first child (temp 4X4 matrix of float)
+0:46 'm34' (temp 4X4 matrix of float)
+0:46 Construct mat4 (temp 4X4 matrix of float)
+0:46 direct index (temp float)
+0:46 'v' (smooth in 4-component vector of float)
+0:46 Constant:
+0:46 0 (const int)
+0:47 add second child into first child (temp 4X4 matrix of float)
+0:47 'm34' (temp 4X4 matrix of float)
+0:47 Construct mat4 (temp 4X4 matrix of float)
+0:47 'u' (smooth in 4-component vector of float)
+0:47 direct index (temp float)
+0:47 'u' (smooth in 4-component vector of float)
+0:47 Constant:
+0:47 0 (const int)
+0:47 'u' (smooth in 4-component vector of float)
+0:47 direct index (temp float)
+0:47 'u' (smooth in 4-component vector of float)
+0:47 Constant:
+0:47 0 (const int)
+0:47 'u' (smooth in 4-component vector of float)
+0:47 direct index (temp float)
+0:47 'u' (smooth in 4-component vector of float)
+0:47 Constant:
+0:47 0 (const int)
+0:47 direct index (temp float)
+0:47 'u' (smooth in 4-component vector of float)
+0:47 Constant:
+0:47 0 (const int)
+0:51 Test condition and select (temp void)
+0:51 Condition
+0:51 Compare Equal (temp bool)
+0:51 'm34' (temp 4X4 matrix of float)
+0:51 'un34' (uniform 4X4 matrix of float)
+0:51 true case
+0:52 add second child into first child (temp 4-component vector of float)
+0:52 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:52 matrix-times-vector (temp 4-component vector of float)
+0:52 'm34' (temp 4X4 matrix of float)
+0:52 'u' (smooth in 4-component vector of float)
+0:51 false case
+0:54 add second child into first child (temp 4-component vector of float)
+0:54 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:54 matrix-times-vector (temp 4-component vector of float)
+0:54 matrix-multiply (temp 4X4 matrix of float)
+0:54 'un34' (uniform 4X4 matrix of float)
+0:54 'um43' (uniform 4X4 matrix of float)
+0:54 'v' (smooth in 4-component vector of float)
+0:? Linker Objects
+0:? 'colorTransform' (uniform 3X3 matrix of float)
+0:? 'Color' (smooth in 3-component vector of float)
+0:? 'm' (uniform 4X4 matrix of float)
+0:? 'n' (uniform 4X4 matrix of float)
+0:? 'um43' (uniform 4X4 matrix of float)
+0:? 'un34' (uniform 4X4 matrix of float)
+0:? 'v' (smooth in 4-component vector of float)
+0:? 'u' (smooth in 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+0:? Sequence
+0:25 Function Definition: main( (global void)
+0:25 Function Parameters:
+0:27 Sequence
+0:27 move second child to first child (temp 4-component vector of float)
+0:27 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:27 Construct vec4 (temp 4-component vector of float)
+0:27 direct index (temp 4-component vector of float)
+0:27 'un34' (uniform 4X4 matrix of float)
+0:27 Constant:
+0:27 1 (const int)
+0:28 add second child into first child (temp 4-component vector of float)
+0:28 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:28 Construct vec4 (temp 4-component vector of float)
+0:28 vector-times-matrix (temp 3-component vector of float)
+0:28 'Color' (smooth in 3-component vector of float)
+0:28 'colorTransform' (uniform 3X3 matrix of float)
+0:28 Constant:
+0:28 1.000000
+0:30 Test condition and select (temp void)
+0:30 Condition
+0:30 Compare Not Equal (temp bool)
+0:30 'm' (uniform 4X4 matrix of float)
+0:30 'n' (uniform 4X4 matrix of float)
+0:30 true case
+0:31 add second child into first child (temp 4-component vector of float)
+0:31 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:31 'v' (smooth in 4-component vector of float)
+0:30 false case
+0:33 Sequence
+0:33 add second child into first child (temp 4-component vector of float)
+0:33 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:33 matrix-times-vector (temp 4-component vector of float)
+0:33 'm' (uniform 4X4 matrix of float)
+0:33 'v' (smooth in 4-component vector of float)
+0:34 add second child into first child (temp 4-component vector of float)
+0:34 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:34 vector-times-matrix (temp 4-component vector of float)
+0:34 'v' (smooth in 4-component vector of float)
+0:34 subtract (temp 4X4 matrix of float)
+0:34 'm' (uniform 4X4 matrix of float)
+0:34 'n' (uniform 4X4 matrix of float)
+0:42 Sequence
+0:42 move second child to first child (temp 4X4 matrix of float)
+0:42 'm34' (temp 4X4 matrix of float)
+0:45 Construct mat4 (temp 4X4 matrix of float)
+0:42 component-wise multiply (temp float)
+0:42 direct index (temp float)
+0:42 'v' (smooth in 4-component vector of float)
+0:42 Constant:
+0:42 0 (const int)
+0:42 direct index (temp float)
+0:42 'u' (smooth in 4-component vector of float)
+0:42 Constant:
+0:42 0 (const int)
+0:42 component-wise multiply (temp float)
+0:42 direct index (temp float)
+0:42 'v' (smooth in 4-component vector of float)
+0:42 Constant:
+0:42 0 (const int)
+0:42 direct index (temp float)
+0:42 'u' (smooth in 4-component vector of float)
+0:42 Constant:
+0:42 1 (const int)
+0:42 component-wise multiply (temp float)
+0:42 direct index (temp float)
+0:42 'v' (smooth in 4-component vector of float)
+0:42 Constant:
+0:42 0 (const int)
+0:42 direct index (temp float)
+0:42 'u' (smooth in 4-component vector of float)
+0:42 Constant:
+0:42 2 (const int)
+0:42 component-wise multiply (temp float)
+0:42 direct index (temp float)
+0:42 'v' (smooth in 4-component vector of float)
+0:42 Constant:
+0:42 0 (const int)
+0:42 direct index (temp float)
+0:42 'u' (smooth in 4-component vector of float)
+0:42 Constant:
+0:42 3 (const int)
+0:43 component-wise multiply (temp float)
+0:43 direct index (temp float)
+0:43 'v' (smooth in 4-component vector of float)
+0:43 Constant:
+0:43 1 (const int)
+0:43 direct index (temp float)
+0:43 'u' (smooth in 4-component vector of float)
+0:43 Constant:
+0:43 0 (const int)
+0:43 component-wise multiply (temp float)
+0:43 direct index (temp float)
+0:43 'v' (smooth in 4-component vector of float)
+0:43 Constant:
+0:43 1 (const int)
+0:43 direct index (temp float)
+0:43 'u' (smooth in 4-component vector of float)
+0:43 Constant:
+0:43 1 (const int)
+0:43 component-wise multiply (temp float)
+0:43 direct index (temp float)
+0:43 'v' (smooth in 4-component vector of float)
+0:43 Constant:
+0:43 1 (const int)
+0:43 direct index (temp float)
+0:43 'u' (smooth in 4-component vector of float)
+0:43 Constant:
+0:43 2 (const int)
+0:43 component-wise multiply (temp float)
+0:43 direct index (temp float)
+0:43 'v' (smooth in 4-component vector of float)
+0:43 Constant:
+0:43 1 (const int)
+0:43 direct index (temp float)
+0:43 'u' (smooth in 4-component vector of float)
+0:43 Constant:
+0:43 3 (const int)
+0:44 component-wise multiply (temp float)
+0:44 direct index (temp float)
+0:44 'v' (smooth in 4-component vector of float)
+0:44 Constant:
+0:44 2 (const int)
+0:44 direct index (temp float)
+0:44 'u' (smooth in 4-component vector of float)
+0:44 Constant:
+0:44 0 (const int)
+0:44 component-wise multiply (temp float)
+0:44 direct index (temp float)
+0:44 'v' (smooth in 4-component vector of float)
+0:44 Constant:
+0:44 2 (const int)
+0:44 direct index (temp float)
+0:44 'u' (smooth in 4-component vector of float)
+0:44 Constant:
+0:44 1 (const int)
+0:44 component-wise multiply (temp float)
+0:44 direct index (temp float)
+0:44 'v' (smooth in 4-component vector of float)
+0:44 Constant:
+0:44 2 (const int)
+0:44 direct index (temp float)
+0:44 'u' (smooth in 4-component vector of float)
+0:44 Constant:
+0:44 2 (const int)
+0:44 component-wise multiply (temp float)
+0:44 direct index (temp float)
+0:44 'v' (smooth in 4-component vector of float)
+0:44 Constant:
+0:44 2 (const int)
+0:44 direct index (temp float)
+0:44 'u' (smooth in 4-component vector of float)
+0:44 Constant:
+0:44 3 (const int)
+0:45 component-wise multiply (temp float)
+0:45 direct index (temp float)
+0:45 'v' (smooth in 4-component vector of float)
+0:45 Constant:
+0:45 3 (const int)
+0:45 direct index (temp float)
+0:45 'u' (smooth in 4-component vector of float)
+0:45 Constant:
+0:45 0 (const int)
+0:45 component-wise multiply (temp float)
+0:45 direct index (temp float)
+0:45 'v' (smooth in 4-component vector of float)
+0:45 Constant:
+0:45 3 (const int)
+0:45 direct index (temp float)
+0:45 'u' (smooth in 4-component vector of float)
+0:45 Constant:
+0:45 1 (const int)
+0:45 component-wise multiply (temp float)
+0:45 direct index (temp float)
+0:45 'v' (smooth in 4-component vector of float)
+0:45 Constant:
+0:45 3 (const int)
+0:45 direct index (temp float)
+0:45 'u' (smooth in 4-component vector of float)
+0:45 Constant:
+0:45 2 (const int)
+0:45 component-wise multiply (temp float)
+0:45 direct index (temp float)
+0:45 'v' (smooth in 4-component vector of float)
+0:45 Constant:
+0:45 3 (const int)
+0:45 direct index (temp float)
+0:45 'u' (smooth in 4-component vector of float)
+0:45 Constant:
+0:45 3 (const int)
+0:46 add second child into first child (temp 4X4 matrix of float)
+0:46 'm34' (temp 4X4 matrix of float)
+0:46 Construct mat4 (temp 4X4 matrix of float)
+0:46 direct index (temp float)
+0:46 'v' (smooth in 4-component vector of float)
+0:46 Constant:
+0:46 0 (const int)
+0:47 add second child into first child (temp 4X4 matrix of float)
+0:47 'm34' (temp 4X4 matrix of float)
+0:47 Construct mat4 (temp 4X4 matrix of float)
+0:47 'u' (smooth in 4-component vector of float)
+0:47 direct index (temp float)
+0:47 'u' (smooth in 4-component vector of float)
+0:47 Constant:
+0:47 0 (const int)
+0:47 'u' (smooth in 4-component vector of float)
+0:47 direct index (temp float)
+0:47 'u' (smooth in 4-component vector of float)
+0:47 Constant:
+0:47 0 (const int)
+0:47 'u' (smooth in 4-component vector of float)
+0:47 direct index (temp float)
+0:47 'u' (smooth in 4-component vector of float)
+0:47 Constant:
+0:47 0 (const int)
+0:47 direct index (temp float)
+0:47 'u' (smooth in 4-component vector of float)
+0:47 Constant:
+0:47 0 (const int)
+0:51 Test condition and select (temp void)
+0:51 Condition
+0:51 Compare Equal (temp bool)
+0:51 'm34' (temp 4X4 matrix of float)
+0:51 'un34' (uniform 4X4 matrix of float)
+0:51 true case
+0:52 add second child into first child (temp 4-component vector of float)
+0:52 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:52 matrix-times-vector (temp 4-component vector of float)
+0:52 'm34' (temp 4X4 matrix of float)
+0:52 'u' (smooth in 4-component vector of float)
+0:51 false case
+0:54 add second child into first child (temp 4-component vector of float)
+0:54 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:54 matrix-times-vector (temp 4-component vector of float)
+0:54 matrix-multiply (temp 4X4 matrix of float)
+0:54 'un34' (uniform 4X4 matrix of float)
+0:54 'um43' (uniform 4X4 matrix of float)
+0:54 'v' (smooth in 4-component vector of float)
+0:? Linker Objects
+0:? 'colorTransform' (uniform 3X3 matrix of float)
+0:? 'Color' (smooth in 3-component vector of float)
+0:? 'm' (uniform 4X4 matrix of float)
+0:? 'n' (uniform 4X4 matrix of float)
+0:? 'um43' (uniform 4X4 matrix of float)
+0:? 'un34' (uniform 4X4 matrix of float)
+0:? 'v' (smooth in 4-component vector of float)
+0:? 'u' (smooth in 4-component vector of float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/matrix2.frag.out b/chromium/third_party/glslang/src/Test/baseResults/matrix2.frag.out
new file mode 100644
index 00000000000..d09dec0bf18
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/matrix2.frag.out
@@ -0,0 +1,347 @@
+matrix2.frag
+WARNING: 0:4: varying deprecated in version 130; may be removed in future release
+WARNING: 0:13: varying deprecated in version 130; may be removed in future release
+WARNING: 0:15: varying deprecated in version 130; may be removed in future release
+
+Shader version: 150
+0:? Sequence
+0:19 Function Definition: main( (global void)
+0:19 Function Parameters:
+0:21 Sequence
+0:21 Sequence
+0:21 move second child to first child (temp 3X4 matrix of float)
+0:21 'm34' (temp 3X4 matrix of float)
+0:21 outer product (global 3X4 matrix of float)
+0:21 'v' (smooth in 4-component vector of float)
+0:21 'u' (smooth in 3-component vector of float)
+0:23 add second child into first child (temp 3X4 matrix of float)
+0:23 'm34' (temp 3X4 matrix of float)
+0:23 Constant:
+0:23 4.300000
+0:23 0.000000
+0:23 0.000000
+0:23 0.000000
+0:23 0.000000
+0:23 4.300000
+0:23 0.000000
+0:23 0.000000
+0:23 0.000000
+0:23 0.000000
+0:23 4.300000
+0:23 0.000000
+0:25 move second child to first child (temp 4-component vector of float)
+0:25 'FragColor' (out 4-component vector of float)
+0:25 Construct vec4 (temp 4-component vector of float)
+0:25 'Color' (smooth in 3-component vector of float)
+0:25 Constant:
+0:25 1.000000
+0:26 multiply second child into first child (temp 4-component vector of float)
+0:26 'FragColor' (out 4-component vector of float)
+0:26 Construct vec4 (temp 4-component vector of float)
+0:26 vector-times-matrix (temp 3-component vector of float)
+0:26 'FragColor' (out 4-component vector of float)
+0:26 'm34' (temp 3X4 matrix of float)
+0:26 Constant:
+0:26 1.000000
+0:28 matrix scale second child into first child (temp 3X4 matrix of float)
+0:28 'm34' (temp 3X4 matrix of float)
+0:28 direct index (temp float)
+0:28 'v' (smooth in 4-component vector of float)
+0:28 Constant:
+0:28 0 (const int)
+0:30 Sequence
+0:30 move second child to first child (temp 4X4 matrix of float)
+0:30 'm44' (temp 4X4 matrix of float)
+0:30 Construct mat4 (temp 4X4 matrix of float)
+0:30 'un34' (uniform 3X4 matrix of float)
+0:32 add second child into first child (temp 4X4 matrix of float)
+0:32 'm44' (temp 4X4 matrix of float)
+0:32 matrix-multiply (temp 4X4 matrix of float)
+0:32 'm34' (temp 3X4 matrix of float)
+0:32 'um43' (uniform 4X3 matrix of float)
+0:34 add second child into first child (temp 4-component vector of float)
+0:34 'FragColor' (out 4-component vector of float)
+0:34 matrix-times-vector (temp 4-component vector of float)
+0:34 Negate value (temp 4X4 matrix of float)
+0:34 'm44' (temp 4X4 matrix of float)
+0:34 'v' (smooth in 4-component vector of float)
+0:36 matrix mult second child into first child (temp 4-component vector of float)
+0:36 'FragColor' (out 4-component vector of float)
+0:36 component-wise multiply (global 4X4 matrix of float)
+0:36 'm44' (temp 4X4 matrix of float)
+0:36 'm44' (temp 4X4 matrix of float)
+0:38 move second child to first child (temp 3X4 matrix of float)
+0:38 'm34' (temp 3X4 matrix of float)
+0:38 transpose (global 3X4 matrix of float)
+0:38 'um43' (uniform 4X3 matrix of float)
+0:39 multiply second child into first child (temp 4-component vector of float)
+0:39 'FragColor' (out 4-component vector of float)
+0:39 Construct vec4 (temp 4-component vector of float)
+0:39 vector-times-matrix (temp 3-component vector of float)
+0:39 'FragColor' (out 4-component vector of float)
+0:39 'm34' (temp 3X4 matrix of float)
+0:39 Constant:
+0:39 1.000000
+0:40 multiply second child into first child (temp 4-component vector of float)
+0:40 'FragColor' (out 4-component vector of float)
+0:40 Construct vec4 (temp 4-component vector of float)
+0:40 determinant (global float)
+0:40 'um4' (uniform 4X4 matrix of float)
+0:41 Sequence
+0:41 move second child to first child (temp 2X2 matrix of float)
+0:41 'inv' (temp 2X2 matrix of float)
+0:41 inverse (global 2X2 matrix of float)
+0:41 'um2' (uniform 2X2 matrix of float)
+0:42 multiply second child into first child (temp 4-component vector of float)
+0:42 'FragColor' (out 4-component vector of float)
+0:42 Construct vec4 (temp 4-component vector of float)
+0:42 direct index (temp float)
+0:42 direct index (temp 2-component vector of float)
+0:42 'inv' (temp 2X2 matrix of float)
+0:42 Constant:
+0:42 0 (const int)
+0:42 Constant:
+0:42 0 (const int)
+0:42 direct index (temp float)
+0:42 direct index (temp 2-component vector of float)
+0:42 'inv' (temp 2X2 matrix of float)
+0:42 Constant:
+0:42 1 (const int)
+0:42 Constant:
+0:42 0 (const int)
+0:42 direct index (temp float)
+0:42 direct index (temp 2-component vector of float)
+0:42 'inv' (temp 2X2 matrix of float)
+0:42 Constant:
+0:42 0 (const int)
+0:42 Constant:
+0:42 1 (const int)
+0:42 direct index (temp float)
+0:42 direct index (temp 2-component vector of float)
+0:42 'inv' (temp 2X2 matrix of float)
+0:42 Constant:
+0:42 1 (const int)
+0:42 Constant:
+0:42 1 (const int)
+0:43 Sequence
+0:43 move second child to first child (temp 3X3 matrix of float)
+0:43 'inv3' (temp 3X3 matrix of float)
+0:43 inverse (global 3X3 matrix of float)
+0:43 'um3' (uniform 3X3 matrix of float)
+0:44 multiply second child into first child (temp 4-component vector of float)
+0:44 'FragColor' (out 4-component vector of float)
+0:44 Construct vec4 (temp 4-component vector of float)
+0:44 direct index (temp float)
+0:44 direct index (temp 3-component vector of float)
+0:44 'inv3' (temp 3X3 matrix of float)
+0:44 Constant:
+0:44 2 (const int)
+0:44 Constant:
+0:44 1 (const int)
+0:46 Sequence
+0:46 move second child to first child (temp 4X4 matrix of float)
+0:46 'inv4' (temp 4X4 matrix of float)
+0:46 inverse (global 4X4 matrix of float)
+0:46 'um4' (uniform 4X4 matrix of float)
+0:47 matrix mult second child into first child (temp 4-component vector of float)
+0:47 'FragColor' (out 4-component vector of float)
+0:47 'inv4' (temp 4X4 matrix of float)
+0:49 move second child to first child (temp 4-component vector of float)
+0:49 'FragColor' (out 4-component vector of float)
+0:49 Construct vec4 (temp 4-component vector of float)
+0:49 vector-times-matrix (temp 3-component vector of float)
+0:49 'FragColor' (out 4-component vector of float)
+0:49 component-wise multiply (global 3X4 matrix of float)
+0:49 'un34' (uniform 3X4 matrix of float)
+0:49 'un34' (uniform 3X4 matrix of float)
+0:49 direct index (temp float)
+0:49 'FragColor' (out 4-component vector of float)
+0:49 Constant:
+0:49 3 (const int)
+0:? Linker Objects
+0:? 'colorTransform' (uniform 3X3 matrix of float)
+0:? 'Color' (smooth in 3-component vector of float)
+0:? 'm' (uniform 4X4 matrix of float)
+0:? 'n' (uniform 4X4 matrix of float)
+0:? 'um43' (uniform 4X3 matrix of float)
+0:? 'un34' (uniform 3X4 matrix of float)
+0:? 'um2' (uniform 2X2 matrix of float)
+0:? 'um3' (uniform 3X3 matrix of float)
+0:? 'um4' (uniform 4X4 matrix of float)
+0:? 'v' (smooth in 4-component vector of float)
+0:? 'u' (smooth in 3-component vector of float)
+0:? 'FragColor' (out 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 150
+0:? Sequence
+0:19 Function Definition: main( (global void)
+0:19 Function Parameters:
+0:21 Sequence
+0:21 Sequence
+0:21 move second child to first child (temp 3X4 matrix of float)
+0:21 'm34' (temp 3X4 matrix of float)
+0:21 outer product (global 3X4 matrix of float)
+0:21 'v' (smooth in 4-component vector of float)
+0:21 'u' (smooth in 3-component vector of float)
+0:23 add second child into first child (temp 3X4 matrix of float)
+0:23 'm34' (temp 3X4 matrix of float)
+0:23 Constant:
+0:23 4.300000
+0:23 0.000000
+0:23 0.000000
+0:23 0.000000
+0:23 0.000000
+0:23 4.300000
+0:23 0.000000
+0:23 0.000000
+0:23 0.000000
+0:23 0.000000
+0:23 4.300000
+0:23 0.000000
+0:25 move second child to first child (temp 4-component vector of float)
+0:25 'FragColor' (out 4-component vector of float)
+0:25 Construct vec4 (temp 4-component vector of float)
+0:25 'Color' (smooth in 3-component vector of float)
+0:25 Constant:
+0:25 1.000000
+0:26 multiply second child into first child (temp 4-component vector of float)
+0:26 'FragColor' (out 4-component vector of float)
+0:26 Construct vec4 (temp 4-component vector of float)
+0:26 vector-times-matrix (temp 3-component vector of float)
+0:26 'FragColor' (out 4-component vector of float)
+0:26 'm34' (temp 3X4 matrix of float)
+0:26 Constant:
+0:26 1.000000
+0:28 matrix scale second child into first child (temp 3X4 matrix of float)
+0:28 'm34' (temp 3X4 matrix of float)
+0:28 direct index (temp float)
+0:28 'v' (smooth in 4-component vector of float)
+0:28 Constant:
+0:28 0 (const int)
+0:30 Sequence
+0:30 move second child to first child (temp 4X4 matrix of float)
+0:30 'm44' (temp 4X4 matrix of float)
+0:30 Construct mat4 (temp 4X4 matrix of float)
+0:30 'un34' (uniform 3X4 matrix of float)
+0:32 add second child into first child (temp 4X4 matrix of float)
+0:32 'm44' (temp 4X4 matrix of float)
+0:32 matrix-multiply (temp 4X4 matrix of float)
+0:32 'm34' (temp 3X4 matrix of float)
+0:32 'um43' (uniform 4X3 matrix of float)
+0:34 add second child into first child (temp 4-component vector of float)
+0:34 'FragColor' (out 4-component vector of float)
+0:34 matrix-times-vector (temp 4-component vector of float)
+0:34 Negate value (temp 4X4 matrix of float)
+0:34 'm44' (temp 4X4 matrix of float)
+0:34 'v' (smooth in 4-component vector of float)
+0:36 matrix mult second child into first child (temp 4-component vector of float)
+0:36 'FragColor' (out 4-component vector of float)
+0:36 component-wise multiply (global 4X4 matrix of float)
+0:36 'm44' (temp 4X4 matrix of float)
+0:36 'm44' (temp 4X4 matrix of float)
+0:38 move second child to first child (temp 3X4 matrix of float)
+0:38 'm34' (temp 3X4 matrix of float)
+0:38 transpose (global 3X4 matrix of float)
+0:38 'um43' (uniform 4X3 matrix of float)
+0:39 multiply second child into first child (temp 4-component vector of float)
+0:39 'FragColor' (out 4-component vector of float)
+0:39 Construct vec4 (temp 4-component vector of float)
+0:39 vector-times-matrix (temp 3-component vector of float)
+0:39 'FragColor' (out 4-component vector of float)
+0:39 'm34' (temp 3X4 matrix of float)
+0:39 Constant:
+0:39 1.000000
+0:40 multiply second child into first child (temp 4-component vector of float)
+0:40 'FragColor' (out 4-component vector of float)
+0:40 Construct vec4 (temp 4-component vector of float)
+0:40 determinant (global float)
+0:40 'um4' (uniform 4X4 matrix of float)
+0:41 Sequence
+0:41 move second child to first child (temp 2X2 matrix of float)
+0:41 'inv' (temp 2X2 matrix of float)
+0:41 inverse (global 2X2 matrix of float)
+0:41 'um2' (uniform 2X2 matrix of float)
+0:42 multiply second child into first child (temp 4-component vector of float)
+0:42 'FragColor' (out 4-component vector of float)
+0:42 Construct vec4 (temp 4-component vector of float)
+0:42 direct index (temp float)
+0:42 direct index (temp 2-component vector of float)
+0:42 'inv' (temp 2X2 matrix of float)
+0:42 Constant:
+0:42 0 (const int)
+0:42 Constant:
+0:42 0 (const int)
+0:42 direct index (temp float)
+0:42 direct index (temp 2-component vector of float)
+0:42 'inv' (temp 2X2 matrix of float)
+0:42 Constant:
+0:42 1 (const int)
+0:42 Constant:
+0:42 0 (const int)
+0:42 direct index (temp float)
+0:42 direct index (temp 2-component vector of float)
+0:42 'inv' (temp 2X2 matrix of float)
+0:42 Constant:
+0:42 0 (const int)
+0:42 Constant:
+0:42 1 (const int)
+0:42 direct index (temp float)
+0:42 direct index (temp 2-component vector of float)
+0:42 'inv' (temp 2X2 matrix of float)
+0:42 Constant:
+0:42 1 (const int)
+0:42 Constant:
+0:42 1 (const int)
+0:43 Sequence
+0:43 move second child to first child (temp 3X3 matrix of float)
+0:43 'inv3' (temp 3X3 matrix of float)
+0:43 inverse (global 3X3 matrix of float)
+0:43 'um3' (uniform 3X3 matrix of float)
+0:44 multiply second child into first child (temp 4-component vector of float)
+0:44 'FragColor' (out 4-component vector of float)
+0:44 Construct vec4 (temp 4-component vector of float)
+0:44 direct index (temp float)
+0:44 direct index (temp 3-component vector of float)
+0:44 'inv3' (temp 3X3 matrix of float)
+0:44 Constant:
+0:44 2 (const int)
+0:44 Constant:
+0:44 1 (const int)
+0:46 Sequence
+0:46 move second child to first child (temp 4X4 matrix of float)
+0:46 'inv4' (temp 4X4 matrix of float)
+0:46 inverse (global 4X4 matrix of float)
+0:46 'um4' (uniform 4X4 matrix of float)
+0:47 matrix mult second child into first child (temp 4-component vector of float)
+0:47 'FragColor' (out 4-component vector of float)
+0:47 'inv4' (temp 4X4 matrix of float)
+0:49 move second child to first child (temp 4-component vector of float)
+0:49 'FragColor' (out 4-component vector of float)
+0:49 Construct vec4 (temp 4-component vector of float)
+0:49 vector-times-matrix (temp 3-component vector of float)
+0:49 'FragColor' (out 4-component vector of float)
+0:49 component-wise multiply (global 3X4 matrix of float)
+0:49 'un34' (uniform 3X4 matrix of float)
+0:49 'un34' (uniform 3X4 matrix of float)
+0:49 direct index (temp float)
+0:49 'FragColor' (out 4-component vector of float)
+0:49 Constant:
+0:49 3 (const int)
+0:? Linker Objects
+0:? 'colorTransform' (uniform 3X3 matrix of float)
+0:? 'Color' (smooth in 3-component vector of float)
+0:? 'm' (uniform 4X4 matrix of float)
+0:? 'n' (uniform 4X4 matrix of float)
+0:? 'um43' (uniform 4X3 matrix of float)
+0:? 'un34' (uniform 3X4 matrix of float)
+0:? 'um2' (uniform 2X2 matrix of float)
+0:? 'um3' (uniform 3X3 matrix of float)
+0:? 'um4' (uniform 4X4 matrix of float)
+0:? 'v' (smooth in 4-component vector of float)
+0:? 'u' (smooth in 3-component vector of float)
+0:? 'FragColor' (out 4-component vector of float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/matrixError.vert.out b/chromium/third_party/glslang/src/Test/baseResults/matrixError.vert.out
new file mode 100644
index 00000000000..ee0646ea0c3
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/matrixError.vert.out
@@ -0,0 +1,71 @@
+matrixError.vert
+ERROR: 0:10: 'constructor' : too many arguments
+ERROR: 0:7: 'const' : non-matching or non-convertible constant type for const initializer
+ERROR: 0:17: 'assign' : cannot convert from 'temp 2-component vector of float' to 'temp 3-component vector of float'
+ERROR: 0:18: 'assign' : cannot convert from 'temp 2-component vector of float' to 'temp 3-component vector of float'
+ERROR: 0:19: 'xy' : does not apply to this type: temp 2X3 matrix of float
+ERROR: 0:21: '[' : matrix index out of range '2'
+ERROR: 0:21: '[' : vector index out of range '4'
+ERROR: 7 compilation errors. No code generated.
+
+
+Shader version: 120
+ERROR: node is still EOpNull!
+0:12 Function Definition: main( (global void)
+0:12 Function Parameters:
+0:? Sequence
+0:17 'a' (temp 3-component vector of float)
+0:18 'b' (temp 3-component vector of float)
+0:19 'm23' (temp 2X3 matrix of float)
+0:21 move second child to first child (temp 4-component vector of float)
+0:21 'gl_Position' (gl_Position 4-component vector of float Position)
+0:21 Construct vec4 (temp 4-component vector of float)
+0:21 matrix-times-vector (temp 3-component vector of float)
+0:21 matrix-multiply (temp 3X3 matrix of float)
+0:21 'm23' (temp 2X3 matrix of float)
+0:21 'm32' (uniform 3X2 matrix of float)
+0:21 'v3' (in 3-component vector of float)
+0:21 direct index (temp float)
+0:21 direct index (temp 4-component vector of float)
+0:21 'm24' (temp 2X4 matrix of float)
+0:21 Constant:
+0:21 2 (const int)
+0:21 Constant:
+0:21 4 (const int)
+0:? Linker Objects
+0:? 'v3' (in 3-component vector of float)
+0:? 'm32' (uniform 3X2 matrix of float)
+0:? 'm24' (temp 2X4 matrix of float)
+
+
+Linked vertex stage:
+
+
+Shader version: 120
+ERROR: node is still EOpNull!
+0:12 Function Definition: main( (global void)
+0:12 Function Parameters:
+0:? Sequence
+0:17 'a' (temp 3-component vector of float)
+0:18 'b' (temp 3-component vector of float)
+0:19 'm23' (temp 2X3 matrix of float)
+0:21 move second child to first child (temp 4-component vector of float)
+0:21 'gl_Position' (gl_Position 4-component vector of float Position)
+0:21 Construct vec4 (temp 4-component vector of float)
+0:21 matrix-times-vector (temp 3-component vector of float)
+0:21 matrix-multiply (temp 3X3 matrix of float)
+0:21 'm23' (temp 2X3 matrix of float)
+0:21 'm32' (uniform 3X2 matrix of float)
+0:21 'v3' (in 3-component vector of float)
+0:21 direct index (temp float)
+0:21 direct index (temp 4-component vector of float)
+0:21 'm24' (temp 2X4 matrix of float)
+0:21 Constant:
+0:21 2 (const int)
+0:21 Constant:
+0:21 4 (const int)
+0:? Linker Objects
+0:? 'v3' (in 3-component vector of float)
+0:? 'm32' (uniform 3X2 matrix of float)
+0:? 'm24' (temp 2X4 matrix of float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/max_vertices_0.geom.out b/chromium/third_party/glslang/src/Test/baseResults/max_vertices_0.geom.out
new file mode 100644
index 00000000000..94890bc8915
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/max_vertices_0.geom.out
@@ -0,0 +1,35 @@
+max_vertices_0.geom
+Shader version: 330
+invocations = -1
+max_vertices = 0
+input primitive = points
+output primitive = triangle_strip
+0:? Sequence
+0:8 Function Definition: main( (global void)
+0:8 Function Parameters:
+0:10 Sequence
+0:10 EndPrimitive (global void)
+0:11 EndPrimitive (global void)
+0:? Linker Objects
+0:? 'v_geom_FragColor' (in 1-element array of 4-component vector of float)
+0:? 'v_frag_FragColor' (layout(stream=0 ) out 4-component vector of float)
+
+
+Linked geometry stage:
+
+
+Shader version: 330
+invocations = 1
+max_vertices = 0
+input primitive = points
+output primitive = triangle_strip
+0:? Sequence
+0:8 Function Definition: main( (global void)
+0:8 Function Parameters:
+0:10 Sequence
+0:10 EndPrimitive (global void)
+0:11 EndPrimitive (global void)
+0:? Linker Objects
+0:? 'v_geom_FragColor' (in 1-element array of 4-component vector of float)
+0:? 'v_frag_FragColor' (layout(stream=0 ) out 4-component vector of float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/negativeArraySize.comp.out b/chromium/third_party/glslang/src/Test/baseResults/negativeArraySize.comp.out
new file mode 100644
index 00000000000..ccbabf5f15a
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/negativeArraySize.comp.out
@@ -0,0 +1,24 @@
+negativeArraySize.comp
+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:9: '' : array size must be a positive integer
+ERROR: 1 compilation errors. No code generated.
+
+
+Shader version: 310
+local_size = (1, 1, 1)
+ERROR: node is still EOpNull!
+0:7 Function Definition: main( (global void)
+0:7 Function Parameters:
+0:? Linker Objects
+
+
+Linked compute stage:
+
+
+Shader version: 310
+local_size = (1, 1, 1)
+ERROR: node is still EOpNull!
+0:7 Function Definition: main( (global void)
+0:7 Function Parameters:
+0:? Linker Objects
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/newTexture.frag.out b/chromium/third_party/glslang/src/Test/baseResults/newTexture.frag.out
new file mode 100644
index 00000000000..f63d79f12d1
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/newTexture.frag.out
@@ -0,0 +1,523 @@
+newTexture.frag
+Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
+
+Shader version: 430
+0:? Sequence
+0:36 Function Definition: main( (global void)
+0:36 Function Parameters:
+0:38 Sequence
+0:38 Sequence
+0:38 move second child to first child (temp 4-component vector of float)
+0:38 'v' (temp 4-component vector of float)
+0:38 texture (global 4-component vector of float)
+0:38 's2D' (uniform sampler2D)
+0:38 'c2D' (smooth in 2-component vector of float)
+0:39 add second child into first child (temp 4-component vector of float)
+0:39 'v' (temp 4-component vector of float)
+0:39 textureProj (global 4-component vector of float)
+0:39 's3D' (uniform sampler3D)
+0:39 'c4D' (smooth in 4-component vector of float)
+0:40 add second child into first child (temp 4-component vector of float)
+0:40 'v' (temp 4-component vector of float)
+0:40 textureLod (global 4-component vector of float)
+0:40 's2DArray' (uniform sampler2DArray)
+0:40 'c3D' (smooth in 3-component vector of float)
+0:40 Constant:
+0:40 1.200000
+0:41 add second child into first child (temp float)
+0:41 direct index (temp float)
+0:41 'v' (temp 4-component vector of float)
+0:41 Constant:
+0:41 1 (const int)
+0:41 textureOffset (global float)
+0:41 's2DShadow' (uniform sampler2DShadow)
+0:41 'c3D' (smooth in 3-component vector of float)
+0:41 Constant:
+0:41 3 (const int)
+0:41 3 (const int)
+0:41 'c1D' (smooth in float)
+0:42 add second child into first child (temp 4-component vector of float)
+0:42 'v' (temp 4-component vector of float)
+0:42 textureFetch (global 4-component vector of float)
+0:42 's3D' (uniform sampler3D)
+0:42 'ic3D' (flat in 3-component vector of int)
+0:42 'ic1D' (flat in int)
+0:43 add second child into first child (temp 4-component vector of float)
+0:43 'v' (temp 4-component vector of float)
+0:43 textureFetchOffset (global 4-component vector of float)
+0:43 's2D' (uniform sampler2D)
+0:43 'ic2D' (flat in 2-component vector of int)
+0:43 Constant:
+0:43 4 (const int)
+0:43 Constant:
+0:43 3 (const int)
+0:43 3 (const int)
+0:44 add second child into first child (temp 4-component vector of float)
+0:44 'v' (temp 4-component vector of float)
+0:44 textureFetchOffset (global 4-component vector of float)
+0:44 'sr' (uniform sampler2DRect)
+0:44 'ic2D' (flat in 2-component vector of int)
+0:44 Constant:
+0:44 4 (const int)
+0:44 4 (const int)
+0:45 add second child into first child (temp float)
+0:45 direct index (temp float)
+0:45 'v' (temp 4-component vector of float)
+0:45 Constant:
+0:45 1 (const int)
+0:45 textureLodOffset (global float)
+0:45 's2DShadow' (uniform sampler2DShadow)
+0:45 'c3D' (smooth in 3-component vector of float)
+0:45 'c1D' (smooth in float)
+0:45 Constant:
+0:45 3 (const int)
+0:45 3 (const int)
+0:46 add second child into first child (temp 4-component vector of float)
+0:46 'v' (temp 4-component vector of float)
+0:46 textureProjLodOffset (global 4-component vector of float)
+0:46 's2D' (uniform sampler2D)
+0:46 'c3D' (smooth in 3-component vector of float)
+0:46 'c1D' (smooth in float)
+0:46 Constant:
+0:46 3 (const int)
+0:46 3 (const int)
+0:47 add second child into first child (temp 4-component vector of float)
+0:47 'v' (temp 4-component vector of float)
+0:47 textureGrad (global 4-component vector of float)
+0:47 'sCube' (uniform samplerCube)
+0:47 'c3D' (smooth in 3-component vector of float)
+0:47 'c3D' (smooth in 3-component vector of float)
+0:47 'c3D' (smooth in 3-component vector of float)
+0:48 add second child into first child (temp float)
+0:48 direct index (temp float)
+0:48 'v' (temp 4-component vector of float)
+0:48 Constant:
+0:48 0 (const int)
+0:48 textureGradOffset (global float)
+0:48 's2DArrayShadow' (uniform sampler2DArrayShadow)
+0:48 'c4D' (smooth in 4-component vector of float)
+0:48 'c2D' (smooth in 2-component vector of float)
+0:48 'c2D' (smooth in 2-component vector of float)
+0:48 Constant:
+0:48 3 (const int)
+0:48 3 (const int)
+0:49 add second child into first child (temp 4-component vector of float)
+0:49 'v' (temp 4-component vector of float)
+0:49 textureProjGrad (global 4-component vector of float)
+0:49 's3D' (uniform sampler3D)
+0:49 'c4D' (smooth in 4-component vector of float)
+0:49 'c3D' (smooth in 3-component vector of float)
+0:49 'c3D' (smooth in 3-component vector of float)
+0:50 add second child into first child (temp 4-component vector of float)
+0:50 'v' (temp 4-component vector of float)
+0:50 textureProjGradOffset (global 4-component vector of float)
+0:50 's2D' (uniform sampler2D)
+0:50 'c3D' (smooth in 3-component vector of float)
+0:50 'c2D' (smooth in 2-component vector of float)
+0:50 'c2D' (smooth in 2-component vector of float)
+0:50 Constant:
+0:50 3 (const int)
+0:50 3 (const int)
+0:52 Sequence
+0:52 move second child to first child (temp 4-component vector of int)
+0:52 'iv' (temp 4-component vector of int)
+0:52 texture (global 4-component vector of int)
+0:52 'is2D' (uniform isampler2D)
+0:52 'c2D' (smooth in 2-component vector of float)
+0:53 add second child into first child (temp 4-component vector of float)
+0:53 'v' (temp 4-component vector of float)
+0:53 Convert int to float (temp 4-component vector of float)
+0:53 'iv' (temp 4-component vector of int)
+0:54 move second child to first child (temp 4-component vector of int)
+0:54 'iv' (temp 4-component vector of int)
+0:54 textureProjOffset (global 4-component vector of int)
+0:54 'is2D' (uniform isampler2D)
+0:54 'c4D' (smooth in 4-component vector of float)
+0:54 Constant:
+0:54 3 (const int)
+0:54 3 (const int)
+0:55 add second child into first child (temp 4-component vector of float)
+0:55 'v' (temp 4-component vector of float)
+0:55 Convert int to float (temp 4-component vector of float)
+0:55 'iv' (temp 4-component vector of int)
+0:56 move second child to first child (temp 4-component vector of int)
+0:56 'iv' (temp 4-component vector of int)
+0:56 textureProjLod (global 4-component vector of int)
+0:56 'is2D' (uniform isampler2D)
+0:56 'c3D' (smooth in 3-component vector of float)
+0:56 'c1D' (smooth in float)
+0:57 add second child into first child (temp 4-component vector of float)
+0:57 'v' (temp 4-component vector of float)
+0:57 Convert int to float (temp 4-component vector of float)
+0:57 'iv' (temp 4-component vector of int)
+0:58 move second child to first child (temp 4-component vector of int)
+0:58 'iv' (temp 4-component vector of int)
+0:58 textureProjGrad (global 4-component vector of int)
+0:58 'is2D' (uniform isampler2D)
+0:58 'c3D' (smooth in 3-component vector of float)
+0:58 'c2D' (smooth in 2-component vector of float)
+0:58 'c2D' (smooth in 2-component vector of float)
+0:59 add second child into first child (temp 4-component vector of float)
+0:59 'v' (temp 4-component vector of float)
+0:59 Convert int to float (temp 4-component vector of float)
+0:59 'iv' (temp 4-component vector of int)
+0:60 move second child to first child (temp 4-component vector of int)
+0:60 'iv' (temp 4-component vector of int)
+0:60 texture (global 4-component vector of int)
+0:60 'is3D' (uniform isampler3D)
+0:60 'c3D' (smooth in 3-component vector of float)
+0:60 Constant:
+0:60 4.200000
+0:61 add second child into first child (temp 4-component vector of float)
+0:61 'v' (temp 4-component vector of float)
+0:61 Convert int to float (temp 4-component vector of float)
+0:61 'iv' (temp 4-component vector of int)
+0:62 move second child to first child (temp 4-component vector of int)
+0:62 'iv' (temp 4-component vector of int)
+0:62 textureLod (global 4-component vector of int)
+0:62 'isCube' (uniform isamplerCube)
+0:62 'c3D' (smooth in 3-component vector of float)
+0:62 'c1D' (smooth in float)
+0:63 add second child into first child (temp 4-component vector of float)
+0:63 'v' (temp 4-component vector of float)
+0:63 Convert int to float (temp 4-component vector of float)
+0:63 'iv' (temp 4-component vector of int)
+0:64 move second child to first child (temp 4-component vector of int)
+0:64 'iv' (temp 4-component vector of int)
+0:64 textureFetch (global 4-component vector of int)
+0:64 'is2DArray' (uniform isampler2DArray)
+0:64 'ic3D' (flat in 3-component vector of int)
+0:64 'ic1D' (flat in int)
+0:65 add second child into first child (temp 4-component vector of float)
+0:65 'v' (temp 4-component vector of float)
+0:65 Convert int to float (temp 4-component vector of float)
+0:65 'iv' (temp 4-component vector of int)
+0:66 add second child into first child (temp 4-component vector of int)
+0:66 'iv' (temp 4-component vector of int)
+0:66 textureFetch (global 4-component vector of int)
+0:66 'is2Dms' (uniform isampler2DMS)
+0:66 'ic2D' (flat in 2-component vector of int)
+0:66 'ic1D' (flat in int)
+0:67 add second child into first child (temp 4-component vector of float)
+0:67 'v' (temp 4-component vector of float)
+0:67 Convert int to float (temp 4-component vector of float)
+0:67 'iv' (temp 4-component vector of int)
+0:68 add second child into first child (temp 4-component vector of float)
+0:68 'v' (temp 4-component vector of float)
+0:68 textureFetch (global 4-component vector of float)
+0:68 'sb' (uniform samplerBuffer)
+0:68 'ic1D' (flat in int)
+0:69 add second child into first child (temp 4-component vector of float)
+0:69 'v' (temp 4-component vector of float)
+0:69 textureFetch (global 4-component vector of float)
+0:69 'sr' (uniform sampler2DRect)
+0:69 'ic2D' (flat in 2-component vector of int)
+0:71 Sequence
+0:71 move second child to first child (temp 2-component vector of int)
+0:71 'iv2' (temp 2-component vector of int)
+0:71 textureSize (global 2-component vector of int)
+0:71 'sCubeShadow' (uniform samplerCubeShadow)
+0:71 Constant:
+0:71 2 (const int)
+0:74 move second child to first child (temp 4-component vector of float)
+0:74 'FragData' (out 4-component vector of float)
+0:74 add (temp 4-component vector of float)
+0:74 'v' (temp 4-component vector of float)
+0:74 Construct vec4 (temp 4-component vector of float)
+0:74 Convert int to float (temp 2-component vector of float)
+0:74 'iv2' (temp 2-component vector of int)
+0:74 Constant:
+0:74 0.000000
+0:74 Constant:
+0:74 0.000000
+0:? Linker Objects
+0:? 'sb' (uniform samplerBuffer)
+0:? 'sr' (uniform sampler2DRect)
+0:? 's2D' (uniform sampler2D)
+0:? 's3D' (uniform sampler3D)
+0:? 'sCube' (uniform samplerCube)
+0:? 'sCubeShadow' (uniform samplerCubeShadow)
+0:? 's2DShadow' (uniform sampler2DShadow)
+0:? 's2DArray' (uniform sampler2DArray)
+0:? 's2DArrayShadow' (uniform sampler2DArrayShadow)
+0:? 'is2D' (uniform isampler2D)
+0:? 'is3D' (uniform isampler3D)
+0:? 'isCube' (uniform isamplerCube)
+0:? 'is2DArray' (uniform isampler2DArray)
+0:? 'is2Dms' (uniform isampler2DMS)
+0:? 'us2D' (uniform usampler2D)
+0:? 'us3D' (uniform usampler3D)
+0:? 'usCube' (uniform usamplerCube)
+0:? 'us2DArray' (uniform usampler2DArray)
+0:? 'c1D' (smooth in float)
+0:? 'c2D' (smooth in 2-component vector of float)
+0:? 'c3D' (smooth in 3-component vector of float)
+0:? 'c4D' (smooth in 4-component vector of float)
+0:? 'ic1D' (flat in int)
+0:? 'ic2D' (flat in 2-component vector of int)
+0:? 'ic3D' (flat in 3-component vector of int)
+0:? 'ic4D' (flat in 4-component vector of int)
+0:? 'FragData' (out 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 430
+0:? Sequence
+0:36 Function Definition: main( (global void)
+0:36 Function Parameters:
+0:38 Sequence
+0:38 Sequence
+0:38 move second child to first child (temp 4-component vector of float)
+0:38 'v' (temp 4-component vector of float)
+0:38 texture (global 4-component vector of float)
+0:38 's2D' (uniform sampler2D)
+0:38 'c2D' (smooth in 2-component vector of float)
+0:39 add second child into first child (temp 4-component vector of float)
+0:39 'v' (temp 4-component vector of float)
+0:39 textureProj (global 4-component vector of float)
+0:39 's3D' (uniform sampler3D)
+0:39 'c4D' (smooth in 4-component vector of float)
+0:40 add second child into first child (temp 4-component vector of float)
+0:40 'v' (temp 4-component vector of float)
+0:40 textureLod (global 4-component vector of float)
+0:40 's2DArray' (uniform sampler2DArray)
+0:40 'c3D' (smooth in 3-component vector of float)
+0:40 Constant:
+0:40 1.200000
+0:41 add second child into first child (temp float)
+0:41 direct index (temp float)
+0:41 'v' (temp 4-component vector of float)
+0:41 Constant:
+0:41 1 (const int)
+0:41 textureOffset (global float)
+0:41 's2DShadow' (uniform sampler2DShadow)
+0:41 'c3D' (smooth in 3-component vector of float)
+0:41 Constant:
+0:41 3 (const int)
+0:41 3 (const int)
+0:41 'c1D' (smooth in float)
+0:42 add second child into first child (temp 4-component vector of float)
+0:42 'v' (temp 4-component vector of float)
+0:42 textureFetch (global 4-component vector of float)
+0:42 's3D' (uniform sampler3D)
+0:42 'ic3D' (flat in 3-component vector of int)
+0:42 'ic1D' (flat in int)
+0:43 add second child into first child (temp 4-component vector of float)
+0:43 'v' (temp 4-component vector of float)
+0:43 textureFetchOffset (global 4-component vector of float)
+0:43 's2D' (uniform sampler2D)
+0:43 'ic2D' (flat in 2-component vector of int)
+0:43 Constant:
+0:43 4 (const int)
+0:43 Constant:
+0:43 3 (const int)
+0:43 3 (const int)
+0:44 add second child into first child (temp 4-component vector of float)
+0:44 'v' (temp 4-component vector of float)
+0:44 textureFetchOffset (global 4-component vector of float)
+0:44 'sr' (uniform sampler2DRect)
+0:44 'ic2D' (flat in 2-component vector of int)
+0:44 Constant:
+0:44 4 (const int)
+0:44 4 (const int)
+0:45 add second child into first child (temp float)
+0:45 direct index (temp float)
+0:45 'v' (temp 4-component vector of float)
+0:45 Constant:
+0:45 1 (const int)
+0:45 textureLodOffset (global float)
+0:45 's2DShadow' (uniform sampler2DShadow)
+0:45 'c3D' (smooth in 3-component vector of float)
+0:45 'c1D' (smooth in float)
+0:45 Constant:
+0:45 3 (const int)
+0:45 3 (const int)
+0:46 add second child into first child (temp 4-component vector of float)
+0:46 'v' (temp 4-component vector of float)
+0:46 textureProjLodOffset (global 4-component vector of float)
+0:46 's2D' (uniform sampler2D)
+0:46 'c3D' (smooth in 3-component vector of float)
+0:46 'c1D' (smooth in float)
+0:46 Constant:
+0:46 3 (const int)
+0:46 3 (const int)
+0:47 add second child into first child (temp 4-component vector of float)
+0:47 'v' (temp 4-component vector of float)
+0:47 textureGrad (global 4-component vector of float)
+0:47 'sCube' (uniform samplerCube)
+0:47 'c3D' (smooth in 3-component vector of float)
+0:47 'c3D' (smooth in 3-component vector of float)
+0:47 'c3D' (smooth in 3-component vector of float)
+0:48 add second child into first child (temp float)
+0:48 direct index (temp float)
+0:48 'v' (temp 4-component vector of float)
+0:48 Constant:
+0:48 0 (const int)
+0:48 textureGradOffset (global float)
+0:48 's2DArrayShadow' (uniform sampler2DArrayShadow)
+0:48 'c4D' (smooth in 4-component vector of float)
+0:48 'c2D' (smooth in 2-component vector of float)
+0:48 'c2D' (smooth in 2-component vector of float)
+0:48 Constant:
+0:48 3 (const int)
+0:48 3 (const int)
+0:49 add second child into first child (temp 4-component vector of float)
+0:49 'v' (temp 4-component vector of float)
+0:49 textureProjGrad (global 4-component vector of float)
+0:49 's3D' (uniform sampler3D)
+0:49 'c4D' (smooth in 4-component vector of float)
+0:49 'c3D' (smooth in 3-component vector of float)
+0:49 'c3D' (smooth in 3-component vector of float)
+0:50 add second child into first child (temp 4-component vector of float)
+0:50 'v' (temp 4-component vector of float)
+0:50 textureProjGradOffset (global 4-component vector of float)
+0:50 's2D' (uniform sampler2D)
+0:50 'c3D' (smooth in 3-component vector of float)
+0:50 'c2D' (smooth in 2-component vector of float)
+0:50 'c2D' (smooth in 2-component vector of float)
+0:50 Constant:
+0:50 3 (const int)
+0:50 3 (const int)
+0:52 Sequence
+0:52 move second child to first child (temp 4-component vector of int)
+0:52 'iv' (temp 4-component vector of int)
+0:52 texture (global 4-component vector of int)
+0:52 'is2D' (uniform isampler2D)
+0:52 'c2D' (smooth in 2-component vector of float)
+0:53 add second child into first child (temp 4-component vector of float)
+0:53 'v' (temp 4-component vector of float)
+0:53 Convert int to float (temp 4-component vector of float)
+0:53 'iv' (temp 4-component vector of int)
+0:54 move second child to first child (temp 4-component vector of int)
+0:54 'iv' (temp 4-component vector of int)
+0:54 textureProjOffset (global 4-component vector of int)
+0:54 'is2D' (uniform isampler2D)
+0:54 'c4D' (smooth in 4-component vector of float)
+0:54 Constant:
+0:54 3 (const int)
+0:54 3 (const int)
+0:55 add second child into first child (temp 4-component vector of float)
+0:55 'v' (temp 4-component vector of float)
+0:55 Convert int to float (temp 4-component vector of float)
+0:55 'iv' (temp 4-component vector of int)
+0:56 move second child to first child (temp 4-component vector of int)
+0:56 'iv' (temp 4-component vector of int)
+0:56 textureProjLod (global 4-component vector of int)
+0:56 'is2D' (uniform isampler2D)
+0:56 'c3D' (smooth in 3-component vector of float)
+0:56 'c1D' (smooth in float)
+0:57 add second child into first child (temp 4-component vector of float)
+0:57 'v' (temp 4-component vector of float)
+0:57 Convert int to float (temp 4-component vector of float)
+0:57 'iv' (temp 4-component vector of int)
+0:58 move second child to first child (temp 4-component vector of int)
+0:58 'iv' (temp 4-component vector of int)
+0:58 textureProjGrad (global 4-component vector of int)
+0:58 'is2D' (uniform isampler2D)
+0:58 'c3D' (smooth in 3-component vector of float)
+0:58 'c2D' (smooth in 2-component vector of float)
+0:58 'c2D' (smooth in 2-component vector of float)
+0:59 add second child into first child (temp 4-component vector of float)
+0:59 'v' (temp 4-component vector of float)
+0:59 Convert int to float (temp 4-component vector of float)
+0:59 'iv' (temp 4-component vector of int)
+0:60 move second child to first child (temp 4-component vector of int)
+0:60 'iv' (temp 4-component vector of int)
+0:60 texture (global 4-component vector of int)
+0:60 'is3D' (uniform isampler3D)
+0:60 'c3D' (smooth in 3-component vector of float)
+0:60 Constant:
+0:60 4.200000
+0:61 add second child into first child (temp 4-component vector of float)
+0:61 'v' (temp 4-component vector of float)
+0:61 Convert int to float (temp 4-component vector of float)
+0:61 'iv' (temp 4-component vector of int)
+0:62 move second child to first child (temp 4-component vector of int)
+0:62 'iv' (temp 4-component vector of int)
+0:62 textureLod (global 4-component vector of int)
+0:62 'isCube' (uniform isamplerCube)
+0:62 'c3D' (smooth in 3-component vector of float)
+0:62 'c1D' (smooth in float)
+0:63 add second child into first child (temp 4-component vector of float)
+0:63 'v' (temp 4-component vector of float)
+0:63 Convert int to float (temp 4-component vector of float)
+0:63 'iv' (temp 4-component vector of int)
+0:64 move second child to first child (temp 4-component vector of int)
+0:64 'iv' (temp 4-component vector of int)
+0:64 textureFetch (global 4-component vector of int)
+0:64 'is2DArray' (uniform isampler2DArray)
+0:64 'ic3D' (flat in 3-component vector of int)
+0:64 'ic1D' (flat in int)
+0:65 add second child into first child (temp 4-component vector of float)
+0:65 'v' (temp 4-component vector of float)
+0:65 Convert int to float (temp 4-component vector of float)
+0:65 'iv' (temp 4-component vector of int)
+0:66 add second child into first child (temp 4-component vector of int)
+0:66 'iv' (temp 4-component vector of int)
+0:66 textureFetch (global 4-component vector of int)
+0:66 'is2Dms' (uniform isampler2DMS)
+0:66 'ic2D' (flat in 2-component vector of int)
+0:66 'ic1D' (flat in int)
+0:67 add second child into first child (temp 4-component vector of float)
+0:67 'v' (temp 4-component vector of float)
+0:67 Convert int to float (temp 4-component vector of float)
+0:67 'iv' (temp 4-component vector of int)
+0:68 add second child into first child (temp 4-component vector of float)
+0:68 'v' (temp 4-component vector of float)
+0:68 textureFetch (global 4-component vector of float)
+0:68 'sb' (uniform samplerBuffer)
+0:68 'ic1D' (flat in int)
+0:69 add second child into first child (temp 4-component vector of float)
+0:69 'v' (temp 4-component vector of float)
+0:69 textureFetch (global 4-component vector of float)
+0:69 'sr' (uniform sampler2DRect)
+0:69 'ic2D' (flat in 2-component vector of int)
+0:71 Sequence
+0:71 move second child to first child (temp 2-component vector of int)
+0:71 'iv2' (temp 2-component vector of int)
+0:71 textureSize (global 2-component vector of int)
+0:71 'sCubeShadow' (uniform samplerCubeShadow)
+0:71 Constant:
+0:71 2 (const int)
+0:74 move second child to first child (temp 4-component vector of float)
+0:74 'FragData' (out 4-component vector of float)
+0:74 add (temp 4-component vector of float)
+0:74 'v' (temp 4-component vector of float)
+0:74 Construct vec4 (temp 4-component vector of float)
+0:74 Convert int to float (temp 2-component vector of float)
+0:74 'iv2' (temp 2-component vector of int)
+0:74 Constant:
+0:74 0.000000
+0:74 Constant:
+0:74 0.000000
+0:? Linker Objects
+0:? 'sb' (uniform samplerBuffer)
+0:? 'sr' (uniform sampler2DRect)
+0:? 's2D' (uniform sampler2D)
+0:? 's3D' (uniform sampler3D)
+0:? 'sCube' (uniform samplerCube)
+0:? 'sCubeShadow' (uniform samplerCubeShadow)
+0:? 's2DShadow' (uniform sampler2DShadow)
+0:? 's2DArray' (uniform sampler2DArray)
+0:? 's2DArrayShadow' (uniform sampler2DArrayShadow)
+0:? 'is2D' (uniform isampler2D)
+0:? 'is3D' (uniform isampler3D)
+0:? 'isCube' (uniform isamplerCube)
+0:? 'is2DArray' (uniform isampler2DArray)
+0:? 'is2Dms' (uniform isampler2DMS)
+0:? 'us2D' (uniform usampler2D)
+0:? 'us3D' (uniform usampler3D)
+0:? 'usCube' (uniform usamplerCube)
+0:? 'us2DArray' (uniform usampler2DArray)
+0:? 'c1D' (smooth in float)
+0:? 'c2D' (smooth in 2-component vector of float)
+0:? 'c3D' (smooth in 3-component vector of float)
+0:? 'c4D' (smooth in 4-component vector of float)
+0:? 'ic1D' (flat in int)
+0:? 'ic2D' (flat in 2-component vector of int)
+0:? 'ic3D' (flat in 3-component vector of int)
+0:? 'ic4D' (flat in 4-component vector of int)
+0:? 'FragData' (out 4-component vector of float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/noMain.vert.out b/chromium/third_party/glslang/src/Test/baseResults/noMain.vert.out
new file mode 100644
index 00000000000..630af95564f
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/noMain.vert.out
@@ -0,0 +1,45 @@
+noMain.vert
+Shader version: 300
+0:? Sequence
+0:3 Function Definition: foo( (global void)
+0:3 Function Parameters:
+0:? Linker Objects
+0:? 'gl_VertexID' (gl_VertexId highp int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+
+mains.frag
+ERROR: 0:7: 'main' : function already has a body
+ERROR: 1 compilation errors. No code generated.
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:3 Function Definition: main( (global void)
+0:3 Function Parameters:
+0:7 Function Definition: main( (global void)
+0:7 Function Parameters:
+0:? Linker Objects
+
+
+Linked vertex stage:
+
+ERROR: Linking vertex stage: Missing entry point: Each stage requires one "void main()" entry point
+
+Linked fragment stage:
+
+
+Shader version: 300
+0:? Sequence
+0:3 Function Definition: foo( (global void)
+0:3 Function Parameters:
+0:? Linker Objects
+0:? 'gl_VertexID' (gl_VertexId highp int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+Shader version: 300
+ERROR: node is still EOpNull!
+0:3 Function Definition: main( (global void)
+0:3 Function Parameters:
+0:7 Function Definition: main( (global void)
+0:7 Function Parameters:
+0:? Linker Objects
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/nonSquare.vert.out b/chromium/third_party/glslang/src/Test/baseResults/nonSquare.vert.out
new file mode 100644
index 00000000000..c0753696a23
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/nonSquare.vert.out
@@ -0,0 +1,183 @@
+nonSquare.vert
+Shader version: 120
+0:? Sequence
+0:15 Function Definition: main( (global void)
+0:15 Function Parameters:
+0:? Sequence
+0:20 move second child to first child (temp 2-component vector of float)
+0:20 'a' (temp 2-component vector of float)
+0:20 vector-times-matrix (temp 2-component vector of float)
+0:20 'v3' (in 3-component vector of float)
+0:20 'm23' (temp 2X3 matrix of float)
+0:21 move second child to first child (temp 2-component vector of float)
+0:21 'b' (temp 2-component vector of float)
+0:21 matrix-times-vector (temp 2-component vector of float)
+0:21 'm32' (uniform 3X2 matrix of float)
+0:21 'v3' (in 3-component vector of float)
+0:23 move second child to first child (temp 4-component vector of float)
+0:23 'gl_Position' (gl_Position 4-component vector of float Position)
+0:24 add (temp 4-component vector of float)
+0:24 add (temp 4-component vector of float)
+0:24 add (temp 4-component vector of float)
+0:23 add (temp 4-component vector of float)
+0:23 Construct vec4 (temp 4-component vector of float)
+0:23 matrix-times-vector (temp 3-component vector of float)
+0:23 matrix-multiply (temp 3X3 matrix of float)
+0:23 'm23' (temp 2X3 matrix of float)
+0:23 'm32' (uniform 3X2 matrix of float)
+0:23 'v3' (in 3-component vector of float)
+0:23 Constant:
+0:23 0.000000
+0:24 matrix-times-vector (temp 4-component vector of float)
+0:24 Constant:
+0:24 3.000000
+0:24 6.000000
+0:24 0.000000
+0:24 0.000000
+0:24 9.000000
+0:24 12.000000
+0:24 0.000000
+0:24 0.000000
+0:24 15.000000
+0:24 18.000000
+0:24 0.000000
+0:24 0.000000
+0:24 21.000000
+0:24 24.000000
+0:24 0.000000
+0:24 0.000000
+0:24 'v4' (in 4-component vector of float)
+0:24 Constant:
+0:24 50.000000
+0:24 110.000000
+0:24 170.000000
+0:24 230.000000
+0:24 Constant:
+0:24 30.000000
+0:24 60.000000
+0:24 0.000000
+0:24 0.000000
+0:24 Constant:
+0:24 20.000000
+0:24 10.000000
+0:24 6.000000
+0:24 5.000000
+0:? Linker Objects
+0:? 'v3' (in 3-component vector of float)
+0:? 'v4' (in 4-component vector of float)
+0:? 'm32' (uniform 3X2 matrix of float)
+0:? 'cv2' (const 2-component vector of float)
+0:? 10.000000
+0:? 20.000000
+0:? 'm24' (const 2X4 matrix of float)
+0:? 3.000000
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:? 3.000000
+0:? 0.000000
+0:? 0.000000
+0:? 'm42' (const 4X2 matrix of float)
+0:? 1.000000
+0:? 2.000000
+0:? 3.000000
+0:? 4.000000
+0:? 5.000000
+0:? 6.000000
+0:? 7.000000
+0:? 8.000000
+
+
+Linked vertex stage:
+
+
+Shader version: 120
+0:? Sequence
+0:15 Function Definition: main( (global void)
+0:15 Function Parameters:
+0:? Sequence
+0:20 move second child to first child (temp 2-component vector of float)
+0:20 'a' (temp 2-component vector of float)
+0:20 vector-times-matrix (temp 2-component vector of float)
+0:20 'v3' (in 3-component vector of float)
+0:20 'm23' (temp 2X3 matrix of float)
+0:21 move second child to first child (temp 2-component vector of float)
+0:21 'b' (temp 2-component vector of float)
+0:21 matrix-times-vector (temp 2-component vector of float)
+0:21 'm32' (uniform 3X2 matrix of float)
+0:21 'v3' (in 3-component vector of float)
+0:23 move second child to first child (temp 4-component vector of float)
+0:23 'gl_Position' (gl_Position 4-component vector of float Position)
+0:24 add (temp 4-component vector of float)
+0:24 add (temp 4-component vector of float)
+0:24 add (temp 4-component vector of float)
+0:23 add (temp 4-component vector of float)
+0:23 Construct vec4 (temp 4-component vector of float)
+0:23 matrix-times-vector (temp 3-component vector of float)
+0:23 matrix-multiply (temp 3X3 matrix of float)
+0:23 'm23' (temp 2X3 matrix of float)
+0:23 'm32' (uniform 3X2 matrix of float)
+0:23 'v3' (in 3-component vector of float)
+0:23 Constant:
+0:23 0.000000
+0:24 matrix-times-vector (temp 4-component vector of float)
+0:24 Constant:
+0:24 3.000000
+0:24 6.000000
+0:24 0.000000
+0:24 0.000000
+0:24 9.000000
+0:24 12.000000
+0:24 0.000000
+0:24 0.000000
+0:24 15.000000
+0:24 18.000000
+0:24 0.000000
+0:24 0.000000
+0:24 21.000000
+0:24 24.000000
+0:24 0.000000
+0:24 0.000000
+0:24 'v4' (in 4-component vector of float)
+0:24 Constant:
+0:24 50.000000
+0:24 110.000000
+0:24 170.000000
+0:24 230.000000
+0:24 Constant:
+0:24 30.000000
+0:24 60.000000
+0:24 0.000000
+0:24 0.000000
+0:24 Constant:
+0:24 20.000000
+0:24 10.000000
+0:24 6.000000
+0:24 5.000000
+0:? Linker Objects
+0:? 'v3' (in 3-component vector of float)
+0:? 'v4' (in 4-component vector of float)
+0:? 'm32' (uniform 3X2 matrix of float)
+0:? 'cv2' (const 2-component vector of float)
+0:? 10.000000
+0:? 20.000000
+0:? 'm24' (const 2X4 matrix of float)
+0:? 3.000000
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:? 3.000000
+0:? 0.000000
+0:? 0.000000
+0:? 'm42' (const 4X2 matrix of float)
+0:? 1.000000
+0:? 2.000000
+0:? 3.000000
+0:? 4.000000
+0:? 5.000000
+0:? 6.000000
+0:? 7.000000
+0:? 8.000000
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/nonVulkan.frag.out b/chromium/third_party/glslang/src/Test/baseResults/nonVulkan.frag.out
new file mode 100644
index 00000000000..10c693c0abc
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/nonVulkan.frag.out
@@ -0,0 +1,30 @@
+nonVulkan.frag
+Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:3: 'constant_id' : only allowed when generating SPIR-V
+ERROR: 0:4: 'input_attachment_index' : only allowed when using GLSL for Vulkan
+ERROR: 0:4: 'input_attachment_index' : can only be used with a subpass
+ERROR: 0:5: 'push_constant' : only allowed when using GLSL for Vulkan
+ERROR: 4 compilation errors. No code generated.
+
+
+Shader version: 450
+ERROR: node is still EOpNull!
+0:? Linker Objects
+0:? 'arraySize' (specialization-constant const int)
+0:? 12 (const int)
+0:? 'foo' (temp int)
+0:? 'ubi' (layout(column_major std430 push_constant ) uniform block{layout(column_major std430 offset=0 ) uniform int a})
+
+
+Linked fragment stage:
+
+ERROR: Linking fragment stage: Missing entry point: Each stage requires one "void main()" entry point
+
+Shader version: 450
+ERROR: node is still EOpNull!
+0:? Linker Objects
+0:? 'arraySize' (specialization-constant const int)
+0:? 12 (const int)
+0:? 'foo' (temp int)
+0:? 'ubi' (layout(column_major std430 push_constant ) uniform block{layout(column_major std430 offset=0 ) uniform int a})
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/numeral.frag.out b/chromium/third_party/glslang/src/Test/baseResults/numeral.frag.out
new file mode 100644
index 00000000000..6f5595c8f83
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/numeral.frag.out
@@ -0,0 +1,829 @@
+numeral.frag
+Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:14: '' : octal literal digit too large
+ERROR: 0:15: '' : octal literal digit too large
+ERROR: 0:16: '' : octal literal digit too large
+ERROR: 0:17: '' : octal literal too big
+ERROR: 0:18: '' : octal literal too big
+ERROR: 0:23: '' : octal literal digit too large
+ERROR: 0:24: '' : octal literal digit too large
+ERROR: 0:49: '' : bad digit in hexidecimal literal
+ERROR: 0:50: '' : hexidecimal literal too big
+ERROR: 0:88: '' : float literal needs a decimal point or exponent
+ERROR: 0:98: '' : numeric literal too big
+ERROR: 0:101: '' : numeric literal too big
+ERROR: 12 compilation errors. No code generated.
+
+
+Shader version: 400
+ERROR: node is still EOpNull!
+0:3 Function Definition: main( (global void)
+0:3 Function Parameters:
+0:5 Sequence
+0:5 Sequence
+0:5 move second child to first child (temp int)
+0:5 'o00' (temp int)
+0:5 Constant:
+0:5 0 (const int)
+0:6 Sequence
+0:6 move second child to first child (temp int)
+0:6 'o000' (temp int)
+0:6 Constant:
+0:6 0 (const int)
+0:7 Sequence
+0:7 move second child to first child (temp int)
+0:7 'o0000' (temp int)
+0:7 Constant:
+0:7 0 (const int)
+0:8 Sequence
+0:8 move second child to first child (temp int)
+0:8 'o5' (temp int)
+0:8 Constant:
+0:8 5 (const int)
+0:9 Sequence
+0:9 move second child to first child (temp int)
+0:9 'o05' (temp int)
+0:9 Constant:
+0:9 5 (const int)
+0:10 Sequence
+0:10 move second child to first child (temp int)
+0:10 'o006' (temp int)
+0:10 Constant:
+0:10 6 (const int)
+0:11 Sequence
+0:11 move second child to first child (temp int)
+0:11 'o7' (temp int)
+0:11 Constant:
+0:11 7 (const int)
+0:12 Sequence
+0:12 move second child to first child (temp int)
+0:12 'o58' (temp int)
+0:12 Constant:
+0:12 58 (const int)
+0:13 Sequence
+0:13 move second child to first child (temp int)
+0:13 'omax' (temp int)
+0:13 Constant:
+0:13 -1 (const int)
+0:14 Sequence
+0:14 move second child to first child (temp int)
+0:14 'o8' (temp int)
+0:14 Constant:
+0:14 0 (const int)
+0:15 Sequence
+0:15 move second child to first child (temp int)
+0:15 'o08' (temp int)
+0:15 Constant:
+0:15 0 (const int)
+0:16 Sequence
+0:16 move second child to first child (temp int)
+0:16 'o009' (temp int)
+0:16 Constant:
+0:16 0 (const int)
+0:17 Sequence
+0:17 move second child to first child (temp int)
+0:17 'obig' (temp int)
+0:17 Constant:
+0:17 995208915 (const int)
+0:18 Sequence
+0:18 move second child to first child (temp int)
+0:18 'omax1' (temp int)
+0:18 Constant:
+0:18 536870912 (const int)
+0:20 Sequence
+0:20 move second child to first child (temp uint)
+0:20 'uo5' (temp uint)
+0:20 Constant:
+0:20 5 (const uint)
+0:21 Sequence
+0:21 move second child to first child (temp uint)
+0:21 'uo6' (temp uint)
+0:21 Constant:
+0:21 6 (const uint)
+0:22 Sequence
+0:22 move second child to first child (temp uint)
+0:22 'uo7' (temp uint)
+0:22 Constant:
+0:22 7 (const uint)
+0:23 Sequence
+0:23 move second child to first child (temp uint)
+0:23 'uo8' (temp uint)
+0:23 Constant:
+0:23 0 (const uint)
+0:24 Sequence
+0:24 move second child to first child (temp uint)
+0:24 'uo9' (temp uint)
+0:24 Constant:
+0:24 0 (const uint)
+0:26 Sequence
+0:26 move second child to first child (temp int)
+0:26 'h0' (temp int)
+0:26 Constant:
+0:26 0 (const int)
+0:27 Sequence
+0:27 move second child to first child (temp int)
+0:27 'h00' (temp int)
+0:27 Constant:
+0:27 0 (const int)
+0:28 Sequence
+0:28 move second child to first child (temp int)
+0:28 'h000' (temp int)
+0:28 Constant:
+0:28 0 (const int)
+0:29 Sequence
+0:29 move second child to first child (temp int)
+0:29 'h1' (temp int)
+0:29 Constant:
+0:29 1 (const int)
+0:30 Sequence
+0:30 move second child to first child (temp int)
+0:30 'h2' (temp int)
+0:30 Constant:
+0:30 2 (const int)
+0:31 Sequence
+0:31 move second child to first child (temp int)
+0:31 'h300' (temp int)
+0:31 Constant:
+0:31 768 (const int)
+0:32 Sequence
+0:32 move second child to first child (temp int)
+0:32 'hABCDEF' (temp int)
+0:32 Constant:
+0:32 11259375 (const int)
+0:33 Sequence
+0:33 move second child to first child (temp int)
+0:33 'hFFFFFFFF' (temp int)
+0:33 Constant:
+0:33 -1 (const int)
+0:34 Sequence
+0:34 move second child to first child (temp int)
+0:34 'h12345678' (temp int)
+0:34 Constant:
+0:34 12345678 (const int)
+0:35 Sequence
+0:35 move second child to first child (temp int)
+0:35 'hToBeOrNotToBe' (temp int)
+0:35 Constant:
+0:35 -1 (const int)
+0:37 Sequence
+0:37 move second child to first child (temp uint)
+0:37 'uh0' (temp uint)
+0:37 Constant:
+0:37 0 (const uint)
+0:38 Sequence
+0:38 move second child to first child (temp uint)
+0:38 'uhg' (temp uint)
+0:38 Constant:
+0:38 12 (const uint)
+0:39 Sequence
+0:39 move second child to first child (temp uint)
+0:39 'uh000' (temp uint)
+0:39 Constant:
+0:39 0 (const uint)
+0:40 Sequence
+0:40 move second child to first child (temp uint)
+0:40 'uh1' (temp uint)
+0:40 Constant:
+0:40 1 (const uint)
+0:41 Sequence
+0:41 move second child to first child (temp uint)
+0:41 'uh2' (temp uint)
+0:41 Constant:
+0:41 2 (const uint)
+0:42 Sequence
+0:42 move second child to first child (temp uint)
+0:42 'uh300' (temp uint)
+0:42 Constant:
+0:42 768 (const uint)
+0:43 Sequence
+0:43 move second child to first child (temp uint)
+0:43 'uhABCDEF' (temp uint)
+0:43 Constant:
+0:43 11259375 (const uint)
+0:44 Sequence
+0:44 move second child to first child (temp uint)
+0:44 'uhFFFFFFFF' (temp uint)
+0:44 Constant:
+0:44 4294967295 (const uint)
+0:45 Sequence
+0:45 move second child to first child (temp uint)
+0:45 'uh12345678' (temp uint)
+0:45 Constant:
+0:45 12345678 (const uint)
+0:46 Sequence
+0:46 move second child to first child (temp uint)
+0:46 'uhToBeOrNotToBe' (temp uint)
+0:46 Constant:
+0:46 4294967295 (const uint)
+0:49 Sequence
+0:49 move second child to first child (temp int)
+0:49 'he2' (temp int)
+0:49 Constant:
+0:49 0 (const int)
+0:50 Sequence
+0:50 move second child to first child (temp int)
+0:50 'hbig' (temp int)
+0:50 Constant:
+0:50 -1 (const int)
+0:52 Sequence
+0:52 move second child to first child (temp float)
+0:52 'f1' (temp float)
+0:52 Constant:
+0:52 1.000000
+0:53 Sequence
+0:53 move second child to first child (temp float)
+0:53 'f2' (temp float)
+0:53 Constant:
+0:53 2.000000
+0:54 Sequence
+0:54 move second child to first child (temp float)
+0:54 'f3' (temp float)
+0:54 Constant:
+0:54 3.000000
+0:55 Sequence
+0:55 move second child to first child (temp float)
+0:55 'f4' (temp float)
+0:55 Constant:
+0:55 4.000000
+0:56 Sequence
+0:56 move second child to first child (temp float)
+0:56 'f5' (temp float)
+0:56 Constant:
+0:56 5.000000
+0:57 Sequence
+0:57 move second child to first child (temp float)
+0:57 'f6' (temp float)
+0:57 Constant:
+0:57 6.000000
+0:58 Sequence
+0:58 move second child to first child (temp float)
+0:58 'f7' (temp float)
+0:58 Constant:
+0:58 7.000000
+0:59 Sequence
+0:59 move second child to first child (temp float)
+0:59 'f8' (temp float)
+0:59 Constant:
+0:59 8.000000
+0:60 Sequence
+0:60 move second child to first child (temp float)
+0:60 'f9' (temp float)
+0:60 Constant:
+0:60 9.000000
+0:61 Sequence
+0:61 move second child to first child (temp float)
+0:61 'f10' (temp float)
+0:61 Constant:
+0:61 10.000000
+0:62 Sequence
+0:62 move second child to first child (temp float)
+0:62 'f11' (temp float)
+0:62 Constant:
+0:62 11.000000
+0:63 Sequence
+0:63 move second child to first child (temp float)
+0:63 'f12' (temp float)
+0:63 Constant:
+0:63 12.000000
+0:64 Sequence
+0:64 move second child to first child (temp float)
+0:64 'f543' (temp float)
+0:64 Constant:
+0:64 543.000000
+0:65 Sequence
+0:65 move second child to first child (temp float)
+0:65 'f6789' (temp float)
+0:65 Constant:
+0:65 6789.000000
+0:66 Sequence
+0:66 move second child to first child (temp float)
+0:66 'f88' (temp float)
+0:66 Constant:
+0:66 88.000000
+0:68 Sequence
+0:68 move second child to first child (temp float)
+0:68 'g1' (temp float)
+0:68 Constant:
+0:68 53876.000000
+0:69 Sequence
+0:69 move second child to first child (temp float)
+0:69 'g2' (temp float)
+0:69 Constant:
+0:69 0.040000
+0:70 Sequence
+0:70 move second child to first child (temp float)
+0:70 'g3' (temp float)
+0:70 Constant:
+0:70 100000.000000
+0:71 Sequence
+0:71 move second child to first child (temp float)
+0:71 'g4' (temp float)
+0:71 Constant:
+0:71 0.007321
+0:72 Sequence
+0:72 move second child to first child (temp float)
+0:72 'g5' (temp float)
+0:72 Constant:
+0:72 32000.000000
+0:73 Sequence
+0:73 move second child to first child (temp float)
+0:73 'g6' (temp float)
+0:73 Constant:
+0:73 0.000005
+0:74 Sequence
+0:74 move second child to first child (temp float)
+0:74 'g7' (temp float)
+0:74 Constant:
+0:74 0.450000
+0:75 Sequence
+0:75 move second child to first child (temp float)
+0:75 'g8' (temp float)
+0:75 Constant:
+0:75 60000000000.000000
+0:77 Sequence
+0:77 move second child to first child (temp double)
+0:77 'gf1' (temp double)
+0:77 Constant:
+0:77 1.000000
+0:78 Sequence
+0:78 move second child to first child (temp double)
+0:78 'gf2' (temp double)
+0:78 Constant:
+0:78 2.000000
+0:79 Sequence
+0:79 move second child to first child (temp double)
+0:79 'gf3' (temp double)
+0:79 Constant:
+0:79 3.000000
+0:80 Sequence
+0:80 move second child to first child (temp double)
+0:80 'gf4' (temp double)
+0:80 Constant:
+0:80 4.000000
+0:81 Sequence
+0:81 move second child to first child (temp float)
+0:81 'gf5' (temp float)
+0:81 Constant:
+0:81 5.000000
+0:82 Sequence
+0:82 move second child to first child (temp float)
+0:82 'gf6' (temp float)
+0:82 Constant:
+0:82 6.000000
+0:88 Sequence
+0:88 move second child to first child (temp float)
+0:88 'e5' (temp float)
+0:88 Constant:
+0:88 5.000000
+0:98 Sequence
+0:98 move second child to first child (temp uint)
+0:98 'g1' (global uint)
+0:98 Constant:
+0:98 4294967295 (const uint)
+0:99 Sequence
+0:99 move second child to first child (temp uint)
+0:99 'g2' (global uint)
+0:99 Constant:
+0:99 4294967295 (const uint)
+0:100 Sequence
+0:100 move second child to first child (temp uint)
+0:100 'g3' (global uint)
+0:100 Constant:
+0:100 4294967294 (const uint)
+0:101 Sequence
+0:101 move second child to first child (temp int)
+0:101 'g4' (global int)
+0:101 Constant:
+0:101 -1 (const int)
+0:102 Sequence
+0:102 move second child to first child (temp int)
+0:102 'g5' (global int)
+0:102 Constant:
+0:102 -1 (const int)
+0:103 Sequence
+0:103 move second child to first child (temp int)
+0:103 'g6' (global int)
+0:103 Constant:
+0:103 -2 (const int)
+0:? Linker Objects
+0:? 'c2' (layout(location=2 ) out 4-component vector of float)
+0:? 'c3' (layout(location=3 ) out 4-component vector of float)
+0:? 'c4' (layout(location=4 ) out 4-component vector of float)
+0:? 'c5' (layout(location=5 ) out 4-component vector of float)
+0:? 'c6' (layout(location=6 ) out 4-component vector of float)
+0:? 'c7' (layout(location=7 ) out 4-component vector of float)
+0:? 'g1' (global uint)
+0:? 'g2' (global uint)
+0:? 'g3' (global uint)
+0:? 'g4' (global int)
+0:? 'g5' (global int)
+0:? 'g6' (global int)
+
+
+Linked fragment stage:
+
+
+Shader version: 400
+ERROR: node is still EOpNull!
+0:3 Function Definition: main( (global void)
+0:3 Function Parameters:
+0:5 Sequence
+0:5 Sequence
+0:5 move second child to first child (temp int)
+0:5 'o00' (temp int)
+0:5 Constant:
+0:5 0 (const int)
+0:6 Sequence
+0:6 move second child to first child (temp int)
+0:6 'o000' (temp int)
+0:6 Constant:
+0:6 0 (const int)
+0:7 Sequence
+0:7 move second child to first child (temp int)
+0:7 'o0000' (temp int)
+0:7 Constant:
+0:7 0 (const int)
+0:8 Sequence
+0:8 move second child to first child (temp int)
+0:8 'o5' (temp int)
+0:8 Constant:
+0:8 5 (const int)
+0:9 Sequence
+0:9 move second child to first child (temp int)
+0:9 'o05' (temp int)
+0:9 Constant:
+0:9 5 (const int)
+0:10 Sequence
+0:10 move second child to first child (temp int)
+0:10 'o006' (temp int)
+0:10 Constant:
+0:10 6 (const int)
+0:11 Sequence
+0:11 move second child to first child (temp int)
+0:11 'o7' (temp int)
+0:11 Constant:
+0:11 7 (const int)
+0:12 Sequence
+0:12 move second child to first child (temp int)
+0:12 'o58' (temp int)
+0:12 Constant:
+0:12 58 (const int)
+0:13 Sequence
+0:13 move second child to first child (temp int)
+0:13 'omax' (temp int)
+0:13 Constant:
+0:13 -1 (const int)
+0:14 Sequence
+0:14 move second child to first child (temp int)
+0:14 'o8' (temp int)
+0:14 Constant:
+0:14 0 (const int)
+0:15 Sequence
+0:15 move second child to first child (temp int)
+0:15 'o08' (temp int)
+0:15 Constant:
+0:15 0 (const int)
+0:16 Sequence
+0:16 move second child to first child (temp int)
+0:16 'o009' (temp int)
+0:16 Constant:
+0:16 0 (const int)
+0:17 Sequence
+0:17 move second child to first child (temp int)
+0:17 'obig' (temp int)
+0:17 Constant:
+0:17 995208915 (const int)
+0:18 Sequence
+0:18 move second child to first child (temp int)
+0:18 'omax1' (temp int)
+0:18 Constant:
+0:18 536870912 (const int)
+0:20 Sequence
+0:20 move second child to first child (temp uint)
+0:20 'uo5' (temp uint)
+0:20 Constant:
+0:20 5 (const uint)
+0:21 Sequence
+0:21 move second child to first child (temp uint)
+0:21 'uo6' (temp uint)
+0:21 Constant:
+0:21 6 (const uint)
+0:22 Sequence
+0:22 move second child to first child (temp uint)
+0:22 'uo7' (temp uint)
+0:22 Constant:
+0:22 7 (const uint)
+0:23 Sequence
+0:23 move second child to first child (temp uint)
+0:23 'uo8' (temp uint)
+0:23 Constant:
+0:23 0 (const uint)
+0:24 Sequence
+0:24 move second child to first child (temp uint)
+0:24 'uo9' (temp uint)
+0:24 Constant:
+0:24 0 (const uint)
+0:26 Sequence
+0:26 move second child to first child (temp int)
+0:26 'h0' (temp int)
+0:26 Constant:
+0:26 0 (const int)
+0:27 Sequence
+0:27 move second child to first child (temp int)
+0:27 'h00' (temp int)
+0:27 Constant:
+0:27 0 (const int)
+0:28 Sequence
+0:28 move second child to first child (temp int)
+0:28 'h000' (temp int)
+0:28 Constant:
+0:28 0 (const int)
+0:29 Sequence
+0:29 move second child to first child (temp int)
+0:29 'h1' (temp int)
+0:29 Constant:
+0:29 1 (const int)
+0:30 Sequence
+0:30 move second child to first child (temp int)
+0:30 'h2' (temp int)
+0:30 Constant:
+0:30 2 (const int)
+0:31 Sequence
+0:31 move second child to first child (temp int)
+0:31 'h300' (temp int)
+0:31 Constant:
+0:31 768 (const int)
+0:32 Sequence
+0:32 move second child to first child (temp int)
+0:32 'hABCDEF' (temp int)
+0:32 Constant:
+0:32 11259375 (const int)
+0:33 Sequence
+0:33 move second child to first child (temp int)
+0:33 'hFFFFFFFF' (temp int)
+0:33 Constant:
+0:33 -1 (const int)
+0:34 Sequence
+0:34 move second child to first child (temp int)
+0:34 'h12345678' (temp int)
+0:34 Constant:
+0:34 12345678 (const int)
+0:35 Sequence
+0:35 move second child to first child (temp int)
+0:35 'hToBeOrNotToBe' (temp int)
+0:35 Constant:
+0:35 -1 (const int)
+0:37 Sequence
+0:37 move second child to first child (temp uint)
+0:37 'uh0' (temp uint)
+0:37 Constant:
+0:37 0 (const uint)
+0:38 Sequence
+0:38 move second child to first child (temp uint)
+0:38 'uhg' (temp uint)
+0:38 Constant:
+0:38 12 (const uint)
+0:39 Sequence
+0:39 move second child to first child (temp uint)
+0:39 'uh000' (temp uint)
+0:39 Constant:
+0:39 0 (const uint)
+0:40 Sequence
+0:40 move second child to first child (temp uint)
+0:40 'uh1' (temp uint)
+0:40 Constant:
+0:40 1 (const uint)
+0:41 Sequence
+0:41 move second child to first child (temp uint)
+0:41 'uh2' (temp uint)
+0:41 Constant:
+0:41 2 (const uint)
+0:42 Sequence
+0:42 move second child to first child (temp uint)
+0:42 'uh300' (temp uint)
+0:42 Constant:
+0:42 768 (const uint)
+0:43 Sequence
+0:43 move second child to first child (temp uint)
+0:43 'uhABCDEF' (temp uint)
+0:43 Constant:
+0:43 11259375 (const uint)
+0:44 Sequence
+0:44 move second child to first child (temp uint)
+0:44 'uhFFFFFFFF' (temp uint)
+0:44 Constant:
+0:44 4294967295 (const uint)
+0:45 Sequence
+0:45 move second child to first child (temp uint)
+0:45 'uh12345678' (temp uint)
+0:45 Constant:
+0:45 12345678 (const uint)
+0:46 Sequence
+0:46 move second child to first child (temp uint)
+0:46 'uhToBeOrNotToBe' (temp uint)
+0:46 Constant:
+0:46 4294967295 (const uint)
+0:49 Sequence
+0:49 move second child to first child (temp int)
+0:49 'he2' (temp int)
+0:49 Constant:
+0:49 0 (const int)
+0:50 Sequence
+0:50 move second child to first child (temp int)
+0:50 'hbig' (temp int)
+0:50 Constant:
+0:50 -1 (const int)
+0:52 Sequence
+0:52 move second child to first child (temp float)
+0:52 'f1' (temp float)
+0:52 Constant:
+0:52 1.000000
+0:53 Sequence
+0:53 move second child to first child (temp float)
+0:53 'f2' (temp float)
+0:53 Constant:
+0:53 2.000000
+0:54 Sequence
+0:54 move second child to first child (temp float)
+0:54 'f3' (temp float)
+0:54 Constant:
+0:54 3.000000
+0:55 Sequence
+0:55 move second child to first child (temp float)
+0:55 'f4' (temp float)
+0:55 Constant:
+0:55 4.000000
+0:56 Sequence
+0:56 move second child to first child (temp float)
+0:56 'f5' (temp float)
+0:56 Constant:
+0:56 5.000000
+0:57 Sequence
+0:57 move second child to first child (temp float)
+0:57 'f6' (temp float)
+0:57 Constant:
+0:57 6.000000
+0:58 Sequence
+0:58 move second child to first child (temp float)
+0:58 'f7' (temp float)
+0:58 Constant:
+0:58 7.000000
+0:59 Sequence
+0:59 move second child to first child (temp float)
+0:59 'f8' (temp float)
+0:59 Constant:
+0:59 8.000000
+0:60 Sequence
+0:60 move second child to first child (temp float)
+0:60 'f9' (temp float)
+0:60 Constant:
+0:60 9.000000
+0:61 Sequence
+0:61 move second child to first child (temp float)
+0:61 'f10' (temp float)
+0:61 Constant:
+0:61 10.000000
+0:62 Sequence
+0:62 move second child to first child (temp float)
+0:62 'f11' (temp float)
+0:62 Constant:
+0:62 11.000000
+0:63 Sequence
+0:63 move second child to first child (temp float)
+0:63 'f12' (temp float)
+0:63 Constant:
+0:63 12.000000
+0:64 Sequence
+0:64 move second child to first child (temp float)
+0:64 'f543' (temp float)
+0:64 Constant:
+0:64 543.000000
+0:65 Sequence
+0:65 move second child to first child (temp float)
+0:65 'f6789' (temp float)
+0:65 Constant:
+0:65 6789.000000
+0:66 Sequence
+0:66 move second child to first child (temp float)
+0:66 'f88' (temp float)
+0:66 Constant:
+0:66 88.000000
+0:68 Sequence
+0:68 move second child to first child (temp float)
+0:68 'g1' (temp float)
+0:68 Constant:
+0:68 53876.000000
+0:69 Sequence
+0:69 move second child to first child (temp float)
+0:69 'g2' (temp float)
+0:69 Constant:
+0:69 0.040000
+0:70 Sequence
+0:70 move second child to first child (temp float)
+0:70 'g3' (temp float)
+0:70 Constant:
+0:70 100000.000000
+0:71 Sequence
+0:71 move second child to first child (temp float)
+0:71 'g4' (temp float)
+0:71 Constant:
+0:71 0.007321
+0:72 Sequence
+0:72 move second child to first child (temp float)
+0:72 'g5' (temp float)
+0:72 Constant:
+0:72 32000.000000
+0:73 Sequence
+0:73 move second child to first child (temp float)
+0:73 'g6' (temp float)
+0:73 Constant:
+0:73 0.000005
+0:74 Sequence
+0:74 move second child to first child (temp float)
+0:74 'g7' (temp float)
+0:74 Constant:
+0:74 0.450000
+0:75 Sequence
+0:75 move second child to first child (temp float)
+0:75 'g8' (temp float)
+0:75 Constant:
+0:75 60000000000.000000
+0:77 Sequence
+0:77 move second child to first child (temp double)
+0:77 'gf1' (temp double)
+0:77 Constant:
+0:77 1.000000
+0:78 Sequence
+0:78 move second child to first child (temp double)
+0:78 'gf2' (temp double)
+0:78 Constant:
+0:78 2.000000
+0:79 Sequence
+0:79 move second child to first child (temp double)
+0:79 'gf3' (temp double)
+0:79 Constant:
+0:79 3.000000
+0:80 Sequence
+0:80 move second child to first child (temp double)
+0:80 'gf4' (temp double)
+0:80 Constant:
+0:80 4.000000
+0:81 Sequence
+0:81 move second child to first child (temp float)
+0:81 'gf5' (temp float)
+0:81 Constant:
+0:81 5.000000
+0:82 Sequence
+0:82 move second child to first child (temp float)
+0:82 'gf6' (temp float)
+0:82 Constant:
+0:82 6.000000
+0:88 Sequence
+0:88 move second child to first child (temp float)
+0:88 'e5' (temp float)
+0:88 Constant:
+0:88 5.000000
+0:98 Sequence
+0:98 move second child to first child (temp uint)
+0:98 'g1' (global uint)
+0:98 Constant:
+0:98 4294967295 (const uint)
+0:99 Sequence
+0:99 move second child to first child (temp uint)
+0:99 'g2' (global uint)
+0:99 Constant:
+0:99 4294967295 (const uint)
+0:100 Sequence
+0:100 move second child to first child (temp uint)
+0:100 'g3' (global uint)
+0:100 Constant:
+0:100 4294967294 (const uint)
+0:101 Sequence
+0:101 move second child to first child (temp int)
+0:101 'g4' (global int)
+0:101 Constant:
+0:101 -1 (const int)
+0:102 Sequence
+0:102 move second child to first child (temp int)
+0:102 'g5' (global int)
+0:102 Constant:
+0:102 -1 (const int)
+0:103 Sequence
+0:103 move second child to first child (temp int)
+0:103 'g6' (global int)
+0:103 Constant:
+0:103 -2 (const int)
+0:? Linker Objects
+0:? 'c2' (layout(location=2 ) out 4-component vector of float)
+0:? 'c3' (layout(location=3 ) out 4-component vector of float)
+0:? 'c4' (layout(location=4 ) out 4-component vector of float)
+0:? 'c5' (layout(location=5 ) out 4-component vector of float)
+0:? 'c6' (layout(location=6 ) out 4-component vector of float)
+0:? 'c7' (layout(location=7 ) out 4-component vector of float)
+0:? 'g1' (global uint)
+0:? 'g2' (global uint)
+0:? 'g3' (global uint)
+0:? 'g4' (global int)
+0:? 'g5' (global int)
+0:? 'g6' (global int)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/pointCoord.frag.out b/chromium/third_party/glslang/src/Test/baseResults/pointCoord.frag.out
new file mode 100644
index 00000000000..633d8b9b07c
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/pointCoord.frag.out
@@ -0,0 +1,69 @@
+pointCoord.frag
+Shader version: 100
+0:? Sequence
+0:5 Function Definition: main( (global void)
+0:5 Function Parameters:
+0:? Sequence
+0:9 Test condition and select (temp void)
+0:9 Condition
+0:9 Compare Less Than (temp bool)
+0:9 length (global mediump float)
+0:9 'gl_PointCoord' (gl_PointCoord mediump 2-component vector of float PointCoord)
+0:9 Constant:
+0:9 0.300000
+0:9 true case
+0:10 move second child to first child (temp highp 4-component vector of float)
+0:10 'color' (temp highp 4-component vector of float)
+0:10 texture (global lowp 4-component vector of float)
+0:10 'sampler' (uniform lowp sampler2D)
+0:10 'gl_PointCoord' (gl_PointCoord mediump 2-component vector of float PointCoord)
+0:9 false case
+0:12 move second child to first child (temp highp 4-component vector of float)
+0:12 'color' (temp highp 4-component vector of float)
+0:12 Constant:
+0:12 0.000000
+0:12 0.000000
+0:12 0.000000
+0:12 0.000000
+0:14 move second child to first child (temp highp 4-component vector of float)
+0:14 'gl_FragColor' (fragColor mediump 4-component vector of float FragColor)
+0:14 'color' (temp highp 4-component vector of float)
+0:? Linker Objects
+0:? 'sampler' (uniform lowp sampler2D)
+
+
+Linked fragment stage:
+
+
+Shader version: 100
+0:? Sequence
+0:5 Function Definition: main( (global void)
+0:5 Function Parameters:
+0:? Sequence
+0:9 Test condition and select (temp void)
+0:9 Condition
+0:9 Compare Less Than (temp bool)
+0:9 length (global mediump float)
+0:9 'gl_PointCoord' (gl_PointCoord mediump 2-component vector of float PointCoord)
+0:9 Constant:
+0:9 0.300000
+0:9 true case
+0:10 move second child to first child (temp highp 4-component vector of float)
+0:10 'color' (temp highp 4-component vector of float)
+0:10 texture (global lowp 4-component vector of float)
+0:10 'sampler' (uniform lowp sampler2D)
+0:10 'gl_PointCoord' (gl_PointCoord mediump 2-component vector of float PointCoord)
+0:9 false case
+0:12 move second child to first child (temp highp 4-component vector of float)
+0:12 'color' (temp highp 4-component vector of float)
+0:12 Constant:
+0:12 0.000000
+0:12 0.000000
+0:12 0.000000
+0:12 0.000000
+0:14 move second child to first child (temp highp 4-component vector of float)
+0:14 'gl_FragColor' (fragColor mediump 4-component vector of float FragColor)
+0:14 'color' (temp highp 4-component vector of float)
+0:? Linker Objects
+0:? 'sampler' (uniform lowp sampler2D)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/precise.tesc.out b/chromium/third_party/glslang/src/Test/baseResults/precise.tesc.out
new file mode 100644
index 00000000000..962a3c98b74
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/precise.tesc.out
@@ -0,0 +1,768 @@
+precise.tesc
+Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
+
+Shader version: 450
+Requested GL_EXT_gpu_shader5
+Requested GL_EXT_shader_io_blocks
+Requested GL_EXT_tessellation_shader
+vertices = -1
+0:? Sequence
+0:5 Function Definition: minimal( (global float)
+0:5 Function Parameters:
+0:6 Sequence
+0:6 Sequence
+0:6 move second child to first child (temp float)
+0:6 'result' (noContraction temp float)
+0:6 Constant:
+0:6 5.000000
+0:7 Sequence
+0:7 move second child to first child (temp float)
+0:7 'a' (noContraction temp float)
+0:7 Constant:
+0:7 10.000000
+0:8 Sequence
+0:8 move second child to first child (temp float)
+0:8 'b' (noContraction temp float)
+0:8 Constant:
+0:8 20.000000
+0:9 Sequence
+0:9 move second child to first child (temp float)
+0:9 'c' (noContraction temp float)
+0:9 Constant:
+0:9 30.000000
+0:10 Sequence
+0:10 move second child to first child (temp float)
+0:10 'd' (noContraction temp float)
+0:10 Constant:
+0:10 40.000000
+0:11 move second child to first child (temp float)
+0:11 'result' (noContraction temp float)
+0:11 add (noContraction temp float)
+0:11 component-wise multiply (noContraction temp float)
+0:11 'a' (noContraction temp float)
+0:11 'b' (noContraction temp float)
+0:11 component-wise multiply (noContraction temp float)
+0:11 'c' (noContraction temp float)
+0:11 'd' (noContraction temp float)
+0:12 Branch: Return with expression
+0:12 'result' (noContraction temp float)
+0:15 Function Definition: continuous_assignment( (global void)
+0:15 Function Parameters:
+0:16 Sequence
+0:16 Sequence
+0:16 move second child to first child (temp float)
+0:16 'result' (noContraction temp float)
+0:16 Constant:
+0:16 5.000000
+0:17 Sequence
+0:17 move second child to first child (temp float)
+0:17 'a' (noContraction temp float)
+0:17 Constant:
+0:17 10.000000
+0:18 Sequence
+0:18 move second child to first child (temp float)
+0:18 'b' (noContraction temp float)
+0:18 Constant:
+0:18 20.000000
+0:19 move second child to first child (temp float)
+0:19 'result' (noContraction temp float)
+0:19 move second child to first child (temp float)
+0:19 'a' (noContraction temp float)
+0:19 add (noContraction temp float)
+0:19 'b' (noContraction temp float)
+0:19 Constant:
+0:19 4.000000
+0:22 Function Definition: convert( (global void)
+0:22 Function Parameters:
+0:? Sequence
+0:24 Sequence
+0:24 move second child to first child (temp float)
+0:24 'a' (noContraction temp float)
+0:24 Constant:
+0:24 10.000000
+0:25 Sequence
+0:25 move second child to first child (temp float)
+0:25 'b' (noContraction temp float)
+0:25 Constant:
+0:25 20.000000
+0:26 move second child to first child (temp float)
+0:26 'b' (noContraction temp float)
+0:26 add (noContraction temp float)
+0:26 'a' (noContraction temp float)
+0:26 'b' (noContraction temp float)
+0:27 move second child to first child (temp double)
+0:27 'result' (noContraction temp double)
+0:27 Convert float to double (temp double)
+0:27 'b' (noContraction temp float)
+0:30 Function Definition: loop_for( (global float)
+0:30 Function Parameters:
+0:31 Sequence
+0:31 Sequence
+0:31 move second child to first child (temp float)
+0:31 'r1' (noContraction temp float)
+0:31 Constant:
+0:31 5.000000
+0:32 Sequence
+0:32 move second child to first child (temp float)
+0:32 'r2' (noContraction temp float)
+0:32 Constant:
+0:32 10.000000
+0:33 Sequence
+0:33 move second child to first child (temp int)
+0:33 'a' (temp int)
+0:33 Constant:
+0:33 10 (const int)
+0:34 Sequence
+0:34 move second child to first child (temp int)
+0:34 'b' (noContraction temp int)
+0:34 Constant:
+0:34 20 (const int)
+0:35 Sequence
+0:35 move second child to first child (temp int)
+0:35 'c' (noContraction temp int)
+0:35 Constant:
+0:35 30 (const int)
+0:36 Sequence
+0:36 Sequence
+0:36 move second child to first child (temp int)
+0:36 'i' (noContraction temp int)
+0:36 Constant:
+0:36 0 (const int)
+0:36 Loop with condition tested first
+0:36 Loop Condition
+0:36 Compare Less Than (temp bool)
+0:36 'i' (temp int)
+0:36 'a' (temp int)
+0:36 Loop Body
+0:37 Sequence
+0:37 add second child into first child (noContraction temp float)
+0:37 'r1' (noContraction temp float)
+0:37 add (noContraction temp float)
+0:37 add (noContraction temp float)
+0:37 Constant:
+0:37 3.120000
+0:37 Convert int to float (temp float)
+0:37 'b' (noContraction temp int)
+0:37 Convert int to float (temp float)
+0:37 'i' (noContraction temp int)
+0:38 add second child into first child (noContraction temp int)
+0:38 'c' (noContraction temp int)
+0:38 Constant:
+0:38 1 (const int)
+0:36 Loop Terminal Expression
+0:36 Post-Increment (noContraction temp int)
+0:36 'i' (noContraction temp int)
+0:40 add second child into first child (temp int)
+0:40 'a' (temp int)
+0:40 Constant:
+0:40 1 (const int)
+0:41 move second child to first child (temp float)
+0:41 'r2' (noContraction temp float)
+0:41 Convert int to float (temp float)
+0:41 'c' (noContraction temp int)
+0:42 Branch: Return with expression
+0:42 Construct float (temp float)
+0:42 add (temp float)
+0:42 'r1' (noContraction temp float)
+0:42 'r2' (noContraction temp float)
+0:45 Function Definition: loop_array( (global void)
+0:45 Function Parameters:
+0:? Sequence
+0:48 Sequence
+0:48 move second child to first child (temp int)
+0:48 'x' (noContraction temp int)
+0:48 Constant:
+0:48 22 (const int)
+0:49 Sequence
+0:49 move second child to first child (temp int)
+0:49 'y' (noContraction temp int)
+0:49 Constant:
+0:49 33 (const int)
+0:52 add second child into first child (noContraction temp float)
+0:52 'result' (noContraction temp float)
+0:52 add (noContraction temp float)
+0:52 Convert int to float (temp float)
+0:52 'x' (noContraction temp int)
+0:52 Convert int to float (temp float)
+0:52 'y' (noContraction temp int)
+0:54 Sequence
+0:54 Sequence
+0:54 move second child to first child (temp int)
+0:54 'i' (temp int)
+0:54 Constant:
+0:54 0 (const int)
+0:54 Loop with condition tested first
+0:54 Loop Condition
+0:54 Compare Less Than (temp bool)
+0:54 'i' (temp int)
+0:54 Constant:
+0:54 3 (const int)
+0:54 Loop Body
+0:56 Sequence
+0:56 add second child into first child (noContraction temp float)
+0:56 'result' (noContraction temp float)
+0:56 add (noContraction temp float)
+0:56 indirect index (noContraction temp float)
+0:56 'a0' (temp 3-element array of float)
+0:56 'i' (temp int)
+0:56 Constant:
+0:56 2.000000
+0:58 move second child to first child (temp float)
+0:58 indirect index (noContraction temp float)
+0:58 'a0' (noContraction temp 3-element array of float)
+0:58 'i' (temp int)
+0:58 subtract (noContraction temp float)
+0:58 Constant:
+0:58 3.000000
+0:58 Post-Increment (noContraction temp float)
+0:58 'result' (noContraction temp float)
+0:54 Loop Terminal Expression
+0:54 Pre-Increment (temp int)
+0:54 'i' (temp int)
+0:62 Function Definition: loop_while( (global void)
+0:62 Function Parameters:
+0:63 Sequence
+0:63 Sequence
+0:63 move second child to first child (temp float)
+0:63 'result' (noContraction temp float)
+0:63 Constant:
+0:63 5.000000
+0:64 Sequence
+0:64 move second child to first child (temp int)
+0:64 'a' (noContraction temp int)
+0:64 Constant:
+0:64 10 (const int)
+0:65 Sequence
+0:65 move second child to first child (temp int)
+0:65 'b' (noContraction temp int)
+0:65 Constant:
+0:65 20 (const int)
+0:66 Loop with condition tested first
+0:66 Loop Condition
+0:66 Compare Less Than (temp bool)
+0:66 'result' (noContraction temp float)
+0:66 Constant:
+0:66 10.000000
+0:66 Loop Body
+0:67 Sequence
+0:67 add second child into first child (noContraction temp float)
+0:67 'result' (noContraction temp float)
+0:67 add (noContraction temp float)
+0:67 Constant:
+0:67 3.120000
+0:67 Convert int to float (temp float)
+0:67 'b' (noContraction temp int)
+0:69 move second child to first child (temp float)
+0:69 'result' (noContraction temp float)
+0:69 Convert int to float (temp float)
+0:69 add (temp int)
+0:69 add (temp int)
+0:69 'a' (noContraction temp int)
+0:69 'b' (noContraction temp int)
+0:69 Constant:
+0:69 5 (const int)
+0:70 move second child to first child (temp float)
+0:70 'result' (noContraction temp float)
+0:70 Constant:
+0:70 11.100000
+0:73 Function Definition: fma_not_decorated( (global float)
+0:73 Function Parameters:
+0:? Sequence
+0:75 Sequence
+0:75 move second child to first child (temp float)
+0:75 'a' (noContraction temp float)
+0:75 Constant:
+0:75 1.000000
+0:76 Sequence
+0:76 move second child to first child (temp float)
+0:76 'b' (noContraction temp float)
+0:76 Constant:
+0:76 2.000000
+0:77 Sequence
+0:77 move second child to first child (temp float)
+0:77 'c' (noContraction temp float)
+0:77 Constant:
+0:77 3.000000
+0:78 move second child to first child (temp float)
+0:78 'b' (noContraction temp float)
+0:78 add (noContraction temp float)
+0:78 'b' (noContraction temp float)
+0:78 'c' (noContraction temp float)
+0:79 move second child to first child (temp float)
+0:79 'result' (noContraction temp float)
+0:79 fma (global float)
+0:79 'a' (noContraction temp float)
+0:79 'b' (noContraction temp float)
+0:79 'c' (noContraction temp float)
+0:80 Branch: Return with expression
+0:80 'result' (noContraction temp float)
+0:83 Function Definition: precise_return_exp_func( (noContraction temp float)
+0:83 Function Parameters:
+0:84 Sequence
+0:84 Sequence
+0:84 move second child to first child (temp float)
+0:84 'a' (noContraction temp float)
+0:84 Constant:
+0:84 1.000000
+0:85 Sequence
+0:85 move second child to first child (temp float)
+0:85 'b' (noContraction temp float)
+0:85 Constant:
+0:85 2.000000
+0:86 Branch: Return with expression
+0:86 add (noContraction temp float)
+0:86 'a' (noContraction temp float)
+0:86 'b' (noContraction temp float)
+0:89 Function Definition: precise_return_val_func( (noContraction temp float)
+0:89 Function Parameters:
+0:90 Sequence
+0:90 Sequence
+0:90 move second child to first child (temp float)
+0:90 'a' (noContraction temp float)
+0:90 Constant:
+0:90 1.000000
+0:91 Sequence
+0:91 move second child to first child (temp float)
+0:91 'b' (noContraction temp float)
+0:91 Constant:
+0:91 2.000000
+0:92 Sequence
+0:92 move second child to first child (temp float)
+0:92 'result' (noContraction temp float)
+0:92 add (noContraction temp float)
+0:92 'a' (noContraction temp float)
+0:92 'b' (noContraction temp float)
+0:93 Branch: Return with expression
+0:93 'result' (noContraction temp float)
+0:96 Function Definition: precise_func_parameter(f1;f1; (global float)
+0:96 Function Parameters:
+0:96 'b' (in float)
+0:96 'c' (noContraction out float)
+0:97 Sequence
+0:97 Sequence
+0:97 move second child to first child (temp float)
+0:97 'a' (noContraction temp float)
+0:97 Constant:
+0:97 0.500000
+0:98 move second child to first child (temp float)
+0:98 'c' (noContraction out float)
+0:98 add (noContraction temp float)
+0:98 'a' (noContraction temp float)
+0:98 'b' (noContraction in float)
+0:99 Branch: Return with expression
+0:99 subtract (temp float)
+0:99 'a' (temp float)
+0:99 'b' (in float)
+0:102 Function Definition: matrix(mf23;mf32; (global 3X3 matrix of float)
+0:102 Function Parameters:
+0:102 'a' (in 2X3 matrix of float)
+0:102 'b' (in 3X2 matrix of float)
+0:103 Sequence
+0:103 Sequence
+0:103 move second child to first child (temp 2X3 matrix of float)
+0:103 'c' (noContraction temp 2X3 matrix of float)
+0:103 Constant:
+0:103 1.000000
+0:103 2.000000
+0:103 3.000000
+0:103 4.000000
+0:103 5.000000
+0:103 6.000000
+0:105 move second child to first child (temp 3X3 matrix of float)
+0:105 'result' (noContraction temp 3X3 matrix of float)
+0:105 matrix-multiply (noContraction temp 3X3 matrix of float)
+0:105 add (noContraction temp 2X3 matrix of float)
+0:105 'a' (noContraction in 2X3 matrix of float)
+0:105 'c' (noContraction temp 2X3 matrix of float)
+0:105 'b' (noContraction in 3X2 matrix of float)
+0:106 Branch: Return with expression
+0:106 'result' (noContraction temp 3X3 matrix of float)
+0:109 Function Definition: main( (global void)
+0:109 Function Parameters:
+0:? Linker Objects
+
+
+Linked tessellation control stage:
+
+ERROR: Linking tessellation control stage: At least one shader must specify an output layout(vertices=...)
+
+Shader version: 450
+Requested GL_EXT_gpu_shader5
+Requested GL_EXT_shader_io_blocks
+Requested GL_EXT_tessellation_shader
+vertices = -1
+0:? Sequence
+0:5 Function Definition: minimal( (global float)
+0:5 Function Parameters:
+0:6 Sequence
+0:6 Sequence
+0:6 move second child to first child (temp float)
+0:6 'result' (noContraction temp float)
+0:6 Constant:
+0:6 5.000000
+0:7 Sequence
+0:7 move second child to first child (temp float)
+0:7 'a' (noContraction temp float)
+0:7 Constant:
+0:7 10.000000
+0:8 Sequence
+0:8 move second child to first child (temp float)
+0:8 'b' (noContraction temp float)
+0:8 Constant:
+0:8 20.000000
+0:9 Sequence
+0:9 move second child to first child (temp float)
+0:9 'c' (noContraction temp float)
+0:9 Constant:
+0:9 30.000000
+0:10 Sequence
+0:10 move second child to first child (temp float)
+0:10 'd' (noContraction temp float)
+0:10 Constant:
+0:10 40.000000
+0:11 move second child to first child (temp float)
+0:11 'result' (noContraction temp float)
+0:11 add (noContraction temp float)
+0:11 component-wise multiply (noContraction temp float)
+0:11 'a' (noContraction temp float)
+0:11 'b' (noContraction temp float)
+0:11 component-wise multiply (noContraction temp float)
+0:11 'c' (noContraction temp float)
+0:11 'd' (noContraction temp float)
+0:12 Branch: Return with expression
+0:12 'result' (noContraction temp float)
+0:15 Function Definition: continuous_assignment( (global void)
+0:15 Function Parameters:
+0:16 Sequence
+0:16 Sequence
+0:16 move second child to first child (temp float)
+0:16 'result' (noContraction temp float)
+0:16 Constant:
+0:16 5.000000
+0:17 Sequence
+0:17 move second child to first child (temp float)
+0:17 'a' (noContraction temp float)
+0:17 Constant:
+0:17 10.000000
+0:18 Sequence
+0:18 move second child to first child (temp float)
+0:18 'b' (noContraction temp float)
+0:18 Constant:
+0:18 20.000000
+0:19 move second child to first child (temp float)
+0:19 'result' (noContraction temp float)
+0:19 move second child to first child (temp float)
+0:19 'a' (noContraction temp float)
+0:19 add (noContraction temp float)
+0:19 'b' (noContraction temp float)
+0:19 Constant:
+0:19 4.000000
+0:22 Function Definition: convert( (global void)
+0:22 Function Parameters:
+0:? Sequence
+0:24 Sequence
+0:24 move second child to first child (temp float)
+0:24 'a' (noContraction temp float)
+0:24 Constant:
+0:24 10.000000
+0:25 Sequence
+0:25 move second child to first child (temp float)
+0:25 'b' (noContraction temp float)
+0:25 Constant:
+0:25 20.000000
+0:26 move second child to first child (temp float)
+0:26 'b' (noContraction temp float)
+0:26 add (noContraction temp float)
+0:26 'a' (noContraction temp float)
+0:26 'b' (noContraction temp float)
+0:27 move second child to first child (temp double)
+0:27 'result' (noContraction temp double)
+0:27 Convert float to double (temp double)
+0:27 'b' (noContraction temp float)
+0:30 Function Definition: loop_for( (global float)
+0:30 Function Parameters:
+0:31 Sequence
+0:31 Sequence
+0:31 move second child to first child (temp float)
+0:31 'r1' (noContraction temp float)
+0:31 Constant:
+0:31 5.000000
+0:32 Sequence
+0:32 move second child to first child (temp float)
+0:32 'r2' (noContraction temp float)
+0:32 Constant:
+0:32 10.000000
+0:33 Sequence
+0:33 move second child to first child (temp int)
+0:33 'a' (temp int)
+0:33 Constant:
+0:33 10 (const int)
+0:34 Sequence
+0:34 move second child to first child (temp int)
+0:34 'b' (noContraction temp int)
+0:34 Constant:
+0:34 20 (const int)
+0:35 Sequence
+0:35 move second child to first child (temp int)
+0:35 'c' (noContraction temp int)
+0:35 Constant:
+0:35 30 (const int)
+0:36 Sequence
+0:36 Sequence
+0:36 move second child to first child (temp int)
+0:36 'i' (noContraction temp int)
+0:36 Constant:
+0:36 0 (const int)
+0:36 Loop with condition tested first
+0:36 Loop Condition
+0:36 Compare Less Than (temp bool)
+0:36 'i' (temp int)
+0:36 'a' (temp int)
+0:36 Loop Body
+0:37 Sequence
+0:37 add second child into first child (noContraction temp float)
+0:37 'r1' (noContraction temp float)
+0:37 add (noContraction temp float)
+0:37 add (noContraction temp float)
+0:37 Constant:
+0:37 3.120000
+0:37 Convert int to float (temp float)
+0:37 'b' (noContraction temp int)
+0:37 Convert int to float (temp float)
+0:37 'i' (noContraction temp int)
+0:38 add second child into first child (noContraction temp int)
+0:38 'c' (noContraction temp int)
+0:38 Constant:
+0:38 1 (const int)
+0:36 Loop Terminal Expression
+0:36 Post-Increment (noContraction temp int)
+0:36 'i' (noContraction temp int)
+0:40 add second child into first child (temp int)
+0:40 'a' (temp int)
+0:40 Constant:
+0:40 1 (const int)
+0:41 move second child to first child (temp float)
+0:41 'r2' (noContraction temp float)
+0:41 Convert int to float (temp float)
+0:41 'c' (noContraction temp int)
+0:42 Branch: Return with expression
+0:42 Construct float (temp float)
+0:42 add (temp float)
+0:42 'r1' (noContraction temp float)
+0:42 'r2' (noContraction temp float)
+0:45 Function Definition: loop_array( (global void)
+0:45 Function Parameters:
+0:? Sequence
+0:48 Sequence
+0:48 move second child to first child (temp int)
+0:48 'x' (noContraction temp int)
+0:48 Constant:
+0:48 22 (const int)
+0:49 Sequence
+0:49 move second child to first child (temp int)
+0:49 'y' (noContraction temp int)
+0:49 Constant:
+0:49 33 (const int)
+0:52 add second child into first child (noContraction temp float)
+0:52 'result' (noContraction temp float)
+0:52 add (noContraction temp float)
+0:52 Convert int to float (temp float)
+0:52 'x' (noContraction temp int)
+0:52 Convert int to float (temp float)
+0:52 'y' (noContraction temp int)
+0:54 Sequence
+0:54 Sequence
+0:54 move second child to first child (temp int)
+0:54 'i' (temp int)
+0:54 Constant:
+0:54 0 (const int)
+0:54 Loop with condition tested first
+0:54 Loop Condition
+0:54 Compare Less Than (temp bool)
+0:54 'i' (temp int)
+0:54 Constant:
+0:54 3 (const int)
+0:54 Loop Body
+0:56 Sequence
+0:56 add second child into first child (noContraction temp float)
+0:56 'result' (noContraction temp float)
+0:56 add (noContraction temp float)
+0:56 indirect index (noContraction temp float)
+0:56 'a0' (temp 3-element array of float)
+0:56 'i' (temp int)
+0:56 Constant:
+0:56 2.000000
+0:58 move second child to first child (temp float)
+0:58 indirect index (noContraction temp float)
+0:58 'a0' (noContraction temp 3-element array of float)
+0:58 'i' (temp int)
+0:58 subtract (noContraction temp float)
+0:58 Constant:
+0:58 3.000000
+0:58 Post-Increment (noContraction temp float)
+0:58 'result' (noContraction temp float)
+0:54 Loop Terminal Expression
+0:54 Pre-Increment (temp int)
+0:54 'i' (temp int)
+0:62 Function Definition: loop_while( (global void)
+0:62 Function Parameters:
+0:63 Sequence
+0:63 Sequence
+0:63 move second child to first child (temp float)
+0:63 'result' (noContraction temp float)
+0:63 Constant:
+0:63 5.000000
+0:64 Sequence
+0:64 move second child to first child (temp int)
+0:64 'a' (noContraction temp int)
+0:64 Constant:
+0:64 10 (const int)
+0:65 Sequence
+0:65 move second child to first child (temp int)
+0:65 'b' (noContraction temp int)
+0:65 Constant:
+0:65 20 (const int)
+0:66 Loop with condition tested first
+0:66 Loop Condition
+0:66 Compare Less Than (temp bool)
+0:66 'result' (noContraction temp float)
+0:66 Constant:
+0:66 10.000000
+0:66 Loop Body
+0:67 Sequence
+0:67 add second child into first child (noContraction temp float)
+0:67 'result' (noContraction temp float)
+0:67 add (noContraction temp float)
+0:67 Constant:
+0:67 3.120000
+0:67 Convert int to float (temp float)
+0:67 'b' (noContraction temp int)
+0:69 move second child to first child (temp float)
+0:69 'result' (noContraction temp float)
+0:69 Convert int to float (temp float)
+0:69 add (temp int)
+0:69 add (temp int)
+0:69 'a' (noContraction temp int)
+0:69 'b' (noContraction temp int)
+0:69 Constant:
+0:69 5 (const int)
+0:70 move second child to first child (temp float)
+0:70 'result' (noContraction temp float)
+0:70 Constant:
+0:70 11.100000
+0:73 Function Definition: fma_not_decorated( (global float)
+0:73 Function Parameters:
+0:? Sequence
+0:75 Sequence
+0:75 move second child to first child (temp float)
+0:75 'a' (noContraction temp float)
+0:75 Constant:
+0:75 1.000000
+0:76 Sequence
+0:76 move second child to first child (temp float)
+0:76 'b' (noContraction temp float)
+0:76 Constant:
+0:76 2.000000
+0:77 Sequence
+0:77 move second child to first child (temp float)
+0:77 'c' (noContraction temp float)
+0:77 Constant:
+0:77 3.000000
+0:78 move second child to first child (temp float)
+0:78 'b' (noContraction temp float)
+0:78 add (noContraction temp float)
+0:78 'b' (noContraction temp float)
+0:78 'c' (noContraction temp float)
+0:79 move second child to first child (temp float)
+0:79 'result' (noContraction temp float)
+0:79 fma (global float)
+0:79 'a' (noContraction temp float)
+0:79 'b' (noContraction temp float)
+0:79 'c' (noContraction temp float)
+0:80 Branch: Return with expression
+0:80 'result' (noContraction temp float)
+0:83 Function Definition: precise_return_exp_func( (noContraction temp float)
+0:83 Function Parameters:
+0:84 Sequence
+0:84 Sequence
+0:84 move second child to first child (temp float)
+0:84 'a' (noContraction temp float)
+0:84 Constant:
+0:84 1.000000
+0:85 Sequence
+0:85 move second child to first child (temp float)
+0:85 'b' (noContraction temp float)
+0:85 Constant:
+0:85 2.000000
+0:86 Branch: Return with expression
+0:86 add (noContraction temp float)
+0:86 'a' (noContraction temp float)
+0:86 'b' (noContraction temp float)
+0:89 Function Definition: precise_return_val_func( (noContraction temp float)
+0:89 Function Parameters:
+0:90 Sequence
+0:90 Sequence
+0:90 move second child to first child (temp float)
+0:90 'a' (noContraction temp float)
+0:90 Constant:
+0:90 1.000000
+0:91 Sequence
+0:91 move second child to first child (temp float)
+0:91 'b' (noContraction temp float)
+0:91 Constant:
+0:91 2.000000
+0:92 Sequence
+0:92 move second child to first child (temp float)
+0:92 'result' (noContraction temp float)
+0:92 add (noContraction temp float)
+0:92 'a' (noContraction temp float)
+0:92 'b' (noContraction temp float)
+0:93 Branch: Return with expression
+0:93 'result' (noContraction temp float)
+0:96 Function Definition: precise_func_parameter(f1;f1; (global float)
+0:96 Function Parameters:
+0:96 'b' (in float)
+0:96 'c' (noContraction out float)
+0:97 Sequence
+0:97 Sequence
+0:97 move second child to first child (temp float)
+0:97 'a' (noContraction temp float)
+0:97 Constant:
+0:97 0.500000
+0:98 move second child to first child (temp float)
+0:98 'c' (noContraction out float)
+0:98 add (noContraction temp float)
+0:98 'a' (noContraction temp float)
+0:98 'b' (noContraction in float)
+0:99 Branch: Return with expression
+0:99 subtract (temp float)
+0:99 'a' (temp float)
+0:99 'b' (in float)
+0:102 Function Definition: matrix(mf23;mf32; (global 3X3 matrix of float)
+0:102 Function Parameters:
+0:102 'a' (in 2X3 matrix of float)
+0:102 'b' (in 3X2 matrix of float)
+0:103 Sequence
+0:103 Sequence
+0:103 move second child to first child (temp 2X3 matrix of float)
+0:103 'c' (noContraction temp 2X3 matrix of float)
+0:103 Constant:
+0:103 1.000000
+0:103 2.000000
+0:103 3.000000
+0:103 4.000000
+0:103 5.000000
+0:103 6.000000
+0:105 move second child to first child (temp 3X3 matrix of float)
+0:105 'result' (noContraction temp 3X3 matrix of float)
+0:105 matrix-multiply (noContraction temp 3X3 matrix of float)
+0:105 add (noContraction temp 2X3 matrix of float)
+0:105 'a' (noContraction in 2X3 matrix of float)
+0:105 'c' (noContraction temp 2X3 matrix of float)
+0:105 'b' (noContraction in 3X2 matrix of float)
+0:106 Branch: Return with expression
+0:106 'result' (noContraction temp 3X3 matrix of float)
+0:109 Function Definition: main( (global void)
+0:109 Function Parameters:
+0:? Linker Objects
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/precise_struct_block.vert.out b/chromium/third_party/glslang/src/Test/baseResults/precise_struct_block.vert.out
new file mode 100644
index 00000000000..9d726d65af3
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/precise_struct_block.vert.out
@@ -0,0 +1,1045 @@
+precise_struct_block.vert
+Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
+
+Shader version: 450
+0:? Sequence
+0:11 Function Definition: struct_member( (global float)
+0:11 Function Parameters:
+0:12 Sequence
+0:12 Sequence
+0:12 move second child to first child (temp float)
+0:12 'a' (noContraction temp float)
+0:12 Constant:
+0:12 1.000000
+0:13 Sequence
+0:13 move second child to first child (temp float)
+0:13 'b' (temp float)
+0:13 Constant:
+0:13 2.000000
+0:14 Sequence
+0:14 move second child to first child (temp float)
+0:14 'c' (temp float)
+0:14 Constant:
+0:14 3.000000
+0:15 Sequence
+0:15 move second child to first child (temp float)
+0:15 'd' (temp float)
+0:15 Constant:
+0:15 4.000000
+0:21 move second child to first child (temp float)
+0:21 f1: direct index for structure (noContraction global float)
+0:21 'S2' (temp structure{global float f1, global float f2})
+0:21 Constant:
+0:21 0 (const int)
+0:21 add (noContraction temp float)
+0:21 'a' (noContraction temp float)
+0:21 Constant:
+0:21 0.200000
+0:22 move second child to first child (temp float)
+0:22 f2: direct index for structure (global float)
+0:22 'S2' (temp structure{global float f1, global float f2})
+0:22 Constant:
+0:22 1 (const int)
+0:22 add (temp float)
+0:22 'b' (temp float)
+0:22 Constant:
+0:22 0.200000
+0:23 move second child to first child (temp float)
+0:23 f1: direct index for structure (global float)
+0:23 'S3' (temp structure{global float f1, global float f2})
+0:23 Constant:
+0:23 0 (const int)
+0:23 add (temp float)
+0:23 'a' (temp float)
+0:23 'b' (temp float)
+0:24 move second child to first child (temp structure{global float f1, global float f2})
+0:24 'S' (temp structure{global float f1, global float f2})
+0:24 'S2' (temp structure{global float f1, global float f2})
+0:25 move second child to first child (temp float)
+0:25 'result' (noContraction temp float)
+0:25 add (noContraction temp float)
+0:25 f1: direct index for structure (noContraction global float)
+0:25 'S' (temp structure{global float f1, global float f2})
+0:25 Constant:
+0:25 0 (const int)
+0:25 Constant:
+0:25 0.100000
+0:27 Branch: Return with expression
+0:27 'result' (noContraction temp float)
+0:30 Function Definition: complex_array_struct( (global float)
+0:30 Function Parameters:
+0:? Sequence
+0:43 Sequence
+0:43 Sequence
+0:43 move second child to first child (temp int)
+0:43 'i' (noContraction temp int)
+0:43 Constant:
+0:43 0 (const int)
+0:43 Loop with condition tested first
+0:43 Loop Condition
+0:43 Compare Less Than (temp bool)
+0:43 'i' (temp int)
+0:43 Constant:
+0:43 10 (const int)
+0:43 Loop Body
+0:44 Sequence
+0:44 move second child to first child (temp float)
+0:44 f: direct index for structure (temp float)
+0:44 indirect index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:44 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:44 'i' (temp int)
+0:44 Constant:
+0:44 0 (const int)
+0:44 divide (temp float)
+0:44 Convert int to float (temp float)
+0:44 'i' (temp int)
+0:44 Constant:
+0:44 3.000000
+0:45 move second child to first child (temp 4-component vector of float)
+0:45 v: direct index for structure (noContraction temp 4-component vector of float)
+0:45 indirect index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:45 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:45 'i' (temp int)
+0:45 Constant:
+0:45 2 (const int)
+0:45 Construct vec4 (temp 4-component vector of float)
+0:45 component-wise multiply (noContraction temp float)
+0:45 Convert int to float (temp float)
+0:45 'i' (noContraction temp int)
+0:45 Constant:
+0:45 1.500000
+0:46 move second child to first child (temp int)
+0:46 p: direct index for structure (temp int)
+0:46 indirect index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:46 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:46 'i' (temp int)
+0:46 Constant:
+0:46 3 (const int)
+0:46 add (temp int)
+0:46 'i' (temp int)
+0:46 Constant:
+0:46 1 (const int)
+0:47 Sequence
+0:47 Sequence
+0:47 move second child to first child (temp int)
+0:47 'j' (temp int)
+0:47 Constant:
+0:47 0 (const int)
+0:47 Loop with condition tested first
+0:47 Loop Condition
+0:47 Compare Less Than (temp bool)
+0:47 'j' (temp int)
+0:47 Constant:
+0:47 5 (const int)
+0:47 Loop Body
+0:48 Sequence
+0:48 Sequence
+0:48 Sequence
+0:48 move second child to first child (temp int)
+0:48 'k' (temp int)
+0:48 Constant:
+0:48 0 (const int)
+0:48 Loop with condition tested first
+0:48 Loop Condition
+0:48 Compare Less Than (temp bool)
+0:48 'k' (temp int)
+0:48 Constant:
+0:48 3 (const int)
+0:48 Loop Body
+0:49 Sequence
+0:49 move second child to first child (temp float)
+0:49 indirect index (temp float)
+0:49 t1_array: direct index for structure (temp 3-element array of float)
+0:49 indirect index (temp structure{temp 3-element array of float t1_array, temp float t1_scalar})
+0:49 t1a: direct index for structure (temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar})
+0:49 t2: direct index for structure (temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c})
+0:49 indirect index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:49 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:49 'i' (temp int)
+0:49 Constant:
+0:49 1 (const int)
+0:49 Constant:
+0:49 0 (const int)
+0:49 'j' (temp int)
+0:49 Constant:
+0:49 0 (const int)
+0:49 'k' (temp int)
+0:49 Convert int to float (temp float)
+0:49 add (temp int)
+0:49 component-wise multiply (temp int)
+0:49 'i' (temp int)
+0:49 'j' (temp int)
+0:49 'k' (temp int)
+0:48 Loop Terminal Expression
+0:48 Post-Increment (temp int)
+0:48 'k' (temp int)
+0:51 move second child to first child (temp float)
+0:51 t1_scalar: direct index for structure (temp float)
+0:51 indirect index (temp structure{temp 3-element array of float t1_array, temp float t1_scalar})
+0:51 t1a: direct index for structure (temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar})
+0:51 t2: direct index for structure (temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c})
+0:51 indirect index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:51 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:51 'i' (temp int)
+0:51 Constant:
+0:51 1 (const int)
+0:51 Constant:
+0:51 0 (const int)
+0:51 'j' (temp int)
+0:51 Constant:
+0:51 1 (const int)
+0:51 divide (temp float)
+0:51 component-wise multiply (temp float)
+0:51 Convert int to float (temp float)
+0:51 'j' (temp int)
+0:51 Constant:
+0:51 2.000000
+0:51 Convert int to float (temp float)
+0:51 'i' (temp int)
+0:47 Loop Terminal Expression
+0:47 Post-Increment (temp int)
+0:47 'j' (temp int)
+0:54 Sequence
+0:54 Sequence
+0:54 move second child to first child (temp int)
+0:54 'j' (noContraction temp int)
+0:54 Constant:
+0:54 0 (const int)
+0:54 Loop with condition tested first
+0:54 Loop Condition
+0:54 Compare Less Than (temp bool)
+0:54 'j' (temp int)
+0:54 Constant:
+0:54 6 (const int)
+0:54 Loop Body
+0:55 Sequence
+0:55 Sequence
+0:55 Sequence
+0:55 move second child to first child (temp int)
+0:55 'k' (temp int)
+0:55 Constant:
+0:55 0 (const int)
+0:55 Loop with condition tested first
+0:55 Loop Condition
+0:55 Compare Less Than (temp bool)
+0:55 'k' (temp int)
+0:55 Constant:
+0:55 3 (const int)
+0:55 Loop Body
+0:56 Sequence
+0:56 move second child to first child (temp float)
+0:56 indirect index (temp float)
+0:56 t1_array: direct index for structure (temp 3-element array of float)
+0:56 indirect index (temp structure{temp 3-element array of float t1_array, temp float t1_scalar})
+0:56 t1b: direct index for structure (temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar})
+0:56 t2: direct index for structure (temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c})
+0:56 indirect index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:56 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:56 'i' (temp int)
+0:56 Constant:
+0:56 1 (const int)
+0:56 Constant:
+0:56 1 (const int)
+0:56 'j' (temp int)
+0:56 Constant:
+0:56 0 (const int)
+0:56 'k' (temp int)
+0:56 Convert int to float (temp float)
+0:56 add (temp int)
+0:56 component-wise multiply (temp int)
+0:56 'i' (temp int)
+0:56 'j' (temp int)
+0:56 'k' (temp int)
+0:55 Loop Terminal Expression
+0:55 Post-Increment (temp int)
+0:55 'k' (temp int)
+0:58 move second child to first child (temp float)
+0:58 t1_scalar: direct index for structure (noContraction temp float)
+0:58 indirect index (temp structure{temp 3-element array of float t1_array, temp float t1_scalar})
+0:58 t1b: direct index for structure (temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar})
+0:58 t2: direct index for structure (temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c})
+0:58 indirect index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:58 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:58 'i' (temp int)
+0:58 Constant:
+0:58 1 (const int)
+0:58 Constant:
+0:58 1 (const int)
+0:58 'j' (temp int)
+0:58 Constant:
+0:58 1 (const int)
+0:58 divide (noContraction temp float)
+0:58 component-wise multiply (noContraction temp float)
+0:58 Convert int to float (temp float)
+0:58 'j' (noContraction temp int)
+0:58 Constant:
+0:58 2.000000
+0:58 Convert int to float (temp float)
+0:58 'i' (noContraction temp int)
+0:54 Loop Terminal Expression
+0:54 Post-Increment (noContraction temp int)
+0:54 'j' (noContraction temp int)
+0:61 Sequence
+0:61 Sequence
+0:61 move second child to first child (temp int)
+0:61 'j' (noContraction temp int)
+0:61 Constant:
+0:61 0 (const int)
+0:61 Loop with condition tested first
+0:61 Loop Condition
+0:61 Compare Less Than (temp bool)
+0:61 'j' (temp int)
+0:61 Constant:
+0:61 6 (const int)
+0:61 Loop Body
+0:62 Sequence
+0:62 Sequence
+0:62 Sequence
+0:62 move second child to first child (temp int)
+0:62 'k' (noContraction temp int)
+0:62 Constant:
+0:62 0 (const int)
+0:62 Loop with condition tested first
+0:62 Loop Condition
+0:62 Compare Less Than (temp bool)
+0:62 'k' (temp int)
+0:62 Constant:
+0:62 3 (const int)
+0:62 Loop Body
+0:63 Sequence
+0:63 move second child to first child (temp float)
+0:63 indirect index (noContraction temp float)
+0:63 t1_array: direct index for structure (noContraction temp 3-element array of float)
+0:63 indirect index (temp structure{temp 3-element array of float t1_array, temp float t1_scalar})
+0:63 t1c: direct index for structure (temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar})
+0:63 t2: direct index for structure (temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c})
+0:63 indirect index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:63 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:63 'i' (temp int)
+0:63 Constant:
+0:63 1 (const int)
+0:63 Constant:
+0:63 2 (const int)
+0:63 'j' (temp int)
+0:63 Constant:
+0:63 0 (const int)
+0:63 'k' (temp int)
+0:63 Convert int to float (temp float)
+0:63 add (temp int)
+0:63 component-wise multiply (temp int)
+0:63 'i' (noContraction temp int)
+0:63 'j' (noContraction temp int)
+0:63 'k' (noContraction temp int)
+0:62 Loop Terminal Expression
+0:62 Post-Increment (noContraction temp int)
+0:62 'k' (noContraction temp int)
+0:65 move second child to first child (temp float)
+0:65 t1_scalar: direct index for structure (temp float)
+0:65 indirect index (temp structure{temp 3-element array of float t1_array, temp float t1_scalar})
+0:65 t1c: direct index for structure (temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar})
+0:65 t2: direct index for structure (temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c})
+0:65 indirect index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:65 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:65 'i' (temp int)
+0:65 Constant:
+0:65 1 (const int)
+0:65 Constant:
+0:65 2 (const int)
+0:65 'j' (temp int)
+0:65 Constant:
+0:65 1 (const int)
+0:65 divide (temp float)
+0:65 component-wise multiply (temp float)
+0:65 Convert int to float (temp float)
+0:65 'j' (temp int)
+0:65 Constant:
+0:65 2.000000
+0:65 Convert int to float (temp float)
+0:65 'i' (temp int)
+0:61 Loop Terminal Expression
+0:61 Post-Increment (noContraction temp int)
+0:61 'j' (noContraction temp int)
+0:43 Loop Terminal Expression
+0:43 Post-Increment (noContraction temp int)
+0:43 'i' (noContraction temp int)
+0:68 Sequence
+0:68 move second child to first child (temp int)
+0:68 'i' (temp int)
+0:68 Constant:
+0:68 2 (const int)
+0:69 move second child to first child (temp float)
+0:69 'result' (noContraction temp float)
+0:71 add (noContraction temp float)
+0:70 add (noContraction temp float)
+0:69 direct index (noContraction temp float)
+0:69 t1_array: direct index for structure (temp 3-element array of float)
+0:69 direct index (temp structure{temp 3-element array of float t1_array, temp float t1_scalar})
+0:69 t1c: direct index for structure (temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar})
+0:69 t2: direct index for structure (temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c})
+0:69 direct index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:69 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:69 Constant:
+0:69 5 (const int)
+0:69 Constant:
+0:69 1 (const int)
+0:69 Constant:
+0:69 2 (const int)
+0:69 Constant:
+0:69 6 (const int)
+0:69 Constant:
+0:69 0 (const int)
+0:69 Constant:
+0:69 1 (const int)
+0:70 t1_scalar: direct index for structure (noContraction temp float)
+0:70 direct index (temp structure{temp 3-element array of float t1_array, temp float t1_scalar})
+0:70 t1b: direct index for structure (temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar})
+0:70 t2: direct index for structure (temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c})
+0:70 direct index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:70 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:70 Constant:
+0:70 2 (const int)
+0:70 Constant:
+0:70 1 (const int)
+0:70 Constant:
+0:70 1 (const int)
+0:70 Constant:
+0:70 1 (const int)
+0:70 Constant:
+0:70 1 (const int)
+0:71 direct index (noContraction temp float)
+0:71 vector swizzle (temp 2-component vector of float)
+0:71 v: direct index for structure (temp 4-component vector of float)
+0:71 indirect index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:71 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:71 subtract (temp int)
+0:71 'i' (temp int)
+0:71 Constant:
+0:71 1 (const int)
+0:71 Constant:
+0:71 2 (const int)
+0:71 Sequence
+0:71 Constant:
+0:71 0 (const int)
+0:71 Constant:
+0:71 1 (const int)
+0:71 Constant:
+0:71 0 (const int)
+0:72 Branch: Return with expression
+0:72 'result' (noContraction temp float)
+0:75 Function Definition: out_block( (global float)
+0:75 Function Parameters:
+0:76 Sequence
+0:76 Sequence
+0:76 move second child to first child (temp float)
+0:76 'a' (noContraction temp float)
+0:76 Constant:
+0:76 0.100000
+0:77 Sequence
+0:77 move second child to first child (temp float)
+0:77 'b' (noContraction temp float)
+0:77 Constant:
+0:77 0.200000
+0:78 move second child to first child (temp float)
+0:78 f1: direct index for structure (noContraction global float)
+0:78 s: direct index for structure (noContraction out structure{global float f1, global float f2})
+0:78 'partial_precise_block' (out block{noContraction out structure{global float f1, global float f2} s, out float x})
+0:78 Constant:
+0:78 0 (const int)
+0:78 Constant:
+0:78 0 (const int)
+0:78 add (noContraction temp float)
+0:78 'a' (noContraction temp float)
+0:78 'b' (noContraction temp float)
+0:79 move second child to first child (temp float)
+0:79 f2: direct index for structure (noContraction global float)
+0:79 s: direct index for structure (noContraction out structure{global float f1, global float f2})
+0:79 'partial_precise_block' (out block{noContraction out structure{global float f1, global float f2} s, out float x})
+0:79 Constant:
+0:79 0 (const int)
+0:79 Constant:
+0:79 1 (const int)
+0:79 subtract (noContraction temp float)
+0:79 'a' (noContraction temp float)
+0:79 'b' (noContraction temp float)
+0:80 move second child to first child (temp float)
+0:80 x: direct index for structure (out float)
+0:80 'partial_precise_block' (out block{noContraction out structure{global float f1, global float f2} s, out float x})
+0:80 Constant:
+0:80 1 (const int)
+0:80 component-wise multiply (temp float)
+0:80 'a' (temp float)
+0:80 'b' (temp float)
+0:82 move second child to first child (temp float)
+0:82 f1: direct index for structure (noContraction global float)
+0:82 s: direct index for structure (noContraction out structure{global float f1, global float f2})
+0:82 'all_precise_block' (noContraction out block{out structure{global float f1, global float f2} s, out float x})
+0:82 Constant:
+0:82 0 (const int)
+0:82 Constant:
+0:82 0 (const int)
+0:82 add (noContraction temp float)
+0:82 add (noContraction temp float)
+0:82 'a' (noContraction temp float)
+0:82 'b' (noContraction temp float)
+0:82 Constant:
+0:82 1.000000
+0:83 move second child to first child (temp float)
+0:83 f2: direct index for structure (noContraction global float)
+0:83 s: direct index for structure (noContraction out structure{global float f1, global float f2})
+0:83 'all_precise_block' (noContraction out block{out structure{global float f1, global float f2} s, out float x})
+0:83 Constant:
+0:83 0 (const int)
+0:83 Constant:
+0:83 1 (const int)
+0:83 subtract (noContraction temp float)
+0:83 subtract (noContraction temp float)
+0:83 'a' (noContraction temp float)
+0:83 'b' (noContraction temp float)
+0:83 Constant:
+0:83 1.000000
+0:84 move second child to first child (temp float)
+0:84 x: direct index for structure (noContraction out float)
+0:84 'all_precise_block' (noContraction out block{out structure{global float f1, global float f2} s, out float x})
+0:84 Constant:
+0:84 1 (const int)
+0:84 component-wise multiply (noContraction temp float)
+0:84 component-wise multiply (noContraction temp float)
+0:84 'a' (noContraction temp float)
+0:84 'b' (noContraction temp float)
+0:84 Constant:
+0:84 2.000000
+0:86 Branch: Return with expression
+0:86 add (temp float)
+0:86 'a' (temp float)
+0:86 'b' (temp float)
+0:89 Function Definition: main( (global void)
+0:89 Function Parameters:
+0:? Linker Objects
+0:? 'partial_precise_block' (out block{noContraction out structure{global float f1, global float f2} s, out float x})
+0:? 'all_precise_block' (noContraction out block{out structure{global float f1, global float f2} s, out float x})
+0:? 'gl_VertexID' (gl_VertexId int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
+
+
+Linked vertex stage:
+
+
+Shader version: 450
+0:? Sequence
+0:11 Function Definition: struct_member( (global float)
+0:11 Function Parameters:
+0:12 Sequence
+0:12 Sequence
+0:12 move second child to first child (temp float)
+0:12 'a' (noContraction temp float)
+0:12 Constant:
+0:12 1.000000
+0:13 Sequence
+0:13 move second child to first child (temp float)
+0:13 'b' (temp float)
+0:13 Constant:
+0:13 2.000000
+0:14 Sequence
+0:14 move second child to first child (temp float)
+0:14 'c' (temp float)
+0:14 Constant:
+0:14 3.000000
+0:15 Sequence
+0:15 move second child to first child (temp float)
+0:15 'd' (temp float)
+0:15 Constant:
+0:15 4.000000
+0:21 move second child to first child (temp float)
+0:21 f1: direct index for structure (noContraction global float)
+0:21 'S2' (temp structure{global float f1, global float f2})
+0:21 Constant:
+0:21 0 (const int)
+0:21 add (noContraction temp float)
+0:21 'a' (noContraction temp float)
+0:21 Constant:
+0:21 0.200000
+0:22 move second child to first child (temp float)
+0:22 f2: direct index for structure (global float)
+0:22 'S2' (temp structure{global float f1, global float f2})
+0:22 Constant:
+0:22 1 (const int)
+0:22 add (temp float)
+0:22 'b' (temp float)
+0:22 Constant:
+0:22 0.200000
+0:23 move second child to first child (temp float)
+0:23 f1: direct index for structure (global float)
+0:23 'S3' (temp structure{global float f1, global float f2})
+0:23 Constant:
+0:23 0 (const int)
+0:23 add (temp float)
+0:23 'a' (temp float)
+0:23 'b' (temp float)
+0:24 move second child to first child (temp structure{global float f1, global float f2})
+0:24 'S' (temp structure{global float f1, global float f2})
+0:24 'S2' (temp structure{global float f1, global float f2})
+0:25 move second child to first child (temp float)
+0:25 'result' (noContraction temp float)
+0:25 add (noContraction temp float)
+0:25 f1: direct index for structure (noContraction global float)
+0:25 'S' (temp structure{global float f1, global float f2})
+0:25 Constant:
+0:25 0 (const int)
+0:25 Constant:
+0:25 0.100000
+0:27 Branch: Return with expression
+0:27 'result' (noContraction temp float)
+0:30 Function Definition: complex_array_struct( (global float)
+0:30 Function Parameters:
+0:? Sequence
+0:43 Sequence
+0:43 Sequence
+0:43 move second child to first child (temp int)
+0:43 'i' (noContraction temp int)
+0:43 Constant:
+0:43 0 (const int)
+0:43 Loop with condition tested first
+0:43 Loop Condition
+0:43 Compare Less Than (temp bool)
+0:43 'i' (temp int)
+0:43 Constant:
+0:43 10 (const int)
+0:43 Loop Body
+0:44 Sequence
+0:44 move second child to first child (temp float)
+0:44 f: direct index for structure (temp float)
+0:44 indirect index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:44 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:44 'i' (temp int)
+0:44 Constant:
+0:44 0 (const int)
+0:44 divide (temp float)
+0:44 Convert int to float (temp float)
+0:44 'i' (temp int)
+0:44 Constant:
+0:44 3.000000
+0:45 move second child to first child (temp 4-component vector of float)
+0:45 v: direct index for structure (noContraction temp 4-component vector of float)
+0:45 indirect index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:45 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:45 'i' (temp int)
+0:45 Constant:
+0:45 2 (const int)
+0:45 Construct vec4 (temp 4-component vector of float)
+0:45 component-wise multiply (noContraction temp float)
+0:45 Convert int to float (temp float)
+0:45 'i' (noContraction temp int)
+0:45 Constant:
+0:45 1.500000
+0:46 move second child to first child (temp int)
+0:46 p: direct index for structure (temp int)
+0:46 indirect index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:46 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:46 'i' (temp int)
+0:46 Constant:
+0:46 3 (const int)
+0:46 add (temp int)
+0:46 'i' (temp int)
+0:46 Constant:
+0:46 1 (const int)
+0:47 Sequence
+0:47 Sequence
+0:47 move second child to first child (temp int)
+0:47 'j' (temp int)
+0:47 Constant:
+0:47 0 (const int)
+0:47 Loop with condition tested first
+0:47 Loop Condition
+0:47 Compare Less Than (temp bool)
+0:47 'j' (temp int)
+0:47 Constant:
+0:47 5 (const int)
+0:47 Loop Body
+0:48 Sequence
+0:48 Sequence
+0:48 Sequence
+0:48 move second child to first child (temp int)
+0:48 'k' (temp int)
+0:48 Constant:
+0:48 0 (const int)
+0:48 Loop with condition tested first
+0:48 Loop Condition
+0:48 Compare Less Than (temp bool)
+0:48 'k' (temp int)
+0:48 Constant:
+0:48 3 (const int)
+0:48 Loop Body
+0:49 Sequence
+0:49 move second child to first child (temp float)
+0:49 indirect index (temp float)
+0:49 t1_array: direct index for structure (temp 3-element array of float)
+0:49 indirect index (temp structure{temp 3-element array of float t1_array, temp float t1_scalar})
+0:49 t1a: direct index for structure (temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar})
+0:49 t2: direct index for structure (temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c})
+0:49 indirect index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:49 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:49 'i' (temp int)
+0:49 Constant:
+0:49 1 (const int)
+0:49 Constant:
+0:49 0 (const int)
+0:49 'j' (temp int)
+0:49 Constant:
+0:49 0 (const int)
+0:49 'k' (temp int)
+0:49 Convert int to float (temp float)
+0:49 add (temp int)
+0:49 component-wise multiply (temp int)
+0:49 'i' (temp int)
+0:49 'j' (temp int)
+0:49 'k' (temp int)
+0:48 Loop Terminal Expression
+0:48 Post-Increment (temp int)
+0:48 'k' (temp int)
+0:51 move second child to first child (temp float)
+0:51 t1_scalar: direct index for structure (temp float)
+0:51 indirect index (temp structure{temp 3-element array of float t1_array, temp float t1_scalar})
+0:51 t1a: direct index for structure (temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar})
+0:51 t2: direct index for structure (temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c})
+0:51 indirect index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:51 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:51 'i' (temp int)
+0:51 Constant:
+0:51 1 (const int)
+0:51 Constant:
+0:51 0 (const int)
+0:51 'j' (temp int)
+0:51 Constant:
+0:51 1 (const int)
+0:51 divide (temp float)
+0:51 component-wise multiply (temp float)
+0:51 Convert int to float (temp float)
+0:51 'j' (temp int)
+0:51 Constant:
+0:51 2.000000
+0:51 Convert int to float (temp float)
+0:51 'i' (temp int)
+0:47 Loop Terminal Expression
+0:47 Post-Increment (temp int)
+0:47 'j' (temp int)
+0:54 Sequence
+0:54 Sequence
+0:54 move second child to first child (temp int)
+0:54 'j' (noContraction temp int)
+0:54 Constant:
+0:54 0 (const int)
+0:54 Loop with condition tested first
+0:54 Loop Condition
+0:54 Compare Less Than (temp bool)
+0:54 'j' (temp int)
+0:54 Constant:
+0:54 6 (const int)
+0:54 Loop Body
+0:55 Sequence
+0:55 Sequence
+0:55 Sequence
+0:55 move second child to first child (temp int)
+0:55 'k' (temp int)
+0:55 Constant:
+0:55 0 (const int)
+0:55 Loop with condition tested first
+0:55 Loop Condition
+0:55 Compare Less Than (temp bool)
+0:55 'k' (temp int)
+0:55 Constant:
+0:55 3 (const int)
+0:55 Loop Body
+0:56 Sequence
+0:56 move second child to first child (temp float)
+0:56 indirect index (temp float)
+0:56 t1_array: direct index for structure (temp 3-element array of float)
+0:56 indirect index (temp structure{temp 3-element array of float t1_array, temp float t1_scalar})
+0:56 t1b: direct index for structure (temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar})
+0:56 t2: direct index for structure (temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c})
+0:56 indirect index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:56 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:56 'i' (temp int)
+0:56 Constant:
+0:56 1 (const int)
+0:56 Constant:
+0:56 1 (const int)
+0:56 'j' (temp int)
+0:56 Constant:
+0:56 0 (const int)
+0:56 'k' (temp int)
+0:56 Convert int to float (temp float)
+0:56 add (temp int)
+0:56 component-wise multiply (temp int)
+0:56 'i' (temp int)
+0:56 'j' (temp int)
+0:56 'k' (temp int)
+0:55 Loop Terminal Expression
+0:55 Post-Increment (temp int)
+0:55 'k' (temp int)
+0:58 move second child to first child (temp float)
+0:58 t1_scalar: direct index for structure (noContraction temp float)
+0:58 indirect index (temp structure{temp 3-element array of float t1_array, temp float t1_scalar})
+0:58 t1b: direct index for structure (temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar})
+0:58 t2: direct index for structure (temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c})
+0:58 indirect index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:58 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:58 'i' (temp int)
+0:58 Constant:
+0:58 1 (const int)
+0:58 Constant:
+0:58 1 (const int)
+0:58 'j' (temp int)
+0:58 Constant:
+0:58 1 (const int)
+0:58 divide (noContraction temp float)
+0:58 component-wise multiply (noContraction temp float)
+0:58 Convert int to float (temp float)
+0:58 'j' (noContraction temp int)
+0:58 Constant:
+0:58 2.000000
+0:58 Convert int to float (temp float)
+0:58 'i' (noContraction temp int)
+0:54 Loop Terminal Expression
+0:54 Post-Increment (noContraction temp int)
+0:54 'j' (noContraction temp int)
+0:61 Sequence
+0:61 Sequence
+0:61 move second child to first child (temp int)
+0:61 'j' (noContraction temp int)
+0:61 Constant:
+0:61 0 (const int)
+0:61 Loop with condition tested first
+0:61 Loop Condition
+0:61 Compare Less Than (temp bool)
+0:61 'j' (temp int)
+0:61 Constant:
+0:61 6 (const int)
+0:61 Loop Body
+0:62 Sequence
+0:62 Sequence
+0:62 Sequence
+0:62 move second child to first child (temp int)
+0:62 'k' (noContraction temp int)
+0:62 Constant:
+0:62 0 (const int)
+0:62 Loop with condition tested first
+0:62 Loop Condition
+0:62 Compare Less Than (temp bool)
+0:62 'k' (temp int)
+0:62 Constant:
+0:62 3 (const int)
+0:62 Loop Body
+0:63 Sequence
+0:63 move second child to first child (temp float)
+0:63 indirect index (noContraction temp float)
+0:63 t1_array: direct index for structure (noContraction temp 3-element array of float)
+0:63 indirect index (temp structure{temp 3-element array of float t1_array, temp float t1_scalar})
+0:63 t1c: direct index for structure (temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar})
+0:63 t2: direct index for structure (temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c})
+0:63 indirect index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:63 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:63 'i' (temp int)
+0:63 Constant:
+0:63 1 (const int)
+0:63 Constant:
+0:63 2 (const int)
+0:63 'j' (temp int)
+0:63 Constant:
+0:63 0 (const int)
+0:63 'k' (temp int)
+0:63 Convert int to float (temp float)
+0:63 add (temp int)
+0:63 component-wise multiply (temp int)
+0:63 'i' (noContraction temp int)
+0:63 'j' (noContraction temp int)
+0:63 'k' (noContraction temp int)
+0:62 Loop Terminal Expression
+0:62 Post-Increment (noContraction temp int)
+0:62 'k' (noContraction temp int)
+0:65 move second child to first child (temp float)
+0:65 t1_scalar: direct index for structure (temp float)
+0:65 indirect index (temp structure{temp 3-element array of float t1_array, temp float t1_scalar})
+0:65 t1c: direct index for structure (temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar})
+0:65 t2: direct index for structure (temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c})
+0:65 indirect index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:65 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:65 'i' (temp int)
+0:65 Constant:
+0:65 1 (const int)
+0:65 Constant:
+0:65 2 (const int)
+0:65 'j' (temp int)
+0:65 Constant:
+0:65 1 (const int)
+0:65 divide (temp float)
+0:65 component-wise multiply (temp float)
+0:65 Convert int to float (temp float)
+0:65 'j' (temp int)
+0:65 Constant:
+0:65 2.000000
+0:65 Convert int to float (temp float)
+0:65 'i' (temp int)
+0:61 Loop Terminal Expression
+0:61 Post-Increment (noContraction temp int)
+0:61 'j' (noContraction temp int)
+0:43 Loop Terminal Expression
+0:43 Post-Increment (noContraction temp int)
+0:43 'i' (noContraction temp int)
+0:68 Sequence
+0:68 move second child to first child (temp int)
+0:68 'i' (temp int)
+0:68 Constant:
+0:68 2 (const int)
+0:69 move second child to first child (temp float)
+0:69 'result' (noContraction temp float)
+0:71 add (noContraction temp float)
+0:70 add (noContraction temp float)
+0:69 direct index (noContraction temp float)
+0:69 t1_array: direct index for structure (temp 3-element array of float)
+0:69 direct index (temp structure{temp 3-element array of float t1_array, temp float t1_scalar})
+0:69 t1c: direct index for structure (temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar})
+0:69 t2: direct index for structure (temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c})
+0:69 direct index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:69 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:69 Constant:
+0:69 5 (const int)
+0:69 Constant:
+0:69 1 (const int)
+0:69 Constant:
+0:69 2 (const int)
+0:69 Constant:
+0:69 6 (const int)
+0:69 Constant:
+0:69 0 (const int)
+0:69 Constant:
+0:69 1 (const int)
+0:70 t1_scalar: direct index for structure (noContraction temp float)
+0:70 direct index (temp structure{temp 3-element array of float t1_array, temp float t1_scalar})
+0:70 t1b: direct index for structure (temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar})
+0:70 t2: direct index for structure (temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c})
+0:70 direct index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:70 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:70 Constant:
+0:70 2 (const int)
+0:70 Constant:
+0:70 1 (const int)
+0:70 Constant:
+0:70 1 (const int)
+0:70 Constant:
+0:70 1 (const int)
+0:70 Constant:
+0:70 1 (const int)
+0:71 direct index (noContraction temp float)
+0:71 vector swizzle (temp 2-component vector of float)
+0:71 v: direct index for structure (temp 4-component vector of float)
+0:71 indirect index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:71 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
+0:71 subtract (temp int)
+0:71 'i' (temp int)
+0:71 Constant:
+0:71 1 (const int)
+0:71 Constant:
+0:71 2 (const int)
+0:71 Sequence
+0:71 Constant:
+0:71 0 (const int)
+0:71 Constant:
+0:71 1 (const int)
+0:71 Constant:
+0:71 0 (const int)
+0:72 Branch: Return with expression
+0:72 'result' (noContraction temp float)
+0:75 Function Definition: out_block( (global float)
+0:75 Function Parameters:
+0:76 Sequence
+0:76 Sequence
+0:76 move second child to first child (temp float)
+0:76 'a' (noContraction temp float)
+0:76 Constant:
+0:76 0.100000
+0:77 Sequence
+0:77 move second child to first child (temp float)
+0:77 'b' (noContraction temp float)
+0:77 Constant:
+0:77 0.200000
+0:78 move second child to first child (temp float)
+0:78 f1: direct index for structure (noContraction global float)
+0:78 s: direct index for structure (noContraction out structure{global float f1, global float f2})
+0:78 'partial_precise_block' (out block{noContraction out structure{global float f1, global float f2} s, out float x})
+0:78 Constant:
+0:78 0 (const int)
+0:78 Constant:
+0:78 0 (const int)
+0:78 add (noContraction temp float)
+0:78 'a' (noContraction temp float)
+0:78 'b' (noContraction temp float)
+0:79 move second child to first child (temp float)
+0:79 f2: direct index for structure (noContraction global float)
+0:79 s: direct index for structure (noContraction out structure{global float f1, global float f2})
+0:79 'partial_precise_block' (out block{noContraction out structure{global float f1, global float f2} s, out float x})
+0:79 Constant:
+0:79 0 (const int)
+0:79 Constant:
+0:79 1 (const int)
+0:79 subtract (noContraction temp float)
+0:79 'a' (noContraction temp float)
+0:79 'b' (noContraction temp float)
+0:80 move second child to first child (temp float)
+0:80 x: direct index for structure (out float)
+0:80 'partial_precise_block' (out block{noContraction out structure{global float f1, global float f2} s, out float x})
+0:80 Constant:
+0:80 1 (const int)
+0:80 component-wise multiply (temp float)
+0:80 'a' (temp float)
+0:80 'b' (temp float)
+0:82 move second child to first child (temp float)
+0:82 f1: direct index for structure (noContraction global float)
+0:82 s: direct index for structure (noContraction out structure{global float f1, global float f2})
+0:82 'all_precise_block' (noContraction out block{out structure{global float f1, global float f2} s, out float x})
+0:82 Constant:
+0:82 0 (const int)
+0:82 Constant:
+0:82 0 (const int)
+0:82 add (noContraction temp float)
+0:82 add (noContraction temp float)
+0:82 'a' (noContraction temp float)
+0:82 'b' (noContraction temp float)
+0:82 Constant:
+0:82 1.000000
+0:83 move second child to first child (temp float)
+0:83 f2: direct index for structure (noContraction global float)
+0:83 s: direct index for structure (noContraction out structure{global float f1, global float f2})
+0:83 'all_precise_block' (noContraction out block{out structure{global float f1, global float f2} s, out float x})
+0:83 Constant:
+0:83 0 (const int)
+0:83 Constant:
+0:83 1 (const int)
+0:83 subtract (noContraction temp float)
+0:83 subtract (noContraction temp float)
+0:83 'a' (noContraction temp float)
+0:83 'b' (noContraction temp float)
+0:83 Constant:
+0:83 1.000000
+0:84 move second child to first child (temp float)
+0:84 x: direct index for structure (noContraction out float)
+0:84 'all_precise_block' (noContraction out block{out structure{global float f1, global float f2} s, out float x})
+0:84 Constant:
+0:84 1 (const int)
+0:84 component-wise multiply (noContraction temp float)
+0:84 component-wise multiply (noContraction temp float)
+0:84 'a' (noContraction temp float)
+0:84 'b' (noContraction temp float)
+0:84 Constant:
+0:84 2.000000
+0:86 Branch: Return with expression
+0:86 add (temp float)
+0:86 'a' (temp float)
+0:86 'b' (temp float)
+0:89 Function Definition: main( (global void)
+0:89 Function Parameters:
+0:? Linker Objects
+0:? 'partial_precise_block' (out block{noContraction out structure{global float f1, global float f2} s, out float x})
+0:? 'all_precise_block' (noContraction out block{out structure{global float f1, global float f2} s, out float x})
+0:? 'gl_VertexID' (gl_VertexId int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/precision.frag.out b/chromium/third_party/glslang/src/Test/baseResults/precision.frag.out
new file mode 100644
index 00000000000..79485b48c6e
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/precision.frag.out
@@ -0,0 +1,245 @@
+precision.frag
+ERROR: 0:3: 'float' : type requires declaration of default precision qualifier
+ERROR: 0:18: 'int' : cannot apply precision statement to this type; use 'float', 'int' or a sampler type
+ERROR: 0:19: 'int' : cannot apply precision statement to this type; use 'float', 'int' or a sampler type
+ERROR: 0:21: 'float' : cannot apply precision statement to this type; use 'float', 'int' or a sampler type
+ERROR: 0:72: 'bool' : cannot apply precision statement to this type; use 'float', 'int' or a sampler type
+ERROR: 0:75: 'structure' : cannot apply precision statement to this type; use 'float', 'int' or a sampler type
+ERROR: 0:76: 'bool' : type cannot have precision qualifier
+ERROR: 7 compilation errors. No code generated.
+
+
+Shader version: 100
+ERROR: node is still EOpNull!
+0:5 Function Definition: foo(vf3; (global lowp 2-component vector of float)
+0:5 Function Parameters:
+0:5 'mv3' (in mediump 3-component vector of float)
+0:? Sequence
+0:8 Branch: Return with expression
+0:8 vector swizzle (temp highp 2-component vector of float)
+0:8 'hv4' (temp highp 4-component vector of float)
+0:8 Sequence
+0:8 Constant:
+0:8 0 (const int)
+0:8 Constant:
+0:8 1 (const int)
+0:25 Function Definition: main( (global void)
+0:25 Function Parameters:
+0:27 Sequence
+0:27 Sequence
+0:27 move second child to first child (temp highp int)
+0:27 'sum' (temp lowp int)
+0:27 add (temp highp int)
+0:27 'global_medium' (global mediump int)
+0:27 'global_high' (global highp int)
+0:29 move second child to first child (temp mediump 4-component vector of float)
+0:29 'gl_FragColor' (fragColor mediump 4-component vector of float FragColor)
+0:29 Construct vec4 (temp mediump 4-component vector of float)
+0:29 'color' (smooth in mediump 3-component vector of float)
+0:29 Constant:
+0:29 1.000000
+0:32 add second child into first child (temp highp int)
+0:32 'sum' (temp lowp int)
+0:32 'level1_high' (temp highp int)
+0:36 add second child into first child (temp lowp int)
+0:36 'sum' (temp lowp int)
+0:36 'level1_low' (temp lowp int)
+0:41 Sequence
+0:41 move second child to first child (temp mediump float)
+0:41 'd' (temp lowp float)
+0:41 distance (global mediump float)
+0:41 'arg1' (temp lowp float)
+0:41 'arg2' (temp mediump float)
+0:? Sequence
+0:45 add second child into first child (temp lowp int)
+0:45 'sum' (temp lowp int)
+0:45 'level2_low' (temp lowp int)
+0:49 add second child into first child (temp highp int)
+0:49 'sum' (temp lowp int)
+0:49 'level2_high' (temp highp int)
+0:58 Loop with condition not tested first
+0:58 Loop Condition
+0:58 Constant:
+0:58 true (const bool)
+0:58 Loop Body
+0:51 Sequence
+0:51 Test condition and select (temp void)
+0:51 Condition
+0:51 Constant:
+0:51 true (const bool)
+0:51 true case
+0:? Sequence
+0:54 add second child into first child (temp mediump int)
+0:54 'sum' (temp lowp int)
+0:54 'level4_medium' (temp mediump int)
+0:57 add second child into first child (temp highp int)
+0:57 'sum' (temp lowp int)
+0:57 'level3_high' (temp highp int)
+0:60 add second child into first child (temp highp int)
+0:60 'sum' (temp lowp int)
+0:60 'level2_high2' (temp highp int)
+0:63 add second child into first child (temp lowp int)
+0:63 'sum' (temp lowp int)
+0:63 'level1_low3' (temp lowp int)
+0:65 add second child into first child (temp lowp int)
+0:65 'sum' (temp lowp int)
+0:65 add (temp lowp int)
+0:65 Constant:
+0:65 4 (const int)
+0:65 direct index (temp lowp int)
+0:65 add (temp lowp 2-component vector of int)
+0:65 component-wise multiply (temp lowp 2-component vector of int)
+0:65 Construct ivec2 (temp lowp 2-component vector of int)
+0:65 'level1_low3' (temp lowp int)
+0:65 Construct ivec2 (temp lowp 2-component vector of int)
+0:65 'level1_high' (temp highp int)
+0:65 Construct ivec2 (temp lowp 2-component vector of int)
+0:65 Comma (temp highp int)
+0:65 'level1_low3' (temp lowp int)
+0:65 'level1_high' (temp highp int)
+0:65 Constant:
+0:65 0 (const int)
+0:67 texture (global lowp 4-component vector of float)
+0:67 'samplerLow' (uniform lowp sampler2D)
+0:67 Constant:
+0:67 0.100000
+0:67 0.200000
+0:68 texture (global mediump 4-component vector of float)
+0:68 'samplerMed' (uniform mediump sampler2D)
+0:68 Constant:
+0:68 0.100000
+0:68 0.200000
+0:69 texture (global highp 4-component vector of float)
+0:69 'samplerHigh' (uniform highp sampler2D)
+0:69 Constant:
+0:69 0.100000
+0:69 0.200000
+0:? Linker Objects
+0:? 'color' (smooth in mediump 3-component vector of float)
+0:? 'global_medium' (global mediump int)
+0:? 'samplerLow' (uniform lowp sampler2D)
+0:? 'samplerMed' (uniform mediump sampler2D)
+0:? 'samplerHigh' (uniform highp sampler2D)
+0:? 'uint' (global mediump 4-component vector of float)
+0:? 'global_high' (global highp int)
+0:? 'b2' (global mediump 2-component vector of bool)
+
+
+Linked fragment stage:
+
+
+Shader version: 100
+ERROR: node is still EOpNull!
+0:5 Function Definition: foo(vf3; (global lowp 2-component vector of float)
+0:5 Function Parameters:
+0:5 'mv3' (in mediump 3-component vector of float)
+0:? Sequence
+0:8 Branch: Return with expression
+0:8 vector swizzle (temp highp 2-component vector of float)
+0:8 'hv4' (temp highp 4-component vector of float)
+0:8 Sequence
+0:8 Constant:
+0:8 0 (const int)
+0:8 Constant:
+0:8 1 (const int)
+0:25 Function Definition: main( (global void)
+0:25 Function Parameters:
+0:27 Sequence
+0:27 Sequence
+0:27 move second child to first child (temp highp int)
+0:27 'sum' (temp lowp int)
+0:27 add (temp highp int)
+0:27 'global_medium' (global mediump int)
+0:27 'global_high' (global highp int)
+0:29 move second child to first child (temp mediump 4-component vector of float)
+0:29 'gl_FragColor' (fragColor mediump 4-component vector of float FragColor)
+0:29 Construct vec4 (temp mediump 4-component vector of float)
+0:29 'color' (smooth in mediump 3-component vector of float)
+0:29 Constant:
+0:29 1.000000
+0:32 add second child into first child (temp highp int)
+0:32 'sum' (temp lowp int)
+0:32 'level1_high' (temp highp int)
+0:36 add second child into first child (temp lowp int)
+0:36 'sum' (temp lowp int)
+0:36 'level1_low' (temp lowp int)
+0:41 Sequence
+0:41 move second child to first child (temp mediump float)
+0:41 'd' (temp lowp float)
+0:41 distance (global mediump float)
+0:41 'arg1' (temp lowp float)
+0:41 'arg2' (temp mediump float)
+0:? Sequence
+0:45 add second child into first child (temp lowp int)
+0:45 'sum' (temp lowp int)
+0:45 'level2_low' (temp lowp int)
+0:49 add second child into first child (temp highp int)
+0:49 'sum' (temp lowp int)
+0:49 'level2_high' (temp highp int)
+0:58 Loop with condition not tested first
+0:58 Loop Condition
+0:58 Constant:
+0:58 true (const bool)
+0:58 Loop Body
+0:51 Sequence
+0:51 Test condition and select (temp void)
+0:51 Condition
+0:51 Constant:
+0:51 true (const bool)
+0:51 true case
+0:? Sequence
+0:54 add second child into first child (temp mediump int)
+0:54 'sum' (temp lowp int)
+0:54 'level4_medium' (temp mediump int)
+0:57 add second child into first child (temp highp int)
+0:57 'sum' (temp lowp int)
+0:57 'level3_high' (temp highp int)
+0:60 add second child into first child (temp highp int)
+0:60 'sum' (temp lowp int)
+0:60 'level2_high2' (temp highp int)
+0:63 add second child into first child (temp lowp int)
+0:63 'sum' (temp lowp int)
+0:63 'level1_low3' (temp lowp int)
+0:65 add second child into first child (temp lowp int)
+0:65 'sum' (temp lowp int)
+0:65 add (temp lowp int)
+0:65 Constant:
+0:65 4 (const int)
+0:65 direct index (temp lowp int)
+0:65 add (temp lowp 2-component vector of int)
+0:65 component-wise multiply (temp lowp 2-component vector of int)
+0:65 Construct ivec2 (temp lowp 2-component vector of int)
+0:65 'level1_low3' (temp lowp int)
+0:65 Construct ivec2 (temp lowp 2-component vector of int)
+0:65 'level1_high' (temp highp int)
+0:65 Construct ivec2 (temp lowp 2-component vector of int)
+0:65 Comma (temp highp int)
+0:65 'level1_low3' (temp lowp int)
+0:65 'level1_high' (temp highp int)
+0:65 Constant:
+0:65 0 (const int)
+0:67 texture (global lowp 4-component vector of float)
+0:67 'samplerLow' (uniform lowp sampler2D)
+0:67 Constant:
+0:67 0.100000
+0:67 0.200000
+0:68 texture (global mediump 4-component vector of float)
+0:68 'samplerMed' (uniform mediump sampler2D)
+0:68 Constant:
+0:68 0.100000
+0:68 0.200000
+0:69 texture (global highp 4-component vector of float)
+0:69 'samplerHigh' (uniform highp sampler2D)
+0:69 Constant:
+0:69 0.100000
+0:69 0.200000
+0:? Linker Objects
+0:? 'color' (smooth in mediump 3-component vector of float)
+0:? 'global_medium' (global mediump int)
+0:? 'samplerLow' (uniform lowp sampler2D)
+0:? 'samplerMed' (uniform mediump sampler2D)
+0:? 'samplerHigh' (uniform highp sampler2D)
+0:? 'uint' (global mediump 4-component vector of float)
+0:? 'global_high' (global highp int)
+0:? 'b2' (global mediump 2-component vector of bool)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/precision.vert.out b/chromium/third_party/glslang/src/Test/baseResults/precision.vert.out
new file mode 100644
index 00000000000..f433ba52579
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/precision.vert.out
@@ -0,0 +1,99 @@
+precision.vert
+ERROR: 0:7: 'sampler/image' : type requires declaration of default precision qualifier
+ERROR: 0:8: 'sampler/image' : type requires declaration of default precision qualifier
+ERROR: 0:14: 'sampler/image' : type requires declaration of default precision qualifier
+ERROR: 3 compilation errors. No code generated.
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:18 Function Definition: main( (global void)
+0:18 Function Parameters:
+0:20 Sequence
+0:20 Sequence
+0:20 move second child to first child (temp highp 4-component vector of float)
+0:20 't' (temp highp 4-component vector of float)
+0:20 texture (global lowp 4-component vector of float)
+0:20 's2D' (uniform lowp sampler2D)
+0:20 Constant:
+0:20 0.100000
+0:20 0.200000
+0:21 add second child into first child (temp highp 4-component vector of float)
+0:21 't' (temp highp 4-component vector of float)
+0:21 texture (global highp 4-component vector of float)
+0:21 's2Dhigh' (uniform highp sampler2D)
+0:21 Constant:
+0:21 0.100000
+0:21 0.200000
+0:22 add second child into first child (temp highp 4-component vector of float)
+0:22 't' (temp highp 4-component vector of float)
+0:22 texture (global mediump float)
+0:22 's2dAS' (uniform mediump sampler2DArrayShadow)
+0:22 Constant:
+0:22 0.500000
+0:22 0.500000
+0:22 0.500000
+0:22 0.500000
+0:24 move second child to first child (temp highp 4-component vector of float)
+0:24 'gl_Position' (gl_Position highp 4-component vector of float Position)
+0:24 'pos' (in highp 4-component vector of float)
+0:? Linker Objects
+0:? 'pos' (in highp 4-component vector of float)
+0:? 's2D' (uniform lowp sampler2D)
+0:? 'sCube' (uniform lowp samplerCube)
+0:? 'is2DAbad' (uniform mediump isampler2DArray)
+0:? 's2dASbad' (uniform mediump sampler2DArrayShadow)
+0:? 's2dAS' (uniform mediump sampler2DArrayShadow)
+0:? 'is2DAbad2' (uniform mediump isampler2DArray)
+0:? 's2Dhigh' (uniform highp sampler2D)
+0:? 'gl_VertexID' (gl_VertexId highp int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+
+
+Linked vertex stage:
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:18 Function Definition: main( (global void)
+0:18 Function Parameters:
+0:20 Sequence
+0:20 Sequence
+0:20 move second child to first child (temp highp 4-component vector of float)
+0:20 't' (temp highp 4-component vector of float)
+0:20 texture (global lowp 4-component vector of float)
+0:20 's2D' (uniform lowp sampler2D)
+0:20 Constant:
+0:20 0.100000
+0:20 0.200000
+0:21 add second child into first child (temp highp 4-component vector of float)
+0:21 't' (temp highp 4-component vector of float)
+0:21 texture (global highp 4-component vector of float)
+0:21 's2Dhigh' (uniform highp sampler2D)
+0:21 Constant:
+0:21 0.100000
+0:21 0.200000
+0:22 add second child into first child (temp highp 4-component vector of float)
+0:22 't' (temp highp 4-component vector of float)
+0:22 texture (global mediump float)
+0:22 's2dAS' (uniform mediump sampler2DArrayShadow)
+0:22 Constant:
+0:22 0.500000
+0:22 0.500000
+0:22 0.500000
+0:22 0.500000
+0:24 move second child to first child (temp highp 4-component vector of float)
+0:24 'gl_Position' (gl_Position highp 4-component vector of float Position)
+0:24 'pos' (in highp 4-component vector of float)
+0:? Linker Objects
+0:? 'pos' (in highp 4-component vector of float)
+0:? 's2D' (uniform lowp sampler2D)
+0:? 'sCube' (uniform lowp samplerCube)
+0:? 'is2DAbad' (uniform mediump isampler2DArray)
+0:? 's2dASbad' (uniform mediump sampler2DArrayShadow)
+0:? 's2dAS' (uniform mediump sampler2DArrayShadow)
+0:? 'is2DAbad2' (uniform mediump isampler2DArray)
+0:? 's2Dhigh' (uniform highp sampler2D)
+0:? 'gl_VertexID' (gl_VertexId highp int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/prepost.frag.out b/chromium/third_party/glslang/src/Test/baseResults/prepost.frag.out
new file mode 100644
index 00000000000..ac24229597f
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/prepost.frag.out
@@ -0,0 +1,271 @@
+prepost.frag
+Shader version: 140
+0:? Sequence
+0:3 Function Definition: main( (global void)
+0:3 Function Parameters:
+0:? Sequence
+0:10 Sequence
+0:10 move second child to first child (temp int)
+0:10 'index' (temp int)
+0:10 Constant:
+0:10 5 (const int)
+0:12 move second child to first child (temp float)
+0:12 direct index (temp float)
+0:12 y: direct index for structure (temp 5-element array of float)
+0:12 'str' (temp structure{temp 5-element array of float y})
+0:12 Constant:
+0:12 0 (const int)
+0:12 Constant:
+0:12 4 (const int)
+0:12 Constant:
+0:12 2.000000
+0:13 move second child to first child (temp float)
+0:13 't' (temp float)
+0:13 Pre-Increment (temp float)
+0:13 indirect index (temp float)
+0:13 y: direct index for structure (temp 5-element array of float)
+0:13 'str' (temp structure{temp 5-element array of float y})
+0:13 Constant:
+0:13 0 (const int)
+0:13 Pre-Decrement (temp int)
+0:13 'index' (temp int)
+0:14 add second child into first child (temp float)
+0:14 direct index (temp float)
+0:14 y: direct index for structure (temp 5-element array of float)
+0:14 'str' (temp structure{temp 5-element array of float y})
+0:14 Constant:
+0:14 0 (const int)
+0:14 Constant:
+0:14 4 (const int)
+0:14 't' (temp float)
+0:15 move second child to first child (temp float)
+0:15 't' (temp float)
+0:15 Post-Decrement (temp float)
+0:15 direct index (temp float)
+0:15 y: direct index for structure (temp 5-element array of float)
+0:15 'str' (temp structure{temp 5-element array of float y})
+0:15 Constant:
+0:15 0 (const int)
+0:15 Constant:
+0:15 4 (const int)
+0:16 add second child into first child (temp float)
+0:16 indirect index (temp float)
+0:16 y: direct index for structure (temp 5-element array of float)
+0:16 'str' (temp structure{temp 5-element array of float y})
+0:16 Constant:
+0:16 0 (const int)
+0:16 Post-Increment (temp int)
+0:16 'index' (temp int)
+0:16 't' (temp float)
+0:17 Pre-Decrement (temp float)
+0:17 indirect index (temp float)
+0:17 y: direct index for structure (temp 5-element array of float)
+0:17 'str' (temp structure{temp 5-element array of float y})
+0:17 Constant:
+0:17 0 (const int)
+0:17 Pre-Decrement (temp int)
+0:17 'index' (temp int)
+0:19 Sequence
+0:19 move second child to first child (temp float)
+0:19 'x' (temp float)
+0:19 direct index (temp float)
+0:19 y: direct index for structure (temp 5-element array of float)
+0:19 'str' (temp structure{temp 5-element array of float y})
+0:19 Constant:
+0:19 0 (const int)
+0:19 Constant:
+0:19 4 (const int)
+0:20 Pre-Increment (temp float)
+0:20 'x' (temp float)
+0:21 Pre-Decrement (temp float)
+0:21 'x' (temp float)
+0:22 Post-Increment (temp float)
+0:22 'x' (temp float)
+0:23 Post-Decrement (temp float)
+0:23 'x' (temp float)
+0:27 Sequence
+0:27 move second child to first child (temp float)
+0:27 'y' (temp float)
+0:27 component-wise multiply (temp float)
+0:27 'x' (temp float)
+0:27 Pre-Increment (temp float)
+0:27 'x' (temp float)
+0:28 Sequence
+0:28 move second child to first child (temp float)
+0:28 'z' (temp float)
+0:28 component-wise multiply (temp float)
+0:28 'y' (temp float)
+0:28 Post-Decrement (temp float)
+0:28 'x' (temp float)
+0:33 Sequence
+0:33 move second child to first child (temp 4-component vector of float)
+0:33 'v' (temp 4-component vector of float)
+0:33 Constant:
+0:33 1.000000
+0:33 2.000000
+0:33 3.000000
+0:33 4.000000
+0:34 move second child to first child (temp float)
+0:34 direct index (temp float)
+0:34 'v' (temp 4-component vector of float)
+0:34 Constant:
+0:34 1 (const int)
+0:34 Post-Decrement (temp float)
+0:34 direct index (temp float)
+0:34 'v' (temp 4-component vector of float)
+0:34 Constant:
+0:34 2 (const int)
+0:35 move second child to first child (temp float)
+0:35 direct index (temp float)
+0:35 'v' (temp 4-component vector of float)
+0:35 Constant:
+0:35 0 (const int)
+0:35 Pre-Decrement (temp float)
+0:35 direct index (temp float)
+0:35 'v' (temp 4-component vector of float)
+0:35 Constant:
+0:35 3 (const int)
+0:37 move second child to first child (temp 4-component vector of float)
+0:37 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:37 vector-scale (temp 4-component vector of float)
+0:37 'z' (temp float)
+0:37 'v' (temp 4-component vector of float)
+0:? Linker Objects
+
+
+Linked fragment stage:
+
+
+Shader version: 140
+0:? Sequence
+0:3 Function Definition: main( (global void)
+0:3 Function Parameters:
+0:? Sequence
+0:10 Sequence
+0:10 move second child to first child (temp int)
+0:10 'index' (temp int)
+0:10 Constant:
+0:10 5 (const int)
+0:12 move second child to first child (temp float)
+0:12 direct index (temp float)
+0:12 y: direct index for structure (temp 5-element array of float)
+0:12 'str' (temp structure{temp 5-element array of float y})
+0:12 Constant:
+0:12 0 (const int)
+0:12 Constant:
+0:12 4 (const int)
+0:12 Constant:
+0:12 2.000000
+0:13 move second child to first child (temp float)
+0:13 't' (temp float)
+0:13 Pre-Increment (temp float)
+0:13 indirect index (temp float)
+0:13 y: direct index for structure (temp 5-element array of float)
+0:13 'str' (temp structure{temp 5-element array of float y})
+0:13 Constant:
+0:13 0 (const int)
+0:13 Pre-Decrement (temp int)
+0:13 'index' (temp int)
+0:14 add second child into first child (temp float)
+0:14 direct index (temp float)
+0:14 y: direct index for structure (temp 5-element array of float)
+0:14 'str' (temp structure{temp 5-element array of float y})
+0:14 Constant:
+0:14 0 (const int)
+0:14 Constant:
+0:14 4 (const int)
+0:14 't' (temp float)
+0:15 move second child to first child (temp float)
+0:15 't' (temp float)
+0:15 Post-Decrement (temp float)
+0:15 direct index (temp float)
+0:15 y: direct index for structure (temp 5-element array of float)
+0:15 'str' (temp structure{temp 5-element array of float y})
+0:15 Constant:
+0:15 0 (const int)
+0:15 Constant:
+0:15 4 (const int)
+0:16 add second child into first child (temp float)
+0:16 indirect index (temp float)
+0:16 y: direct index for structure (temp 5-element array of float)
+0:16 'str' (temp structure{temp 5-element array of float y})
+0:16 Constant:
+0:16 0 (const int)
+0:16 Post-Increment (temp int)
+0:16 'index' (temp int)
+0:16 't' (temp float)
+0:17 Pre-Decrement (temp float)
+0:17 indirect index (temp float)
+0:17 y: direct index for structure (temp 5-element array of float)
+0:17 'str' (temp structure{temp 5-element array of float y})
+0:17 Constant:
+0:17 0 (const int)
+0:17 Pre-Decrement (temp int)
+0:17 'index' (temp int)
+0:19 Sequence
+0:19 move second child to first child (temp float)
+0:19 'x' (temp float)
+0:19 direct index (temp float)
+0:19 y: direct index for structure (temp 5-element array of float)
+0:19 'str' (temp structure{temp 5-element array of float y})
+0:19 Constant:
+0:19 0 (const int)
+0:19 Constant:
+0:19 4 (const int)
+0:20 Pre-Increment (temp float)
+0:20 'x' (temp float)
+0:21 Pre-Decrement (temp float)
+0:21 'x' (temp float)
+0:22 Post-Increment (temp float)
+0:22 'x' (temp float)
+0:23 Post-Decrement (temp float)
+0:23 'x' (temp float)
+0:27 Sequence
+0:27 move second child to first child (temp float)
+0:27 'y' (temp float)
+0:27 component-wise multiply (temp float)
+0:27 'x' (temp float)
+0:27 Pre-Increment (temp float)
+0:27 'x' (temp float)
+0:28 Sequence
+0:28 move second child to first child (temp float)
+0:28 'z' (temp float)
+0:28 component-wise multiply (temp float)
+0:28 'y' (temp float)
+0:28 Post-Decrement (temp float)
+0:28 'x' (temp float)
+0:33 Sequence
+0:33 move second child to first child (temp 4-component vector of float)
+0:33 'v' (temp 4-component vector of float)
+0:33 Constant:
+0:33 1.000000
+0:33 2.000000
+0:33 3.000000
+0:33 4.000000
+0:34 move second child to first child (temp float)
+0:34 direct index (temp float)
+0:34 'v' (temp 4-component vector of float)
+0:34 Constant:
+0:34 1 (const int)
+0:34 Post-Decrement (temp float)
+0:34 direct index (temp float)
+0:34 'v' (temp 4-component vector of float)
+0:34 Constant:
+0:34 2 (const int)
+0:35 move second child to first child (temp float)
+0:35 direct index (temp float)
+0:35 'v' (temp 4-component vector of float)
+0:35 Constant:
+0:35 0 (const int)
+0:35 Pre-Decrement (temp float)
+0:35 direct index (temp float)
+0:35 'v' (temp 4-component vector of float)
+0:35 Constant:
+0:35 3 (const int)
+0:37 move second child to first child (temp 4-component vector of float)
+0:37 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:37 vector-scale (temp 4-component vector of float)
+0:37 'z' (temp float)
+0:37 'v' (temp 4-component vector of float)
+0:? Linker Objects
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/preprocessor.cpp_style___FILE__.vert.err b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.cpp_style___FILE__.vert.err
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.cpp_style___FILE__.vert.err
diff --git a/chromium/third_party/glslang/src/Test/baseResults/preprocessor.cpp_style___FILE__.vert.out b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.cpp_style___FILE__.vert.out
new file mode 100644
index 00000000000..e63d81a61dc
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.cpp_style___FILE__.vert.out
@@ -0,0 +1,37 @@
+#extension GL_GOOGLE_cpp_style_line_directive : enable
+
+0
+
+#line 150 "a.h"
+ "a.h"
+
+#line 24
+ "a.h"
+
+#line 42
+ "a.h"
+
+#line 30 "b.cc"
+ "b.cc"
+
+#line 10 3
+ 3
+
+#line 48
+ 3
+
+#line 4
+ 3
+
+#line 55 100
+ 100
+
+#line 1000 "c"
+ "c"
+
+#line 42 1
+ 1
+
+#line 42 "this-is-a-quite-long-name-maybe-i-should-shorten-it"
+ "this-is-a-quite-long-name-maybe-i-should-shorten-it"
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/preprocessor.cpp_style_line_directive.vert.err b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.cpp_style_line_directive.vert.err
new file mode 100644
index 00000000000..794ded806b9
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.cpp_style_line_directive.vert.err
@@ -0,0 +1,15 @@
+ERROR: 0:3: '#error' : at 0:3
+ERROR: a.h:150: '#error' : at a.h:150
+ERROR: a.h:24: '#error' : at a.h:24
+ERROR: a.h:42: '#error' : at a.h:42
+ERROR: b.cc:30: '#error' : at b.cc:30
+ERROR: 3:10: '#error' : at 3:10
+ERROR: 3:48: '#error' : at 3:48
+ERROR: 3:4: '#error' : at 3:4
+ERROR: 100:55: '#error' : at 100:55
+ERROR: c:1000: '#error' : at c:1000
+ERROR: 1:42: '#error' : at 1:42
+ERROR: this-is-a-quite-long-name-maybe-i-should-shorten-it:42: '#error' : at this-is-a-quite-long-name-maybe-i-should-shorten-it:42
+ERROR: 12 compilation errors. No code generated.
+
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/preprocessor.cpp_style_line_directive.vert.out b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.cpp_style_line_directive.vert.out
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.cpp_style_line_directive.vert.out
diff --git a/chromium/third_party/glslang/src/Test/baseResults/preprocessor.defined.vert.err b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.defined.vert.err
new file mode 100644
index 00000000000..8dddabca008
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.defined.vert.err
@@ -0,0 +1,4 @@
+ERROR: 0:2: '#define' : "defined" can't be (un)defined: defined
+ERROR: 1 compilation errors. No code generated.
+
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/preprocessor.defined.vert.out b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.defined.vert.out
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.defined.vert.out
diff --git a/chromium/third_party/glslang/src/Test/baseResults/preprocessor.edge_cases.vert.err b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.edge_cases.vert.err
new file mode 100644
index 00000000000..5f177e6cc12
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.edge_cases.vert.err
@@ -0,0 +1,2 @@
+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/preprocessor.edge_cases.vert.out b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.edge_cases.vert.out
new file mode 100644
index 00000000000..17d9049bfd8
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.edge_cases.vert.out
@@ -0,0 +1,16 @@
+#version 310 es
+
+
+
+
+
+
+
+
+
+
+
+void main(){
+ gl_Position = vec4(3 + 2 + 2 * 4 + 2 + 3 * 2);
+}
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/preprocessor.eof_missing.vert.err b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.eof_missing.vert.err
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.eof_missing.vert.err
diff --git a/chromium/third_party/glslang/src/Test/baseResults/preprocessor.eof_missing.vert.out b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.eof_missing.vert.out
new file mode 100644
index 00000000000..bf09d53e0a3
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.eof_missing.vert.out
@@ -0,0 +1,2 @@
+noEOF
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/preprocessor.errors.vert.err b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.errors.vert.err
new file mode 100644
index 00000000000..cfde4041e9f
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.errors.vert.err
@@ -0,0 +1,8 @@
+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:9: '#error' : This should show up in pp output .
+ERROR: 0:14: '#' : invalid directive: def
+ERROR: 0:15: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile Y
+ERROR: 0:21: '' : missing #endif
+ERROR: 4 compilation errors. No code generated.
+
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/preprocessor.errors.vert.out b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.errors.vert.out
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.errors.vert.out
diff --git a/chromium/third_party/glslang/src/Test/baseResults/preprocessor.extensions.vert.err b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.extensions.vert.err
new file mode 100644
index 00000000000..925cc0ca05d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.extensions.vert.err
@@ -0,0 +1,3 @@
+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+WARNING: 0:6: '#extension' : extension not supported: GL_EXT_shader_texture_image_samples
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/preprocessor.extensions.vert.out b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.extensions.vert.out
new file mode 100644
index 00000000000..57d2e199fb4
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.extensions.vert.out
@@ -0,0 +1,12 @@
+#version 310 es
+
+#extension GL_EXT_geometry_shader : enable
+#extension GL_EXT_frag_depth : disable
+#extension GL_EXT_gpu_shader5 : require
+#extension GL_EXT_shader_texture_image_samples : warn
+
+#extension unknown_extension : require
+
+int main(){
+}
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/preprocessor.function_macro.vert.err b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.function_macro.vert.err
new file mode 100644
index 00000000000..5f177e6cc12
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.function_macro.vert.err
@@ -0,0 +1,2 @@
+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/preprocessor.function_macro.vert.out b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.function_macro.vert.out
new file mode 100644
index 00000000000..1280ddf644d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.function_macro.vert.out
@@ -0,0 +1,21 @@
+#version 310 es
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+int main(){
+ gl_Position = vec4(3 + 1, 3 + 4, 3 + 1);
+ gl_Position = vec4(1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12);
+ gl_Position = vec4(4 + 3 + 3);
+}
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/preprocessor.include.disabled.vert.err b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.include.disabled.vert.err
new file mode 100644
index 00000000000..7d1f0a00588
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.include.disabled.vert.err
@@ -0,0 +1,13 @@
+ERROR: 0:8000: '#include' : required extension not requested: GL_GOOGLE_include_directive
+ERROR: 0:8000: '#include' : must be followed by a file designation
+ERROR: 0:8001: '#include' : required extension not requested: GL_GOOGLE_include_directive
+ERROR: 0:8001: '#include' : must be followed by a file designation
+ERROR: 0:8002: '#include' : required extension not requested: GL_GOOGLE_include_directive
+ERROR: 0:8002: '#include' : unexpected include directive
+ERROR: 0:8003: '#include' : required extension not requested: GL_GOOGLE_include_directive
+ERROR: 0:8003: '#include' : extra content after file designation
+ERROR: 0:8004: '#include' : required extension not requested: GL_GOOGLE_include_directive
+ERROR: 0:8004: '#include' : unexpected include directive
+ERROR: 10 compilation errors. No code generated.
+
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/preprocessor.include.disabled.vert.out b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.include.disabled.vert.out
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.include.disabled.vert.out
diff --git a/chromium/third_party/glslang/src/Test/baseResults/preprocessor.include.enabled.vert.err b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.include.enabled.vert.err
new file mode 100644
index 00000000000..be8c5cf3a10
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.include.enabled.vert.err
@@ -0,0 +1,8 @@
+ERROR: 0:8000: '#include' : must be followed by a file designation
+ERROR: 0:8001: '#include' : must be followed by a file designation
+ERROR: 0:8002: '#include' : unexpected include directive
+ERROR: 0:8003: '#include' : extra content after file designation
+ERROR: 0:8004: '#include' : unexpected include directive
+ERROR: 5 compilation errors. No code generated.
+
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/preprocessor.include.enabled.vert.out b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.include.enabled.vert.out
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.include.enabled.vert.out
diff --git a/chromium/third_party/glslang/src/Test/baseResults/preprocessor.line.frag.err b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.line.frag.err
new file mode 100644
index 00000000000..5f177e6cc12
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.line.frag.err
@@ -0,0 +1,2 @@
+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/preprocessor.line.frag.out b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.line.frag.out
new file mode 100644
index 00000000000..3e2206f8883
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.line.frag.out
@@ -0,0 +1,5 @@
+#version 310 es
+#line 1 2
+#pragma something
+void main(){ }
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/preprocessor.line.vert.err b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.line.vert.err
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.line.vert.err
diff --git a/chromium/third_party/glslang/src/Test/baseResults/preprocessor.line.vert.out b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.line.vert.out
new file mode 100644
index 00000000000..2bf09032779
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.line.vert.out
@@ -0,0 +1,39 @@
+#line 300
+
+#line 2
+
+
+
+
+
+#line 10
+
+
+#line 2
+
+#line 0
+
+
+
+#line 4
+
+
+
+
+
+#line 8
+
+void main(){
+ gl_Position = vec4(10);
+}
+
+#line 8 4
+
+
+
+
+#line 12 3
+
+#line 1
+
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/preprocessor.many.endif.vert.err b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.many.endif.vert.err
new file mode 100644
index 00000000000..49aafc5ab57
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.many.endif.vert.err
@@ -0,0 +1,12 @@
+ERROR: 0:1: '#endif' : mismatched statements
+ERROR: 0:2: '#endif' : mismatched statements
+ERROR: 0:3: '#endif' : mismatched statements
+ERROR: 0:4: '#endif' : mismatched statements
+ERROR: 0:5: '#endif' : mismatched statements
+ERROR: 0:6: '#endif' : mismatched statements
+ERROR: 0:7: '#endif' : mismatched statements
+ERROR: 0:10: 'preprocessor evaluation' : bad expression
+ERROR: 0:11: '' : missing #endif
+ERROR: 9 compilation errors. No code generated.
+
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/preprocessor.many.endif.vert.out b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.many.endif.vert.out
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.many.endif.vert.out
diff --git a/chromium/third_party/glslang/src/Test/baseResults/preprocessor.pragma.vert.err b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.pragma.vert.err
new file mode 100644
index 00000000000..5f177e6cc12
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.pragma.vert.err
@@ -0,0 +1,2 @@
+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/preprocessor.pragma.vert.out b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.pragma.vert.out
new file mode 100644
index 00000000000..8c52814468c
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.pragma.vert.out
@@ -0,0 +1,12 @@
+#version 310 es
+
+#pragma optimize(on)
+#pragma optimize(off)
+#pragma debug(on)
+#pragma debug(off)
+
+#pragma undefined_pragma(x,4)
+
+int main(){
+}
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/preprocessor.simple.vert.err b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.simple.vert.err
new file mode 100644
index 00000000000..5f177e6cc12
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.simple.vert.err
@@ -0,0 +1,2 @@
+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/preprocessor.simple.vert.out b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.simple.vert.out
new file mode 100644
index 00000000000..8737bc81cfd
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.simple.vert.out
@@ -0,0 +1,23 @@
+#version 310 es
+
+
+
+
+
+
+
+
+
+
+
+
+ float fn(float x){ return x + 4.0;}
+
+int main(){
+ gl_Position = vec4(1);
+ gl_Position = clamp(1, 2, 3);
+ gl_Position = vec4(1);
+ gl_Position = vec4(1, 2);
+ gl_Position = vec4(fn(3));
+}
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/preprocessor.success_if_parse_would_fail.vert.err b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.success_if_parse_would_fail.vert.err
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.success_if_parse_would_fail.vert.err
diff --git a/chromium/third_party/glslang/src/Test/baseResults/preprocessor.success_if_parse_would_fail.vert.out b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.success_if_parse_would_fail.vert.out
new file mode 100644
index 00000000000..624813a01d9
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/preprocessor.success_if_parse_would_fail.vert.out
@@ -0,0 +1,4 @@
+int x(){
+ something that shouldnt compile;
+}
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/recurse1.vert.out b/chromium/third_party/glslang/src/Test/baseResults/recurse1.vert.out
new file mode 100644
index 00000000000..c2ae0140c36
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/recurse1.vert.out
@@ -0,0 +1,397 @@
+recurse1.vert
+Shader version: 330
+0:? Sequence
+0:3 Function Definition: main( (global void)
+0:3 Function Parameters:
+0:9 Function Definition: self( (global void)
+0:9 Function Parameters:
+0:11 Sequence
+0:11 Function Call: self( (global void)
+0:16 Function Definition: foo(f1; (global void)
+0:16 Function Parameters:
+0:16 '' (in float)
+0:18 Sequence
+0:18 Function Call: bar(i1; (global float)
+0:18 Constant:
+0:18 2 (const int)
+0:21 Function Definition: bar(i1; (global float)
+0:21 Function Parameters:
+0:21 '' (in int)
+0:23 Sequence
+0:23 Function Call: foo(f1; (global void)
+0:23 Constant:
+0:23 4.200000
+0:25 Branch: Return with expression
+0:25 Constant:
+0:25 3.200000
+0:32 Function Definition: A( (global void)
+0:32 Function Parameters:
+0:32 Sequence
+0:32 Function Call: B( (global void)
+0:33 Function Definition: C( (global void)
+0:33 Function Parameters:
+0:33 Sequence
+0:33 Function Call: D( (global void)
+0:34 Function Definition: B( (global void)
+0:34 Function Parameters:
+0:34 Sequence
+0:34 Function Call: C( (global void)
+0:35 Function Definition: D( (global void)
+0:35 Function Parameters:
+0:35 Sequence
+0:35 Function Call: A( (global void)
+0:41 Function Definition: AT( (global void)
+0:41 Function Parameters:
+0:41 Sequence
+0:41 Function Call: BT( (global void)
+0:41 Function Call: BT( (global void)
+0:41 Function Call: BT( (global void)
+0:42 Function Definition: CT( (global void)
+0:42 Function Parameters:
+0:42 Sequence
+0:42 Function Call: DT( (global void)
+0:42 Function Call: AT( (global void)
+0:42 Function Call: DT( (global void)
+0:42 Function Call: BT( (global void)
+0:43 Function Definition: BT( (global void)
+0:43 Function Parameters:
+0:43 Sequence
+0:43 Function Call: CT( (global void)
+0:43 Function Call: CT( (global void)
+0:43 Function Call: CT( (global void)
+0:44 Function Definition: DT( (global void)
+0:44 Function Parameters:
+0:44 Sequence
+0:44 Function Call: AT( (global void)
+0:? Linker Objects
+0:? 'gl_VertexID' (gl_VertexId int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
+
+recurse1.frag
+Shader version: 330
+0:? Sequence
+0:5 Function Definition: main( (global void)
+0:5 Function Parameters:
+0:11 Function Definition: cfoo(f1; (global void)
+0:11 Function Parameters:
+0:11 '' (in float)
+0:13 Sequence
+0:13 Function Call: cbar(i1; (global float)
+0:13 Constant:
+0:13 2 (const int)
+0:20 Function Definition: CA( (global void)
+0:20 Function Parameters:
+0:20 Sequence
+0:20 Function Call: CB( (global void)
+0:21 Function Definition: CC( (global void)
+0:21 Function Parameters:
+0:21 Sequence
+0:21 Function Call: CD( (global void)
+0:27 Function Definition: CAT( (global void)
+0:27 Function Parameters:
+0:27 Sequence
+0:27 Function Call: CBT( (global void)
+0:27 Function Call: CBT( (global void)
+0:27 Function Call: CBT( (global void)
+0:28 Function Definition: CCT( (global void)
+0:28 Function Parameters:
+0:28 Sequence
+0:28 Function Call: CDT( (global void)
+0:28 Function Call: CDT( (global void)
+0:28 Function Call: CBT( (global void)
+0:32 Function Definition: norA( (global void)
+0:32 Function Parameters:
+0:33 Function Definition: norB( (global void)
+0:33 Function Parameters:
+0:33 Sequence
+0:33 Function Call: norA( (global void)
+0:34 Function Definition: norC( (global void)
+0:34 Function Parameters:
+0:34 Sequence
+0:34 Function Call: norA( (global void)
+0:35 Function Definition: norD( (global void)
+0:35 Function Parameters:
+0:35 Sequence
+0:35 Function Call: norA( (global void)
+0:36 Function Definition: norE( (global void)
+0:36 Function Parameters:
+0:36 Sequence
+0:36 Function Call: norB( (global void)
+0:37 Function Definition: norF( (global void)
+0:37 Function Parameters:
+0:37 Sequence
+0:37 Function Call: norB( (global void)
+0:38 Function Definition: norG( (global void)
+0:38 Function Parameters:
+0:38 Sequence
+0:38 Function Call: norE( (global void)
+0:39 Function Definition: norH( (global void)
+0:39 Function Parameters:
+0:39 Sequence
+0:39 Function Call: norE( (global void)
+0:40 Function Definition: norI( (global void)
+0:40 Function Parameters:
+0:40 Sequence
+0:40 Function Call: norE( (global void)
+0:44 Function Definition: norcA( (global void)
+0:44 Function Parameters:
+0:45 Function Definition: norcB( (global void)
+0:45 Function Parameters:
+0:45 Sequence
+0:45 Function Call: norcA( (global void)
+0:46 Function Definition: norcC( (global void)
+0:46 Function Parameters:
+0:46 Sequence
+0:46 Function Call: norcB( (global void)
+0:47 Function Definition: norcD( (global void)
+0:47 Function Parameters:
+0:47 Sequence
+0:47 Function Call: norcC( (global void)
+0:47 Function Call: norcB( (global void)
+0:48 Function Definition: norcE( (global void)
+0:48 Function Parameters:
+0:48 Sequence
+0:48 Function Call: norcD( (global void)
+0:? Linker Objects
+
+recurse2.frag
+Shader version: 330
+0:? Sequence
+0:9 Function Definition: cbar(i1; (global float)
+0:9 Function Parameters:
+0:9 '' (in int)
+0:11 Sequence
+0:11 Function Call: cfoo(f1; (global void)
+0:11 Constant:
+0:11 4.200000
+0:13 Branch: Return with expression
+0:13 Constant:
+0:13 3.200000
+0:20 Function Definition: CB( (global void)
+0:20 Function Parameters:
+0:20 Sequence
+0:20 Function Call: CC( (global void)
+0:21 Function Definition: CD( (global void)
+0:21 Function Parameters:
+0:21 Sequence
+0:21 Function Call: CA( (global void)
+0:27 Function Definition: CBT( (global void)
+0:27 Function Parameters:
+0:27 Sequence
+0:27 Function Call: CCT( (global void)
+0:27 Function Call: CCT( (global void)
+0:27 Function Call: CCT( (global void)
+0:28 Function Definition: CDT( (global void)
+0:28 Function Parameters:
+0:28 Sequence
+0:28 Function Call: CAT( (global void)
+0:? Linker Objects
+
+
+Linked vertex stage:
+
+ERROR: Linking vertex stage: Recursion detected:
+ BT( calling CT(
+ERROR: Linking vertex stage: Recursion detected:
+ AT( calling BT(
+ERROR: Linking vertex stage: Recursion detected:
+ DT( calling AT(
+ERROR: Linking vertex stage: Recursion detected:
+ D( calling A(
+ERROR: Linking vertex stage: Recursion detected:
+ bar(i1; calling foo(f1;
+ERROR: Linking vertex stage: Recursion detected:
+ self( calling self(
+
+Linked fragment stage:
+
+ERROR: Linking fragment stage: Recursion detected:
+ CCT( calling CBT(
+ERROR: Linking fragment stage: Recursion detected:
+ CBT( calling CCT(
+ERROR: Linking fragment stage: Recursion detected:
+ CC( calling CD(
+ERROR: Linking fragment stage: Recursion detected:
+ cfoo(f1; calling cbar(i1;
+
+Shader version: 330
+0:? Sequence
+0:3 Function Definition: main( (global void)
+0:3 Function Parameters:
+0:9 Function Definition: self( (global void)
+0:9 Function Parameters:
+0:11 Sequence
+0:11 Function Call: self( (global void)
+0:16 Function Definition: foo(f1; (global void)
+0:16 Function Parameters:
+0:16 '' (in float)
+0:18 Sequence
+0:18 Function Call: bar(i1; (global float)
+0:18 Constant:
+0:18 2 (const int)
+0:21 Function Definition: bar(i1; (global float)
+0:21 Function Parameters:
+0:21 '' (in int)
+0:23 Sequence
+0:23 Function Call: foo(f1; (global void)
+0:23 Constant:
+0:23 4.200000
+0:25 Branch: Return with expression
+0:25 Constant:
+0:25 3.200000
+0:32 Function Definition: A( (global void)
+0:32 Function Parameters:
+0:32 Sequence
+0:32 Function Call: B( (global void)
+0:33 Function Definition: C( (global void)
+0:33 Function Parameters:
+0:33 Sequence
+0:33 Function Call: D( (global void)
+0:34 Function Definition: B( (global void)
+0:34 Function Parameters:
+0:34 Sequence
+0:34 Function Call: C( (global void)
+0:35 Function Definition: D( (global void)
+0:35 Function Parameters:
+0:35 Sequence
+0:35 Function Call: A( (global void)
+0:41 Function Definition: AT( (global void)
+0:41 Function Parameters:
+0:41 Sequence
+0:41 Function Call: BT( (global void)
+0:41 Function Call: BT( (global void)
+0:41 Function Call: BT( (global void)
+0:42 Function Definition: CT( (global void)
+0:42 Function Parameters:
+0:42 Sequence
+0:42 Function Call: DT( (global void)
+0:42 Function Call: AT( (global void)
+0:42 Function Call: DT( (global void)
+0:42 Function Call: BT( (global void)
+0:43 Function Definition: BT( (global void)
+0:43 Function Parameters:
+0:43 Sequence
+0:43 Function Call: CT( (global void)
+0:43 Function Call: CT( (global void)
+0:43 Function Call: CT( (global void)
+0:44 Function Definition: DT( (global void)
+0:44 Function Parameters:
+0:44 Sequence
+0:44 Function Call: AT( (global void)
+0:? Linker Objects
+0:? 'gl_VertexID' (gl_VertexId int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
+Shader version: 330
+0:? Sequence
+0:5 Function Definition: main( (global void)
+0:5 Function Parameters:
+0:11 Function Definition: cfoo(f1; (global void)
+0:11 Function Parameters:
+0:11 '' (in float)
+0:13 Sequence
+0:13 Function Call: cbar(i1; (global float)
+0:13 Constant:
+0:13 2 (const int)
+0:20 Function Definition: CA( (global void)
+0:20 Function Parameters:
+0:20 Sequence
+0:20 Function Call: CB( (global void)
+0:21 Function Definition: CC( (global void)
+0:21 Function Parameters:
+0:21 Sequence
+0:21 Function Call: CD( (global void)
+0:27 Function Definition: CAT( (global void)
+0:27 Function Parameters:
+0:27 Sequence
+0:27 Function Call: CBT( (global void)
+0:27 Function Call: CBT( (global void)
+0:27 Function Call: CBT( (global void)
+0:28 Function Definition: CCT( (global void)
+0:28 Function Parameters:
+0:28 Sequence
+0:28 Function Call: CDT( (global void)
+0:28 Function Call: CDT( (global void)
+0:28 Function Call: CBT( (global void)
+0:32 Function Definition: norA( (global void)
+0:32 Function Parameters:
+0:33 Function Definition: norB( (global void)
+0:33 Function Parameters:
+0:33 Sequence
+0:33 Function Call: norA( (global void)
+0:34 Function Definition: norC( (global void)
+0:34 Function Parameters:
+0:34 Sequence
+0:34 Function Call: norA( (global void)
+0:35 Function Definition: norD( (global void)
+0:35 Function Parameters:
+0:35 Sequence
+0:35 Function Call: norA( (global void)
+0:36 Function Definition: norE( (global void)
+0:36 Function Parameters:
+0:36 Sequence
+0:36 Function Call: norB( (global void)
+0:37 Function Definition: norF( (global void)
+0:37 Function Parameters:
+0:37 Sequence
+0:37 Function Call: norB( (global void)
+0:38 Function Definition: norG( (global void)
+0:38 Function Parameters:
+0:38 Sequence
+0:38 Function Call: norE( (global void)
+0:39 Function Definition: norH( (global void)
+0:39 Function Parameters:
+0:39 Sequence
+0:39 Function Call: norE( (global void)
+0:40 Function Definition: norI( (global void)
+0:40 Function Parameters:
+0:40 Sequence
+0:40 Function Call: norE( (global void)
+0:44 Function Definition: norcA( (global void)
+0:44 Function Parameters:
+0:45 Function Definition: norcB( (global void)
+0:45 Function Parameters:
+0:45 Sequence
+0:45 Function Call: norcA( (global void)
+0:46 Function Definition: norcC( (global void)
+0:46 Function Parameters:
+0:46 Sequence
+0:46 Function Call: norcB( (global void)
+0:47 Function Definition: norcD( (global void)
+0:47 Function Parameters:
+0:47 Sequence
+0:47 Function Call: norcC( (global void)
+0:47 Function Call: norcB( (global void)
+0:48 Function Definition: norcE( (global void)
+0:48 Function Parameters:
+0:48 Sequence
+0:48 Function Call: norcD( (global void)
+0:9 Function Definition: cbar(i1; (global float)
+0:9 Function Parameters:
+0:9 '' (in int)
+0:11 Sequence
+0:11 Function Call: cfoo(f1; (global void)
+0:11 Constant:
+0:11 4.200000
+0:13 Branch: Return with expression
+0:13 Constant:
+0:13 3.200000
+0:20 Function Definition: CB( (global void)
+0:20 Function Parameters:
+0:20 Sequence
+0:20 Function Call: CC( (global void)
+0:21 Function Definition: CD( (global void)
+0:21 Function Parameters:
+0:21 Sequence
+0:21 Function Call: CA( (global void)
+0:27 Function Definition: CBT( (global void)
+0:27 Function Parameters:
+0:27 Sequence
+0:27 Function Call: CCT( (global void)
+0:27 Function Call: CCT( (global void)
+0:27 Function Call: CCT( (global void)
+0:28 Function Definition: CDT( (global void)
+0:28 Function Parameters:
+0:28 Sequence
+0:28 Function Call: CAT( (global void)
+0:? Linker Objects
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/reflection.vert.out b/chromium/third_party/glslang/src/Test/baseResults/reflection.vert.out
new file mode 100644
index 00000000000..24ee780900a
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/reflection.vert.out
@@ -0,0 +1,104 @@
+reflection.vert
+Warning, version 440 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked vertex stage:
+
+
+Uniform reflection:
+image_ui2D: offset -1, type 9063, size 1, index -1
+sampler_2D: offset -1, type 8b5e, size 1, index -1
+sampler_2DMSArray: offset -1, type 910b, size 1, index -1
+anonMember3: offset 80, type 8b52, size 1, index 0
+s.a: offset -1, type 1404, size 1, index -1
+named.scalar: offset 12, type 1404, size 1, index 1
+m23: offset 16, type 8b67, size 1, index 0
+scalarAfterm23: offset 48, type 1404, size 1, index 0
+c_m23: offset 16, type 8b67, size 1, index 2
+c_scalarAfterm23: offset 64, type 1404, size 1, index 2
+scalarBeforeArray: offset 96, type 1404, size 1, index 0
+floatArray: offset 112, type 1406, size 5, index 0
+scalarAfterArray: offset 192, type 1404, size 1, index 0
+named.memvec2: offset 48, type 8b50, size 1, index 1
+named.memf1: offset 56, type 1406, size 1, index 1
+named.memf2: offset 60, type 8b56, size 1, index 1
+named.memf3: offset 64, type 1404, size 1, index 1
+named.memvec2a: offset 72, type 8b50, size 1, index 1
+named.m22: offset 80, type 8b5a, size 7, index 1
+dm22: offset -1, type 8b5a, size 4, index -1
+m22: offset 208, type 8b5a, size 3, index 0
+nested.foo.n1.a: offset 0, type 1406, size 1, index 3
+nested.foo.n2.b: offset 16, type 1406, size 1, index 3
+nested.foo.n2.c: offset 20, type 1406, size 1, index 3
+nested.foo.n2.d: offset 24, type 1406, size 1, index 3
+deepA[0].d2.d1[2].va: offset -1, type 8b50, size 2, index -1
+deepA[1].d2.d1[2].va: offset -1, type 8b50, size 2, index -1
+deepB[1].d2.d1[0].va: offset -1, type 8b50, size 2, index -1
+deepB[1].d2.d1[1].va: offset -1, type 8b50, size 2, index -1
+deepB[1].d2.d1[2].va: offset -1, type 8b50, size 2, index -1
+deepB[1].d2.d1[3].va: offset -1, type 8b50, size 2, index -1
+deepB[0].d2.d1[0].va: offset -1, type 8b50, size 2, index -1
+deepB[0].d2.d1[1].va: offset -1, type 8b50, size 2, index -1
+deepB[0].d2.d1[2].va: offset -1, type 8b50, size 2, index -1
+deepB[0].d2.d1[3].va: offset -1, type 8b50, size 2, index -1
+deepC[1].iv4: offset -1, type 8b52, size 1, index -1
+deepC[1].d2.i: offset -1, type 1404, size 1, index -1
+deepC[1].d2.d1[0].va: offset -1, type 8b50, size 3, index -1
+deepC[1].d2.d1[0].b: offset -1, type 8b56, size 1, index -1
+deepC[1].d2.d1[1].va: offset -1, type 8b50, size 3, index -1
+deepC[1].d2.d1[1].b: offset -1, type 8b56, size 1, index -1
+deepC[1].d2.d1[2].va: offset -1, type 8b50, size 3, index -1
+deepC[1].d2.d1[2].b: offset -1, type 8b56, size 1, index -1
+deepC[1].d2.d1[3].va: offset -1, type 8b50, size 3, index -1
+deepC[1].d2.d1[3].b: offset -1, type 8b56, size 1, index -1
+deepC[1].v3: offset -1, type 8b54, size 1, index -1
+deepD[0].iv4: offset -1, type 8b52, size 1, index -1
+deepD[0].d2.i: offset -1, type 1404, size 1, index -1
+deepD[0].d2.d1[0].va: offset -1, type 8b50, size 3, index -1
+deepD[0].d2.d1[0].b: offset -1, type 8b56, size 1, index -1
+deepD[0].d2.d1[1].va: offset -1, type 8b50, size 3, index -1
+deepD[0].d2.d1[1].b: offset -1, type 8b56, size 1, index -1
+deepD[0].d2.d1[2].va: offset -1, type 8b50, size 3, index -1
+deepD[0].d2.d1[2].b: offset -1, type 8b56, size 1, index -1
+deepD[0].d2.d1[3].va: offset -1, type 8b50, size 3, index -1
+deepD[0].d2.d1[3].b: offset -1, type 8b56, size 1, index -1
+deepD[0].v3: offset -1, type 8b54, size 1, index -1
+deepD[1].iv4: offset -1, type 8b52, size 1, index -1
+deepD[1].d2.i: offset -1, type 1404, size 1, index -1
+deepD[1].d2.d1[0].va: offset -1, type 8b50, size 3, index -1
+deepD[1].d2.d1[0].b: offset -1, type 8b56, size 1, index -1
+deepD[1].d2.d1[1].va: offset -1, type 8b50, size 3, index -1
+deepD[1].d2.d1[1].b: offset -1, type 8b56, size 1, index -1
+deepD[1].d2.d1[2].va: offset -1, type 8b50, size 3, index -1
+deepD[1].d2.d1[2].b: offset -1, type 8b56, size 1, index -1
+deepD[1].d2.d1[3].va: offset -1, type 8b50, size 3, index -1
+deepD[1].d2.d1[3].b: offset -1, type 8b56, size 1, index -1
+deepD[1].v3: offset -1, type 8b54, size 1, index -1
+abl.foo: offset 0, type 1406, size 1, index 7
+abl2.foo: offset 0, type 1406, size 1, index 11
+anonMember1: offset 0, type 8b51, size 1, index 0
+uf1: offset -1, type 1406, size 1, index -1
+uf2: offset -1, type 1406, size 1, index -1
+named.member3: offset 32, type 8b52, size 1, index 1
+
+Uniform block reflection:
+nameless: offset -1, type ffffffff, size 496, index -1
+named: offset -1, type ffffffff, size 304, index -1
+c_nameless: offset -1, type ffffffff, size 112, index -1
+nested: offset -1, type ffffffff, size 32, index -1
+abl[0]: offset -1, type ffffffff, size 4, index -1
+abl[1]: offset -1, type ffffffff, size 4, index -1
+abl[2]: offset -1, type ffffffff, size 4, index -1
+abl[3]: offset -1, type ffffffff, size 4, index -1
+abl2[0]: offset -1, type ffffffff, size 4, index -1
+abl2[1]: offset -1, type ffffffff, size 4, index -1
+abl2[2]: offset -1, type ffffffff, size 4, index -1
+abl2[3]: offset -1, type ffffffff, size 4, index -1
+
+Vertex attribute reflection:
+attributeFloat: offset 0, type 1406, size 0, index 0
+attributeFloat2: offset 0, type 8b50, size 0, index 0
+attributeFloat3: offset 0, type 8b51, size 0, index 0
+attributeFloat4: offset 0, type 8b52, size 0, index 0
+attributeMat4: offset 0, type 8b5c, size 0, index 0
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/sample.frag.out b/chromium/third_party/glslang/src/Test/baseResults/sample.frag.out
new file mode 100644
index 00000000000..7ad929554ca
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/sample.frag.out
@@ -0,0 +1,33 @@
+sample.frag
+Shader version: 110
+0:? Sequence
+0:38 Function Definition: main( (global void)
+0:38 Function Parameters:
+0:40 Sequence
+0:40 move second child to first child (temp 4-component vector of float)
+0:40 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:40 Construct vec4 (temp 4-component vector of float)
+0:40 'color' (smooth in 3-component vector of float)
+0:40 Constant:
+0:40 1.000000
+0:? Linker Objects
+0:? 'color' (smooth in 3-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 110
+0:? Sequence
+0:38 Function Definition: main( (global void)
+0:38 Function Parameters:
+0:40 Sequence
+0:40 move second child to first child (temp 4-component vector of float)
+0:40 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:40 Construct vec4 (temp 4-component vector of float)
+0:40 'color' (smooth in 3-component vector of float)
+0:40 Constant:
+0:40 1.000000
+0:? Linker Objects
+0:? 'color' (smooth in 3-component vector of float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/sample.vert.out b/chromium/third_party/glslang/src/Test/baseResults/sample.vert.out
new file mode 100644
index 00000000000..e67db5748f3
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/sample.vert.out
@@ -0,0 +1,43 @@
+sample.vert
+Shader version: 110
+0:? Sequence
+0:38 Function Definition: main( (global void)
+0:38 Function Parameters:
+0:40 Sequence
+0:40 move second child to first child (temp 3-component vector of float)
+0:40 'color' (smooth out 3-component vector of float)
+0:40 Constant:
+0:40 1.000000
+0:40 1.000000
+0:40 1.000000
+0:42 move second child to first child (temp 4-component vector of float)
+0:42 'gl_Position' (gl_Position 4-component vector of float Position)
+0:42 matrix-times-vector (temp 4-component vector of float)
+0:42 'gl_ModelViewProjectionMatrix' (uniform 4X4 matrix of float)
+0:42 'gl_Vertex' (in 4-component vector of float Vertex)
+0:? Linker Objects
+0:? 'color' (smooth out 3-component vector of float)
+
+
+Linked vertex stage:
+
+
+Shader version: 110
+0:? Sequence
+0:38 Function Definition: main( (global void)
+0:38 Function Parameters:
+0:40 Sequence
+0:40 move second child to first child (temp 3-component vector of float)
+0:40 'color' (smooth out 3-component vector of float)
+0:40 Constant:
+0:40 1.000000
+0:40 1.000000
+0:40 1.000000
+0:42 move second child to first child (temp 4-component vector of float)
+0:42 'gl_Position' (gl_Position 4-component vector of float Position)
+0:42 matrix-times-vector (temp 4-component vector of float)
+0:42 'gl_ModelViewProjectionMatrix' (uniform 4X4 matrix of float)
+0:42 'gl_Vertex' (in 4-component vector of float Vertex)
+0:? Linker Objects
+0:? 'color' (smooth out 3-component vector of float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/simpleFunctionCall.frag.out b/chromium/third_party/glslang/src/Test/baseResults/simpleFunctionCall.frag.out
new file mode 100644
index 00000000000..2cc42a3be16
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/simpleFunctionCall.frag.out
@@ -0,0 +1,43 @@
+simpleFunctionCall.frag
+WARNING: 0:4: varying deprecated in version 130; may be removed in future release
+
+Shader version: 150
+0:? Sequence
+0:7 Function Definition: foo( (global 4-component vector of float)
+0:7 Function Parameters:
+0:9 Sequence
+0:9 Branch: Return with expression
+0:9 'BaseColor' (smooth in 4-component vector of float)
+0:12 Function Definition: main( (global void)
+0:12 Function Parameters:
+0:14 Sequence
+0:14 move second child to first child (temp 4-component vector of float)
+0:14 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:14 Function Call: foo( (global 4-component vector of float)
+0:? Linker Objects
+0:? 'bigColor' (uniform 4-component vector of float)
+0:? 'BaseColor' (smooth in 4-component vector of float)
+0:? 'd' (uniform float)
+
+
+Linked fragment stage:
+
+
+Shader version: 150
+0:? Sequence
+0:7 Function Definition: foo( (global 4-component vector of float)
+0:7 Function Parameters:
+0:9 Sequence
+0:9 Branch: Return with expression
+0:9 'BaseColor' (smooth in 4-component vector of float)
+0:12 Function Definition: main( (global void)
+0:12 Function Parameters:
+0:14 Sequence
+0:14 move second child to first child (temp 4-component vector of float)
+0:14 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:14 Function Call: foo( (global 4-component vector of float)
+0:? Linker Objects
+0:? 'bigColor' (uniform 4-component vector of float)
+0:? 'BaseColor' (smooth in 4-component vector of float)
+0:? 'd' (uniform float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/specExamples.frag.out b/chromium/third_party/glslang/src/Test/baseResults/specExamples.frag.out
new file mode 100644
index 00000000000..464a2793f86
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/specExamples.frag.out
@@ -0,0 +1,617 @@
+specExamples.frag
+Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:6: '=' : cannot convert from 'const uint' to 'global int'
+ERROR: 0:20: '' : numeric literal too big
+ERROR: 0:21: '' : hexidecimal literal too big
+ERROR: 0:37: 'view' : redefinition
+ERROR: 0:63: 'invariant' : can only apply to an output
+ERROR: 0:68: 'lightPosition' : redefinition
+ERROR: 0:75: 'Atten' : member storage qualifier cannot contradict block storage qualifier
+ERROR: 0:87: 'Color' : redefinition
+ERROR: 0:92: 'redeclaration' : cannot redeclare with different qualification: gl_FragCoord
+ERROR: 0:93: 'redeclaration' : cannot redeclare with different qualification: gl_FragCoord
+ERROR: 0:99: 'local_size_x' : there is no such layout identifier for this stage taking an assigned value
+ERROR: 0:99: 'local_size_y' : there is no such layout identifier for this stage taking an assigned value
+ERROR: 0:100: 'local_size_x' : there is no such layout identifier for this stage taking an assigned value
+ERROR: 0:102: 'color' : redefinition
+ERROR: 0:112: 'redeclaration' : all redeclarations must use the same depth layout on gl_FragDepth
+ERROR: 0:118: 'redeclaration' : all redeclarations must use the same depth layout on gl_FragDepth
+ERROR: 0:121: 'redeclaration' : all redeclarations must use the same depth layout on gl_FragDepth
+ERROR: 0:172: 'x' : undeclared identifier
+ERROR: 0:172: '[]' : scalar integer expression required
+ERROR: 0:175: 'x' : undeclared identifier
+ERROR: 0:175: '[]' : scalar integer expression required
+ERROR: 0:175: 'b' : left of '[' is not of type array, matrix, or vector
+ERROR: 0:175: 'a' : vector field selection out of range
+ERROR: 0:175: 'length' : does not operate on this type: const float
+ERROR: 0:175: '' : function call, method, or subroutine call expected
+ERROR: 0:175: '' : no matching overloaded function found
+ERROR: 0:178: '[]' : scalar integer expression required
+ERROR: 0:178: 's' : undeclared identifier
+ERROR: 0:178: 's' : left of '[' is not of type array, matrix, or vector
+ERROR: 0:178: 'a' : vector field selection out of range
+ERROR: 0:178: 'length' : does not operate on this type: const float
+ERROR: 0:178: '' : function call, method, or subroutine call expected
+ERROR: 0:178: '' : no matching overloaded function found
+ERROR: 0:198: 'e' : redefinition
+ERROR: 0:226: 'in' : not allowed in nested scope
+ERROR: 0:227: 'in' : not allowed in nested scope
+ERROR: 0:228: 'in' : not allowed in nested scope
+ERROR: 0:232: 'out' : not allowed in nested scope
+ERROR: 38 compilation errors. No code generated.
+
+
+Shader version: 430
+Requested GL_3DL_array_objects
+gl_FragCoord pixel center is integer
+gl_FragCoord origin is upper left
+using early_fragment_tests
+using depth_greater
+ERROR: node is still EOpNull!
+0:5 Sequence
+0:5 move second child to first child (temp int)
+0:5 'a' (global int)
+0:5 Constant:
+0:5 -1 (const int)
+0:7 Sequence
+0:7 move second child to first child (temp uint)
+0:7 'c' (global uint)
+0:7 Constant:
+0:7 4294967295 (const uint)
+0:8 Sequence
+0:8 move second child to first child (temp uint)
+0:8 'd' (global uint)
+0:8 Constant:
+0:8 4294967295 (const uint)
+0:9 Sequence
+0:9 move second child to first child (temp int)
+0:9 'e' (global int)
+0:9 Constant:
+0:9 -1 (const int)
+0:13 Sequence
+0:13 move second child to first child (temp uint)
+0:13 'f' (global uint)
+0:13 Constant:
+0:13 4294967295 (const uint)
+0:17 Sequence
+0:17 move second child to first child (temp int)
+0:17 'g' (global int)
+0:17 Constant:
+0:17 -1294967296 (const int)
+0:19 Sequence
+0:19 move second child to first child (temp int)
+0:19 'h' (global int)
+0:19 Constant:
+0:19 -1610612736 (const int)
+0:20 Sequence
+0:20 move second child to first child (temp int)
+0:20 'i' (global int)
+0:20 Constant:
+0:20 -1 (const int)
+0:21 Sequence
+0:21 move second child to first child (temp int)
+0:21 'j' (global int)
+0:21 Constant:
+0:21 -1 (const int)
+0:22 Sequence
+0:22 move second child to first child (temp int)
+0:22 'k' (global int)
+0:22 Constant:
+0:22 -2147483648 (const int)
+0:23 Sequence
+0:23 move second child to first child (temp int)
+0:23 'l' (global int)
+0:23 Constant:
+0:23 -2147483648 (const int)
+0:25 Sequence
+0:25 move second child to first child (temp float)
+0:25 'fb' (global float)
+0:25 Constant:
+0:25 1.500000
+0:26 Sequence
+0:26 move second child to first child (temp double)
+0:26 'fd' (global double)
+0:26 Constant:
+0:26 2.000000
+0:127 Function Definition: foo(f1[5]; (global 5-element array of float)
+0:127 Function Parameters:
+0:127 '' (in 5-element array of float)
+0:129 Sequence
+0:129 Branch: Return with expression
+0:129 Constant:
+0:129 3.400000
+0:129 4.200000
+0:129 5.000000
+0:129 5.200000
+0:129 1.100000
+0:137 Function Definition: main( (global void)
+0:137 Function Parameters:
+0:140 Sequence
+0:140 Sequence
+0:140 Sequence
+0:140 move second child to first child (temp 5-element array of float)
+0:140 'a' (temp 5-element array of float)
+0:140 Constant:
+0:140 3.400000
+0:140 4.200000
+0:140 5.000000
+0:140 5.200000
+0:140 1.100000
+0:143 Sequence
+0:143 Sequence
+0:143 move second child to first child (temp 5-element array of float)
+0:143 'a' (temp 5-element array of float)
+0:143 Constant:
+0:143 3.400000
+0:143 4.200000
+0:143 5.000000
+0:143 5.200000
+0:143 1.100000
+0:? Sequence
+0:149 Sequence
+0:149 move second child to first child (temp 2-element array of 4-component vector of float)
+0:149 'b' (temp 2-element array of 4-component vector of float)
+0:149 Constant:
+0:149 0.000000
+0:149 0.000000
+0:149 0.000000
+0:149 0.000000
+0:149 0.100000
+0:149 0.100000
+0:149 0.100000
+0:149 0.100000
+0:150 Sequence
+0:150 move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)
+0:150 'a3' (temp 3-element array of 2-element array of 4-component vector of float)
+0:150 Construct vec4 (temp 3-element array of 2-element array of 4-component vector of float)
+0:150 'b' (temp 2-element array of 4-component vector of float)
+0:150 'b' (temp 2-element array of 4-component vector of float)
+0:150 'b' (temp 2-element array of 4-component vector of float)
+0:152 Sequence
+0:152 move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)
+0:152 'a4' (temp 3-element array of 2-element array of 4-component vector of float)
+0:152 Constant:
+0:152 0.000000
+0:152 0.000000
+0:152 0.000000
+0:152 0.000000
+0:152 1.000000
+0:152 1.000000
+0:152 1.000000
+0:152 1.000000
+0:152 0.000000
+0:152 0.000000
+0:152 0.000000
+0:152 0.000000
+0:152 1.000000
+0:152 1.000000
+0:152 1.000000
+0:152 1.000000
+0:152 0.000000
+0:152 0.000000
+0:152 0.000000
+0:152 0.000000
+0:152 1.000000
+0:152 1.000000
+0:152 1.000000
+0:152 1.000000
+0:? Sequence
+0:159 Sequence
+0:159 Sequence
+0:159 move second child to first child (temp 5-element array of float)
+0:159 'b' (temp 5-element array of float)
+0:159 'a' (temp 5-element array of float)
+0:162 Sequence
+0:162 Sequence
+0:162 move second child to first child (temp 5-element array of float)
+0:162 'b' (temp 5-element array of float)
+0:162 'a' (temp 5-element array of float)
+0:165 Sequence
+0:165 Sequence
+0:165 move second child to first child (temp 5-element array of float)
+0:165 'b' (temp 5-element array of float)
+0:165 Constant:
+0:165 1.000000
+0:165 2.000000
+0:165 3.000000
+0:165 4.000000
+0:165 5.000000
+0:167 Constant:
+0:167 5 (const int)
+0:? Sequence
+0:171 Constant:
+0:171 3 (const int)
+0:172 Constant:
+0:172 2 (const int)
+0:175 Constant:
+0:175 0.000000
+0:178 Constant:
+0:178 0.000000
+0:193 Sequence
+0:193 move second child to first child (temp structure{temp float a, temp int b})
+0:193 'e' (temp structure{temp float a, temp int b})
+0:193 Constant:
+0:193 1.200000
+0:193 2 (const int)
+0:216 Sequence
+0:216 Sequence
+0:216 move second child to first child (temp 5-element array of float)
+0:216 'a' (temp 5-element array of float)
+0:216 Constant:
+0:216 3.400000
+0:216 4.200000
+0:216 5.000000
+0:216 5.200000
+0:216 1.100000
+0:217 Sequence
+0:217 move second child to first child (temp 5-element array of float)
+0:217 'b' (temp 5-element array of float)
+0:217 Constant:
+0:217 3.400000
+0:217 4.200000
+0:217 5.000000
+0:217 5.200000
+0:217 1.100000
+0:218 Sequence
+0:218 move second child to first child (temp 5-element array of float)
+0:218 'c' (temp 5-element array of float)
+0:218 'a' (temp 5-element array of float)
+0:219 Sequence
+0:219 move second child to first child (temp 5-element array of float)
+0:219 'd' (temp 5-element array of float)
+0:219 'b' (temp 5-element array of float)
+0:? Sequence
+0:223 Sequence
+0:223 move second child to first child (temp float)
+0:223 'ceiling' (const (read only) float)
+0:223 Convert int to float (temp float)
+0:223 add (temp int)
+0:223 'a' (global int)
+0:223 'b' (global int)
+0:? Linker Objects
+0:? 'a' (global int)
+0:? 'b' (global int)
+0:? 'c' (global uint)
+0:? 'd' (global uint)
+0:? 'e' (global int)
+0:? 'f' (global uint)
+0:? 'g' (global int)
+0:? 'h' (global int)
+0:? 'i' (global int)
+0:? 'j' (global int)
+0:? 'k' (global int)
+0:? 'l' (global int)
+0:? 'fa' (global float)
+0:? 'fb' (global float)
+0:? 'fc' (global double)
+0:? 'fd' (global double)
+0:? 'texcoord1' (global 2-component vector of float)
+0:? 'texcoord2' (global 2-component vector of float)
+0:? 'position' (global 3-component vector of float)
+0:? 'myRGBA' (global 4-component vector of float)
+0:? 'textureLookup' (global 2-component vector of int)
+0:? 'less' (global 3-component vector of bool)
+0:? 'mat2D' (global 2X2 matrix of float)
+0:? 'optMatrix' (global 3X3 matrix of float)
+0:? 'view' (global 4X4 matrix of float)
+0:? 'projection' (global 4X4 matrix of float)
+0:? 'm' (global 3X2 matrix of float)
+0:? 'highPrecisionMVP' (global 4X4 matrix of double)
+0:? 'dm' (global 2X4 matrix of double)
+0:? 'lightVar' (global structure{global float intensity, global 3-component vector of float position})
+0:? 'frequencies' (global 3-element array of float)
+0:? 'lightPosition' (uniform 4-element array of 4-component vector of float)
+0:? 'lights' (global 2-element array of structure{global float intensity, global 3-component vector of float position})
+0:? 'numLights' (const int)
+0:? 2 (const int)
+0:? 'normal' (smooth in 3-component vector of float)
+0:? 'TexCoord' (centroid smooth in 2-component vector of float)
+0:? 'Color' (invariant centroid smooth in 4-component vector of float)
+0:? 'temperature' (noperspective in float)
+0:? 'myColor' (flat in 3-component vector of float)
+0:? 'myTexCoord' (centroid noperspective in 2-component vector of float)
+0:? 'color' (uniform 3-component vector of float)
+0:? 0.700000
+0:? 0.700000
+0:? 0.200000
+0:? 'anon@0' (in block{smooth in 4-component vector of float Color1, smooth in 4-component vector of float Color2, in 2-component vector of float TexCoordA, in float Atten})
+0:? 'anon@1' (in block{in 4-component vector of float LightPos, in 3-component vector of float LightColor})
+0:? 'Materiala' (in block{in 4-component vector of float Color, in 2-component vector of float TexCoord})
+0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
+0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
+0:? 'factor' (layout(location=3 index=1 ) out 4-component vector of float)
+0:? 'colors' (layout(location=2 ) out 3-element array of 4-component vector of float)
+0:? 'gl_FragDepth' (gl_FragDepth float FragDepth)
+0:? 'gl_FragDepth' (gl_FragDepth float FragDepth)
+0:? 'anon@2' (in block{in float FogFragCoord gl_FogFragCoord, in implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, flat in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor})
+0:? 'anon@2' (in block{in float FogFragCoord gl_FogFragCoord, in implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, flat in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor})
+
+
+Linked fragment stage:
+
+
+Shader version: 430
+Requested GL_3DL_array_objects
+gl_FragCoord pixel center is integer
+gl_FragCoord origin is upper left
+using early_fragment_tests
+using depth_greater
+ERROR: node is still EOpNull!
+0:5 Sequence
+0:5 move second child to first child (temp int)
+0:5 'a' (global int)
+0:5 Constant:
+0:5 -1 (const int)
+0:7 Sequence
+0:7 move second child to first child (temp uint)
+0:7 'c' (global uint)
+0:7 Constant:
+0:7 4294967295 (const uint)
+0:8 Sequence
+0:8 move second child to first child (temp uint)
+0:8 'd' (global uint)
+0:8 Constant:
+0:8 4294967295 (const uint)
+0:9 Sequence
+0:9 move second child to first child (temp int)
+0:9 'e' (global int)
+0:9 Constant:
+0:9 -1 (const int)
+0:13 Sequence
+0:13 move second child to first child (temp uint)
+0:13 'f' (global uint)
+0:13 Constant:
+0:13 4294967295 (const uint)
+0:17 Sequence
+0:17 move second child to first child (temp int)
+0:17 'g' (global int)
+0:17 Constant:
+0:17 -1294967296 (const int)
+0:19 Sequence
+0:19 move second child to first child (temp int)
+0:19 'h' (global int)
+0:19 Constant:
+0:19 -1610612736 (const int)
+0:20 Sequence
+0:20 move second child to first child (temp int)
+0:20 'i' (global int)
+0:20 Constant:
+0:20 -1 (const int)
+0:21 Sequence
+0:21 move second child to first child (temp int)
+0:21 'j' (global int)
+0:21 Constant:
+0:21 -1 (const int)
+0:22 Sequence
+0:22 move second child to first child (temp int)
+0:22 'k' (global int)
+0:22 Constant:
+0:22 -2147483648 (const int)
+0:23 Sequence
+0:23 move second child to first child (temp int)
+0:23 'l' (global int)
+0:23 Constant:
+0:23 -2147483648 (const int)
+0:25 Sequence
+0:25 move second child to first child (temp float)
+0:25 'fb' (global float)
+0:25 Constant:
+0:25 1.500000
+0:26 Sequence
+0:26 move second child to first child (temp double)
+0:26 'fd' (global double)
+0:26 Constant:
+0:26 2.000000
+0:127 Function Definition: foo(f1[5]; (global 5-element array of float)
+0:127 Function Parameters:
+0:127 '' (in 5-element array of float)
+0:129 Sequence
+0:129 Branch: Return with expression
+0:129 Constant:
+0:129 3.400000
+0:129 4.200000
+0:129 5.000000
+0:129 5.200000
+0:129 1.100000
+0:137 Function Definition: main( (global void)
+0:137 Function Parameters:
+0:140 Sequence
+0:140 Sequence
+0:140 Sequence
+0:140 move second child to first child (temp 5-element array of float)
+0:140 'a' (temp 5-element array of float)
+0:140 Constant:
+0:140 3.400000
+0:140 4.200000
+0:140 5.000000
+0:140 5.200000
+0:140 1.100000
+0:143 Sequence
+0:143 Sequence
+0:143 move second child to first child (temp 5-element array of float)
+0:143 'a' (temp 5-element array of float)
+0:143 Constant:
+0:143 3.400000
+0:143 4.200000
+0:143 5.000000
+0:143 5.200000
+0:143 1.100000
+0:? Sequence
+0:149 Sequence
+0:149 move second child to first child (temp 2-element array of 4-component vector of float)
+0:149 'b' (temp 2-element array of 4-component vector of float)
+0:149 Constant:
+0:149 0.000000
+0:149 0.000000
+0:149 0.000000
+0:149 0.000000
+0:149 0.100000
+0:149 0.100000
+0:149 0.100000
+0:149 0.100000
+0:150 Sequence
+0:150 move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)
+0:150 'a3' (temp 3-element array of 2-element array of 4-component vector of float)
+0:150 Construct vec4 (temp 3-element array of 2-element array of 4-component vector of float)
+0:150 'b' (temp 2-element array of 4-component vector of float)
+0:150 'b' (temp 2-element array of 4-component vector of float)
+0:150 'b' (temp 2-element array of 4-component vector of float)
+0:152 Sequence
+0:152 move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)
+0:152 'a4' (temp 3-element array of 2-element array of 4-component vector of float)
+0:152 Constant:
+0:152 0.000000
+0:152 0.000000
+0:152 0.000000
+0:152 0.000000
+0:152 1.000000
+0:152 1.000000
+0:152 1.000000
+0:152 1.000000
+0:152 0.000000
+0:152 0.000000
+0:152 0.000000
+0:152 0.000000
+0:152 1.000000
+0:152 1.000000
+0:152 1.000000
+0:152 1.000000
+0:152 0.000000
+0:152 0.000000
+0:152 0.000000
+0:152 0.000000
+0:152 1.000000
+0:152 1.000000
+0:152 1.000000
+0:152 1.000000
+0:? Sequence
+0:159 Sequence
+0:159 Sequence
+0:159 move second child to first child (temp 5-element array of float)
+0:159 'b' (temp 5-element array of float)
+0:159 'a' (temp 5-element array of float)
+0:162 Sequence
+0:162 Sequence
+0:162 move second child to first child (temp 5-element array of float)
+0:162 'b' (temp 5-element array of float)
+0:162 'a' (temp 5-element array of float)
+0:165 Sequence
+0:165 Sequence
+0:165 move second child to first child (temp 5-element array of float)
+0:165 'b' (temp 5-element array of float)
+0:165 Constant:
+0:165 1.000000
+0:165 2.000000
+0:165 3.000000
+0:165 4.000000
+0:165 5.000000
+0:167 Constant:
+0:167 5 (const int)
+0:? Sequence
+0:171 Constant:
+0:171 3 (const int)
+0:172 Constant:
+0:172 2 (const int)
+0:175 Constant:
+0:175 0.000000
+0:178 Constant:
+0:178 0.000000
+0:193 Sequence
+0:193 move second child to first child (temp structure{temp float a, temp int b})
+0:193 'e' (temp structure{temp float a, temp int b})
+0:193 Constant:
+0:193 1.200000
+0:193 2 (const int)
+0:216 Sequence
+0:216 Sequence
+0:216 move second child to first child (temp 5-element array of float)
+0:216 'a' (temp 5-element array of float)
+0:216 Constant:
+0:216 3.400000
+0:216 4.200000
+0:216 5.000000
+0:216 5.200000
+0:216 1.100000
+0:217 Sequence
+0:217 move second child to first child (temp 5-element array of float)
+0:217 'b' (temp 5-element array of float)
+0:217 Constant:
+0:217 3.400000
+0:217 4.200000
+0:217 5.000000
+0:217 5.200000
+0:217 1.100000
+0:218 Sequence
+0:218 move second child to first child (temp 5-element array of float)
+0:218 'c' (temp 5-element array of float)
+0:218 'a' (temp 5-element array of float)
+0:219 Sequence
+0:219 move second child to first child (temp 5-element array of float)
+0:219 'd' (temp 5-element array of float)
+0:219 'b' (temp 5-element array of float)
+0:? Sequence
+0:223 Sequence
+0:223 move second child to first child (temp float)
+0:223 'ceiling' (const (read only) float)
+0:223 Convert int to float (temp float)
+0:223 add (temp int)
+0:223 'a' (global int)
+0:223 'b' (global int)
+0:? Linker Objects
+0:? 'a' (global int)
+0:? 'b' (global int)
+0:? 'c' (global uint)
+0:? 'd' (global uint)
+0:? 'e' (global int)
+0:? 'f' (global uint)
+0:? 'g' (global int)
+0:? 'h' (global int)
+0:? 'i' (global int)
+0:? 'j' (global int)
+0:? 'k' (global int)
+0:? 'l' (global int)
+0:? 'fa' (global float)
+0:? 'fb' (global float)
+0:? 'fc' (global double)
+0:? 'fd' (global double)
+0:? 'texcoord1' (global 2-component vector of float)
+0:? 'texcoord2' (global 2-component vector of float)
+0:? 'position' (global 3-component vector of float)
+0:? 'myRGBA' (global 4-component vector of float)
+0:? 'textureLookup' (global 2-component vector of int)
+0:? 'less' (global 3-component vector of bool)
+0:? 'mat2D' (global 2X2 matrix of float)
+0:? 'optMatrix' (global 3X3 matrix of float)
+0:? 'view' (global 4X4 matrix of float)
+0:? 'projection' (global 4X4 matrix of float)
+0:? 'm' (global 3X2 matrix of float)
+0:? 'highPrecisionMVP' (global 4X4 matrix of double)
+0:? 'dm' (global 2X4 matrix of double)
+0:? 'lightVar' (global structure{global float intensity, global 3-component vector of float position})
+0:? 'frequencies' (global 3-element array of float)
+0:? 'lightPosition' (uniform 4-element array of 4-component vector of float)
+0:? 'lights' (global 2-element array of structure{global float intensity, global 3-component vector of float position})
+0:? 'numLights' (const int)
+0:? 2 (const int)
+0:? 'normal' (smooth in 3-component vector of float)
+0:? 'TexCoord' (centroid smooth in 2-component vector of float)
+0:? 'Color' (invariant centroid smooth in 4-component vector of float)
+0:? 'temperature' (noperspective in float)
+0:? 'myColor' (flat in 3-component vector of float)
+0:? 'myTexCoord' (centroid noperspective in 2-component vector of float)
+0:? 'color' (uniform 3-component vector of float)
+0:? 0.700000
+0:? 0.700000
+0:? 0.200000
+0:? 'anon@0' (in block{smooth in 4-component vector of float Color1, smooth in 4-component vector of float Color2, in 2-component vector of float TexCoordA, in float Atten})
+0:? 'anon@1' (in block{in 4-component vector of float LightPos, in 3-component vector of float LightColor})
+0:? 'Materiala' (in block{in 4-component vector of float Color, in 2-component vector of float TexCoord})
+0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
+0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
+0:? 'factor' (layout(location=3 index=1 ) out 4-component vector of float)
+0:? 'colors' (layout(location=2 ) out 3-element array of 4-component vector of float)
+0:? 'gl_FragDepth' (gl_FragDepth float FragDepth)
+0:? 'gl_FragDepth' (gl_FragDepth float FragDepth)
+0:? 'anon@2' (in block{in float FogFragCoord gl_FogFragCoord, in 1-element array of 4-component vector of float TexCoord gl_TexCoord, flat in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor})
+0:? 'anon@2' (in block{in float FogFragCoord gl_FogFragCoord, in 1-element array of 4-component vector of float TexCoord gl_TexCoord, flat in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor})
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/specExamples.vert.out b/chromium/third_party/glslang/src/Test/baseResults/specExamples.vert.out
new file mode 100644
index 00000000000..7a880331bf2
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/specExamples.vert.out
@@ -0,0 +1,602 @@
+specExamples.vert
+Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:29: 'location' : can only apply to uniform, buffer, in, or out storage qualifiers
+ERROR: 0:31: 'triangles' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)
+ERROR: 0:31: 'invocations' : there is no such layout identifier for this stage taking an assigned value
+ERROR: 0:33: 'lines' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)
+ERROR: 0:35: 'triangle_strip' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)
+ERROR: 0:35: 'max_vertices' : there is no such layout identifier for this stage taking an assigned value
+ERROR: 0:36: 'max_vertices' : there is no such layout identifier for this stage taking an assigned value
+ERROR: 0:37: 'triangle_strip' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)
+ERROR: 0:41: 'stream' : there is no such layout identifier for this stage taking an assigned value
+ERROR: 0:43: 'stream' : there is no such layout identifier for this stage taking an assigned value
+ERROR: 0:45: 'stream' : there is no such layout identifier for this stage taking an assigned value
+ERROR: 0:46: 'stream' : there is no such layout identifier for this stage taking an assigned value
+ERROR: 0:47: 'stream' : there is no such layout identifier for this stage taking an assigned value
+ERROR: 0:50: 'stream' : there is no such layout identifier for this stage taking an assigned value
+ERROR: 0:55: 'stream' : there is no such layout identifier for this stage taking an assigned value
+ERROR: 0:80: 's17' : redefinition
+ERROR: 0:85: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings
+ERROR: 0:87: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings
+ERROR: 0:89: 'binding' : atomic_uint binding is too large
+ERROR: 0:91: 'bar' : redefinition
+ERROR: 0:92: 'atomic_uint' : layout(binding=X) is required
+ERROR: 0:94: 'a2' : redefinition
+ERROR: 0:95: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings
+ERROR: 0:96: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings
+ERROR: 0:97: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings
+ERROR: 0:106: '' : vertex input cannot be further qualified
+ERROR: 0:106: 'redeclaration' : cannot change storage, memory, or auxiliary qualification of gl_FrontColor
+ERROR: 0:112: 'ColorIvn' : identifier not previously declared
+ERROR: 0:132: 'shared' : not supported in this stage: vertex
+ERROR: 0:134: '' : function does not return a value: funcA
+ERROR: 0:136: '' : function does not return a value: funcB
+ERROR: 0:153: '' : function does not return a value: func3
+ERROR: 0:170: 'coherent' : argument cannot drop memory qualifier when passed to formal parameter
+ERROR: 33 compilation errors. No code generated.
+
+
+Shader version: 430
+Requested GL_3DL_array_objects
+ERROR: node is still EOpNull!
+0:134 Function Definition: funcA(I21; (global 4-component vector of float)
+0:134 Function Parameters:
+0:134 'a' (restrict in image2D)
+0:136 Function Definition: funcB(I21; (global 4-component vector of float)
+0:136 Function Parameters:
+0:136 'a' (in image2D)
+0:140 Function Definition: func(f1;f1;f1;f1; (global float)
+0:140 Function Parameters:
+0:140 'e' (in float)
+0:140 'f' (in float)
+0:140 'g' (in float)
+0:140 'h' (in float)
+0:142 Sequence
+0:142 Branch: Return with expression
+0:142 add (temp float)
+0:142 component-wise multiply (temp float)
+0:142 'e' (in float)
+0:142 'f' (in float)
+0:142 component-wise multiply (temp float)
+0:142 'g' (in float)
+0:142 'h' (in float)
+0:146 Function Definition: func2(f1;f1;f1;f1; (global float)
+0:146 Function Parameters:
+0:146 'e' (in float)
+0:146 'f' (in float)
+0:146 'g' (in float)
+0:146 'h' (in float)
+0:148 Sequence
+0:148 Sequence
+0:148 move second child to first child (temp float)
+0:148 'result' (noContraction temp float)
+0:148 add (temp float)
+0:148 component-wise multiply (temp float)
+0:148 'e' (in float)
+0:148 'f' (in float)
+0:148 component-wise multiply (temp float)
+0:148 'g' (in float)
+0:148 'h' (in float)
+0:150 Branch: Return with expression
+0:150 'result' (noContraction temp float)
+0:153 Function Definition: func3(f1;f1;f1; (global float)
+0:153 Function Parameters:
+0:153 'i' (in float)
+0:153 'j' (in float)
+0:153 'k' (noContraction out float)
+0:155 Sequence
+0:155 move second child to first child (temp float)
+0:155 'k' (noContraction out float)
+0:155 add (temp float)
+0:155 component-wise multiply (temp float)
+0:155 'i' (in float)
+0:155 'i' (in float)
+0:155 'j' (in float)
+0:158 Function Definition: main( (global void)
+0:158 Function Parameters:
+0:160 Sequence
+0:160 Sequence
+0:160 move second child to first child (temp 3-component vector of float)
+0:160 'r' (temp 3-component vector of float)
+0:160 Construct vec3 (temp 3-component vector of float)
+0:160 component-wise multiply (temp 4-component vector of float)
+0:160 'a' (in 4-component vector of float)
+0:160 'b' (in 4-component vector of float)
+0:161 Sequence
+0:161 move second child to first child (temp 3-component vector of float)
+0:161 's' (temp 3-component vector of float)
+0:161 Construct vec3 (temp 3-component vector of float)
+0:161 component-wise multiply (temp 4-component vector of float)
+0:161 'c' (in 4-component vector of float)
+0:161 'd' (in 4-component vector of float)
+0:162 move second child to first child (temp 3-component vector of float)
+0:162 vector swizzle (noContraction temp 3-component vector of float)
+0:162 'v' (noContraction smooth out 4-component vector of float)
+0:162 Sequence
+0:162 Constant:
+0:162 0 (const int)
+0:162 Constant:
+0:162 1 (const int)
+0:162 Constant:
+0:162 2 (const int)
+0:162 add (temp 3-component vector of float)
+0:162 'r' (temp 3-component vector of float)
+0:162 's' (temp 3-component vector of float)
+0:163 move second child to first child (temp float)
+0:163 direct index (noContraction temp float)
+0:163 'v' (noContraction smooth out 4-component vector of float)
+0:163 Constant:
+0:163 3 (const int)
+0:163 add (temp float)
+0:163 component-wise multiply (temp float)
+0:163 direct index (temp float)
+0:163 'a' (in 4-component vector of float)
+0:163 Constant:
+0:163 3 (const int)
+0:163 direct index (temp float)
+0:163 'b' (in 4-component vector of float)
+0:163 Constant:
+0:163 3 (const int)
+0:163 component-wise multiply (temp float)
+0:163 direct index (temp float)
+0:163 'c' (in 4-component vector of float)
+0:163 Constant:
+0:163 3 (const int)
+0:163 direct index (temp float)
+0:163 'd' (in 4-component vector of float)
+0:163 Constant:
+0:163 3 (const int)
+0:164 move second child to first child (temp float)
+0:164 direct index (noContraction temp float)
+0:164 'v' (noContraction smooth out 4-component vector of float)
+0:164 Constant:
+0:164 0 (const int)
+0:164 Function Call: func(f1;f1;f1;f1; (global float)
+0:164 direct index (temp float)
+0:164 'a' (in 4-component vector of float)
+0:164 Constant:
+0:164 0 (const int)
+0:164 direct index (temp float)
+0:164 'b' (in 4-component vector of float)
+0:164 Constant:
+0:164 0 (const int)
+0:164 direct index (temp float)
+0:164 'c' (in 4-component vector of float)
+0:164 Constant:
+0:164 0 (const int)
+0:164 direct index (temp float)
+0:164 'd' (in 4-component vector of float)
+0:164 Constant:
+0:164 0 (const int)
+0:166 move second child to first child (temp float)
+0:166 direct index (noContraction temp float)
+0:166 'v' (noContraction smooth out 4-component vector of float)
+0:166 Constant:
+0:166 0 (const int)
+0:166 Function Call: func2(f1;f1;f1;f1; (global float)
+0:166 direct index (temp float)
+0:166 'a' (in 4-component vector of float)
+0:166 Constant:
+0:166 0 (const int)
+0:166 direct index (temp float)
+0:166 'b' (in 4-component vector of float)
+0:166 Constant:
+0:166 0 (const int)
+0:166 direct index (temp float)
+0:166 'c' (in 4-component vector of float)
+0:166 Constant:
+0:166 0 (const int)
+0:166 direct index (temp float)
+0:166 'd' (in 4-component vector of float)
+0:166 Constant:
+0:166 0 (const int)
+0:167 Function Call: func3(f1;f1;f1; (global float)
+0:167 component-wise multiply (temp float)
+0:167 direct index (temp float)
+0:167 'a' (in 4-component vector of float)
+0:167 Constant:
+0:167 0 (const int)
+0:167 direct index (temp float)
+0:167 'b' (in 4-component vector of float)
+0:167 Constant:
+0:167 0 (const int)
+0:167 component-wise multiply (temp float)
+0:167 direct index (temp float)
+0:167 'c' (in 4-component vector of float)
+0:167 Constant:
+0:167 0 (const int)
+0:167 direct index (temp float)
+0:167 'd' (in 4-component vector of float)
+0:167 Constant:
+0:167 0 (const int)
+0:167 direct index (noContraction temp float)
+0:167 'v' (noContraction smooth out 4-component vector of float)
+0:167 Constant:
+0:167 0 (const int)
+0:169 Function Call: funcA(I21; (global 4-component vector of float)
+0:169 'img1' (layout(rgba32f ) uniform image2D)
+0:170 Function Call: funcB(I21; (global 4-component vector of float)
+0:170 'img2' (layout(rgba32f ) coherent uniform image2D)
+0:? Sequence
+0:178 Sequence
+0:178 move second child to first child (temp structure{temp float intensity, temp 3-component vector of float position})
+0:178 'lightVar' (temp structure{temp float intensity, temp 3-component vector of float position})
+0:178 Constant:
+0:178 3.000000
+0:178 1.000000
+0:178 2.000000
+0:178 3.000000
+0:? Sequence
+0:185 Sequence
+0:185 move second child to first child (temp 5-element array of float)
+0:185 'a' (temp 5-element array of float)
+0:185 Construct float (temp 5-element array of float)
+0:185 'g' (temp float)
+0:185 Constant:
+0:185 1.000000
+0:185 'g' (temp float)
+0:185 Constant:
+0:185 2.300000
+0:185 'g' (temp float)
+0:188 move second child to first child (temp 3-element array of float)
+0:188 'b' (temp 3-element array of float)
+0:188 Construct float (temp 3-element array of float)
+0:188 'g' (temp float)
+0:188 add (temp float)
+0:188 'g' (temp float)
+0:188 Constant:
+0:188 1.000000
+0:188 add (temp float)
+0:188 'g' (temp float)
+0:188 Constant:
+0:188 2.000000
+0:191 Sequence
+0:191 Sequence
+0:191 move second child to first child (temp 2-element array of 4-component vector of float)
+0:191 'b' (temp 2-element array of 4-component vector of float)
+0:191 Constant:
+0:191 1.000000
+0:191 1.000000
+0:191 1.000000
+0:191 1.000000
+0:191 1.000000
+0:191 1.000000
+0:191 1.000000
+0:191 1.000000
+0:192 Construct vec4 (temp 3-element array of 2-element array of 4-component vector of float)
+0:192 'b' (temp 2-element array of 4-component vector of float)
+0:192 'b' (temp 2-element array of 4-component vector of float)
+0:192 'b' (temp 2-element array of 4-component vector of float)
+0:193 Construct vec4 (temp 3-element array of 2-element array of 4-component vector of float)
+0:193 'b' (temp 2-element array of 4-component vector of float)
+0:193 'b' (temp 2-element array of 4-component vector of float)
+0:193 'b' (temp 2-element array of 4-component vector of float)
+0:194 Construct vec4 (temp 3-element array of 2-element array of 4-component vector of float)
+0:194 'b' (temp 2-element array of 4-component vector of float)
+0:194 'b' (temp 2-element array of 4-component vector of float)
+0:194 'b' (temp 2-element array of 4-component vector of float)
+0:? Linker Objects
+0:? 'Coords' (out block{out 4-component vector of float Position, out 2-component vector of float Texture})
+0:? 'anon@0' (out block{out 4-component vector of float Color})
+0:? 'transforms' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform 4X4 matrix of float ModelViewMatrix, layout(column_major shared ) uniform 4X4 matrix of float ModelViewProjectionMatrix, layout(column_major shared ) uniform implicitly-sized array of 4-component vector of float a, layout(column_major shared ) uniform float Deformation})
+0:? 'normal' (layout(location=3 ) in 4-component vector of float)
+0:? 'colors' (layout(location=6 ) in 3-element array of 4-component vector of float)
+0:? 'transforms2' (layout(location=9 ) in 2-element array of 4X4 matrix of float)
+0:? 's' (layout(location=3 ) temp structure{global 3-component vector of float a1, global 2X2 matrix of float b, global 2-element array of 4-component vector of float c})
+0:? 'var1' (smooth out 4-component vector of float)
+0:? 'anon@1' (out block{out 4-component vector of float var2, out 2-component vector of float var3, out 3-component vector of float var4})
+0:? 'var5' (smooth out 4-component vector of float)
+0:? 'anon@2' (out block{out 4-component vector of float var6})
+0:? 'var7' (smooth out 4-component vector of float)
+0:? 'anon@3' (layout(row_major std140 ) uniform block{layout(row_major std140 offset=0 ) uniform 4X4 matrix of float M1, layout(column_major std140 offset=64 ) uniform 4X4 matrix of float M2, layout(row_major std140 offset=128 ) uniform 3X3 matrix of float N1})
+0:? 'anon@4' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform 4X4 matrix of float M13, layout(row_major shared ) uniform 4X4 matrix of float m14, layout(column_major shared ) uniform 3X3 matrix of float N12})
+0:? 's17' (layout(binding=3 ) uniform sampler2D)
+0:? 'a2' (layout(binding=2 offset=4 ) uniform atomic_uint)
+0:? 'bar' (layout(binding=2 ) uniform atomic_uint)
+0:? 'bar23' (layout(offset=8 ) uniform atomic_uint)
+0:? 'b2' (layout(binding=2 ) uniform atomic_uint)
+0:? 'c2' (layout(binding=3 ) uniform atomic_uint)
+0:? 'd2' (layout(binding=2 ) uniform atomic_uint)
+0:? 'anon@5' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, flat out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:? 'anon@5' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, flat out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:? 'ColorInv' (smooth out 3-component vector of float)
+0:? 'Color4' (invariant centroid smooth out 3-component vector of float)
+0:? 'position' (noContraction smooth out 4-component vector of float)
+0:? 'Color5' (smooth out 3-component vector of float)
+0:? 'a' (in 4-component vector of float)
+0:? 'b' (in 4-component vector of float)
+0:? 'c' (in 4-component vector of float)
+0:? 'd' (in 4-component vector of float)
+0:? 'v' (noContraction smooth out 4-component vector of float)
+0:? 'anon@6' (layout(column_major shared ) coherent buffer block{layout(column_major shared ) readonly buffer 4-component vector of float member1, layout(column_major shared ) buffer 4-component vector of float member2})
+0:? 'anon@7' (layout(column_major shared ) buffer block{layout(column_major shared ) coherent readonly buffer 4-component vector of float member1A, layout(column_major shared ) coherent buffer 4-component vector of float member2A})
+0:? 'shv' (shared 4-component vector of float)
+0:? 'img1' (layout(rgba32f ) uniform image2D)
+0:? 'img2' (layout(rgba32f ) coherent uniform image2D)
+0:? 'gl_VertexID' (gl_VertexId int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
+
+
+Linked vertex stage:
+
+
+Shader version: 430
+Requested GL_3DL_array_objects
+ERROR: node is still EOpNull!
+0:134 Function Definition: funcA(I21; (global 4-component vector of float)
+0:134 Function Parameters:
+0:134 'a' (restrict in image2D)
+0:136 Function Definition: funcB(I21; (global 4-component vector of float)
+0:136 Function Parameters:
+0:136 'a' (in image2D)
+0:140 Function Definition: func(f1;f1;f1;f1; (global float)
+0:140 Function Parameters:
+0:140 'e' (in float)
+0:140 'f' (in float)
+0:140 'g' (in float)
+0:140 'h' (in float)
+0:142 Sequence
+0:142 Branch: Return with expression
+0:142 add (temp float)
+0:142 component-wise multiply (temp float)
+0:142 'e' (in float)
+0:142 'f' (in float)
+0:142 component-wise multiply (temp float)
+0:142 'g' (in float)
+0:142 'h' (in float)
+0:146 Function Definition: func2(f1;f1;f1;f1; (global float)
+0:146 Function Parameters:
+0:146 'e' (in float)
+0:146 'f' (in float)
+0:146 'g' (in float)
+0:146 'h' (in float)
+0:148 Sequence
+0:148 Sequence
+0:148 move second child to first child (temp float)
+0:148 'result' (noContraction temp float)
+0:148 add (temp float)
+0:148 component-wise multiply (temp float)
+0:148 'e' (in float)
+0:148 'f' (in float)
+0:148 component-wise multiply (temp float)
+0:148 'g' (in float)
+0:148 'h' (in float)
+0:150 Branch: Return with expression
+0:150 'result' (noContraction temp float)
+0:153 Function Definition: func3(f1;f1;f1; (global float)
+0:153 Function Parameters:
+0:153 'i' (in float)
+0:153 'j' (in float)
+0:153 'k' (noContraction out float)
+0:155 Sequence
+0:155 move second child to first child (temp float)
+0:155 'k' (noContraction out float)
+0:155 add (temp float)
+0:155 component-wise multiply (temp float)
+0:155 'i' (in float)
+0:155 'i' (in float)
+0:155 'j' (in float)
+0:158 Function Definition: main( (global void)
+0:158 Function Parameters:
+0:160 Sequence
+0:160 Sequence
+0:160 move second child to first child (temp 3-component vector of float)
+0:160 'r' (temp 3-component vector of float)
+0:160 Construct vec3 (temp 3-component vector of float)
+0:160 component-wise multiply (temp 4-component vector of float)
+0:160 'a' (in 4-component vector of float)
+0:160 'b' (in 4-component vector of float)
+0:161 Sequence
+0:161 move second child to first child (temp 3-component vector of float)
+0:161 's' (temp 3-component vector of float)
+0:161 Construct vec3 (temp 3-component vector of float)
+0:161 component-wise multiply (temp 4-component vector of float)
+0:161 'c' (in 4-component vector of float)
+0:161 'd' (in 4-component vector of float)
+0:162 move second child to first child (temp 3-component vector of float)
+0:162 vector swizzle (noContraction temp 3-component vector of float)
+0:162 'v' (noContraction smooth out 4-component vector of float)
+0:162 Sequence
+0:162 Constant:
+0:162 0 (const int)
+0:162 Constant:
+0:162 1 (const int)
+0:162 Constant:
+0:162 2 (const int)
+0:162 add (temp 3-component vector of float)
+0:162 'r' (temp 3-component vector of float)
+0:162 's' (temp 3-component vector of float)
+0:163 move second child to first child (temp float)
+0:163 direct index (noContraction temp float)
+0:163 'v' (noContraction smooth out 4-component vector of float)
+0:163 Constant:
+0:163 3 (const int)
+0:163 add (temp float)
+0:163 component-wise multiply (temp float)
+0:163 direct index (temp float)
+0:163 'a' (in 4-component vector of float)
+0:163 Constant:
+0:163 3 (const int)
+0:163 direct index (temp float)
+0:163 'b' (in 4-component vector of float)
+0:163 Constant:
+0:163 3 (const int)
+0:163 component-wise multiply (temp float)
+0:163 direct index (temp float)
+0:163 'c' (in 4-component vector of float)
+0:163 Constant:
+0:163 3 (const int)
+0:163 direct index (temp float)
+0:163 'd' (in 4-component vector of float)
+0:163 Constant:
+0:163 3 (const int)
+0:164 move second child to first child (temp float)
+0:164 direct index (noContraction temp float)
+0:164 'v' (noContraction smooth out 4-component vector of float)
+0:164 Constant:
+0:164 0 (const int)
+0:164 Function Call: func(f1;f1;f1;f1; (global float)
+0:164 direct index (temp float)
+0:164 'a' (in 4-component vector of float)
+0:164 Constant:
+0:164 0 (const int)
+0:164 direct index (temp float)
+0:164 'b' (in 4-component vector of float)
+0:164 Constant:
+0:164 0 (const int)
+0:164 direct index (temp float)
+0:164 'c' (in 4-component vector of float)
+0:164 Constant:
+0:164 0 (const int)
+0:164 direct index (temp float)
+0:164 'd' (in 4-component vector of float)
+0:164 Constant:
+0:164 0 (const int)
+0:166 move second child to first child (temp float)
+0:166 direct index (noContraction temp float)
+0:166 'v' (noContraction smooth out 4-component vector of float)
+0:166 Constant:
+0:166 0 (const int)
+0:166 Function Call: func2(f1;f1;f1;f1; (global float)
+0:166 direct index (temp float)
+0:166 'a' (in 4-component vector of float)
+0:166 Constant:
+0:166 0 (const int)
+0:166 direct index (temp float)
+0:166 'b' (in 4-component vector of float)
+0:166 Constant:
+0:166 0 (const int)
+0:166 direct index (temp float)
+0:166 'c' (in 4-component vector of float)
+0:166 Constant:
+0:166 0 (const int)
+0:166 direct index (temp float)
+0:166 'd' (in 4-component vector of float)
+0:166 Constant:
+0:166 0 (const int)
+0:167 Function Call: func3(f1;f1;f1; (global float)
+0:167 component-wise multiply (temp float)
+0:167 direct index (temp float)
+0:167 'a' (in 4-component vector of float)
+0:167 Constant:
+0:167 0 (const int)
+0:167 direct index (temp float)
+0:167 'b' (in 4-component vector of float)
+0:167 Constant:
+0:167 0 (const int)
+0:167 component-wise multiply (temp float)
+0:167 direct index (temp float)
+0:167 'c' (in 4-component vector of float)
+0:167 Constant:
+0:167 0 (const int)
+0:167 direct index (temp float)
+0:167 'd' (in 4-component vector of float)
+0:167 Constant:
+0:167 0 (const int)
+0:167 direct index (noContraction temp float)
+0:167 'v' (noContraction smooth out 4-component vector of float)
+0:167 Constant:
+0:167 0 (const int)
+0:169 Function Call: funcA(I21; (global 4-component vector of float)
+0:169 'img1' (layout(rgba32f ) uniform image2D)
+0:170 Function Call: funcB(I21; (global 4-component vector of float)
+0:170 'img2' (layout(rgba32f ) coherent uniform image2D)
+0:? Sequence
+0:178 Sequence
+0:178 move second child to first child (temp structure{temp float intensity, temp 3-component vector of float position})
+0:178 'lightVar' (temp structure{temp float intensity, temp 3-component vector of float position})
+0:178 Constant:
+0:178 3.000000
+0:178 1.000000
+0:178 2.000000
+0:178 3.000000
+0:? Sequence
+0:185 Sequence
+0:185 move second child to first child (temp 5-element array of float)
+0:185 'a' (temp 5-element array of float)
+0:185 Construct float (temp 5-element array of float)
+0:185 'g' (temp float)
+0:185 Constant:
+0:185 1.000000
+0:185 'g' (temp float)
+0:185 Constant:
+0:185 2.300000
+0:185 'g' (temp float)
+0:188 move second child to first child (temp 3-element array of float)
+0:188 'b' (temp 3-element array of float)
+0:188 Construct float (temp 3-element array of float)
+0:188 'g' (temp float)
+0:188 add (temp float)
+0:188 'g' (temp float)
+0:188 Constant:
+0:188 1.000000
+0:188 add (temp float)
+0:188 'g' (temp float)
+0:188 Constant:
+0:188 2.000000
+0:191 Sequence
+0:191 Sequence
+0:191 move second child to first child (temp 2-element array of 4-component vector of float)
+0:191 'b' (temp 2-element array of 4-component vector of float)
+0:191 Constant:
+0:191 1.000000
+0:191 1.000000
+0:191 1.000000
+0:191 1.000000
+0:191 1.000000
+0:191 1.000000
+0:191 1.000000
+0:191 1.000000
+0:192 Construct vec4 (temp 3-element array of 2-element array of 4-component vector of float)
+0:192 'b' (temp 2-element array of 4-component vector of float)
+0:192 'b' (temp 2-element array of 4-component vector of float)
+0:192 'b' (temp 2-element array of 4-component vector of float)
+0:193 Construct vec4 (temp 3-element array of 2-element array of 4-component vector of float)
+0:193 'b' (temp 2-element array of 4-component vector of float)
+0:193 'b' (temp 2-element array of 4-component vector of float)
+0:193 'b' (temp 2-element array of 4-component vector of float)
+0:194 Construct vec4 (temp 3-element array of 2-element array of 4-component vector of float)
+0:194 'b' (temp 2-element array of 4-component vector of float)
+0:194 'b' (temp 2-element array of 4-component vector of float)
+0:194 'b' (temp 2-element array of 4-component vector of float)
+0:? Linker Objects
+0:? 'Coords' (out block{out 4-component vector of float Position, out 2-component vector of float Texture})
+0:? 'anon@0' (out block{out 4-component vector of float Color})
+0:? 'transforms' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform 4X4 matrix of float ModelViewMatrix, layout(column_major shared ) uniform 4X4 matrix of float ModelViewProjectionMatrix, layout(column_major shared ) uniform 1-element array of 4-component vector of float a, layout(column_major shared ) uniform float Deformation})
+0:? 'normal' (layout(location=3 ) in 4-component vector of float)
+0:? 'colors' (layout(location=6 ) in 3-element array of 4-component vector of float)
+0:? 'transforms2' (layout(location=9 ) in 2-element array of 4X4 matrix of float)
+0:? 's' (layout(location=3 ) temp structure{global 3-component vector of float a1, global 2X2 matrix of float b, global 2-element array of 4-component vector of float c})
+0:? 'var1' (smooth out 4-component vector of float)
+0:? 'anon@1' (out block{out 4-component vector of float var2, out 2-component vector of float var3, out 3-component vector of float var4})
+0:? 'var5' (smooth out 4-component vector of float)
+0:? 'anon@2' (out block{out 4-component vector of float var6})
+0:? 'var7' (smooth out 4-component vector of float)
+0:? 'anon@3' (layout(row_major std140 ) uniform block{layout(row_major std140 offset=0 ) uniform 4X4 matrix of float M1, layout(column_major std140 offset=64 ) uniform 4X4 matrix of float M2, layout(row_major std140 offset=128 ) uniform 3X3 matrix of float N1})
+0:? 'anon@4' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform 4X4 matrix of float M13, layout(row_major shared ) uniform 4X4 matrix of float m14, layout(column_major shared ) uniform 3X3 matrix of float N12})
+0:? 's17' (layout(binding=3 ) uniform sampler2D)
+0:? 'a2' (layout(binding=2 offset=4 ) uniform atomic_uint)
+0:? 'bar' (layout(binding=2 ) uniform atomic_uint)
+0:? 'bar23' (layout(offset=8 ) uniform atomic_uint)
+0:? 'b2' (layout(binding=2 ) uniform atomic_uint)
+0:? 'c2' (layout(binding=3 ) uniform atomic_uint)
+0:? 'd2' (layout(binding=2 ) uniform atomic_uint)
+0:? 'anon@5' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, flat out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:? 'anon@5' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, flat out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:? 'ColorInv' (smooth out 3-component vector of float)
+0:? 'Color4' (invariant centroid smooth out 3-component vector of float)
+0:? 'position' (noContraction smooth out 4-component vector of float)
+0:? 'Color5' (smooth out 3-component vector of float)
+0:? 'a' (in 4-component vector of float)
+0:? 'b' (in 4-component vector of float)
+0:? 'c' (in 4-component vector of float)
+0:? 'd' (in 4-component vector of float)
+0:? 'v' (noContraction smooth out 4-component vector of float)
+0:? 'anon@6' (layout(column_major shared ) coherent buffer block{layout(column_major shared ) readonly buffer 4-component vector of float member1, layout(column_major shared ) buffer 4-component vector of float member2})
+0:? 'anon@7' (layout(column_major shared ) buffer block{layout(column_major shared ) coherent readonly buffer 4-component vector of float member1A, layout(column_major shared ) coherent buffer 4-component vector of float member2A})
+0:? 'shv' (shared 4-component vector of float)
+0:? 'img1' (layout(rgba32f ) uniform image2D)
+0:? 'img2' (layout(rgba32f ) coherent uniform image2D)
+0:? 'gl_VertexID' (gl_VertexId int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.100ops.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.100ops.frag.out
new file mode 100755
index 00000000000..9b40c920eb2
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.100ops.frag.out
@@ -0,0 +1,104 @@
+spv.100ops.frag
+Warning, version 310 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 49
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 21 26 37
+ ExecutionMode 4 OriginUpperLeft
+ Source ESSL 310
+ Name 4 "main"
+ Name 8 "foo("
+ Name 11 "face1"
+ Name 13 "face2"
+ Name 17 "z"
+ Name 21 "low"
+ Name 26 "high"
+ Name 37 "Color"
+ Decorate 8(foo() RelaxedPrecision
+ Decorate 11(face1) RelaxedPrecision
+ Decorate 13(face2) RelaxedPrecision
+ Decorate 17(z) RelaxedPrecision
+ Decorate 21(low) RelaxedPrecision
+ Decorate 22 RelaxedPrecision
+ Decorate 23 RelaxedPrecision
+ Decorate 25 RelaxedPrecision
+ Decorate 26(high) RelaxedPrecision
+ Decorate 27 RelaxedPrecision
+ Decorate 32 RelaxedPrecision
+ Decorate 34 RelaxedPrecision
+ Decorate 37(Color) RelaxedPrecision
+ Decorate 38 RelaxedPrecision
+ Decorate 39 RelaxedPrecision
+ Decorate 40 RelaxedPrecision
+ Decorate 41 RelaxedPrecision
+ Decorate 42 RelaxedPrecision
+ Decorate 43 RelaxedPrecision
+ Decorate 44 RelaxedPrecision
+ Decorate 45 RelaxedPrecision
+ Decorate 46 RelaxedPrecision
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeFunction 6(float)
+ 10: TypePointer Private 6(float)
+ 11(face1): 10(ptr) Variable Private
+ 12: 6(float) Constant 1093664768
+ 13(face2): 10(ptr) Variable Private
+ 14: 6(float) Constant 3221225472
+ 15: TypeInt 32 1
+ 16: TypePointer Function 15(int)
+ 18: 15(int) Constant 3
+ 19: 6(float) Constant 1073741824
+ 20: TypePointer Input 6(float)
+ 21(low): 20(ptr) Variable Input
+ 24: 6(float) Constant 1065353216
+ 26(high): 20(ptr) Variable Input
+ 28: TypeBool
+ 33: 15(int) Constant 1
+ 35: TypeVector 6(float) 4
+ 36: TypePointer Output 35(fvec4)
+ 37(Color): 36(ptr) Variable Output
+ 4(main): 2 Function None 3
+ 5: Label
+ 17(z): 16(ptr) Variable Function
+ Store 11(face1) 12
+ Store 13(face2) 14
+ Store 17(z) 18
+ 22: 6(float) Load 21(low)
+ 23: 6(float) FMul 19 22
+ 25: 6(float) FAdd 23 24
+ 27: 6(float) Load 26(high)
+ 29: 28(bool) FOrdLessThan 25 27
+ SelectionMerge 31 None
+ BranchConditional 29 30 31
+ 30: Label
+ 32: 15(int) Load 17(z)
+ 34: 15(int) IAdd 32 33
+ Store 17(z) 34
+ Branch 31
+ 31: Label
+ 38: 6(float) Load 11(face1)
+ 39: 15(int) Load 17(z)
+ 40: 6(float) ConvertSToF 39
+ 41: 35(fvec4) CompositeConstruct 40 40 40 40
+ 42: 35(fvec4) VectorTimesScalar 41 38
+ 43: 6(float) FunctionCall 8(foo()
+ 44: 35(fvec4) CompositeConstruct 43 43 43 43
+ 45: 35(fvec4) FAdd 42 44
+ Store 37(Color) 45
+ Return
+ FunctionEnd
+ 8(foo(): 6(float) Function None 7
+ 9: Label
+ 46: 6(float) Load 13(face2)
+ ReturnValue 46
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.130.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.130.frag.out
new file mode 100644
index 00000000000..8d881f50502
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.130.frag.out
@@ -0,0 +1,313 @@
+spv.130.frag
+WARNING: 0:31: '#extension' : extension is only partially supported: GL_ARB_gpu_shader5
+
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 205
+
+ Capability Shader
+ Capability ClipDistance
+ Capability SampledRect
+ Capability Sampled1D
+ Capability SampledCubeArray
+ Capability ImageQuery
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 17 68 79 99 173 184 185 186
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 140
+ SourceExtension "GL_ARB_gpu_shader5"
+ SourceExtension "GL_ARB_shader_texture_lod"
+ SourceExtension "GL_ARB_shading_language_420pack"
+ SourceExtension "GL_ARB_texture_cube_map_array"
+ SourceExtension "GL_ARB_texture_gather"
+ SourceExtension "GL_ARB_texture_rectangle"
+ Name 4 "main"
+ Name 6 "bar3("
+ Name 8 "bar4("
+ Name 10 "bar5("
+ Name 12 "bar6("
+ Name 17 "o"
+ Name 21 "samp2D"
+ Name 37 "samp2DA"
+ Name 47 "samp2DR"
+ Name 55 "samp2DS"
+ Name 68 "io"
+ Name 72 "Sca"
+ Name 79 "i"
+ Name 87 "Isca"
+ Name 99 "uo"
+ Name 103 "Usca"
+ Name 114 "a"
+ Name 118 "Scas"
+ Name 124 "f"
+ Name 133 "c"
+ Name 154 "a1"
+ Name 157 "m43"
+ Name 160 "b"
+ Name 167 "sampC"
+ Name 173 "gl_ClipDistance"
+ Name 183 "b"
+ Name 184 "fflat"
+ Name 185 "fsmooth"
+ Name 186 "fnop"
+ Name 193 "bounds"
+ Name 194 "s2D"
+ Name 195 "s2DR"
+ Name 199 "s2DRS"
+ Name 203 "s1D"
+ Name 204 "s2DS"
+ Decorate 21(samp2D) DescriptorSet 0
+ Decorate 37(samp2DA) DescriptorSet 0
+ Decorate 47(samp2DR) DescriptorSet 0
+ Decorate 55(samp2DS) DescriptorSet 0
+ Decorate 72(Sca) DescriptorSet 0
+ Decorate 87(Isca) DescriptorSet 0
+ Decorate 103(Usca) DescriptorSet 0
+ Decorate 118(Scas) DescriptorSet 0
+ Decorate 167(sampC) DescriptorSet 0
+ Decorate 173(gl_ClipDistance) BuiltIn ClipDistance
+ Decorate 184(fflat) Flat
+ Decorate 186(fnop) NoPerspective
+ Decorate 193(bounds) DescriptorSet 0
+ Decorate 193(bounds) Binding 0
+ Decorate 194(s2D) DescriptorSet 0
+ Decorate 195(s2DR) DescriptorSet 0
+ Decorate 199(s2DRS) DescriptorSet 0
+ Decorate 203(s1D) DescriptorSet 0
+ Decorate 204(s2DS) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 14: TypeFloat 32
+ 15: TypeVector 14(float) 4
+ 16: TypePointer Output 15(fvec4)
+ 17(o): 16(ptr) Variable Output
+ 18: TypeImage 14(float) 2D sampled format:Unknown
+ 19: TypeSampledImage 18
+ 20: TypePointer UniformConstant 19
+ 21(samp2D): 20(ptr) Variable UniformConstant
+ 23: TypeVector 14(float) 2
+ 24: 14(float) Constant 1050253722
+ 25: 23(fvec2) ConstantComposite 24 24
+ 26: TypeInt 32 1
+ 27: TypeVector 26(int) 2
+ 28: 26(int) Constant 1
+ 29: 27(ivec2) ConstantComposite 28 28
+ 30: 26(int) Constant 0
+ 34: TypeImage 14(float) 2D array sampled format:Unknown
+ 35: TypeSampledImage 34
+ 36: TypePointer UniformConstant 35
+ 37(samp2DA): 36(ptr) Variable UniformConstant
+ 39: TypeVector 14(float) 3
+ 40: 39(fvec3) ConstantComposite 24 24 24
+ 44: TypeImage 14(float) Rect sampled format:Unknown
+ 45: TypeSampledImage 44
+ 46: TypePointer UniformConstant 45
+ 47(samp2DR): 46(ptr) Variable UniformConstant
+ 52: TypeImage 14(float) 2D depth sampled format:Unknown
+ 53: TypeSampledImage 52
+ 54: TypePointer UniformConstant 53
+ 55(samp2DS): 54(ptr) Variable UniformConstant
+ 57: 14(float) Constant 1067869798
+ 62: 26(int) Constant 2
+ 66: TypeVector 26(int) 3
+ 67: TypePointer Output 66(ivec3)
+ 68(io): 67(ptr) Variable Output
+ 69: TypeImage 14(float) Cube array sampled format:Unknown
+ 70: TypeSampledImage 69
+ 71: TypePointer UniformConstant 70
+ 72(Sca): 71(ptr) Variable UniformConstant
+ 74: 26(int) Constant 3
+ 78: TypePointer Input 15(fvec4)
+ 79(i): 78(ptr) Variable Input
+ 84: TypeImage 26(int) Cube array sampled format:Unknown
+ 85: TypeSampledImage 84
+ 86: TypePointer UniformConstant 85
+ 87(Isca): 86(ptr) Variable UniformConstant
+ 90: 14(float) Constant 1060320051
+ 91: TypeVector 26(int) 4
+ 96: TypeInt 32 0
+ 97: TypeVector 96(int) 4
+ 98: TypePointer Output 97(ivec4)
+ 99(uo): 98(ptr) Variable Output
+ 100: TypeImage 96(int) Cube array sampled format:Unknown
+ 101: TypeSampledImage 100
+ 102: TypePointer UniformConstant 101
+ 103(Usca): 102(ptr) Variable UniformConstant
+ 109: 14(float) Constant 1071225242
+ 113: TypePointer Private 39(fvec3)
+ 114(a): 113(ptr) Variable Private
+ 115: TypeImage 14(float) Cube depth array sampled format:Unknown
+ 116: TypeSampledImage 115
+ 117: TypePointer UniformConstant 116
+ 118(Scas): 117(ptr) Variable UniformConstant
+ 123: TypePointer Function 14(float)
+ 127: 96(int) Constant 1
+ 128: TypePointer Input 14(float)
+ 132: TypePointer Function 91(ivec4)
+ 136: 14(float) Constant 1036831949
+ 137: 39(fvec3) ConstantComposite 136 136 136
+ 138: 14(float) Constant 1045220557
+ 139: 39(fvec3) ConstantComposite 138 138 138
+ 155: TypeMatrix 39(fvec3) 4
+ 156: TypePointer Function 155
+ 161: 14(float) Constant 1073741824
+ 164: TypeImage 14(float) Cube sampled format:Unknown
+ 165: TypeSampledImage 164
+ 166: TypePointer UniformConstant 165
+ 167(sampC): 166(ptr) Variable UniformConstant
+ 170: 96(int) Constant 4
+ 171: TypeArray 14(float) 170
+ 172: TypePointer Input 171
+173(gl_ClipDistance): 172(ptr) Variable Input
+ 176: TypePointer Output 14(float)
+ 182: TypePointer Private 14(float)
+ 183(b): 182(ptr) Variable Private
+ 184(fflat): 128(ptr) Variable Input
+ 185(fsmooth): 128(ptr) Variable Input
+ 186(fnop): 128(ptr) Variable Input
+ 187: 96(int) Constant 3
+ 188: TypeArray 26(int) 187
+ 189: 26(int) Constant 10
+ 190: 26(int) Constant 23
+ 191: 26(int) Constant 32
+ 192: 188 ConstantComposite 189 190 191
+ 193(bounds): 20(ptr) Variable UniformConstant
+ 194(s2D): 20(ptr) Variable UniformConstant
+ 195(s2DR): 46(ptr) Variable UniformConstant
+ 196: TypeImage 14(float) Rect depth sampled format:Unknown
+ 197: TypeSampledImage 196
+ 198: TypePointer UniformConstant 197
+ 199(s2DRS): 198(ptr) Variable UniformConstant
+ 200: TypeImage 14(float) 1D sampled format:Unknown
+ 201: TypeSampledImage 200
+ 202: TypePointer UniformConstant 201
+ 203(s1D): 202(ptr) Variable UniformConstant
+ 204(s2DS): 54(ptr) Variable UniformConstant
+ 4(main): 2 Function None 3
+ 5: Label
+ 168: 165 Load 167(sampC)
+ 169: 15(fvec4) ImageGather 168 139 30
+ Store 17(o) 169
+ 174: 128(ptr) AccessChain 173(gl_ClipDistance) 74
+ 175: 14(float) Load 174
+ 177: 176(ptr) AccessChain 17(o) 127
+ Store 177 175
+ 178: 2 FunctionCall 6(bar3()
+ 179: 2 FunctionCall 8(bar4()
+ 180: 2 FunctionCall 10(bar5()
+ 181: 2 FunctionCall 12(bar6()
+ Return
+ FunctionEnd
+ 6(bar3(): 2 Function None 3
+ 7: Label
+ 22: 19 Load 21(samp2D)
+ 31: 15(fvec4) ImageGather 22 25 30 ConstOffset 29
+ 32: 15(fvec4) Load 17(o)
+ 33: 15(fvec4) FAdd 32 31
+ Store 17(o) 33
+ 38: 35 Load 37(samp2DA)
+ 41: 15(fvec4) ImageGather 38 40 30 ConstOffset 29
+ 42: 15(fvec4) Load 17(o)
+ 43: 15(fvec4) FAdd 42 41
+ Store 17(o) 43
+ Return
+ FunctionEnd
+ 8(bar4(): 2 Function None 3
+ 9: Label
+ 48: 45 Load 47(samp2DR)
+ 49: 15(fvec4) ImageGather 48 25 30 ConstOffset 29
+ 50: 15(fvec4) Load 17(o)
+ 51: 15(fvec4) FAdd 50 49
+ Store 17(o) 51
+ 56: 53 Load 55(samp2DS)
+ 58: 15(fvec4) ImageDrefGather 56 25 57 ConstOffset 29
+ 59: 15(fvec4) Load 17(o)
+ 60: 15(fvec4) FAdd 59 58
+ Store 17(o) 60
+ 61: 19 Load 21(samp2D)
+ 63: 15(fvec4) ImageGather 61 25 62 ConstOffset 29
+ 64: 15(fvec4) Load 17(o)
+ 65: 15(fvec4) FAdd 64 63
+ Store 17(o) 65
+ Return
+ FunctionEnd
+ 10(bar5(): 2 Function None 3
+ 11: Label
+ 124(f): 123(ptr) Variable Function
+ 133(c): 132(ptr) Variable Function
+ 73: 70 Load 72(Sca)
+ 75: 69 Image 73
+ 76: 66(ivec3) ImageQuerySizeLod 75 74
+ Store 68(io) 76
+ 77: 70 Load 72(Sca)
+ 80: 15(fvec4) Load 79(i)
+ 81: 15(fvec4) ImageSampleImplicitLod 77 80
+ 82: 15(fvec4) Load 17(o)
+ 83: 15(fvec4) FAdd 82 81
+ Store 17(o) 83
+ 88: 85 Load 87(Isca)
+ 89: 15(fvec4) Load 79(i)
+ 92: 91(ivec4) ImageSampleImplicitLod 88 89 Bias 90
+ 93: 66(ivec3) VectorShuffle 92 92 0 1 2
+ 94: 66(ivec3) Load 68(io)
+ 95: 66(ivec3) IAdd 94 93
+ Store 68(io) 95
+ 104: 101 Load 103(Usca)
+ 105: 15(fvec4) Load 79(i)
+ 106: 97(ivec4) ImageSampleImplicitLod 104 105
+ Store 99(uo) 106
+ 107: 70 Load 72(Sca)
+ 108: 15(fvec4) Load 79(i)
+ 110: 15(fvec4) ImageSampleExplicitLod 107 108 Lod 109
+ 111: 15(fvec4) Load 17(o)
+ 112: 15(fvec4) FAdd 111 110
+ Store 17(o) 112
+ 119: 116 Load 118(Scas)
+ 120: 115 Image 119
+ 121: 66(ivec3) ImageQuerySizeLod 120 74
+ 122: 39(fvec3) ConvertSToF 121
+ Store 114(a) 122
+ 125: 116 Load 118(Scas)
+ 126: 15(fvec4) Load 79(i)
+ 129: 128(ptr) AccessChain 79(i) 127
+ 130: 14(float) Load 129
+ 131: 14(float) ImageSampleDrefImplicitLod 125 126 130
+ Store 124(f) 131
+ 134: 85 Load 87(Isca)
+ 135: 15(fvec4) Load 79(i)
+ 140: 91(ivec4) ImageSampleExplicitLod 134 135 Grad 137 139
+ Store 133(c) 140
+ 141: 39(fvec3) Load 114(a)
+ 142: 14(float) Load 124(f)
+ 143: 91(ivec4) Load 133(c)
+ 144: 15(fvec4) ConvertSToF 143
+ 145: 15(fvec4) CompositeConstruct 142 142 142 142
+ 146: 15(fvec4) FAdd 145 144
+ 147: 14(float) CompositeExtract 141 0
+ 148: 14(float) CompositeExtract 141 1
+ 149: 14(float) CompositeExtract 141 2
+ 150: 14(float) CompositeExtract 146 0
+ 151: 15(fvec4) CompositeConstruct 147 148 149 150
+ 152: 15(fvec4) Load 17(o)
+ 153: 15(fvec4) FAdd 152 151
+ Store 17(o) 153
+ Return
+ FunctionEnd
+ 12(bar6(): 2 Function None 3
+ 13: Label
+ 154(a1): 123(ptr) Variable Function
+ 157(m43): 156(ptr) Variable Function
+ 160(b): 123(ptr) Variable Function
+ 158: 123(ptr) AccessChain 157(m43) 74 127
+ 159: 14(float) Load 158
+ Store 154(a1) 159
+ 162: 14(float) Load 154(a1)
+ 163: 14(float) FMul 161 162
+ Store 160(b) 163
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.140.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.140.frag.out
new file mode 100755
index 00000000000..f302478c532
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.140.frag.out
@@ -0,0 +1,181 @@
+spv.140.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 101
+
+ Capability Shader
+ Capability ClipDistance
+ Capability SampledRect
+ Capability SampledBuffer
+ Capability ImageQuery
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 16 28 33 43
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 140
+ Name 4 "main"
+ Name 8 "foo("
+ Name 11 "i1"
+ Name 16 "gl_FrontFacing"
+ Name 24 "i2"
+ Name 28 "o"
+ Name 33 "gl_ClipDistance"
+ Name 43 "k"
+ Name 55 "sampR"
+ Name 63 "sampB"
+ Name 87 "samp2Da"
+ Name 92 "bn"
+ MemberName 92(bn) 0 "matra"
+ MemberName 92(bn) 1 "matca"
+ MemberName 92(bn) 2 "matr"
+ MemberName 92(bn) 3 "matc"
+ MemberName 92(bn) 4 "matrdef"
+ Name 94 ""
+ Name 97 "bi"
+ MemberName 97(bi) 0 "v"
+ Name 100 "bname"
+ Decorate 16(gl_FrontFacing) BuiltIn FrontFacing
+ Decorate 33(gl_ClipDistance) BuiltIn ClipDistance
+ Decorate 55(sampR) DescriptorSet 0
+ Decorate 63(sampB) DescriptorSet 0
+ Decorate 87(samp2Da) DescriptorSet 0
+ Decorate 90 ArrayStride 64
+ Decorate 91 ArrayStride 64
+ MemberDecorate 92(bn) 0 RowMajor
+ MemberDecorate 92(bn) 0 Offset 0
+ MemberDecorate 92(bn) 0 MatrixStride 16
+ MemberDecorate 92(bn) 1 ColMajor
+ MemberDecorate 92(bn) 1 Offset 256
+ MemberDecorate 92(bn) 1 MatrixStride 16
+ MemberDecorate 92(bn) 2 RowMajor
+ MemberDecorate 92(bn) 2 Offset 512
+ MemberDecorate 92(bn) 2 MatrixStride 16
+ MemberDecorate 92(bn) 3 ColMajor
+ MemberDecorate 92(bn) 3 Offset 576
+ MemberDecorate 92(bn) 3 MatrixStride 16
+ MemberDecorate 92(bn) 4 RowMajor
+ MemberDecorate 92(bn) 4 Offset 640
+ MemberDecorate 92(bn) 4 MatrixStride 16
+ Decorate 92(bn) Block
+ Decorate 94 DescriptorSet 0
+ Decorate 96 ArrayStride 16
+ MemberDecorate 97(bi) 0 Offset 0
+ Decorate 97(bi) Block
+ Decorate 100(bname) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeFunction 6(float)
+ 10: TypePointer Private 6(float)
+ 11(i1): 10(ptr) Variable Private
+ 12: TypePointer Function 6(float)
+ 14: TypeBool
+ 15: TypePointer Input 14(bool)
+16(gl_FrontFacing): 15(ptr) Variable Input
+ 20: 6(float) Constant 3221225472
+ 22: 6(float) Constant 1073741824
+ 24(i2): 10(ptr) Variable Private
+ 25: 6(float) Constant 1120665600
+ 26: TypeVector 6(float) 4
+ 27: TypePointer Output 26(fvec4)
+ 28(o): 27(ptr) Variable Output
+ 29: TypeInt 32 0
+ 30: 29(int) Constant 5
+ 31: TypeArray 6(float) 30
+ 32: TypePointer Input 31
+33(gl_ClipDistance): 32(ptr) Variable Input
+ 34: TypeInt 32 1
+ 35: 34(int) Constant 2
+ 36: TypePointer Input 6(float)
+ 39: 29(int) Constant 1
+ 40: TypePointer Output 6(float)
+ 42: TypePointer Input 26(fvec4)
+ 43(k): 42(ptr) Variable Input
+ 45: TypeVector 34(int) 4
+ 50: 29(int) Constant 2
+ 52: TypeImage 6(float) Rect sampled format:Unknown
+ 53: TypeSampledImage 52
+ 54: TypePointer UniformConstant 53
+ 55(sampR): 54(ptr) Variable UniformConstant
+ 58: TypeVector 34(int) 2
+ 60: TypeImage 34(int) Buffer sampled format:Unknown
+ 61: TypeSampledImage 60
+ 62: TypePointer UniformConstant 61
+ 63(sampB): 62(ptr) Variable UniformConstant
+ 69: TypeVector 6(float) 2
+ 72: 6(float) Constant 1120403456
+ 74: 29(int) Constant 3
+ 83: TypeImage 6(float) 2D sampled format:Unknown
+ 84: TypeSampledImage 83
+ 85: TypeArray 84 74
+ 86: TypePointer UniformConstant 85
+ 87(samp2Da): 86(ptr) Variable UniformConstant
+ 88: TypeMatrix 26(fvec4) 4
+ 89: 29(int) Constant 4
+ 90: TypeArray 88 89
+ 91: TypeArray 88 89
+ 92(bn): TypeStruct 90 91 88 88 88
+ 93: TypePointer Uniform 92(bn)
+ 94: 93(ptr) Variable Uniform
+ 95: TypeVector 6(float) 3
+ 96: TypeArray 95(fvec3) 50
+ 97(bi): TypeStruct 96
+ 98: TypeArray 97(bi) 89
+ 99: TypePointer Uniform 98
+ 100(bname): 99(ptr) Variable Uniform
+ 4(main): 2 Function None 3
+ 5: Label
+ 13: 12(ptr) Variable Function
+ 17: 14(bool) Load 16(gl_FrontFacing)
+ SelectionMerge 19 None
+ BranchConditional 17 18 21
+ 18: Label
+ Store 13 20
+ Branch 19
+ 21: Label
+ Store 13 22
+ Branch 19
+ 19: Label
+ 23: 6(float) Load 13
+ Store 11(i1) 23
+ Store 24(i2) 25
+ 37: 36(ptr) AccessChain 33(gl_ClipDistance) 35
+ 38: 6(float) Load 37
+ 41: 40(ptr) AccessChain 28(o) 39
+ Store 41 38
+ 44: 26(fvec4) Load 43(k)
+ 46: 45(ivec4) ConvertFToS 44
+ 47: 34(int) CompositeExtract 46 0
+ 48: 36(ptr) AccessChain 33(gl_ClipDistance) 47
+ 49: 6(float) Load 48
+ 51: 40(ptr) AccessChain 28(o) 50
+ Store 51 49
+ 56: 53 Load 55(sampR)
+ 57: 52 Image 56
+ 59: 58(ivec2) ImageQuerySize 57
+ 64: 61 Load 63(sampB)
+ 65: 60 Image 64
+ 66: 34(int) ImageQuerySize 65
+ 67: 58(ivec2) CompositeConstruct 66 66
+ 68: 58(ivec2) IAdd 59 67
+ 70: 69(fvec2) ConvertSToF 68
+ 71: 6(float) CompositeExtract 70 0
+ 73: 6(float) FDiv 71 72
+ 75: 40(ptr) AccessChain 28(o) 74
+ Store 75 73
+ 76: 6(float) FunctionCall 8(foo()
+ 77: 40(ptr) AccessChain 28(o) 50
+ Store 77 76
+ Return
+ FunctionEnd
+ 8(foo(): 6(float) Function None 7
+ 9: Label
+ 78: 6(float) Load 11(i1)
+ 79: 6(float) Load 24(i2)
+ 80: 6(float) FAdd 78 79
+ ReturnValue 80
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.150.geom.out b/chromium/third_party/glslang/src/Test/baseResults/spv.150.geom.out
new file mode 100755
index 00000000000..8b021ff91d6
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.150.geom.out
@@ -0,0 +1,149 @@
+spv.150.geom
+
+Linked geometry stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 71
+
+ Capability Geometry
+ Capability GeometryPointSize
+ Capability GeometryStreams
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Geometry 4 "main" 10 18 29 33 47 49 51 70
+ ExecutionMode 4 InputTrianglesAdjacency
+ ExecutionMode 4 Invocations 1
+ ExecutionMode 4 OutputTriangleStrip
+ ExecutionMode 4 OutputVertices 30
+ Source GLSL 150
+ Name 4 "main"
+ Name 8 "fromVertex"
+ MemberName 8(fromVertex) 0 "color"
+ Name 10 ""
+ Name 13 "fromVertex"
+ MemberName 13(fromVertex) 0 "color"
+ Name 18 "fromV"
+ Name 27 "gl_PerVertex"
+ MemberName 27(gl_PerVertex) 0 "gl_Position"
+ MemberName 27(gl_PerVertex) 1 "gl_PointSize"
+ MemberName 27(gl_PerVertex) 2 "gl_ClipDistance"
+ Name 29 ""
+ Name 30 "gl_PerVertex"
+ MemberName 30(gl_PerVertex) 0 "gl_Position"
+ MemberName 30(gl_PerVertex) 1 "gl_PointSize"
+ MemberName 30(gl_PerVertex) 2 "gl_ClipDistance"
+ Name 33 "gl_in"
+ Name 47 "gl_PrimitiveID"
+ Name 49 "gl_PrimitiveIDIn"
+ Name 51 "gl_Layer"
+ Name 68 "toFragment"
+ MemberName 68(toFragment) 0 "color"
+ Name 70 "toF"
+ Decorate 8(fromVertex) Block
+ Decorate 8(fromVertex) Stream 3
+ Decorate 10 Stream 3
+ Decorate 13(fromVertex) Block
+ MemberDecorate 27(gl_PerVertex) 0 BuiltIn Position
+ MemberDecorate 27(gl_PerVertex) 1 BuiltIn PointSize
+ MemberDecorate 27(gl_PerVertex) 2 BuiltIn ClipDistance
+ Decorate 27(gl_PerVertex) Block
+ Decorate 27(gl_PerVertex) Stream 0
+ Decorate 29 Stream 0
+ MemberDecorate 30(gl_PerVertex) 0 BuiltIn Position
+ MemberDecorate 30(gl_PerVertex) 1 BuiltIn PointSize
+ MemberDecorate 30(gl_PerVertex) 2 BuiltIn ClipDistance
+ Decorate 30(gl_PerVertex) Block
+ Decorate 47(gl_PrimitiveID) Stream 0
+ Decorate 47(gl_PrimitiveID) BuiltIn PrimitiveId
+ Decorate 49(gl_PrimitiveIDIn) BuiltIn PrimitiveId
+ Decorate 51(gl_Layer) Stream 0
+ Decorate 51(gl_Layer) BuiltIn Layer
+ Decorate 68(toFragment) Block
+ Decorate 68(toFragment) Stream 3
+ Decorate 70(toF) Stream 3
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 3
+ 8(fromVertex): TypeStruct 7(fvec3)
+ 9: TypePointer Output 8(fromVertex)
+ 10: 9(ptr) Variable Output
+ 11: TypeInt 32 1
+ 12: 11(int) Constant 0
+ 13(fromVertex): TypeStruct 7(fvec3)
+ 14: TypeInt 32 0
+ 15: 14(int) Constant 6
+ 16: TypeArray 13(fromVertex) 15
+ 17: TypePointer Input 16
+ 18(fromV): 17(ptr) Variable Input
+ 19: TypePointer Input 7(fvec3)
+ 22: TypePointer Output 7(fvec3)
+ 24: TypeVector 6(float) 4
+ 25: 14(int) Constant 1
+ 26: TypeArray 6(float) 25
+27(gl_PerVertex): TypeStruct 24(fvec4) 6(float) 26
+ 28: TypePointer Output 27(gl_PerVertex)
+ 29: 28(ptr) Variable Output
+30(gl_PerVertex): TypeStruct 24(fvec4) 6(float) 26
+ 31: TypeArray 30(gl_PerVertex) 15
+ 32: TypePointer Input 31
+ 33(gl_in): 32(ptr) Variable Input
+ 34: TypePointer Input 24(fvec4)
+ 37: TypePointer Output 24(fvec4)
+ 39: 11(int) Constant 1
+ 40: 11(int) Constant 3
+ 41: TypePointer Input 6(float)
+ 44: TypePointer Output 6(float)
+ 46: TypePointer Output 11(int)
+47(gl_PrimitiveID): 46(ptr) Variable Output
+ 48: TypePointer Input 11(int)
+49(gl_PrimitiveIDIn): 48(ptr) Variable Input
+ 51(gl_Layer): 46(ptr) Variable Output
+ 52: 11(int) Constant 2
+ 53: 6(float) Constant 1073741824
+ 68(toFragment): TypeStruct 7(fvec3)
+ 69: TypePointer Output 68(toFragment)
+ 70(toF): 69(ptr) Variable Output
+ 4(main): 2 Function None 3
+ 5: Label
+ 20: 19(ptr) AccessChain 18(fromV) 12 12
+ 21: 7(fvec3) Load 20
+ 23: 22(ptr) AccessChain 10 12
+ Store 23 21
+ 35: 34(ptr) AccessChain 33(gl_in) 12 12
+ 36: 24(fvec4) Load 35
+ 38: 37(ptr) AccessChain 29 12
+ Store 38 36
+ 42: 41(ptr) AccessChain 33(gl_in) 40 39
+ 43: 6(float) Load 42
+ 45: 44(ptr) AccessChain 29 39
+ Store 45 43
+ 50: 11(int) Load 49(gl_PrimitiveIDIn)
+ Store 47(gl_PrimitiveID) 50
+ Store 51(gl_Layer) 52
+ EmitVertex
+ 54: 19(ptr) AccessChain 18(fromV) 12 12
+ 55: 7(fvec3) Load 54
+ 56: 7(fvec3) VectorTimesScalar 55 53
+ 57: 22(ptr) AccessChain 10 12
+ Store 57 56
+ 58: 34(ptr) AccessChain 33(gl_in) 12 12
+ 59: 24(fvec4) Load 58
+ 60: 24(fvec4) VectorTimesScalar 59 53
+ 61: 37(ptr) AccessChain 29 12
+ Store 61 60
+ 62: 41(ptr) AccessChain 33(gl_in) 40 39
+ 63: 6(float) Load 62
+ 64: 6(float) FMul 53 63
+ 65: 44(ptr) AccessChain 29 39
+ Store 65 64
+ 66: 11(int) Load 49(gl_PrimitiveIDIn)
+ 67: 11(int) IAdd 66 39
+ Store 47(gl_PrimitiveID) 67
+ Store 51(gl_Layer) 40
+ EmitVertex
+ EndPrimitive
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.150.vert.out b/chromium/third_party/glslang/src/Test/baseResults/spv.150.vert.out
new file mode 100755
index 00000000000..5ccf1a812b6
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.150.vert.out
@@ -0,0 +1,107 @@
+spv.150.vert
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 63
+
+ Capability Shader
+ Capability ClipDistance
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Vertex 4 "main" 13 17 23 38 62
+ Source GLSL 150
+ Name 4 "main"
+ Name 11 "gl_PerVertex"
+ MemberName 11(gl_PerVertex) 0 "gl_Position"
+ MemberName 11(gl_PerVertex) 1 "gl_PointSize"
+ MemberName 11(gl_PerVertex) 2 "gl_ClipDistance"
+ Name 13 ""
+ Name 17 "iv4"
+ Name 23 "ps"
+ Name 34 "s1"
+ MemberName 34(s1) 0 "a"
+ MemberName 34(s1) 1 "a2"
+ MemberName 34(s1) 2 "b"
+ Name 36 "s2"
+ MemberName 36(s2) 0 "c"
+ MemberName 36(s2) 1 "d"
+ Name 38 "s2out"
+ Name 40 "i"
+ Name 47 "s2D"
+ Name 62 "ui"
+ MemberDecorate 11(gl_PerVertex) 0 Invariant
+ MemberDecorate 11(gl_PerVertex) 0 BuiltIn Position
+ MemberDecorate 11(gl_PerVertex) 1 BuiltIn PointSize
+ MemberDecorate 11(gl_PerVertex) 2 BuiltIn ClipDistance
+ Decorate 11(gl_PerVertex) Block
+ Decorate 47(s2D) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypeInt 32 0
+ 9: 8(int) Constant 4
+ 10: TypeArray 6(float) 9
+11(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 10
+ 12: TypePointer Output 11(gl_PerVertex)
+ 13: 12(ptr) Variable Output
+ 14: TypeInt 32 1
+ 15: 14(int) Constant 0
+ 16: TypePointer Input 7(fvec4)
+ 17(iv4): 16(ptr) Variable Input
+ 19: TypePointer Output 7(fvec4)
+ 21: 14(int) Constant 1
+ 22: TypePointer Input 6(float)
+ 23(ps): 22(ptr) Variable Input
+ 25: TypePointer Output 6(float)
+ 27: 14(int) Constant 2
+ 28: 8(int) Constant 0
+ 32: 8(int) Constant 3
+ 33: TypeArray 7(fvec4) 32
+ 34(s1): TypeStruct 14(int) 14(int) 33
+ 35: TypeArray 34(s1) 9
+ 36(s2): TypeStruct 14(int) 35
+ 37: TypePointer Output 36(s2)
+ 38(s2out): 37(ptr) Variable Output
+ 39: TypePointer Function 14(int)
+ 44: TypeImage 6(float) 2D sampled format:Unknown
+ 45: TypeSampledImage 44
+ 46: TypePointer UniformConstant 45
+ 47(s2D): 46(ptr) Variable UniformConstant
+ 49: TypeVector 6(float) 2
+ 50: 6(float) Constant 1056964608
+ 51: 49(fvec2) ConstantComposite 50 50
+ 52: 6(float) Constant 0
+ 55: TypeVector 6(float) 3
+ 56: 55(fvec3) ConstantComposite 50 50 50
+ 59: 6(float) Constant 1078774989
+ 61: TypePointer Input 14(int)
+ 62(ui): 61(ptr) Variable Input
+ 4(main): 2 Function None 3
+ 5: Label
+ 40(i): 39(ptr) Variable Function
+ 18: 7(fvec4) Load 17(iv4)
+ 20: 19(ptr) AccessChain 13 15
+ Store 20 18
+ 24: 6(float) Load 23(ps)
+ 26: 25(ptr) AccessChain 13 21
+ Store 26 24
+ 29: 22(ptr) AccessChain 17(iv4) 28
+ 30: 6(float) Load 29
+ 31: 25(ptr) AccessChain 13 27 27
+ Store 31 30
+ 41: 14(int) Load 40(i)
+ 42: 6(float) Load 23(ps)
+ 43: 25(ptr) AccessChain 38(s2out) 21 41 27 27 32
+ Store 43 42
+ 48: 45 Load 47(s2D)
+ 53: 7(fvec4) ImageSampleExplicitLod 48 51 Lod 52
+ 54: 45 Load 47(s2D)
+ 57: 7(fvec4) ImageSampleProjExplicitLod 54 56 Lod 52
+ 58: 45 Load 47(s2D)
+ 60: 7(fvec4) ImageSampleExplicitLod 58 51 Lod 59
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.300BuiltIns.vert.out b/chromium/third_party/glslang/src/Test/baseResults/spv.300BuiltIns.vert.out
new file mode 100755
index 00000000000..ab07f4a86ad
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.300BuiltIns.vert.out
@@ -0,0 +1,79 @@
+spv.300BuiltIns.vert
+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 42
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Vertex 4 "main" 10 14 21 34
+ Source ESSL 310
+ Name 4 "main"
+ Name 8 "gl_PerVertex"
+ MemberName 8(gl_PerVertex) 0 "gl_Position"
+ MemberName 8(gl_PerVertex) 1 "gl_PointSize"
+ Name 10 ""
+ Name 14 "ps"
+ Name 21 "gl_VertexIndex"
+ Name 34 "gl_InstanceIndex"
+ MemberDecorate 8(gl_PerVertex) 0 Invariant
+ MemberDecorate 8(gl_PerVertex) 0 BuiltIn Position
+ MemberDecorate 8(gl_PerVertex) 1 BuiltIn PointSize
+ Decorate 8(gl_PerVertex) Block
+ Decorate 14(ps) RelaxedPrecision
+ Decorate 15 RelaxedPrecision
+ Decorate 21(gl_VertexIndex) BuiltIn VertexIndex
+ Decorate 30 RelaxedPrecision
+ Decorate 34(gl_InstanceIndex) BuiltIn InstanceIndex
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8(gl_PerVertex): TypeStruct 7(fvec4) 6(float)
+ 9: TypePointer Output 8(gl_PerVertex)
+ 10: 9(ptr) Variable Output
+ 11: TypeInt 32 1
+ 12: 11(int) Constant 0
+ 13: TypePointer Input 6(float)
+ 14(ps): 13(ptr) Variable Input
+ 17: TypePointer Output 7(fvec4)
+ 19: 11(int) Constant 4
+ 20: TypePointer Input 11(int)
+21(gl_VertexIndex): 20(ptr) Variable Input
+ 29: 11(int) Constant 1
+ 31: TypePointer Output 6(float)
+ 33: 11(int) Constant 5
+34(gl_InstanceIndex): 20(ptr) Variable Input
+ 4(main): 2 Function None 3
+ 5: Label
+ 15: 6(float) Load 14(ps)
+ 16: 7(fvec4) CompositeConstruct 15 15 15 15
+ 18: 17(ptr) AccessChain 10 12
+ Store 18 16
+ 22: 11(int) Load 21(gl_VertexIndex)
+ 23: 11(int) ISub 19 22
+ 24: 6(float) ConvertSToF 23
+ 25: 17(ptr) AccessChain 10 12
+ 26: 7(fvec4) Load 25
+ 27: 7(fvec4) VectorTimesScalar 26 24
+ 28: 17(ptr) AccessChain 10 12
+ Store 28 27
+ 30: 6(float) Load 14(ps)
+ 32: 31(ptr) AccessChain 10 29
+ Store 32 30
+ 35: 11(int) Load 34(gl_InstanceIndex)
+ 36: 11(int) ISub 33 35
+ 37: 6(float) ConvertSToF 36
+ 38: 31(ptr) AccessChain 10 29
+ 39: 6(float) Load 38
+ 40: 6(float) FMul 39 37
+ 41: 31(ptr) AccessChain 10 29
+ Store 41 40
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.300layout.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.300layout.frag.out
new file mode 100755
index 00000000000..e340c1b22ae
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.300layout.frag.out
@@ -0,0 +1,79 @@
+spv.300layout.frag
+Warning, version 310 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 37
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 9 11 15 26 29
+ ExecutionMode 4 OriginUpperLeft
+ Source ESSL 310
+ Name 4 "main"
+ Name 9 "c"
+ Name 11 "color"
+ Name 13 "S"
+ MemberName 13(S) 0 "c"
+ MemberName 13(S) 1 "f"
+ Name 15 "s"
+ Name 26 "p"
+ Name 29 "pos"
+ Decorate 9(c) RelaxedPrecision
+ Decorate 9(c) Location 7
+ Decorate 11(color) RelaxedPrecision
+ Decorate 12 RelaxedPrecision
+ MemberDecorate 13(S) 0 RelaxedPrecision
+ MemberDecorate 13(S) 1 RelaxedPrecision
+ Decorate 19 RelaxedPrecision
+ Decorate 20 RelaxedPrecision
+ Decorate 26(p) RelaxedPrecision
+ Decorate 26(p) Location 3
+ Decorate 29(pos) RelaxedPrecision
+ Decorate 30 RelaxedPrecision
+ Decorate 33 RelaxedPrecision
+ Decorate 34 RelaxedPrecision
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 3
+ 8: TypePointer Output 7(fvec3)
+ 9(c): 8(ptr) Variable Output
+ 10: TypePointer Input 7(fvec3)
+ 11(color): 10(ptr) Variable Input
+ 13(S): TypeStruct 7(fvec3) 6(float)
+ 14: TypePointer Input 13(S)
+ 15(s): 14(ptr) Variable Input
+ 16: TypeInt 32 1
+ 17: 16(int) Constant 0
+ 21: TypeVector 6(float) 4
+ 22: TypeInt 32 0
+ 23: 22(int) Constant 2
+ 24: TypeArray 21(fvec4) 23
+ 25: TypePointer Output 24
+ 26(p): 25(ptr) Variable Output
+ 27: 16(int) Constant 1
+ 28: TypePointer Input 21(fvec4)
+ 29(pos): 28(ptr) Variable Input
+ 31: TypePointer Input 6(float)
+ 35: TypePointer Output 21(fvec4)
+ 4(main): 2 Function None 3
+ 5: Label
+ 12: 7(fvec3) Load 11(color)
+ 18: 10(ptr) AccessChain 15(s) 17
+ 19: 7(fvec3) Load 18
+ 20: 7(fvec3) FAdd 12 19
+ Store 9(c) 20
+ 30: 21(fvec4) Load 29(pos)
+ 32: 31(ptr) AccessChain 15(s) 27
+ 33: 6(float) Load 32
+ 34: 21(fvec4) VectorTimesScalar 30 33
+ 36: 35(ptr) AccessChain 26(p) 27
+ Store 36 34
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.300layout.vert.out b/chromium/third_party/glslang/src/Test/baseResults/spv.300layout.vert.out
new file mode 100644
index 00000000000..859794a3287
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.300layout.vert.out
@@ -0,0 +1,254 @@
+spv.300layout.vert
+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 163
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Vertex 4 "main" 9 11 98 100 108 114 120 128
+ Source ESSL 310
+ Name 4 "main"
+ Name 9 "pos"
+ Name 11 "p"
+ Name 17 "Transform"
+ MemberName 17(Transform) 0 "M1"
+ MemberName 17(Transform) 1 "M2"
+ MemberName 17(Transform) 2 "N1"
+ MemberName 17(Transform) 3 "iuin"
+ Name 19 "tblock"
+ Name 45 "T3"
+ MemberName 45(T3) 0 "M3"
+ MemberName 45(T3) 1 "M4"
+ MemberName 45(T3) 2 "N2"
+ MemberName 45(T3) 3 "uv3a"
+ Name 47 ""
+ Name 78 "T2"
+ MemberName 78(T2) 0 "b"
+ MemberName 78(T2) 1 "t2m"
+ Name 80 ""
+ Name 98 "color"
+ Name 100 "c"
+ Name 108 "iout"
+ Name 114 "uiuin"
+ Name 120 "aiv2"
+ Name 126 "S"
+ MemberName 126(S) 0 "c"
+ MemberName 126(S) 1 "f"
+ Name 128 "s"
+ Decorate 11(p) Location 3
+ MemberDecorate 17(Transform) 0 RowMajor
+ MemberDecorate 17(Transform) 0 Offset 0
+ MemberDecorate 17(Transform) 0 MatrixStride 16
+ MemberDecorate 17(Transform) 1 ColMajor
+ MemberDecorate 17(Transform) 1 Offset 64
+ MemberDecorate 17(Transform) 1 MatrixStride 16
+ MemberDecorate 17(Transform) 2 RowMajor
+ MemberDecorate 17(Transform) 2 Offset 128
+ MemberDecorate 17(Transform) 2 MatrixStride 16
+ MemberDecorate 17(Transform) 3 Offset 176
+ Decorate 17(Transform) Block
+ Decorate 19(tblock) DescriptorSet 0
+ Decorate 44 ArrayStride 16
+ MemberDecorate 45(T3) 0 ColMajor
+ MemberDecorate 45(T3) 0 Offset 0
+ MemberDecorate 45(T3) 0 MatrixStride 16
+ MemberDecorate 45(T3) 1 RowMajor
+ MemberDecorate 45(T3) 1 Offset 64
+ MemberDecorate 45(T3) 1 MatrixStride 16
+ MemberDecorate 45(T3) 2 ColMajor
+ MemberDecorate 45(T3) 2 Offset 128
+ MemberDecorate 45(T3) 2 MatrixStride 16
+ MemberDecorate 45(T3) 3 Offset 160
+ Decorate 45(T3) Block
+ Decorate 47 DescriptorSet 0
+ MemberDecorate 78(T2) 0 Offset 0
+ MemberDecorate 78(T2) 1 RowMajor
+ MemberDecorate 78(T2) 1 Offset 16
+ MemberDecorate 78(T2) 1 MatrixStride 16
+ Decorate 78(T2) Block
+ Decorate 80 DescriptorSet 0
+ Decorate 100(c) Location 7
+ Decorate 108(iout) Flat
+ Decorate 120(aiv2) Location 9
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Output 7(fvec4)
+ 9(pos): 8(ptr) Variable Output
+ 10: TypePointer Input 7(fvec4)
+ 11(p): 10(ptr) Variable Input
+ 13: TypeMatrix 7(fvec4) 4
+ 14: TypeVector 6(float) 3
+ 15: TypeMatrix 14(fvec3) 3
+ 16: TypeInt 32 1
+ 17(Transform): TypeStruct 13 13 15 16(int)
+ 18: TypePointer Uniform 17(Transform)
+ 19(tblock): 18(ptr) Variable Uniform
+ 20: 16(int) Constant 0
+ 21: TypePointer Uniform 13
+ 24: 16(int) Constant 1
+ 40: TypeMatrix 14(fvec3) 2
+ 41: TypeInt 32 0
+ 42: TypeVector 41(int) 3
+ 43: 41(int) Constant 4
+ 44: TypeArray 42(ivec3) 43
+ 45(T3): TypeStruct 13 13 40 44
+ 46: TypePointer Uniform 45(T3)
+ 47: 46(ptr) Variable Uniform
+ 78(T2): TypeStruct 41(int) 13
+ 79: TypePointer Uniform 78(T2)
+ 80: 79(ptr) Variable Uniform
+ 97: TypePointer Output 14(fvec3)
+ 98(color): 97(ptr) Variable Output
+ 99: TypePointer Input 14(fvec3)
+ 100(c): 99(ptr) Variable Input
+ 102: 16(int) Constant 2
+ 103: TypePointer Uniform 15
+ 107: TypePointer Output 16(int)
+ 108(iout): 107(ptr) Variable Output
+ 109: 16(int) Constant 3
+ 110: TypePointer Uniform 16(int)
+ 113: TypePointer Input 41(int)
+ 114(uiuin): 113(ptr) Variable Input
+ 118: TypeVector 16(int) 2
+ 119: TypePointer Input 118(ivec2)
+ 120(aiv2): 119(ptr) Variable Input
+ 121: 41(int) Constant 1
+ 122: TypePointer Input 16(int)
+ 126(S): TypeStruct 14(fvec3) 6(float)
+ 127: TypePointer Output 126(S)
+ 128(s): 127(ptr) Variable Output
+ 131: 41(int) Constant 0
+ 132: TypePointer Input 6(float)
+ 135: TypePointer Output 6(float)
+ 137: TypeBool
+ 138: TypePointer Uniform 14(fvec3)
+ 141: 6(float) Constant 1065353216
+ 142: 14(fvec3) ConstantComposite 141 141 141
+ 143: TypeVector 137(bool) 3
+ 149: TypePointer Uniform 42(ivec3)
+ 152: 41(int) Constant 5
+ 153: 42(ivec3) ConstantComposite 152 152 152
+ 4(main): 2 Function None 3
+ 5: Label
+ 12: 7(fvec4) Load 11(p)
+ 22: 21(ptr) AccessChain 19(tblock) 20
+ 23: 13 Load 22
+ 25: 21(ptr) AccessChain 19(tblock) 24
+ 26: 13 Load 25
+ 27: 7(fvec4) CompositeExtract 23 0
+ 28: 7(fvec4) CompositeExtract 26 0
+ 29: 7(fvec4) FAdd 27 28
+ 30: 7(fvec4) CompositeExtract 23 1
+ 31: 7(fvec4) CompositeExtract 26 1
+ 32: 7(fvec4) FAdd 30 31
+ 33: 7(fvec4) CompositeExtract 23 2
+ 34: 7(fvec4) CompositeExtract 26 2
+ 35: 7(fvec4) FAdd 33 34
+ 36: 7(fvec4) CompositeExtract 23 3
+ 37: 7(fvec4) CompositeExtract 26 3
+ 38: 7(fvec4) FAdd 36 37
+ 39: 13 CompositeConstruct 29 32 35 38
+ 48: 21(ptr) AccessChain 47 24
+ 49: 13 Load 48
+ 50: 7(fvec4) CompositeExtract 39 0
+ 51: 7(fvec4) CompositeExtract 49 0
+ 52: 7(fvec4) FAdd 50 51
+ 53: 7(fvec4) CompositeExtract 39 1
+ 54: 7(fvec4) CompositeExtract 49 1
+ 55: 7(fvec4) FAdd 53 54
+ 56: 7(fvec4) CompositeExtract 39 2
+ 57: 7(fvec4) CompositeExtract 49 2
+ 58: 7(fvec4) FAdd 56 57
+ 59: 7(fvec4) CompositeExtract 39 3
+ 60: 7(fvec4) CompositeExtract 49 3
+ 61: 7(fvec4) FAdd 59 60
+ 62: 13 CompositeConstruct 52 55 58 61
+ 63: 21(ptr) AccessChain 47 20
+ 64: 13 Load 63
+ 65: 7(fvec4) CompositeExtract 62 0
+ 66: 7(fvec4) CompositeExtract 64 0
+ 67: 7(fvec4) FAdd 65 66
+ 68: 7(fvec4) CompositeExtract 62 1
+ 69: 7(fvec4) CompositeExtract 64 1
+ 70: 7(fvec4) FAdd 68 69
+ 71: 7(fvec4) CompositeExtract 62 2
+ 72: 7(fvec4) CompositeExtract 64 2
+ 73: 7(fvec4) FAdd 71 72
+ 74: 7(fvec4) CompositeExtract 62 3
+ 75: 7(fvec4) CompositeExtract 64 3
+ 76: 7(fvec4) FAdd 74 75
+ 77: 13 CompositeConstruct 67 70 73 76
+ 81: 21(ptr) AccessChain 80 24
+ 82: 13 Load 81
+ 83: 7(fvec4) CompositeExtract 77 0
+ 84: 7(fvec4) CompositeExtract 82 0
+ 85: 7(fvec4) FAdd 83 84
+ 86: 7(fvec4) CompositeExtract 77 1
+ 87: 7(fvec4) CompositeExtract 82 1
+ 88: 7(fvec4) FAdd 86 87
+ 89: 7(fvec4) CompositeExtract 77 2
+ 90: 7(fvec4) CompositeExtract 82 2
+ 91: 7(fvec4) FAdd 89 90
+ 92: 7(fvec4) CompositeExtract 77 3
+ 93: 7(fvec4) CompositeExtract 82 3
+ 94: 7(fvec4) FAdd 92 93
+ 95: 13 CompositeConstruct 85 88 91 94
+ 96: 7(fvec4) VectorTimesMatrix 12 95
+ Store 9(pos) 96
+ 101: 14(fvec3) Load 100(c)
+ 104: 103(ptr) AccessChain 19(tblock) 102
+ 105: 15 Load 104
+ 106: 14(fvec3) VectorTimesMatrix 101 105
+ Store 98(color) 106
+ 111: 110(ptr) AccessChain 19(tblock) 109
+ 112: 16(int) Load 111
+ 115: 41(int) Load 114(uiuin)
+ 116: 16(int) Bitcast 115
+ 117: 16(int) IAdd 112 116
+ 123: 122(ptr) AccessChain 120(aiv2) 121
+ 124: 16(int) Load 123
+ 125: 16(int) IAdd 117 124
+ Store 108(iout) 125
+ 129: 14(fvec3) Load 100(c)
+ 130: 97(ptr) AccessChain 128(s) 20
+ Store 130 129
+ 133: 132(ptr) AccessChain 11(p) 131
+ 134: 6(float) Load 133
+ 136: 135(ptr) AccessChain 128(s) 24
+ Store 136 134
+ 139: 138(ptr) AccessChain 47 102 24
+ 140: 14(fvec3) Load 139
+ 144: 143(bvec3) FOrdNotEqual 140 142
+ 145: 137(bool) Any 144
+ 146: 137(bool) LogicalNot 145
+ SelectionMerge 148 None
+ BranchConditional 146 147 148
+ 147: Label
+ 150: 149(ptr) AccessChain 47 109 102
+ 151: 42(ivec3) Load 150
+ 154: 143(bvec3) INotEqual 151 153
+ 155: 137(bool) Any 154
+ Branch 148
+ 148: Label
+ 156: 137(bool) Phi 145 5 155 147
+ SelectionMerge 158 None
+ BranchConditional 156 157 158
+ 157: Label
+ 159: 97(ptr) AccessChain 128(s) 20
+ 160: 14(fvec3) Load 159
+ 161: 14(fvec3) CompositeConstruct 141 141 141
+ 162: 14(fvec3) FAdd 160 161
+ Store 159 162
+ Branch 158
+ 158: Label
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.300layoutp.vert.out b/chromium/third_party/glslang/src/Test/baseResults/spv.300layoutp.vert.out
new file mode 100755
index 00000000000..ebad96358f6
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.300layoutp.vert.out
@@ -0,0 +1,206 @@
+spv.300layoutp.vert
+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 115
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Vertex 4 "main" 9 11 50 52 60 72 80
+ Source ESSL 310
+ Name 4 "main"
+ Name 9 "pos"
+ Name 11 "p"
+ Name 17 "Transform"
+ MemberName 17(Transform) 0 "M1"
+ MemberName 17(Transform) 1 "M2"
+ MemberName 17(Transform) 2 "N1"
+ MemberName 17(Transform) 3 "iuin"
+ Name 19 "tblock"
+ Name 33 "T3"
+ MemberName 33(T3) 0 "M3"
+ MemberName 33(T3) 1 "M4"
+ MemberName 33(T3) 2 "N2"
+ MemberName 33(T3) 3 "uv3a"
+ Name 35 ""
+ Name 42 "T2"
+ MemberName 42(T2) 0 "b"
+ MemberName 42(T2) 1 "t2m"
+ Name 44 ""
+ Name 50 "color"
+ Name 52 "c"
+ Name 60 "iout"
+ Name 66 "uiuin"
+ Name 72 "aiv2"
+ Name 78 "S"
+ MemberName 78(S) 0 "c"
+ MemberName 78(S) 1 "f"
+ Name 80 "s"
+ Decorate 11(p) Location 3
+ MemberDecorate 17(Transform) 0 RowMajor
+ MemberDecorate 17(Transform) 0 Offset 0
+ MemberDecorate 17(Transform) 0 MatrixStride 16
+ MemberDecorate 17(Transform) 1 ColMajor
+ MemberDecorate 17(Transform) 1 Offset 64
+ MemberDecorate 17(Transform) 1 MatrixStride 16
+ MemberDecorate 17(Transform) 2 RowMajor
+ MemberDecorate 17(Transform) 2 Offset 128
+ MemberDecorate 17(Transform) 2 MatrixStride 16
+ MemberDecorate 17(Transform) 3 Offset 176
+ Decorate 17(Transform) Block
+ Decorate 19(tblock) DescriptorSet 0
+ Decorate 32 ArrayStride 16
+ MemberDecorate 33(T3) 0 ColMajor
+ MemberDecorate 33(T3) 0 Offset 0
+ MemberDecorate 33(T3) 0 MatrixStride 16
+ MemberDecorate 33(T3) 1 RowMajor
+ MemberDecorate 33(T3) 1 Offset 64
+ MemberDecorate 33(T3) 1 MatrixStride 16
+ MemberDecorate 33(T3) 2 ColMajor
+ MemberDecorate 33(T3) 2 Offset 128
+ MemberDecorate 33(T3) 2 MatrixStride 16
+ MemberDecorate 33(T3) 3 Offset 160
+ Decorate 33(T3) Block
+ Decorate 35 DescriptorSet 0
+ MemberDecorate 42(T2) 0 Offset 0
+ MemberDecorate 42(T2) 1 RowMajor
+ MemberDecorate 42(T2) 1 Offset 16
+ MemberDecorate 42(T2) 1 MatrixStride 16
+ Decorate 42(T2) Block
+ Decorate 44 DescriptorSet 0
+ Decorate 52(c) Location 7
+ Decorate 60(iout) Flat
+ Decorate 72(aiv2) Location 9
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Output 7(fvec4)
+ 9(pos): 8(ptr) Variable Output
+ 10: TypePointer Input 7(fvec4)
+ 11(p): 10(ptr) Variable Input
+ 13: TypeMatrix 7(fvec4) 4
+ 14: TypeVector 6(float) 3
+ 15: TypeMatrix 14(fvec3) 3
+ 16: TypeInt 32 1
+ 17(Transform): TypeStruct 13 13 15 16(int)
+ 18: TypePointer Uniform 17(Transform)
+ 19(tblock): 18(ptr) Variable Uniform
+ 20: 16(int) Constant 0
+ 21: TypePointer Uniform 13
+ 24: 16(int) Constant 1
+ 28: TypeMatrix 14(fvec3) 2
+ 29: TypeInt 32 0
+ 30: TypeVector 29(int) 3
+ 31: 29(int) Constant 4
+ 32: TypeArray 30(ivec3) 31
+ 33(T3): TypeStruct 13 13 28 32
+ 34: TypePointer Uniform 33(T3)
+ 35: 34(ptr) Variable Uniform
+ 42(T2): TypeStruct 29(int) 13
+ 43: TypePointer Uniform 42(T2)
+ 44: 43(ptr) Variable Uniform
+ 49: TypePointer Output 14(fvec3)
+ 50(color): 49(ptr) Variable Output
+ 51: TypePointer Input 14(fvec3)
+ 52(c): 51(ptr) Variable Input
+ 54: 16(int) Constant 2
+ 55: TypePointer Uniform 15
+ 59: TypePointer Output 16(int)
+ 60(iout): 59(ptr) Variable Output
+ 61: 16(int) Constant 3
+ 62: TypePointer Uniform 16(int)
+ 65: TypePointer Private 29(int)
+ 66(uiuin): 65(ptr) Variable Private
+ 70: TypeVector 16(int) 2
+ 71: TypePointer Input 70(ivec2)
+ 72(aiv2): 71(ptr) Variable Input
+ 73: 29(int) Constant 1
+ 74: TypePointer Input 16(int)
+ 78(S): TypeStruct 14(fvec3) 6(float)
+ 79: TypePointer Output 78(S)
+ 80(s): 79(ptr) Variable Output
+ 83: 29(int) Constant 0
+ 84: TypePointer Input 6(float)
+ 87: TypePointer Output 6(float)
+ 89: TypeBool
+ 90: TypePointer Uniform 14(fvec3)
+ 93: 6(float) Constant 1065353216
+ 94: 14(fvec3) ConstantComposite 93 93 93
+ 95: TypeVector 89(bool) 3
+ 101: TypePointer Uniform 30(ivec3)
+ 104: 29(int) Constant 5
+ 105: 30(ivec3) ConstantComposite 104 104 104
+ 4(main): 2 Function None 3
+ 5: Label
+ 12: 7(fvec4) Load 11(p)
+ 22: 21(ptr) AccessChain 19(tblock) 20
+ 23: 13 Load 22
+ 25: 21(ptr) AccessChain 19(tblock) 24
+ 26: 13 Load 25
+ 27: 13 MatrixTimesMatrix 23 26
+ 36: 21(ptr) AccessChain 35 24
+ 37: 13 Load 36
+ 38: 13 MatrixTimesMatrix 27 37
+ 39: 21(ptr) AccessChain 35 20
+ 40: 13 Load 39
+ 41: 13 MatrixTimesMatrix 38 40
+ 45: 21(ptr) AccessChain 44 24
+ 46: 13 Load 45
+ 47: 13 MatrixTimesMatrix 41 46
+ 48: 7(fvec4) VectorTimesMatrix 12 47
+ Store 9(pos) 48
+ 53: 14(fvec3) Load 52(c)
+ 56: 55(ptr) AccessChain 19(tblock) 54
+ 57: 15 Load 56
+ 58: 14(fvec3) VectorTimesMatrix 53 57
+ Store 50(color) 58
+ 63: 62(ptr) AccessChain 19(tblock) 61
+ 64: 16(int) Load 63
+ 67: 29(int) Load 66(uiuin)
+ 68: 16(int) Bitcast 67
+ 69: 16(int) IAdd 64 68
+ 75: 74(ptr) AccessChain 72(aiv2) 73
+ 76: 16(int) Load 75
+ 77: 16(int) IAdd 69 76
+ Store 60(iout) 77
+ 81: 14(fvec3) Load 52(c)
+ 82: 49(ptr) AccessChain 80(s) 20
+ Store 82 81
+ 85: 84(ptr) AccessChain 11(p) 83
+ 86: 6(float) Load 85
+ 88: 87(ptr) AccessChain 80(s) 24
+ Store 88 86
+ 91: 90(ptr) AccessChain 35 54 24
+ 92: 14(fvec3) Load 91
+ 96: 95(bvec3) FOrdNotEqual 92 94
+ 97: 89(bool) Any 96
+ 98: 89(bool) LogicalNot 97
+ SelectionMerge 100 None
+ BranchConditional 98 99 100
+ 99: Label
+ 102: 101(ptr) AccessChain 35 61 54
+ 103: 30(ivec3) Load 102
+ 106: 95(bvec3) INotEqual 103 105
+ 107: 89(bool) Any 106
+ Branch 100
+ 100: Label
+ 108: 89(bool) Phi 97 5 107 99
+ SelectionMerge 110 None
+ BranchConditional 108 109 110
+ 109: Label
+ 111: 49(ptr) AccessChain 80(s) 20
+ 112: 14(fvec3) Load 111
+ 113: 14(fvec3) CompositeConstruct 93 93 93
+ 114: 14(fvec3) FAdd 112 113
+ Store 111 114
+ Branch 110
+ 110: Label
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.310.comp.out b/chromium/third_party/glslang/src/Test/baseResults/spv.310.comp.out
new file mode 100755
index 00000000000..3eafc2b58e8
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.310.comp.out
@@ -0,0 +1,127 @@
+spv.310.comp
+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked compute stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 66
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint GLCompute 4 "main" 52
+ ExecutionMode 4 LocalSize 16 32 4
+ Source ESSL 310
+ Name 4 "main"
+ Name 12 "outb"
+ MemberName 12(outb) 0 "f"
+ MemberName 12(outb) 1 "g"
+ MemberName 12(outb) 2 "h"
+ MemberName 12(outb) 3 "uns"
+ Name 14 "outbname"
+ Name 18 "s"
+ Name 23 "outbna"
+ MemberName 23(outbna) 0 "k"
+ MemberName 23(outbna) 1 "na"
+ Name 25 "outbnamena"
+ Name 41 "i"
+ Name 47 "outs"
+ MemberName 47(outs) 0 "s"
+ MemberName 47(outs) 1 "va"
+ Name 49 "outnames"
+ Name 52 "gl_LocalInvocationID"
+ Decorate 11 ArrayStride 16
+ MemberDecorate 12(outb) 0 Offset 0
+ MemberDecorate 12(outb) 1 Offset 4
+ MemberDecorate 12(outb) 2 Offset 8
+ MemberDecorate 12(outb) 3 Offset 16
+ Decorate 12(outb) BufferBlock
+ Decorate 14(outbname) DescriptorSet 0
+ MemberDecorate 23(outbna) 0 Offset 0
+ MemberDecorate 23(outbna) 1 Offset 16
+ Decorate 23(outbna) BufferBlock
+ Decorate 25(outbnamena) DescriptorSet 0
+ Decorate 46 ArrayStride 16
+ MemberDecorate 47(outs) 0 Offset 0
+ MemberDecorate 47(outs) 1 Offset 16
+ Decorate 47(outs) BufferBlock
+ Decorate 49(outnames) DescriptorSet 0
+ Decorate 52(gl_LocalInvocationID) BuiltIn LocalInvocationId
+ Decorate 65 BuiltIn WorkgroupSize
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 0
+ 7: 6(int) Constant 1
+ 8: 6(int) Constant 0
+ 9: TypeFloat 32
+ 10: TypeVector 9(float) 3
+ 11: TypeRuntimeArray 10(fvec3)
+ 12(outb): TypeStruct 9(float) 9(float) 9(float) 11
+ 13: TypePointer Uniform 12(outb)
+ 14(outbname): 13(ptr) Variable Uniform
+ 15: TypeInt 32 1
+ 16: 15(int) Constant 0
+ 17: TypePointer Workgroup 9(float)
+ 18(s): 17(ptr) Variable Workgroup
+ 20: TypePointer Uniform 9(float)
+ 22: TypeVector 9(float) 4
+ 23(outbna): TypeStruct 15(int) 22(fvec4)
+ 24: TypePointer Uniform 23(outbna)
+ 25(outbnamena): 24(ptr) Variable Uniform
+ 26: 15(int) Constant 1
+ 29: TypePointer Uniform 22(fvec4)
+ 31: 15(int) Constant 3
+ 32: 15(int) Constant 18
+ 35: 15(int) Constant 17
+ 36: 9(float) Constant 1077936128
+ 37: 10(fvec3) ConstantComposite 36 36 36
+ 38: TypePointer Uniform 10(fvec3)
+ 40: TypePointer Workgroup 15(int)
+ 41(i): 40(ptr) Variable Workgroup
+ 46: TypeRuntimeArray 22(fvec4)
+ 47(outs): TypeStruct 15(int) 46
+ 48: TypePointer Uniform 47(outs)
+ 49(outnames): 48(ptr) Variable Uniform
+ 50: TypeVector 6(int) 3
+ 51: TypePointer Input 50(ivec3)
+52(gl_LocalInvocationID): 51(ptr) Variable Input
+ 53: TypePointer Input 6(int)
+ 60: TypePointer Uniform 15(int)
+ 62: 6(int) Constant 16
+ 63: 6(int) Constant 32
+ 64: 6(int) Constant 4
+ 65: 50(ivec3) ConstantComposite 62 63 64
+ 4(main): 2 Function None 3
+ 5: Label
+ ControlBarrier 7 7 8
+ 19: 9(float) Load 18(s)
+ 21: 20(ptr) AccessChain 14(outbname) 16
+ Store 21 19
+ 27: 9(float) Load 18(s)
+ 28: 22(fvec4) CompositeConstruct 27 27 27 27
+ 30: 29(ptr) AccessChain 25(outbnamena) 26
+ Store 30 28
+ 33: 20(ptr) AccessChain 14(outbname) 31 32 8
+ 34: 9(float) Load 33
+ Store 18(s) 34
+ 39: 38(ptr) AccessChain 14(outbname) 31 35
+ Store 39 37
+ 42: 15(int) Load 41(i)
+ 43: 9(float) Load 18(s)
+ 44: 10(fvec3) CompositeConstruct 43 43 43
+ 45: 38(ptr) AccessChain 14(outbname) 31 42
+ Store 45 44
+ 54: 53(ptr) AccessChain 52(gl_LocalInvocationID) 8
+ 55: 6(int) Load 54
+ 56: 9(float) Load 18(s)
+ 57: 22(fvec4) CompositeConstruct 56 56 56 56
+ 58: 29(ptr) AccessChain 49(outnames) 26 55
+ Store 58 57
+ 59: 15(int) ArrayLength 14(outbname) 3
+ 61: 60(ptr) AccessChain 49(outnames) 16
+ Store 61 59
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.330.geom.out b/chromium/third_party/glslang/src/Test/baseResults/spv.330.geom.out
new file mode 100644
index 00000000000..3077769a508
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.330.geom.out
@@ -0,0 +1,71 @@
+spv.330.geom
+
+Linked geometry stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 32
+
+ Capability Geometry
+ Capability ClipDistance
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Geometry 4 "main" 13 20
+ ExecutionMode 4 Triangles
+ ExecutionMode 4 Invocations 1
+ ExecutionMode 4 OutputTriangleStrip
+ ExecutionMode 4 OutputVertices 3
+ Source GLSL 330
+ SourceExtension "GL_ARB_separate_shader_objects"
+ Name 4 "main"
+ Name 11 "gl_PerVertex"
+ MemberName 11(gl_PerVertex) 0 "gl_Position"
+ MemberName 11(gl_PerVertex) 1 "gl_ClipDistance"
+ Name 13 ""
+ Name 16 "gl_PerVertex"
+ MemberName 16(gl_PerVertex) 0 "gl_Position"
+ MemberName 16(gl_PerVertex) 1 "gl_ClipDistance"
+ Name 20 "gl_in"
+ MemberDecorate 11(gl_PerVertex) 0 BuiltIn Position
+ MemberDecorate 11(gl_PerVertex) 1 BuiltIn ClipDistance
+ Decorate 11(gl_PerVertex) Block
+ MemberDecorate 16(gl_PerVertex) 0 BuiltIn Position
+ MemberDecorate 16(gl_PerVertex) 1 BuiltIn ClipDistance
+ Decorate 16(gl_PerVertex) Block
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypeInt 32 0
+ 9: 8(int) Constant 1
+ 10: TypeArray 6(float) 9
+11(gl_PerVertex): TypeStruct 7(fvec4) 10
+ 12: TypePointer Output 11(gl_PerVertex)
+ 13: 12(ptr) Variable Output
+ 14: TypeInt 32 1
+ 15: 14(int) Constant 0
+16(gl_PerVertex): TypeStruct 7(fvec4) 10
+ 17: 8(int) Constant 3
+ 18: TypeArray 16(gl_PerVertex) 17
+ 19: TypePointer Input 18
+ 20(gl_in): 19(ptr) Variable Input
+ 21: 14(int) Constant 1
+ 22: TypePointer Input 7(fvec4)
+ 25: TypePointer Output 7(fvec4)
+ 27: TypePointer Input 6(float)
+ 30: TypePointer Output 6(float)
+ 4(main): 2 Function None 3
+ 5: Label
+ 23: 22(ptr) AccessChain 20(gl_in) 21 15
+ 24: 7(fvec4) Load 23
+ 26: 25(ptr) AccessChain 13 15
+ Store 26 24
+ 28: 27(ptr) AccessChain 20(gl_in) 21 21 15
+ 29: 6(float) Load 28
+ 31: 30(ptr) AccessChain 13 21 15
+ Store 31 29
+ EmitVertex
+ EndPrimitive
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.400.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.400.frag.out
new file mode 100644
index 00000000000..4af713c4351
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.400.frag.out
@@ -0,0 +1,1385 @@
+spv.400.frag
+Warning, version 400 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 1112
+
+ Capability Shader
+ Capability Float64
+ Capability ImageGatherExtended
+ Capability ClipDistance
+ Capability SampledRect
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 13 1025 1031 1036 1048 1074 1095 1097 1103 1105
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 400
+ SourceExtension "GL_ARB_separate_shader_objects"
+ Name 4 "main"
+ Name 6 "foo23("
+ Name 8 "doubles("
+ Name 13 "outp"
+ Name 17 "u2drs"
+ Name 39 "doublev"
+ Name 43 "dvec2v"
+ Name 48 "dvec3v"
+ Name 53 "dvec4v"
+ Name 428 "boolv"
+ Name 437 "bvec2v"
+ Name 446 "bvec3v"
+ Name 455 "bvec4v"
+ Name 737 "dmat2v"
+ Name 743 "dmat3v"
+ Name 749 "dmat4v"
+ Name 755 "dmat2x3v"
+ Name 761 "dmat3x2v"
+ Name 767 "dmat2x4v"
+ Name 773 "dmat4x2v"
+ Name 779 "dmat3x4v"
+ Name 785 "dmat4x3v"
+ Name 1017 "v"
+ Name 1023 "arrayedSampler"
+ Name 1025 "i"
+ Name 1031 "c2D"
+ Name 1036 "gl_ClipDistance"
+ Name 1048 "uoutp"
+ Name 1052 "samp2dr"
+ Name 1074 "ioutp"
+ Name 1078 "isamp2DA"
+ Name 1095 "gl_FragCoord"
+ Name 1097 "vl2"
+ Name 1103 "uo"
+ Name 1105 "u"
+ Decorate 17(u2drs) DescriptorSet 0
+ Decorate 1023(arrayedSampler) DescriptorSet 0
+ Decorate 1025(i) Flat
+ Decorate 1036(gl_ClipDistance) BuiltIn ClipDistance
+ Decorate 1052(samp2dr) DescriptorSet 0
+ Decorate 1078(isamp2DA) DescriptorSet 0
+ Decorate 1095(gl_FragCoord) BuiltIn FragCoord
+ Decorate 1097(vl2) Location 6
+ Decorate 1105(u) Flat
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 10: TypeFloat 32
+ 11: TypeVector 10(float) 4
+ 12: TypePointer Output 11(fvec4)
+ 13(outp): 12(ptr) Variable Output
+ 14: TypeImage 10(float) Rect depth sampled format:Unknown
+ 15: TypeSampledImage 14
+ 16: TypePointer UniformConstant 15
+ 17(u2drs): 16(ptr) Variable UniformConstant
+ 20: TypeVector 10(float) 2
+ 21: 10(float) Constant 0
+ 22: 20(fvec2) ConstantComposite 21 21
+ 23: TypeInt 32 1
+ 24: TypeVector 23(int) 2
+ 25: 23(int) Constant 3
+ 26: 23(int) Constant 4
+ 27: 24(ivec2) ConstantComposite 25 26
+ 30: TypeInt 32 0
+ 31: 30(int) Constant 0
+ 32: TypePointer Output 10(float)
+ 37: TypeFloat 64
+ 38: TypePointer Function 37(float)
+ 40: 37(float) Constant 2507418074 1073430332
+ 41: TypeVector 37(float) 2
+ 42: TypePointer Function 41(fvec2)
+ 44: 37(float) Constant 796182188 1073367658
+ 45: 41(fvec2) ConstantComposite 44 44
+ 46: TypeVector 37(float) 3
+ 47: TypePointer Function 46(fvec3)
+ 49: 37(float) Constant 1719614413 1073127582
+ 50: 46(fvec3) ConstantComposite 49 49 49
+ 51: TypeVector 37(float) 4
+ 52: TypePointer Function 51(fvec4)
+ 426: TypeBool
+ 427: TypePointer Function 426(bool)
+ 435: TypeVector 426(bool) 2
+ 436: TypePointer Function 435(bvec2)
+ 444: TypeVector 426(bool) 3
+ 445: TypePointer Function 444(bvec3)
+ 453: TypeVector 426(bool) 4
+ 454: TypePointer Function 453(bvec4)
+ 561: 426(bool) ConstantFalse
+ 570: 435(bvec2) ConstantComposite 561 561
+ 579: 444(bvec3) ConstantComposite 561 561 561
+ 588: 453(bvec4) ConstantComposite 561 561 561 561
+ 735: TypeMatrix 41(fvec2) 2
+ 736: TypePointer Function 735
+ 741: TypeMatrix 46(fvec3) 3
+ 742: TypePointer Function 741
+ 747: TypeMatrix 51(fvec4) 4
+ 748: TypePointer Function 747
+ 753: TypeMatrix 46(fvec3) 2
+ 754: TypePointer Function 753
+ 759: TypeMatrix 41(fvec2) 3
+ 760: TypePointer Function 759
+ 765: TypeMatrix 51(fvec4) 2
+ 766: TypePointer Function 765
+ 771: TypeMatrix 41(fvec2) 4
+ 772: TypePointer Function 771
+ 777: TypeMatrix 51(fvec4) 3
+ 778: TypePointer Function 777
+ 783: TypeMatrix 46(fvec3) 4
+ 784: TypePointer Function 783
+ 952: 30(int) Constant 1
+ 956: 30(int) Constant 2
+ 960: 30(int) Constant 3
+ 964: 23(int) Constant 1
+ 968: 23(int) Constant 2
+ 994: 10(float) Constant 1065353216
+ 1016: TypePointer Function 11(fvec4)
+ 1018: TypeImage 10(float) 2D sampled format:Unknown
+ 1019: TypeSampledImage 1018
+ 1020: 30(int) Constant 5
+ 1021: TypeArray 1019 1020
+ 1022: TypePointer UniformConstant 1021
+1023(arrayedSampler): 1022(ptr) Variable UniformConstant
+ 1024: TypePointer Input 23(int)
+ 1025(i): 1024(ptr) Variable Input
+ 1027: TypePointer UniformConstant 1019
+ 1030: TypePointer Input 20(fvec2)
+ 1031(c2D): 1030(ptr) Variable Input
+ 1034: TypeArray 10(float) 956
+ 1035: TypePointer Input 1034
+1036(gl_ClipDistance): 1035(ptr) Variable Input
+ 1037: TypePointer Input 10(float)
+ 1041: TypeVector 10(float) 3
+ 1046: TypeVector 30(int) 4
+ 1047: TypePointer Output 1046(ivec4)
+ 1048(uoutp): 1047(ptr) Variable Output
+ 1049: TypeImage 30(int) Rect sampled format:Unknown
+ 1050: TypeSampledImage 1049
+ 1051: TypePointer UniformConstant 1050
+ 1052(samp2dr): 1051(ptr) Variable UniformConstant
+ 1055: 30(int) Constant 4
+ 1056: TypeArray 24(ivec2) 1055
+ 1057: 24(ivec2) ConstantComposite 964 968
+ 1058: 23(int) Constant 15
+ 1059: 23(int) Constant 16
+ 1060: 24(ivec2) ConstantComposite 1058 1059
+ 1061: 23(int) Constant 4294967294
+ 1062: 23(int) Constant 0
+ 1063: 24(ivec2) ConstantComposite 1061 1062
+ 1064: 1056 ConstantComposite 1057 27 1060 1063
+ 1072: TypeVector 23(int) 4
+ 1073: TypePointer Output 1072(ivec4)
+ 1074(ioutp): 1073(ptr) Variable Output
+ 1075: TypeImage 23(int) 2D array sampled format:Unknown
+ 1076: TypeSampledImage 1075
+ 1077: TypePointer UniformConstant 1076
+ 1078(isamp2DA): 1077(ptr) Variable UniformConstant
+ 1080: 10(float) Constant 1036831949
+ 1081: 1041(fvec3) ConstantComposite 1080 1080 1080
+ 1082: 24(ivec2) ConstantComposite 964 964
+ 1094: TypePointer Input 11(fvec4)
+1095(gl_FragCoord): 1094(ptr) Variable Input
+ 1097(vl2): 1094(ptr) Variable Input
+ 1102: TypePointer Output 30(int)
+ 1103(uo): 1102(ptr) Variable Output
+ 1104: TypePointer Input 30(int)
+ 1105(u): 1104(ptr) Variable Input
+ 4(main): 2 Function None 3
+ 5: Label
+ 1017(v): 1016(ptr) Variable Function
+ 1026: 23(int) Load 1025(i)
+ 1028: 1027(ptr) AccessChain 1023(arrayedSampler) 1026
+ 1029: 1019 Load 1028
+ 1032: 20(fvec2) Load 1031(c2D)
+ 1033: 11(fvec4) ImageSampleImplicitLod 1029 1032
+ Store 1017(v) 1033
+ 1038: 1037(ptr) AccessChain 1036(gl_ClipDistance) 964
+ 1039: 10(float) Load 1038
+ 1040: 32(ptr) AccessChain 13(outp) 31
+ Store 1040 1039
+ 1042: 11(fvec4) Load 1017(v)
+ 1043: 1041(fvec3) VectorShuffle 1042 1042 1 2 3
+ 1044: 11(fvec4) Load 13(outp)
+ 1045: 11(fvec4) VectorShuffle 1044 1043 0 4 5 6
+ Store 13(outp) 1045
+ 1053: 1050 Load 1052(samp2dr)
+ 1054: 20(fvec2) Load 1031(c2D)
+ 1065: 1046(ivec4) ImageGather 1053 1054 968 ConstOffsets 1064
+ Store 1048(uoutp) 1065
+ 1066: 1027(ptr) AccessChain 1023(arrayedSampler) 1062
+ 1067: 1019 Load 1066
+ 1068: 20(fvec2) Load 1031(c2D)
+ 1069: 11(fvec4) ImageGather 1067 1068 1062
+ 1070: 11(fvec4) Load 13(outp)
+ 1071: 11(fvec4) FAdd 1070 1069
+ Store 13(outp) 1071
+ 1079: 1076 Load 1078(isamp2DA)
+ 1083: 1072(ivec4) ImageGather 1079 1081 25 ConstOffset 1082
+ Store 1074(ioutp) 1083
+ 1084: 1076 Load 1078(isamp2DA)
+ 1085: 1072(ivec4) ImageGather 1084 1081 25 ConstOffset 1082
+ 1086: 1072(ivec4) Load 1074(ioutp)
+ 1087: 1072(ivec4) IAdd 1086 1085
+ Store 1074(ioutp) 1087
+ 1088: 1076 Load 1078(isamp2DA)
+ 1089: 23(int) Load 1025(i)
+ 1090: 24(ivec2) CompositeConstruct 1089 1089
+ 1091: 1072(ivec4) ImageGather 1088 1081 1062 Offset 1090
+ 1092: 1072(ivec4) Load 1074(ioutp)
+ 1093: 1072(ivec4) IAdd 1092 1091
+ Store 1074(ioutp) 1093
+ 1096: 11(fvec4) Load 1095(gl_FragCoord)
+ 1098: 11(fvec4) Load 1097(vl2)
+ 1099: 11(fvec4) FAdd 1096 1098
+ 1100: 11(fvec4) Load 13(outp)
+ 1101: 11(fvec4) FAdd 1100 1099
+ Store 13(outp) 1101
+ 1106: 30(int) Load 1105(u)
+ 1107: 23(int) Load 1025(i)
+ 1108: 30(int) Bitcast 1107
+ 1109: 30(int) UMod 1106 1108
+ Store 1103(uo) 1109
+ 1110: 2 FunctionCall 6(foo23()
+ 1111: 2 FunctionCall 8(doubles()
+ Return
+ FunctionEnd
+ 6(foo23(): 2 Function None 3
+ 7: Label
+ 18: 15 Load 17(u2drs)
+ 19: 11(fvec4) Load 13(outp)
+ 28: 10(float) CompositeExtract 19 2
+ 29: 10(float) ImageSampleProjDrefExplicitLod 18 19 28 Grad ConstOffset 22 22 27
+ 33: 32(ptr) AccessChain 13(outp) 31
+ 34: 10(float) Load 33
+ 35: 10(float) FAdd 34 29
+ 36: 32(ptr) AccessChain 13(outp) 31
+ Store 36 35
+ Return
+ FunctionEnd
+ 8(doubles(): 2 Function None 3
+ 9: Label
+ 39(doublev): 38(ptr) Variable Function
+ 43(dvec2v): 42(ptr) Variable Function
+ 48(dvec3v): 47(ptr) Variable Function
+ 53(dvec4v): 52(ptr) Variable Function
+ 428(boolv): 427(ptr) Variable Function
+ 437(bvec2v): 436(ptr) Variable Function
+ 446(bvec3v): 445(ptr) Variable Function
+ 455(bvec4v): 454(ptr) Variable Function
+ 554: 427(ptr) Variable Function
+ 563: 436(ptr) Variable Function
+ 572: 445(ptr) Variable Function
+ 581: 454(ptr) Variable Function
+ 737(dmat2v): 736(ptr) Variable Function
+ 743(dmat3v): 742(ptr) Variable Function
+ 749(dmat4v): 748(ptr) Variable Function
+ 755(dmat2x3v): 754(ptr) Variable Function
+ 761(dmat3x2v): 760(ptr) Variable Function
+ 767(dmat2x4v): 766(ptr) Variable Function
+ 773(dmat4x2v): 772(ptr) Variable Function
+ 779(dmat3x4v): 778(ptr) Variable Function
+ 785(dmat4x3v): 784(ptr) Variable Function
+ Store 39(doublev) 40
+ Store 43(dvec2v) 45
+ Store 48(dvec3v) 50
+ 54: 37(float) Load 39(doublev)
+ 55: 51(fvec4) CompositeConstruct 54 54 54 54
+ 56: 51(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 55
+ Store 53(dvec4v) 56
+ 57: 37(float) Load 39(doublev)
+ 58: 37(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 57
+ 59: 37(float) Load 39(doublev)
+ 60: 37(float) FAdd 59 58
+ Store 39(doublev) 60
+ 61: 41(fvec2) Load 43(dvec2v)
+ 62: 41(fvec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 61
+ 63: 41(fvec2) Load 43(dvec2v)
+ 64: 41(fvec2) FAdd 63 62
+ Store 43(dvec2v) 64
+ 65: 46(fvec3) Load 48(dvec3v)
+ 66: 46(fvec3) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 65
+ 67: 46(fvec3) Load 48(dvec3v)
+ 68: 46(fvec3) FAdd 67 66
+ Store 48(dvec3v) 68
+ 69: 51(fvec4) Load 53(dvec4v)
+ 70: 51(fvec4) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 69
+ 71: 51(fvec4) Load 53(dvec4v)
+ 72: 51(fvec4) FAdd 71 70
+ Store 53(dvec4v) 72
+ 73: 37(float) Load 39(doublev)
+ 74: 37(float) ExtInst 1(GLSL.std.450) 4(FAbs) 73
+ 75: 37(float) Load 39(doublev)
+ 76: 37(float) FAdd 75 74
+ Store 39(doublev) 76
+ 77: 41(fvec2) Load 43(dvec2v)
+ 78: 41(fvec2) ExtInst 1(GLSL.std.450) 4(FAbs) 77
+ 79: 41(fvec2) Load 43(dvec2v)
+ 80: 41(fvec2) FAdd 79 78
+ Store 43(dvec2v) 80
+ 81: 46(fvec3) Load 48(dvec3v)
+ 82: 46(fvec3) ExtInst 1(GLSL.std.450) 4(FAbs) 81
+ 83: 46(fvec3) Load 48(dvec3v)
+ 84: 46(fvec3) FAdd 83 82
+ Store 48(dvec3v) 84
+ 85: 51(fvec4) Load 53(dvec4v)
+ 86: 51(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 85
+ 87: 51(fvec4) Load 53(dvec4v)
+ 88: 51(fvec4) FAdd 87 86
+ Store 53(dvec4v) 88
+ 89: 37(float) Load 39(doublev)
+ 90: 37(float) ExtInst 1(GLSL.std.450) 6(FSign) 89
+ 91: 37(float) Load 39(doublev)
+ 92: 37(float) FAdd 91 90
+ Store 39(doublev) 92
+ 93: 41(fvec2) Load 43(dvec2v)
+ 94: 41(fvec2) ExtInst 1(GLSL.std.450) 6(FSign) 93
+ 95: 41(fvec2) Load 43(dvec2v)
+ 96: 41(fvec2) FAdd 95 94
+ Store 43(dvec2v) 96
+ 97: 46(fvec3) Load 48(dvec3v)
+ 98: 46(fvec3) ExtInst 1(GLSL.std.450) 6(FSign) 97
+ 99: 46(fvec3) Load 48(dvec3v)
+ 100: 46(fvec3) FAdd 99 98
+ Store 48(dvec3v) 100
+ 101: 51(fvec4) Load 53(dvec4v)
+ 102: 51(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 101
+ 103: 51(fvec4) Load 53(dvec4v)
+ 104: 51(fvec4) FAdd 103 102
+ Store 53(dvec4v) 104
+ 105: 37(float) Load 39(doublev)
+ 106: 37(float) ExtInst 1(GLSL.std.450) 8(Floor) 105
+ 107: 37(float) Load 39(doublev)
+ 108: 37(float) FAdd 107 106
+ Store 39(doublev) 108
+ 109: 41(fvec2) Load 43(dvec2v)
+ 110: 41(fvec2) ExtInst 1(GLSL.std.450) 8(Floor) 109
+ 111: 41(fvec2) Load 43(dvec2v)
+ 112: 41(fvec2) FAdd 111 110
+ Store 43(dvec2v) 112
+ 113: 46(fvec3) Load 48(dvec3v)
+ 114: 46(fvec3) ExtInst 1(GLSL.std.450) 8(Floor) 113
+ 115: 46(fvec3) Load 48(dvec3v)
+ 116: 46(fvec3) FAdd 115 114
+ Store 48(dvec3v) 116
+ 117: 51(fvec4) Load 53(dvec4v)
+ 118: 51(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 117
+ 119: 51(fvec4) Load 53(dvec4v)
+ 120: 51(fvec4) FAdd 119 118
+ Store 53(dvec4v) 120
+ 121: 37(float) Load 39(doublev)
+ 122: 37(float) ExtInst 1(GLSL.std.450) 3(Trunc) 121
+ 123: 37(float) Load 39(doublev)
+ 124: 37(float) FAdd 123 122
+ Store 39(doublev) 124
+ 125: 41(fvec2) Load 43(dvec2v)
+ 126: 41(fvec2) ExtInst 1(GLSL.std.450) 3(Trunc) 125
+ 127: 41(fvec2) Load 43(dvec2v)
+ 128: 41(fvec2) FAdd 127 126
+ Store 43(dvec2v) 128
+ 129: 46(fvec3) Load 48(dvec3v)
+ 130: 46(fvec3) ExtInst 1(GLSL.std.450) 3(Trunc) 129
+ 131: 46(fvec3) Load 48(dvec3v)
+ 132: 46(fvec3) FAdd 131 130
+ Store 48(dvec3v) 132
+ 133: 51(fvec4) Load 53(dvec4v)
+ 134: 51(fvec4) ExtInst 1(GLSL.std.450) 3(Trunc) 133
+ 135: 51(fvec4) Load 53(dvec4v)
+ 136: 51(fvec4) FAdd 135 134
+ Store 53(dvec4v) 136
+ 137: 37(float) Load 39(doublev)
+ 138: 37(float) ExtInst 1(GLSL.std.450) 1(Round) 137
+ 139: 37(float) Load 39(doublev)
+ 140: 37(float) FAdd 139 138
+ Store 39(doublev) 140
+ 141: 41(fvec2) Load 43(dvec2v)
+ 142: 41(fvec2) ExtInst 1(GLSL.std.450) 1(Round) 141
+ 143: 41(fvec2) Load 43(dvec2v)
+ 144: 41(fvec2) FAdd 143 142
+ Store 43(dvec2v) 144
+ 145: 46(fvec3) Load 48(dvec3v)
+ 146: 46(fvec3) ExtInst 1(GLSL.std.450) 1(Round) 145
+ 147: 46(fvec3) Load 48(dvec3v)
+ 148: 46(fvec3) FAdd 147 146
+ Store 48(dvec3v) 148
+ 149: 51(fvec4) Load 53(dvec4v)
+ 150: 51(fvec4) ExtInst 1(GLSL.std.450) 1(Round) 149
+ 151: 51(fvec4) Load 53(dvec4v)
+ 152: 51(fvec4) FAdd 151 150
+ Store 53(dvec4v) 152
+ 153: 37(float) Load 39(doublev)
+ 154: 37(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 153
+ 155: 37(float) Load 39(doublev)
+ 156: 37(float) FAdd 155 154
+ Store 39(doublev) 156
+ 157: 41(fvec2) Load 43(dvec2v)
+ 158: 41(fvec2) ExtInst 1(GLSL.std.450) 2(RoundEven) 157
+ 159: 41(fvec2) Load 43(dvec2v)
+ 160: 41(fvec2) FAdd 159 158
+ Store 43(dvec2v) 160
+ 161: 46(fvec3) Load 48(dvec3v)
+ 162: 46(fvec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 161
+ 163: 46(fvec3) Load 48(dvec3v)
+ 164: 46(fvec3) FAdd 163 162
+ Store 48(dvec3v) 164
+ 165: 51(fvec4) Load 53(dvec4v)
+ 166: 51(fvec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 165
+ 167: 51(fvec4) Load 53(dvec4v)
+ 168: 51(fvec4) FAdd 167 166
+ Store 53(dvec4v) 168
+ 169: 37(float) Load 39(doublev)
+ 170: 37(float) ExtInst 1(GLSL.std.450) 9(Ceil) 169
+ 171: 37(float) Load 39(doublev)
+ 172: 37(float) FAdd 171 170
+ Store 39(doublev) 172
+ 173: 41(fvec2) Load 43(dvec2v)
+ 174: 41(fvec2) ExtInst 1(GLSL.std.450) 9(Ceil) 173
+ 175: 41(fvec2) Load 43(dvec2v)
+ 176: 41(fvec2) FAdd 175 174
+ Store 43(dvec2v) 176
+ 177: 46(fvec3) Load 48(dvec3v)
+ 178: 46(fvec3) ExtInst 1(GLSL.std.450) 9(Ceil) 177
+ 179: 46(fvec3) Load 48(dvec3v)
+ 180: 46(fvec3) FAdd 179 178
+ Store 48(dvec3v) 180
+ 181: 51(fvec4) Load 53(dvec4v)
+ 182: 51(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 181
+ 183: 51(fvec4) Load 53(dvec4v)
+ 184: 51(fvec4) FAdd 183 182
+ Store 53(dvec4v) 184
+ 185: 37(float) Load 39(doublev)
+ 186: 37(float) ExtInst 1(GLSL.std.450) 10(Fract) 185
+ 187: 37(float) Load 39(doublev)
+ 188: 37(float) FAdd 187 186
+ Store 39(doublev) 188
+ 189: 41(fvec2) Load 43(dvec2v)
+ 190: 41(fvec2) ExtInst 1(GLSL.std.450) 10(Fract) 189
+ 191: 41(fvec2) Load 43(dvec2v)
+ 192: 41(fvec2) FAdd 191 190
+ Store 43(dvec2v) 192
+ 193: 46(fvec3) Load 48(dvec3v)
+ 194: 46(fvec3) ExtInst 1(GLSL.std.450) 10(Fract) 193
+ 195: 46(fvec3) Load 48(dvec3v)
+ 196: 46(fvec3) FAdd 195 194
+ Store 48(dvec3v) 196
+ 197: 51(fvec4) Load 53(dvec4v)
+ 198: 51(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 197
+ 199: 51(fvec4) Load 53(dvec4v)
+ 200: 51(fvec4) FAdd 199 198
+ Store 53(dvec4v) 200
+ 201: 37(float) Load 39(doublev)
+ 202: 37(float) Load 39(doublev)
+ 203: 37(float) FMod 201 202
+ 204: 37(float) Load 39(doublev)
+ 205: 37(float) FAdd 204 203
+ Store 39(doublev) 205
+ 206: 41(fvec2) Load 43(dvec2v)
+ 207: 37(float) Load 39(doublev)
+ 208: 41(fvec2) CompositeConstruct 207 207
+ 209: 41(fvec2) FMod 206 208
+ 210: 41(fvec2) Load 43(dvec2v)
+ 211: 41(fvec2) FAdd 210 209
+ Store 43(dvec2v) 211
+ 212: 46(fvec3) Load 48(dvec3v)
+ 213: 37(float) Load 39(doublev)
+ 214: 46(fvec3) CompositeConstruct 213 213 213
+ 215: 46(fvec3) FMod 212 214
+ 216: 46(fvec3) Load 48(dvec3v)
+ 217: 46(fvec3) FAdd 216 215
+ Store 48(dvec3v) 217
+ 218: 51(fvec4) Load 53(dvec4v)
+ 219: 37(float) Load 39(doublev)
+ 220: 51(fvec4) CompositeConstruct 219 219 219 219
+ 221: 51(fvec4) FMod 218 220
+ 222: 51(fvec4) Load 53(dvec4v)
+ 223: 51(fvec4) FAdd 222 221
+ Store 53(dvec4v) 223
+ 224: 41(fvec2) Load 43(dvec2v)
+ 225: 41(fvec2) Load 43(dvec2v)
+ 226: 41(fvec2) FMod 224 225
+ 227: 41(fvec2) Load 43(dvec2v)
+ 228: 41(fvec2) FAdd 227 226
+ Store 43(dvec2v) 228
+ 229: 46(fvec3) Load 48(dvec3v)
+ 230: 46(fvec3) Load 48(dvec3v)
+ 231: 46(fvec3) FMod 229 230
+ 232: 46(fvec3) Load 48(dvec3v)
+ 233: 46(fvec3) FAdd 232 231
+ Store 48(dvec3v) 233
+ 234: 51(fvec4) Load 53(dvec4v)
+ 235: 51(fvec4) Load 53(dvec4v)
+ 236: 51(fvec4) FMod 234 235
+ 237: 51(fvec4) Load 53(dvec4v)
+ 238: 51(fvec4) FAdd 237 236
+ Store 53(dvec4v) 238
+ 239: 37(float) Load 39(doublev)
+ 240: 37(float) ExtInst 1(GLSL.std.450) 35(Modf) 239 39(doublev)
+ 241: 37(float) Load 39(doublev)
+ 242: 37(float) FAdd 241 240
+ Store 39(doublev) 242
+ 243: 41(fvec2) Load 43(dvec2v)
+ 244: 41(fvec2) ExtInst 1(GLSL.std.450) 35(Modf) 243 43(dvec2v)
+ 245: 41(fvec2) Load 43(dvec2v)
+ 246: 41(fvec2) FAdd 245 244
+ Store 43(dvec2v) 246
+ 247: 46(fvec3) Load 48(dvec3v)
+ 248: 46(fvec3) ExtInst 1(GLSL.std.450) 35(Modf) 247 48(dvec3v)
+ 249: 46(fvec3) Load 48(dvec3v)
+ 250: 46(fvec3) FAdd 249 248
+ Store 48(dvec3v) 250
+ 251: 51(fvec4) Load 53(dvec4v)
+ 252: 51(fvec4) ExtInst 1(GLSL.std.450) 35(Modf) 251 53(dvec4v)
+ 253: 51(fvec4) Load 53(dvec4v)
+ 254: 51(fvec4) FAdd 253 252
+ Store 53(dvec4v) 254
+ 255: 37(float) Load 39(doublev)
+ 256: 37(float) Load 39(doublev)
+ 257: 37(float) ExtInst 1(GLSL.std.450) 37(FMin) 255 256
+ 258: 37(float) Load 39(doublev)
+ 259: 37(float) FAdd 258 257
+ Store 39(doublev) 259
+ 260: 41(fvec2) Load 43(dvec2v)
+ 261: 37(float) Load 39(doublev)
+ 262: 41(fvec2) CompositeConstruct 261 261
+ 263: 41(fvec2) ExtInst 1(GLSL.std.450) 37(FMin) 260 262
+ 264: 41(fvec2) Load 43(dvec2v)
+ 265: 41(fvec2) FAdd 264 263
+ Store 43(dvec2v) 265
+ 266: 46(fvec3) Load 48(dvec3v)
+ 267: 37(float) Load 39(doublev)
+ 268: 46(fvec3) CompositeConstruct 267 267 267
+ 269: 46(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 266 268
+ 270: 46(fvec3) Load 48(dvec3v)
+ 271: 46(fvec3) FAdd 270 269
+ Store 48(dvec3v) 271
+ 272: 51(fvec4) Load 53(dvec4v)
+ 273: 37(float) Load 39(doublev)
+ 274: 51(fvec4) CompositeConstruct 273 273 273 273
+ 275: 51(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 272 274
+ 276: 51(fvec4) Load 53(dvec4v)
+ 277: 51(fvec4) FAdd 276 275
+ Store 53(dvec4v) 277
+ 278: 41(fvec2) Load 43(dvec2v)
+ 279: 41(fvec2) Load 43(dvec2v)
+ 280: 41(fvec2) ExtInst 1(GLSL.std.450) 37(FMin) 278 279
+ 281: 41(fvec2) Load 43(dvec2v)
+ 282: 41(fvec2) FAdd 281 280
+ Store 43(dvec2v) 282
+ 283: 46(fvec3) Load 48(dvec3v)
+ 284: 46(fvec3) Load 48(dvec3v)
+ 285: 46(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 283 284
+ 286: 46(fvec3) Load 48(dvec3v)
+ 287: 46(fvec3) FAdd 286 285
+ Store 48(dvec3v) 287
+ 288: 51(fvec4) Load 53(dvec4v)
+ 289: 51(fvec4) Load 53(dvec4v)
+ 290: 51(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 288 289
+ 291: 51(fvec4) Load 53(dvec4v)
+ 292: 51(fvec4) FAdd 291 290
+ Store 53(dvec4v) 292
+ 293: 37(float) Load 39(doublev)
+ 294: 37(float) Load 39(doublev)
+ 295: 37(float) ExtInst 1(GLSL.std.450) 40(FMax) 293 294
+ 296: 37(float) Load 39(doublev)
+ 297: 37(float) FAdd 296 295
+ Store 39(doublev) 297
+ 298: 41(fvec2) Load 43(dvec2v)
+ 299: 37(float) Load 39(doublev)
+ 300: 41(fvec2) CompositeConstruct 299 299
+ 301: 41(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 298 300
+ 302: 41(fvec2) Load 43(dvec2v)
+ 303: 41(fvec2) FAdd 302 301
+ Store 43(dvec2v) 303
+ 304: 46(fvec3) Load 48(dvec3v)
+ 305: 37(float) Load 39(doublev)
+ 306: 46(fvec3) CompositeConstruct 305 305 305
+ 307: 46(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 304 306
+ 308: 46(fvec3) Load 48(dvec3v)
+ 309: 46(fvec3) FAdd 308 307
+ Store 48(dvec3v) 309
+ 310: 51(fvec4) Load 53(dvec4v)
+ 311: 37(float) Load 39(doublev)
+ 312: 51(fvec4) CompositeConstruct 311 311 311 311
+ 313: 51(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 310 312
+ 314: 51(fvec4) Load 53(dvec4v)
+ 315: 51(fvec4) FAdd 314 313
+ Store 53(dvec4v) 315
+ 316: 41(fvec2) Load 43(dvec2v)
+ 317: 41(fvec2) Load 43(dvec2v)
+ 318: 41(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 316 317
+ 319: 41(fvec2) Load 43(dvec2v)
+ 320: 41(fvec2) FAdd 319 318
+ Store 43(dvec2v) 320
+ 321: 46(fvec3) Load 48(dvec3v)
+ 322: 46(fvec3) Load 48(dvec3v)
+ 323: 46(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 321 322
+ 324: 46(fvec3) Load 48(dvec3v)
+ 325: 46(fvec3) FAdd 324 323
+ Store 48(dvec3v) 325
+ 326: 51(fvec4) Load 53(dvec4v)
+ 327: 51(fvec4) Load 53(dvec4v)
+ 328: 51(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 326 327
+ 329: 51(fvec4) Load 53(dvec4v)
+ 330: 51(fvec4) FAdd 329 328
+ Store 53(dvec4v) 330
+ 331: 37(float) Load 39(doublev)
+ 332: 37(float) Load 39(doublev)
+ 333: 37(float) Load 39(doublev)
+ 334: 37(float) ExtInst 1(GLSL.std.450) 43(FClamp) 331 332 333
+ 335: 37(float) Load 39(doublev)
+ 336: 37(float) FAdd 335 334
+ Store 39(doublev) 336
+ 337: 41(fvec2) Load 43(dvec2v)
+ 338: 37(float) Load 39(doublev)
+ 339: 37(float) Load 39(doublev)
+ 340: 41(fvec2) CompositeConstruct 338 338
+ 341: 41(fvec2) CompositeConstruct 339 339
+ 342: 41(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 337 340 341
+ 343: 41(fvec2) Load 43(dvec2v)
+ 344: 41(fvec2) FAdd 343 342
+ Store 43(dvec2v) 344
+ 345: 46(fvec3) Load 48(dvec3v)
+ 346: 37(float) Load 39(doublev)
+ 347: 37(float) Load 39(doublev)
+ 348: 46(fvec3) CompositeConstruct 346 346 346
+ 349: 46(fvec3) CompositeConstruct 347 347 347
+ 350: 46(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 345 348 349
+ 351: 46(fvec3) Load 48(dvec3v)
+ 352: 46(fvec3) FAdd 351 350
+ Store 48(dvec3v) 352
+ 353: 51(fvec4) Load 53(dvec4v)
+ 354: 37(float) Load 39(doublev)
+ 355: 37(float) Load 39(doublev)
+ 356: 51(fvec4) CompositeConstruct 354 354 354 354
+ 357: 51(fvec4) CompositeConstruct 355 355 355 355
+ 358: 51(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 353 356 357
+ 359: 51(fvec4) Load 53(dvec4v)
+ 360: 51(fvec4) FAdd 359 358
+ Store 53(dvec4v) 360
+ 361: 41(fvec2) Load 43(dvec2v)
+ 362: 41(fvec2) Load 43(dvec2v)
+ 363: 41(fvec2) Load 43(dvec2v)
+ 364: 41(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 361 362 363
+ 365: 41(fvec2) Load 43(dvec2v)
+ 366: 41(fvec2) FAdd 365 364
+ Store 43(dvec2v) 366
+ 367: 46(fvec3) Load 48(dvec3v)
+ 368: 46(fvec3) Load 48(dvec3v)
+ 369: 46(fvec3) Load 48(dvec3v)
+ 370: 46(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 367 368 369
+ 371: 46(fvec3) Load 48(dvec3v)
+ 372: 46(fvec3) FAdd 371 370
+ Store 48(dvec3v) 372
+ 373: 51(fvec4) Load 53(dvec4v)
+ 374: 51(fvec4) Load 53(dvec4v)
+ 375: 51(fvec4) Load 53(dvec4v)
+ 376: 51(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 373 374 375
+ 377: 51(fvec4) Load 53(dvec4v)
+ 378: 51(fvec4) FAdd 377 376
+ Store 53(dvec4v) 378
+ 379: 37(float) Load 39(doublev)
+ 380: 37(float) Load 39(doublev)
+ 381: 37(float) Load 39(doublev)
+ 382: 37(float) ExtInst 1(GLSL.std.450) 46(FMix) 379 380 381
+ 383: 37(float) Load 39(doublev)
+ 384: 37(float) FAdd 383 382
+ Store 39(doublev) 384
+ 385: 41(fvec2) Load 43(dvec2v)
+ 386: 41(fvec2) Load 43(dvec2v)
+ 387: 37(float) Load 39(doublev)
+ 388: 41(fvec2) CompositeConstruct 387 387
+ 389: 41(fvec2) ExtInst 1(GLSL.std.450) 46(FMix) 385 386 388
+ 390: 41(fvec2) Load 43(dvec2v)
+ 391: 41(fvec2) FAdd 390 389
+ Store 43(dvec2v) 391
+ 392: 46(fvec3) Load 48(dvec3v)
+ 393: 46(fvec3) Load 48(dvec3v)
+ 394: 37(float) Load 39(doublev)
+ 395: 46(fvec3) CompositeConstruct 394 394 394
+ 396: 46(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 392 393 395
+ 397: 46(fvec3) Load 48(dvec3v)
+ 398: 46(fvec3) FAdd 397 396
+ Store 48(dvec3v) 398
+ 399: 51(fvec4) Load 53(dvec4v)
+ 400: 51(fvec4) Load 53(dvec4v)
+ 401: 37(float) Load 39(doublev)
+ 402: 51(fvec4) CompositeConstruct 401 401 401 401
+ 403: 51(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 399 400 402
+ 404: 51(fvec4) Load 53(dvec4v)
+ 405: 51(fvec4) FAdd 404 403
+ Store 53(dvec4v) 405
+ 406: 41(fvec2) Load 43(dvec2v)
+ 407: 41(fvec2) Load 43(dvec2v)
+ 408: 41(fvec2) Load 43(dvec2v)
+ 409: 41(fvec2) ExtInst 1(GLSL.std.450) 46(FMix) 406 407 408
+ 410: 41(fvec2) Load 43(dvec2v)
+ 411: 41(fvec2) FAdd 410 409
+ Store 43(dvec2v) 411
+ 412: 46(fvec3) Load 48(dvec3v)
+ 413: 46(fvec3) Load 48(dvec3v)
+ 414: 46(fvec3) Load 48(dvec3v)
+ 415: 46(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 412 413 414
+ 416: 46(fvec3) Load 48(dvec3v)
+ 417: 46(fvec3) FAdd 416 415
+ Store 48(dvec3v) 417
+ 418: 51(fvec4) Load 53(dvec4v)
+ 419: 51(fvec4) Load 53(dvec4v)
+ 420: 51(fvec4) Load 53(dvec4v)
+ 421: 51(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 418 419 420
+ 422: 51(fvec4) Load 53(dvec4v)
+ 423: 51(fvec4) FAdd 422 421
+ Store 53(dvec4v) 423
+ 424: 37(float) Load 39(doublev)
+ 425: 37(float) Load 39(doublev)
+ 429: 426(bool) Load 428(boolv)
+ 430: 37(float) Select 429 425 424
+ 431: 37(float) Load 39(doublev)
+ 432: 37(float) FAdd 431 430
+ Store 39(doublev) 432
+ 433: 41(fvec2) Load 43(dvec2v)
+ 434: 41(fvec2) Load 43(dvec2v)
+ 438: 435(bvec2) Load 437(bvec2v)
+ 439: 41(fvec2) Select 438 434 433
+ 440: 41(fvec2) Load 43(dvec2v)
+ 441: 41(fvec2) FAdd 440 439
+ Store 43(dvec2v) 441
+ 442: 46(fvec3) Load 48(dvec3v)
+ 443: 46(fvec3) Load 48(dvec3v)
+ 447: 444(bvec3) Load 446(bvec3v)
+ 448: 46(fvec3) Select 447 443 442
+ 449: 46(fvec3) Load 48(dvec3v)
+ 450: 46(fvec3) FAdd 449 448
+ Store 48(dvec3v) 450
+ 451: 51(fvec4) Load 53(dvec4v)
+ 452: 51(fvec4) Load 53(dvec4v)
+ 456: 453(bvec4) Load 455(bvec4v)
+ 457: 51(fvec4) Select 456 452 451
+ 458: 51(fvec4) Load 53(dvec4v)
+ 459: 51(fvec4) FAdd 458 457
+ Store 53(dvec4v) 459
+ 460: 37(float) Load 39(doublev)
+ 461: 37(float) Load 39(doublev)
+ 462: 37(float) ExtInst 1(GLSL.std.450) 48(Step) 460 461
+ 463: 37(float) Load 39(doublev)
+ 464: 37(float) FAdd 463 462
+ Store 39(doublev) 464
+ 465: 41(fvec2) Load 43(dvec2v)
+ 466: 41(fvec2) Load 43(dvec2v)
+ 467: 41(fvec2) ExtInst 1(GLSL.std.450) 48(Step) 465 466
+ 468: 41(fvec2) Load 43(dvec2v)
+ 469: 41(fvec2) FAdd 468 467
+ Store 43(dvec2v) 469
+ 470: 46(fvec3) Load 48(dvec3v)
+ 471: 46(fvec3) Load 48(dvec3v)
+ 472: 46(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 470 471
+ 473: 46(fvec3) Load 48(dvec3v)
+ 474: 46(fvec3) FAdd 473 472
+ Store 48(dvec3v) 474
+ 475: 51(fvec4) Load 53(dvec4v)
+ 476: 51(fvec4) Load 53(dvec4v)
+ 477: 51(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 475 476
+ 478: 51(fvec4) Load 53(dvec4v)
+ 479: 51(fvec4) FAdd 478 477
+ Store 53(dvec4v) 479
+ 480: 37(float) Load 39(doublev)
+ 481: 41(fvec2) Load 43(dvec2v)
+ 482: 41(fvec2) CompositeConstruct 480 480
+ 483: 41(fvec2) ExtInst 1(GLSL.std.450) 48(Step) 482 481
+ 484: 41(fvec2) Load 43(dvec2v)
+ 485: 41(fvec2) FAdd 484 483
+ Store 43(dvec2v) 485
+ 486: 37(float) Load 39(doublev)
+ 487: 46(fvec3) Load 48(dvec3v)
+ 488: 46(fvec3) CompositeConstruct 486 486 486
+ 489: 46(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 488 487
+ 490: 46(fvec3) Load 48(dvec3v)
+ 491: 46(fvec3) FAdd 490 489
+ Store 48(dvec3v) 491
+ 492: 37(float) Load 39(doublev)
+ 493: 51(fvec4) Load 53(dvec4v)
+ 494: 51(fvec4) CompositeConstruct 492 492 492 492
+ 495: 51(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 494 493
+ 496: 51(fvec4) Load 53(dvec4v)
+ 497: 51(fvec4) FAdd 496 495
+ Store 53(dvec4v) 497
+ 498: 37(float) Load 39(doublev)
+ 499: 37(float) Load 39(doublev)
+ 500: 37(float) Load 39(doublev)
+ 501: 37(float) ExtInst 1(GLSL.std.450) 49(SmoothStep) 498 499 500
+ 502: 37(float) Load 39(doublev)
+ 503: 37(float) FAdd 502 501
+ Store 39(doublev) 503
+ 504: 41(fvec2) Load 43(dvec2v)
+ 505: 41(fvec2) Load 43(dvec2v)
+ 506: 41(fvec2) Load 43(dvec2v)
+ 507: 41(fvec2) ExtInst 1(GLSL.std.450) 49(SmoothStep) 504 505 506
+ 508: 41(fvec2) Load 43(dvec2v)
+ 509: 41(fvec2) FAdd 508 507
+ Store 43(dvec2v) 509
+ 510: 46(fvec3) Load 48(dvec3v)
+ 511: 46(fvec3) Load 48(dvec3v)
+ 512: 46(fvec3) Load 48(dvec3v)
+ 513: 46(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 510 511 512
+ 514: 46(fvec3) Load 48(dvec3v)
+ 515: 46(fvec3) FAdd 514 513
+ Store 48(dvec3v) 515
+ 516: 51(fvec4) Load 53(dvec4v)
+ 517: 51(fvec4) Load 53(dvec4v)
+ 518: 51(fvec4) Load 53(dvec4v)
+ 519: 51(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 516 517 518
+ 520: 51(fvec4) Load 53(dvec4v)
+ 521: 51(fvec4) FAdd 520 519
+ Store 53(dvec4v) 521
+ 522: 37(float) Load 39(doublev)
+ 523: 37(float) Load 39(doublev)
+ 524: 41(fvec2) Load 43(dvec2v)
+ 525: 41(fvec2) CompositeConstruct 522 522
+ 526: 41(fvec2) CompositeConstruct 523 523
+ 527: 41(fvec2) ExtInst 1(GLSL.std.450) 49(SmoothStep) 525 526 524
+ 528: 41(fvec2) Load 43(dvec2v)
+ 529: 41(fvec2) FAdd 528 527
+ Store 43(dvec2v) 529
+ 530: 37(float) Load 39(doublev)
+ 531: 37(float) Load 39(doublev)
+ 532: 46(fvec3) Load 48(dvec3v)
+ 533: 46(fvec3) CompositeConstruct 530 530 530
+ 534: 46(fvec3) CompositeConstruct 531 531 531
+ 535: 46(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 533 534 532
+ 536: 46(fvec3) Load 48(dvec3v)
+ 537: 46(fvec3) FAdd 536 535
+ Store 48(dvec3v) 537
+ 538: 37(float) Load 39(doublev)
+ 539: 37(float) Load 39(doublev)
+ 540: 51(fvec4) Load 53(dvec4v)
+ 541: 51(fvec4) CompositeConstruct 538 538 538 538
+ 542: 51(fvec4) CompositeConstruct 539 539 539 539
+ 543: 51(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 541 542 540
+ 544: 51(fvec4) Load 53(dvec4v)
+ 545: 51(fvec4) FAdd 544 543
+ Store 53(dvec4v) 545
+ 546: 37(float) Load 39(doublev)
+ 547: 426(bool) IsNan 546
+ Store 428(boolv) 547
+ 548: 41(fvec2) Load 43(dvec2v)
+ 549: 435(bvec2) IsNan 548
+ Store 437(bvec2v) 549
+ 550: 46(fvec3) Load 48(dvec3v)
+ 551: 444(bvec3) IsNan 550
+ Store 446(bvec3v) 551
+ 552: 51(fvec4) Load 53(dvec4v)
+ 553: 453(bvec4) IsNan 552
+ Store 455(bvec4v) 553
+ 555: 426(bool) Load 428(boolv)
+ SelectionMerge 557 None
+ BranchConditional 555 556 560
+ 556: Label
+ 558: 37(float) Load 39(doublev)
+ 559: 426(bool) IsInf 558
+ Store 554 559
+ Branch 557
+ 560: Label
+ Store 554 561
+ Branch 557
+ 557: Label
+ 562: 426(bool) Load 554
+ Store 428(boolv) 562
+ 564: 426(bool) Load 428(boolv)
+ SelectionMerge 566 None
+ BranchConditional 564 565 569
+ 565: Label
+ 567: 41(fvec2) Load 43(dvec2v)
+ 568: 435(bvec2) IsInf 567
+ Store 563 568
+ Branch 566
+ 569: Label
+ Store 563 570
+ Branch 566
+ 566: Label
+ 571: 435(bvec2) Load 563
+ Store 437(bvec2v) 571
+ 573: 426(bool) Load 428(boolv)
+ SelectionMerge 575 None
+ BranchConditional 573 574 578
+ 574: Label
+ 576: 46(fvec3) Load 48(dvec3v)
+ 577: 444(bvec3) IsInf 576
+ Store 572 577
+ Branch 575
+ 578: Label
+ Store 572 579
+ Branch 575
+ 575: Label
+ 580: 444(bvec3) Load 572
+ Store 446(bvec3v) 580
+ 582: 426(bool) Load 428(boolv)
+ SelectionMerge 584 None
+ BranchConditional 582 583 587
+ 583: Label
+ 585: 51(fvec4) Load 53(dvec4v)
+ 586: 453(bvec4) IsInf 585
+ Store 581 586
+ Branch 584
+ 587: Label
+ Store 581 588
+ Branch 584
+ 584: Label
+ 589: 453(bvec4) Load 581
+ Store 455(bvec4v) 589
+ 590: 37(float) Load 39(doublev)
+ 591: 37(float) ExtInst 1(GLSL.std.450) 66(Length) 590
+ 592: 37(float) Load 39(doublev)
+ 593: 37(float) FAdd 592 591
+ Store 39(doublev) 593
+ 594: 41(fvec2) Load 43(dvec2v)
+ 595: 37(float) ExtInst 1(GLSL.std.450) 66(Length) 594
+ 596: 37(float) Load 39(doublev)
+ 597: 37(float) FAdd 596 595
+ Store 39(doublev) 597
+ 598: 46(fvec3) Load 48(dvec3v)
+ 599: 37(float) ExtInst 1(GLSL.std.450) 66(Length) 598
+ 600: 37(float) Load 39(doublev)
+ 601: 37(float) FAdd 600 599
+ Store 39(doublev) 601
+ 602: 51(fvec4) Load 53(dvec4v)
+ 603: 37(float) ExtInst 1(GLSL.std.450) 66(Length) 602
+ 604: 37(float) Load 39(doublev)
+ 605: 37(float) FAdd 604 603
+ Store 39(doublev) 605
+ 606: 37(float) Load 39(doublev)
+ 607: 37(float) Load 39(doublev)
+ 608: 37(float) ExtInst 1(GLSL.std.450) 67(Distance) 606 607
+ 609: 37(float) Load 39(doublev)
+ 610: 37(float) FAdd 609 608
+ Store 39(doublev) 610
+ 611: 41(fvec2) Load 43(dvec2v)
+ 612: 41(fvec2) Load 43(dvec2v)
+ 613: 37(float) ExtInst 1(GLSL.std.450) 67(Distance) 611 612
+ 614: 37(float) Load 39(doublev)
+ 615: 37(float) FAdd 614 613
+ Store 39(doublev) 615
+ 616: 46(fvec3) Load 48(dvec3v)
+ 617: 46(fvec3) Load 48(dvec3v)
+ 618: 37(float) ExtInst 1(GLSL.std.450) 67(Distance) 616 617
+ 619: 37(float) Load 39(doublev)
+ 620: 37(float) FAdd 619 618
+ Store 39(doublev) 620
+ 621: 51(fvec4) Load 53(dvec4v)
+ 622: 51(fvec4) Load 53(dvec4v)
+ 623: 37(float) ExtInst 1(GLSL.std.450) 67(Distance) 621 622
+ 624: 37(float) Load 39(doublev)
+ 625: 37(float) FAdd 624 623
+ Store 39(doublev) 625
+ 626: 37(float) Load 39(doublev)
+ 627: 37(float) Load 39(doublev)
+ 628: 37(float) FMul 626 627
+ 629: 37(float) Load 39(doublev)
+ 630: 37(float) FAdd 629 628
+ Store 39(doublev) 630
+ 631: 41(fvec2) Load 43(dvec2v)
+ 632: 41(fvec2) Load 43(dvec2v)
+ 633: 37(float) Dot 631 632
+ 634: 37(float) Load 39(doublev)
+ 635: 37(float) FAdd 634 633
+ Store 39(doublev) 635
+ 636: 46(fvec3) Load 48(dvec3v)
+ 637: 46(fvec3) Load 48(dvec3v)
+ 638: 37(float) Dot 636 637
+ 639: 37(float) Load 39(doublev)
+ 640: 37(float) FAdd 639 638
+ Store 39(doublev) 640
+ 641: 51(fvec4) Load 53(dvec4v)
+ 642: 51(fvec4) Load 53(dvec4v)
+ 643: 37(float) Dot 641 642
+ 644: 37(float) Load 39(doublev)
+ 645: 37(float) FAdd 644 643
+ Store 39(doublev) 645
+ 646: 46(fvec3) Load 48(dvec3v)
+ 647: 46(fvec3) Load 48(dvec3v)
+ 648: 46(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 646 647
+ 649: 46(fvec3) Load 48(dvec3v)
+ 650: 46(fvec3) FAdd 649 648
+ Store 48(dvec3v) 650
+ 651: 37(float) Load 39(doublev)
+ 652: 37(float) ExtInst 1(GLSL.std.450) 69(Normalize) 651
+ 653: 37(float) Load 39(doublev)
+ 654: 37(float) FAdd 653 652
+ Store 39(doublev) 654
+ 655: 41(fvec2) Load 43(dvec2v)
+ 656: 41(fvec2) ExtInst 1(GLSL.std.450) 69(Normalize) 655
+ 657: 41(fvec2) Load 43(dvec2v)
+ 658: 41(fvec2) FAdd 657 656
+ Store 43(dvec2v) 658
+ 659: 46(fvec3) Load 48(dvec3v)
+ 660: 46(fvec3) ExtInst 1(GLSL.std.450) 69(Normalize) 659
+ 661: 46(fvec3) Load 48(dvec3v)
+ 662: 46(fvec3) FAdd 661 660
+ Store 48(dvec3v) 662
+ 663: 51(fvec4) Load 53(dvec4v)
+ 664: 51(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 663
+ 665: 51(fvec4) Load 53(dvec4v)
+ 666: 51(fvec4) FAdd 665 664
+ Store 53(dvec4v) 666
+ 667: 37(float) Load 39(doublev)
+ 668: 37(float) Load 39(doublev)
+ 669: 37(float) Load 39(doublev)
+ 670: 37(float) ExtInst 1(GLSL.std.450) 70(FaceForward) 667 668 669
+ 671: 37(float) Load 39(doublev)
+ 672: 37(float) FAdd 671 670
+ Store 39(doublev) 672
+ 673: 41(fvec2) Load 43(dvec2v)
+ 674: 41(fvec2) Load 43(dvec2v)
+ 675: 41(fvec2) Load 43(dvec2v)
+ 676: 41(fvec2) ExtInst 1(GLSL.std.450) 70(FaceForward) 673 674 675
+ 677: 41(fvec2) Load 43(dvec2v)
+ 678: 41(fvec2) FAdd 677 676
+ Store 43(dvec2v) 678
+ 679: 46(fvec3) Load 48(dvec3v)
+ 680: 46(fvec3) Load 48(dvec3v)
+ 681: 46(fvec3) Load 48(dvec3v)
+ 682: 46(fvec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 679 680 681
+ 683: 46(fvec3) Load 48(dvec3v)
+ 684: 46(fvec3) FAdd 683 682
+ Store 48(dvec3v) 684
+ 685: 51(fvec4) Load 53(dvec4v)
+ 686: 51(fvec4) Load 53(dvec4v)
+ 687: 51(fvec4) Load 53(dvec4v)
+ 688: 51(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 685 686 687
+ 689: 51(fvec4) Load 53(dvec4v)
+ 690: 51(fvec4) FAdd 689 688
+ Store 53(dvec4v) 690
+ 691: 37(float) Load 39(doublev)
+ 692: 37(float) Load 39(doublev)
+ 693: 37(float) ExtInst 1(GLSL.std.450) 71(Reflect) 691 692
+ 694: 37(float) Load 39(doublev)
+ 695: 37(float) FAdd 694 693
+ Store 39(doublev) 695
+ 696: 41(fvec2) Load 43(dvec2v)
+ 697: 41(fvec2) Load 43(dvec2v)
+ 698: 41(fvec2) ExtInst 1(GLSL.std.450) 71(Reflect) 696 697
+ 699: 41(fvec2) Load 43(dvec2v)
+ 700: 41(fvec2) FAdd 699 698
+ Store 43(dvec2v) 700
+ 701: 46(fvec3) Load 48(dvec3v)
+ 702: 46(fvec3) Load 48(dvec3v)
+ 703: 46(fvec3) ExtInst 1(GLSL.std.450) 71(Reflect) 701 702
+ 704: 46(fvec3) Load 48(dvec3v)
+ 705: 46(fvec3) FAdd 704 703
+ Store 48(dvec3v) 705
+ 706: 51(fvec4) Load 53(dvec4v)
+ 707: 51(fvec4) Load 53(dvec4v)
+ 708: 51(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 706 707
+ 709: 51(fvec4) Load 53(dvec4v)
+ 710: 51(fvec4) FAdd 709 708
+ Store 53(dvec4v) 710
+ 711: 37(float) Load 39(doublev)
+ 712: 37(float) Load 39(doublev)
+ 713: 37(float) Load 39(doublev)
+ 714: 37(float) ExtInst 1(GLSL.std.450) 72(Refract) 711 712 713
+ 715: 37(float) Load 39(doublev)
+ 716: 37(float) FAdd 715 714
+ Store 39(doublev) 716
+ 717: 41(fvec2) Load 43(dvec2v)
+ 718: 41(fvec2) Load 43(dvec2v)
+ 719: 37(float) Load 39(doublev)
+ 720: 41(fvec2) ExtInst 1(GLSL.std.450) 72(Refract) 717 718 719
+ 721: 41(fvec2) Load 43(dvec2v)
+ 722: 41(fvec2) FAdd 721 720
+ Store 43(dvec2v) 722
+ 723: 46(fvec3) Load 48(dvec3v)
+ 724: 46(fvec3) Load 48(dvec3v)
+ 725: 37(float) Load 39(doublev)
+ 726: 46(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 723 724 725
+ 727: 46(fvec3) Load 48(dvec3v)
+ 728: 46(fvec3) FAdd 727 726
+ Store 48(dvec3v) 728
+ 729: 51(fvec4) Load 53(dvec4v)
+ 730: 51(fvec4) Load 53(dvec4v)
+ 731: 37(float) Load 39(doublev)
+ 732: 51(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 729 730 731
+ 733: 51(fvec4) Load 53(dvec4v)
+ 734: 51(fvec4) FAdd 733 732
+ Store 53(dvec4v) 734
+ 738: 41(fvec2) Load 43(dvec2v)
+ 739: 41(fvec2) Load 43(dvec2v)
+ 740: 735 OuterProduct 738 739
+ Store 737(dmat2v) 740
+ 744: 46(fvec3) Load 48(dvec3v)
+ 745: 46(fvec3) Load 48(dvec3v)
+ 746: 741 OuterProduct 744 745
+ Store 743(dmat3v) 746
+ 750: 51(fvec4) Load 53(dvec4v)
+ 751: 51(fvec4) Load 53(dvec4v)
+ 752: 747 OuterProduct 750 751
+ Store 749(dmat4v) 752
+ 756: 46(fvec3) Load 48(dvec3v)
+ 757: 41(fvec2) Load 43(dvec2v)
+ 758: 753 OuterProduct 756 757
+ Store 755(dmat2x3v) 758
+ 762: 41(fvec2) Load 43(dvec2v)
+ 763: 46(fvec3) Load 48(dvec3v)
+ 764: 759 OuterProduct 762 763
+ Store 761(dmat3x2v) 764
+ 768: 51(fvec4) Load 53(dvec4v)
+ 769: 41(fvec2) Load 43(dvec2v)
+ 770: 765 OuterProduct 768 769
+ Store 767(dmat2x4v) 770
+ 774: 41(fvec2) Load 43(dvec2v)
+ 775: 51(fvec4) Load 53(dvec4v)
+ 776: 771 OuterProduct 774 775
+ Store 773(dmat4x2v) 776
+ 780: 51(fvec4) Load 53(dvec4v)
+ 781: 46(fvec3) Load 48(dvec3v)
+ 782: 777 OuterProduct 780 781
+ Store 779(dmat3x4v) 782
+ 786: 46(fvec3) Load 48(dvec3v)
+ 787: 51(fvec4) Load 53(dvec4v)
+ 788: 783 OuterProduct 786 787
+ Store 785(dmat4x3v) 788
+ 789: 735 Load 737(dmat2v)
+ 790: 735 Load 737(dmat2v)
+ 791: 41(fvec2) CompositeExtract 789 0
+ 792: 41(fvec2) CompositeExtract 790 0
+ 793: 41(fvec2) FMul 791 792
+ 794: 41(fvec2) CompositeExtract 789 1
+ 795: 41(fvec2) CompositeExtract 790 1
+ 796: 41(fvec2) FMul 794 795
+ 797: 735 CompositeConstruct 793 796
+ 798: 735 Load 737(dmat2v)
+ 799: 735 MatrixTimesMatrix 798 797
+ Store 737(dmat2v) 799
+ 800: 741 Load 743(dmat3v)
+ 801: 741 Load 743(dmat3v)
+ 802: 46(fvec3) CompositeExtract 800 0
+ 803: 46(fvec3) CompositeExtract 801 0
+ 804: 46(fvec3) FMul 802 803
+ 805: 46(fvec3) CompositeExtract 800 1
+ 806: 46(fvec3) CompositeExtract 801 1
+ 807: 46(fvec3) FMul 805 806
+ 808: 46(fvec3) CompositeExtract 800 2
+ 809: 46(fvec3) CompositeExtract 801 2
+ 810: 46(fvec3) FMul 808 809
+ 811: 741 CompositeConstruct 804 807 810
+ 812: 741 Load 743(dmat3v)
+ 813: 741 MatrixTimesMatrix 812 811
+ Store 743(dmat3v) 813
+ 814: 747 Load 749(dmat4v)
+ 815: 747 Load 749(dmat4v)
+ 816: 51(fvec4) CompositeExtract 814 0
+ 817: 51(fvec4) CompositeExtract 815 0
+ 818: 51(fvec4) FMul 816 817
+ 819: 51(fvec4) CompositeExtract 814 1
+ 820: 51(fvec4) CompositeExtract 815 1
+ 821: 51(fvec4) FMul 819 820
+ 822: 51(fvec4) CompositeExtract 814 2
+ 823: 51(fvec4) CompositeExtract 815 2
+ 824: 51(fvec4) FMul 822 823
+ 825: 51(fvec4) CompositeExtract 814 3
+ 826: 51(fvec4) CompositeExtract 815 3
+ 827: 51(fvec4) FMul 825 826
+ 828: 747 CompositeConstruct 818 821 824 827
+ 829: 747 Load 749(dmat4v)
+ 830: 747 MatrixTimesMatrix 829 828
+ Store 749(dmat4v) 830
+ 831: 753 Load 755(dmat2x3v)
+ 832: 753 Load 755(dmat2x3v)
+ 833: 46(fvec3) CompositeExtract 831 0
+ 834: 46(fvec3) CompositeExtract 832 0
+ 835: 46(fvec3) FMul 833 834
+ 836: 46(fvec3) CompositeExtract 831 1
+ 837: 46(fvec3) CompositeExtract 832 1
+ 838: 46(fvec3) FMul 836 837
+ 839: 753 CompositeConstruct 835 838
+ Store 755(dmat2x3v) 839
+ 840: 765 Load 767(dmat2x4v)
+ 841: 765 Load 767(dmat2x4v)
+ 842: 51(fvec4) CompositeExtract 840 0
+ 843: 51(fvec4) CompositeExtract 841 0
+ 844: 51(fvec4) FMul 842 843
+ 845: 51(fvec4) CompositeExtract 840 1
+ 846: 51(fvec4) CompositeExtract 841 1
+ 847: 51(fvec4) FMul 845 846
+ 848: 765 CompositeConstruct 844 847
+ Store 767(dmat2x4v) 848
+ 849: 759 Load 761(dmat3x2v)
+ 850: 759 Load 761(dmat3x2v)
+ 851: 41(fvec2) CompositeExtract 849 0
+ 852: 41(fvec2) CompositeExtract 850 0
+ 853: 41(fvec2) FMul 851 852
+ 854: 41(fvec2) CompositeExtract 849 1
+ 855: 41(fvec2) CompositeExtract 850 1
+ 856: 41(fvec2) FMul 854 855
+ 857: 41(fvec2) CompositeExtract 849 2
+ 858: 41(fvec2) CompositeExtract 850 2
+ 859: 41(fvec2) FMul 857 858
+ 860: 759 CompositeConstruct 853 856 859
+ Store 761(dmat3x2v) 860
+ 861: 777 Load 779(dmat3x4v)
+ 862: 777 Load 779(dmat3x4v)
+ 863: 51(fvec4) CompositeExtract 861 0
+ 864: 51(fvec4) CompositeExtract 862 0
+ 865: 51(fvec4) FMul 863 864
+ 866: 51(fvec4) CompositeExtract 861 1
+ 867: 51(fvec4) CompositeExtract 862 1
+ 868: 51(fvec4) FMul 866 867
+ 869: 51(fvec4) CompositeExtract 861 2
+ 870: 51(fvec4) CompositeExtract 862 2
+ 871: 51(fvec4) FMul 869 870
+ 872: 777 CompositeConstruct 865 868 871
+ Store 779(dmat3x4v) 872
+ 873: 771 Load 773(dmat4x2v)
+ 874: 771 Load 773(dmat4x2v)
+ 875: 41(fvec2) CompositeExtract 873 0
+ 876: 41(fvec2) CompositeExtract 874 0
+ 877: 41(fvec2) FMul 875 876
+ 878: 41(fvec2) CompositeExtract 873 1
+ 879: 41(fvec2) CompositeExtract 874 1
+ 880: 41(fvec2) FMul 878 879
+ 881: 41(fvec2) CompositeExtract 873 2
+ 882: 41(fvec2) CompositeExtract 874 2
+ 883: 41(fvec2) FMul 881 882
+ 884: 41(fvec2) CompositeExtract 873 3
+ 885: 41(fvec2) CompositeExtract 874 3
+ 886: 41(fvec2) FMul 884 885
+ 887: 771 CompositeConstruct 877 880 883 886
+ Store 773(dmat4x2v) 887
+ 888: 783 Load 785(dmat4x3v)
+ 889: 783 Load 785(dmat4x3v)
+ 890: 46(fvec3) CompositeExtract 888 0
+ 891: 46(fvec3) CompositeExtract 889 0
+ 892: 46(fvec3) FMul 890 891
+ 893: 46(fvec3) CompositeExtract 888 1
+ 894: 46(fvec3) CompositeExtract 889 1
+ 895: 46(fvec3) FMul 893 894
+ 896: 46(fvec3) CompositeExtract 888 2
+ 897: 46(fvec3) CompositeExtract 889 2
+ 898: 46(fvec3) FMul 896 897
+ 899: 46(fvec3) CompositeExtract 888 3
+ 900: 46(fvec3) CompositeExtract 889 3
+ 901: 46(fvec3) FMul 899 900
+ 902: 783 CompositeConstruct 892 895 898 901
+ Store 785(dmat4x3v) 902
+ 903: 735 Load 737(dmat2v)
+ 904: 735 Transpose 903
+ 905: 735 Load 737(dmat2v)
+ 906: 735 MatrixTimesMatrix 905 904
+ Store 737(dmat2v) 906
+ 907: 741 Load 743(dmat3v)
+ 908: 741 Transpose 907
+ 909: 741 Load 743(dmat3v)
+ 910: 741 MatrixTimesMatrix 909 908
+ Store 743(dmat3v) 910
+ 911: 747 Load 749(dmat4v)
+ 912: 747 Transpose 911
+ 913: 747 Load 749(dmat4v)
+ 914: 747 MatrixTimesMatrix 913 912
+ Store 749(dmat4v) 914
+ 915: 759 Load 761(dmat3x2v)
+ 916: 753 Transpose 915
+ Store 755(dmat2x3v) 916
+ 917: 753 Load 755(dmat2x3v)
+ 918: 759 Transpose 917
+ Store 761(dmat3x2v) 918
+ 919: 771 Load 773(dmat4x2v)
+ 920: 765 Transpose 919
+ Store 767(dmat2x4v) 920
+ 921: 765 Load 767(dmat2x4v)
+ 922: 771 Transpose 921
+ Store 773(dmat4x2v) 922
+ 923: 783 Load 785(dmat4x3v)
+ 924: 777 Transpose 923
+ Store 779(dmat3x4v) 924
+ 925: 777 Load 779(dmat3x4v)
+ 926: 783 Transpose 925
+ Store 785(dmat4x3v) 926
+ 927: 735 Load 737(dmat2v)
+ 928: 37(float) ExtInst 1(GLSL.std.450) 33(Determinant) 927
+ 929: 37(float) Load 39(doublev)
+ 930: 37(float) FAdd 929 928
+ Store 39(doublev) 930
+ 931: 741 Load 743(dmat3v)
+ 932: 37(float) ExtInst 1(GLSL.std.450) 33(Determinant) 931
+ 933: 37(float) Load 39(doublev)
+ 934: 37(float) FAdd 933 932
+ Store 39(doublev) 934
+ 935: 747 Load 749(dmat4v)
+ 936: 37(float) ExtInst 1(GLSL.std.450) 33(Determinant) 935
+ 937: 37(float) Load 39(doublev)
+ 938: 37(float) FAdd 937 936
+ Store 39(doublev) 938
+ 939: 735 Load 737(dmat2v)
+ 940: 735 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 939
+ 941: 735 Load 737(dmat2v)
+ 942: 735 MatrixTimesMatrix 941 940
+ Store 737(dmat2v) 942
+ 943: 741 Load 743(dmat3v)
+ 944: 741 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 943
+ 945: 741 Load 743(dmat3v)
+ 946: 741 MatrixTimesMatrix 945 944
+ Store 743(dmat3v) 946
+ 947: 747 Load 749(dmat4v)
+ 948: 747 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 947
+ 949: 747 Load 749(dmat4v)
+ 950: 747 MatrixTimesMatrix 949 948
+ Store 749(dmat4v) 950
+ 951: 37(float) Load 39(doublev)
+ 953: 38(ptr) AccessChain 43(dvec2v) 952
+ 954: 37(float) Load 953
+ 955: 37(float) FAdd 951 954
+ 957: 38(ptr) AccessChain 48(dvec3v) 956
+ 958: 37(float) Load 957
+ 959: 37(float) FAdd 955 958
+ 961: 38(ptr) AccessChain 53(dvec4v) 960
+ 962: 37(float) Load 961
+ 963: 37(float) FAdd 959 962
+ 965: 38(ptr) AccessChain 737(dmat2v) 964 952
+ 966: 37(float) Load 965
+ 967: 37(float) FAdd 963 966
+ 969: 38(ptr) AccessChain 743(dmat3v) 968 956
+ 970: 37(float) Load 969
+ 971: 37(float) FAdd 967 970
+ 972: 38(ptr) AccessChain 749(dmat4v) 25 960
+ 973: 37(float) Load 972
+ 974: 37(float) FAdd 971 973
+ 975: 38(ptr) AccessChain 755(dmat2x3v) 964 952
+ 976: 37(float) Load 975
+ 977: 37(float) FAdd 974 976
+ 978: 38(ptr) AccessChain 761(dmat3x2v) 964 952
+ 979: 37(float) Load 978
+ 980: 37(float) FAdd 977 979
+ 981: 38(ptr) AccessChain 779(dmat3x4v) 968 956
+ 982: 37(float) Load 981
+ 983: 37(float) FAdd 980 982
+ 984: 38(ptr) AccessChain 785(dmat4x3v) 968 956
+ 985: 37(float) Load 984
+ 986: 37(float) FAdd 983 985
+ 987: 38(ptr) AccessChain 767(dmat2x4v) 964 952
+ 988: 37(float) Load 987
+ 989: 37(float) FAdd 986 988
+ 990: 38(ptr) AccessChain 773(dmat4x2v) 964 952
+ 991: 37(float) Load 990
+ 992: 37(float) FAdd 989 991
+ 993: 426(bool) Load 428(boolv)
+ 995: 10(float) Select 993 994 21
+ 996: 37(float) FConvert 995
+ 997: 37(float) FAdd 992 996
+ 998: 435(bvec2) Load 437(bvec2v)
+ 999: 426(bool) CompositeExtract 998 0
+ 1000: 10(float) Select 999 994 21
+ 1001: 37(float) FConvert 1000
+ 1002: 37(float) FAdd 997 1001
+ 1003: 444(bvec3) Load 446(bvec3v)
+ 1004: 426(bool) CompositeExtract 1003 0
+ 1005: 10(float) Select 1004 994 21
+ 1006: 37(float) FConvert 1005
+ 1007: 37(float) FAdd 1002 1006
+ 1008: 453(bvec4) Load 455(bvec4v)
+ 1009: 426(bool) CompositeExtract 1008 0
+ 1010: 10(float) Select 1009 994 21
+ 1011: 37(float) FConvert 1010
+ 1012: 37(float) FAdd 1007 1011
+ 1013: 10(float) FConvert 1012
+ 1014: 11(fvec4) Load 13(outp)
+ 1015: 11(fvec4) VectorTimesScalar 1014 1013
+ Store 13(outp) 1015
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.400.tesc.out b/chromium/third_party/glslang/src/Test/baseResults/spv.400.tesc.out
new file mode 100755
index 00000000000..290a19cdd4e
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.400.tesc.out
@@ -0,0 +1,179 @@
+spv.400.tesc
+Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked tessellation control stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 94
+
+ Capability Tessellation
+ Capability TessellationPointSize
+ Capability ClipDistance
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint TessellationControl 4 "main" 24 41 44 47 55 69 74 80 84 85 88 89 92 93
+ ExecutionMode 4 OutputVertices 4
+ Source GLSL 400
+ SourceExtension "GL_ARB_separate_shader_objects"
+ Name 4 "main"
+ Name 12 "a"
+ Name 17 "p"
+ Name 20 "gl_PerVertex"
+ MemberName 20(gl_PerVertex) 0 "gl_Position"
+ MemberName 20(gl_PerVertex) 1 "gl_PointSize"
+ MemberName 20(gl_PerVertex) 2 "gl_ClipDistance"
+ Name 24 "gl_in"
+ Name 31 "ps"
+ Name 35 "cd"
+ Name 39 "pvi"
+ Name 41 "gl_PatchVerticesIn"
+ Name 43 "pid"
+ Name 44 "gl_PrimitiveID"
+ Name 46 "iid"
+ Name 47 "gl_InvocationID"
+ Name 51 "gl_PerVertex"
+ MemberName 51(gl_PerVertex) 0 "gl_Position"
+ MemberName 51(gl_PerVertex) 1 "gl_PointSize"
+ MemberName 51(gl_PerVertex) 2 "gl_ClipDistance"
+ Name 55 "gl_out"
+ Name 69 "gl_TessLevelOuter"
+ Name 74 "gl_TessLevelInner"
+ Name 79 "outa"
+ Name 80 "patchOut"
+ Name 84 "inb"
+ Name 85 "ind"
+ Name 88 "ivla"
+ Name 89 "ivlb"
+ Name 92 "ovla"
+ Name 93 "ovlb"
+ MemberDecorate 20(gl_PerVertex) 0 BuiltIn Position
+ MemberDecorate 20(gl_PerVertex) 1 BuiltIn PointSize
+ MemberDecorate 20(gl_PerVertex) 2 BuiltIn ClipDistance
+ Decorate 20(gl_PerVertex) Block
+ Decorate 41(gl_PatchVerticesIn) BuiltIn PatchVertices
+ Decorate 44(gl_PrimitiveID) BuiltIn PrimitiveId
+ Decorate 47(gl_InvocationID) BuiltIn InvocationId
+ MemberDecorate 51(gl_PerVertex) 0 BuiltIn Position
+ MemberDecorate 51(gl_PerVertex) 1 BuiltIn PointSize
+ MemberDecorate 51(gl_PerVertex) 2 BuiltIn ClipDistance
+ Decorate 51(gl_PerVertex) Block
+ Decorate 69(gl_TessLevelOuter) Patch
+ Decorate 69(gl_TessLevelOuter) BuiltIn TessLevelOuter
+ Decorate 74(gl_TessLevelInner) Patch
+ Decorate 74(gl_TessLevelInner) BuiltIn TessLevelInner
+ Decorate 80(patchOut) Patch
+ Decorate 88(ivla) Location 3
+ Decorate 89(ivlb) Location 4
+ Decorate 92(ovla) Location 3
+ Decorate 93(ovlb) Location 4
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 0
+ 7: 6(int) Constant 1
+ 8: 6(int) Constant 4062
+ 9: 6(int) Constant 0
+ 10: TypeInt 32 1
+ 11: TypePointer Function 10(int)
+ 13: 10(int) Constant 5392
+ 14: TypeFloat 32
+ 15: TypeVector 14(float) 4
+ 16: TypePointer Function 15(fvec4)
+ 18: 6(int) Constant 3
+ 19: TypeArray 14(float) 18
+20(gl_PerVertex): TypeStruct 15(fvec4) 14(float) 19
+ 21: 6(int) Constant 32
+ 22: TypeArray 20(gl_PerVertex) 21
+ 23: TypePointer Input 22
+ 24(gl_in): 23(ptr) Variable Input
+ 25: 10(int) Constant 1
+ 26: 10(int) Constant 0
+ 27: TypePointer Input 15(fvec4)
+ 30: TypePointer Function 14(float)
+ 32: TypePointer Input 14(float)
+ 36: 10(int) Constant 2
+ 40: TypePointer Input 10(int)
+41(gl_PatchVerticesIn): 40(ptr) Variable Input
+44(gl_PrimitiveID): 40(ptr) Variable Input
+47(gl_InvocationID): 40(ptr) Variable Input
+ 49: 6(int) Constant 2
+ 50: TypeArray 14(float) 49
+51(gl_PerVertex): TypeStruct 15(fvec4) 14(float) 50
+ 52: 6(int) Constant 4
+ 53: TypeArray 51(gl_PerVertex) 52
+ 54: TypePointer Output 53
+ 55(gl_out): 54(ptr) Variable Output
+ 58: TypePointer Output 15(fvec4)
+ 62: TypePointer Output 14(float)
+ 67: TypeArray 14(float) 52
+ 68: TypePointer Output 67
+69(gl_TessLevelOuter): 68(ptr) Variable Output
+ 70: 10(int) Constant 3
+ 71: 14(float) Constant 1078774989
+ 73: TypePointer Output 50
+74(gl_TessLevelInner): 73(ptr) Variable Output
+ 75: 14(float) Constant 1067869798
+ 77: TypeArray 10(int) 52
+ 78: TypePointer Private 77
+ 79(outa): 78(ptr) Variable Private
+ 80(patchOut): 58(ptr) Variable Output
+ 81: TypeVector 14(float) 2
+ 82: TypeArray 81(fvec2) 21
+ 83: TypePointer Input 82
+ 84(inb): 83(ptr) Variable Input
+ 85(ind): 83(ptr) Variable Input
+ 86: TypeArray 15(fvec4) 21
+ 87: TypePointer Input 86
+ 88(ivla): 87(ptr) Variable Input
+ 89(ivlb): 87(ptr) Variable Input
+ 90: TypeArray 15(fvec4) 52
+ 91: TypePointer Output 90
+ 92(ovla): 91(ptr) Variable Output
+ 93(ovlb): 91(ptr) Variable Output
+ 4(main): 2 Function None 3
+ 5: Label
+ 12(a): 11(ptr) Variable Function
+ 17(p): 16(ptr) Variable Function
+ 31(ps): 30(ptr) Variable Function
+ 35(cd): 30(ptr) Variable Function
+ 39(pvi): 11(ptr) Variable Function
+ 43(pid): 11(ptr) Variable Function
+ 46(iid): 11(ptr) Variable Function
+ MemoryBarrier 7 8
+ ControlBarrier 7 7 9
+ Store 12(a) 13
+ 28: 27(ptr) AccessChain 24(gl_in) 25 26
+ 29: 15(fvec4) Load 28
+ Store 17(p) 29
+ 33: 32(ptr) AccessChain 24(gl_in) 25 25
+ 34: 14(float) Load 33
+ Store 31(ps) 34
+ 37: 32(ptr) AccessChain 24(gl_in) 25 36 36
+ 38: 14(float) Load 37
+ Store 35(cd) 38
+ 42: 10(int) Load 41(gl_PatchVerticesIn)
+ Store 39(pvi) 42
+ 45: 10(int) Load 44(gl_PrimitiveID)
+ Store 43(pid) 45
+ 48: 10(int) Load 47(gl_InvocationID)
+ Store 46(iid) 48
+ 56: 10(int) Load 47(gl_InvocationID)
+ 57: 15(fvec4) Load 17(p)
+ 59: 58(ptr) AccessChain 55(gl_out) 56 26
+ Store 59 57
+ 60: 10(int) Load 47(gl_InvocationID)
+ 61: 14(float) Load 31(ps)
+ 63: 62(ptr) AccessChain 55(gl_out) 60 25
+ Store 63 61
+ 64: 10(int) Load 47(gl_InvocationID)
+ 65: 14(float) Load 35(cd)
+ 66: 62(ptr) AccessChain 55(gl_out) 64 36 25
+ Store 66 65
+ 72: 62(ptr) AccessChain 69(gl_TessLevelOuter) 70
+ Store 72 71
+ 76: 62(ptr) AccessChain 74(gl_TessLevelInner) 25
+ Store 76 75
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.400.tese.out b/chromium/third_party/glslang/src/Test/baseResults/spv.400.tese.out
new file mode 100755
index 00000000000..51534b122fe
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.400.tese.out
@@ -0,0 +1,189 @@
+spv.400.tese
+Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked tessellation evaluation stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 96
+
+ Capability Tessellation
+ Capability TessellationPointSize
+ Capability ClipDistance
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint TessellationEvaluation 4 "main" 21 38 41 47 53 61 66 75 79 80 84 88 91 92 95
+ ExecutionMode 4 Triangles
+ ExecutionMode 4 SpacingFractionalOdd
+ ExecutionMode 4 VertexOrderCcw
+ ExecutionMode 4 PointMode
+ Source GLSL 400
+ SourceExtension "GL_ARB_separate_shader_objects"
+ Name 4 "main"
+ Name 8 "a"
+ Name 13 "p"
+ Name 17 "gl_PerVertex"
+ MemberName 17(gl_PerVertex) 0 "gl_Position"
+ MemberName 17(gl_PerVertex) 1 "gl_PointSize"
+ MemberName 17(gl_PerVertex) 2 "gl_ClipDistance"
+ Name 21 "gl_in"
+ Name 28 "ps"
+ Name 32 "cd"
+ Name 36 "pvi"
+ Name 38 "gl_PatchVerticesIn"
+ Name 40 "pid"
+ Name 41 "gl_PrimitiveID"
+ Name 45 "tc"
+ Name 47 "gl_TessCoord"
+ Name 49 "tlo"
+ Name 53 "gl_TessLevelOuter"
+ Name 57 "tli"
+ Name 61 "gl_TessLevelInner"
+ Name 64 "gl_PerVertex"
+ MemberName 64(gl_PerVertex) 0 "gl_Position"
+ MemberName 64(gl_PerVertex) 1 "gl_PointSize"
+ MemberName 64(gl_PerVertex) 2 "gl_ClipDistance"
+ Name 66 ""
+ Name 75 "patchIn"
+ Name 79 "inb"
+ Name 80 "ind"
+ Name 81 "testblb"
+ MemberName 81(testblb) 0 "f"
+ Name 84 "blb"
+ Name 85 "testbld"
+ MemberName 85(testbld) 0 "f"
+ Name 88 "bld"
+ Name 91 "ivla"
+ Name 92 "ivlb"
+ Name 95 "ovla"
+ MemberDecorate 17(gl_PerVertex) 0 BuiltIn Position
+ MemberDecorate 17(gl_PerVertex) 1 BuiltIn PointSize
+ MemberDecorate 17(gl_PerVertex) 2 BuiltIn ClipDistance
+ Decorate 17(gl_PerVertex) Block
+ Decorate 38(gl_PatchVerticesIn) BuiltIn PatchVertices
+ Decorate 41(gl_PrimitiveID) BuiltIn PrimitiveId
+ Decorate 47(gl_TessCoord) BuiltIn TessCoord
+ Decorate 53(gl_TessLevelOuter) Patch
+ Decorate 53(gl_TessLevelOuter) BuiltIn TessLevelOuter
+ Decorate 61(gl_TessLevelInner) Patch
+ Decorate 61(gl_TessLevelInner) BuiltIn TessLevelInner
+ MemberDecorate 64(gl_PerVertex) 0 BuiltIn Position
+ MemberDecorate 64(gl_PerVertex) 1 BuiltIn PointSize
+ MemberDecorate 64(gl_PerVertex) 2 BuiltIn ClipDistance
+ Decorate 64(gl_PerVertex) Block
+ Decorate 75(patchIn) Patch
+ Decorate 81(testblb) Block
+ Decorate 85(testbld) Block
+ Decorate 91(ivla) Location 23
+ Decorate 92(ivlb) Location 24
+ Decorate 95(ovla) Location 23
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypePointer Function 6(int)
+ 9: 6(int) Constant 1512
+ 10: TypeFloat 32
+ 11: TypeVector 10(float) 4
+ 12: TypePointer Function 11(fvec4)
+ 14: TypeInt 32 0
+ 15: 14(int) Constant 3
+ 16: TypeArray 10(float) 15
+17(gl_PerVertex): TypeStruct 11(fvec4) 10(float) 16
+ 18: 14(int) Constant 32
+ 19: TypeArray 17(gl_PerVertex) 18
+ 20: TypePointer Input 19
+ 21(gl_in): 20(ptr) Variable Input
+ 22: 6(int) Constant 1
+ 23: 6(int) Constant 0
+ 24: TypePointer Input 11(fvec4)
+ 27: TypePointer Function 10(float)
+ 29: TypePointer Input 10(float)
+ 33: 6(int) Constant 2
+ 37: TypePointer Input 6(int)
+38(gl_PatchVerticesIn): 37(ptr) Variable Input
+41(gl_PrimitiveID): 37(ptr) Variable Input
+ 43: TypeVector 10(float) 3
+ 44: TypePointer Function 43(fvec3)
+ 46: TypePointer Input 43(fvec3)
+47(gl_TessCoord): 46(ptr) Variable Input
+ 50: 14(int) Constant 4
+ 51: TypeArray 10(float) 50
+ 52: TypePointer Input 51
+53(gl_TessLevelOuter): 52(ptr) Variable Input
+ 54: 6(int) Constant 3
+ 58: 14(int) Constant 2
+ 59: TypeArray 10(float) 58
+ 60: TypePointer Input 59
+61(gl_TessLevelInner): 60(ptr) Variable Input
+64(gl_PerVertex): TypeStruct 11(fvec4) 10(float) 16
+ 65: TypePointer Output 64(gl_PerVertex)
+ 66: 65(ptr) Variable Output
+ 68: TypePointer Output 11(fvec4)
+ 71: TypePointer Output 10(float)
+ 75(patchIn): 24(ptr) Variable Input
+ 76: TypeVector 10(float) 2
+ 77: TypeArray 76(fvec2) 18
+ 78: TypePointer Input 77
+ 79(inb): 78(ptr) Variable Input
+ 80(ind): 78(ptr) Variable Input
+ 81(testblb): TypeStruct 6(int)
+ 82: TypeArray 81(testblb) 18
+ 83: TypePointer Input 82
+ 84(blb): 83(ptr) Variable Input
+ 85(testbld): TypeStruct 6(int)
+ 86: TypeArray 85(testbld) 18
+ 87: TypePointer Input 86
+ 88(bld): 87(ptr) Variable Input
+ 89: TypeArray 11(fvec4) 18
+ 90: TypePointer Input 89
+ 91(ivla): 90(ptr) Variable Input
+ 92(ivlb): 90(ptr) Variable Input
+ 93: TypeArray 11(fvec4) 58
+ 94: TypePointer Output 93
+ 95(ovla): 94(ptr) Variable Output
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(a): 7(ptr) Variable Function
+ 13(p): 12(ptr) Variable Function
+ 28(ps): 27(ptr) Variable Function
+ 32(cd): 27(ptr) Variable Function
+ 36(pvi): 7(ptr) Variable Function
+ 40(pid): 7(ptr) Variable Function
+ 45(tc): 44(ptr) Variable Function
+ 49(tlo): 27(ptr) Variable Function
+ 57(tli): 27(ptr) Variable Function
+ Store 8(a) 9
+ 25: 24(ptr) AccessChain 21(gl_in) 22 23
+ 26: 11(fvec4) Load 25
+ Store 13(p) 26
+ 30: 29(ptr) AccessChain 21(gl_in) 22 22
+ 31: 10(float) Load 30
+ Store 28(ps) 31
+ 34: 29(ptr) AccessChain 21(gl_in) 22 33 33
+ 35: 10(float) Load 34
+ Store 32(cd) 35
+ 39: 6(int) Load 38(gl_PatchVerticesIn)
+ Store 36(pvi) 39
+ 42: 6(int) Load 41(gl_PrimitiveID)
+ Store 40(pid) 42
+ 48: 43(fvec3) Load 47(gl_TessCoord)
+ Store 45(tc) 48
+ 55: 29(ptr) AccessChain 53(gl_TessLevelOuter) 54
+ 56: 10(float) Load 55
+ Store 49(tlo) 56
+ 62: 29(ptr) AccessChain 61(gl_TessLevelInner) 22
+ 63: 10(float) Load 62
+ Store 57(tli) 63
+ 67: 11(fvec4) Load 13(p)
+ 69: 68(ptr) AccessChain 66 23
+ Store 69 67
+ 70: 10(float) Load 28(ps)
+ 72: 71(ptr) AccessChain 66 22
+ Store 72 70
+ 73: 10(float) Load 32(cd)
+ 74: 71(ptr) AccessChain 66 33 33
+ Store 74 73
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.420.geom.out b/chromium/third_party/glslang/src/Test/baseResults/spv.420.geom.out
new file mode 100644
index 00000000000..78e3aaa2847
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.420.geom.out
@@ -0,0 +1,132 @@
+spv.420.geom
+Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked geometry stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 72
+
+ Capability Geometry
+ Capability GeometryPointSize
+ Capability ImageGatherExtended
+ Capability GeometryStreams
+ Capability MultiViewport
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Geometry 4 "main" 14 23 28 33 46
+ ExecutionMode 4 Triangles
+ ExecutionMode 4 Invocations 4
+ ExecutionMode 4 OutputLineStrip
+ ExecutionMode 4 OutputVertices 127
+ Source GLSL 420
+ Name 4 "main"
+ Name 8 "p"
+ Name 9 "gl_PerVertex"
+ MemberName 9(gl_PerVertex) 0 "gl_PointSize"
+ Name 14 "gl_in"
+ Name 21 "gl_PerVertex"
+ MemberName 21(gl_PerVertex) 0 "gl_PointSize"
+ Name 23 ""
+ Name 28 "gl_ViewportIndex"
+ Name 31 "id"
+ Name 33 "gl_InvocationID"
+ Name 37 "v"
+ Name 41 "s2D"
+ Name 46 "coord"
+ Name 64 "i"
+ Name 67 "indexable"
+ MemberDecorate 9(gl_PerVertex) 0 BuiltIn PointSize
+ Decorate 9(gl_PerVertex) Block
+ MemberDecorate 21(gl_PerVertex) 0 BuiltIn PointSize
+ Decorate 21(gl_PerVertex) Block
+ Decorate 21(gl_PerVertex) Stream 0
+ Decorate 23 Stream 0
+ Decorate 28(gl_ViewportIndex) Stream 0
+ Decorate 28(gl_ViewportIndex) BuiltIn ViewportIndex
+ Decorate 33(gl_InvocationID) BuiltIn InvocationId
+ Decorate 41(s2D) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypePointer Function 6(float)
+ 9(gl_PerVertex): TypeStruct 6(float)
+ 10: TypeInt 32 0
+ 11: 10(int) Constant 3
+ 12: TypeArray 9(gl_PerVertex) 11
+ 13: TypePointer Input 12
+ 14(gl_in): 13(ptr) Variable Input
+ 15: TypeInt 32 1
+ 16: 15(int) Constant 1
+ 17: 15(int) Constant 0
+ 18: TypePointer Input 6(float)
+21(gl_PerVertex): TypeStruct 6(float)
+ 22: TypePointer Output 21(gl_PerVertex)
+ 23: 22(ptr) Variable Output
+ 25: TypePointer Output 6(float)
+ 27: TypePointer Output 15(int)
+28(gl_ViewportIndex): 27(ptr) Variable Output
+ 29: 15(int) Constant 7
+ 30: TypePointer Function 15(int)
+ 32: TypePointer Input 15(int)
+33(gl_InvocationID): 32(ptr) Variable Input
+ 35: TypeVector 6(float) 4
+ 36: TypePointer Function 35(fvec4)
+ 38: TypeImage 6(float) 2D sampled format:Unknown
+ 39: TypeSampledImage 38
+ 40: TypePointer UniformConstant 39
+ 41(s2D): 40(ptr) Variable UniformConstant
+ 43: TypeVector 6(float) 2
+ 44: TypeArray 43(fvec2) 11
+ 45: TypePointer Input 44
+ 46(coord): 45(ptr) Variable Input
+ 47: TypePointer Input 43(fvec2)
+ 50: TypeVector 15(int) 2
+ 51: 10(int) Constant 5
+ 52: TypeArray 50(ivec2) 51
+ 53: 50(ivec2) ConstantComposite 17 16
+ 54: 15(int) Constant 4294967294
+ 55: 50(ivec2) ConstantComposite 16 54
+ 56: 15(int) Constant 3
+ 57: 50(ivec2) ConstantComposite 17 56
+ 58: 15(int) Constant 4294967293
+ 59: 50(ivec2) ConstantComposite 58 17
+ 60: 15(int) Constant 2
+ 61: 50(ivec2) ConstantComposite 60 16
+ 62: 52 ConstantComposite 53 55 57 59 61
+ 63: TypePointer Private 15(int)
+ 64(i): 63(ptr) Variable Private
+ 66: TypePointer Function 52
+ 68: TypePointer Function 50(ivec2)
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(p): 7(ptr) Variable Function
+ 31(id): 30(ptr) Variable Function
+ 37(v): 36(ptr) Variable Function
+ 67(indexable): 66(ptr) Variable Function
+ 19: 18(ptr) AccessChain 14(gl_in) 16 17
+ 20: 6(float) Load 19
+ Store 8(p) 20
+ 24: 6(float) Load 8(p)
+ 26: 25(ptr) AccessChain 23 17
+ Store 26 24
+ Store 28(gl_ViewportIndex) 29
+ EmitStreamVertex 16
+ EndStreamPrimitive 17
+ EmitVertex
+ EndPrimitive
+ 34: 15(int) Load 33(gl_InvocationID)
+ Store 31(id) 34
+ 42: 39 Load 41(s2D)
+ 48: 47(ptr) AccessChain 46(coord) 17
+ 49: 43(fvec2) Load 48
+ 65: 15(int) Load 64(i)
+ Store 67(indexable) 62
+ 69: 68(ptr) AccessChain 67(indexable) 65
+ 70: 50(ivec2) Load 69
+ 71: 35(fvec4) ImageGather 42 49 17 Offset 70
+ Store 37(v) 71
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.430.vert.out b/chromium/third_party/glslang/src/Test/baseResults/spv.430.vert.out
new file mode 100755
index 00000000000..d5332d253d1
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.430.vert.out
@@ -0,0 +1,143 @@
+spv.430.vert
+Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 66
+
+ Capability Shader
+ Capability ClipDistance
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Vertex 4 "main" 12 23 34 38 41 42 62 65
+ Source GLSL 450
+ Name 4 "main"
+ Name 10 "gl_PerVertex"
+ MemberName 10(gl_PerVertex) 0 "gl_ClipDistance"
+ Name 12 ""
+ Name 23 "bad"
+ Name 34 "badorder3"
+ Name 38 "f"
+ Name 41 "badorder"
+ Name 42 "badorder2"
+ Name 43 "boundblock"
+ MemberName 43(boundblock) 0 "aoeu"
+ Name 45 "boundInst"
+ Name 46 "anonblock"
+ MemberName 46(anonblock) 0 "aoeu"
+ Name 48 ""
+ Name 52 "sampb1"
+ Name 55 "sampb2"
+ Name 56 "sampb4"
+ Name 59 "S"
+ MemberName 59(S) 0 "a"
+ MemberName 59(S) 1 "b"
+ MemberName 59(S) 2 "c"
+ Name 60 "SS"
+ MemberName 60(SS) 0 "b"
+ MemberName 60(SS) 1 "s"
+ MemberName 60(SS) 2 "c"
+ Name 62 "var"
+ Name 63 "MS"
+ MemberName 63(MS) 0 "f"
+ Name 65 "outMS"
+ MemberDecorate 10(gl_PerVertex) 0 BuiltIn ClipDistance
+ Decorate 10(gl_PerVertex) Block
+ Decorate 34(badorder3) Flat
+ Decorate 42(badorder2) Invariant
+ MemberDecorate 43(boundblock) 0 Offset 0
+ Decorate 43(boundblock) Block
+ Decorate 45(boundInst) DescriptorSet 0
+ Decorate 45(boundInst) Binding 3
+ MemberDecorate 46(anonblock) 0 Offset 0
+ Decorate 46(anonblock) Block
+ Decorate 48 DescriptorSet 0
+ Decorate 48 Binding 7
+ Decorate 52(sampb1) DescriptorSet 0
+ Decorate 52(sampb1) Binding 4
+ Decorate 55(sampb2) DescriptorSet 0
+ Decorate 55(sampb2) Binding 5
+ Decorate 56(sampb4) DescriptorSet 0
+ Decorate 56(sampb4) Binding 31
+ MemberDecorate 60(SS) 0 Flat
+ MemberDecorate 60(SS) 1 Flat
+ MemberDecorate 60(SS) 2 Flat
+ Decorate 62(var) Location 0
+ MemberDecorate 63(MS) 0 Location 17
+ Decorate 63(MS) Block
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeInt 32 0
+ 8: 7(int) Constant 3
+ 9: TypeArray 6(float) 8
+10(gl_PerVertex): TypeStruct 9
+ 11: TypePointer Output 10(gl_PerVertex)
+ 12: 11(ptr) Variable Output
+ 13: TypeInt 32 1
+ 14: 13(int) Constant 0
+ 15: 13(int) Constant 2
+ 16: 6(float) Constant 1080872141
+ 17: TypePointer Output 6(float)
+ 19: TypeVector 6(float) 4
+ 20: 7(int) Constant 10
+ 21: TypeArray 19(fvec4) 20
+ 22: TypePointer Input 21
+ 23(bad): 22(ptr) Variable Input
+ 24: 7(int) Constant 0
+ 25: TypePointer Input 6(float)
+ 28: 6(float) Constant 1082549862
+ 29: TypeBool
+ 33: TypePointer Output 19(fvec4)
+ 34(badorder3): 33(ptr) Variable Output
+ 35: TypePointer Input 19(fvec4)
+ 38(f): 25(ptr) Variable Input
+ 41(badorder): 35(ptr) Variable Input
+ 42(badorder2): 33(ptr) Variable Output
+ 43(boundblock): TypeStruct 13(int)
+ 44: TypePointer Uniform 43(boundblock)
+ 45(boundInst): 44(ptr) Variable Uniform
+ 46(anonblock): TypeStruct 13(int)
+ 47: TypePointer Uniform 46(anonblock)
+ 48: 47(ptr) Variable Uniform
+ 49: TypeImage 6(float) 2D sampled format:Unknown
+ 50: TypeSampledImage 49
+ 51: TypePointer UniformConstant 50
+ 52(sampb1): 51(ptr) Variable UniformConstant
+ 53: TypeArray 50 20
+ 54: TypePointer UniformConstant 53
+ 55(sampb2): 54(ptr) Variable UniformConstant
+ 56(sampb4): 51(ptr) Variable UniformConstant
+ 57: TypeVector 7(int) 2
+ 58: TypeVector 6(float) 3
+ 59(S): TypeStruct 6(float) 57(ivec2) 58(fvec3)
+ 60(SS): TypeStruct 19(fvec4) 59(S) 19(fvec4)
+ 61: TypePointer Output 60(SS)
+ 62(var): 61(ptr) Variable Output
+ 63(MS): TypeStruct 6(float)
+ 64: TypePointer Output 63(MS)
+ 65(outMS): 64(ptr) Variable Output
+ 4(main): 2 Function None 3
+ 5: Label
+ 18: 17(ptr) AccessChain 12 14 15
+ Store 18 16
+ 26: 25(ptr) AccessChain 23(bad) 14 24
+ 27: 6(float) Load 26
+ 30: 29(bool) FOrdEqual 27 28
+ SelectionMerge 32 None
+ BranchConditional 30 31 32
+ 31: Label
+ 36: 35(ptr) AccessChain 23(bad) 14
+ 37: 19(fvec4) Load 36
+ Store 34(badorder3) 37
+ Branch 32
+ 32: Label
+ 39: 6(float) Load 38(f)
+ 40: 17(ptr) AccessChain 12 14 14
+ Store 40 39
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.AofA.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.AofA.frag.out
new file mode 100644
index 00000000000..0dbf69ceda2
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.AofA.frag.out
@@ -0,0 +1,156 @@
+spv.AofA.frag
+Warning, version 430 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 104
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 39 44 68 70 72 78
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 430
+ Name 4 "main"
+ Name 17 "foo(f1[5][7];"
+ Name 16 "a"
+ Name 20 "r"
+ Name 39 "outfloat"
+ Name 42 "g4"
+ Name 44 "g5"
+ Name 45 "param"
+ Name 48 "u"
+ Name 52 "param"
+ Name 66 "many"
+ Name 68 "i"
+ Name 70 "j"
+ Name 72 "k"
+ Name 78 "infloat"
+ Name 94 "uAofA"
+ MemberName 94(uAofA) 0 "f"
+ Name 98 "nameAofA"
+ Decorate 68(i) Flat
+ Decorate 70(j) Flat
+ Decorate 72(k) Flat
+ Decorate 92 ArrayStride 16
+ Decorate 93 ArrayStride 64
+ MemberDecorate 94(uAofA) 0 Offset 0
+ Decorate 94(uAofA) Block
+ Decorate 98(nameAofA) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeInt 32 0
+ 8: 7(int) Constant 7
+ 9: TypeArray 6(float) 8
+ 10: 7(int) Constant 5
+ 11: TypeArray 9 10
+ 12: TypePointer Function 11
+ 13: 7(int) Constant 4
+ 14: TypeArray 9 13
+ 15: TypeFunction 14 12(ptr)
+ 19: TypePointer Function 9
+ 21: TypeInt 32 1
+ 22: 21(int) Constant 2
+ 25: 21(int) Constant 0
+ 28: 21(int) Constant 1
+ 32: 21(int) Constant 3
+ 38: TypePointer Output 6(float)
+ 39(outfloat): 38(ptr) Variable Output
+ 40: 6(float) Constant 0
+ 41: TypePointer Private 14
+ 42(g4): 41(ptr) Variable Private
+ 43: TypePointer Input 11
+ 44(g5): 43(ptr) Variable Input
+ 49: 6(float) Constant 1077936128
+ 50: TypePointer Function 6(float)
+ 55: 7(int) Constant 6
+ 56: TypeArray 6(float) 55
+ 57: TypeArray 56 10
+ 58: TypeArray 57 13
+ 59: 7(int) Constant 3
+ 60: TypeArray 58 59
+ 61: 7(int) Constant 2
+ 62: TypeArray 60 61
+ 63: 7(int) Constant 1
+ 64: TypeArray 62 63
+ 65: TypePointer Private 64
+ 66(many): 65(ptr) Variable Private
+ 67: TypePointer Input 21(int)
+ 68(i): 67(ptr) Variable Input
+ 70(j): 67(ptr) Variable Input
+ 72(k): 67(ptr) Variable Input
+ 77: TypePointer Input 6(float)
+ 78(infloat): 77(ptr) Variable Input
+ 80: TypePointer Private 6(float)
+ 92: TypeArray 6(float) 13
+ 93: TypeArray 92 61
+ 94(uAofA): TypeStruct 93
+ 95: TypeArray 94(uAofA) 10
+ 96: TypeArray 95 59
+ 97: TypePointer Uniform 96
+ 98(nameAofA): 97(ptr) Variable Uniform
+ 99: TypePointer Uniform 6(float)
+ 4(main): 2 Function None 3
+ 5: Label
+ 45(param): 12(ptr) Variable Function
+ 48(u): 12(ptr) Variable Function
+ 52(param): 12(ptr) Variable Function
+ Store 39(outfloat) 40
+ 46: 11 Load 44(g5)
+ Store 45(param) 46
+ 47: 14 FunctionCall 17(foo(f1[5][7];) 45(param)
+ Store 42(g4) 47
+ 51: 50(ptr) AccessChain 48(u) 22 22
+ Store 51 49
+ 53: 11 Load 48(u)
+ Store 52(param) 53
+ 54: 14 FunctionCall 17(foo(f1[5][7];) 52(param)
+ 69: 21(int) Load 68(i)
+ 71: 21(int) Load 70(j)
+ 73: 21(int) Load 72(k)
+ 74: 21(int) Load 68(i)
+ 75: 21(int) Load 70(j)
+ 76: 21(int) Load 72(k)
+ 79: 6(float) Load 78(infloat)
+ 81: 80(ptr) AccessChain 66(many) 69 71 73 74 75 76
+ Store 81 79
+ 82: 21(int) Load 70(j)
+ 83: 21(int) Load 70(j)
+ 84: 21(int) Load 70(j)
+ 85: 21(int) Load 70(j)
+ 86: 21(int) Load 70(j)
+ 87: 21(int) Load 70(j)
+ 88: 80(ptr) AccessChain 66(many) 82 83 84 85 86 87
+ 89: 6(float) Load 88
+ 90: 6(float) Load 39(outfloat)
+ 91: 6(float) FAdd 90 89
+ Store 39(outfloat) 91
+ 100: 99(ptr) AccessChain 98(nameAofA) 28 22 25 25 32
+ 101: 6(float) Load 100
+ 102: 6(float) Load 39(outfloat)
+ 103: 6(float) FAdd 102 101
+ Store 39(outfloat) 103
+ Return
+ FunctionEnd
+17(foo(f1[5][7];): 14 Function None 15
+ 16(a): 12(ptr) FunctionParameter
+ 18: Label
+ 20(r): 19(ptr) Variable Function
+ 23: 19(ptr) AccessChain 16(a) 22
+ 24: 9 Load 23
+ Store 20(r) 24
+ 26: 19(ptr) AccessChain 16(a) 25
+ 27: 9 Load 26
+ 29: 19(ptr) AccessChain 16(a) 28
+ 30: 9 Load 29
+ 31: 9 Load 20(r)
+ 33: 19(ptr) AccessChain 16(a) 32
+ 34: 9 Load 33
+ 35: 14 CompositeConstruct 27 30 31 34
+ ReturnValue 35
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.Operations.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.Operations.frag.out
new file mode 100755
index 00000000000..f8b666d5377
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.Operations.frag.out
@@ -0,0 +1,674 @@
+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 509
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 11 22 212 288 485 503 508
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 450
+ Name 4 "main"
+ Name 9 "v"
+ Name 11 "uv4"
+ Name 20 "i"
+ Name 22 "ui"
+ Name 181 "ub41"
+ Name 188 "f"
+ Name 212 "uf"
+ Name 285 "u"
+ Name 288 "uui"
+ Name 305 "b"
+ Name 342 "ub42"
+ Name 485 "FragColor"
+ Name 503 "uiv4"
+ Name 505 "ub"
+ Name 508 "uuv4"
+ Decorate 22(ui) Flat
+ Decorate 288(uui) Flat
+ Decorate 503(uiv4) Flat
+ Decorate 508(uuv4) Flat
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+ 10: TypePointer Input 7(fvec4)
+ 11(uv4): 10(ptr) Variable Input
+ 18: TypeInt 32 1
+ 19: TypePointer Function 18(int)
+ 21: TypePointer Input 18(int)
+ 22(ui): 21(ptr) Variable Input
+ 141: TypeInt 32 0
+ 142: 141(int) Constant 0
+ 143: TypePointer Function 6(float)
+ 178: TypeBool
+ 179: TypeVector 178(bool) 4
+ 180: TypePointer Private 179(bvec4)
+ 181(ub41): 180(ptr) Variable Private
+ 211: TypePointer Input 6(float)
+ 212(uf): 211(ptr) Variable Input
+ 284: TypePointer Function 141(int)
+ 287: TypePointer Input 141(int)
+ 288(uui): 287(ptr) Variable Input
+ 304: TypePointer Function 178(bool)
+ 342(ub42): 180(ptr) Variable Private
+ 398: 18(int) Constant 2
+ 405: 18(int) Constant 1
+ 435: TypeVector 6(float) 3
+ 454: 6(float) Constant 1073741824
+ 461: 6(float) Constant 1065353216
+ 466: 18(int) Constant 66
+ 472: 18(int) Constant 17
+ 484: TypePointer Output 7(fvec4)
+ 485(FragColor): 484(ptr) Variable Output
+ 501: TypeVector 18(int) 4
+ 502: TypePointer Input 501(ivec4)
+ 503(uiv4): 502(ptr) Variable Input
+ 504: TypePointer Private 178(bool)
+ 505(ub): 504(ptr) Variable Private
+ 506: TypeVector 141(int) 4
+ 507: TypePointer Input 506(ivec4)
+ 508(uuv4): 507(ptr) Variable Input
+ 4(main): 2 Function None 3
+ 5: Label
+ 9(v): 8(ptr) Variable Function
+ 20(i): 19(ptr) Variable Function
+ 188(f): 143(ptr) Variable Function
+ 285(u): 284(ptr) Variable Function
+ 305(b): 304(ptr) Variable Function
+ 486: 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
+ 14: 7(fvec4) Load 9(v)
+ 15: 7(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 14
+ 16: 7(fvec4) Load 9(v)
+ 17: 7(fvec4) FAdd 16 15
+ Store 9(v) 17
+ 23: 18(int) Load 22(ui)
+ 24: 18(int) Load 22(ui)
+ 25: 18(int) IMul 23 24
+ Store 20(i) 25
+ 26: 7(fvec4) Load 9(v)
+ 27: 7(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 26
+ 28: 7(fvec4) Load 9(v)
+ 29: 7(fvec4) FAdd 28 27
+ Store 9(v) 29
+ 30: 7(fvec4) Load 9(v)
+ 31: 7(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 30
+ 32: 7(fvec4) Load 9(v)
+ 33: 7(fvec4) FAdd 32 31
+ Store 9(v) 33
+ 34: 7(fvec4) Load 9(v)
+ 35: 7(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 34
+ 36: 7(fvec4) Load 9(v)
+ 37: 7(fvec4) FAdd 36 35
+ Store 9(v) 37
+ 38: 7(fvec4) Load 9(v)
+ 39: 7(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 38
+ 40: 7(fvec4) Load 9(v)
+ 41: 7(fvec4) FAdd 40 39
+ Store 9(v) 41
+ 42: 7(fvec4) Load 9(v)
+ 43: 7(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 42
+ 44: 7(fvec4) Load 9(v)
+ 45: 7(fvec4) FAdd 44 43
+ Store 9(v) 45
+ 46: 7(fvec4) Load 9(v)
+ 47: 7(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 46
+ 48: 7(fvec4) Load 9(v)
+ 49: 7(fvec4) FAdd 48 47
+ Store 9(v) 49
+ 50: 7(fvec4) Load 9(v)
+ 51: 7(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 50
+ 52: 7(fvec4) Load 9(v)
+ 53: 7(fvec4) FAdd 52 51
+ Store 9(v) 53
+ 54: 7(fvec4) Load 9(v)
+ 55: 7(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 54
+ 56: 7(fvec4) Load 9(v)
+ 57: 7(fvec4) FAdd 56 55
+ Store 9(v) 57
+ 58: 7(fvec4) Load 9(v)
+ 59: 7(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 58
+ 60: 7(fvec4) Load 9(v)
+ 61: 7(fvec4) FAdd 60 59
+ Store 9(v) 61
+ 62: 7(fvec4) Load 9(v)
+ 63: 7(fvec4) ExtInst 1(GLSL.std.450) 22(Asinh) 62
+ 64: 7(fvec4) Load 9(v)
+ 65: 7(fvec4) FAdd 64 63
+ Store 9(v) 65
+ 66: 7(fvec4) Load 9(v)
+ 67: 7(fvec4) ExtInst 1(GLSL.std.450) 23(Acosh) 66
+ 68: 7(fvec4) Load 9(v)
+ 69: 7(fvec4) FAdd 68 67
+ Store 9(v) 69
+ 70: 7(fvec4) Load 9(v)
+ 71: 7(fvec4) ExtInst 1(GLSL.std.450) 24(Atanh) 70
+ 72: 7(fvec4) Load 9(v)
+ 73: 7(fvec4) FAdd 72 71
+ Store 9(v) 73
+ 74: 7(fvec4) Load 9(v)
+ 75: 7(fvec4) Load 9(v)
+ 76: 7(fvec4) ExtInst 1(GLSL.std.450) 26(Pow) 74 75
+ 77: 7(fvec4) Load 9(v)
+ 78: 7(fvec4) FAdd 77 76
+ Store 9(v) 78
+ 79: 7(fvec4) Load 9(v)
+ 80: 7(fvec4) ExtInst 1(GLSL.std.450) 27(Exp) 79
+ 81: 7(fvec4) Load 9(v)
+ 82: 7(fvec4) FAdd 81 80
+ Store 9(v) 82
+ 83: 7(fvec4) Load 9(v)
+ 84: 7(fvec4) ExtInst 1(GLSL.std.450) 28(Log) 83
+ 85: 7(fvec4) Load 9(v)
+ 86: 7(fvec4) FAdd 85 84
+ Store 9(v) 86
+ 87: 7(fvec4) Load 9(v)
+ 88: 7(fvec4) ExtInst 1(GLSL.std.450) 29(Exp2) 87
+ 89: 7(fvec4) Load 9(v)
+ 90: 7(fvec4) FAdd 89 88
+ Store 9(v) 90
+ 91: 7(fvec4) Load 9(v)
+ 92: 7(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 91
+ 93: 7(fvec4) Load 9(v)
+ 94: 7(fvec4) FAdd 93 92
+ Store 9(v) 94
+ 95: 7(fvec4) Load 9(v)
+ 96: 7(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 95
+ 97: 7(fvec4) Load 9(v)
+ 98: 7(fvec4) FAdd 97 96
+ Store 9(v) 98
+ 99: 7(fvec4) Load 9(v)
+ 100: 7(fvec4) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 99
+ 101: 7(fvec4) Load 9(v)
+ 102: 7(fvec4) FAdd 101 100
+ Store 9(v) 102
+ 103: 7(fvec4) Load 9(v)
+ 104: 7(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 103
+ 105: 7(fvec4) Load 9(v)
+ 106: 7(fvec4) FAdd 105 104
+ Store 9(v) 106
+ 107: 7(fvec4) Load 9(v)
+ 108: 7(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 107
+ 109: 7(fvec4) Load 9(v)
+ 110: 7(fvec4) FAdd 109 108
+ Store 9(v) 110
+ 111: 7(fvec4) Load 9(v)
+ 112: 7(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 111
+ 113: 7(fvec4) Load 9(v)
+ 114: 7(fvec4) FAdd 113 112
+ Store 9(v) 114
+ 115: 7(fvec4) Load 9(v)
+ 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) 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) 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) FMod 135 136
+ 138: 7(fvec4) Load 9(v)
+ 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) 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 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) FAdd 174 173
+ Store 9(v) 175
+ 176: 7(fvec4) Load 9(v)
+ 177: 7(fvec4) Load 9(v)
+ 182: 179(bvec4) Load 181(ub41)
+ 183: 7(fvec4) Select 182 177 176
+ 184: 7(fvec4) Load 9(v)
+ 185: 7(fvec4) FAdd 184 183
+ Store 9(v) 185
+ 186: 7(fvec4) Load 9(v)
+ 187: 7(fvec4) Load 9(v)
+ 189: 6(float) Load 188(f)
+ 190: 7(fvec4) CompositeConstruct 189 189 189 189
+ 191: 7(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 186 187 190
+ 192: 7(fvec4) Load 9(v)
+ 193: 7(fvec4) FAdd 192 191
+ Store 9(v) 193
+ 194: 7(fvec4) Load 9(v)
+ 195: 7(fvec4) Load 11(uv4)
+ 196: 7(fvec4) Load 9(v)
+ 197: 7(fvec4) ExtInst 1(GLSL.std.450) 50(Fma) 194 195 196
+ 198: 7(fvec4) Load 9(v)
+ 199: 7(fvec4) FAdd 198 197
+ Store 9(v) 199
+ 200: 7(fvec4) Load 9(v)
+ 201: 7(fvec4) Load 9(v)
+ 202: 7(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 200 201
+ 203: 7(fvec4) Load 9(v)
+ 204: 7(fvec4) FAdd 203 202
+ Store 9(v) 204
+ 205: 7(fvec4) Load 9(v)
+ 206: 7(fvec4) Load 9(v)
+ 207: 7(fvec4) Load 9(v)
+ 208: 7(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 205 206 207
+ 209: 7(fvec4) Load 9(v)
+ 210: 7(fvec4) FAdd 209 208
+ Store 9(v) 210
+ 213: 6(float) Load 212(uf)
+ 214: 7(fvec4) Load 9(v)
+ 215: 7(fvec4) CompositeConstruct 213 213 213 213
+ 216: 7(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 215 214
+ 217: 7(fvec4) Load 9(v)
+ 218: 7(fvec4) FAdd 217 216
+ Store 9(v) 218
+ 219: 6(float) Load 212(uf)
+ 220: 6(float) Load 212(uf)
+ 221: 7(fvec4) Load 9(v)
+ 222: 7(fvec4) CompositeConstruct 219 219 219 219
+ 223: 7(fvec4) CompositeConstruct 220 220 220 220
+ 224: 7(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 222 223 221
+ 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) ExtInst 1(GLSL.std.450) 69(Normalize) 227
+ 229: 7(fvec4) Load 9(v)
+ 230: 7(fvec4) FAdd 229 228
+ Store 9(v) 230
+ 231: 7(fvec4) Load 9(v)
+ 232: 7(fvec4) Load 9(v)
+ 233: 7(fvec4) Load 9(v)
+ 234: 7(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 231 232 233
+ 235: 7(fvec4) Load 9(v)
+ 236: 7(fvec4) FAdd 235 234
+ Store 9(v) 236
+ 237: 7(fvec4) Load 9(v)
+ 238: 7(fvec4) Load 9(v)
+ 239: 7(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 237 238
+ 240: 7(fvec4) Load 9(v)
+ 241: 7(fvec4) FAdd 240 239
+ Store 9(v) 241
+ 242: 7(fvec4) Load 9(v)
+ 243: 7(fvec4) Load 9(v)
+ 244: 6(float) Load 212(uf)
+ 245: 7(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 242 243 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) DPdx 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) DPdy 252
+ 254: 7(fvec4) Load 9(v)
+ 255: 7(fvec4) FAdd 254 253
+ Store 9(v) 255
+ 256: 7(fvec4) Load 9(v)
+ 257: 7(fvec4) Fwidth 256
+ 258: 7(fvec4) Load 9(v)
+ 259: 7(fvec4) FAdd 258 257
+ Store 9(v) 259
+ 260: 18(int) Load 22(ui)
+ 261: 18(int) ExtInst 1(GLSL.std.450) 5(SAbs) 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) ExtInst 1(GLSL.std.450) 7(SSign) 264
+ 266: 18(int) Load 20(i)
+ 267: 18(int) IAdd 266 265
+ Store 20(i) 267
+ 268: 18(int) Load 20(i)
+ 269: 18(int) Load 22(ui)
+ 270: 18(int) ExtInst 1(GLSL.std.450) 39(SMin) 268 269
+ 271: 18(int) Load 20(i)
+ 272: 18(int) IAdd 271 270
+ Store 20(i) 272
+ 273: 18(int) Load 20(i)
+ 274: 18(int) Load 22(ui)
+ 275: 18(int) ExtInst 1(GLSL.std.450) 42(SMax) 273 274
+ 276: 18(int) Load 20(i)
+ 277: 18(int) IAdd 276 275
+ Store 20(i) 277
+ 278: 18(int) Load 20(i)
+ 279: 18(int) Load 22(ui)
+ 280: 18(int) Load 22(ui)
+ 281: 18(int) ExtInst 1(GLSL.std.450) 45(SClamp) 278 279 280
+ 282: 18(int) Load 20(i)
+ 283: 18(int) IAdd 282 281
+ Store 20(i) 283
+ 286: 141(int) Load 285(u)
+ 289: 141(int) Load 288(uui)
+ 290: 141(int) ExtInst 1(GLSL.std.450) 38(UMin) 286 289
+ 291: 141(int) Load 285(u)
+ 292: 141(int) IAdd 291 290
+ Store 285(u) 292
+ 293: 141(int) Load 285(u)
+ 294: 141(int) Load 288(uui)
+ 295: 141(int) ExtInst 1(GLSL.std.450) 41(UMax) 293 294
+ 296: 141(int) Load 285(u)
+ 297: 141(int) IAdd 296 295
+ Store 285(u) 297
+ 298: 141(int) Load 285(u)
+ 299: 141(int) Load 288(uui)
+ 300: 141(int) Load 288(uui)
+ 301: 141(int) ExtInst 1(GLSL.std.450) 44(UClamp) 298 299 300
+ 302: 141(int) Load 285(u)
+ 303: 141(int) IAdd 302 301
+ Store 285(u) 303
+ 306: 6(float) Load 212(uf)
+ 307: 178(bool) IsNan 306
+ Store 305(b) 307
+ 308: 6(float) Load 188(f)
+ 309: 178(bool) IsInf 308
+ Store 305(b) 309
+ 310: 7(fvec4) Load 9(v)
+ 311: 7(fvec4) Load 11(uv4)
+ 312: 179(bvec4) FOrdLessThan 310 311
+ 313: 178(bool) Any 312
+ Store 305(b) 313
+ 314: 178(bool) Load 305(b)
+ SelectionMerge 316 None
+ BranchConditional 314 315 316
+ 315: Label
+ 317: 7(fvec4) Load 9(v)
+ 318: 7(fvec4) Load 11(uv4)
+ 319: 179(bvec4) FOrdLessThanEqual 317 318
+ 320: 178(bool) Any 319
+ Branch 316
+ 316: Label
+ 321: 178(bool) Phi 314 5 320 315
+ Store 305(b) 321
+ 322: 178(bool) Load 305(b)
+ SelectionMerge 324 None
+ BranchConditional 322 323 324
+ 323: Label
+ 325: 7(fvec4) Load 9(v)
+ 326: 7(fvec4) Load 11(uv4)
+ 327: 179(bvec4) FOrdGreaterThan 325 326
+ 328: 178(bool) Any 327
+ Branch 324
+ 324: Label
+ 329: 178(bool) Phi 322 316 328 323
+ Store 305(b) 329
+ 330: 178(bool) Load 305(b)
+ SelectionMerge 332 None
+ BranchConditional 330 331 332
+ 331: Label
+ 333: 7(fvec4) Load 9(v)
+ 334: 7(fvec4) Load 11(uv4)
+ 335: 179(bvec4) FOrdGreaterThanEqual 333 334
+ 336: 178(bool) Any 335
+ Branch 332
+ 332: Label
+ 337: 178(bool) Phi 330 324 336 331
+ Store 305(b) 337
+ 338: 178(bool) Load 305(b)
+ SelectionMerge 340 None
+ BranchConditional 338 339 340
+ 339: Label
+ 341: 179(bvec4) Load 181(ub41)
+ 343: 179(bvec4) Load 342(ub42)
+ 344: 179(bvec4) LogicalEqual 341 343
+ 345: 178(bool) Any 344
+ Branch 340
+ 340: Label
+ 346: 178(bool) Phi 338 332 345 339
+ Store 305(b) 346
+ 347: 178(bool) Load 305(b)
+ SelectionMerge 349 None
+ BranchConditional 347 348 349
+ 348: Label
+ 350: 179(bvec4) Load 181(ub41)
+ 351: 179(bvec4) Load 342(ub42)
+ 352: 179(bvec4) LogicalNotEqual 350 351
+ 353: 178(bool) Any 352
+ Branch 349
+ 349: Label
+ 354: 178(bool) Phi 347 340 353 348
+ Store 305(b) 354
+ 355: 178(bool) Load 305(b)
+ 356: 179(bvec4) Load 181(ub41)
+ 357: 178(bool) Any 356
+ 358: 178(bool) LogicalAnd 355 357
+ Store 305(b) 358
+ 359: 178(bool) Load 305(b)
+ 360: 179(bvec4) Load 181(ub41)
+ 361: 178(bool) All 360
+ 362: 178(bool) LogicalAnd 359 361
+ Store 305(b) 362
+ 363: 178(bool) Load 305(b)
+ SelectionMerge 365 None
+ BranchConditional 363 364 365
+ 364: Label
+ 366: 179(bvec4) Load 181(ub41)
+ 367: 179(bvec4) LogicalNot 366
+ 368: 178(bool) Any 367
+ Branch 365
+ 365: Label
+ 369: 178(bool) Phi 363 349 368 364
+ Store 305(b) 369
+ 370: 18(int) Load 20(i)
+ 371: 18(int) Load 22(ui)
+ 372: 18(int) IAdd 370 371
+ 373: 18(int) Load 20(i)
+ 374: 18(int) IMul 372 373
+ 375: 18(int) Load 22(ui)
+ 376: 18(int) ISub 374 375
+ 377: 18(int) Load 20(i)
+ 378: 18(int) SDiv 376 377
+ Store 20(i) 378
+ 379: 18(int) Load 20(i)
+ 380: 18(int) Load 22(ui)
+ 381: 18(int) SMod 379 380
+ Store 20(i) 381
+ 382: 18(int) Load 20(i)
+ 383: 18(int) Load 22(ui)
+ 384: 178(bool) IEqual 382 383
+ 385: 178(bool) LogicalNot 384
+ SelectionMerge 387 None
+ BranchConditional 385 386 387
+ 386: Label
+ 388: 18(int) Load 20(i)
+ 389: 18(int) Load 22(ui)
+ 390: 178(bool) INotEqual 388 389
+ SelectionMerge 392 None
+ BranchConditional 390 391 392
+ 391: Label
+ 393: 18(int) Load 20(i)
+ 394: 18(int) Load 22(ui)
+ 395: 178(bool) IEqual 393 394
+ Branch 392
+ 392: Label
+ 396: 178(bool) Phi 390 386 395 391
+ 397: 18(int) Load 20(i)
+ 399: 178(bool) INotEqual 397 398
+ 400: 178(bool) LogicalNotEqual 396 399
+ Branch 387
+ 387: Label
+ 401: 178(bool) Phi 384 365 400 392
+ SelectionMerge 403 None
+ BranchConditional 401 402 403
+ 402: Label
+ 404: 18(int) Load 20(i)
+ 406: 18(int) IAdd 404 405
+ Store 20(i) 406
+ Branch 403
+ 403: Label
+ 407: 6(float) Load 212(uf)
+ 408: 6(float) Load 212(uf)
+ 409: 6(float) FAdd 407 408
+ 410: 6(float) Load 212(uf)
+ 411: 6(float) FMul 409 410
+ 412: 6(float) Load 212(uf)
+ 413: 6(float) FSub 411 412
+ 414: 6(float) Load 212(uf)
+ 415: 6(float) FDiv 413 414
+ Store 188(f) 415
+ 416: 7(fvec4) Load 9(v)
+ 417: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 416
+ 418: 6(float) Load 188(f)
+ 419: 6(float) FAdd 418 417
+ Store 188(f) 419
+ 420: 7(fvec4) Load 9(v)
+ 421: 7(fvec4) Load 9(v)
+ 422: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 420 421
+ 423: 6(float) Load 188(f)
+ 424: 6(float) FAdd 423 422
+ Store 188(f) 424
+ 425: 7(fvec4) Load 9(v)
+ 426: 7(fvec4) Load 9(v)
+ 427: 6(float) Dot 425 426
+ 428: 6(float) Load 188(f)
+ 429: 6(float) FAdd 428 427
+ Store 188(f) 429
+ 430: 6(float) Load 188(f)
+ 431: 6(float) Load 212(uf)
+ 432: 6(float) FMul 430 431
+ 433: 6(float) Load 188(f)
+ 434: 6(float) FAdd 433 432
+ Store 188(f) 434
+ 436: 7(fvec4) Load 9(v)
+ 437: 435(fvec3) VectorShuffle 436 436 0 1 2
+ 438: 7(fvec4) Load 9(v)
+ 439: 435(fvec3) VectorShuffle 438 438 0 1 2
+ 440: 435(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 437 439
+ 441: 6(float) CompositeExtract 440 0
+ 442: 6(float) Load 188(f)
+ 443: 6(float) FAdd 442 441
+ Store 188(f) 443
+ 444: 6(float) Load 188(f)
+ 445: 6(float) Load 212(uf)
+ 446: 178(bool) FOrdEqual 444 445
+ 447: 178(bool) LogicalNot 446
+ SelectionMerge 449 None
+ BranchConditional 447 448 449
+ 448: Label
+ 450: 6(float) Load 188(f)
+ 451: 6(float) Load 212(uf)
+ 452: 178(bool) FOrdNotEqual 450 451
+ 453: 6(float) Load 188(f)
+ 455: 178(bool) FOrdNotEqual 453 454
+ 456: 178(bool) LogicalAnd 452 455
+ Branch 449
+ 449: Label
+ 457: 178(bool) Phi 446 403 456 448
+ SelectionMerge 459 None
+ BranchConditional 457 458 459
+ 458: Label
+ 460: 6(float) Load 188(f)
+ 462: 6(float) FAdd 460 461
+ Store 188(f) 462
+ Branch 459
+ 459: Label
+ 463: 18(int) Load 22(ui)
+ 464: 18(int) Load 20(i)
+ 465: 18(int) BitwiseAnd 464 463
+ Store 20(i) 465
+ 467: 18(int) Load 20(i)
+ 468: 18(int) BitwiseOr 467 466
+ Store 20(i) 468
+ 469: 18(int) Load 22(ui)
+ 470: 18(int) Load 20(i)
+ 471: 18(int) BitwiseXor 470 469
+ Store 20(i) 471
+ 473: 18(int) Load 20(i)
+ 474: 18(int) SMod 473 472
+ Store 20(i) 474
+ 475: 18(int) Load 20(i)
+ 476: 18(int) ShiftRightArithmetic 475 398
+ Store 20(i) 476
+ 477: 18(int) Load 22(ui)
+ 478: 18(int) Load 20(i)
+ 479: 18(int) ShiftLeftLogical 478 477
+ Store 20(i) 479
+ 480: 18(int) Load 20(i)
+ 481: 18(int) Not 480
+ Store 20(i) 481
+ 482: 178(bool) Load 305(b)
+ 483: 178(bool) LogicalNot 482
+ Store 305(b) 483
+ 487: 178(bool) Load 305(b)
+ SelectionMerge 489 None
+ BranchConditional 487 488 498
+ 488: Label
+ 490: 18(int) Load 20(i)
+ 491: 6(float) ConvertSToF 490
+ 492: 7(fvec4) CompositeConstruct 491 491 491 491
+ 493: 6(float) Load 188(f)
+ 494: 7(fvec4) CompositeConstruct 493 493 493 493
+ 495: 7(fvec4) FAdd 492 494
+ 496: 7(fvec4) Load 9(v)
+ 497: 7(fvec4) FAdd 495 496
+ Store 486 497
+ Branch 489
+ 498: Label
+ 499: 7(fvec4) Load 9(v)
+ Store 486 499
+ Branch 489
+ 489: Label
+ 500: 7(fvec4) Load 486
+ Store 485(FragColor) 500
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.accessChain.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.accessChain.frag.out
new file mode 100755
index 00000000000..e9a9d81bc26
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.accessChain.frag.out
@@ -0,0 +1,323 @@
+spv.accessChain.frag
+Warning, version 420 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 197
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 65 149
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 420
+ Name 4 "main"
+ Name 8 "S"
+ MemberName 8(S) 0 "color"
+ Name 11 "GetColor1(struct-S-vf31;"
+ Name 10 "i"
+ Name 18 "GetColor2(struct-S-vf31;i1;"
+ Name 16 "i"
+ Name 17 "comp"
+ Name 22 "GetColor3(struct-S-vf31;i1;"
+ Name 20 "i"
+ Name 21 "comp"
+ Name 26 "GetColor4(struct-S-vf31;i1;"
+ Name 24 "i"
+ Name 25 "comp"
+ Name 30 "GetColor5(struct-S-vf31;i1;"
+ Name 28 "i"
+ Name 29 "comp"
+ Name 34 "GetColor6(struct-S-vf31;i1;"
+ Name 32 "i"
+ Name 33 "comp"
+ Name 38 "GetColor7(struct-S-vf31;i1;"
+ Name 36 "i"
+ Name 37 "comp"
+ Name 42 "GetColor8(struct-S-vf31;i1;"
+ Name 40 "i"
+ Name 41 "comp"
+ Name 46 "GetColor9(struct-S-vf31;i1;"
+ Name 44 "i"
+ Name 45 "comp"
+ Name 50 "GetColor10(struct-S-vf31;i1;"
+ Name 48 "i"
+ Name 49 "comp"
+ Name 54 "GetColor11(struct-S-vf31;i1;"
+ Name 52 "i"
+ Name 53 "comp"
+ Name 58 "GetColor12(struct-S-vf31;i1;"
+ Name 56 "i"
+ Name 57 "comp"
+ Name 62 "GetColor13(struct-S-vf31;i1;"
+ Name 60 "i"
+ Name 61 "comp"
+ Name 65 "OutColor"
+ Name 144 "s"
+ Name 149 "u"
+ Name 150 "param"
+ Name 154 "param"
+ Name 158 "param"
+ Name 162 "param"
+ Name 166 "param"
+ Name 170 "param"
+ Name 174 "param"
+ Name 178 "param"
+ Name 182 "param"
+ Name 186 "param"
+ Name 190 "param"
+ Name 194 "param"
+ Decorate 65(OutColor) Location 0
+ Decorate 149(u) Flat
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 3
+ 8(S): TypeStruct 7(fvec3)
+ 9: TypeFunction 2 8(S)
+ 13: TypeInt 32 1
+ 14: TypePointer Function 13(int)
+ 15: TypeFunction 2 8(S) 14(ptr)
+ 64: TypePointer Output 7(fvec3)
+ 65(OutColor): 64(ptr) Variable Output
+ 66: 13(int) Constant 0
+ 67: TypeInt 32 0
+ 68: 67(int) Constant 0
+ 95: TypeVector 6(float) 2
+ 109: 67(int) Constant 2
+ 136: TypePointer Output 6(float)
+ 141: 6(float) Constant 0
+ 142: 7(fvec3) ConstantComposite 141 141 141
+ 143: TypePointer Function 8(S)
+ 148: TypePointer Input 13(int)
+ 149(u): 148(ptr) Variable Input
+ 4(main): 2 Function None 3
+ 5: Label
+ 144(s): 143(ptr) Variable Function
+ 150(param): 14(ptr) Variable Function
+ 154(param): 14(ptr) Variable Function
+ 158(param): 14(ptr) Variable Function
+ 162(param): 14(ptr) Variable Function
+ 166(param): 14(ptr) Variable Function
+ 170(param): 14(ptr) Variable Function
+ 174(param): 14(ptr) Variable Function
+ 178(param): 14(ptr) Variable Function
+ 182(param): 14(ptr) Variable Function
+ 186(param): 14(ptr) Variable Function
+ 190(param): 14(ptr) Variable Function
+ 194(param): 14(ptr) Variable Function
+ Store 65(OutColor) 142
+ 145: 8(S) Load 144(s)
+ 146: 2 FunctionCall 11(GetColor1(struct-S-vf31;) 145
+ 147: 8(S) Load 144(s)
+ 151: 13(int) Load 149(u)
+ Store 150(param) 151
+ 152: 2 FunctionCall 18(GetColor2(struct-S-vf31;i1;) 147 150(param)
+ 153: 8(S) Load 144(s)
+ 155: 13(int) Load 149(u)
+ Store 154(param) 155
+ 156: 2 FunctionCall 22(GetColor3(struct-S-vf31;i1;) 153 154(param)
+ 157: 8(S) Load 144(s)
+ 159: 13(int) Load 149(u)
+ Store 158(param) 159
+ 160: 2 FunctionCall 26(GetColor4(struct-S-vf31;i1;) 157 158(param)
+ 161: 8(S) Load 144(s)
+ 163: 13(int) Load 149(u)
+ Store 162(param) 163
+ 164: 2 FunctionCall 30(GetColor5(struct-S-vf31;i1;) 161 162(param)
+ 165: 8(S) Load 144(s)
+ 167: 13(int) Load 149(u)
+ Store 166(param) 167
+ 168: 2 FunctionCall 34(GetColor6(struct-S-vf31;i1;) 165 166(param)
+ 169: 8(S) Load 144(s)
+ 171: 13(int) Load 149(u)
+ Store 170(param) 171
+ 172: 2 FunctionCall 38(GetColor7(struct-S-vf31;i1;) 169 170(param)
+ 173: 8(S) Load 144(s)
+ 175: 13(int) Load 149(u)
+ Store 174(param) 175
+ 176: 2 FunctionCall 42(GetColor8(struct-S-vf31;i1;) 173 174(param)
+ 177: 8(S) Load 144(s)
+ 179: 13(int) Load 149(u)
+ Store 178(param) 179
+ 180: 2 FunctionCall 46(GetColor9(struct-S-vf31;i1;) 177 178(param)
+ 181: 8(S) Load 144(s)
+ 183: 13(int) Load 149(u)
+ Store 182(param) 183
+ 184: 2 FunctionCall 50(GetColor10(struct-S-vf31;i1;) 181 182(param)
+ 185: 8(S) Load 144(s)
+ 187: 13(int) Load 149(u)
+ Store 186(param) 187
+ 188: 2 FunctionCall 54(GetColor11(struct-S-vf31;i1;) 185 186(param)
+ 189: 8(S) Load 144(s)
+ 191: 13(int) Load 149(u)
+ Store 190(param) 191
+ 192: 2 FunctionCall 58(GetColor12(struct-S-vf31;i1;) 189 190(param)
+ 193: 8(S) Load 144(s)
+ 195: 13(int) Load 149(u)
+ Store 194(param) 195
+ 196: 2 FunctionCall 62(GetColor13(struct-S-vf31;i1;) 193 194(param)
+ Return
+ FunctionEnd
+11(GetColor1(struct-S-vf31;): 2 Function None 9
+ 10(i): 8(S) FunctionParameter
+ 12: Label
+ 69: 6(float) CompositeExtract 10(i) 0 0
+ 70: 7(fvec3) Load 65(OutColor)
+ 71: 7(fvec3) CompositeConstruct 69 69 69
+ 72: 7(fvec3) FAdd 70 71
+ Store 65(OutColor) 72
+ Return
+ FunctionEnd
+18(GetColor2(struct-S-vf31;i1;): 2 Function None 15
+ 16(i): 8(S) FunctionParameter
+ 17(comp): 14(ptr) FunctionParameter
+ 19: Label
+ 73: 13(int) Load 17(comp)
+ 74: 7(fvec3) CompositeExtract 16(i) 0
+ 75: 6(float) VectorExtractDynamic 74 73
+ 76: 7(fvec3) Load 65(OutColor)
+ 77: 7(fvec3) CompositeConstruct 75 75 75
+ 78: 7(fvec3) FAdd 76 77
+ Store 65(OutColor) 78
+ Return
+ FunctionEnd
+22(GetColor3(struct-S-vf31;i1;): 2 Function None 15
+ 20(i): 8(S) FunctionParameter
+ 21(comp): 14(ptr) FunctionParameter
+ 23: Label
+ 79: 13(int) Load 21(comp)
+ 80: 7(fvec3) CompositeExtract 20(i) 0
+ 81: 6(float) VectorExtractDynamic 80 79
+ 82: 7(fvec3) Load 65(OutColor)
+ 83: 7(fvec3) CompositeConstruct 81 81 81
+ 84: 7(fvec3) FAdd 82 83
+ Store 65(OutColor) 84
+ Return
+ FunctionEnd
+26(GetColor4(struct-S-vf31;i1;): 2 Function None 15
+ 24(i): 8(S) FunctionParameter
+ 25(comp): 14(ptr) FunctionParameter
+ 27: Label
+ 85: 13(int) Load 25(comp)
+ 86: 7(fvec3) CompositeExtract 24(i) 0
+ 87: 6(float) VectorExtractDynamic 86 85
+ 88: 7(fvec3) Load 65(OutColor)
+ 89: 7(fvec3) CompositeConstruct 87 87 87
+ 90: 7(fvec3) FAdd 88 89
+ Store 65(OutColor) 90
+ Return
+ FunctionEnd
+30(GetColor5(struct-S-vf31;i1;): 2 Function None 15
+ 28(i): 8(S) FunctionParameter
+ 29(comp): 14(ptr) FunctionParameter
+ 31: Label
+ 91: 7(fvec3) CompositeExtract 28(i) 0
+ 92: 7(fvec3) Load 65(OutColor)
+ 93: 7(fvec3) FAdd 92 91
+ Store 65(OutColor) 93
+ Return
+ FunctionEnd
+34(GetColor6(struct-S-vf31;i1;): 2 Function None 15
+ 32(i): 8(S) FunctionParameter
+ 33(comp): 14(ptr) FunctionParameter
+ 35: Label
+ 94: 13(int) Load 33(comp)
+ 96: 7(fvec3) CompositeExtract 32(i) 0
+ 97: 95(fvec2) VectorShuffle 96 96 1 0
+ 98: 6(float) VectorExtractDynamic 97 94
+ 99: 7(fvec3) Load 65(OutColor)
+ 100: 7(fvec3) CompositeConstruct 98 98 98
+ 101: 7(fvec3) FAdd 99 100
+ Store 65(OutColor) 101
+ Return
+ FunctionEnd
+38(GetColor7(struct-S-vf31;i1;): 2 Function None 15
+ 36(i): 8(S) FunctionParameter
+ 37(comp): 14(ptr) FunctionParameter
+ 39: Label
+ 102: 7(fvec3) CompositeExtract 36(i) 0
+ 103: 95(fvec2) VectorShuffle 102 102 0 1
+ 104: 7(fvec3) Load 65(OutColor)
+ 105: 95(fvec2) VectorShuffle 104 104 0 1
+ 106: 95(fvec2) FAdd 105 103
+ 107: 7(fvec3) Load 65(OutColor)
+ 108: 7(fvec3) VectorShuffle 107 106 3 4 2
+ Store 65(OutColor) 108
+ Return
+ FunctionEnd
+42(GetColor8(struct-S-vf31;i1;): 2 Function None 15
+ 40(i): 8(S) FunctionParameter
+ 41(comp): 14(ptr) FunctionParameter
+ 43: Label
+ 110: 6(float) CompositeExtract 40(i) 0 2
+ 111: 7(fvec3) Load 65(OutColor)
+ 112: 7(fvec3) CompositeConstruct 110 110 110
+ 113: 7(fvec3) FAdd 111 112
+ Store 65(OutColor) 113
+ Return
+ FunctionEnd
+46(GetColor9(struct-S-vf31;i1;): 2 Function None 15
+ 44(i): 8(S) FunctionParameter
+ 45(comp): 14(ptr) FunctionParameter
+ 47: Label
+ 114: 7(fvec3) CompositeExtract 44(i) 0
+ 115: 7(fvec3) Load 65(OutColor)
+ 116: 7(fvec3) VectorShuffle 115 115 2 0 1
+ 117: 7(fvec3) FAdd 116 114
+ 118: 7(fvec3) Load 65(OutColor)
+ 119: 7(fvec3) VectorShuffle 118 117 4 5 3
+ Store 65(OutColor) 119
+ Return
+ FunctionEnd
+50(GetColor10(struct-S-vf31;i1;): 2 Function None 15
+ 48(i): 8(S) FunctionParameter
+ 49(comp): 14(ptr) FunctionParameter
+ 51: Label
+ 120: 7(fvec3) CompositeExtract 48(i) 0
+ 121: 95(fvec2) VectorShuffle 120 120 0 1
+ 122: 7(fvec3) Load 65(OutColor)
+ 123: 95(fvec2) VectorShuffle 122 122 2 1
+ 124: 95(fvec2) FAdd 123 121
+ 125: 7(fvec3) Load 65(OutColor)
+ 126: 7(fvec3) VectorShuffle 125 124 0 4 3
+ Store 65(OutColor) 126
+ Return
+ FunctionEnd
+54(GetColor11(struct-S-vf31;i1;): 2 Function None 15
+ 52(i): 8(S) FunctionParameter
+ 53(comp): 14(ptr) FunctionParameter
+ 55: Label
+ 127: 7(fvec3) CompositeExtract 52(i) 0
+ 128: 95(fvec2) VectorShuffle 127 127 0 1
+ 129: 7(fvec3) Load 65(OutColor)
+ 130: 95(fvec2) VectorShuffle 129 129 0 2
+ 131: 95(fvec2) FAdd 130 128
+ 132: 7(fvec3) Load 65(OutColor)
+ 133: 7(fvec3) VectorShuffle 132 131 3 1 4
+ Store 65(OutColor) 133
+ Return
+ FunctionEnd
+58(GetColor12(struct-S-vf31;i1;): 2 Function None 15
+ 56(i): 8(S) FunctionParameter
+ 57(comp): 14(ptr) FunctionParameter
+ 59: Label
+ 134: 13(int) Load 57(comp)
+ 135: 6(float) CompositeExtract 56(i) 0 0
+ 137: 136(ptr) AccessChain 65(OutColor) 134
+ 138: 6(float) Load 137
+ 139: 6(float) FAdd 138 135
+ 140: 136(ptr) AccessChain 65(OutColor) 134
+ Store 140 139
+ Return
+ FunctionEnd
+62(GetColor13(struct-S-vf31;i1;): 2 Function None 15
+ 60(i): 8(S) FunctionParameter
+ 61(comp): 14(ptr) FunctionParameter
+ 63: Label
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.aggOps.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.aggOps.frag.out
new file mode 100644
index 00000000000..4888bea4950
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.aggOps.frag.out
@@ -0,0 +1,310 @@
+spv.aggOps.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 215
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 16 41 101 213
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 450
+ Name 4 "main"
+ Name 8 "s1"
+ MemberName 8(s1) 0 "i"
+ MemberName 8(s1) 1 "f"
+ Name 13 "a"
+ Name 16 "u"
+ Name 37 "b"
+ Name 41 "w"
+ Name 55 "s1"
+ MemberName 55(s1) 0 "i"
+ MemberName 55(s1) 1 "f"
+ Name 56 "s2"
+ MemberName 56(s2) 0 "i"
+ MemberName 56(s2) 1 "f"
+ MemberName 56(s2) 2 "s1_1"
+ Name 57 "ub1"
+ MemberName 57(ub1) 0 "foo2a"
+ Name 59 "uName1"
+ Name 64 "s1"
+ MemberName 64(s1) 0 "i"
+ MemberName 64(s1) 1 "f"
+ Name 65 "s2"
+ MemberName 65(s2) 0 "i"
+ MemberName 65(s2) 1 "f"
+ MemberName 65(s2) 2 "s1_1"
+ Name 66 "ub2"
+ MemberName 66(ub2) 0 "foo2b"
+ Name 68 "uName2"
+ Name 93 "v"
+ Name 97 "samp2D"
+ Name 101 "coord"
+ Name 213 "color"
+ MemberDecorate 55(s1) 0 Offset 0
+ MemberDecorate 55(s1) 1 Offset 4
+ MemberDecorate 56(s2) 0 Offset 0
+ MemberDecorate 56(s2) 1 Offset 4
+ MemberDecorate 56(s2) 2 Offset 16
+ MemberDecorate 57(ub1) 0 Offset 0
+ Decorate 57(ub1) Block
+ Decorate 59(uName1) DescriptorSet 0
+ MemberDecorate 64(s1) 0 Offset 0
+ MemberDecorate 64(s1) 1 Offset 4
+ MemberDecorate 65(s2) 0 Offset 0
+ MemberDecorate 65(s2) 1 Offset 4
+ MemberDecorate 65(s2) 2 Offset 8
+ MemberDecorate 66(ub2) 0 Offset 0
+ Decorate 66(ub2) BufferBlock
+ Decorate 68(uName2) DescriptorSet 0
+ Decorate 97(samp2D) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypeFloat 32
+ 8(s1): TypeStruct 6(int) 7(float)
+ 9: TypeInt 32 0
+ 10: 9(int) Constant 3
+ 11: TypeArray 8(s1) 10
+ 12: TypePointer Function 11
+ 14: TypeVector 7(float) 4
+ 15: TypePointer Input 14(fvec4)
+ 16(u): 15(ptr) Variable Input
+ 17: 9(int) Constant 0
+ 18: TypePointer Input 7(float)
+ 22: 9(int) Constant 1
+ 26: 9(int) Constant 2
+ 33: 6(int) Constant 14
+ 34: 7(float) Constant 1096810496
+ 35: 8(s1) ConstantComposite 33 34
+ 38: 6(int) Constant 17
+ 39: 7(float) Constant 1099431936
+ 40: 8(s1) ConstantComposite 38 39
+ 41(w): 15(ptr) Variable Input
+ 55(s1): TypeStruct 6(int) 7(float)
+ 56(s2): TypeStruct 6(int) 7(float) 55(s1)
+ 57(ub1): TypeStruct 56(s2)
+ 58: TypePointer Uniform 57(ub1)
+ 59(uName1): 58(ptr) Variable Uniform
+ 60: 6(int) Constant 0
+ 61: TypePointer Uniform 56(s2)
+ 64(s1): TypeStruct 6(int) 7(float)
+ 65(s2): TypeStruct 6(int) 7(float) 64(s1)
+ 66(ub2): TypeStruct 65(s2)
+ 67: TypePointer Uniform 66(ub2)
+ 68(uName2): 67(ptr) Variable Uniform
+ 69: TypePointer Uniform 65(s2)
+ 72: TypeBool
+ 92: TypePointer Function 14(fvec4)
+ 94: TypeImage 7(float) 2D sampled format:Unknown
+ 95: TypeSampledImage 94
+ 96: TypePointer UniformConstant 95
+ 97(samp2D): 96(ptr) Variable UniformConstant
+ 99: TypeVector 7(float) 2
+ 100: TypePointer Input 99(fvec2)
+ 101(coord): 100(ptr) Variable Input
+ 106: 7(float) Constant 1073741824
+ 112: TypeVector 72(bool) 4
+ 117: 7(float) Constant 1077936128
+ 126: 7(float) Constant 1082130432
+ 132: TypeVector 72(bool) 2
+ 137: 7(float) Constant 1084227584
+ 173: 7(float) Constant 1086324736
+ 209: 7(float) Constant 1088421888
+ 212: TypePointer Output 14(fvec4)
+ 213(color): 212(ptr) Variable Output
+ 4(main): 2 Function None 3
+ 5: Label
+ 13(a): 12(ptr) Variable Function
+ 37(b): 12(ptr) Variable Function
+ 93(v): 92(ptr) Variable Function
+ 19: 18(ptr) AccessChain 16(u) 17
+ 20: 7(float) Load 19
+ 21: 6(int) ConvertFToS 20
+ 23: 18(ptr) AccessChain 16(u) 22
+ 24: 7(float) Load 23
+ 25: 8(s1) CompositeConstruct 21 24
+ 27: 18(ptr) AccessChain 16(u) 26
+ 28: 7(float) Load 27
+ 29: 6(int) ConvertFToS 28
+ 30: 18(ptr) AccessChain 16(u) 10
+ 31: 7(float) Load 30
+ 32: 8(s1) CompositeConstruct 29 31
+ 36: 11 CompositeConstruct 25 32 35
+ Store 13(a) 36
+ 42: 18(ptr) AccessChain 41(w) 17
+ 43: 7(float) Load 42
+ 44: 6(int) ConvertFToS 43
+ 45: 18(ptr) AccessChain 41(w) 22
+ 46: 7(float) Load 45
+ 47: 8(s1) CompositeConstruct 44 46
+ 48: 18(ptr) AccessChain 41(w) 26
+ 49: 7(float) Load 48
+ 50: 6(int) ConvertFToS 49
+ 51: 18(ptr) AccessChain 41(w) 10
+ 52: 7(float) Load 51
+ 53: 8(s1) CompositeConstruct 50 52
+ 54: 11 CompositeConstruct 40 47 53
+ Store 37(b) 54
+ 62: 61(ptr) AccessChain 59(uName1) 60
+ 63: 56(s2) Load 62
+ 70: 69(ptr) AccessChain 68(uName2) 60
+ 71: 65(s2) Load 70
+ 73: 6(int) CompositeExtract 63 0
+ 74: 6(int) CompositeExtract 71 0
+ 75: 72(bool) IEqual 73 74
+ 76: 7(float) CompositeExtract 63 1
+ 77: 7(float) CompositeExtract 71 1
+ 78: 72(bool) FOrdEqual 76 77
+ 79: 72(bool) LogicalAnd 75 78
+ 80: 55(s1) CompositeExtract 63 2
+ 81: 64(s1) CompositeExtract 71 2
+ 82: 6(int) CompositeExtract 80 0
+ 83: 6(int) CompositeExtract 81 0
+ 84: 72(bool) IEqual 82 83
+ 85: 7(float) CompositeExtract 80 1
+ 86: 7(float) CompositeExtract 81 1
+ 87: 72(bool) FOrdEqual 85 86
+ 88: 72(bool) LogicalAnd 84 87
+ 89: 72(bool) LogicalAnd 79 88
+ SelectionMerge 91 None
+ BranchConditional 89 90 104
+ 90: Label
+ 98: 95 Load 97(samp2D)
+ 102: 99(fvec2) Load 101(coord)
+ 103: 14(fvec4) ImageSampleImplicitLod 98 102
+ Store 93(v) 103
+ Branch 91
+ 104: Label
+ 105: 95 Load 97(samp2D)
+ 107: 99(fvec2) Load 101(coord)
+ 108: 99(fvec2) VectorTimesScalar 107 106
+ 109: 14(fvec4) ImageSampleImplicitLod 105 108
+ Store 93(v) 109
+ Branch 91
+ 91: Label
+ 110: 14(fvec4) Load 16(u)
+ 111: 14(fvec4) Load 93(v)
+ 113: 112(bvec4) FOrdEqual 110 111
+ 114: 72(bool) All 113
+ SelectionMerge 116 None
+ BranchConditional 114 115 116
+ 115: Label
+ 118: 14(fvec4) Load 93(v)
+ 119: 14(fvec4) VectorTimesScalar 118 117
+ Store 93(v) 119
+ Branch 116
+ 116: Label
+ 120: 14(fvec4) Load 16(u)
+ 121: 14(fvec4) Load 93(v)
+ 122: 112(bvec4) FOrdNotEqual 120 121
+ 123: 72(bool) Any 122
+ SelectionMerge 125 None
+ BranchConditional 123 124 125
+ 124: Label
+ 127: 14(fvec4) Load 93(v)
+ 128: 14(fvec4) VectorTimesScalar 127 126
+ Store 93(v) 128
+ Branch 125
+ 125: Label
+ 129: 99(fvec2) Load 101(coord)
+ 130: 14(fvec4) Load 93(v)
+ 131: 99(fvec2) VectorShuffle 130 130 1 3
+ 133: 132(bvec2) FOrdEqual 129 131
+ 134: 72(bool) All 133
+ SelectionMerge 136 None
+ BranchConditional 134 135 136
+ 135: Label
+ 138: 14(fvec4) Load 93(v)
+ 139: 14(fvec4) VectorTimesScalar 138 137
+ Store 93(v) 139
+ Branch 136
+ 136: Label
+ 140: 11 Load 13(a)
+ 141: 11 Load 37(b)
+ 142: 8(s1) CompositeExtract 140 0
+ 143: 8(s1) CompositeExtract 141 0
+ 144: 6(int) CompositeExtract 142 0
+ 145: 6(int) CompositeExtract 143 0
+ 146: 72(bool) IEqual 144 145
+ 147: 7(float) CompositeExtract 142 1
+ 148: 7(float) CompositeExtract 143 1
+ 149: 72(bool) FOrdEqual 147 148
+ 150: 72(bool) LogicalAnd 146 149
+ 151: 8(s1) CompositeExtract 140 1
+ 152: 8(s1) CompositeExtract 141 1
+ 153: 6(int) CompositeExtract 151 0
+ 154: 6(int) CompositeExtract 152 0
+ 155: 72(bool) IEqual 153 154
+ 156: 7(float) CompositeExtract 151 1
+ 157: 7(float) CompositeExtract 152 1
+ 158: 72(bool) FOrdEqual 156 157
+ 159: 72(bool) LogicalAnd 155 158
+ 160: 72(bool) LogicalAnd 150 159
+ 161: 8(s1) CompositeExtract 140 2
+ 162: 8(s1) CompositeExtract 141 2
+ 163: 6(int) CompositeExtract 161 0
+ 164: 6(int) CompositeExtract 162 0
+ 165: 72(bool) IEqual 163 164
+ 166: 7(float) CompositeExtract 161 1
+ 167: 7(float) CompositeExtract 162 1
+ 168: 72(bool) FOrdEqual 166 167
+ 169: 72(bool) LogicalAnd 165 168
+ 170: 72(bool) LogicalAnd 160 169
+ SelectionMerge 172 None
+ BranchConditional 170 171 172
+ 171: Label
+ 174: 14(fvec4) Load 93(v)
+ 175: 14(fvec4) VectorTimesScalar 174 173
+ Store 93(v) 175
+ Branch 172
+ 172: Label
+ 176: 11 Load 13(a)
+ 177: 11 Load 37(b)
+ 178: 8(s1) CompositeExtract 176 0
+ 179: 8(s1) CompositeExtract 177 0
+ 180: 6(int) CompositeExtract 178 0
+ 181: 6(int) CompositeExtract 179 0
+ 182: 72(bool) INotEqual 180 181
+ 183: 7(float) CompositeExtract 178 1
+ 184: 7(float) CompositeExtract 179 1
+ 185: 72(bool) FOrdNotEqual 183 184
+ 186: 72(bool) LogicalOr 182 185
+ 187: 8(s1) CompositeExtract 176 1
+ 188: 8(s1) CompositeExtract 177 1
+ 189: 6(int) CompositeExtract 187 0
+ 190: 6(int) CompositeExtract 188 0
+ 191: 72(bool) INotEqual 189 190
+ 192: 7(float) CompositeExtract 187 1
+ 193: 7(float) CompositeExtract 188 1
+ 194: 72(bool) FOrdNotEqual 192 193
+ 195: 72(bool) LogicalOr 191 194
+ 196: 72(bool) LogicalOr 186 195
+ 197: 8(s1) CompositeExtract 176 2
+ 198: 8(s1) CompositeExtract 177 2
+ 199: 6(int) CompositeExtract 197 0
+ 200: 6(int) CompositeExtract 198 0
+ 201: 72(bool) INotEqual 199 200
+ 202: 7(float) CompositeExtract 197 1
+ 203: 7(float) CompositeExtract 198 1
+ 204: 72(bool) FOrdNotEqual 202 203
+ 205: 72(bool) LogicalOr 201 204
+ 206: 72(bool) LogicalOr 196 205
+ SelectionMerge 208 None
+ BranchConditional 206 207 208
+ 207: Label
+ 210: 14(fvec4) Load 93(v)
+ 211: 14(fvec4) VectorTimesScalar 210 209
+ Store 93(v) 211
+ Branch 208
+ 208: Label
+ 214: 14(fvec4) Load 93(v)
+ Store 213(color) 214
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.always-discard.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.always-discard.frag.out
new file mode 100644
index 00000000000..9102b3bb527
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.always-discard.frag.out
@@ -0,0 +1,113 @@
+spv.always-discard.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 84
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 21 59
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 140
+ Name 4 "main"
+ Name 9 "white"
+ Name 12 "black"
+ Name 15 "color"
+ Name 18 "x"
+ Name 21 "tex_coord"
+ Name 30 "y"
+ Name 36 "radius"
+ Name 59 "gl_FragColor"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+ 10: 6(float) Constant 1065353216
+ 11: 7(fvec4) ConstantComposite 10 10 10 10
+ 13: 6(float) Constant 1045220557
+ 14: 7(fvec4) ConstantComposite 13 13 13 13
+ 17: TypePointer Function 6(float)
+ 19: TypeVector 6(float) 2
+ 20: TypePointer Input 19(fvec2)
+ 21(tex_coord): 20(ptr) Variable Input
+ 22: TypeInt 32 0
+ 23: 22(int) Constant 0
+ 24: TypePointer Input 6(float)
+ 27: 6(float) Constant 1073741824
+ 31: 22(int) Constant 1
+ 46: TypeBool
+ 51: 6(float) Constant 1066192077
+ 58: TypePointer Output 7(fvec4)
+59(gl_FragColor): 58(ptr) Variable Output
+ 62: 6(float) Constant 1067030938
+ 71: 6(float) Constant 1061158912
+ 76: 6(float) Constant 1098907648
+ 4(main): 2 Function None 3
+ 5: Label
+ 9(white): 8(ptr) Variable Function
+ 12(black): 8(ptr) Variable Function
+ 15(color): 8(ptr) Variable Function
+ 18(x): 17(ptr) Variable Function
+ 30(y): 17(ptr) Variable Function
+ 36(radius): 17(ptr) Variable Function
+ Store 9(white) 11
+ Store 12(black) 14
+ 16: 7(fvec4) Load 9(white)
+ Store 15(color) 16
+ 25: 24(ptr) AccessChain 21(tex_coord) 23
+ 26: 6(float) Load 25
+ 28: 6(float) FMul 26 27
+ 29: 6(float) FSub 28 10
+ Store 18(x) 29
+ 32: 24(ptr) AccessChain 21(tex_coord) 31
+ 33: 6(float) Load 32
+ 34: 6(float) FMul 33 27
+ 35: 6(float) FSub 34 10
+ Store 30(y) 35
+ 37: 6(float) Load 18(x)
+ 38: 6(float) Load 18(x)
+ 39: 6(float) FMul 37 38
+ 40: 6(float) Load 30(y)
+ 41: 6(float) Load 30(y)
+ 42: 6(float) FMul 40 41
+ 43: 6(float) FAdd 39 42
+ 44: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 43
+ Store 36(radius) 44
+ 45: 6(float) Load 36(radius)
+ 47: 46(bool) FOrdGreaterThan 45 10
+ SelectionMerge 49 None
+ BranchConditional 47 48 49
+ 48: Label
+ 50: 6(float) Load 36(radius)
+ 52: 46(bool) FOrdGreaterThan 50 51
+ SelectionMerge 54 None
+ BranchConditional 52 53 54
+ 53: Label
+ 55: 7(fvec4) Load 15(color)
+ 56: 7(fvec4) CompositeConstruct 10 10 10 10
+ 57: 7(fvec4) FAdd 55 56
+ Store 15(color) 57
+ Branch 54
+ 54: Label
+ 60: 7(fvec4) Load 15(color)
+ Store 59(gl_FragColor) 60
+ 61: 6(float) Load 36(radius)
+ 63: 46(bool) FOrdGreaterThan 61 62
+ SelectionMerge 65 None
+ BranchConditional 63 64 65
+ 64: Label
+ 66: 7(fvec4) Load 15(color)
+ 67: 7(fvec4) CompositeConstruct 10 10 10 10
+ 68: 7(fvec4) FAdd 66 67
+ Store 15(color) 68
+ Branch 65
+ 65: Label
+ Branch 49
+ 49: Label
+ Kill
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.always-discard2.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.always-discard2.frag.out
new file mode 100755
index 00000000000..7984c8322fd
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.always-discard2.frag.out
@@ -0,0 +1,66 @@
+spv.always-discard2.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 40
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 21 38
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 140
+ Name 4 "main"
+ Name 9 "white"
+ Name 12 "black"
+ Name 15 "color"
+ Name 18 "x"
+ Name 21 "tex_coord"
+ Name 30 "y"
+ Name 38 "gl_FragColor"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+ 10: 6(float) Constant 1065353216
+ 11: 7(fvec4) ConstantComposite 10 10 10 10
+ 13: 6(float) Constant 1045220557
+ 14: 7(fvec4) ConstantComposite 13 13 13 13
+ 17: TypePointer Function 6(float)
+ 19: TypeVector 6(float) 2
+ 20: TypePointer Input 19(fvec2)
+ 21(tex_coord): 20(ptr) Variable Input
+ 22: TypeInt 32 0
+ 23: 22(int) Constant 0
+ 24: TypePointer Input 6(float)
+ 27: 6(float) Constant 1073741824
+ 31: 22(int) Constant 1
+ 37: TypePointer Output 7(fvec4)
+38(gl_FragColor): 37(ptr) Variable Output
+ 4(main): 2 Function None 3
+ 5: Label
+ 9(white): 8(ptr) Variable Function
+ 12(black): 8(ptr) Variable Function
+ 15(color): 8(ptr) Variable Function
+ 18(x): 17(ptr) Variable Function
+ 30(y): 17(ptr) Variable Function
+ Store 9(white) 11
+ Store 12(black) 14
+ 16: 7(fvec4) Load 9(white)
+ Store 15(color) 16
+ 25: 24(ptr) AccessChain 21(tex_coord) 23
+ 26: 6(float) Load 25
+ 28: 6(float) FMul 26 27
+ 29: 6(float) FSub 28 10
+ Store 18(x) 29
+ 32: 24(ptr) AccessChain 21(tex_coord) 31
+ 33: 6(float) Load 32
+ 34: 6(float) FMul 33 27
+ 35: 6(float) FSub 34 10
+ Store 30(y) 35
+ Kill
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.atomic.comp.out b/chromium/third_party/glslang/src/Test/baseResults/spv.atomic.comp.out
new file mode 100755
index 00000000000..bc8d9b81448
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.atomic.comp.out
@@ -0,0 +1,205 @@
+spv.atomic.comp
+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+
+Shader version: 310
+Requested GL_ARB_gl_spirv
+local_size = (1, 1, 1)
+0:? Sequence
+0:14 Function Definition: func(au1; (global highp uint)
+0:14 Function Parameters:
+0:14 'c' (in highp atomic_uint)
+0:16 Sequence
+0:16 Branch: Return with expression
+0:16 AtomicCounterIncrement (global highp uint)
+0:16 'c' (in highp atomic_uint)
+0:19 Function Definition: main( (global void)
+0:19 Function Parameters:
+0:21 Sequence
+0:21 MemoryBarrierAtomicCounter (global void)
+0:22 Function Call: func(au1; (global highp uint)
+0:22 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
+0:23 Sequence
+0:23 move second child to first child (temp highp uint)
+0:23 'val' (temp highp uint)
+0:23 AtomicCounter (global highp uint)
+0:23 direct index (layout(binding=0 offset=4 ) temp highp atomic_uint)
+0:23 'countArr' (layout(binding=0 offset=4 ) uniform 4-element array of highp atomic_uint)
+0:23 Constant:
+0:23 2 (const int)
+0:24 AtomicCounterDecrement (global highp uint)
+0:24 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
+0:36 Function Definition: atoms( (global void)
+0:36 Function Parameters:
+0:38 Sequence
+0:38 Sequence
+0:38 move second child to first child (temp highp int)
+0:38 'origi' (temp highp int)
+0:38 AtomicAdd (global highp int)
+0:38 'atomi' (shared highp int)
+0:38 Constant:
+0:38 3 (const int)
+0:39 Sequence
+0:39 move second child to first child (temp highp uint)
+0:39 'origu' (temp highp uint)
+0:39 AtomicAnd (global highp uint)
+0:39 'atomu' (shared highp uint)
+0:39 'value' (shared highp uint)
+0:40 move second child to first child (temp highp uint)
+0:40 'origu' (temp highp uint)
+0:40 AtomicOr (global highp uint)
+0:40 'atomu' (shared highp uint)
+0:40 Constant:
+0:40 7 (const uint)
+0:41 move second child to first child (temp highp uint)
+0:41 'origu' (temp highp uint)
+0:41 AtomicXor (global highp uint)
+0:41 'atomu' (shared highp uint)
+0:41 Constant:
+0:41 7 (const uint)
+0:42 move second child to first child (temp highp uint)
+0:42 'origu' (temp highp uint)
+0:42 AtomicMin (global highp uint)
+0:42 'atomu' (shared highp uint)
+0:42 'value' (shared highp uint)
+0:43 move second child to first child (temp highp int)
+0:43 'origi' (temp highp int)
+0:43 AtomicMax (global highp int)
+0:43 'atomi' (shared highp int)
+0:43 Constant:
+0:43 7 (const int)
+0:44 move second child to first child (temp highp int)
+0:44 'origi' (temp highp int)
+0:44 AtomicExchange (global highp int)
+0:44 'atomi' (shared highp int)
+0:44 'origi' (temp highp int)
+0:45 move second child to first child (temp highp uint)
+0:45 'origu' (temp highp uint)
+0:45 AtomicCompSwap (global highp uint)
+0:45 'atomu' (shared highp uint)
+0:45 Constant:
+0:45 10 (const uint)
+0:45 'value' (shared highp uint)
+0:46 AtomicAdd (global highp int)
+0:46 direct index (temp highp int)
+0:46 n_frames_rendered: direct index for structure (layout(column_major std140 offset=16 ) buffer highp 4-component vector of int)
+0:46 'result' (layout(binding=0 column_major std140 ) restrict buffer block{layout(column_major std140 offset=0 ) buffer highp float f, layout(column_major std140 offset=16 ) buffer highp 4-component vector of int n_frames_rendered})
+0:46 Constant:
+0:46 1 (const int)
+0:46 Constant:
+0:46 2 (const int)
+0:46 Constant:
+0:46 1 (const int)
+0:? Linker Objects
+0:? 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
+0:? 'countArr' (layout(binding=0 offset=4 ) uniform 4-element array of highp atomic_uint)
+0:? 'value' (shared highp uint)
+0:? 'arrX' (global 1-element array of highp int)
+0:? 'arrY' (global 1-element array of highp int)
+0:? 'arrZ' (global 1-element array of highp int)
+0:? 'atomi' (shared highp int)
+0:? 'atomu' (shared highp uint)
+0:? 'result' (layout(binding=0 column_major std140 ) restrict buffer block{layout(column_major std140 offset=0 ) buffer highp float f, layout(column_major std140 offset=16 ) buffer highp 4-component vector of int n_frames_rendered})
+
+
+Linked compute stage:
+
+
+Shader version: 310
+Requested GL_ARB_gl_spirv
+local_size = (1, 1, 1)
+0:? Sequence
+0:14 Function Definition: func(au1; (global highp uint)
+0:14 Function Parameters:
+0:14 'c' (in highp atomic_uint)
+0:16 Sequence
+0:16 Branch: Return with expression
+0:16 AtomicCounterIncrement (global highp uint)
+0:16 'c' (in highp atomic_uint)
+0:19 Function Definition: main( (global void)
+0:19 Function Parameters:
+0:21 Sequence
+0:21 MemoryBarrierAtomicCounter (global void)
+0:22 Function Call: func(au1; (global highp uint)
+0:22 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
+0:23 Sequence
+0:23 move second child to first child (temp highp uint)
+0:23 'val' (temp highp uint)
+0:23 AtomicCounter (global highp uint)
+0:23 direct index (layout(binding=0 offset=4 ) temp highp atomic_uint)
+0:23 'countArr' (layout(binding=0 offset=4 ) uniform 4-element array of highp atomic_uint)
+0:23 Constant:
+0:23 2 (const int)
+0:24 AtomicCounterDecrement (global highp uint)
+0:24 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
+0:36 Function Definition: atoms( (global void)
+0:36 Function Parameters:
+0:38 Sequence
+0:38 Sequence
+0:38 move second child to first child (temp highp int)
+0:38 'origi' (temp highp int)
+0:38 AtomicAdd (global highp int)
+0:38 'atomi' (shared highp int)
+0:38 Constant:
+0:38 3 (const int)
+0:39 Sequence
+0:39 move second child to first child (temp highp uint)
+0:39 'origu' (temp highp uint)
+0:39 AtomicAnd (global highp uint)
+0:39 'atomu' (shared highp uint)
+0:39 'value' (shared highp uint)
+0:40 move second child to first child (temp highp uint)
+0:40 'origu' (temp highp uint)
+0:40 AtomicOr (global highp uint)
+0:40 'atomu' (shared highp uint)
+0:40 Constant:
+0:40 7 (const uint)
+0:41 move second child to first child (temp highp uint)
+0:41 'origu' (temp highp uint)
+0:41 AtomicXor (global highp uint)
+0:41 'atomu' (shared highp uint)
+0:41 Constant:
+0:41 7 (const uint)
+0:42 move second child to first child (temp highp uint)
+0:42 'origu' (temp highp uint)
+0:42 AtomicMin (global highp uint)
+0:42 'atomu' (shared highp uint)
+0:42 'value' (shared highp uint)
+0:43 move second child to first child (temp highp int)
+0:43 'origi' (temp highp int)
+0:43 AtomicMax (global highp int)
+0:43 'atomi' (shared highp int)
+0:43 Constant:
+0:43 7 (const int)
+0:44 move second child to first child (temp highp int)
+0:44 'origi' (temp highp int)
+0:44 AtomicExchange (global highp int)
+0:44 'atomi' (shared highp int)
+0:44 'origi' (temp highp int)
+0:45 move second child to first child (temp highp uint)
+0:45 'origu' (temp highp uint)
+0:45 AtomicCompSwap (global highp uint)
+0:45 'atomu' (shared highp uint)
+0:45 Constant:
+0:45 10 (const uint)
+0:45 'value' (shared highp uint)
+0:46 AtomicAdd (global highp int)
+0:46 direct index (temp highp int)
+0:46 n_frames_rendered: direct index for structure (layout(column_major std140 offset=16 ) buffer highp 4-component vector of int)
+0:46 'result' (layout(binding=0 column_major std140 ) restrict buffer block{layout(column_major std140 offset=0 ) buffer highp float f, layout(column_major std140 offset=16 ) buffer highp 4-component vector of int n_frames_rendered})
+0:46 Constant:
+0:46 1 (const int)
+0:46 Constant:
+0:46 2 (const int)
+0:46 Constant:
+0:46 1 (const int)
+0:? Linker Objects
+0:? 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
+0:? 'countArr' (layout(binding=0 offset=4 ) uniform 4-element array of highp atomic_uint)
+0:? 'value' (shared highp uint)
+0:? 'arrX' (global 1-element array of highp int)
+0:? 'arrY' (global 1-element array of highp int)
+0:? 'arrZ' (global 1-element array of highp int)
+0:? 'atomi' (shared highp int)
+0:? 'atomu' (shared highp uint)
+0:? 'result' (layout(binding=0 column_major std140 ) restrict buffer block{layout(column_major std140 offset=0 ) buffer highp float f, layout(column_major std140 offset=16 ) buffer highp 4-component vector of int n_frames_rendered})
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.bitCast.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.bitCast.frag.out
new file mode 100644
index 00000000000..b0dc8104943
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.bitCast.frag.out
@@ -0,0 +1,240 @@
+spv.bitCast.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 172
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 14 26 37 48 89 98 107 116 122 130 139 148 154
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 450
+ Name 4 "main"
+ Name 9 "idata"
+ Name 14 "f1"
+ Name 26 "f2"
+ Name 37 "f3"
+ Name 48 "f4"
+ Name 55 "udata"
+ Name 85 "fdata"
+ Name 89 "i1"
+ Name 98 "i2"
+ Name 107 "i3"
+ Name 116 "i4"
+ Name 122 "u1"
+ Name 130 "u2"
+ Name 139 "u3"
+ Name 148 "u4"
+ Name 154 "fragColor"
+ Decorate 89(i1) Flat
+ Decorate 98(i2) Flat
+ Decorate 107(i3) Flat
+ Decorate 116(i4) Flat
+ Decorate 122(u1) Flat
+ Decorate 130(u2) Flat
+ Decorate 139(u3) Flat
+ Decorate 148(u4) Flat
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypeVector 6(int) 4
+ 8: TypePointer Function 7(ivec4)
+ 10: 6(int) Constant 0
+ 11: 7(ivec4) ConstantComposite 10 10 10 10
+ 12: TypeFloat 32
+ 13: TypePointer Input 12(float)
+ 14(f1): 13(ptr) Variable Input
+ 17: TypeInt 32 0
+ 18: 17(int) Constant 0
+ 19: TypePointer Function 6(int)
+ 24: TypeVector 12(float) 2
+ 25: TypePointer Input 24(fvec2)
+ 26(f2): 25(ptr) Variable Input
+ 28: TypeVector 6(int) 2
+ 35: TypeVector 12(float) 3
+ 36: TypePointer Input 35(fvec3)
+ 37(f3): 36(ptr) Variable Input
+ 39: TypeVector 6(int) 3
+ 46: TypeVector 12(float) 4
+ 47: TypePointer Input 46(fvec4)
+ 48(f4): 47(ptr) Variable Input
+ 53: TypeVector 17(int) 4
+ 54: TypePointer Function 53(ivec4)
+ 56: 53(ivec4) ConstantComposite 18 18 18 18
+ 59: TypePointer Function 17(int)
+ 65: TypeVector 17(int) 2
+ 73: TypeVector 17(int) 3
+ 84: TypePointer Function 46(fvec4)
+ 86: 12(float) Constant 0
+ 87: 46(fvec4) ConstantComposite 86 86 86 86
+ 88: TypePointer Input 6(int)
+ 89(i1): 88(ptr) Variable Input
+ 92: TypePointer Function 12(float)
+ 97: TypePointer Input 28(ivec2)
+ 98(i2): 97(ptr) Variable Input
+ 106: TypePointer Input 39(ivec3)
+ 107(i3): 106(ptr) Variable Input
+ 115: TypePointer Input 7(ivec4)
+ 116(i4): 115(ptr) Variable Input
+ 121: TypePointer Input 17(int)
+ 122(u1): 121(ptr) Variable Input
+ 129: TypePointer Input 65(ivec2)
+ 130(u2): 129(ptr) Variable Input
+ 138: TypePointer Input 73(ivec3)
+ 139(u3): 138(ptr) Variable Input
+ 147: TypePointer Input 53(ivec4)
+ 148(u4): 147(ptr) Variable Input
+ 153: TypePointer Output 46(fvec4)
+ 154(fragColor): 153(ptr) Variable Output
+ 159: TypeBool
+ 160: TypeVector 159(bool) 4
+ 168: 12(float) Constant 1045220557
+ 169: 46(fvec4) ConstantComposite 168 168 168 168
+ 4(main): 2 Function None 3
+ 5: Label
+ 9(idata): 8(ptr) Variable Function
+ 55(udata): 54(ptr) Variable Function
+ 85(fdata): 84(ptr) Variable Function
+ 155: 84(ptr) Variable Function
+ Store 9(idata) 11
+ 15: 12(float) Load 14(f1)
+ 16: 6(int) Bitcast 15
+ 20: 19(ptr) AccessChain 9(idata) 18
+ 21: 6(int) Load 20
+ 22: 6(int) IAdd 21 16
+ 23: 19(ptr) AccessChain 9(idata) 18
+ Store 23 22
+ 27: 24(fvec2) Load 26(f2)
+ 29: 28(ivec2) Bitcast 27
+ 30: 7(ivec4) Load 9(idata)
+ 31: 28(ivec2) VectorShuffle 30 30 0 1
+ 32: 28(ivec2) IAdd 31 29
+ 33: 7(ivec4) Load 9(idata)
+ 34: 7(ivec4) VectorShuffle 33 32 4 5 2 3
+ Store 9(idata) 34
+ 38: 35(fvec3) Load 37(f3)
+ 40: 39(ivec3) Bitcast 38
+ 41: 7(ivec4) Load 9(idata)
+ 42: 39(ivec3) VectorShuffle 41 41 0 1 2
+ 43: 39(ivec3) IAdd 42 40
+ 44: 7(ivec4) Load 9(idata)
+ 45: 7(ivec4) VectorShuffle 44 43 4 5 6 3
+ Store 9(idata) 45
+ 49: 46(fvec4) Load 48(f4)
+ 50: 7(ivec4) Bitcast 49
+ 51: 7(ivec4) Load 9(idata)
+ 52: 7(ivec4) IAdd 51 50
+ Store 9(idata) 52
+ Store 55(udata) 56
+ 57: 12(float) Load 14(f1)
+ 58: 17(int) Bitcast 57
+ 60: 59(ptr) AccessChain 55(udata) 18
+ 61: 17(int) Load 60
+ 62: 17(int) IAdd 61 58
+ 63: 59(ptr) AccessChain 55(udata) 18
+ Store 63 62
+ 64: 24(fvec2) Load 26(f2)
+ 66: 65(ivec2) Bitcast 64
+ 67: 53(ivec4) Load 55(udata)
+ 68: 65(ivec2) VectorShuffle 67 67 0 1
+ 69: 65(ivec2) IAdd 68 66
+ 70: 53(ivec4) Load 55(udata)
+ 71: 53(ivec4) VectorShuffle 70 69 4 5 2 3
+ Store 55(udata) 71
+ 72: 35(fvec3) Load 37(f3)
+ 74: 73(ivec3) Bitcast 72
+ 75: 53(ivec4) Load 55(udata)
+ 76: 73(ivec3) VectorShuffle 75 75 0 1 2
+ 77: 73(ivec3) IAdd 76 74
+ 78: 53(ivec4) Load 55(udata)
+ 79: 53(ivec4) VectorShuffle 78 77 4 5 6 3
+ Store 55(udata) 79
+ 80: 46(fvec4) Load 48(f4)
+ 81: 53(ivec4) Bitcast 80
+ 82: 53(ivec4) Load 55(udata)
+ 83: 53(ivec4) IAdd 82 81
+ Store 55(udata) 83
+ Store 85(fdata) 87
+ 90: 6(int) Load 89(i1)
+ 91: 12(float) Bitcast 90
+ 93: 92(ptr) AccessChain 85(fdata) 18
+ 94: 12(float) Load 93
+ 95: 12(float) FAdd 94 91
+ 96: 92(ptr) AccessChain 85(fdata) 18
+ Store 96 95
+ 99: 28(ivec2) Load 98(i2)
+ 100: 24(fvec2) Bitcast 99
+ 101: 46(fvec4) Load 85(fdata)
+ 102: 24(fvec2) VectorShuffle 101 101 0 1
+ 103: 24(fvec2) FAdd 102 100
+ 104: 46(fvec4) Load 85(fdata)
+ 105: 46(fvec4) VectorShuffle 104 103 4 5 2 3
+ Store 85(fdata) 105
+ 108: 39(ivec3) Load 107(i3)
+ 109: 35(fvec3) Bitcast 108
+ 110: 46(fvec4) Load 85(fdata)
+ 111: 35(fvec3) VectorShuffle 110 110 0 1 2
+ 112: 35(fvec3) FAdd 111 109
+ 113: 46(fvec4) Load 85(fdata)
+ 114: 46(fvec4) VectorShuffle 113 112 4 5 6 3
+ Store 85(fdata) 114
+ 117: 7(ivec4) Load 116(i4)
+ 118: 46(fvec4) Bitcast 117
+ 119: 46(fvec4) Load 85(fdata)
+ 120: 46(fvec4) FAdd 119 118
+ Store 85(fdata) 120
+ 123: 17(int) Load 122(u1)
+ 124: 12(float) Bitcast 123
+ 125: 92(ptr) AccessChain 85(fdata) 18
+ 126: 12(float) Load 125
+ 127: 12(float) FAdd 126 124
+ 128: 92(ptr) AccessChain 85(fdata) 18
+ Store 128 127
+ 131: 65(ivec2) Load 130(u2)
+ 132: 24(fvec2) Bitcast 131
+ 133: 46(fvec4) Load 85(fdata)
+ 134: 24(fvec2) VectorShuffle 133 133 0 1
+ 135: 24(fvec2) FAdd 134 132
+ 136: 46(fvec4) Load 85(fdata)
+ 137: 46(fvec4) VectorShuffle 136 135 4 5 2 3
+ Store 85(fdata) 137
+ 140: 73(ivec3) Load 139(u3)
+ 141: 35(fvec3) Bitcast 140
+ 142: 46(fvec4) Load 85(fdata)
+ 143: 35(fvec3) VectorShuffle 142 142 0 1 2
+ 144: 35(fvec3) FAdd 143 141
+ 145: 46(fvec4) Load 85(fdata)
+ 146: 46(fvec4) VectorShuffle 145 144 4 5 6 3
+ Store 85(fdata) 146
+ 149: 53(ivec4) Load 148(u4)
+ 150: 46(fvec4) Bitcast 149
+ 151: 46(fvec4) Load 85(fdata)
+ 152: 46(fvec4) FAdd 151 150
+ Store 85(fdata) 152
+ 156: 7(ivec4) Load 9(idata)
+ 157: 53(ivec4) Bitcast 156
+ 158: 53(ivec4) Load 55(udata)
+ 161: 160(bvec4) IEqual 157 158
+ 162: 159(bool) All 161
+ SelectionMerge 164 None
+ BranchConditional 162 163 166
+ 163: Label
+ 165: 46(fvec4) Load 85(fdata)
+ Store 155 165
+ Branch 164
+ 166: Label
+ 167: 46(fvec4) Load 85(fdata)
+ 170: 46(fvec4) FAdd 167 169
+ Store 155 170
+ Branch 164
+ 164: Label
+ 171: 46(fvec4) Load 155
+ Store 154(fragColor) 171
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.bool.vert.out b/chromium/third_party/glslang/src/Test/baseResults/spv.bool.vert.out
new file mode 100644
index 00000000000..49a69a0eb88
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.bool.vert.out
@@ -0,0 +1,94 @@
+spv.bool.vert
+Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 49
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Vertex 4 "main" 24
+ Source GLSL 450
+ Name 4 "main"
+ Name 10 "foo(b1;"
+ Name 9 "b"
+ Name 22 "gl_PerVertex"
+ MemberName 22(gl_PerVertex) 0 "gl_Position"
+ MemberName 22(gl_PerVertex) 1 "gl_PointSize"
+ MemberName 22(gl_PerVertex) 2 "gl_ClipDistance"
+ MemberName 22(gl_PerVertex) 3 "gl_CullDistance"
+ Name 24 ""
+ Name 29 "ubname"
+ MemberName 29(ubname) 0 "b"
+ Name 31 "ubinst"
+ Name 32 "param"
+ MemberDecorate 22(gl_PerVertex) 0 BuiltIn Position
+ MemberDecorate 22(gl_PerVertex) 1 BuiltIn PointSize
+ MemberDecorate 22(gl_PerVertex) 2 BuiltIn ClipDistance
+ MemberDecorate 22(gl_PerVertex) 3 BuiltIn CullDistance
+ Decorate 22(gl_PerVertex) Block
+ MemberDecorate 29(ubname) 0 Offset 0
+ Decorate 29(ubname) Block
+ Decorate 31(ubinst) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeBool
+ 7: TypePointer Function 6(bool)
+ 8: TypeFunction 6(bool) 7(ptr)
+ 13: 6(bool) ConstantFalse
+ 17: TypeFloat 32
+ 18: TypeVector 17(float) 4
+ 19: TypeInt 32 0
+ 20: 19(int) Constant 1
+ 21: TypeArray 17(float) 20
+22(gl_PerVertex): TypeStruct 18(fvec4) 17(float) 21 21
+ 23: TypePointer Output 22(gl_PerVertex)
+ 24: 23(ptr) Variable Output
+ 25: TypeInt 32 1
+ 26: 25(int) Constant 0
+ 27: TypePointer Function 18(fvec4)
+ 29(ubname): TypeStruct 19(int)
+ 30: TypePointer Uniform 29(ubname)
+ 31(ubinst): 30(ptr) Variable Uniform
+ 33: TypePointer Uniform 19(int)
+ 36: 19(int) Constant 0
+ 41: 17(float) Constant 0
+ 42: 18(fvec4) ConstantComposite 41 41 41 41
+ 44: 17(float) Constant 1065353216
+ 45: 18(fvec4) ConstantComposite 44 44 44 44
+ 47: TypePointer Output 18(fvec4)
+ 4(main): 2 Function None 3
+ 5: Label
+ 28: 27(ptr) Variable Function
+ 32(param): 7(ptr) Variable Function
+ 34: 33(ptr) AccessChain 31(ubinst) 26
+ 35: 19(int) Load 34
+ 37: 6(bool) INotEqual 35 36
+ Store 32(param) 37
+ 38: 6(bool) FunctionCall 10(foo(b1;) 32(param)
+ SelectionMerge 40 None
+ BranchConditional 38 39 43
+ 39: Label
+ Store 28 42
+ Branch 40
+ 43: Label
+ Store 28 45
+ Branch 40
+ 40: Label
+ 46: 18(fvec4) Load 28
+ 48: 47(ptr) AccessChain 24 26
+ Store 48 46
+ Return
+ FunctionEnd
+ 10(foo(b1;): 6(bool) Function None 8
+ 9(b): 7(ptr) FunctionParameter
+ 11: Label
+ 12: 6(bool) Load 9(b)
+ 14: 6(bool) LogicalNotEqual 12 13
+ ReturnValue 14
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.boolInBlock.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.boolInBlock.frag.out
new file mode 100644
index 00000000000..6e7cf40eed2
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.boolInBlock.frag.out
@@ -0,0 +1,169 @@
+spv.boolInBlock.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 107
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 75
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 450
+ Name 4 "main"
+ Name 14 "foo(vb4;vb2;"
+ Name 12 "paramb4"
+ Name 13 "paramb2"
+ Name 17 "b1"
+ Name 24 "Buffer"
+ MemberName 24(Buffer) 0 "b2"
+ Name 26 ""
+ Name 39 "Uniform"
+ MemberName 39(Uniform) 0 "b4"
+ Name 41 ""
+ Name 62 "param"
+ Name 67 "param"
+ Name 75 "fragColor"
+ MemberDecorate 24(Buffer) 0 Offset 0
+ Decorate 24(Buffer) BufferBlock
+ Decorate 26 DescriptorSet 0
+ Decorate 26 Binding 1
+ MemberDecorate 39(Uniform) 0 Offset 0
+ Decorate 39(Uniform) Block
+ Decorate 41 DescriptorSet 0
+ Decorate 41 Binding 0
+ Decorate 75(fragColor) Location 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeBool
+ 7: TypeVector 6(bool) 4
+ 8: TypePointer Function 7(bvec4)
+ 9: TypeVector 6(bool) 2
+ 10: TypePointer Function 9(bvec2)
+ 11: TypeFunction 2 8(ptr) 10(ptr)
+ 16: TypePointer Function 6(bool)
+ 22: TypeInt 32 0
+ 23: TypeVector 22(int) 2
+ 24(Buffer): TypeStruct 23(ivec2)
+ 25: TypePointer Uniform 24(Buffer)
+ 26: 25(ptr) Variable Uniform
+ 27: TypeInt 32 1
+ 28: 27(int) Constant 0
+ 29: 6(bool) ConstantFalse
+ 30: 9(bvec2) ConstantComposite 29 29
+ 31: 22(int) Constant 0
+ 32: 23(ivec2) ConstantComposite 31 31
+ 33: 22(int) Constant 1
+ 34: 23(ivec2) ConstantComposite 33 33
+ 36: TypePointer Uniform 23(ivec2)
+ 38: TypeVector 22(int) 4
+ 39(Uniform): TypeStruct 38(ivec4)
+ 40: TypePointer Uniform 39(Uniform)
+ 41: 40(ptr) Variable Uniform
+ 42: TypePointer Uniform 38(ivec4)
+ 65: 38(ivec4) ConstantComposite 31 31 31 31
+ 72: TypeFloat 32
+ 73: TypeVector 72(float) 4
+ 74: TypePointer Output 73(fvec4)
+ 75(fragColor): 74(ptr) Variable Output
+ 87: 72(float) Constant 0
+ 88: 72(float) Constant 1065353216
+ 4(main): 2 Function None 3
+ 5: Label
+ 62(param): 8(ptr) Variable Function
+ 67(param): 10(ptr) Variable Function
+ 35: 23(ivec2) Select 30 34 32
+ 37: 36(ptr) AccessChain 26 28
+ Store 37 35
+ 43: 42(ptr) AccessChain 41 28
+ 44: 38(ivec4) Load 43
+ 45: 22(int) CompositeExtract 44 2
+ 46: 6(bool) INotEqual 45 31
+ SelectionMerge 48 None
+ BranchConditional 46 47 48
+ 47: Label
+ 49: 42(ptr) AccessChain 41 28
+ 50: 38(ivec4) Load 49
+ 51: 22(int) CompositeExtract 50 0
+ 52: 6(bool) INotEqual 51 31
+ 53: 9(bvec2) CompositeConstruct 52 52
+ 54: 23(ivec2) Select 53 34 32
+ 55: 36(ptr) AccessChain 26 28
+ Store 55 54
+ Branch 48
+ 48: Label
+ 56: 36(ptr) AccessChain 26 28
+ 57: 23(ivec2) Load 56
+ 58: 22(int) CompositeExtract 57 0
+ 59: 6(bool) INotEqual 58 31
+ SelectionMerge 61 None
+ BranchConditional 59 60 61
+ 60: Label
+ 63: 42(ptr) AccessChain 41 28
+ 64: 38(ivec4) Load 63
+ 66: 7(bvec4) INotEqual 64 65
+ Store 62(param) 66
+ 68: 2 FunctionCall 14(foo(vb4;vb2;) 62(param) 67(param)
+ 69: 9(bvec2) Load 67(param)
+ 70: 23(ivec2) Select 69 34 32
+ 71: 36(ptr) AccessChain 26 28
+ Store 71 70
+ Branch 61
+ 61: Label
+ 76: 42(ptr) AccessChain 41 28
+ 77: 38(ivec4) Load 76
+ 78: 22(int) CompositeExtract 77 0
+ 79: 6(bool) INotEqual 78 31
+ SelectionMerge 81 None
+ BranchConditional 79 80 81
+ 80: Label
+ 82: 42(ptr) AccessChain 41 28
+ 83: 38(ivec4) Load 82
+ 84: 22(int) CompositeExtract 83 1
+ 85: 6(bool) INotEqual 84 31
+ Branch 81
+ 81: Label
+ 86: 6(bool) Phi 79 61 85 80
+ 89: 72(float) Select 86 88 87
+ 90: 73(fvec4) CompositeConstruct 89 89 89 89
+ Store 75(fragColor) 90
+ 91: 42(ptr) AccessChain 41 28
+ 92: 38(ivec4) Load 91
+ 93: 22(int) CompositeExtract 92 0
+ 94: 6(bool) INotEqual 93 31
+ 95: 6(bool) LogicalNot 94
+ SelectionMerge 97 None
+ BranchConditional 95 96 97
+ 96: Label
+ 98: 42(ptr) AccessChain 41 28
+ 99: 38(ivec4) Load 98
+ 100: 22(int) CompositeExtract 99 1
+ 101: 6(bool) INotEqual 100 31
+ Branch 97
+ 97: Label
+ 102: 6(bool) Phi 94 81 101 96
+ 103: 72(float) Select 102 88 87
+ 104: 73(fvec4) CompositeConstruct 103 103 103 103
+ 105: 73(fvec4) Load 75(fragColor)
+ 106: 73(fvec4) FSub 105 104
+ Store 75(fragColor) 106
+ Return
+ FunctionEnd
+14(foo(vb4;vb2;): 2 Function None 11
+ 12(paramb4): 8(ptr) FunctionParameter
+ 13(paramb2): 10(ptr) FunctionParameter
+ 15: Label
+ 17(b1): 16(ptr) Variable Function
+ 18: 7(bvec4) Load 12(paramb4)
+ 19: 6(bool) CompositeExtract 18 2
+ Store 17(b1) 19
+ 20: 6(bool) Load 17(b1)
+ 21: 9(bvec2) CompositeConstruct 20 20
+ Store 13(paramb2) 21
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.branch-return.vert.out b/chromium/third_party/glslang/src/Test/baseResults/spv.branch-return.vert.out
new file mode 100644
index 00000000000..217a863fc9f
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.branch-return.vert.out
@@ -0,0 +1,71 @@
+spv.branch-return.vert
+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 38
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Vertex 4 "main" 8 20
+ Source ESSL 310
+ Name 4 "main"
+ Name 8 "gl_InstanceIndex"
+ Name 18 "gl_PerVertex"
+ MemberName 18(gl_PerVertex) 0 "gl_Position"
+ MemberName 18(gl_PerVertex) 1 "gl_PointSize"
+ Name 20 ""
+ Decorate 8(gl_InstanceIndex) BuiltIn InstanceIndex
+ MemberDecorate 18(gl_PerVertex) 0 BuiltIn Position
+ MemberDecorate 18(gl_PerVertex) 1 BuiltIn PointSize
+ Decorate 18(gl_PerVertex) Block
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypePointer Input 6(int)
+8(gl_InstanceIndex): 7(ptr) Variable Input
+ 16: TypeFloat 32
+ 17: TypeVector 16(float) 4
+18(gl_PerVertex): TypeStruct 17(fvec4) 16(float)
+ 19: TypePointer Output 18(gl_PerVertex)
+ 20: 19(ptr) Variable Output
+ 21: 6(int) Constant 0
+ 22: 16(float) Constant 0
+ 23: 17(fvec4) ConstantComposite 22 22 22 22
+ 24: TypePointer Output 17(fvec4)
+ 30: 16(float) Constant 1039918957
+ 31: TypeInt 32 0
+ 32: 31(int) Constant 0
+ 33: TypePointer Output 16(float)
+ 4(main): 2 Function None 3
+ 5: Label
+ 9: 6(int) Load 8(gl_InstanceIndex)
+ SelectionMerge 14 None
+ Switch 9 14
+ case 0: 10
+ case 1: 11
+ case 2: 12
+ case 3: 13
+ 10: Label
+ Return
+ 11: Label
+ 25: 24(ptr) AccessChain 20 21
+ Store 25 23
+ Branch 14
+ 12: Label
+ Return
+ 13: Label
+ Return
+ 14: Label
+ 34: 33(ptr) AccessChain 20 21 32
+ 35: 16(float) Load 34
+ 36: 16(float) FAdd 35 30
+ 37: 33(ptr) AccessChain 20 21 32
+ Store 37 36
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.conditionalDiscard.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.conditionalDiscard.frag.out
new file mode 100755
index 00000000000..ef7e3b4cf91
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.conditionalDiscard.frag.out
@@ -0,0 +1,63 @@
+spv.conditionalDiscard.frag
+Warning, version 400 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 36
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 17 34
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 400
+ Name 4 "main"
+ Name 9 "v"
+ Name 13 "tex"
+ Name 17 "coord"
+ Name 34 "gl_FragColor"
+ Decorate 13(tex) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+ 10: TypeImage 6(float) 2D sampled format:Unknown
+ 11: TypeSampledImage 10
+ 12: TypePointer UniformConstant 11
+ 13(tex): 12(ptr) Variable UniformConstant
+ 15: TypeVector 6(float) 2
+ 16: TypePointer Input 15(fvec2)
+ 17(coord): 16(ptr) Variable Input
+ 21: 6(float) Constant 1036831949
+ 22: 6(float) Constant 1045220557
+ 23: 6(float) Constant 1050253722
+ 24: 6(float) Constant 1053609165
+ 25: 7(fvec4) ConstantComposite 21 22 23 24
+ 26: TypeBool
+ 27: TypeVector 26(bool) 4
+ 33: TypePointer Output 7(fvec4)
+34(gl_FragColor): 33(ptr) Variable Output
+ 4(main): 2 Function None 3
+ 5: Label
+ 9(v): 8(ptr) Variable Function
+ 14: 11 Load 13(tex)
+ 18: 15(fvec2) Load 17(coord)
+ 19: 7(fvec4) ImageSampleImplicitLod 14 18
+ Store 9(v) 19
+ 20: 7(fvec4) Load 9(v)
+ 28: 27(bvec4) FOrdEqual 20 25
+ 29: 26(bool) All 28
+ SelectionMerge 31 None
+ BranchConditional 29 30 31
+ 30: Label
+ Kill
+ 31: Label
+ 35: 7(fvec4) Load 9(v)
+ Store 34(gl_FragColor) 35
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.conversion.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.conversion.frag.out
new file mode 100755
index 00000000000..bc91569857c
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.conversion.frag.out
@@ -0,0 +1,577 @@
+spv.conversion.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 455
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 39 53 157 322 446 448 450 452 454
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 140
+ Name 4 "main"
+ Name 8 "b"
+ Name 11 "u_i"
+ Name 18 "u_f"
+ Name 25 "b2"
+ Name 33 "b3"
+ Name 39 "i_i"
+ Name 45 "b4"
+ Name 53 "i_f"
+ Name 58 "i"
+ Name 68 "i2"
+ Name 71 "u_f2"
+ Name 81 "i3"
+ Name 84 "u_f3"
+ Name 94 "i4"
+ Name 97 "u_f4"
+ Name 106 "f"
+ Name 110 "f2"
+ Name 114 "f3"
+ Name 118 "f4"
+ Name 157 "i_i4"
+ Name 322 "gl_FragColor"
+ Name 417 "cv2"
+ Name 418 "cv5"
+ Name 428 "u_b"
+ Name 430 "u_b2"
+ Name 432 "u_b3"
+ Name 434 "u_b4"
+ Name 436 "u_i2"
+ Name 438 "u_i3"
+ Name 440 "u_i4"
+ Name 441 "i_b"
+ Name 442 "i_b2"
+ Name 443 "i_b3"
+ Name 444 "i_b4"
+ Name 446 "i_i2"
+ Name 448 "i_i3"
+ Name 450 "i_f2"
+ Name 452 "i_f3"
+ Name 454 "i_f4"
+ Decorate 39(i_i) Flat
+ Decorate 157(i_i4) Flat
+ Decorate 446(i_i2) Flat
+ Decorate 448(i_i3) Flat
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeBool
+ 7: TypePointer Function 6(bool)
+ 9: TypeInt 32 1
+ 10: TypePointer Private 9(int)
+ 11(u_i): 10(ptr) Variable Private
+ 13: TypeInt 32 0
+ 14: 13(int) Constant 0
+ 16: TypeFloat 32
+ 17: TypePointer Private 16(float)
+ 18(u_f): 17(ptr) Variable Private
+ 20: 16(float) Constant 0
+ 23: TypeVector 6(bool) 2
+ 24: TypePointer Function 23(bvec2)
+ 31: TypeVector 6(bool) 3
+ 32: TypePointer Function 31(bvec3)
+ 38: TypePointer Input 9(int)
+ 39(i_i): 38(ptr) Variable Input
+ 43: TypeVector 6(bool) 4
+ 44: TypePointer Function 43(bvec4)
+ 52: TypePointer Input 16(float)
+ 53(i_f): 52(ptr) Variable Input
+ 57: TypePointer Function 9(int)
+ 62: 9(int) Constant 0
+ 63: 9(int) Constant 1
+ 66: TypeVector 9(int) 2
+ 67: TypePointer Function 66(ivec2)
+ 69: TypeVector 16(float) 2
+ 70: TypePointer Private 69(fvec2)
+ 71(u_f2): 70(ptr) Variable Private
+ 75: 66(ivec2) ConstantComposite 62 62
+ 76: 66(ivec2) ConstantComposite 63 63
+ 79: TypeVector 9(int) 3
+ 80: TypePointer Function 79(ivec3)
+ 82: TypeVector 16(float) 3
+ 83: TypePointer Private 82(fvec3)
+ 84(u_f3): 83(ptr) Variable Private
+ 88: 79(ivec3) ConstantComposite 62 62 62
+ 89: 79(ivec3) ConstantComposite 63 63 63
+ 92: TypeVector 9(int) 4
+ 93: TypePointer Function 92(ivec4)
+ 95: TypeVector 16(float) 4
+ 96: TypePointer Private 95(fvec4)
+ 97(u_f4): 96(ptr) Variable Private
+ 101: 92(ivec4) ConstantComposite 62 62 62 62
+ 102: 92(ivec4) ConstantComposite 63 63 63 63
+ 105: TypePointer Function 16(float)
+ 109: TypePointer Function 69(fvec2)
+ 113: TypePointer Function 82(fvec3)
+ 117: TypePointer Function 95(fvec4)
+ 124: 16(float) Constant 1065353216
+ 132: 69(fvec2) ConstantComposite 20 20
+ 133: 69(fvec2) ConstantComposite 124 124
+ 141: 82(fvec3) ConstantComposite 20 20 20
+ 142: 82(fvec3) ConstantComposite 124 124 124
+ 150: 95(fvec4) ConstantComposite 20 20 20 20
+ 151: 95(fvec4) ConstantComposite 124 124 124 124
+ 156: TypePointer Input 92(ivec4)
+ 157(i_i4): 156(ptr) Variable Input
+ 159: TypeVector 13(int) 4
+ 160: 159(ivec4) ConstantComposite 14 14 14 14
+ 315: 13(int) Constant 1
+ 321: TypePointer Output 95(fvec4)
+322(gl_FragColor): 321(ptr) Variable Output
+ 367: 13(int) Constant 2
+ 380: 13(int) Constant 3
+ 427: TypePointer Private 6(bool)
+ 428(u_b): 427(ptr) Variable Private
+ 429: TypePointer Private 23(bvec2)
+ 430(u_b2): 429(ptr) Variable Private
+ 431: TypePointer Private 31(bvec3)
+ 432(u_b3): 431(ptr) Variable Private
+ 433: TypePointer Private 43(bvec4)
+ 434(u_b4): 433(ptr) Variable Private
+ 435: TypePointer Private 66(ivec2)
+ 436(u_i2): 435(ptr) Variable Private
+ 437: TypePointer Private 79(ivec3)
+ 438(u_i3): 437(ptr) Variable Private
+ 439: TypePointer Private 92(ivec4)
+ 440(u_i4): 439(ptr) Variable Private
+ 441(i_b): 427(ptr) Variable Private
+ 442(i_b2): 429(ptr) Variable Private
+ 443(i_b3): 431(ptr) Variable Private
+ 444(i_b4): 433(ptr) Variable Private
+ 445: TypePointer Input 66(ivec2)
+ 446(i_i2): 445(ptr) Variable Input
+ 447: TypePointer Input 79(ivec3)
+ 448(i_i3): 447(ptr) Variable Input
+ 449: TypePointer Input 69(fvec2)
+ 450(i_f2): 449(ptr) Variable Input
+ 451: TypePointer Input 82(fvec3)
+ 452(i_f3): 451(ptr) Variable Input
+ 453: TypePointer Input 95(fvec4)
+ 454(i_f4): 453(ptr) Variable Input
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(b): 7(ptr) Variable Function
+ 25(b2): 24(ptr) Variable Function
+ 33(b3): 32(ptr) Variable Function
+ 45(b4): 44(ptr) Variable Function
+ 58(i): 57(ptr) Variable Function
+ 68(i2): 67(ptr) Variable Function
+ 81(i3): 80(ptr) Variable Function
+ 94(i4): 93(ptr) Variable Function
+ 106(f): 105(ptr) Variable Function
+ 110(f2): 109(ptr) Variable Function
+ 114(f3): 113(ptr) Variable Function
+ 118(f4): 117(ptr) Variable Function
+ 297: 105(ptr) Variable Function
+ 307: 105(ptr) Variable Function
+ 323: 117(ptr) Variable Function
+ 417(cv2): 93(ptr) Variable Function
+ 418(cv5): 44(ptr) Variable Function
+ 12: 9(int) Load 11(u_i)
+ 15: 6(bool) INotEqual 12 14
+ 19: 16(float) Load 18(u_f)
+ 21: 6(bool) FOrdNotEqual 19 20
+ 22: 6(bool) LogicalNotEqual 15 21
+ Store 8(b) 22
+ 26: 9(int) Load 11(u_i)
+ 27: 6(bool) INotEqual 26 14
+ 28: 16(float) Load 18(u_f)
+ 29: 6(bool) FOrdNotEqual 28 20
+ 30: 23(bvec2) CompositeConstruct 27 29
+ Store 25(b2) 30
+ 34: 9(int) Load 11(u_i)
+ 35: 6(bool) INotEqual 34 14
+ 36: 16(float) Load 18(u_f)
+ 37: 6(bool) FOrdNotEqual 36 20
+ 40: 9(int) Load 39(i_i)
+ 41: 6(bool) INotEqual 40 14
+ 42: 31(bvec3) CompositeConstruct 35 37 41
+ Store 33(b3) 42
+ 46: 9(int) Load 11(u_i)
+ 47: 6(bool) INotEqual 46 14
+ 48: 16(float) Load 18(u_f)
+ 49: 6(bool) FOrdNotEqual 48 20
+ 50: 9(int) Load 39(i_i)
+ 51: 6(bool) INotEqual 50 14
+ 54: 16(float) Load 53(i_f)
+ 55: 6(bool) FOrdNotEqual 54 20
+ 56: 43(bvec4) CompositeConstruct 47 49 51 55
+ Store 45(b4) 56
+ 59: 16(float) Load 18(u_f)
+ 60: 9(int) ConvertFToS 59
+ 61: 6(bool) Load 8(b)
+ 64: 9(int) Select 61 63 62
+ 65: 9(int) IAdd 60 64
+ Store 58(i) 65
+ 72: 69(fvec2) Load 71(u_f2)
+ 73: 66(ivec2) ConvertFToS 72
+ 74: 23(bvec2) Load 25(b2)
+ 77: 66(ivec2) Select 74 76 75
+ 78: 66(ivec2) IAdd 73 77
+ Store 68(i2) 78
+ 85: 82(fvec3) Load 84(u_f3)
+ 86: 79(ivec3) ConvertFToS 85
+ 87: 31(bvec3) Load 33(b3)
+ 90: 79(ivec3) Select 87 89 88
+ 91: 79(ivec3) IAdd 86 90
+ Store 81(i3) 91
+ 98: 95(fvec4) Load 97(u_f4)
+ 99: 92(ivec4) ConvertFToS 98
+ 100: 43(bvec4) Load 45(b4)
+ 103: 92(ivec4) Select 100 102 101
+ 104: 92(ivec4) IAdd 99 103
+ Store 94(i4) 104
+ 107: 9(int) Load 58(i)
+ 108: 16(float) ConvertSToF 107
+ Store 106(f) 108
+ 111: 66(ivec2) Load 68(i2)
+ 112: 69(fvec2) ConvertSToF 111
+ Store 110(f2) 112
+ 115: 79(ivec3) Load 81(i3)
+ 116: 82(fvec3) ConvertSToF 115
+ Store 114(f3) 116
+ 119: 92(ivec4) Load 94(i4)
+ 120: 95(fvec4) ConvertSToF 119
+ Store 118(f4) 120
+ 121: 9(int) Load 58(i)
+ 122: 16(float) ConvertSToF 121
+ 123: 6(bool) Load 8(b)
+ 125: 16(float) Select 123 124 20
+ 126: 16(float) FAdd 122 125
+ 127: 16(float) Load 106(f)
+ 128: 16(float) FAdd 127 126
+ Store 106(f) 128
+ 129: 66(ivec2) Load 68(i2)
+ 130: 69(fvec2) ConvertSToF 129
+ 131: 23(bvec2) Load 25(b2)
+ 134: 69(fvec2) Select 131 133 132
+ 135: 69(fvec2) FAdd 130 134
+ 136: 69(fvec2) Load 110(f2)
+ 137: 69(fvec2) FSub 136 135
+ Store 110(f2) 137
+ 138: 79(ivec3) Load 81(i3)
+ 139: 82(fvec3) ConvertSToF 138
+ 140: 31(bvec3) Load 33(b3)
+ 143: 82(fvec3) Select 140 142 141
+ 144: 82(fvec3) FAdd 139 143
+ 145: 82(fvec3) Load 114(f3)
+ 146: 82(fvec3) FDiv 145 144
+ Store 114(f3) 146
+ 147: 92(ivec4) Load 94(i4)
+ 148: 95(fvec4) ConvertSToF 147
+ 149: 43(bvec4) Load 45(b4)
+ 152: 95(fvec4) Select 149 151 150
+ 153: 95(fvec4) FAdd 148 152
+ 154: 95(fvec4) Load 118(f4)
+ 155: 95(fvec4) FAdd 154 153
+ Store 118(f4) 155
+ 158: 92(ivec4) Load 157(i_i4)
+ 161: 43(bvec4) INotEqual 158 160
+ 162: 95(fvec4) Select 161 151 150
+ 163: 95(fvec4) Load 118(f4)
+ 164: 95(fvec4) FAdd 163 162
+ Store 118(f4) 164
+ 165: 95(fvec4) Load 97(u_f4)
+ 166: 43(bvec4) FOrdNotEqual 165 150
+ 167: 95(fvec4) Select 166 151 150
+ 168: 95(fvec4) Load 118(f4)
+ 169: 95(fvec4) FAdd 168 167
+ Store 118(f4) 169
+ 170: 16(float) Load 106(f)
+ 171: 9(int) Load 58(i)
+ 172: 16(float) ConvertSToF 171
+ 173: 16(float) FSub 170 172
+ 174: 16(float) Load 106(f)
+ 175: 16(float) FAdd 174 173
+ Store 106(f) 175
+ 176: 16(float) Load 106(f)
+ 177: 9(int) Load 58(i)
+ 178: 16(float) ConvertSToF 177
+ 179: 69(fvec2) CompositeConstruct 176 178
+ 180: 66(ivec2) Load 68(i2)
+ 181: 69(fvec2) ConvertSToF 180
+ 182: 69(fvec2) FAdd 179 181
+ 183: 69(fvec2) Load 110(f2)
+ 184: 69(fvec2) FAdd 183 182
+ Store 110(f2) 184
+ 185: 79(ivec3) Load 81(i3)
+ 186: 82(fvec3) ConvertSToF 185
+ 187: 16(float) Load 106(f)
+ 188: 9(int) Load 58(i)
+ 189: 16(float) ConvertSToF 188
+ 190: 16(float) Load 106(f)
+ 191: 82(fvec3) CompositeConstruct 187 189 190
+ 192: 82(fvec3) FAdd 186 191
+ 193: 82(fvec3) Load 114(f3)
+ 194: 82(fvec3) FAdd 193 192
+ Store 114(f3) 194
+ 195: 6(bool) Load 8(b)
+ 196: 16(float) Select 195 124 20
+ 197: 9(int) Load 58(i)
+ 198: 16(float) ConvertSToF 197
+ 199: 16(float) Load 106(f)
+ 200: 9(int) Load 58(i)
+ 201: 16(float) ConvertSToF 200
+ 202: 95(fvec4) CompositeConstruct 196 198 199 201
+ 203: 92(ivec4) Load 94(i4)
+ 204: 95(fvec4) ConvertSToF 203
+ 205: 95(fvec4) FAdd 202 204
+ 206: 95(fvec4) Load 118(f4)
+ 207: 95(fvec4) FAdd 206 205
+ Store 118(f4) 207
+ 208: 16(float) Load 106(f)
+ 209: 9(int) Load 58(i)
+ 210: 16(float) ConvertSToF 209
+ 211: 69(fvec2) CompositeConstruct 208 210
+ 212: 9(int) Load 58(i)
+ 213: 16(float) ConvertSToF 212
+ 214: 69(fvec2) VectorTimesScalar 211 213
+ 215: 69(fvec2) Load 110(f2)
+ 216: 69(fvec2) FAdd 215 214
+ Store 110(f2) 216
+ 217: 16(float) Load 106(f)
+ 218: 9(int) Load 58(i)
+ 219: 16(float) ConvertSToF 218
+ 220: 16(float) Load 106(f)
+ 221: 82(fvec3) CompositeConstruct 217 219 220
+ 222: 9(int) Load 58(i)
+ 223: 16(float) ConvertSToF 222
+ 224: 82(fvec3) CompositeConstruct 223 223 223
+ 225: 82(fvec3) FAdd 221 224
+ 226: 82(fvec3) Load 114(f3)
+ 227: 82(fvec3) FAdd 226 225
+ Store 114(f3) 227
+ 228: 9(int) Load 58(i)
+ 229: 16(float) ConvertSToF 228
+ 230: 6(bool) Load 8(b)
+ 231: 16(float) Select 230 124 20
+ 232: 9(int) Load 58(i)
+ 233: 16(float) ConvertSToF 232
+ 234: 16(float) Load 106(f)
+ 235: 9(int) Load 58(i)
+ 236: 16(float) ConvertSToF 235
+ 237: 95(fvec4) CompositeConstruct 231 233 234 236
+ 238: 95(fvec4) CompositeConstruct 229 229 229 229
+ 239: 95(fvec4) FSub 238 237
+ 240: 95(fvec4) Load 118(f4)
+ 241: 95(fvec4) FAdd 240 239
+ Store 118(f4) 241
+ 242: 16(float) Load 106(f)
+ 243: 9(int) ConvertFToS 242
+ 244: 9(int) Load 58(i)
+ 245: 66(ivec2) CompositeConstruct 243 244
+ 246: 66(ivec2) Load 68(i2)
+ 247: 66(ivec2) IAdd 246 245
+ Store 68(i2) 247
+ 248: 16(float) Load 106(f)
+ 249: 9(int) ConvertFToS 248
+ 250: 9(int) Load 58(i)
+ 251: 16(float) Load 106(f)
+ 252: 9(int) ConvertFToS 251
+ 253: 79(ivec3) CompositeConstruct 249 250 252
+ 254: 79(ivec3) Load 81(i3)
+ 255: 79(ivec3) IAdd 254 253
+ Store 81(i3) 255
+ 256: 6(bool) Load 8(b)
+ 257: 9(int) Select 256 63 62
+ 258: 9(int) Load 58(i)
+ 259: 16(float) Load 106(f)
+ 260: 9(int) ConvertFToS 259
+ 261: 9(int) Load 58(i)
+ 262: 92(ivec4) CompositeConstruct 257 258 260 261
+ 263: 92(ivec4) Load 94(i4)
+ 264: 92(ivec4) IAdd 263 262
+ Store 94(i4) 264
+ 265: 16(float) Load 106(f)
+ 266: 9(int) Load 58(i)
+ 267: 16(float) ConvertSToF 266
+ 268: 6(bool) FOrdLessThan 265 267
+ 269: 6(bool) LogicalNot 268
+ SelectionMerge 271 None
+ BranchConditional 269 270 271
+ 270: Label
+ 272: 9(int) Load 58(i)
+ 273: 16(float) ConvertSToF 272
+ 274: 16(float) Load 106(f)
+ 275: 6(bool) FOrdLessThan 273 274
+ Branch 271
+ 271: Label
+ 276: 6(bool) Phi 268 5 275 270
+ 277: 6(bool) LogicalNot 276
+ SelectionMerge 279 None
+ BranchConditional 277 278 279
+ 278: Label
+ 280: 69(fvec2) Load 110(f2)
+ 281: 66(ivec2) Load 68(i2)
+ 282: 69(fvec2) ConvertSToF 281
+ 283: 23(bvec2) FOrdEqual 280 282
+ 284: 6(bool) All 283
+ Branch 279
+ 279: Label
+ 285: 6(bool) Phi 276 271 284 278
+ 286: 6(bool) LogicalNot 285
+ SelectionMerge 288 None
+ BranchConditional 286 287 288
+ 287: Label
+ 289: 79(ivec3) Load 81(i3)
+ 290: 82(fvec3) ConvertSToF 289
+ 291: 82(fvec3) Load 114(f3)
+ 292: 31(bvec3) FOrdNotEqual 290 291
+ 293: 6(bool) Any 292
+ Branch 288
+ 288: Label
+ 294: 6(bool) Phi 285 279 293 287
+ SelectionMerge 296 None
+ BranchConditional 294 295 296
+ 295: Label
+ 298: 6(bool) Load 8(b)
+ SelectionMerge 300 None
+ BranchConditional 298 299 303
+ 299: Label
+ 301: 9(int) Load 58(i)
+ 302: 16(float) ConvertSToF 301
+ Store 297 302
+ Branch 300
+ 303: Label
+ 304: 105(ptr) AccessChain 110(f2) 14
+ 305: 16(float) Load 304
+ Store 297 305
+ Branch 300
+ 300: Label
+ 306: 16(float) Load 297
+ 308: 23(bvec2) Load 25(b2)
+ 309: 6(bool) CompositeExtract 308 0
+ SelectionMerge 311 None
+ BranchConditional 309 310 314
+ 310: Label
+ 312: 105(ptr) AccessChain 114(f3) 14
+ 313: 16(float) Load 312
+ Store 307 313
+ Branch 311
+ 314: Label
+ 316: 57(ptr) AccessChain 68(i2) 315
+ 317: 9(int) Load 316
+ 318: 16(float) ConvertSToF 317
+ Store 307 318
+ Branch 311
+ 311: Label
+ 319: 16(float) Load 307
+ 320: 16(float) FAdd 306 319
+ Store 106(f) 320
+ Branch 296
+ 296: Label
+ 324: 6(bool) Load 8(b)
+ 325: 23(bvec2) Load 25(b2)
+ 326: 6(bool) CompositeExtract 325 0
+ 327: 6(bool) LogicalOr 324 326
+ 328: 23(bvec2) Load 25(b2)
+ 329: 6(bool) CompositeExtract 328 1
+ 330: 6(bool) LogicalOr 327 329
+ 331: 31(bvec3) Load 33(b3)
+ 332: 6(bool) CompositeExtract 331 0
+ 333: 6(bool) LogicalOr 330 332
+ 334: 31(bvec3) Load 33(b3)
+ 335: 6(bool) CompositeExtract 334 1
+ 336: 6(bool) LogicalOr 333 335
+ 337: 31(bvec3) Load 33(b3)
+ 338: 6(bool) CompositeExtract 337 2
+ 339: 6(bool) LogicalOr 336 338
+ 340: 43(bvec4) Load 45(b4)
+ 341: 6(bool) CompositeExtract 340 0
+ 342: 6(bool) LogicalOr 339 341
+ 343: 43(bvec4) Load 45(b4)
+ 344: 6(bool) CompositeExtract 343 1
+ 345: 6(bool) LogicalOr 342 344
+ 346: 43(bvec4) Load 45(b4)
+ 347: 6(bool) CompositeExtract 346 2
+ 348: 6(bool) LogicalOr 345 347
+ 349: 43(bvec4) Load 45(b4)
+ 350: 6(bool) CompositeExtract 349 3
+ 351: 6(bool) LogicalOr 348 350
+ SelectionMerge 353 None
+ BranchConditional 351 352 415
+ 352: Label
+ 354: 9(int) Load 58(i)
+ 355: 57(ptr) AccessChain 68(i2) 14
+ 356: 9(int) Load 355
+ 357: 9(int) IAdd 354 356
+ 358: 57(ptr) AccessChain 68(i2) 315
+ 359: 9(int) Load 358
+ 360: 9(int) IAdd 357 359
+ 361: 57(ptr) AccessChain 81(i3) 14
+ 362: 9(int) Load 361
+ 363: 9(int) IAdd 360 362
+ 364: 57(ptr) AccessChain 81(i3) 315
+ 365: 9(int) Load 364
+ 366: 9(int) IAdd 363 365
+ 368: 57(ptr) AccessChain 81(i3) 367
+ 369: 9(int) Load 368
+ 370: 9(int) IAdd 366 369
+ 371: 57(ptr) AccessChain 94(i4) 14
+ 372: 9(int) Load 371
+ 373: 9(int) IAdd 370 372
+ 374: 57(ptr) AccessChain 94(i4) 315
+ 375: 9(int) Load 374
+ 376: 9(int) IAdd 373 375
+ 377: 57(ptr) AccessChain 94(i4) 367
+ 378: 9(int) Load 377
+ 379: 9(int) IAdd 376 378
+ 381: 57(ptr) AccessChain 94(i4) 380
+ 382: 9(int) Load 381
+ 383: 9(int) IAdd 379 382
+ 384: 16(float) ConvertSToF 383
+ 385: 16(float) Load 106(f)
+ 386: 16(float) FAdd 384 385
+ 387: 105(ptr) AccessChain 110(f2) 14
+ 388: 16(float) Load 387
+ 389: 16(float) FAdd 386 388
+ 390: 105(ptr) AccessChain 110(f2) 315
+ 391: 16(float) Load 390
+ 392: 16(float) FAdd 389 391
+ 393: 105(ptr) AccessChain 114(f3) 14
+ 394: 16(float) Load 393
+ 395: 16(float) FAdd 392 394
+ 396: 105(ptr) AccessChain 114(f3) 315
+ 397: 16(float) Load 396
+ 398: 16(float) FAdd 395 397
+ 399: 105(ptr) AccessChain 114(f3) 367
+ 400: 16(float) Load 399
+ 401: 16(float) FAdd 398 400
+ 402: 105(ptr) AccessChain 118(f4) 14
+ 403: 16(float) Load 402
+ 404: 16(float) FAdd 401 403
+ 405: 105(ptr) AccessChain 118(f4) 315
+ 406: 16(float) Load 405
+ 407: 16(float) FAdd 404 406
+ 408: 105(ptr) AccessChain 118(f4) 367
+ 409: 16(float) Load 408
+ 410: 16(float) FAdd 407 409
+ 411: 105(ptr) AccessChain 118(f4) 380
+ 412: 16(float) Load 411
+ 413: 16(float) FAdd 410 412
+ 414: 95(fvec4) CompositeConstruct 413 413 413 413
+ Store 323 414
+ Branch 353
+ 415: Label
+ Store 323 151
+ Branch 353
+ 353: Label
+ 416: 95(fvec4) Load 323
+ Store 322(gl_FragColor) 416
+ Store 417(cv2) 102
+ 419: 92(ivec4) Load 417(cv2)
+ 420: 43(bvec4) INotEqual 419 160
+ Store 418(cv5) 420
+ 421: 43(bvec4) Load 418(cv5)
+ 422: 95(fvec4) Select 421 151 150
+ 423: 16(float) CompositeExtract 422 0
+ 424: 95(fvec4) Load 322(gl_FragColor)
+ 425: 95(fvec4) CompositeConstruct 423 423 423 423
+ 426: 95(fvec4) FAdd 424 425
+ Store 322(gl_FragColor) 426
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.dataOut.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.dataOut.frag.out
new file mode 100755
index 00000000000..651c96e3d15
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.dataOut.frag.out
@@ -0,0 +1,39 @@
+spv.dataOut.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 20
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 12 16
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 140
+ Name 4 "main"
+ Name 12 "gl_FragData"
+ Name 16 "Color"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypeInt 32 0
+ 9: 8(int) Constant 32
+ 10: TypeArray 7(fvec4) 9
+ 11: TypePointer Output 10
+ 12(gl_FragData): 11(ptr) Variable Output
+ 13: TypeInt 32 1
+ 14: 13(int) Constant 1
+ 15: TypePointer Input 7(fvec4)
+ 16(Color): 15(ptr) Variable Input
+ 18: TypePointer Output 7(fvec4)
+ 4(main): 2 Function None 3
+ 5: Label
+ 17: 7(fvec4) Load 16(Color)
+ 19: 18(ptr) AccessChain 12(gl_FragData) 14
+ Store 19 17
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.dataOutIndirect.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.dataOutIndirect.frag.out
new file mode 100755
index 00000000000..d1227a5bba0
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.dataOutIndirect.frag.out
@@ -0,0 +1,51 @@
+spv.dataOutIndirect.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 26
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 12 22
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 140
+ Name 4 "main"
+ Name 12 "fcolor"
+ Name 14 "b"
+ MemberName 14(b) 0 "i"
+ Name 16 "bName"
+ Name 22 "Color"
+ MemberDecorate 14(b) 0 Offset 0
+ Decorate 14(b) Block
+ Decorate 16(bName) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypeInt 32 0
+ 9: 8(int) Constant 4
+ 10: TypeArray 7(fvec4) 9
+ 11: TypePointer Output 10
+ 12(fcolor): 11(ptr) Variable Output
+ 13: TypeInt 32 1
+ 14(b): TypeStruct 13(int)
+ 15: TypePointer Uniform 14(b)
+ 16(bName): 15(ptr) Variable Uniform
+ 17: 13(int) Constant 0
+ 18: TypePointer Uniform 13(int)
+ 21: TypePointer Input 7(fvec4)
+ 22(Color): 21(ptr) Variable Input
+ 24: TypePointer Output 7(fvec4)
+ 4(main): 2 Function None 3
+ 5: Label
+ 19: 18(ptr) AccessChain 16(bName) 17
+ 20: 13(int) Load 19
+ 23: 7(fvec4) Load 22(Color)
+ 25: 24(ptr) AccessChain 12(fcolor) 20
+ Store 25 23
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.dataOutIndirect.vert.out b/chromium/third_party/glslang/src/Test/baseResults/spv.dataOutIndirect.vert.out
new file mode 100755
index 00000000000..797c65180b7
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.dataOutIndirect.vert.out
@@ -0,0 +1,70 @@
+spv.dataOutIndirect.vert
+WARNING: 0:3: attribute deprecated in version 130; may be removed in future release
+
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 38
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Vertex 4 "main" 25 28 34
+ Source GLSL 140
+ Name 4 "main"
+ Name 8 "i"
+ Name 25 "colorOut"
+ Name 28 "color"
+ Name 34 "gl_Position"
+ Decorate 34(gl_Position) BuiltIn Position
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypePointer Function 6(int)
+ 9: 6(int) Constant 1
+ 16: 6(int) Constant 5
+ 17: TypeBool
+ 19: TypeFloat 32
+ 20: TypeVector 19(float) 4
+ 21: TypeInt 32 0
+ 22: 21(int) Constant 6
+ 23: TypeArray 20(fvec4) 22
+ 24: TypePointer Output 23
+ 25(colorOut): 24(ptr) Variable Output
+ 27: TypePointer Input 20(fvec4)
+ 28(color): 27(ptr) Variable Input
+ 30: TypePointer Output 20(fvec4)
+ 34(gl_Position): 30(ptr) Variable Output
+ 35: 6(int) Constant 2
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(i): 7(ptr) Variable Function
+ Store 8(i) 9
+ Branch 10
+ 10: Label
+ LoopMerge 12 13 None
+ Branch 14
+ 14: Label
+ 15: 6(int) Load 8(i)
+ 18: 17(bool) SLessThan 15 16
+ BranchConditional 18 11 12
+ 11: Label
+ 26: 6(int) Load 8(i)
+ 29: 20(fvec4) Load 28(color)
+ 31: 30(ptr) AccessChain 25(colorOut) 26
+ Store 31 29
+ Branch 13
+ 13: Label
+ 32: 6(int) Load 8(i)
+ 33: 6(int) IAdd 32 9
+ Store 8(i) 33
+ Branch 10
+ 12: Label
+ 36: 30(ptr) AccessChain 25(colorOut) 35
+ 37: 20(fvec4) Load 36
+ Store 34(gl_Position) 37
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.deepRvalue.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.deepRvalue.frag.out
new file mode 100644
index 00000000000..b4894383e5c
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.deepRvalue.frag.out
@@ -0,0 +1,209 @@
+spv.deepRvalue.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 155
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 149
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 330
+ Name 4 "main"
+ Name 9 "v1"
+ Name 15 "v2"
+ Name 21 "v3"
+ Name 27 "v4"
+ Name 35 "m"
+ Name 63 "mm"
+ Name 80 "f"
+ Name 87 "g"
+ Name 106 "h"
+ Name 107 "i"
+ Name 111 "samp2D"
+ Name 134 "str"
+ MemberName 134(str) 0 "a"
+ MemberName 134(str) 1 "b"
+ MemberName 134(str) 2 "c"
+ Name 136 "t"
+ Name 149 "gl_FragColor"
+ Decorate 111(samp2D) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Private 7(fvec4)
+ 9(v1): 8(ptr) Variable Private
+ 10: 6(float) Constant 1073741824
+ 11: 6(float) Constant 1077936128
+ 12: 6(float) Constant 1084227584
+ 13: 6(float) Constant 1088421888
+ 14: 7(fvec4) ConstantComposite 10 11 12 13
+ 15(v2): 8(ptr) Variable Private
+ 16: 6(float) Constant 1093664768
+ 17: 6(float) Constant 1095761920
+ 18: 6(float) Constant 1099431936
+ 19: 6(float) Constant 1100480512
+ 20: 7(fvec4) ConstantComposite 16 17 18 19
+ 21(v3): 8(ptr) Variable Private
+ 22: 6(float) Constant 1102577664
+ 23: 6(float) Constant 1105723392
+ 24: 6(float) Constant 1106771968
+ 25: 6(float) Constant 1108606976
+ 26: 7(fvec4) ConstantComposite 22 23 24 25
+ 27(v4): 8(ptr) Variable Private
+ 28: 6(float) Constant 1109655552
+ 29: 6(float) Constant 1110179840
+ 30: 6(float) Constant 1111228416
+ 31: 6(float) Constant 1112801280
+ 32: 7(fvec4) ConstantComposite 28 29 30 31
+ 33: TypeMatrix 7(fvec4) 4
+ 34: TypePointer Function 33
+ 40: 6(float) Constant 1065353216
+ 41: 6(float) Constant 0
+ 79: TypePointer Function 6(float)
+ 81: TypeInt 32 1
+ 82: 81(int) Constant 1
+ 83: TypeInt 32 0
+ 84: 83(int) Constant 3
+ 103: 81(int) Constant 2
+ 104: 83(int) Constant 1
+ 108: TypeImage 6(float) 2D sampled format:Unknown
+ 109: TypeSampledImage 108
+ 110: TypePointer UniformConstant 109
+ 111(samp2D): 110(ptr) Variable UniformConstant
+ 113: TypeVector 6(float) 2
+ 114: 6(float) Constant 1056964608
+ 115: 113(fvec2) ConstantComposite 114 114
+ 118: TypePointer Function 7(fvec4)
+ 121: 6(float) Constant 1036831949
+ 122: TypeBool
+ 133: TypeArray 113(fvec2) 84
+ 134(str): TypeStruct 81(int) 133 122(bool)
+ 135: TypePointer Function 134(str)
+ 137: 113(fvec2) ConstantComposite 10 11
+ 138: 6(float) Constant 1082130432
+ 139: 113(fvec2) ConstantComposite 138 12
+ 140: 6(float) Constant 1086324736
+ 141: 113(fvec2) ConstantComposite 140 13
+ 142: 133 ConstantComposite 137 139 141
+ 143: 122(bool) ConstantTrue
+ 144: 134(str) ConstantComposite 82 142 143
+ 148: TypePointer Output 7(fvec4)
+149(gl_FragColor): 148(ptr) Variable Output
+ 4(main): 2 Function None 3
+ 5: Label
+ 35(m): 34(ptr) Variable Function
+ 63(mm): 34(ptr) Variable Function
+ 80(f): 79(ptr) Variable Function
+ 87(g): 79(ptr) Variable Function
+ 106(h): 79(ptr) Variable Function
+ 107(i): 79(ptr) Variable Function
+ 119: 118(ptr) Variable Function
+ 136(t): 135(ptr) Variable Function
+ Store 9(v1) 14
+ Store 15(v2) 20
+ Store 21(v3) 26
+ Store 27(v4) 32
+ 36: 7(fvec4) Load 9(v1)
+ 37: 7(fvec4) Load 15(v2)
+ 38: 7(fvec4) Load 21(v3)
+ 39: 7(fvec4) Load 27(v4)
+ 42: 6(float) CompositeExtract 36 0
+ 43: 6(float) CompositeExtract 36 1
+ 44: 6(float) CompositeExtract 36 2
+ 45: 6(float) CompositeExtract 36 3
+ 46: 6(float) CompositeExtract 37 0
+ 47: 6(float) CompositeExtract 37 1
+ 48: 6(float) CompositeExtract 37 2
+ 49: 6(float) CompositeExtract 37 3
+ 50: 6(float) CompositeExtract 38 0
+ 51: 6(float) CompositeExtract 38 1
+ 52: 6(float) CompositeExtract 38 2
+ 53: 6(float) CompositeExtract 38 3
+ 54: 6(float) CompositeExtract 39 0
+ 55: 6(float) CompositeExtract 39 1
+ 56: 6(float) CompositeExtract 39 2
+ 57: 6(float) CompositeExtract 39 3
+ 58: 7(fvec4) CompositeConstruct 42 43 44 45
+ 59: 7(fvec4) CompositeConstruct 46 47 48 49
+ 60: 7(fvec4) CompositeConstruct 50 51 52 53
+ 61: 7(fvec4) CompositeConstruct 54 55 56 57
+ 62: 33 CompositeConstruct 58 59 60 61
+ Store 35(m) 62
+ 64: 33 Load 35(m)
+ 65: 33 Load 35(m)
+ 66: 7(fvec4) CompositeExtract 64 0
+ 67: 7(fvec4) CompositeExtract 65 0
+ 68: 7(fvec4) FMul 66 67
+ 69: 7(fvec4) CompositeExtract 64 1
+ 70: 7(fvec4) CompositeExtract 65 1
+ 71: 7(fvec4) FMul 69 70
+ 72: 7(fvec4) CompositeExtract 64 2
+ 73: 7(fvec4) CompositeExtract 65 2
+ 74: 7(fvec4) FMul 72 73
+ 75: 7(fvec4) CompositeExtract 64 3
+ 76: 7(fvec4) CompositeExtract 65 3
+ 77: 7(fvec4) FMul 75 76
+ 78: 33 CompositeConstruct 68 71 74 77
+ Store 63(mm) 78
+ 85: 79(ptr) AccessChain 63(mm) 82 84
+ 86: 6(float) Load 85
+ Store 80(f) 86
+ 88: 33 Load 35(m)
+ 89: 33 Load 35(m)
+ 90: 7(fvec4) CompositeExtract 88 0
+ 91: 7(fvec4) CompositeExtract 89 0
+ 92: 7(fvec4) FMul 90 91
+ 93: 7(fvec4) CompositeExtract 88 1
+ 94: 7(fvec4) CompositeExtract 89 1
+ 95: 7(fvec4) FMul 93 94
+ 96: 7(fvec4) CompositeExtract 88 2
+ 97: 7(fvec4) CompositeExtract 89 2
+ 98: 7(fvec4) FMul 96 97
+ 99: 7(fvec4) CompositeExtract 88 3
+ 100: 7(fvec4) CompositeExtract 89 3
+ 101: 7(fvec4) FMul 99 100
+ 102: 33 CompositeConstruct 92 95 98 101
+ 105: 6(float) CompositeExtract 102 2 1
+ Store 87(g) 105
+ Store 106(h) 12
+ 112: 109 Load 111(samp2D)
+ 116: 7(fvec4) ImageSampleImplicitLod 112 115
+ 117: 6(float) CompositeExtract 116 1
+ Store 107(i) 117
+ 120: 6(float) Load 107(i)
+ 123: 122(bool) FOrdGreaterThan 120 121
+ SelectionMerge 125 None
+ BranchConditional 123 124 127
+ 124: Label
+ 126: 7(fvec4) Load 9(v1)
+ Store 119 126
+ Branch 125
+ 127: Label
+ 128: 7(fvec4) Load 15(v2)
+ Store 119 128
+ Branch 125
+ 125: Label
+ 129: 79(ptr) AccessChain 119 84
+ 130: 6(float) Load 129
+ 131: 6(float) Load 107(i)
+ 132: 6(float) FAdd 131 130
+ Store 107(i) 132
+ Store 136(t) 144
+ 145: 6(float) CompositeExtract 144 1 2 1
+ 146: 6(float) Load 107(i)
+ 147: 6(float) FAdd 146 145
+ Store 107(i) 147
+ 150: 6(float) Load 80(f)
+ 151: 6(float) Load 87(g)
+ 152: 6(float) Load 106(h)
+ 153: 6(float) Load 107(i)
+ 154: 7(fvec4) CompositeConstruct 150 151 152 153
+ Store 149(gl_FragColor) 154
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.depthOut.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.depthOut.frag.out
new file mode 100755
index 00000000000..6242391fd3a
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.depthOut.frag.out
@@ -0,0 +1,40 @@
+spv.depthOut.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 15
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 8 10 14
+ ExecutionMode 4 OriginUpperLeft
+ ExecutionMode 4 DepthGreater
+ ExecutionMode 4 DepthReplacing
+ Source GLSL 450
+ Name 4 "main"
+ Name 8 "gl_FragDepth"
+ Name 10 "Depth"
+ Name 14 "Color"
+ Decorate 8(gl_FragDepth) BuiltIn FragDepth
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypePointer Output 6(float)
+ 8(gl_FragDepth): 7(ptr) Variable Output
+ 9: TypePointer Input 6(float)
+ 10(Depth): 9(ptr) Variable Input
+ 12: TypeVector 6(float) 4
+ 13: TypePointer Input 12(fvec4)
+ 14(Color): 13(ptr) Variable Input
+ 4(main): 2 Function None 3
+ 5: Label
+ 11: 6(float) Load 10(Depth)
+ Store 8(gl_FragDepth) 11
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.discard-dce.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.discard-dce.frag.out
new file mode 100755
index 00000000000..7668233ba20
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.discard-dce.frag.out
@@ -0,0 +1,130 @@
+spv.discard-dce.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 84
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 21 59
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 140
+ Name 4 "main"
+ Name 9 "white"
+ Name 12 "black"
+ Name 15 "color"
+ Name 18 "x"
+ Name 21 "tex_coord"
+ Name 30 "y"
+ Name 36 "radius"
+ Name 59 "gl_FragColor"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+ 10: 6(float) Constant 1065353216
+ 11: 7(fvec4) ConstantComposite 10 10 10 10
+ 13: 6(float) Constant 1045220557
+ 14: 7(fvec4) ConstantComposite 13 13 13 13
+ 17: TypePointer Function 6(float)
+ 19: TypeVector 6(float) 2
+ 20: TypePointer Input 19(fvec2)
+ 21(tex_coord): 20(ptr) Variable Input
+ 22: TypeInt 32 0
+ 23: 22(int) Constant 0
+ 24: TypePointer Input 6(float)
+ 27: 6(float) Constant 1073741824
+ 31: 22(int) Constant 1
+ 46: TypeBool
+ 51: 6(float) Constant 1066192077
+ 58: TypePointer Output 7(fvec4)
+59(gl_FragColor): 58(ptr) Variable Output
+ 62: 6(float) Constant 1067030938
+ 71: 6(float) Constant 1061158912
+ 76: 6(float) Constant 1098907648
+ 4(main): 2 Function None 3
+ 5: Label
+ 9(white): 8(ptr) Variable Function
+ 12(black): 8(ptr) Variable Function
+ 15(color): 8(ptr) Variable Function
+ 18(x): 17(ptr) Variable Function
+ 30(y): 17(ptr) Variable Function
+ 36(radius): 17(ptr) Variable Function
+ Store 9(white) 11
+ Store 12(black) 14
+ 16: 7(fvec4) Load 9(white)
+ Store 15(color) 16
+ 25: 24(ptr) AccessChain 21(tex_coord) 23
+ 26: 6(float) Load 25
+ 28: 6(float) FMul 26 27
+ 29: 6(float) FSub 28 10
+ Store 18(x) 29
+ 32: 24(ptr) AccessChain 21(tex_coord) 31
+ 33: 6(float) Load 32
+ 34: 6(float) FMul 33 27
+ 35: 6(float) FSub 34 10
+ Store 30(y) 35
+ 37: 6(float) Load 18(x)
+ 38: 6(float) Load 18(x)
+ 39: 6(float) FMul 37 38
+ 40: 6(float) Load 30(y)
+ 41: 6(float) Load 30(y)
+ 42: 6(float) FMul 40 41
+ 43: 6(float) FAdd 39 42
+ 44: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 43
+ Store 36(radius) 44
+ 45: 6(float) Load 36(radius)
+ 47: 46(bool) FOrdGreaterThan 45 10
+ SelectionMerge 49 None
+ BranchConditional 47 48 49
+ 48: Label
+ 50: 6(float) Load 36(radius)
+ 52: 46(bool) FOrdGreaterThan 50 51
+ SelectionMerge 54 None
+ BranchConditional 52 53 54
+ 53: Label
+ 55: 7(fvec4) Load 15(color)
+ 56: 7(fvec4) CompositeConstruct 10 10 10 10
+ 57: 7(fvec4) FAdd 55 56
+ Store 15(color) 57
+ Branch 54
+ 54: Label
+ 60: 7(fvec4) Load 15(color)
+ Store 59(gl_FragColor) 60
+ 61: 6(float) Load 36(radius)
+ 63: 46(bool) FOrdGreaterThan 61 62
+ SelectionMerge 65 None
+ BranchConditional 63 64 65
+ 64: Label
+ 66: 7(fvec4) Load 15(color)
+ 67: 7(fvec4) CompositeConstruct 10 10 10 10
+ 68: 7(fvec4) FAdd 66 67
+ Store 15(color) 68
+ Branch 65
+ 65: Label
+ Kill
+ 49: Label
+ 70: 6(float) Load 36(radius)
+ 72: 46(bool) FOrdGreaterThanEqual 70 71
+ SelectionMerge 74 None
+ BranchConditional 72 73 74
+ 73: Label
+ 75: 6(float) Load 36(radius)
+ 77: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 75 76
+ 78: 6(float) FDiv 77 27
+ 79: 6(float) ExtInst 1(GLSL.std.450) 4(FAbs) 78
+ 80: 7(fvec4) Load 15(color)
+ 81: 7(fvec4) CompositeConstruct 79 79 79 79
+ 82: 7(fvec4) FSub 80 81
+ Store 15(color) 82
+ Branch 74
+ 74: Label
+ 83: 7(fvec4) Load 15(color)
+ Store 59(gl_FragColor) 83
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.do-simple.vert.out b/chromium/third_party/glslang/src/Test/baseResults/spv.do-simple.vert.out
new file mode 100755
index 00000000000..c0862d1e199
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.do-simple.vert.out
@@ -0,0 +1,46 @@
+spv.do-simple.vert
+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 21
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Vertex 4 "main"
+ Source ESSL 310
+ Name 4 "main"
+ Name 8 "i"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypePointer Function 6(int)
+ 9: 6(int) Constant 0
+ 15: 6(int) Constant 1
+ 18: 6(int) Constant 10
+ 19: TypeBool
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(i): 7(ptr) Variable Function
+ Store 8(i) 9
+ Branch 10
+ 10: Label
+ LoopMerge 12 13 None
+ Branch 11
+ 11: Label
+ 14: 6(int) Load 8(i)
+ 16: 6(int) IAdd 14 15
+ Store 8(i) 16
+ Branch 13
+ 13: Label
+ 17: 6(int) Load 8(i)
+ 20: 19(bool) SLessThan 17 18
+ BranchConditional 20 10 12
+ 12: Label
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.do-while-continue-break.vert.out b/chromium/third_party/glslang/src/Test/baseResults/spv.do-while-continue-break.vert.out
new file mode 100644
index 00000000000..ebfe85d0e6b
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.do-while-continue-break.vert.out
@@ -0,0 +1,84 @@
+spv.do-while-continue-break.vert
+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 43
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Vertex 4 "main"
+ Source ESSL 310
+ Name 4 "main"
+ Name 8 "i"
+ Name 14 "A"
+ Name 21 "B"
+ Name 24 "C"
+ Name 30 "D"
+ Name 33 "E"
+ Name 35 "F"
+ Name 41 "G"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypePointer Function 6(int)
+ 9: 6(int) Constant 0
+ 16: 6(int) Constant 2
+ 17: TypeBool
+ 22: 6(int) Constant 1
+ 26: 6(int) Constant 5
+ 31: 6(int) Constant 3
+ 34: 6(int) Constant 42
+ 36: 6(int) Constant 99
+ 39: 6(int) Constant 19
+ 42: 6(int) Constant 12
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(i): 7(ptr) Variable Function
+ 14(A): 7(ptr) Variable Function
+ 21(B): 7(ptr) Variable Function
+ 24(C): 7(ptr) Variable Function
+ 30(D): 7(ptr) Variable Function
+ 33(E): 7(ptr) Variable Function
+ 35(F): 7(ptr) Variable Function
+ 41(G): 7(ptr) Variable Function
+ Store 8(i) 9
+ Branch 10
+ 10: Label
+ LoopMerge 12 13 None
+ Branch 11
+ 11: Label
+ Store 14(A) 9
+ 15: 6(int) Load 8(i)
+ 18: 17(bool) IEqual 15 16
+ SelectionMerge 20 None
+ BranchConditional 18 19 20
+ 19: Label
+ Store 21(B) 22
+ Branch 13
+ 20: Label
+ 25: 6(int) Load 8(i)
+ 27: 17(bool) IEqual 25 26
+ SelectionMerge 29 None
+ BranchConditional 27 28 29
+ 28: Label
+ Store 30(D) 31
+ Branch 12
+ 29: Label
+ Store 35(F) 36
+ Branch 13
+ 13: Label
+ 37: 6(int) Load 8(i)
+ 38: 6(int) IAdd 37 22
+ Store 8(i) 38
+ 40: 17(bool) SLessThan 38 39
+ BranchConditional 40 10 12
+ 12: Label
+ Store 41(G) 42
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.doWhileLoop.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.doWhileLoop.frag.out
new file mode 100755
index 00000000000..1d12af108d4
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.doWhileLoop.frag.out
@@ -0,0 +1,63 @@
+spv.doWhileLoop.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 34
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 11 17 27 32
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 140
+ Name 4 "main"
+ Name 9 "color"
+ Name 11 "BaseColor"
+ Name 17 "bigColor"
+ Name 27 "d"
+ Name 32 "gl_FragColor"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+ 10: TypePointer Input 7(fvec4)
+ 11(BaseColor): 10(ptr) Variable Input
+ 17(bigColor): 10(ptr) Variable Input
+ 21: TypeInt 32 0
+ 22: 21(int) Constant 0
+ 23: TypePointer Function 6(float)
+ 26: TypePointer Input 6(float)
+ 27(d): 26(ptr) Variable Input
+ 29: TypeBool
+ 31: TypePointer Output 7(fvec4)
+32(gl_FragColor): 31(ptr) Variable Output
+ 4(main): 2 Function None 3
+ 5: Label
+ 9(color): 8(ptr) Variable Function
+ 12: 7(fvec4) Load 11(BaseColor)
+ Store 9(color) 12
+ Branch 13
+ 13: Label
+ LoopMerge 15 16 None
+ Branch 14
+ 14: Label
+ 18: 7(fvec4) Load 17(bigColor)
+ 19: 7(fvec4) Load 9(color)
+ 20: 7(fvec4) FAdd 19 18
+ Store 9(color) 20
+ Branch 16
+ 16: Label
+ 24: 23(ptr) AccessChain 9(color) 22
+ 25: 6(float) Load 24
+ 28: 6(float) Load 27(d)
+ 30: 29(bool) FOrdLessThan 25 28
+ BranchConditional 30 13 15
+ 15: Label
+ 33: 7(fvec4) Load 9(color)
+ Store 32(gl_FragColor) 33
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.double.comp.out b/chromium/third_party/glslang/src/Test/baseResults/spv.double.comp.out
new file mode 100755
index 00000000000..766f839a0bc
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.double.comp.out
@@ -0,0 +1,104 @@
+spv.double.comp
+Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked compute stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 60
+
+ Capability Shader
+ Capability Float64
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint GLCompute 4 "main" 26 33
+ ExecutionMode 4 LocalSize 1 1 1
+ Source GLSL 430
+ Name 4 "main"
+ Name 8 "bufName"
+ MemberName 8(bufName) 0 "f"
+ MemberName 8(bufName) 1 "d"
+ Name 10 "bufInst"
+ Name 22 "storePos"
+ Name 26 "gl_GlobalInvocationID"
+ Name 32 "localCoef"
+ Name 33 "gl_LocalInvocationID"
+ Name 49 "aa"
+ Name 54 "globalCoef"
+ Name 59 "destTex"
+ MemberDecorate 8(bufName) 0 Offset 0
+ MemberDecorate 8(bufName) 1 Offset 8
+ Decorate 8(bufName) BufferBlock
+ Decorate 10(bufInst) DescriptorSet 0
+ Decorate 26(gl_GlobalInvocationID) BuiltIn GlobalInvocationId
+ Decorate 33(gl_LocalInvocationID) BuiltIn LocalInvocationId
+ Decorate 59(destTex) DescriptorSet 0
+ Decorate 59(destTex) NonReadable
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeFloat 64
+ 8(bufName): TypeStruct 6(float) 7(float)
+ 9: TypePointer Uniform 8(bufName)
+ 10(bufInst): 9(ptr) Variable Uniform
+ 11: TypeInt 32 1
+ 12: 11(int) Constant 1
+ 13: 7(float) Constant 1413754136 1074340347
+ 14: TypePointer Uniform 7(float)
+ 16: 11(int) Constant 0
+ 17: 6(float) Constant 1095307129
+ 18: TypePointer Uniform 6(float)
+ 20: TypeVector 11(int) 2
+ 21: TypePointer Function 20(ivec2)
+ 23: TypeInt 32 0
+ 24: TypeVector 23(int) 3
+ 25: TypePointer Input 24(ivec3)
+26(gl_GlobalInvocationID): 25(ptr) Variable Input
+ 27: TypeVector 23(int) 2
+ 31: TypePointer Function 7(float)
+33(gl_LocalInvocationID): 25(ptr) Variable Input
+ 37: 11(int) Constant 8
+ 40: TypeVector 6(float) 2
+ 42: 6(float) Constant 1090519040
+ 47: TypeVector 7(float) 4
+ 48: TypePointer Function 47(fvec4)
+ 50: 7(float) Constant 2576980378 1071225241
+ 51: 7(float) Constant 2576980378 1070176665
+ 52: 7(float) Constant 858993459 1070805811
+ 53: 47(fvec4) ConstantComposite 50 51 52 50
+ 55: 7(float) Constant 0 1072693248
+ 56: 7(float) Constant 3229815407 1074340298
+ 57: TypeImage 6(float) 2D nonsampled format:Unknown
+ 58: TypePointer UniformConstant 57
+ 59(destTex): 58(ptr) Variable UniformConstant
+ 4(main): 2 Function None 3
+ 5: Label
+ 22(storePos): 21(ptr) Variable Function
+ 32(localCoef): 31(ptr) Variable Function
+ 49(aa): 48(ptr) Variable Function
+ 54(globalCoef): 31(ptr) Variable Function
+ 15: 14(ptr) AccessChain 10(bufInst) 12
+ Store 15 13
+ 19: 18(ptr) AccessChain 10(bufInst) 16
+ Store 19 17
+ 28: 24(ivec3) Load 26(gl_GlobalInvocationID)
+ 29: 27(ivec2) VectorShuffle 28 28 0 1
+ 30: 20(ivec2) Bitcast 29
+ Store 22(storePos) 30
+ 34: 24(ivec3) Load 33(gl_LocalInvocationID)
+ 35: 27(ivec2) VectorShuffle 34 34 0 1
+ 36: 20(ivec2) Bitcast 35
+ 38: 20(ivec2) CompositeConstruct 37 37
+ 39: 20(ivec2) ISub 36 38
+ 41: 40(fvec2) ConvertSToF 39
+ 43: 40(fvec2) CompositeConstruct 42 42
+ 44: 40(fvec2) FDiv 41 43
+ 45: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 44
+ 46: 7(float) FConvert 45
+ Store 32(localCoef) 46
+ Store 49(aa) 53
+ Store 54(globalCoef) 55
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.earlyReturnDiscard.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.earlyReturnDiscard.frag.out
new file mode 100755
index 00000000000..7e6409e63fa
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.earlyReturnDiscard.frag.out
@@ -0,0 +1,173 @@
+spv.earlyReturnDiscard.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 110
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 11 14 17 19 25 30 39 51 63 105 109
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 140
+ Name 4 "main"
+ Name 9 "color"
+ Name 11 "BaseColor"
+ Name 13 "color2"
+ Name 14 "otherColor"
+ Name 17 "c"
+ Name 19 "d"
+ Name 25 "bigColor"
+ Name 30 "smallColor"
+ Name 39 "minimum"
+ Name 51 "threshhold"
+ Name 63 "threshhold2"
+ Name 77 "b"
+ Name 105 "gl_FragColor"
+ Name 109 "threshhold3"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+ 10: TypePointer Input 7(fvec4)
+ 11(BaseColor): 10(ptr) Variable Input
+ 14(otherColor): 10(ptr) Variable Input
+ 16: TypePointer Input 6(float)
+ 17(c): 16(ptr) Variable Input
+ 19(d): 16(ptr) Variable Input
+ 21: TypeBool
+ 25(bigColor): 10(ptr) Variable Input
+ 30(smallColor): 10(ptr) Variable Input
+ 34: TypeInt 32 0
+ 35: 34(int) Constant 2
+ 36: TypePointer Function 6(float)
+ 39(minimum): 16(ptr) Variable Input
+ 47: 6(float) Constant 1065353216
+ 51(threshhold): 16(ptr) Variable Input
+ 60: 34(int) Constant 3
+ 63(threshhold2): 16(ptr) Variable Input
+ 76: TypePointer Private 21(bool)
+ 77(b): 76(ptr) Variable Private
+ 85: 34(int) Constant 0
+ 104: TypePointer Output 7(fvec4)
+105(gl_FragColor): 104(ptr) Variable Output
+109(threshhold3): 16(ptr) Variable Input
+ 4(main): 2 Function None 3
+ 5: Label
+ 9(color): 8(ptr) Variable Function
+ 13(color2): 8(ptr) Variable Function
+ 12: 7(fvec4) Load 11(BaseColor)
+ Store 9(color) 12
+ 15: 7(fvec4) Load 14(otherColor)
+ Store 13(color2) 15
+ 18: 6(float) Load 17(c)
+ 20: 6(float) Load 19(d)
+ 22: 21(bool) FOrdGreaterThan 18 20
+ SelectionMerge 24 None
+ BranchConditional 22 23 29
+ 23: Label
+ 26: 7(fvec4) Load 25(bigColor)
+ 27: 7(fvec4) Load 9(color)
+ 28: 7(fvec4) FAdd 27 26
+ Store 9(color) 28
+ Branch 24
+ 29: Label
+ 31: 7(fvec4) Load 30(smallColor)
+ 32: 7(fvec4) Load 9(color)
+ 33: 7(fvec4) FAdd 32 31
+ Store 9(color) 33
+ Branch 24
+ 24: Label
+ 37: 36(ptr) AccessChain 9(color) 35
+ 38: 6(float) Load 37
+ 40: 6(float) Load 39(minimum)
+ 41: 21(bool) FOrdLessThan 38 40
+ SelectionMerge 43 None
+ BranchConditional 41 42 43
+ 42: Label
+ Return
+ 43: Label
+ 45: 36(ptr) AccessChain 9(color) 35
+ 46: 6(float) Load 45
+ 48: 6(float) FAdd 46 47
+ Store 45 48
+ 49: 36(ptr) AccessChain 9(color) 35
+ 50: 6(float) Load 49
+ 52: 6(float) Load 51(threshhold)
+ 53: 21(bool) FOrdGreaterThan 50 52
+ SelectionMerge 55 None
+ BranchConditional 53 54 55
+ 54: Label
+ Kill
+ 55: Label
+ 57: 7(fvec4) Load 9(color)
+ 58: 7(fvec4) CompositeConstruct 47 47 47 47
+ 59: 7(fvec4) FAdd 57 58
+ Store 9(color) 59
+ 61: 36(ptr) AccessChain 9(color) 60
+ 62: 6(float) Load 61
+ 64: 6(float) Load 63(threshhold2)
+ 65: 21(bool) FOrdGreaterThan 62 64
+ SelectionMerge 67 None
+ BranchConditional 65 66 97
+ 66: Label
+ 68: 36(ptr) AccessChain 9(color) 35
+ 69: 6(float) Load 68
+ 70: 6(float) Load 63(threshhold2)
+ 71: 21(bool) FOrdGreaterThan 69 70
+ SelectionMerge 73 None
+ BranchConditional 71 72 75
+ 72: Label
+ Return
+ 75: Label
+ 78: 21(bool) Load 77(b)
+ SelectionMerge 80 None
+ BranchConditional 78 79 84
+ 79: Label
+ 81: 36(ptr) AccessChain 9(color) 35
+ 82: 6(float) Load 81
+ 83: 6(float) FAdd 82 47
+ Store 81 83
+ Branch 80
+ 84: Label
+ 86: 36(ptr) AccessChain 9(color) 85
+ 87: 6(float) Load 86
+ 88: 6(float) Load 39(minimum)
+ 89: 21(bool) FOrdLessThan 87 88
+ SelectionMerge 91 None
+ BranchConditional 89 90 93
+ 90: Label
+ Kill
+ 93: Label
+ 94: 7(fvec4) Load 9(color)
+ 95: 7(fvec4) CompositeConstruct 47 47 47 47
+ 96: 7(fvec4) FAdd 94 95
+ Store 9(color) 96
+ Branch 91
+ 91: Label
+ Branch 80
+ 80: Label
+ Branch 73
+ 73: Label
+ Branch 67
+ 97: Label
+ 98: 21(bool) Load 77(b)
+ SelectionMerge 100 None
+ BranchConditional 98 99 102
+ 99: Label
+ Kill
+ 102: Label
+ Return
+ 100: Label
+ Branch 67
+ 67: Label
+ 106: 7(fvec4) Load 9(color)
+ 107: 7(fvec4) Load 13(color2)
+ 108: 7(fvec4) FMul 106 107
+ Store 105(gl_FragColor) 108
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.flowControl.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.flowControl.frag.out
new file mode 100755
index 00000000000..7ca61b7a9c5
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.flowControl.frag.out
@@ -0,0 +1,73 @@
+spv.flowControl.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 39
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 11 14 17 19 25 30 35
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 140
+ Name 4 "main"
+ Name 9 "color"
+ Name 11 "BaseColor"
+ Name 13 "color2"
+ Name 14 "otherColor"
+ Name 17 "c"
+ Name 19 "d"
+ Name 25 "bigColor"
+ Name 30 "smallColor"
+ Name 35 "gl_FragColor"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+ 10: TypePointer Input 7(fvec4)
+ 11(BaseColor): 10(ptr) Variable Input
+ 14(otherColor): 10(ptr) Variable Input
+ 16: TypePointer Input 6(float)
+ 17(c): 16(ptr) Variable Input
+ 19(d): 16(ptr) Variable Input
+ 21: TypeBool
+ 25(bigColor): 10(ptr) Variable Input
+ 30(smallColor): 10(ptr) Variable Input
+ 34: TypePointer Output 7(fvec4)
+35(gl_FragColor): 34(ptr) Variable Output
+ 4(main): 2 Function None 3
+ 5: Label
+ 9(color): 8(ptr) Variable Function
+ 13(color2): 8(ptr) Variable Function
+ 12: 7(fvec4) Load 11(BaseColor)
+ Store 9(color) 12
+ 15: 7(fvec4) Load 14(otherColor)
+ Store 13(color2) 15
+ 18: 6(float) Load 17(c)
+ 20: 6(float) Load 19(d)
+ 22: 21(bool) FOrdGreaterThan 18 20
+ SelectionMerge 24 None
+ BranchConditional 22 23 29
+ 23: Label
+ 26: 7(fvec4) Load 25(bigColor)
+ 27: 7(fvec4) Load 9(color)
+ 28: 7(fvec4) FAdd 27 26
+ Store 9(color) 28
+ Branch 24
+ 29: Label
+ 31: 7(fvec4) Load 30(smallColor)
+ 32: 7(fvec4) Load 9(color)
+ 33: 7(fvec4) FAdd 32 31
+ Store 9(color) 33
+ Branch 24
+ 24: Label
+ 36: 7(fvec4) Load 9(color)
+ 37: 7(fvec4) Load 13(color2)
+ 38: 7(fvec4) FMul 36 37
+ Store 35(gl_FragColor) 38
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.for-complex-condition.vert.out b/chromium/third_party/glslang/src/Test/baseResults/spv.for-complex-condition.vert.out
new file mode 100644
index 00000000000..fab7f3d9472
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.for-complex-condition.vert.out
@@ -0,0 +1,72 @@
+spv.for-complex-condition.vert
+Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 35
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Vertex 4 "main" 18 31
+ Source GLSL 450
+ Name 4 "main"
+ Name 8 "i"
+ Name 18 "flag"
+ Name 31 "r"
+ Decorate 18(flag) Location 0
+ Decorate 31(r) Location 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypePointer Function 6(int)
+ 9: 6(int) Constant 0
+ 17: TypePointer Input 6(int)
+ 18(flag): 17(ptr) Variable Input
+ 20: 6(int) Constant 1
+ 21: TypeBool
+ 25: 6(int) Constant 10
+ 27: 6(int) Constant 15
+ 30: TypePointer Output 6(int)
+ 31(r): 30(ptr) Variable Output
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(i): 7(ptr) Variable Function
+ 16: 7(ptr) Variable Function
+ Store 8(i) 9
+ Branch 10
+ 10: Label
+ LoopMerge 12 13 None
+ Branch 14
+ 14: Label
+ 15: 6(int) Load 8(i)
+ 19: 6(int) Load 18(flag)
+ 22: 21(bool) IEqual 19 20
+ SelectionMerge 24 None
+ BranchConditional 22 23 26
+ 23: Label
+ Store 16 25
+ Branch 24
+ 26: Label
+ Store 16 27
+ Branch 24
+ 24: Label
+ 28: 6(int) Load 16
+ 29: 21(bool) SLessThan 15 28
+ BranchConditional 29 11 12
+ 11: Label
+ 32: 6(int) Load 8(i)
+ Store 31(r) 32
+ Branch 13
+ 13: Label
+ 33: 6(int) Load 8(i)
+ 34: 6(int) IAdd 33 20
+ Store 8(i) 34
+ Branch 10
+ 12: Label
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.for-continue-break.vert.out b/chromium/third_party/glslang/src/Test/baseResults/spv.for-continue-break.vert.out
new file mode 100644
index 00000000000..0ea2f143901
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.for-continue-break.vert.out
@@ -0,0 +1,87 @@
+spv.for-continue-break.vert
+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 45
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Vertex 4 "main"
+ Source ESSL 310
+ Name 4 "main"
+ Name 8 "i"
+ Name 19 "A"
+ Name 27 "B"
+ Name 29 "C"
+ Name 36 "D"
+ Name 38 "E"
+ Name 39 "F"
+ Name 43 "G"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypePointer Function 6(int)
+ 9: 6(int) Constant 0
+ 16: 6(int) Constant 10
+ 17: TypeBool
+ 20: 6(int) Constant 1
+ 22: 6(int) Constant 2
+ 31: 6(int) Constant 3
+ 40: 6(int) Constant 12
+ 44: 6(int) Constant 99
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(i): 7(ptr) Variable Function
+ 19(A): 7(ptr) Variable Function
+ 27(B): 7(ptr) Variable Function
+ 29(C): 7(ptr) Variable Function
+ 36(D): 7(ptr) Variable Function
+ 38(E): 7(ptr) Variable Function
+ 39(F): 7(ptr) Variable Function
+ 43(G): 7(ptr) Variable Function
+ Store 8(i) 9
+ Branch 10
+ 10: Label
+ LoopMerge 12 13 None
+ Branch 14
+ 14: Label
+ 15: 6(int) Load 8(i)
+ 18: 17(bool) SLessThan 15 16
+ BranchConditional 18 11 12
+ 11: Label
+ Store 19(A) 20
+ 21: 6(int) Load 8(i)
+ 23: 6(int) SMod 21 22
+ 24: 17(bool) IEqual 23 9
+ SelectionMerge 26 None
+ BranchConditional 24 25 26
+ 25: Label
+ Store 27(B) 20
+ Branch 13
+ 26: Label
+ 30: 6(int) Load 8(i)
+ 32: 6(int) SMod 30 31
+ 33: 17(bool) IEqual 32 9
+ SelectionMerge 35 None
+ BranchConditional 33 34 35
+ 34: Label
+ Store 36(D) 20
+ Branch 12
+ 35: Label
+ Store 39(F) 40
+ Branch 13
+ 13: Label
+ 41: 6(int) Load 8(i)
+ 42: 6(int) IAdd 41 20
+ Store 8(i) 42
+ Branch 10
+ 12: Label
+ Store 43(G) 44
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.for-nobody.vert.out b/chromium/third_party/glslang/src/Test/baseResults/spv.for-nobody.vert.out
new file mode 100644
index 00000000000..a127b7099c1
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.for-nobody.vert.out
@@ -0,0 +1,54 @@
+spv.for-nobody.vert
+Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 25
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Vertex 4 "main" 23
+ Source GLSL 450
+ Name 4 "main"
+ Name 8 "i"
+ Name 23 "r"
+ Decorate 23(r) Location 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypePointer Function 6(int)
+ 9: 6(int) Constant 0
+ 16: 6(int) Constant 10
+ 17: TypeBool
+ 20: 6(int) Constant 1
+ 22: TypePointer Output 6(int)
+ 23(r): 22(ptr) Variable Output
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(i): 7(ptr) Variable Function
+ Store 8(i) 9
+ Branch 10
+ 10: Label
+ LoopMerge 12 13 None
+ Branch 14
+ 14: Label
+ 15: 6(int) Load 8(i)
+ 18: 17(bool) SLessThan 15 16
+ BranchConditional 18 11 12
+ 11: Label
+ Branch 13
+ 13: Label
+ 19: 6(int) Load 8(i)
+ 21: 6(int) IAdd 19 20
+ Store 8(i) 21
+ Branch 10
+ 12: Label
+ 24: 6(int) Load 8(i)
+ Store 23(r) 24
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.for-notest.vert.out b/chromium/third_party/glslang/src/Test/baseResults/spv.for-notest.vert.out
new file mode 100644
index 00000000000..67706701ea1
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.for-notest.vert.out
@@ -0,0 +1,48 @@
+spv.for-notest.vert
+Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 20
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Vertex 4 "main" 15
+ Source GLSL 450
+ Name 4 "main"
+ Name 8 "i"
+ Name 15 "r"
+ Decorate 15(r) Location 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypePointer Function 6(int)
+ 9: 6(int) Constant 0
+ 14: TypePointer Output 6(int)
+ 15(r): 14(ptr) Variable Output
+ 18: 6(int) Constant 1
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(i): 7(ptr) Variable Function
+ Store 8(i) 9
+ Branch 10
+ 10: Label
+ LoopMerge 12 13 None
+ Branch 11
+ 11: Label
+ 16: 6(int) Load 8(i)
+ Store 15(r) 16
+ Branch 13
+ 13: Label
+ 17: 6(int) Load 8(i)
+ 19: 6(int) IAdd 17 18
+ Store 8(i) 19
+ Branch 10
+ 12: Label
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.for-simple.vert.out b/chromium/third_party/glslang/src/Test/baseResults/spv.for-simple.vert.out
new file mode 100755
index 00000000000..52a047ff099
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.for-simple.vert.out
@@ -0,0 +1,52 @@
+spv.for-simple.vert
+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 24
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Vertex 4 "main"
+ Source ESSL 310
+ Name 4 "main"
+ Name 8 "i"
+ Name 19 "j"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypePointer Function 6(int)
+ 9: 6(int) Constant 0
+ 16: 6(int) Constant 10
+ 17: TypeBool
+ 20: 6(int) Constant 12
+ 22: 6(int) Constant 1
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(i): 7(ptr) Variable Function
+ 19(j): 7(ptr) Variable Function
+ Store 8(i) 9
+ Branch 10
+ 10: Label
+ LoopMerge 12 13 None
+ Branch 14
+ 14: Label
+ 15: 6(int) Load 8(i)
+ 18: 17(bool) SLessThan 15 16
+ BranchConditional 18 11 12
+ 11: Label
+ Store 19(j) 20
+ Branch 13
+ 13: Label
+ 21: 6(int) Load 8(i)
+ 23: 6(int) IAdd 21 22
+ Store 8(i) 23
+ Branch 10
+ 12: Label
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.forLoop.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.forLoop.frag.out
new file mode 100755
index 00000000000..e606f9ccb94
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.forLoop.frag.out
@@ -0,0 +1,215 @@
+spv.forLoop.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 131
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 11 24 28 36 53 104
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 140
+ Name 4 "main"
+ Name 9 "color"
+ Name 11 "BaseColor"
+ Name 15 "i"
+ Name 24 "Count"
+ Name 28 "bigColor"
+ Name 36 "gl_FragColor"
+ Name 39 "sum"
+ Name 41 "i"
+ Name 53 "v4"
+ Name 63 "i"
+ Name 71 "tv4"
+ Name 88 "r"
+ Name 94 "i"
+ Name 104 "f"
+ Name 117 "i"
+ Decorate 24(Count) Flat
+ Decorate 53(v4) Flat
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+ 10: TypePointer Input 7(fvec4)
+ 11(BaseColor): 10(ptr) Variable Input
+ 13: TypeInt 32 1
+ 14: TypePointer Function 13(int)
+ 16: 13(int) Constant 0
+ 23: TypePointer Input 13(int)
+ 24(Count): 23(ptr) Variable Input
+ 26: TypeBool
+ 28(bigColor): 10(ptr) Variable Input
+ 33: 13(int) Constant 1
+ 35: TypePointer Output 7(fvec4)
+36(gl_FragColor): 35(ptr) Variable Output
+ 38: TypePointer Function 6(float)
+ 40: 6(float) Constant 0
+ 48: 13(int) Constant 4
+ 50: TypeInt 32 0
+ 51: TypeVector 50(int) 4
+ 52: TypePointer Input 51(ivec4)
+ 53(v4): 52(ptr) Variable Input
+ 55: TypePointer Input 50(int)
+ 76: 50(int) Constant 4
+ 89: TypeVector 6(float) 3
+ 103: TypePointer Input 6(float)
+ 104(f): 103(ptr) Variable Input
+ 106: 50(int) Constant 3
+ 124: 13(int) Constant 16
+ 4(main): 2 Function None 3
+ 5: Label
+ 9(color): 8(ptr) Variable Function
+ 15(i): 14(ptr) Variable Function
+ 39(sum): 38(ptr) Variable Function
+ 41(i): 14(ptr) Variable Function
+ 63(i): 14(ptr) Variable Function
+ 71(tv4): 8(ptr) Variable Function
+ 88(r): 8(ptr) Variable Function
+ 94(i): 14(ptr) Variable Function
+ 117(i): 14(ptr) Variable Function
+ 12: 7(fvec4) Load 11(BaseColor)
+ Store 9(color) 12
+ Store 15(i) 16
+ Branch 17
+ 17: Label
+ LoopMerge 19 20 None
+ Branch 21
+ 21: Label
+ 22: 13(int) Load 15(i)
+ 25: 13(int) Load 24(Count)
+ 27: 26(bool) SLessThan 22 25
+ BranchConditional 27 18 19
+ 18: Label
+ 29: 7(fvec4) Load 28(bigColor)
+ 30: 7(fvec4) Load 9(color)
+ 31: 7(fvec4) FAdd 30 29
+ Store 9(color) 31
+ Branch 20
+ 20: Label
+ 32: 13(int) Load 15(i)
+ 34: 13(int) IAdd 32 33
+ Store 15(i) 34
+ Branch 17
+ 19: Label
+ 37: 7(fvec4) Load 9(color)
+ Store 36(gl_FragColor) 37
+ Store 39(sum) 40
+ Store 41(i) 16
+ Branch 42
+ 42: Label
+ LoopMerge 44 45 None
+ Branch 46
+ 46: Label
+ 47: 13(int) Load 41(i)
+ 49: 26(bool) SLessThan 47 48
+ BranchConditional 49 43 44
+ 43: Label
+ 54: 13(int) Load 41(i)
+ 56: 55(ptr) AccessChain 53(v4) 54
+ 57: 50(int) Load 56
+ 58: 6(float) ConvertUToF 57
+ 59: 6(float) Load 39(sum)
+ 60: 6(float) FAdd 59 58
+ Store 39(sum) 60
+ Branch 45
+ 45: Label
+ 61: 13(int) Load 41(i)
+ 62: 13(int) IAdd 61 33
+ Store 41(i) 62
+ Branch 42
+ 44: Label
+ Store 63(i) 16
+ Branch 64
+ 64: Label
+ LoopMerge 66 67 None
+ Branch 68
+ 68: Label
+ 69: 13(int) Load 63(i)
+ 70: 26(bool) SLessThan 69 48
+ BranchConditional 70 65 66
+ 65: Label
+ 72: 13(int) Load 63(i)
+ 73: 13(int) Load 63(i)
+ 74: 55(ptr) AccessChain 53(v4) 73
+ 75: 50(int) Load 74
+ 77: 50(int) IMul 75 76
+ 78: 6(float) ConvertUToF 77
+ 79: 38(ptr) AccessChain 71(tv4) 72
+ Store 79 78
+ Branch 67
+ 67: Label
+ 80: 13(int) Load 63(i)
+ 81: 13(int) IAdd 80 33
+ Store 63(i) 81
+ Branch 64
+ 66: Label
+ 82: 6(float) Load 39(sum)
+ 83: 7(fvec4) CompositeConstruct 82 82 82 82
+ 84: 7(fvec4) Load 71(tv4)
+ 85: 7(fvec4) FAdd 83 84
+ 86: 7(fvec4) Load 36(gl_FragColor)
+ 87: 7(fvec4) FAdd 86 85
+ Store 36(gl_FragColor) 87
+ 90: 7(fvec4) Load 11(BaseColor)
+ 91: 89(fvec3) VectorShuffle 90 90 0 1 2
+ 92: 7(fvec4) Load 88(r)
+ 93: 7(fvec4) VectorShuffle 92 91 4 5 6 3
+ Store 88(r) 93
+ Store 94(i) 16
+ Branch 95
+ 95: Label
+ LoopMerge 97 98 None
+ Branch 99
+ 99: Label
+ 100: 13(int) Load 94(i)
+ 101: 13(int) Load 24(Count)
+ 102: 26(bool) SLessThan 100 101
+ BranchConditional 102 96 97
+ 96: Label
+ 105: 6(float) Load 104(f)
+ 107: 38(ptr) AccessChain 88(r) 106
+ Store 107 105
+ Branch 98
+ 98: Label
+ 108: 13(int) Load 94(i)
+ 109: 13(int) IAdd 108 33
+ Store 94(i) 109
+ Branch 95
+ 97: Label
+ 110: 7(fvec4) Load 88(r)
+ 111: 89(fvec3) VectorShuffle 110 110 0 1 2
+ 112: 7(fvec4) Load 36(gl_FragColor)
+ 113: 89(fvec3) VectorShuffle 112 112 0 1 2
+ 114: 89(fvec3) FAdd 113 111
+ 115: 7(fvec4) Load 36(gl_FragColor)
+ 116: 7(fvec4) VectorShuffle 115 114 4 5 6 3
+ Store 36(gl_FragColor) 116
+ Store 117(i) 16
+ Branch 118
+ 118: Label
+ LoopMerge 120 121 None
+ Branch 122
+ 122: Label
+ 123: 13(int) Load 117(i)
+ 125: 26(bool) SLessThan 123 124
+ BranchConditional 125 119 120
+ 119: Label
+ 126: 6(float) Load 104(f)
+ 127: 7(fvec4) Load 36(gl_FragColor)
+ 128: 7(fvec4) VectorTimesScalar 127 126
+ Store 36(gl_FragColor) 128
+ Branch 121
+ 121: Label
+ 129: 13(int) Load 117(i)
+ 130: 13(int) IAdd 129 48
+ Store 117(i) 130
+ Branch 118
+ 120: Label
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.forwardFun.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.forwardFun.frag.out
new file mode 100755
index 00000000000..346523cbce9
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.forwardFun.frag.out
@@ -0,0 +1,97 @@
+spv.forwardFun.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 60
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 20 30 36 59
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 140
+ Name 4 "main"
+ Name 6 "bar("
+ Name 10 "unreachableReturn("
+ Name 16 "foo(vf4;"
+ Name 15 "bar"
+ Name 18 "color"
+ Name 20 "BaseColor"
+ Name 21 "param"
+ Name 27 "f"
+ Name 30 "gl_FragColor"
+ Name 36 "d"
+ Name 59 "bigColor"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 8: TypeFloat 32
+ 9: TypeFunction 8(float)
+ 12: TypeVector 8(float) 4
+ 13: TypePointer Function 12(fvec4)
+ 14: TypeFunction 8(float) 13(ptr)
+ 19: TypePointer Input 12(fvec4)
+ 20(BaseColor): 19(ptr) Variable Input
+ 26: TypePointer Function 8(float)
+ 29: TypePointer Output 12(fvec4)
+30(gl_FragColor): 29(ptr) Variable Output
+ 35: TypePointer Input 8(float)
+ 36(d): 35(ptr) Variable Input
+ 38: 8(float) Constant 1082549862
+ 39: TypeBool
+ 43: 8(float) Constant 1067030938
+ 46: 8(float) Constant 1083179008
+ 49: TypeInt 32 0
+ 50: 49(int) Constant 0
+ 53: 49(int) Constant 1
+ 59(bigColor): 19(ptr) Variable Input
+ 4(main): 2 Function None 3
+ 5: Label
+ 18(color): 13(ptr) Variable Function
+ 21(param): 13(ptr) Variable Function
+ 27(f): 26(ptr) Variable Function
+ 22: 12(fvec4) Load 20(BaseColor)
+ Store 21(param) 22
+ 23: 8(float) FunctionCall 16(foo(vf4;) 21(param)
+ 24: 12(fvec4) CompositeConstruct 23 23 23 23
+ Store 18(color) 24
+ 25: 2 FunctionCall 6(bar()
+ 28: 8(float) FunctionCall 10(unreachableReturn()
+ Store 27(f) 28
+ 31: 12(fvec4) Load 18(color)
+ 32: 8(float) Load 27(f)
+ 33: 12(fvec4) VectorTimesScalar 31 32
+ Store 30(gl_FragColor) 33
+ Return
+ FunctionEnd
+ 6(bar(): 2 Function None 3
+ 7: Label
+ Return
+ FunctionEnd
+10(unreachableReturn(): 8(float) Function None 9
+ 11: Label
+ 34: 2 FunctionCall 6(bar()
+ 37: 8(float) Load 36(d)
+ 40: 39(bool) FOrdLessThan 37 38
+ SelectionMerge 42 None
+ BranchConditional 40 41 45
+ 41: Label
+ ReturnValue 43
+ 45: Label
+ ReturnValue 46
+ 42: Label
+ 48: 8(float) Undef
+ ReturnValue 48
+ FunctionEnd
+ 16(foo(vf4;): 8(float) Function None 14
+ 15(bar): 13(ptr) FunctionParameter
+ 17: Label
+ 51: 26(ptr) AccessChain 15(bar) 50
+ 52: 8(float) Load 51
+ 54: 26(ptr) AccessChain 15(bar) 53
+ 55: 8(float) Load 54
+ 56: 8(float) FAdd 52 55
+ ReturnValue 56
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.functionCall.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.functionCall.frag.out
new file mode 100755
index 00000000000..db40dd51ae4
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.functionCall.frag.out
@@ -0,0 +1,127 @@
+spv.functionCall.frag
+WARNING: 0:3: varying deprecated in version 130; may be removed in future release
+WARNING: 0:4: varying deprecated in version 130; may be removed in future release
+WARNING: 0:5: varying deprecated in version 130; may be removed in future release
+
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 76
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 35 58 69 75
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 140
+ Name 4 "main"
+ Name 11 "foo(vf4;"
+ Name 10 "bar"
+ Name 13 "bar("
+ Name 16 "unreachableReturn("
+ Name 18 "missingReturn("
+ Name 21 "h"
+ Name 35 "d"
+ Name 56 "color"
+ Name 58 "BaseColor"
+ Name 59 "param"
+ Name 64 "f"
+ Name 66 "g"
+ Name 69 "gl_FragColor"
+ Name 75 "bigColor"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+ 9: TypeFunction 6(float) 8(ptr)
+ 15: TypeFunction 6(float)
+ 20: TypePointer Private 6(float)
+ 21(h): 20(ptr) Variable Private
+ 22: 6(float) Constant 0
+ 23: TypeInt 32 0
+ 24: 23(int) Constant 0
+ 25: TypePointer Function 6(float)
+ 28: 23(int) Constant 1
+ 34: TypePointer Input 6(float)
+ 35(d): 34(ptr) Variable Input
+ 37: 6(float) Constant 1082549862
+ 38: TypeBool
+ 42: 6(float) Constant 1067030938
+ 45: 6(float) Constant 1083179008
+ 53: 6(float) Constant 1081711002
+ 57: TypePointer Input 7(fvec4)
+ 58(BaseColor): 57(ptr) Variable Input
+ 68: TypePointer Output 7(fvec4)
+69(gl_FragColor): 68(ptr) Variable Output
+ 75(bigColor): 57(ptr) Variable Input
+ 4(main): 2 Function None 3
+ 5: Label
+ 56(color): 8(ptr) Variable Function
+ 59(param): 8(ptr) Variable Function
+ 64(f): 25(ptr) Variable Function
+ 66(g): 25(ptr) Variable Function
+ Store 21(h) 22
+ 60: 7(fvec4) Load 58(BaseColor)
+ Store 59(param) 60
+ 61: 6(float) FunctionCall 11(foo(vf4;) 59(param)
+ 62: 7(fvec4) CompositeConstruct 61 61 61 61
+ Store 56(color) 62
+ 63: 2 FunctionCall 13(bar()
+ 65: 6(float) FunctionCall 16(unreachableReturn()
+ Store 64(f) 65
+ 67: 6(float) FunctionCall 18(missingReturn()
+ Store 66(g) 67
+ 70: 7(fvec4) Load 56(color)
+ 71: 6(float) Load 64(f)
+ 72: 7(fvec4) VectorTimesScalar 70 71
+ 73: 6(float) Load 21(h)
+ 74: 7(fvec4) VectorTimesScalar 72 73
+ Store 69(gl_FragColor) 74
+ Return
+ FunctionEnd
+ 11(foo(vf4;): 6(float) Function None 9
+ 10(bar): 8(ptr) FunctionParameter
+ 12: Label
+ 26: 25(ptr) AccessChain 10(bar) 24
+ 27: 6(float) Load 26
+ 29: 25(ptr) AccessChain 10(bar) 28
+ 30: 6(float) Load 29
+ 31: 6(float) FAdd 27 30
+ ReturnValue 31
+ FunctionEnd
+ 13(bar(): 2 Function None 3
+ 14: Label
+ Return
+ FunctionEnd
+16(unreachableReturn(): 6(float) Function None 15
+ 17: Label
+ 36: 6(float) Load 35(d)
+ 39: 38(bool) FOrdLessThan 36 37
+ SelectionMerge 41 None
+ BranchConditional 39 40 44
+ 40: Label
+ ReturnValue 42
+ 44: Label
+ ReturnValue 45
+ 41: Label
+ 47: 6(float) Undef
+ ReturnValue 47
+ FunctionEnd
+18(missingReturn(): 6(float) Function None 15
+ 19: Label
+ 48: 6(float) Load 35(d)
+ 49: 38(bool) FOrdLessThan 48 45
+ SelectionMerge 51 None
+ BranchConditional 49 50 51
+ 50: Label
+ 52: 6(float) Load 35(d)
+ Store 21(h) 52
+ ReturnValue 53
+ 51: Label
+ 55: 6(float) Undef
+ ReturnValue 55
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.functionSemantics.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.functionSemantics.frag.out
new file mode 100755
index 00000000000..aa2abd847c1
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.functionSemantics.frag.out
@@ -0,0 +1,232 @@
+spv.functionSemantics.frag
+Warning, version 400 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 156
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 76 152
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 400
+ Name 4 "main"
+ Name 15 "foo(i1;i1;i1;i1;i1;i1;"
+ Name 9 "a"
+ Name 10 "b"
+ Name 11 "c"
+ Name 12 "d"
+ Name 13 "e"
+ Name 14 "f"
+ Name 25 "foo2(f1;vf3;i1;"
+ Name 22 "a"
+ Name 23 "b"
+ Name 24 "r"
+ Name 28 "foo3("
+ Name 30 "sum"
+ Name 76 "u"
+ Name 89 "t"
+ Name 92 "s"
+ MemberName 92(s) 0 "t"
+ Name 94 "f"
+ Name 98 "color"
+ Name 104 "e"
+ Name 105 "param"
+ Name 106 "param"
+ Name 107 "param"
+ Name 108 "param"
+ Name 123 "ret"
+ Name 125 "tempReturn"
+ Name 130 "tempArg"
+ Name 131 "param"
+ Name 132 "param"
+ Name 133 "param"
+ Name 136 "arg"
+ Name 152 "gl_FragColor"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypePointer Function 6(int)
+ 8: TypeFunction 6(int) 7(ptr) 6(int) 7(ptr) 6(int) 7(ptr) 7(ptr)
+ 17: TypeFloat 32
+ 18: TypePointer Function 17(float)
+ 19: TypeVector 17(float) 3
+ 20: TypePointer Function 19(fvec3)
+ 21: TypeFunction 6(int) 18(ptr) 20(ptr) 7(ptr)
+ 27: TypeFunction 6(int)
+ 38: 6(int) Constant 64
+ 43: 6(int) Constant 1024
+ 62: 17(float) Constant 1077936128
+ 66: 17(float) Constant 1084227584
+ 67: TypeInt 32 0
+ 68: 67(int) Constant 1
+ 75: TypePointer Input 17(float)
+ 76(u): 75(ptr) Variable Input
+ 78: 17(float) Constant 1078774989
+ 79: TypeBool
+ 84: 6(int) Constant 1000000
+ 86: 6(int) Constant 2000000
+ 90: 6(int) Constant 2
+ 91: TypeVector 6(int) 4
+ 92(s): TypeStruct 91(ivec4)
+ 93: TypePointer Function 92(s)
+ 95: 6(int) Constant 0
+ 96: 6(int) Constant 32
+ 99: 6(int) Constant 1
+ 103: 6(int) Constant 8
+ 115: 6(int) Constant 128
+ 124: TypePointer Private 6(int)
+ 125(tempReturn): 124(ptr) Variable Private
+ 126: 17(float) Constant 1082130432
+ 127: 17(float) Constant 1065353216
+ 128: 17(float) Constant 1073741824
+ 129: 19(fvec3) ConstantComposite 127 128 62
+ 150: TypeVector 17(float) 4
+ 151: TypePointer Output 150(fvec4)
+152(gl_FragColor): 151(ptr) Variable Output
+ 4(main): 2 Function None 3
+ 5: Label
+ 89(t): 7(ptr) Variable Function
+ 94(f): 93(ptr) Variable Function
+ 98(color): 7(ptr) Variable Function
+ 104(e): 7(ptr) Variable Function
+ 105(param): 7(ptr) Variable Function
+ 106(param): 7(ptr) Variable Function
+ 107(param): 7(ptr) Variable Function
+ 108(param): 7(ptr) Variable Function
+ 123(ret): 18(ptr) Variable Function
+ 130(tempArg): 7(ptr) Variable Function
+ 131(param): 18(ptr) Variable Function
+ 132(param): 20(ptr) Variable Function
+ 133(param): 7(ptr) Variable Function
+ 136(arg): 18(ptr) Variable Function
+ Store 89(t) 90
+ 97: 7(ptr) AccessChain 94(f) 95 68
+ Store 97 96
+ 100: 6(int) Load 89(t)
+ 101: 6(int) Load 89(t)
+ 102: 6(int) IAdd 100 101
+ Store 105(param) 99
+ Store 106(param) 102
+ 109: 7(ptr) AccessChain 94(f) 95 68
+ 110: 6(int) Load 109
+ Store 108(param) 110
+ 111: 6(int) FunctionCall 15(foo(i1;i1;i1;i1;i1;i1;) 105(param) 90 106(param) 103 107(param) 108(param)
+ 112: 6(int) Load 107(param)
+ Store 104(e) 112
+ 113: 6(int) Load 108(param)
+ 114: 7(ptr) AccessChain 94(f) 95 68
+ Store 114 113
+ Store 98(color) 111
+ 116: 6(int) Load 104(e)
+ 117: 7(ptr) AccessChain 94(f) 95 68
+ 118: 6(int) Load 117
+ 119: 6(int) IAdd 116 118
+ 120: 6(int) IMul 115 119
+ 121: 6(int) Load 98(color)
+ 122: 6(int) IAdd 121 120
+ Store 98(color) 122
+ Store 131(param) 126
+ Store 132(param) 129
+ 134: 6(int) FunctionCall 25(foo2(f1;vf3;i1;) 131(param) 132(param) 133(param)
+ 135: 6(int) Load 133(param)
+ Store 130(tempArg) 135
+ Store 125(tempReturn) 134
+ 137: 6(int) Load 130(tempArg)
+ 138: 17(float) ConvertSToF 137
+ Store 136(arg) 138
+ 139: 6(int) Load 125(tempReturn)
+ 140: 17(float) ConvertSToF 139
+ Store 123(ret) 140
+ 141: 17(float) Load 123(ret)
+ 142: 17(float) Load 136(arg)
+ 143: 17(float) FAdd 141 142
+ 144: 6(int) ConvertFToS 143
+ 145: 6(int) Load 98(color)
+ 146: 6(int) IAdd 145 144
+ Store 98(color) 146
+ 147: 6(int) FunctionCall 28(foo3()
+ 148: 6(int) Load 98(color)
+ 149: 6(int) IAdd 148 147
+ Store 98(color) 149
+ 153: 6(int) Load 98(color)
+ 154: 17(float) ConvertSToF 153
+ 155: 150(fvec4) CompositeConstruct 154 154 154 154
+ Store 152(gl_FragColor) 155
+ Return
+ FunctionEnd
+15(foo(i1;i1;i1;i1;i1;i1;): 6(int) Function None 8
+ 9(a): 7(ptr) FunctionParameter
+ 10(b): 6(int) FunctionParameter
+ 11(c): 7(ptr) FunctionParameter
+ 12(d): 6(int) FunctionParameter
+ 13(e): 7(ptr) FunctionParameter
+ 14(f): 7(ptr) FunctionParameter
+ 16: Label
+ 30(sum): 7(ptr) Variable Function
+ 31: 6(int) Load 9(a)
+ 32: 6(int) IAdd 31 10(b)
+ 33: 6(int) Load 11(c)
+ 34: 6(int) IAdd 32 33
+ 35: 6(int) IAdd 34 12(d)
+ 36: 6(int) Load 14(f)
+ 37: 6(int) IAdd 35 36
+ Store 30(sum) 37
+ 39: 6(int) Load 9(a)
+ 40: 6(int) IMul 39 38
+ Store 9(a) 40
+ 41: 6(int) Load 11(c)
+ 42: 6(int) IMul 41 38
+ Store 11(c) 42
+ Store 13(e) 43
+ 44: 6(int) Load 14(f)
+ 45: 6(int) IMul 44 38
+ Store 14(f) 45
+ 46: 6(int) Load 9(a)
+ 47: 6(int) IMul 38 10(b)
+ 48: 6(int) IAdd 46 47
+ 49: 6(int) Load 11(c)
+ 50: 6(int) IAdd 48 49
+ 51: 6(int) IMul 38 12(d)
+ 52: 6(int) IAdd 50 51
+ 53: 6(int) Load 13(e)
+ 54: 6(int) IAdd 52 53
+ 55: 6(int) Load 14(f)
+ 56: 6(int) IAdd 54 55
+ 57: 6(int) Load 30(sum)
+ 58: 6(int) IAdd 57 56
+ Store 30(sum) 58
+ 59: 6(int) Load 30(sum)
+ ReturnValue 59
+ FunctionEnd
+25(foo2(f1;vf3;i1;): 6(int) Function None 21
+ 22(a): 18(ptr) FunctionParameter
+ 23(b): 20(ptr) FunctionParameter
+ 24(r): 7(ptr) FunctionParameter
+ 26: Label
+ 63: 17(float) Load 22(a)
+ 64: 17(float) FMul 62 63
+ 65: 6(int) ConvertFToS 64
+ Store 24(r) 65
+ 69: 18(ptr) AccessChain 23(b) 68
+ 70: 17(float) Load 69
+ 71: 17(float) FMul 66 70
+ 72: 6(int) ConvertFToS 71
+ ReturnValue 72
+ FunctionEnd
+ 28(foo3(): 6(int) Function None 27
+ 29: Label
+ 77: 17(float) Load 76(u)
+ 80: 79(bool) FOrdGreaterThan 77 78
+ SelectionMerge 82 None
+ BranchConditional 80 81 82
+ 81: Label
+ Kill
+ 82: Label
+ ReturnValue 86
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.image.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.image.frag.out
new file mode 100644
index 00000000000..2bd26f79bbb
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.image.frag.out
@@ -0,0 +1,523 @@
+spv.image.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 378
+
+ Capability Shader
+ Capability SampledRect
+ Capability Sampled1D
+ Capability SampledCubeArray
+ Capability SampledBuffer
+ Capability ImageMSArray
+ Capability StorageImageExtendedFormats
+ Capability ImageQuery
+ Capability StorageImageWriteWithoutFormat
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 132 142 152 248 362 377
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 450
+ Name 4 "main"
+ Name 9 "iv"
+ Name 15 "i1D"
+ Name 27 "i2D"
+ Name 38 "i3D"
+ Name 45 "iCube"
+ Name 55 "iCubeArray"
+ Name 62 "i2DRect"
+ Name 72 "i1DArray"
+ Name 82 "i2DArray"
+ Name 89 "iBuffer"
+ Name 98 "i2DMS"
+ Name 108 "i2DMSArray"
+ Name 127 "v"
+ Name 132 "ic1D"
+ Name 142 "ic2D"
+ Name 152 "ic3D"
+ Name 229 "ui"
+ Name 232 "ii1D"
+ Name 245 "ui2D"
+ Name 248 "value"
+ Name 357 "wo2D"
+ Name 362 "fragData"
+ Name 377 "ic4D"
+ Decorate 15(i1D) DescriptorSet 0
+ Decorate 15(i1D) Binding 0
+ Decorate 27(i2D) DescriptorSet 0
+ Decorate 27(i2D) Binding 1
+ Decorate 38(i3D) DescriptorSet 0
+ Decorate 38(i3D) Binding 2
+ Decorate 45(iCube) DescriptorSet 0
+ Decorate 45(iCube) Binding 3
+ Decorate 55(iCubeArray) DescriptorSet 0
+ Decorate 55(iCubeArray) Binding 4
+ Decorate 62(i2DRect) DescriptorSet 0
+ Decorate 62(i2DRect) Binding 5
+ Decorate 72(i1DArray) DescriptorSet 0
+ Decorate 72(i1DArray) Binding 6
+ Decorate 82(i2DArray) DescriptorSet 0
+ Decorate 82(i2DArray) Binding 7
+ Decorate 89(iBuffer) DescriptorSet 0
+ Decorate 89(iBuffer) Binding 8
+ Decorate 98(i2DMS) DescriptorSet 0
+ Decorate 98(i2DMS) Binding 9
+ Decorate 108(i2DMSArray) DescriptorSet 0
+ Decorate 108(i2DMSArray) Binding 10
+ Decorate 132(ic1D) Flat
+ Decorate 142(ic2D) Flat
+ Decorate 152(ic3D) Flat
+ Decorate 232(ii1D) DescriptorSet 0
+ Decorate 232(ii1D) Binding 11
+ Decorate 245(ui2D) DescriptorSet 0
+ Decorate 245(ui2D) Binding 12
+ Decorate 248(value) Flat
+ Decorate 357(wo2D) DescriptorSet 0
+ Decorate 357(wo2D) Binding 1
+ Decorate 357(wo2D) NonReadable
+ Decorate 377(ic4D) Flat
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypeVector 6(int) 3
+ 8: TypePointer Function 7(ivec3)
+ 10: 6(int) Constant 0
+ 11: 7(ivec3) ConstantComposite 10 10 10
+ 12: TypeFloat 32
+ 13: TypeImage 12(float) 1D nonsampled format:Rgba32f
+ 14: TypePointer UniformConstant 13
+ 15(i1D): 14(ptr) Variable UniformConstant
+ 18: TypeInt 32 0
+ 19: 18(int) Constant 0
+ 20: TypePointer Function 6(int)
+ 25: TypeImage 12(float) 2D nonsampled format:Rgba32f
+ 26: TypePointer UniformConstant 25
+ 27(i2D): 26(ptr) Variable UniformConstant
+ 29: TypeVector 6(int) 2
+ 36: TypeImage 12(float) 3D nonsampled format:Rgba32f
+ 37: TypePointer UniformConstant 36
+ 38(i3D): 37(ptr) Variable UniformConstant
+ 43: TypeImage 12(float) Cube nonsampled format:Rgba32f
+ 44: TypePointer UniformConstant 43
+ 45(iCube): 44(ptr) Variable UniformConstant
+ 53: TypeImage 12(float) Cube array nonsampled format:Rgba32f
+ 54: TypePointer UniformConstant 53
+ 55(iCubeArray): 54(ptr) Variable UniformConstant
+ 60: TypeImage 12(float) Rect nonsampled format:Rgba32f
+ 61: TypePointer UniformConstant 60
+ 62(i2DRect): 61(ptr) Variable UniformConstant
+ 70: TypeImage 12(float) 1D array nonsampled format:Rgba32f
+ 71: TypePointer UniformConstant 70
+ 72(i1DArray): 71(ptr) Variable UniformConstant
+ 80: TypeImage 12(float) 2D array nonsampled format:Rg16
+ 81: TypePointer UniformConstant 80
+ 82(i2DArray): 81(ptr) Variable UniformConstant
+ 87: TypeImage 12(float) Buffer nonsampled format:Rgba32f
+ 88: TypePointer UniformConstant 87
+ 89(iBuffer): 88(ptr) Variable UniformConstant
+ 96: TypeImage 12(float) 2D multi-sampled nonsampled format:Rgba32f
+ 97: TypePointer UniformConstant 96
+ 98(i2DMS): 97(ptr) Variable UniformConstant
+ 106: TypeImage 12(float) 2D array multi-sampled nonsampled format:Rgba32f
+ 107: TypePointer UniformConstant 106
+ 108(i2DMSArray): 107(ptr) Variable UniformConstant
+ 125: TypeVector 12(float) 4
+ 126: TypePointer Function 125(fvec4)
+ 128: 12(float) Constant 0
+ 129: 125(fvec4) ConstantComposite 128 128 128 128
+ 131: TypePointer Input 6(int)
+ 132(ic1D): 131(ptr) Variable Input
+ 141: TypePointer Input 29(ivec2)
+ 142(ic2D): 141(ptr) Variable Input
+ 151: TypePointer Input 7(ivec3)
+ 152(ic3D): 151(ptr) Variable Input
+ 210: 6(int) Constant 1
+ 216: 6(int) Constant 2
+ 220: 6(int) Constant 3
+ 226: 6(int) Constant 4
+ 228: TypePointer Function 18(int)
+ 230: TypeImage 6(int) 1D nonsampled format:R32i
+ 231: TypePointer UniformConstant 230
+ 232(ii1D): 231(ptr) Variable UniformConstant
+ 234: 6(int) Constant 10
+ 235: TypePointer Image 6(int)
+ 237: 18(int) Constant 1
+ 243: TypeImage 18(int) 2D nonsampled format:R32ui
+ 244: TypePointer UniformConstant 243
+ 245(ui2D): 244(ptr) Variable UniformConstant
+ 247: TypePointer Input 18(int)
+ 248(value): 247(ptr) Variable Input
+ 250: TypePointer Image 18(int)
+ 256: 6(int) Constant 11
+ 270: 6(int) Constant 12
+ 284: 6(int) Constant 13
+ 298: 6(int) Constant 14
+ 312: 6(int) Constant 15
+ 326: 6(int) Constant 16
+ 340: 6(int) Constant 18
+ 341: 6(int) Constant 17
+ 349: 18(int) Constant 19
+ 355: TypeImage 12(float) 2D nonsampled format:Unknown
+ 356: TypePointer UniformConstant 355
+ 357(wo2D): 356(ptr) Variable UniformConstant
+ 361: TypePointer Output 125(fvec4)
+ 362(fragData): 361(ptr) Variable Output
+ 368: TypeBool
+ 375: TypeVector 6(int) 4
+ 376: TypePointer Input 375(ivec4)
+ 377(ic4D): 376(ptr) Variable Input
+ 4(main): 2 Function None 3
+ 5: Label
+ 9(iv): 8(ptr) Variable Function
+ 127(v): 126(ptr) Variable Function
+ 229(ui): 228(ptr) Variable Function
+ 363: 126(ptr) Variable Function
+ Store 9(iv) 11
+ 16: 13 Load 15(i1D)
+ 17: 6(int) ImageQuerySize 16
+ 21: 20(ptr) AccessChain 9(iv) 19
+ 22: 6(int) Load 21
+ 23: 6(int) IAdd 22 17
+ 24: 20(ptr) AccessChain 9(iv) 19
+ Store 24 23
+ 28: 25 Load 27(i2D)
+ 30: 29(ivec2) ImageQuerySize 28
+ 31: 7(ivec3) Load 9(iv)
+ 32: 29(ivec2) VectorShuffle 31 31 0 1
+ 33: 29(ivec2) IAdd 32 30
+ 34: 7(ivec3) Load 9(iv)
+ 35: 7(ivec3) VectorShuffle 34 33 3 4 2
+ Store 9(iv) 35
+ 39: 36 Load 38(i3D)
+ 40: 7(ivec3) ImageQuerySize 39
+ 41: 7(ivec3) Load 9(iv)
+ 42: 7(ivec3) IAdd 41 40
+ Store 9(iv) 42
+ 46: 43 Load 45(iCube)
+ 47: 29(ivec2) ImageQuerySize 46
+ 48: 7(ivec3) Load 9(iv)
+ 49: 29(ivec2) VectorShuffle 48 48 0 1
+ 50: 29(ivec2) IAdd 49 47
+ 51: 7(ivec3) Load 9(iv)
+ 52: 7(ivec3) VectorShuffle 51 50 3 4 2
+ Store 9(iv) 52
+ 56: 53 Load 55(iCubeArray)
+ 57: 7(ivec3) ImageQuerySize 56
+ 58: 7(ivec3) Load 9(iv)
+ 59: 7(ivec3) IAdd 58 57
+ Store 9(iv) 59
+ 63: 60 Load 62(i2DRect)
+ 64: 29(ivec2) ImageQuerySize 63
+ 65: 7(ivec3) Load 9(iv)
+ 66: 29(ivec2) VectorShuffle 65 65 0 1
+ 67: 29(ivec2) IAdd 66 64
+ 68: 7(ivec3) Load 9(iv)
+ 69: 7(ivec3) VectorShuffle 68 67 3 4 2
+ Store 9(iv) 69
+ 73: 70 Load 72(i1DArray)
+ 74: 29(ivec2) ImageQuerySize 73
+ 75: 7(ivec3) Load 9(iv)
+ 76: 29(ivec2) VectorShuffle 75 75 0 1
+ 77: 29(ivec2) IAdd 76 74
+ 78: 7(ivec3) Load 9(iv)
+ 79: 7(ivec3) VectorShuffle 78 77 3 4 2
+ Store 9(iv) 79
+ 83: 80 Load 82(i2DArray)
+ 84: 7(ivec3) ImageQuerySize 83
+ 85: 7(ivec3) Load 9(iv)
+ 86: 7(ivec3) IAdd 85 84
+ Store 9(iv) 86
+ 90: 87 Load 89(iBuffer)
+ 91: 6(int) ImageQuerySize 90
+ 92: 20(ptr) AccessChain 9(iv) 19
+ 93: 6(int) Load 92
+ 94: 6(int) IAdd 93 91
+ 95: 20(ptr) AccessChain 9(iv) 19
+ Store 95 94
+ 99: 96 Load 98(i2DMS)
+ 100: 29(ivec2) ImageQuerySize 99
+ 101: 7(ivec3) Load 9(iv)
+ 102: 29(ivec2) VectorShuffle 101 101 0 1
+ 103: 29(ivec2) IAdd 102 100
+ 104: 7(ivec3) Load 9(iv)
+ 105: 7(ivec3) VectorShuffle 104 103 3 4 2
+ Store 9(iv) 105
+ 109: 106 Load 108(i2DMSArray)
+ 110: 7(ivec3) ImageQuerySize 109
+ 111: 7(ivec3) Load 9(iv)
+ 112: 7(ivec3) IAdd 111 110
+ Store 9(iv) 112
+ 113: 96 Load 98(i2DMS)
+ 114: 6(int) ImageQuerySamples 113
+ 115: 20(ptr) AccessChain 9(iv) 19
+ 116: 6(int) Load 115
+ 117: 6(int) IAdd 116 114
+ 118: 20(ptr) AccessChain 9(iv) 19
+ Store 118 117
+ 119: 106 Load 108(i2DMSArray)
+ 120: 6(int) ImageQuerySamples 119
+ 121: 20(ptr) AccessChain 9(iv) 19
+ 122: 6(int) Load 121
+ 123: 6(int) IAdd 122 120
+ 124: 20(ptr) AccessChain 9(iv) 19
+ Store 124 123
+ Store 127(v) 129
+ 130: 13 Load 15(i1D)
+ 133: 6(int) Load 132(ic1D)
+ 134: 125(fvec4) ImageRead 130 133
+ 135: 125(fvec4) Load 127(v)
+ 136: 125(fvec4) FAdd 135 134
+ Store 127(v) 136
+ 137: 13 Load 15(i1D)
+ 138: 6(int) Load 132(ic1D)
+ 139: 125(fvec4) Load 127(v)
+ ImageWrite 137 138 139
+ 140: 25 Load 27(i2D)
+ 143: 29(ivec2) Load 142(ic2D)
+ 144: 125(fvec4) ImageRead 140 143
+ 145: 125(fvec4) Load 127(v)
+ 146: 125(fvec4) FAdd 145 144
+ Store 127(v) 146
+ 147: 25 Load 27(i2D)
+ 148: 29(ivec2) Load 142(ic2D)
+ 149: 125(fvec4) Load 127(v)
+ ImageWrite 147 148 149
+ 150: 36 Load 38(i3D)
+ 153: 7(ivec3) Load 152(ic3D)
+ 154: 125(fvec4) ImageRead 150 153
+ 155: 125(fvec4) Load 127(v)
+ 156: 125(fvec4) FAdd 155 154
+ Store 127(v) 156
+ 157: 36 Load 38(i3D)
+ 158: 7(ivec3) Load 152(ic3D)
+ 159: 125(fvec4) Load 127(v)
+ ImageWrite 157 158 159
+ 160: 43 Load 45(iCube)
+ 161: 7(ivec3) Load 152(ic3D)
+ 162: 125(fvec4) ImageRead 160 161
+ 163: 125(fvec4) Load 127(v)
+ 164: 125(fvec4) FAdd 163 162
+ Store 127(v) 164
+ 165: 43 Load 45(iCube)
+ 166: 7(ivec3) Load 152(ic3D)
+ 167: 125(fvec4) Load 127(v)
+ ImageWrite 165 166 167
+ 168: 53 Load 55(iCubeArray)
+ 169: 7(ivec3) Load 152(ic3D)
+ 170: 125(fvec4) ImageRead 168 169
+ 171: 125(fvec4) Load 127(v)
+ 172: 125(fvec4) FAdd 171 170
+ Store 127(v) 172
+ 173: 53 Load 55(iCubeArray)
+ 174: 7(ivec3) Load 152(ic3D)
+ 175: 125(fvec4) Load 127(v)
+ ImageWrite 173 174 175
+ 176: 60 Load 62(i2DRect)
+ 177: 29(ivec2) Load 142(ic2D)
+ 178: 125(fvec4) ImageRead 176 177
+ 179: 125(fvec4) Load 127(v)
+ 180: 125(fvec4) FAdd 179 178
+ Store 127(v) 180
+ 181: 60 Load 62(i2DRect)
+ 182: 29(ivec2) Load 142(ic2D)
+ 183: 125(fvec4) Load 127(v)
+ ImageWrite 181 182 183
+ 184: 70 Load 72(i1DArray)
+ 185: 29(ivec2) Load 142(ic2D)
+ 186: 125(fvec4) ImageRead 184 185
+ 187: 125(fvec4) Load 127(v)
+ 188: 125(fvec4) FAdd 187 186
+ Store 127(v) 188
+ 189: 70 Load 72(i1DArray)
+ 190: 29(ivec2) Load 142(ic2D)
+ 191: 125(fvec4) Load 127(v)
+ ImageWrite 189 190 191
+ 192: 80 Load 82(i2DArray)
+ 193: 7(ivec3) Load 152(ic3D)
+ 194: 125(fvec4) ImageRead 192 193
+ 195: 125(fvec4) Load 127(v)
+ 196: 125(fvec4) FAdd 195 194
+ Store 127(v) 196
+ 197: 80 Load 82(i2DArray)
+ 198: 7(ivec3) Load 152(ic3D)
+ 199: 125(fvec4) Load 127(v)
+ ImageWrite 197 198 199
+ 200: 87 Load 89(iBuffer)
+ 201: 6(int) Load 132(ic1D)
+ 202: 125(fvec4) ImageRead 200 201
+ 203: 125(fvec4) Load 127(v)
+ 204: 125(fvec4) FAdd 203 202
+ Store 127(v) 204
+ 205: 87 Load 89(iBuffer)
+ 206: 6(int) Load 132(ic1D)
+ 207: 125(fvec4) Load 127(v)
+ ImageWrite 205 206 207
+ 208: 96 Load 98(i2DMS)
+ 209: 29(ivec2) Load 142(ic2D)
+ 211: 125(fvec4) ImageRead 208 209 Sample 210
+ 212: 125(fvec4) Load 127(v)
+ 213: 125(fvec4) FAdd 212 211
+ Store 127(v) 213
+ 214: 96 Load 98(i2DMS)
+ 215: 29(ivec2) Load 142(ic2D)
+ 217: 125(fvec4) Load 127(v)
+ ImageWrite 214 215 217 Sample 216
+ 218: 106 Load 108(i2DMSArray)
+ 219: 7(ivec3) Load 152(ic3D)
+ 221: 125(fvec4) ImageRead 218 219 Sample 220
+ 222: 125(fvec4) Load 127(v)
+ 223: 125(fvec4) FAdd 222 221
+ Store 127(v) 223
+ 224: 106 Load 108(i2DMSArray)
+ 225: 7(ivec3) Load 152(ic3D)
+ 227: 125(fvec4) Load 127(v)
+ ImageWrite 224 225 227 Sample 226
+ Store 229(ui) 19
+ 233: 6(int) Load 132(ic1D)
+ 236: 235(ptr) ImageTexelPointer 232(ii1D) 233 19
+ 238: 6(int) AtomicIAdd 236 237 19 234
+ 239: 20(ptr) AccessChain 9(iv) 19
+ 240: 6(int) Load 239
+ 241: 6(int) IAdd 240 238
+ 242: 20(ptr) AccessChain 9(iv) 19
+ Store 242 241
+ 246: 29(ivec2) Load 142(ic2D)
+ 249: 18(int) Load 248(value)
+ 251: 250(ptr) ImageTexelPointer 245(ui2D) 246 19
+ 252: 18(int) AtomicIAdd 251 237 19 249
+ 253: 18(int) Load 229(ui)
+ 254: 18(int) IAdd 253 252
+ Store 229(ui) 254
+ 255: 6(int) Load 132(ic1D)
+ 257: 235(ptr) ImageTexelPointer 232(ii1D) 255 19
+ 258: 6(int) AtomicSMin 257 237 19 256
+ 259: 20(ptr) AccessChain 9(iv) 19
+ 260: 6(int) Load 259
+ 261: 6(int) IAdd 260 258
+ 262: 20(ptr) AccessChain 9(iv) 19
+ Store 262 261
+ 263: 29(ivec2) Load 142(ic2D)
+ 264: 18(int) Load 248(value)
+ 265: 250(ptr) ImageTexelPointer 245(ui2D) 263 19
+ 266: 18(int) AtomicUMin 265 237 19 264
+ 267: 18(int) Load 229(ui)
+ 268: 18(int) IAdd 267 266
+ Store 229(ui) 268
+ 269: 6(int) Load 132(ic1D)
+ 271: 235(ptr) ImageTexelPointer 232(ii1D) 269 19
+ 272: 6(int) AtomicSMax 271 237 19 270
+ 273: 20(ptr) AccessChain 9(iv) 19
+ 274: 6(int) Load 273
+ 275: 6(int) IAdd 274 272
+ 276: 20(ptr) AccessChain 9(iv) 19
+ Store 276 275
+ 277: 29(ivec2) Load 142(ic2D)
+ 278: 18(int) Load 248(value)
+ 279: 250(ptr) ImageTexelPointer 245(ui2D) 277 19
+ 280: 18(int) AtomicUMax 279 237 19 278
+ 281: 18(int) Load 229(ui)
+ 282: 18(int) IAdd 281 280
+ Store 229(ui) 282
+ 283: 6(int) Load 132(ic1D)
+ 285: 235(ptr) ImageTexelPointer 232(ii1D) 283 19
+ 286: 6(int) AtomicAnd 285 237 19 284
+ 287: 20(ptr) AccessChain 9(iv) 19
+ 288: 6(int) Load 287
+ 289: 6(int) IAdd 288 286
+ 290: 20(ptr) AccessChain 9(iv) 19
+ Store 290 289
+ 291: 29(ivec2) Load 142(ic2D)
+ 292: 18(int) Load 248(value)
+ 293: 250(ptr) ImageTexelPointer 245(ui2D) 291 19
+ 294: 18(int) AtomicAnd 293 237 19 292
+ 295: 18(int) Load 229(ui)
+ 296: 18(int) IAdd 295 294
+ Store 229(ui) 296
+ 297: 6(int) Load 132(ic1D)
+ 299: 235(ptr) ImageTexelPointer 232(ii1D) 297 19
+ 300: 6(int) AtomicOr 299 237 19 298
+ 301: 20(ptr) AccessChain 9(iv) 19
+ 302: 6(int) Load 301
+ 303: 6(int) IAdd 302 300
+ 304: 20(ptr) AccessChain 9(iv) 19
+ Store 304 303
+ 305: 29(ivec2) Load 142(ic2D)
+ 306: 18(int) Load 248(value)
+ 307: 250(ptr) ImageTexelPointer 245(ui2D) 305 19
+ 308: 18(int) AtomicOr 307 237 19 306
+ 309: 18(int) Load 229(ui)
+ 310: 18(int) IAdd 309 308
+ Store 229(ui) 310
+ 311: 6(int) Load 132(ic1D)
+ 313: 235(ptr) ImageTexelPointer 232(ii1D) 311 19
+ 314: 6(int) AtomicXor 313 237 19 312
+ 315: 20(ptr) AccessChain 9(iv) 19
+ 316: 6(int) Load 315
+ 317: 6(int) IAdd 316 314
+ 318: 20(ptr) AccessChain 9(iv) 19
+ Store 318 317
+ 319: 29(ivec2) Load 142(ic2D)
+ 320: 18(int) Load 248(value)
+ 321: 250(ptr) ImageTexelPointer 245(ui2D) 319 19
+ 322: 18(int) AtomicXor 321 237 19 320
+ 323: 18(int) Load 229(ui)
+ 324: 18(int) IAdd 323 322
+ Store 229(ui) 324
+ 325: 6(int) Load 132(ic1D)
+ 327: 235(ptr) ImageTexelPointer 232(ii1D) 325 19
+ 328: 6(int) AtomicExchange 327 237 19 326
+ 329: 20(ptr) AccessChain 9(iv) 19
+ 330: 6(int) Load 329
+ 331: 6(int) IAdd 330 328
+ 332: 20(ptr) AccessChain 9(iv) 19
+ Store 332 331
+ 333: 29(ivec2) Load 142(ic2D)
+ 334: 18(int) Load 248(value)
+ 335: 250(ptr) ImageTexelPointer 245(ui2D) 333 19
+ 336: 18(int) AtomicExchange 335 237 19 334
+ 337: 18(int) Load 229(ui)
+ 338: 18(int) IAdd 337 336
+ Store 229(ui) 338
+ 339: 6(int) Load 132(ic1D)
+ 342: 235(ptr) ImageTexelPointer 232(ii1D) 339 19
+ 343: 6(int) AtomicCompareExchange 342 237 19 19 341 340
+ 344: 20(ptr) AccessChain 9(iv) 19
+ 345: 6(int) Load 344
+ 346: 6(int) IAdd 345 343
+ 347: 20(ptr) AccessChain 9(iv) 19
+ Store 347 346
+ 348: 29(ivec2) Load 142(ic2D)
+ 350: 18(int) Load 248(value)
+ 351: 250(ptr) ImageTexelPointer 245(ui2D) 348 19
+ 352: 18(int) AtomicCompareExchange 351 237 19 19 350 349
+ 353: 18(int) Load 229(ui)
+ 354: 18(int) IAdd 353 352
+ Store 229(ui) 354
+ 358: 355 Load 357(wo2D)
+ 359: 29(ivec2) Load 142(ic2D)
+ 360: 125(fvec4) Load 127(v)
+ ImageWrite 358 359 360
+ 364: 18(int) Load 229(ui)
+ 365: 20(ptr) AccessChain 9(iv) 237
+ 366: 6(int) Load 365
+ 367: 18(int) Bitcast 366
+ 369: 368(bool) INotEqual 364 367
+ SelectionMerge 371 None
+ BranchConditional 369 370 373
+ 370: Label
+ 372: 125(fvec4) Load 127(v)
+ Store 363 372
+ Branch 371
+ 373: Label
+ Store 363 129
+ Branch 371
+ 371: Label
+ 374: 125(fvec4) Load 363
+ Store 362(fragData) 374
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.int64.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.int64.frag.out
new file mode 100644
index 00000000000..fe45013797b
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.int64.frag.out
@@ -0,0 +1,626 @@
+spv.int64.frag
+Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked fragment stage:
+
+
+Missing functionality: shader int64
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 455
+
+ Capability Shader
+ Capability Float64
+ Capability Int64
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main"
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 450
+ SourceExtension "GL_ARB_gpu_shader_int64"
+ Name 4 "main"
+ Name 6 "literal("
+ Name 8 "typeCast("
+ Name 10 "operators("
+ Name 12 "builtinFuncs("
+ Name 16 "i64"
+ Name 24 "Uniforms"
+ MemberName 24(Uniforms) 0 "index"
+ Name 26 ""
+ Name 33 "indexable"
+ Name 38 "u64"
+ Name 47 "indexable"
+ Name 52 "i64v"
+ Name 56 "bv"
+ Name 65 "u64v"
+ Name 74 "iv"
+ Name 81 "uv"
+ Name 89 "fv"
+ Name 95 "dv"
+ Name 132 "u64v"
+ Name 137 "i64"
+ Name 157 "i"
+ Name 164 "uv"
+ Name 216 "b"
+ Name 276 "i64v"
+ Name 279 "i64"
+ Name 289 "u64v"
+ Name 291 "u64"
+ Name 363 "dv"
+ Name 382 "iv"
+ Name 387 "uv"
+ Name 391 "bv"
+ Name 452 "Block"
+ MemberName 452(Block) 0 "i64v"
+ MemberName 452(Block) 1 "u64"
+ Name 454 "block"
+ MemberDecorate 24(Uniforms) 0 Offset 0
+ Decorate 24(Uniforms) Block
+ Decorate 26 DescriptorSet 0
+ Decorate 26 Binding 0
+ MemberDecorate 452(Block) 0 Offset 0
+ MemberDecorate 452(Block) 1 Offset 24
+ Decorate 452(Block) Block
+ Decorate 454(block) DescriptorSet 0
+ Decorate 454(block) Binding 1
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 14: TypeInt 64 1
+ 15: TypePointer Function 14(int)
+ 17: TypeInt 32 0
+ 18: 17(int) Constant 3
+ 19: TypeArray 14(int) 18
+ 20: 14(int) Constant 4008636143 4008636142
+ 21: 14(int) Constant 4294967295 4294967295
+ 22: 14(int) Constant 0 1
+ 23: 19 ConstantComposite 20 21 22
+ 24(Uniforms): TypeStruct 17(int)
+ 25: TypePointer Uniform 24(Uniforms)
+ 26: 25(ptr) Variable Uniform
+ 27: TypeInt 32 1
+ 28: 27(int) Constant 0
+ 29: TypePointer Uniform 17(int)
+ 32: TypePointer Function 19
+ 36: TypeInt 64 0
+ 37: TypePointer Function 36(int)
+ 39: TypeArray 36(int) 18
+ 40: 36(int) Constant 4294967295 4294967295
+ 41: 36(int) Constant 0 1
+ 42: 36(int) Constant 4294967295 1
+ 43: 39 ConstantComposite 40 41 42
+ 46: TypePointer Function 39
+ 50: TypeVector 14(int) 2
+ 51: TypePointer Function 50(ivec2)
+ 53: TypeBool
+ 54: TypeVector 53(bool) 2
+ 55: TypePointer Function 54(bvec2)
+ 58: 14(int) Constant 0 0
+ 59: 14(int) Constant 1 0
+ 60: 50(ivec2) ConstantComposite 58 58
+ 61: 50(ivec2) ConstantComposite 59 59
+ 63: TypeVector 36(int) 2
+ 64: TypePointer Function 63(ivec2)
+ 67: 36(int) Constant 0 0
+ 68: 36(int) Constant 1 0
+ 69: 63(ivec2) ConstantComposite 67 67
+ 70: 63(ivec2) ConstantComposite 68 68
+ 72: TypeVector 27(int) 2
+ 73: TypePointer Function 72(ivec2)
+ 79: TypeVector 17(int) 2
+ 80: TypePointer Function 79(ivec2)
+ 86: TypeFloat 32
+ 87: TypeVector 86(float) 2
+ 88: TypePointer Function 87(fvec2)
+ 92: TypeFloat 64
+ 93: TypeVector 92(float) 2
+ 94: TypePointer Function 93(fvec2)
+ 130: TypeVector 36(int) 3
+ 131: TypePointer Function 130(ivec3)
+ 134: TypeVector 14(int) 3
+ 156: TypePointer Function 27(int)
+ 162: TypeVector 17(int) 3
+ 163: TypePointer Function 162(ivec3)
+ 197: TypeVector 27(int) 3
+ 200: 17(int) Constant 1
+ 201: TypePointer Function 17(int)
+ 207: 17(int) Constant 2
+ 215: TypePointer Function 53(bool)
+ 217: 17(int) Constant 0
+ 287: 50(ivec2) ConstantComposite 21 21
+ 296: 130(ivec3) ConstantComposite 67 67 67
+ 338: 53(bool) ConstantTrue
+ 345: 53(bool) ConstantFalse
+ 346: 54(bvec2) ConstantComposite 345 345
+ 358: TypeVector 53(bool) 3
+ 359: 358(bvec3) ConstantComposite 345 345 345
+ 361: TypeVector 92(float) 3
+ 362: TypePointer Function 361(fvec3)
+ 367: TypePointer Function 92(float)
+ 378: 27(int) Constant 1
+ 379: 27(int) Constant 2
+ 380: 72(ivec2) ConstantComposite 378 379
+ 385: 79(ivec2) ConstantComposite 207 18
+ 390: TypePointer Function 358(bvec3)
+ 452(Block): TypeStruct 134(ivec3) 36(int)
+ 453: TypePointer Uniform 452(Block)
+ 454(block): 453(ptr) Variable Uniform
+ 4(main): 2 Function None 3
+ 5: Label
+ Return
+ FunctionEnd
+ 6(literal(): 2 Function None 3
+ 7: Label
+ 16(i64): 15(ptr) Variable Function
+ 33(indexable): 32(ptr) Variable Function
+ 38(u64): 37(ptr) Variable Function
+ 47(indexable): 46(ptr) Variable Function
+ 30: 29(ptr) AccessChain 26 28
+ 31: 17(int) Load 30
+ Store 33(indexable) 23
+ 34: 15(ptr) AccessChain 33(indexable) 31
+ 35: 14(int) Load 34
+ Store 16(i64) 35
+ 44: 29(ptr) AccessChain 26 28
+ 45: 17(int) Load 44
+ Store 47(indexable) 43
+ 48: 37(ptr) AccessChain 47(indexable) 45
+ 49: 36(int) Load 48
+ Store 38(u64) 49
+ Return
+ FunctionEnd
+ 8(typeCast(): 2 Function None 3
+ 9: Label
+ 52(i64v): 51(ptr) Variable Function
+ 56(bv): 55(ptr) Variable Function
+ 65(u64v): 64(ptr) Variable Function
+ 74(iv): 73(ptr) Variable Function
+ 81(uv): 80(ptr) Variable Function
+ 89(fv): 88(ptr) Variable Function
+ 95(dv): 94(ptr) Variable Function
+ 57: 54(bvec2) Load 56(bv)
+ 62: 50(ivec2) Select 57 61 60
+ Store 52(i64v) 62
+ 66: 54(bvec2) Load 56(bv)
+ 71: 63(ivec2) Select 66 70 69
+ Store 65(u64v) 71
+ 75: 72(ivec2) Load 74(iv)
+ 76: 50(ivec2) SConvert 75
+ Store 52(i64v) 76
+ 77: 50(ivec2) Load 52(i64v)
+ 78: 72(ivec2) SConvert 77
+ Store 74(iv) 78
+ 82: 79(ivec2) Load 81(uv)
+ 83: 63(ivec2) UConvert 82
+ Store 65(u64v) 83
+ 84: 63(ivec2) Load 65(u64v)
+ 85: 79(ivec2) UConvert 84
+ Store 81(uv) 85
+ 90: 50(ivec2) Load 52(i64v)
+ 91: 87(fvec2) ConvertSToF 90
+ Store 89(fv) 91
+ 96: 50(ivec2) Load 52(i64v)
+ 97: 93(fvec2) ConvertSToF 96
+ Store 95(dv) 97
+ 98: 63(ivec2) Load 65(u64v)
+ 99: 87(fvec2) ConvertUToF 98
+ Store 89(fv) 99
+ 100: 63(ivec2) Load 65(u64v)
+ 101: 93(fvec2) ConvertUToF 100
+ Store 95(dv) 101
+ 102: 87(fvec2) Load 89(fv)
+ 103: 50(ivec2) ConvertFToS 102
+ Store 52(i64v) 103
+ 104: 93(fvec2) Load 95(dv)
+ 105: 50(ivec2) ConvertFToS 104
+ Store 52(i64v) 105
+ 106: 87(fvec2) Load 89(fv)
+ 107: 63(ivec2) ConvertFToU 106
+ Store 65(u64v) 107
+ 108: 93(fvec2) Load 95(dv)
+ 109: 63(ivec2) ConvertFToU 108
+ Store 65(u64v) 109
+ 110: 50(ivec2) Load 52(i64v)
+ 111: 54(bvec2) INotEqual 110 69
+ Store 56(bv) 111
+ 112: 63(ivec2) Load 65(u64v)
+ 113: 54(bvec2) INotEqual 112 69
+ Store 56(bv) 113
+ 114: 50(ivec2) Load 52(i64v)
+ 115: 63(ivec2) Bitcast 114
+ Store 65(u64v) 115
+ 116: 63(ivec2) Load 65(u64v)
+ 117: 50(ivec2) Bitcast 116
+ Store 52(i64v) 117
+ 118: 50(ivec2) Load 52(i64v)
+ 119: 72(ivec2) SConvert 118
+ 120: 79(ivec2) Bitcast 119
+ Store 81(uv) 120
+ 121: 79(ivec2) Load 81(uv)
+ 122: 63(ivec2) UConvert 121
+ 123: 50(ivec2) Bitcast 122
+ Store 52(i64v) 123
+ 124: 63(ivec2) Load 65(u64v)
+ 125: 79(ivec2) UConvert 124
+ 126: 72(ivec2) Bitcast 125
+ Store 74(iv) 126
+ 127: 72(ivec2) Load 74(iv)
+ 128: 50(ivec2) SConvert 127
+ 129: 63(ivec2) Bitcast 128
+ Store 65(u64v) 129
+ Return
+ FunctionEnd
+ 10(operators(): 2 Function None 3
+ 11: Label
+ 132(u64v): 131(ptr) Variable Function
+ 137(i64): 15(ptr) Variable Function
+ 157(i): 156(ptr) Variable Function
+ 164(uv): 163(ptr) Variable Function
+ 216(b): 215(ptr) Variable Function
+ 133: 130(ivec3) Load 132(u64v)
+ 135: 134(ivec3) CompositeConstruct 59 59 59
+ 136: 130(ivec3) IAdd 133 135
+ Store 132(u64v) 136
+ 138: 14(int) Load 137(i64)
+ 139: 14(int) ISub 138 59
+ Store 137(i64) 139
+ 140: 14(int) Load 137(i64)
+ 141: 14(int) IAdd 140 59
+ Store 137(i64) 141
+ 142: 130(ivec3) Load 132(u64v)
+ 143: 134(ivec3) CompositeConstruct 59 59 59
+ 144: 130(ivec3) ISub 142 143
+ Store 132(u64v) 144
+ 145: 130(ivec3) Load 132(u64v)
+ 146: 130(ivec3) Not 145
+ Store 132(u64v) 146
+ 147: 14(int) Load 137(i64)
+ Store 137(i64) 147
+ 148: 130(ivec3) Load 132(u64v)
+ 149: 130(ivec3) SNegate 148
+ Store 132(u64v) 149
+ 150: 14(int) Load 137(i64)
+ 151: 14(int) Load 137(i64)
+ 152: 14(int) IAdd 151 150
+ Store 137(i64) 152
+ 153: 130(ivec3) Load 132(u64v)
+ 154: 130(ivec3) Load 132(u64v)
+ 155: 130(ivec3) ISub 154 153
+ Store 132(u64v) 155
+ 158: 27(int) Load 157(i)
+ 159: 14(int) SConvert 158
+ 160: 14(int) Load 137(i64)
+ 161: 14(int) IMul 160 159
+ Store 137(i64) 161
+ 165: 162(ivec3) Load 164(uv)
+ 166: 130(ivec3) UConvert 165
+ 167: 130(ivec3) Load 132(u64v)
+ 168: 130(ivec3) UDiv 167 166
+ Store 132(u64v) 168
+ 169: 27(int) Load 157(i)
+ 170: 14(int) SConvert 169
+ 171: 36(int) Bitcast 170
+ 172: 130(ivec3) Load 132(u64v)
+ 173: 130(ivec3) CompositeConstruct 171 171 171
+ 174: 130(ivec3) UMod 172 173
+ Store 132(u64v) 174
+ 175: 130(ivec3) Load 132(u64v)
+ 176: 162(ivec3) Load 164(uv)
+ 177: 130(ivec3) UConvert 176
+ 178: 130(ivec3) IAdd 175 177
+ Store 132(u64v) 178
+ 179: 14(int) Load 137(i64)
+ 180: 27(int) Load 157(i)
+ 181: 14(int) SConvert 180
+ 182: 14(int) ISub 179 181
+ Store 137(i64) 182
+ 183: 130(ivec3) Load 132(u64v)
+ 184: 162(ivec3) Load 164(uv)
+ 185: 130(ivec3) UConvert 184
+ 186: 130(ivec3) IMul 183 185
+ Store 132(u64v) 186
+ 187: 14(int) Load 137(i64)
+ 188: 27(int) Load 157(i)
+ 189: 14(int) SConvert 188
+ 190: 14(int) IMul 187 189
+ Store 137(i64) 190
+ 191: 14(int) Load 137(i64)
+ 192: 27(int) Load 157(i)
+ 193: 14(int) SConvert 192
+ 194: 14(int) SMod 191 193
+ Store 137(i64) 194
+ 195: 27(int) Load 157(i)
+ 196: 130(ivec3) Load 132(u64v)
+ 198: 197(ivec3) CompositeConstruct 195 195 195
+ 199: 130(ivec3) ShiftLeftLogical 196 198
+ Store 132(u64v) 199
+ 202: 201(ptr) AccessChain 164(uv) 200
+ 203: 17(int) Load 202
+ 204: 14(int) Load 137(i64)
+ 205: 14(int) ShiftRightArithmetic 204 203
+ Store 137(i64) 205
+ 206: 14(int) Load 137(i64)
+ 208: 37(ptr) AccessChain 132(u64v) 207
+ 209: 36(int) Load 208
+ 210: 14(int) ShiftLeftLogical 206 209
+ Store 137(i64) 210
+ 211: 130(ivec3) Load 132(u64v)
+ 212: 14(int) Load 137(i64)
+ 213: 134(ivec3) CompositeConstruct 212 212 212
+ 214: 130(ivec3) ShiftLeftLogical 211 213
+ Store 132(u64v) 214
+ 218: 37(ptr) AccessChain 132(u64v) 217
+ 219: 36(int) Load 218
+ 220: 14(int) Load 137(i64)
+ 221: 36(int) Bitcast 220
+ 222: 53(bool) INotEqual 219 221
+ Store 216(b) 222
+ 223: 14(int) Load 137(i64)
+ 224: 36(int) Bitcast 223
+ 225: 37(ptr) AccessChain 132(u64v) 217
+ 226: 36(int) Load 225
+ 227: 53(bool) IEqual 224 226
+ Store 216(b) 227
+ 228: 37(ptr) AccessChain 132(u64v) 217
+ 229: 36(int) Load 228
+ 230: 201(ptr) AccessChain 164(uv) 200
+ 231: 17(int) Load 230
+ 232: 36(int) UConvert 231
+ 233: 53(bool) UGreaterThan 229 232
+ Store 216(b) 233
+ 234: 14(int) Load 137(i64)
+ 235: 27(int) Load 157(i)
+ 236: 14(int) SConvert 235
+ 237: 53(bool) SLessThan 234 236
+ Store 216(b) 237
+ 238: 37(ptr) AccessChain 132(u64v) 200
+ 239: 36(int) Load 238
+ 240: 201(ptr) AccessChain 164(uv) 217
+ 241: 17(int) Load 240
+ 242: 36(int) UConvert 241
+ 243: 53(bool) UGreaterThanEqual 239 242
+ Store 216(b) 243
+ 244: 14(int) Load 137(i64)
+ 245: 27(int) Load 157(i)
+ 246: 14(int) SConvert 245
+ 247: 53(bool) SLessThanEqual 244 246
+ Store 216(b) 247
+ 248: 27(int) Load 157(i)
+ 249: 14(int) SConvert 248
+ 250: 36(int) Bitcast 249
+ 251: 130(ivec3) Load 132(u64v)
+ 252: 130(ivec3) CompositeConstruct 250 250 250
+ 253: 130(ivec3) BitwiseOr 251 252
+ Store 132(u64v) 253
+ 254: 14(int) Load 137(i64)
+ 255: 27(int) Load 157(i)
+ 256: 14(int) SConvert 255
+ 257: 14(int) BitwiseOr 254 256
+ Store 137(i64) 257
+ 258: 27(int) Load 157(i)
+ 259: 14(int) SConvert 258
+ 260: 14(int) Load 137(i64)
+ 261: 14(int) BitwiseAnd 260 259
+ Store 137(i64) 261
+ 262: 130(ivec3) Load 132(u64v)
+ 263: 162(ivec3) Load 164(uv)
+ 264: 130(ivec3) UConvert 263
+ 265: 130(ivec3) BitwiseAnd 262 264
+ Store 132(u64v) 265
+ 266: 14(int) Load 137(i64)
+ 267: 36(int) Bitcast 266
+ 268: 130(ivec3) Load 132(u64v)
+ 269: 130(ivec3) CompositeConstruct 267 267 267
+ 270: 130(ivec3) BitwiseXor 268 269
+ Store 132(u64v) 270
+ 271: 130(ivec3) Load 132(u64v)
+ 272: 14(int) Load 137(i64)
+ 273: 36(int) Bitcast 272
+ 274: 130(ivec3) CompositeConstruct 273 273 273
+ 275: 130(ivec3) BitwiseXor 271 274
+ Store 132(u64v) 275
+ Return
+ FunctionEnd
+12(builtinFuncs(): 2 Function None 3
+ 13: Label
+ 276(i64v): 51(ptr) Variable Function
+ 279(i64): 15(ptr) Variable Function
+ 289(u64v): 131(ptr) Variable Function
+ 291(u64): 37(ptr) Variable Function
+ 363(dv): 362(ptr) Variable Function
+ 382(iv): 73(ptr) Variable Function
+ 387(uv): 80(ptr) Variable Function
+ 391(bv): 390(ptr) Variable Function
+ 277: 50(ivec2) Load 276(i64v)
+ 278: 50(ivec2) ExtInst 1(GLSL.std.450) 5(SAbs) 277
+ Store 276(i64v) 278
+ 280: 14(int) Load 279(i64)
+ 281: 14(int) ExtInst 1(GLSL.std.450) 7(SSign) 280
+ Store 279(i64) 281
+ 282: 50(ivec2) Load 276(i64v)
+ 283: 14(int) Load 279(i64)
+ 284: 50(ivec2) CompositeConstruct 283 283
+ 285: 50(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 282 284
+ Store 276(i64v) 285
+ 286: 50(ivec2) Load 276(i64v)
+ 288: 50(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 286 287
+ Store 276(i64v) 288
+ 290: 130(ivec3) Load 289(u64v)
+ 292: 36(int) Load 291(u64)
+ 293: 130(ivec3) CompositeConstruct 292 292 292
+ 294: 130(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 290 293
+ Store 289(u64v) 294
+ 295: 130(ivec3) Load 289(u64v)
+ 297: 130(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 295 296
+ Store 289(u64v) 297
+ 298: 50(ivec2) Load 276(i64v)
+ 299: 14(int) Load 279(i64)
+ 300: 50(ivec2) CompositeConstruct 299 299
+ 301: 50(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 298 300
+ Store 276(i64v) 301
+ 302: 50(ivec2) Load 276(i64v)
+ 303: 50(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 302 287
+ Store 276(i64v) 303
+ 304: 130(ivec3) Load 289(u64v)
+ 305: 36(int) Load 291(u64)
+ 306: 130(ivec3) CompositeConstruct 305 305 305
+ 307: 130(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 304 306
+ Store 289(u64v) 307
+ 308: 130(ivec3) Load 289(u64v)
+ 309: 130(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 308 296
+ Store 289(u64v) 309
+ 310: 50(ivec2) Load 276(i64v)
+ 311: 14(int) Load 279(i64)
+ 312: 14(int) SNegate 311
+ 313: 14(int) Load 279(i64)
+ 314: 50(ivec2) CompositeConstruct 312 312
+ 315: 50(ivec2) CompositeConstruct 313 313
+ 316: 50(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 310 314 315
+ Store 276(i64v) 316
+ 317: 50(ivec2) Load 276(i64v)
+ 318: 50(ivec2) Load 276(i64v)
+ 319: 50(ivec2) SNegate 318
+ 320: 50(ivec2) Load 276(i64v)
+ 321: 50(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 317 319 320
+ Store 276(i64v) 321
+ 322: 130(ivec3) Load 289(u64v)
+ 323: 36(int) Load 291(u64)
+ 324: 36(int) SNegate 323
+ 325: 36(int) Load 291(u64)
+ 326: 130(ivec3) CompositeConstruct 324 324 324
+ 327: 130(ivec3) CompositeConstruct 325 325 325
+ 328: 130(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 322 326 327
+ Store 289(u64v) 328
+ 329: 130(ivec3) Load 289(u64v)
+ 330: 130(ivec3) Load 289(u64v)
+ 331: 130(ivec3) SNegate 330
+ 332: 130(ivec3) Load 289(u64v)
+ 333: 130(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 329 331 332
+ Store 289(u64v) 333
+ 334: 15(ptr) AccessChain 276(i64v) 217
+ 335: 14(int) Load 334
+ 336: 15(ptr) AccessChain 276(i64v) 200
+ 337: 14(int) Load 336
+ 339: 14(int) Select 338 337 335
+ Store 279(i64) 339
+ 340: 14(int) Load 279(i64)
+ 341: 50(ivec2) CompositeConstruct 340 340
+ 342: 14(int) Load 279(i64)
+ 343: 14(int) SNegate 342
+ 344: 50(ivec2) CompositeConstruct 343 343
+ 347: 50(ivec2) Select 346 344 341
+ Store 276(i64v) 347
+ 348: 37(ptr) AccessChain 289(u64v) 217
+ 349: 36(int) Load 348
+ 350: 37(ptr) AccessChain 289(u64v) 200
+ 351: 36(int) Load 350
+ 352: 36(int) Select 338 351 349
+ Store 291(u64) 352
+ 353: 36(int) Load 291(u64)
+ 354: 130(ivec3) CompositeConstruct 353 353 353
+ 355: 36(int) Load 291(u64)
+ 356: 36(int) SNegate 355
+ 357: 130(ivec3) CompositeConstruct 356 356 356
+ 360: 130(ivec3) Select 359 357 354
+ Store 289(u64v) 360
+ 364: 361(fvec3) Load 363(dv)
+ 365: 93(fvec2) VectorShuffle 364 364 0 1
+ 366: 50(ivec2) Bitcast 365
+ Store 276(i64v) 366
+ 368: 367(ptr) AccessChain 363(dv) 207
+ 369: 92(float) Load 368
+ 370: 36(int) Bitcast 369
+ 371: 37(ptr) AccessChain 289(u64v) 217
+ Store 371 370
+ 372: 50(ivec2) Load 276(i64v)
+ 373: 93(fvec2) Bitcast 372
+ 374: 361(fvec3) Load 363(dv)
+ 375: 361(fvec3) VectorShuffle 374 373 3 4 2
+ Store 363(dv) 375
+ 376: 130(ivec3) Load 289(u64v)
+ 377: 361(fvec3) Bitcast 376
+ Store 363(dv) 377
+ 381: 14(int) ExtInst 1(GLSL.std.450) 0(Unknown) 380
+ Store 279(i64) 381
+ 383: 14(int) Load 279(i64)
+ 384: 72(ivec2) ExtInst 1(GLSL.std.450) 0(Unknown) 383
+ Store 382(iv) 384
+ 386: 36(int) ExtInst 1(GLSL.std.450) 0(Unknown) 385
+ Store 291(u64) 386
+ 388: 36(int) Load 291(u64)
+ 389: 79(ivec2) ExtInst 1(GLSL.std.450) 0(Unknown) 388
+ Store 387(uv) 389
+ 392: 130(ivec3) Load 289(u64v)
+ 393: 36(int) Load 291(u64)
+ 394: 130(ivec3) CompositeConstruct 393 393 393
+ 395: 358(bvec3) ULessThan 392 394
+ Store 391(bv) 395
+ 396: 50(ivec2) Load 276(i64v)
+ 397: 14(int) Load 279(i64)
+ 398: 50(ivec2) CompositeConstruct 397 397
+ 399: 54(bvec2) SLessThan 396 398
+ 400: 358(bvec3) Load 391(bv)
+ 401: 358(bvec3) VectorShuffle 400 399 3 4 2
+ Store 391(bv) 401
+ 402: 130(ivec3) Load 289(u64v)
+ 403: 36(int) Load 291(u64)
+ 404: 130(ivec3) CompositeConstruct 403 403 403
+ 405: 358(bvec3) ULessThanEqual 402 404
+ Store 391(bv) 405
+ 406: 50(ivec2) Load 276(i64v)
+ 407: 14(int) Load 279(i64)
+ 408: 50(ivec2) CompositeConstruct 407 407
+ 409: 54(bvec2) SLessThanEqual 406 408
+ 410: 358(bvec3) Load 391(bv)
+ 411: 358(bvec3) VectorShuffle 410 409 3 4 2
+ Store 391(bv) 411
+ 412: 130(ivec3) Load 289(u64v)
+ 413: 36(int) Load 291(u64)
+ 414: 130(ivec3) CompositeConstruct 413 413 413
+ 415: 358(bvec3) UGreaterThan 412 414
+ Store 391(bv) 415
+ 416: 50(ivec2) Load 276(i64v)
+ 417: 14(int) Load 279(i64)
+ 418: 50(ivec2) CompositeConstruct 417 417
+ 419: 54(bvec2) SGreaterThan 416 418
+ 420: 358(bvec3) Load 391(bv)
+ 421: 358(bvec3) VectorShuffle 420 419 3 4 2
+ Store 391(bv) 421
+ 422: 130(ivec3) Load 289(u64v)
+ 423: 36(int) Load 291(u64)
+ 424: 130(ivec3) CompositeConstruct 423 423 423
+ 425: 358(bvec3) UGreaterThanEqual 422 424
+ Store 391(bv) 425
+ 426: 50(ivec2) Load 276(i64v)
+ 427: 14(int) Load 279(i64)
+ 428: 50(ivec2) CompositeConstruct 427 427
+ 429: 54(bvec2) SGreaterThanEqual 426 428
+ 430: 358(bvec3) Load 391(bv)
+ 431: 358(bvec3) VectorShuffle 430 429 3 4 2
+ Store 391(bv) 431
+ 432: 130(ivec3) Load 289(u64v)
+ 433: 36(int) Load 291(u64)
+ 434: 130(ivec3) CompositeConstruct 433 433 433
+ 435: 358(bvec3) IEqual 432 434
+ Store 391(bv) 435
+ 436: 50(ivec2) Load 276(i64v)
+ 437: 14(int) Load 279(i64)
+ 438: 50(ivec2) CompositeConstruct 437 437
+ 439: 54(bvec2) IEqual 436 438
+ 440: 358(bvec3) Load 391(bv)
+ 441: 358(bvec3) VectorShuffle 440 439 3 4 2
+ Store 391(bv) 441
+ 442: 130(ivec3) Load 289(u64v)
+ 443: 36(int) Load 291(u64)
+ 444: 130(ivec3) CompositeConstruct 443 443 443
+ 445: 358(bvec3) INotEqual 442 444
+ Store 391(bv) 445
+ 446: 50(ivec2) Load 276(i64v)
+ 447: 14(int) Load 279(i64)
+ 448: 50(ivec2) CompositeConstruct 447 447
+ 449: 54(bvec2) INotEqual 446 448
+ 450: 358(bvec3) Load 391(bv)
+ 451: 358(bvec3) VectorShuffle 450 449 3 4 2
+ Store 391(bv) 451
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.intOps.vert.out b/chromium/third_party/glslang/src/Test/baseResults/spv.intOps.vert.out
new file mode 100644
index 00000000000..926ab7c6ca3
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.intOps.vert.out
@@ -0,0 +1,361 @@
+spv.intOps.vert
+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 268
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Vertex 4 "main" 9 15 21 26 47 67 83 100 121 142 146 156 173 182 247
+ Source ESSL 310
+ Name 4 "main"
+ Name 9 "iout"
+ Name 15 "uout"
+ Name 21 "fout"
+ Name 26 "u2"
+ Name 30 "u2out"
+ Name 31 "ResType"
+ Name 47 "u1"
+ Name 51 "u1out"
+ Name 52 "ResType"
+ Name 67 "u4"
+ Name 71 "u4outHi"
+ Name 72 "u4outLow"
+ Name 73 "ResType"
+ Name 83 "i4"
+ Name 87 "i4outHi"
+ Name 88 "i4outLow"
+ Name 89 "ResType"
+ Name 100 "v3"
+ Name 104 "i3out"
+ Name 105 "ResType"
+ Name 121 "v1"
+ Name 124 "i1out"
+ Name 125 "ResType"
+ Name 142 "v2"
+ Name 146 "i2"
+ Name 156 "i1"
+ Name 173 "u3"
+ Name 182 "i3"
+ Name 247 "v4"
+ Decorate 210 RelaxedPrecision
+ Decorate 216 RelaxedPrecision
+ Decorate 223 RelaxedPrecision
+ Decorate 230 RelaxedPrecision
+ Decorate 234 RelaxedPrecision
+ Decorate 240 RelaxedPrecision
+ Decorate 261 RelaxedPrecision
+ Decorate 265 RelaxedPrecision
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypeVector 6(int) 4
+ 8: TypePointer Output 7(ivec4)
+ 9(iout): 8(ptr) Variable Output
+ 10: 6(int) Constant 0
+ 11: 7(ivec4) ConstantComposite 10 10 10 10
+ 12: TypeInt 32 0
+ 13: TypeVector 12(int) 4
+ 14: TypePointer Output 13(ivec4)
+ 15(uout): 14(ptr) Variable Output
+ 16: 12(int) Constant 0
+ 17: 13(ivec4) ConstantComposite 16 16 16 16
+ 18: TypeFloat 32
+ 19: TypeVector 18(float) 4
+ 20: TypePointer Output 19(fvec4)
+ 21(fout): 20(ptr) Variable Output
+ 22: 18(float) Constant 0
+ 23: 19(fvec4) ConstantComposite 22 22 22 22
+ 24: TypeVector 12(int) 2
+ 25: TypePointer Input 24(ivec2)
+ 26(u2): 25(ptr) Variable Input
+ 29: TypePointer Function 24(ivec2)
+ 31(ResType): TypeStruct 24(ivec2) 24(ivec2)
+ 46: TypePointer Input 12(int)
+ 47(u1): 46(ptr) Variable Input
+ 50: TypePointer Function 12(int)
+ 52(ResType): TypeStruct 12(int) 12(int)
+ 56: TypePointer Output 12(int)
+ 66: TypePointer Input 13(ivec4)
+ 67(u4): 66(ptr) Variable Input
+ 70: TypePointer Function 13(ivec4)
+ 73(ResType): TypeStruct 13(ivec4) 13(ivec4)
+ 82: TypePointer Input 7(ivec4)
+ 83(i4): 82(ptr) Variable Input
+ 86: TypePointer Function 7(ivec4)
+ 89(ResType): TypeStruct 7(ivec4) 7(ivec4)
+ 98: TypeVector 18(float) 3
+ 99: TypePointer Input 98(fvec3)
+ 100(v3): 99(ptr) Variable Input
+ 102: TypeVector 6(int) 3
+ 103: TypePointer Function 102(ivec3)
+ 105(ResType): TypeStruct 98(fvec3) 102(ivec3)
+ 120: TypePointer Input 18(float)
+ 121(v1): 120(ptr) Variable Input
+ 123: TypePointer Function 6(int)
+ 125(ResType): TypeStruct 18(float) 6(int)
+ 129: TypePointer Output 18(float)
+ 135: TypePointer Output 6(int)
+ 140: TypeVector 18(float) 2
+ 141: TypePointer Input 140(fvec2)
+ 142(v2): 141(ptr) Variable Input
+ 144: TypeVector 6(int) 2
+ 145: TypePointer Input 144(ivec2)
+ 146(i2): 145(ptr) Variable Input
+ 155: TypePointer Input 6(int)
+ 156(i1): 155(ptr) Variable Input
+ 164: 6(int) Constant 4
+ 165: 6(int) Constant 5
+ 171: TypeVector 12(int) 3
+ 172: TypePointer Input 171(ivec3)
+ 173(u3): 172(ptr) Variable Input
+ 181: TypePointer Input 102(ivec3)
+ 182(i3): 181(ptr) Variable Input
+ 246: TypePointer Input 19(fvec4)
+ 247(v4): 246(ptr) Variable Input
+ 4(main): 2 Function None 3
+ 5: Label
+ 30(u2out): 29(ptr) Variable Function
+ 51(u1out): 50(ptr) Variable Function
+ 71(u4outHi): 70(ptr) Variable Function
+ 72(u4outLow): 70(ptr) Variable Function
+ 87(i4outHi): 86(ptr) Variable Function
+ 88(i4outLow): 86(ptr) Variable Function
+ 104(i3out): 103(ptr) Variable Function
+ 124(i1out): 123(ptr) Variable Function
+ Store 9(iout) 11
+ Store 15(uout) 17
+ Store 21(fout) 23
+ 27: 24(ivec2) Load 26(u2)
+ 28: 24(ivec2) Load 26(u2)
+ 32: 31(ResType) IAddCarry 27 28
+ 33: 24(ivec2) CompositeExtract 32 1
+ Store 30(u2out) 33
+ 34: 24(ivec2) CompositeExtract 32 0
+ 35: 13(ivec4) Load 15(uout)
+ 36: 24(ivec2) VectorShuffle 35 35 0 1
+ 37: 24(ivec2) IAdd 36 34
+ 38: 13(ivec4) Load 15(uout)
+ 39: 13(ivec4) VectorShuffle 38 37 4 5 2 3
+ Store 15(uout) 39
+ 40: 24(ivec2) Load 30(u2out)
+ 41: 13(ivec4) Load 15(uout)
+ 42: 24(ivec2) VectorShuffle 41 41 0 1
+ 43: 24(ivec2) IAdd 42 40
+ 44: 13(ivec4) Load 15(uout)
+ 45: 13(ivec4) VectorShuffle 44 43 4 5 2 3
+ Store 15(uout) 45
+ 48: 12(int) Load 47(u1)
+ 49: 12(int) Load 47(u1)
+ 53: 52(ResType) ISubBorrow 48 49
+ 54: 12(int) CompositeExtract 53 1
+ Store 51(u1out) 54
+ 55: 12(int) CompositeExtract 53 0
+ 57: 56(ptr) AccessChain 15(uout) 16
+ 58: 12(int) Load 57
+ 59: 12(int) IAdd 58 55
+ 60: 56(ptr) AccessChain 15(uout) 16
+ Store 60 59
+ 61: 12(int) Load 51(u1out)
+ 62: 56(ptr) AccessChain 15(uout) 16
+ 63: 12(int) Load 62
+ 64: 12(int) IAdd 63 61
+ 65: 56(ptr) AccessChain 15(uout) 16
+ Store 65 64
+ 68: 13(ivec4) Load 67(u4)
+ 69: 13(ivec4) Load 67(u4)
+ 74: 73(ResType) UMulExtended 68 69
+ 75: 13(ivec4) CompositeExtract 74 0
+ Store 72(u4outLow) 75
+ 76: 13(ivec4) CompositeExtract 74 1
+ Store 71(u4outHi) 76
+ 77: 13(ivec4) Load 71(u4outHi)
+ 78: 13(ivec4) Load 72(u4outLow)
+ 79: 13(ivec4) IAdd 77 78
+ 80: 13(ivec4) Load 15(uout)
+ 81: 13(ivec4) IAdd 80 79
+ Store 15(uout) 81
+ 84: 7(ivec4) Load 83(i4)
+ 85: 7(ivec4) Load 83(i4)
+ 90: 89(ResType) SMulExtended 84 85
+ 91: 7(ivec4) CompositeExtract 90 0
+ Store 88(i4outLow) 91
+ 92: 7(ivec4) CompositeExtract 90 1
+ Store 87(i4outHi) 92
+ 93: 7(ivec4) Load 88(i4outLow)
+ 94: 7(ivec4) Load 87(i4outHi)
+ 95: 7(ivec4) IAdd 93 94
+ 96: 7(ivec4) Load 9(iout)
+ 97: 7(ivec4) IAdd 96 95
+ Store 9(iout) 97
+ 101: 98(fvec3) Load 100(v3)
+ 106:105(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 101
+ 107: 102(ivec3) CompositeExtract 106 1
+ Store 104(i3out) 107
+ 108: 98(fvec3) CompositeExtract 106 0
+ 109: 19(fvec4) Load 21(fout)
+ 110: 98(fvec3) VectorShuffle 109 109 0 1 2
+ 111: 98(fvec3) FAdd 110 108
+ 112: 19(fvec4) Load 21(fout)
+ 113: 19(fvec4) VectorShuffle 112 111 4 5 6 3
+ Store 21(fout) 113
+ 114: 102(ivec3) Load 104(i3out)
+ 115: 7(ivec4) Load 9(iout)
+ 116: 102(ivec3) VectorShuffle 115 115 0 1 2
+ 117: 102(ivec3) IAdd 116 114
+ 118: 7(ivec4) Load 9(iout)
+ 119: 7(ivec4) VectorShuffle 118 117 4 5 6 3
+ Store 9(iout) 119
+ 122: 18(float) Load 121(v1)
+ 126:125(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 122
+ 127: 6(int) CompositeExtract 126 1
+ Store 124(i1out) 127
+ 128: 18(float) CompositeExtract 126 0
+ 130: 129(ptr) AccessChain 21(fout) 16
+ 131: 18(float) Load 130
+ 132: 18(float) FAdd 131 128
+ 133: 129(ptr) AccessChain 21(fout) 16
+ Store 133 132
+ 134: 6(int) Load 124(i1out)
+ 136: 135(ptr) AccessChain 9(iout) 16
+ 137: 6(int) Load 136
+ 138: 6(int) IAdd 137 134
+ 139: 135(ptr) AccessChain 9(iout) 16
+ Store 139 138
+ 143: 140(fvec2) Load 142(v2)
+ 147: 144(ivec2) Load 146(i2)
+ 148: 140(fvec2) ExtInst 1(GLSL.std.450) 53(Ldexp) 143 147
+ 149: 19(fvec4) Load 21(fout)
+ 150: 140(fvec2) VectorShuffle 149 149 0 1
+ 151: 140(fvec2) FAdd 150 148
+ 152: 19(fvec4) Load 21(fout)
+ 153: 19(fvec4) VectorShuffle 152 151 4 5 2 3
+ Store 21(fout) 153
+ 154: 18(float) Load 121(v1)
+ 157: 6(int) Load 156(i1)
+ 158: 18(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 154 157
+ 159: 129(ptr) AccessChain 21(fout) 16
+ 160: 18(float) Load 159
+ 161: 18(float) FAdd 160 158
+ 162: 129(ptr) AccessChain 21(fout) 16
+ Store 162 161
+ 163: 6(int) Load 156(i1)
+ 166: 6(int) BitFieldSExtract 163 164 165
+ 167: 135(ptr) AccessChain 9(iout) 16
+ 168: 6(int) Load 167
+ 169: 6(int) IAdd 168 166
+ 170: 135(ptr) AccessChain 9(iout) 16
+ Store 170 169
+ 174: 171(ivec3) Load 173(u3)
+ 175: 171(ivec3) BitFieldUExtract 174 164 165
+ 176: 13(ivec4) Load 15(uout)
+ 177: 171(ivec3) VectorShuffle 176 176 0 1 2
+ 178: 171(ivec3) IAdd 177 175
+ 179: 13(ivec4) Load 15(uout)
+ 180: 13(ivec4) VectorShuffle 179 178 4 5 6 3
+ Store 15(uout) 180
+ 183: 102(ivec3) Load 182(i3)
+ 184: 102(ivec3) Load 182(i3)
+ 185: 102(ivec3) BitFieldInsert 183 184 164 165
+ 186: 7(ivec4) Load 9(iout)
+ 187: 102(ivec3) VectorShuffle 186 186 0 1 2
+ 188: 102(ivec3) IAdd 187 185
+ 189: 7(ivec4) Load 9(iout)
+ 190: 7(ivec4) VectorShuffle 189 188 4 5 6 3
+ Store 9(iout) 190
+ 191: 12(int) Load 47(u1)
+ 192: 12(int) Load 47(u1)
+ 193: 12(int) BitFieldInsert 191 192 164 165
+ 194: 56(ptr) AccessChain 15(uout) 16
+ 195: 12(int) Load 194
+ 196: 12(int) IAdd 195 193
+ 197: 56(ptr) AccessChain 15(uout) 16
+ Store 197 196
+ 198: 144(ivec2) Load 146(i2)
+ 199: 144(ivec2) BitReverse 198
+ 200: 7(ivec4) Load 9(iout)
+ 201: 144(ivec2) VectorShuffle 200 200 0 1
+ 202: 144(ivec2) IAdd 201 199
+ 203: 7(ivec4) Load 9(iout)
+ 204: 7(ivec4) VectorShuffle 203 202 4 5 2 3
+ Store 9(iout) 204
+ 205: 13(ivec4) Load 67(u4)
+ 206: 13(ivec4) BitReverse 205
+ 207: 13(ivec4) Load 15(uout)
+ 208: 13(ivec4) IAdd 207 206
+ Store 15(uout) 208
+ 209: 6(int) Load 156(i1)
+ 210: 6(int) BitCount 209
+ 211: 135(ptr) AccessChain 9(iout) 16
+ 212: 6(int) Load 211
+ 213: 6(int) IAdd 212 210
+ 214: 135(ptr) AccessChain 9(iout) 16
+ Store 214 213
+ 215: 171(ivec3) Load 173(u3)
+ 216: 102(ivec3) BitCount 215
+ 217: 7(ivec4) Load 9(iout)
+ 218: 102(ivec3) VectorShuffle 217 217 0 1 2
+ 219: 102(ivec3) IAdd 218 216
+ 220: 7(ivec4) Load 9(iout)
+ 221: 7(ivec4) VectorShuffle 220 219 4 5 6 3
+ Store 9(iout) 221
+ 222: 144(ivec2) Load 146(i2)
+ 223: 144(ivec2) ExtInst 1(GLSL.std.450) 73(FindILsb) 222
+ 224: 7(ivec4) Load 9(iout)
+ 225: 144(ivec2) VectorShuffle 224 224 0 1
+ 226: 144(ivec2) IAdd 225 223
+ 227: 7(ivec4) Load 9(iout)
+ 228: 7(ivec4) VectorShuffle 227 226 4 5 2 3
+ Store 9(iout) 228
+ 229: 13(ivec4) Load 67(u4)
+ 230: 7(ivec4) ExtInst 1(GLSL.std.450) 73(FindILsb) 229
+ 231: 7(ivec4) Load 9(iout)
+ 232: 7(ivec4) IAdd 231 230
+ Store 9(iout) 232
+ 233: 6(int) Load 156(i1)
+ 234: 6(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 233
+ 235: 135(ptr) AccessChain 9(iout) 16
+ 236: 6(int) Load 235
+ 237: 6(int) IAdd 236 234
+ 238: 135(ptr) AccessChain 9(iout) 16
+ Store 238 237
+ 239: 24(ivec2) Load 26(u2)
+ 240: 144(ivec2) ExtInst 1(GLSL.std.450) 75(FindUMsb) 239
+ 241: 7(ivec4) Load 9(iout)
+ 242: 144(ivec2) VectorShuffle 241 241 0 1
+ 243: 144(ivec2) IAdd 242 240
+ 244: 7(ivec4) Load 9(iout)
+ 245: 7(ivec4) VectorShuffle 244 243 4 5 2 3
+ Store 9(iout) 245
+ 248: 19(fvec4) Load 247(v4)
+ 249: 12(int) ExtInst 1(GLSL.std.450) 55(PackUnorm4x8) 248
+ 250: 56(ptr) AccessChain 15(uout) 16
+ 251: 12(int) Load 250
+ 252: 12(int) IAdd 251 249
+ 253: 56(ptr) AccessChain 15(uout) 16
+ Store 253 252
+ 254: 19(fvec4) Load 247(v4)
+ 255: 12(int) ExtInst 1(GLSL.std.450) 54(PackSnorm4x8) 254
+ 256: 56(ptr) AccessChain 15(uout) 16
+ 257: 12(int) Load 256
+ 258: 12(int) IAdd 257 255
+ 259: 56(ptr) AccessChain 15(uout) 16
+ Store 259 258
+ 260: 12(int) Load 47(u1)
+ 261: 19(fvec4) ExtInst 1(GLSL.std.450) 64(UnpackUnorm4x8) 260
+ 262: 19(fvec4) Load 21(fout)
+ 263: 19(fvec4) FAdd 262 261
+ Store 21(fout) 263
+ 264: 12(int) Load 47(u1)
+ 265: 19(fvec4) ExtInst 1(GLSL.std.450) 63(UnpackSnorm4x8) 264
+ 266: 19(fvec4) Load 21(fout)
+ 267: 19(fvec4) FAdd 266 265
+ Store 21(fout) 267
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.interpOps.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.interpOps.frag.out
new file mode 100644
index 00000000000..a5076421ba9
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.interpOps.frag.out
@@ -0,0 +1,143 @@
+spv.interpOps.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 100
+
+ Capability Shader
+ Capability InterpolationFunction
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 13 24 33 41 47 72 98
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 450
+ Name 4 "main"
+ Name 9 "f4"
+ Name 13 "if1"
+ Name 24 "if2"
+ Name 33 "if3"
+ Name 41 "if4"
+ Name 47 "samp"
+ Name 72 "offset"
+ Name 98 "fragColor"
+ Decorate 47(samp) Flat
+ Decorate 72(offset) Flat
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+ 10: 6(float) Constant 0
+ 11: 7(fvec4) ConstantComposite 10 10 10 10
+ 12: TypePointer Input 6(float)
+ 13(if1): 12(ptr) Variable Input
+ 15: TypeInt 32 0
+ 16: 15(int) Constant 0
+ 17: TypePointer Function 6(float)
+ 22: TypeVector 6(float) 2
+ 23: TypePointer Input 22(fvec2)
+ 24(if2): 23(ptr) Variable Input
+ 31: TypeVector 6(float) 3
+ 32: TypePointer Input 31(fvec3)
+ 33(if3): 32(ptr) Variable Input
+ 40: TypePointer Input 7(fvec4)
+ 41(if4): 40(ptr) Variable Input
+ 45: TypeInt 32 1
+ 46: TypePointer Input 45(int)
+ 47(samp): 46(ptr) Variable Input
+ 72(offset): 23(ptr) Variable Input
+ 97: TypePointer Output 7(fvec4)
+ 98(fragColor): 97(ptr) Variable Output
+ 4(main): 2 Function None 3
+ 5: Label
+ 9(f4): 8(ptr) Variable Function
+ Store 9(f4) 11
+ 14: 6(float) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 13(if1)
+ 18: 17(ptr) AccessChain 9(f4) 16
+ 19: 6(float) Load 18
+ 20: 6(float) FAdd 19 14
+ 21: 17(ptr) AccessChain 9(f4) 16
+ Store 21 20
+ 25: 22(fvec2) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 24(if2)
+ 26: 7(fvec4) Load 9(f4)
+ 27: 22(fvec2) VectorShuffle 26 26 0 1
+ 28: 22(fvec2) FAdd 27 25
+ 29: 7(fvec4) Load 9(f4)
+ 30: 7(fvec4) VectorShuffle 29 28 4 5 2 3
+ Store 9(f4) 30
+ 34: 31(fvec3) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 33(if3)
+ 35: 7(fvec4) Load 9(f4)
+ 36: 31(fvec3) VectorShuffle 35 35 0 1 2
+ 37: 31(fvec3) FAdd 36 34
+ 38: 7(fvec4) Load 9(f4)
+ 39: 7(fvec4) VectorShuffle 38 37 4 5 6 3
+ Store 9(f4) 39
+ 42: 7(fvec4) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 41(if4)
+ 43: 7(fvec4) Load 9(f4)
+ 44: 7(fvec4) FAdd 43 42
+ Store 9(f4) 44
+ 48: 45(int) Load 47(samp)
+ 49: 6(float) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 13(if1) 48
+ 50: 17(ptr) AccessChain 9(f4) 16
+ 51: 6(float) Load 50
+ 52: 6(float) FAdd 51 49
+ 53: 17(ptr) AccessChain 9(f4) 16
+ Store 53 52
+ 54: 45(int) Load 47(samp)
+ 55: 22(fvec2) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 24(if2) 54
+ 56: 7(fvec4) Load 9(f4)
+ 57: 22(fvec2) VectorShuffle 56 56 0 1
+ 58: 22(fvec2) FAdd 57 55
+ 59: 7(fvec4) Load 9(f4)
+ 60: 7(fvec4) VectorShuffle 59 58 4 5 2 3
+ Store 9(f4) 60
+ 61: 45(int) Load 47(samp)
+ 62: 31(fvec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 33(if3) 61
+ 63: 7(fvec4) Load 9(f4)
+ 64: 31(fvec3) VectorShuffle 63 63 0 1 2
+ 65: 31(fvec3) FAdd 64 62
+ 66: 7(fvec4) Load 9(f4)
+ 67: 7(fvec4) VectorShuffle 66 65 4 5 6 3
+ Store 9(f4) 67
+ 68: 45(int) Load 47(samp)
+ 69: 7(fvec4) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 41(if4) 68
+ 70: 7(fvec4) Load 9(f4)
+ 71: 7(fvec4) FAdd 70 69
+ Store 9(f4) 71
+ 73: 22(fvec2) Load 72(offset)
+ 74: 6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 13(if1) 73
+ 75: 17(ptr) AccessChain 9(f4) 16
+ 76: 6(float) Load 75
+ 77: 6(float) FAdd 76 74
+ 78: 17(ptr) AccessChain 9(f4) 16
+ Store 78 77
+ 79: 22(fvec2) Load 72(offset)
+ 80: 22(fvec2) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 24(if2) 79
+ 81: 7(fvec4) Load 9(f4)
+ 82: 22(fvec2) VectorShuffle 81 81 0 1
+ 83: 22(fvec2) FAdd 82 80
+ 84: 7(fvec4) Load 9(f4)
+ 85: 7(fvec4) VectorShuffle 84 83 4 5 2 3
+ Store 9(f4) 85
+ 86: 22(fvec2) Load 72(offset)
+ 87: 31(fvec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 33(if3) 86
+ 88: 7(fvec4) Load 9(f4)
+ 89: 31(fvec3) VectorShuffle 88 88 0 1 2
+ 90: 31(fvec3) FAdd 89 87
+ 91: 7(fvec4) Load 9(f4)
+ 92: 7(fvec4) VectorShuffle 91 90 4 5 6 3
+ Store 9(f4) 92
+ 93: 22(fvec2) Load 72(offset)
+ 94: 7(fvec4) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 41(if4) 93
+ 95: 7(fvec4) Load 9(f4)
+ 96: 7(fvec4) FAdd 95 94
+ Store 9(f4) 96
+ 99: 7(fvec4) Load 9(f4)
+ Store 98(fragColor) 99
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.layoutNested.vert.out b/chromium/third_party/glslang/src/Test/baseResults/spv.layoutNested.vert.out
new file mode 100644
index 00000000000..4f3d67c146c
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.layoutNested.vert.out
@@ -0,0 +1,242 @@
+spv.layoutNested.vert
+Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 67
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Vertex 4 "main" 63 66
+ Source GLSL 450
+ Name 4 "main"
+ Name 14 "S"
+ MemberName 14(S) 0 "a"
+ MemberName 14(S) 1 "b"
+ MemberName 14(S) 2 "c"
+ Name 19 "Block140"
+ MemberName 19(Block140) 0 "u"
+ MemberName 19(Block140) 1 "s"
+ MemberName 19(Block140) 2 "v"
+ Name 21 "inst140"
+ Name 23 "S"
+ MemberName 23(S) 0 "a"
+ MemberName 23(S) 1 "b"
+ MemberName 23(S) 2 "c"
+ Name 26 "Block430"
+ MemberName 26(Block430) 0 "u"
+ MemberName 26(Block430) 1 "s"
+ MemberName 26(Block430) 2 "v"
+ Name 28 "inst430"
+ Name 29 "S"
+ MemberName 29(S) 0 "a"
+ MemberName 29(S) 1 "b"
+ MemberName 29(S) 2 "c"
+ Name 31 "s"
+ Name 32 "T"
+ MemberName 32(T) 0 "m"
+ MemberName 32(T) 1 "a"
+ Name 34 "t"
+ Name 35 "T"
+ MemberName 35(T) 0 "m"
+ MemberName 35(T) 1 "a"
+ Name 36 "Nestor"
+ MemberName 36(Nestor) 0 "nestorT"
+ Name 37 "Bt1"
+ MemberName 37(Bt1) 0 "nt"
+ Name 39 "Btn1"
+ Name 40 "T"
+ MemberName 40(T) 0 "m"
+ MemberName 40(T) 1 "a"
+ Name 41 "Nestor"
+ MemberName 41(Nestor) 0 "nestorT"
+ Name 42 "Bt2"
+ MemberName 42(Bt2) 0 "nt"
+ Name 44 "Btn2"
+ Name 45 "Bt3"
+ MemberName 45(Bt3) 0 "ntcol"
+ MemberName 45(Bt3) 1 "ntrow"
+ Name 47 "Btn3"
+ Name 48 "T"
+ MemberName 48(T) 0 "m"
+ MemberName 48(T) 1 "a"
+ Name 49 "Nestor"
+ MemberName 49(Nestor) 0 "nestorT"
+ Name 50 "bBt1"
+ MemberName 50(bBt1) 0 "nt"
+ Name 52 "bBtn1"
+ Name 53 "T"
+ MemberName 53(T) 0 "m"
+ MemberName 53(T) 1 "a"
+ Name 54 "Nestor"
+ MemberName 54(Nestor) 0 "nestorT"
+ Name 55 "bBt2"
+ MemberName 55(bBt2) 0 "nt"
+ Name 57 "bBtn2"
+ Name 58 "bBt3"
+ MemberName 58(bBt3) 0 "ntcol"
+ MemberName 58(bBt3) 1 "ntrow"
+ Name 60 "bBtn3"
+ Name 61 "S"
+ MemberName 61(S) 0 "a"
+ MemberName 61(S) 1 "b"
+ MemberName 61(S) 2 "c"
+ Name 63 "sout"
+ Name 64 "S"
+ MemberName 64(S) 0 "a"
+ MemberName 64(S) 1 "b"
+ MemberName 64(S) 2 "c"
+ Name 66 "soutinv"
+ Decorate 13 ArrayStride 32
+ MemberDecorate 14(S) 0 Offset 0
+ MemberDecorate 14(S) 1 ColMajor
+ MemberDecorate 14(S) 1 Offset 16
+ MemberDecorate 14(S) 1 MatrixStride 16
+ MemberDecorate 14(S) 2 Offset 144
+ Decorate 16 ArrayStride 160
+ Decorate 18 ArrayStride 480
+ MemberDecorate 19(Block140) 0 Offset 0
+ MemberDecorate 19(Block140) 1 Offset 16
+ MemberDecorate 19(Block140) 2 Offset 976
+ Decorate 19(Block140) Block
+ Decorate 21(inst140) DescriptorSet 0
+ Decorate 21(inst140) Binding 0
+ Decorate 22 ArrayStride 16
+ MemberDecorate 23(S) 0 Offset 0
+ MemberDecorate 23(S) 1 ColMajor
+ MemberDecorate 23(S) 1 Offset 16
+ MemberDecorate 23(S) 1 MatrixStride 8
+ MemberDecorate 23(S) 2 Offset 80
+ Decorate 24 ArrayStride 96
+ Decorate 25 ArrayStride 288
+ MemberDecorate 26(Block430) 0 Offset 0
+ MemberDecorate 26(Block430) 1 Offset 16
+ MemberDecorate 26(Block430) 2 Offset 592
+ Decorate 26(Block430) BufferBlock
+ Decorate 28(inst430) DescriptorSet 0
+ Decorate 28(inst430) Binding 1
+ MemberDecorate 35(T) 0 RowMajor
+ MemberDecorate 35(T) 0 Offset 0
+ MemberDecorate 35(T) 0 MatrixStride 16
+ MemberDecorate 35(T) 1 Offset 32
+ MemberDecorate 36(Nestor) 0 Offset 0
+ MemberDecorate 37(Bt1) 0 Offset 0
+ Decorate 37(Bt1) Block
+ Decorate 39(Btn1) DescriptorSet 1
+ Decorate 39(Btn1) Binding 0
+ MemberDecorate 40(T) 0 ColMajor
+ MemberDecorate 40(T) 0 Offset 0
+ MemberDecorate 40(T) 0 MatrixStride 16
+ MemberDecorate 40(T) 1 Offset 32
+ MemberDecorate 41(Nestor) 0 Offset 0
+ MemberDecorate 42(Bt2) 0 Offset 0
+ Decorate 42(Bt2) Block
+ Decorate 44(Btn2) DescriptorSet 1
+ Decorate 44(Btn2) Binding 0
+ MemberDecorate 45(Bt3) 0 Offset 0
+ MemberDecorate 45(Bt3) 1 Offset 48
+ Decorate 45(Bt3) Block
+ Decorate 47(Btn3) DescriptorSet 1
+ Decorate 47(Btn3) Binding 0
+ MemberDecorate 48(T) 0 RowMajor
+ MemberDecorate 48(T) 0 Offset 0
+ MemberDecorate 48(T) 0 MatrixStride 8
+ MemberDecorate 48(T) 1 Offset 16
+ MemberDecorate 49(Nestor) 0 Offset 0
+ MemberDecorate 50(bBt1) 0 Offset 0
+ Decorate 50(bBt1) BufferBlock
+ Decorate 52(bBtn1) DescriptorSet 1
+ Decorate 52(bBtn1) Binding 0
+ MemberDecorate 53(T) 0 ColMajor
+ MemberDecorate 53(T) 0 Offset 0
+ MemberDecorate 53(T) 0 MatrixStride 8
+ MemberDecorate 53(T) 1 Offset 16
+ MemberDecorate 54(Nestor) 0 Offset 0
+ MemberDecorate 55(bBt2) 0 Offset 0
+ Decorate 55(bBt2) BufferBlock
+ Decorate 57(bBtn2) DescriptorSet 1
+ Decorate 57(bBtn2) Binding 0
+ MemberDecorate 58(bBt3) 0 Offset 0
+ MemberDecorate 58(bBt3) 1 Offset 24
+ Decorate 58(bBt3) BufferBlock
+ Decorate 60(bBtn3) DescriptorSet 1
+ Decorate 60(bBtn3) Binding 0
+ MemberDecorate 61(S) 0 Flat
+ MemberDecorate 61(S) 1 Flat
+ MemberDecorate 61(S) 2 Flat
+ MemberDecorate 64(S) 0 Invariant
+ MemberDecorate 64(S) 1 Invariant
+ MemberDecorate 64(S) 2 Invariant
+ Decorate 66(soutinv) Invariant
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypeInt 32 0
+ 8: TypeVector 7(int) 3
+ 9: TypeFloat 32
+ 10: TypeVector 9(float) 2
+ 11: TypeMatrix 10(fvec2) 2
+ 12: 7(int) Constant 4
+ 13: TypeArray 11 12
+ 14(S): TypeStruct 8(ivec3) 13 7(int)
+ 15: 7(int) Constant 3
+ 16: TypeArray 14(S) 15
+ 17: 7(int) Constant 2
+ 18: TypeArray 16 17
+ 19(Block140): TypeStruct 6(int) 18 10(fvec2)
+ 20: TypePointer Uniform 19(Block140)
+ 21(inst140): 20(ptr) Variable Uniform
+ 22: TypeArray 11 12
+ 23(S): TypeStruct 8(ivec3) 22 7(int)
+ 24: TypeArray 23(S) 15
+ 25: TypeArray 24 17
+ 26(Block430): TypeStruct 6(int) 25 10(fvec2)
+ 27: TypePointer Uniform 26(Block430)
+ 28(inst430): 27(ptr) Variable Uniform
+ 29(S): TypeStruct 8(ivec3) 13 7(int)
+ 30: TypePointer Private 29(S)
+ 31(s): 30(ptr) Variable Private
+ 32(T): TypeStruct 11 6(int)
+ 33: TypePointer Private 32(T)
+ 34(t): 33(ptr) Variable Private
+ 35(T): TypeStruct 11 6(int)
+ 36(Nestor): TypeStruct 35(T)
+ 37(Bt1): TypeStruct 36(Nestor)
+ 38: TypePointer Uniform 37(Bt1)
+ 39(Btn1): 38(ptr) Variable Uniform
+ 40(T): TypeStruct 11 6(int)
+ 41(Nestor): TypeStruct 40(T)
+ 42(Bt2): TypeStruct 41(Nestor)
+ 43: TypePointer Uniform 42(Bt2)
+ 44(Btn2): 43(ptr) Variable Uniform
+ 45(Bt3): TypeStruct 41(Nestor) 36(Nestor)
+ 46: TypePointer Uniform 45(Bt3)
+ 47(Btn3): 46(ptr) Variable Uniform
+ 48(T): TypeStruct 11 6(int)
+ 49(Nestor): TypeStruct 48(T)
+ 50(bBt1): TypeStruct 49(Nestor)
+ 51: TypePointer Uniform 50(bBt1)
+ 52(bBtn1): 51(ptr) Variable Uniform
+ 53(T): TypeStruct 11 6(int)
+ 54(Nestor): TypeStruct 53(T)
+ 55(bBt2): TypeStruct 54(Nestor)
+ 56: TypePointer Uniform 55(bBt2)
+ 57(bBtn2): 56(ptr) Variable Uniform
+ 58(bBt3): TypeStruct 49(Nestor) 54(Nestor)
+ 59: TypePointer Uniform 58(bBt3)
+ 60(bBtn3): 59(ptr) Variable Uniform
+ 61(S): TypeStruct 8(ivec3) 13 7(int)
+ 62: TypePointer Output 61(S)
+ 63(sout): 62(ptr) Variable Output
+ 64(S): TypeStruct 8(ivec3) 13 7(int)
+ 65: TypePointer Output 64(S)
+ 66(soutinv): 65(ptr) Variable Output
+ 4(main): 2 Function None 3
+ 5: Label
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.length.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.length.frag.out
new file mode 100755
index 00000000000..81f98a61c2b
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.length.frag.out
@@ -0,0 +1,55 @@
+spv.length.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 33
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 14 26
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 140
+ Name 4 "main"
+ Name 9 "t"
+ Name 14 "v"
+ Name 26 "gl_FragColor"
+ Name 32 "u"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 2
+ 8: TypePointer Function 7(fvec2)
+ 10: TypeInt 32 0
+ 11: 10(int) Constant 2
+ 12: TypeArray 7(fvec2) 11
+ 13: TypePointer Input 12
+ 14(v): 13(ptr) Variable Input
+ 15: TypeInt 32 1
+ 16: 15(int) Constant 0
+ 17: TypePointer Input 7(fvec2)
+ 20: 15(int) Constant 1
+ 24: TypeVector 6(float) 4
+ 25: TypePointer Output 24(fvec4)
+26(gl_FragColor): 25(ptr) Variable Output
+ 27: 6(float) Constant 1106247680
+ 28: 24(fvec4) ConstantComposite 27 27 27 27
+ 29: 10(int) Constant 3
+ 30: TypeArray 24(fvec4) 29
+ 31: TypePointer Private 30
+ 32(u): 31(ptr) Variable Private
+ 4(main): 2 Function None 3
+ 5: Label
+ 9(t): 8(ptr) Variable Function
+ 18: 17(ptr) AccessChain 14(v) 16
+ 19: 7(fvec2) Load 18
+ 21: 17(ptr) AccessChain 14(v) 20
+ 22: 7(fvec2) Load 21
+ 23: 7(fvec2) FAdd 19 22
+ Store 9(t) 23
+ Store 26(gl_FragColor) 28
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.localAggregates.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.localAggregates.frag.out
new file mode 100755
index 00000000000..cd8afedca0d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.localAggregates.frag.out
@@ -0,0 +1,256 @@
+spv.localAggregates.frag
+Warning, version 400 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 143
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 18 43 93 101 111 138 142
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 400
+ Name 4 "main"
+ Name 8 "s1"
+ MemberName 8(s1) 0 "i"
+ MemberName 8(s1) 1 "f"
+ Name 10 "s2"
+ MemberName 10(s2) 0 "i"
+ MemberName 10(s2) 1 "f"
+ MemberName 10(s2) 2 "s1_1"
+ MemberName 10(s2) 3 "bleh"
+ Name 12 "locals2"
+ Name 13 "s1"
+ MemberName 13(s1) 0 "i"
+ MemberName 13(s1) 1 "f"
+ Name 14 "s2"
+ MemberName 14(s2) 0 "i"
+ MemberName 14(s2) 1 "f"
+ MemberName 14(s2) 2 "s1_1"
+ MemberName 14(s2) 3 "bleh"
+ Name 15 "s1"
+ MemberName 15(s1) 0 "i"
+ MemberName 15(s1) 1 "f"
+ Name 16 "s3"
+ MemberName 16(s3) 0 "s2_1"
+ MemberName 16(s3) 1 "i"
+ MemberName 16(s3) 2 "f"
+ MemberName 16(s3) 3 "s1_1"
+ Name 18 "foo3"
+ Name 39 "localFArray"
+ Name 43 "coord"
+ Name 52 "localIArray"
+ Name 71 "x"
+ Name 73 "localArray"
+ Name 78 "i"
+ Name 87 "a"
+ Name 93 "condition"
+ Name 101 "color"
+ Name 111 "gl_FragColor"
+ Name 131 "samp2D"
+ Name 136 "s1"
+ MemberName 136(s1) 0 "i"
+ MemberName 136(s1) 1 "f"
+ Name 138 "foo"
+ Name 139 "s1"
+ MemberName 139(s1) 0 "i"
+ MemberName 139(s1) 1 "f"
+ Name 140 "s2"
+ MemberName 140(s2) 0 "i"
+ MemberName 140(s2) 1 "f"
+ MemberName 140(s2) 2 "s1_1"
+ MemberName 140(s2) 3 "bleh"
+ Name 142 "foo2"
+ MemberDecorate 16(s3) 0 Flat
+ MemberDecorate 16(s3) 1 Flat
+ MemberDecorate 16(s3) 2 Flat
+ MemberDecorate 16(s3) 3 Flat
+ Decorate 93(condition) Flat
+ Decorate 131(samp2D) DescriptorSet 0
+ MemberDecorate 136(s1) 0 Flat
+ MemberDecorate 136(s1) 1 Flat
+ MemberDecorate 140(s2) 0 Flat
+ MemberDecorate 140(s2) 1 Flat
+ MemberDecorate 140(s2) 2 Flat
+ MemberDecorate 140(s2) 3 Flat
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypeFloat 32
+ 8(s1): TypeStruct 6(int) 7(float)
+ 9: TypeVector 7(float) 4
+ 10(s2): TypeStruct 6(int) 7(float) 8(s1) 9(fvec4)
+ 11: TypePointer Function 10(s2)
+ 13(s1): TypeStruct 6(int) 7(float)
+ 14(s2): TypeStruct 6(int) 7(float) 13(s1) 9(fvec4)
+ 15(s1): TypeStruct 6(int) 7(float)
+ 16(s3): TypeStruct 14(s2) 6(int) 7(float) 15(s1)
+ 17: TypePointer Input 16(s3)
+ 18(foo3): 17(ptr) Variable Input
+ 19: 6(int) Constant 0
+ 20: TypePointer Input 14(s2)
+ 23: TypePointer Input 6(int)
+ 26: TypeBool
+ 30: 6(int) Constant 2
+ 31: 6(int) Constant 1
+ 32: 7(float) Constant 1065353216
+ 33: TypePointer Function 7(float)
+ 35: TypeInt 32 0
+ 36: 35(int) Constant 16
+ 37: TypeArray 7(float) 36
+ 38: TypePointer Function 37
+ 40: 6(int) Constant 4
+ 41: TypeVector 7(float) 2
+ 42: TypePointer Input 41(fvec2)
+ 43(coord): 42(ptr) Variable Input
+ 44: 35(int) Constant 0
+ 45: TypePointer Input 7(float)
+ 49: 35(int) Constant 8
+ 50: TypeArray 6(int) 49
+ 51: TypePointer Function 50
+ 55: TypePointer Function 6(int)
+ 72: 6(int) Constant 5
+ 85: 6(int) Constant 16
+ 89: 7(float) Constant 0
+ 93(condition): 23(ptr) Variable Input
+ 99: 6(int) Constant 3
+ 100: TypePointer Input 9(fvec4)
+ 101(color): 100(ptr) Variable Input
+ 103: TypePointer Function 9(fvec4)
+ 105: 35(int) Constant 1
+ 108: 35(int) Constant 2
+ 110: TypePointer Output 9(fvec4)
+111(gl_FragColor): 110(ptr) Variable Output
+ 128: TypeImage 7(float) 2D sampled format:Unknown
+ 129: TypeSampledImage 128
+ 130: TypePointer UniformConstant 129
+ 131(samp2D): 130(ptr) Variable UniformConstant
+ 136(s1): TypeStruct 6(int) 7(float)
+ 137: TypePointer Input 136(s1)
+ 138(foo): 137(ptr) Variable Input
+ 139(s1): TypeStruct 6(int) 7(float)
+ 140(s2): TypeStruct 6(int) 7(float) 139(s1) 9(fvec4)
+ 141: TypePointer Input 140(s2)
+ 142(foo2): 141(ptr) Variable Input
+ 4(main): 2 Function None 3
+ 5: Label
+ 12(locals2): 11(ptr) Variable Function
+ 39(localFArray): 38(ptr) Variable Function
+ 52(localIArray): 51(ptr) Variable Function
+ 71(x): 55(ptr) Variable Function
+ 73(localArray): 38(ptr) Variable Function
+ 78(i): 55(ptr) Variable Function
+ 87(a): 38(ptr) Variable Function
+ 21: 20(ptr) AccessChain 18(foo3) 19
+ 22: 14(s2) Load 21
+ Store 12(locals2) 22
+ 24: 23(ptr) AccessChain 18(foo3) 19 19
+ 25: 6(int) Load 24
+ 27: 26(bool) SGreaterThan 25 19
+ SelectionMerge 29 None
+ BranchConditional 27 28 57
+ 28: Label
+ 34: 33(ptr) AccessChain 12(locals2) 30 31
+ Store 34 32
+ 46: 45(ptr) AccessChain 43(coord) 44
+ 47: 7(float) Load 46
+ 48: 33(ptr) AccessChain 39(localFArray) 40
+ Store 48 47
+ 53: 23(ptr) AccessChain 18(foo3) 19 19
+ 54: 6(int) Load 53
+ 56: 55(ptr) AccessChain 52(localIArray) 30
+ Store 56 54
+ Branch 29
+ 57: Label
+ 58: 45(ptr) AccessChain 43(coord) 44
+ 59: 7(float) Load 58
+ 60: 33(ptr) AccessChain 12(locals2) 30 31
+ Store 60 59
+ 61: 33(ptr) AccessChain 39(localFArray) 40
+ Store 61 32
+ 62: 55(ptr) AccessChain 52(localIArray) 30
+ Store 62 19
+ Branch 29
+ 29: Label
+ 63: 55(ptr) AccessChain 52(localIArray) 30
+ 64: 6(int) Load 63
+ 65: 26(bool) IEqual 64 19
+ SelectionMerge 67 None
+ BranchConditional 65 66 67
+ 66: Label
+ 68: 33(ptr) AccessChain 39(localFArray) 40
+ 69: 7(float) Load 68
+ 70: 7(float) FAdd 69 32
+ Store 68 70
+ Branch 67
+ 67: Label
+ Store 71(x) 72
+ 74: 6(int) Load 71(x)
+ 75: 45(ptr) AccessChain 43(coord) 44
+ 76: 7(float) Load 75
+ 77: 33(ptr) AccessChain 73(localArray) 74
+ Store 77 76
+ Store 78(i) 19
+ Branch 79
+ 79: Label
+ LoopMerge 81 82 None
+ Branch 83
+ 83: Label
+ 84: 6(int) Load 78(i)
+ 86: 26(bool) SLessThan 84 85
+ BranchConditional 86 80 81
+ 80: Label
+ 88: 6(int) Load 78(i)
+ 90: 33(ptr) AccessChain 87(a) 88
+ Store 90 89
+ Branch 82
+ 82: Label
+ 91: 6(int) Load 78(i)
+ 92: 6(int) IAdd 91 31
+ Store 78(i) 92
+ Branch 79
+ 81: Label
+ 94: 6(int) Load 93(condition)
+ 95: 26(bool) IEqual 94 31
+ SelectionMerge 97 None
+ BranchConditional 95 96 97
+ 96: Label
+ 98: 37 Load 73(localArray)
+ Store 87(a) 98
+ Branch 97
+ 97: Label
+ 102: 9(fvec4) Load 101(color)
+ 104: 103(ptr) AccessChain 12(locals2) 99
+ Store 104 102
+ 106: 45(ptr) AccessChain 43(coord) 105
+ 107: 7(float) Load 106
+ 109: 33(ptr) AccessChain 12(locals2) 99 108
+ Store 109 107
+ 112: 103(ptr) AccessChain 12(locals2) 99
+ 113: 9(fvec4) Load 112
+ 114: 33(ptr) AccessChain 39(localFArray) 40
+ 115: 7(float) Load 114
+ 116: 33(ptr) AccessChain 12(locals2) 30 31
+ 117: 7(float) Load 116
+ 118: 7(float) FAdd 115 117
+ 119: 6(int) Load 71(x)
+ 120: 33(ptr) AccessChain 73(localArray) 119
+ 121: 7(float) Load 120
+ 122: 7(float) FAdd 118 121
+ 123: 6(int) Load 71(x)
+ 124: 33(ptr) AccessChain 87(a) 123
+ 125: 7(float) Load 124
+ 126: 7(float) FAdd 122 125
+ 127: 9(fvec4) VectorTimesScalar 113 126
+ 132: 129 Load 131(samp2D)
+ 133: 41(fvec2) Load 43(coord)
+ 134: 9(fvec4) ImageSampleImplicitLod 132 133
+ 135: 9(fvec4) FMul 127 134
+ Store 111(gl_FragColor) 135
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.loops.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.loops.frag.out
new file mode 100755
index 00000000000..952f7941790
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.loops.frag.out
@@ -0,0 +1,1108 @@
+spv.loops.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 725
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 11 54 57 71 106 114 118 131 137 157 160 171 308 344 350 366 380 418 450 469 512 544 552 562 588 615 624 629 649 687 698
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 140
+ Name 4 "main"
+ Name 9 "color"
+ Name 11 "BaseColor"
+ Name 54 "d"
+ Name 57 "bigColor"
+ Name 71 "bigColor1_1"
+ Name 106 "d2"
+ Name 114 "d3"
+ Name 118 "bigColor1_2"
+ Name 131 "bigColor1_3"
+ Name 137 "d4"
+ Name 148 "i"
+ Name 157 "Count"
+ Name 160 "bigColor2"
+ Name 171 "bigColor3"
+ Name 179 "i"
+ Name 195 "i"
+ Name 231 "i"
+ Name 254 "i"
+ Name 279 "i"
+ Name 308 "bigColor4"
+ Name 344 "bigColor5"
+ Name 350 "d5"
+ Name 366 "d6"
+ Name 380 "bigColor6"
+ Name 418 "d7"
+ Name 450 "bigColor7"
+ Name 469 "d8"
+ Name 512 "d9"
+ Name 544 "d10"
+ Name 552 "d11"
+ Name 562 "d12"
+ Name 588 "bigColor8"
+ Name 615 "gl_FragColor"
+ Name 624 "d14"
+ Name 629 "d15"
+ Name 649 "d16"
+ Name 687 "d18"
+ Name 698 "d17"
+ Decorate 157(Count) Flat
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+ 10: TypePointer Input 7(fvec4)
+ 11(BaseColor): 10(ptr) Variable Input
+ 18: TypeBool
+ 19: 18(bool) ConstantTrue
+ 20: TypeInt 32 0
+ 21: 20(int) Constant 0
+ 22: TypePointer Function 6(float)
+ 25: 6(float) Constant 1051260355
+ 29: 7(fvec4) ConstantComposite 25 25 25 25
+ 35: 6(float) Constant 1059648963
+ 39: 7(fvec4) ConstantComposite 35 35 35 35
+ 53: TypePointer Input 6(float)
+ 54(d): 53(ptr) Variable Input
+ 57(bigColor): 10(ptr) Variable Input
+ 66: 20(int) Constant 2
+ 71(bigColor1_1): 10(ptr) Variable Input
+ 75: 20(int) Constant 3
+ 93: 6(float) Constant 1109917696
+ 96: 6(float) Constant 1065353216
+ 106(d2): 53(ptr) Variable Input
+ 111: 20(int) Constant 1
+ 114(d3): 53(ptr) Variable Input
+118(bigColor1_2): 10(ptr) Variable Input
+131(bigColor1_3): 10(ptr) Variable Input
+ 137(d4): 53(ptr) Variable Input
+ 146: TypeInt 32 1
+ 147: TypePointer Function 146(int)
+ 149: 146(int) Constant 0
+ 156: TypePointer Input 146(int)
+ 157(Count): 156(ptr) Variable Input
+ 160(bigColor2): 10(ptr) Variable Input
+ 165: 146(int) Constant 1
+ 171(bigColor3): 10(ptr) Variable Input
+ 186: 146(int) Constant 42
+ 202: 146(int) Constant 100
+ 206: 6(float) Constant 1101004800
+ 238: 146(int) Constant 120
+ 308(bigColor4): 10(ptr) Variable Input
+ 344(bigColor5): 10(ptr) Variable Input
+ 350(d5): 53(ptr) Variable Input
+ 366(d6): 53(ptr) Variable Input
+ 380(bigColor6): 10(ptr) Variable Input
+ 418(d7): 53(ptr) Variable Input
+ 445: 6(float) Constant 0
+ 450(bigColor7): 10(ptr) Variable Input
+ 469(d8): 53(ptr) Variable Input
+ 486: 6(float) Constant 1073741824
+ 512(d9): 53(ptr) Variable Input
+ 528: 6(float) Constant 1084227584
+ 544(d10): 53(ptr) Variable Input
+ 552(d11): 53(ptr) Variable Input
+ 562(d12): 53(ptr) Variable Input
+ 586: 6(float) Constant 1092616192
+ 588(bigColor8): 10(ptr) Variable Input
+ 614: TypePointer Output 7(fvec4)
+615(gl_FragColor): 614(ptr) Variable Output
+ 624(d14): 53(ptr) Variable Input
+ 629(d15): 53(ptr) Variable Input
+ 649(d16): 53(ptr) Variable Input
+ 687(d18): 53(ptr) Variable Input
+ 698(d17): 53(ptr) Variable Input
+ 4(main): 2 Function None 3
+ 5: Label
+ 9(color): 8(ptr) Variable Function
+ 148(i): 147(ptr) Variable Function
+ 179(i): 147(ptr) Variable Function
+ 195(i): 147(ptr) Variable Function
+ 231(i): 147(ptr) Variable Function
+ 254(i): 147(ptr) Variable Function
+ 279(i): 147(ptr) Variable Function
+ 12: 7(fvec4) Load 11(BaseColor)
+ Store 9(color) 12
+ Branch 13
+ 13: Label
+ LoopMerge 15 16 None
+ Branch 17
+ 17: Label
+ BranchConditional 19 14 15
+ 14: Label
+ 23: 22(ptr) AccessChain 9(color) 21
+ 24: 6(float) Load 23
+ 26: 18(bool) FOrdLessThan 24 25
+ SelectionMerge 28 None
+ BranchConditional 26 27 28
+ 27: Label
+ 30: 7(fvec4) Load 9(color)
+ 31: 7(fvec4) FAdd 30 29
+ Store 9(color) 31
+ Branch 15
+ 28: Label
+ 33: 22(ptr) AccessChain 9(color) 21
+ 34: 6(float) Load 33
+ 36: 18(bool) FOrdLessThan 34 35
+ SelectionMerge 38 None
+ BranchConditional 36 37 38
+ 37: Label
+ 40: 7(fvec4) Load 9(color)
+ 41: 7(fvec4) FAdd 40 39
+ Store 9(color) 41
+ Branch 15
+ 38: Label
+ 43: 7(fvec4) Load 9(color)
+ 44: 7(fvec4) FAdd 43 29
+ Store 9(color) 44
+ Branch 15
+ 16: Label
+ Branch 13
+ 15: Label
+ Branch 46
+ 46: Label
+ LoopMerge 48 49 None
+ Branch 50
+ 50: Label
+ 51: 22(ptr) AccessChain 9(color) 21
+ 52: 6(float) Load 51
+ 55: 6(float) Load 54(d)
+ 56: 18(bool) FOrdLessThan 52 55
+ BranchConditional 56 47 48
+ 47: Label
+ 58: 7(fvec4) Load 57(bigColor)
+ 59: 7(fvec4) Load 9(color)
+ 60: 7(fvec4) FAdd 59 58
+ Store 9(color) 60
+ Branch 49
+ 49: Label
+ Branch 46
+ 48: Label
+ Branch 61
+ 61: Label
+ LoopMerge 63 64 None
+ Branch 65
+ 65: Label
+ 67: 22(ptr) AccessChain 9(color) 66
+ 68: 6(float) Load 67
+ 69: 6(float) Load 54(d)
+ 70: 18(bool) FOrdLessThan 68 69
+ BranchConditional 70 62 63
+ 62: Label
+ 72: 7(fvec4) Load 71(bigColor1_1)
+ 73: 7(fvec4) Load 9(color)
+ 74: 7(fvec4) FAdd 73 72
+ Store 9(color) 74
+ 76: 22(ptr) AccessChain 9(color) 75
+ 77: 6(float) Load 76
+ 78: 6(float) Load 54(d)
+ 79: 18(bool) FOrdLessThan 77 78
+ SelectionMerge 81 None
+ BranchConditional 79 80 81
+ 80: Label
+ Branch 64
+ 81: Label
+ 83: 7(fvec4) Load 71(bigColor1_1)
+ 84: 7(fvec4) Load 9(color)
+ 85: 7(fvec4) FAdd 84 83
+ Store 9(color) 85
+ Branch 64
+ 64: Label
+ Branch 61
+ 63: Label
+ Branch 86
+ 86: Label
+ LoopMerge 88 89 None
+ Branch 90
+ 90: Label
+ 91: 22(ptr) AccessChain 9(color) 21
+ 92: 6(float) Load 91
+ 94: 18(bool) FOrdLessThan 92 93
+ BranchConditional 94 87 88
+ 87: Label
+ 95: 7(fvec4) Load 9(color)
+ 97: 7(fvec4) CompositeConstruct 96 96 96 96
+ 98: 7(fvec4) FAdd 95 97
+ Store 9(color) 98
+ Branch 89
+ 89: Label
+ Branch 86
+ 88: Label
+ Branch 99
+ 99: Label
+ LoopMerge 101 102 None
+ Branch 103
+ 103: Label
+ 104: 22(ptr) AccessChain 9(color) 75
+ 105: 6(float) Load 104
+ 107: 6(float) Load 106(d2)
+ 108: 18(bool) FOrdLessThan 105 107
+ SelectionMerge 110 None
+ BranchConditional 108 109 110
+ 109: Label
+ 112: 22(ptr) AccessChain 9(color) 111
+ 113: 6(float) Load 112
+ 115: 6(float) Load 114(d3)
+ 116: 18(bool) FOrdLessThan 113 115
+ Branch 110
+ 110: Label
+ 117: 18(bool) Phi 108 103 116 109
+ BranchConditional 117 100 101
+ 100: Label
+ 119: 7(fvec4) Load 118(bigColor1_2)
+ 120: 7(fvec4) Load 9(color)
+ 121: 7(fvec4) FAdd 120 119
+ Store 9(color) 121
+ Branch 102
+ 102: Label
+ Branch 99
+ 101: Label
+ Branch 122
+ 122: Label
+ LoopMerge 124 125 None
+ Branch 126
+ 126: Label
+ 127: 22(ptr) AccessChain 9(color) 66
+ 128: 6(float) Load 127
+ 129: 6(float) Load 114(d3)
+ 130: 18(bool) FOrdLessThan 128 129
+ BranchConditional 130 123 124
+ 123: Label
+ 132: 7(fvec4) Load 131(bigColor1_3)
+ 133: 7(fvec4) Load 9(color)
+ 134: 7(fvec4) FAdd 133 132
+ Store 9(color) 134
+ 135: 22(ptr) AccessChain 9(color) 111
+ 136: 6(float) Load 135
+ 138: 6(float) Load 137(d4)
+ 139: 18(bool) FOrdLessThan 136 138
+ SelectionMerge 141 None
+ BranchConditional 139 140 141
+ 140: Label
+ Branch 124
+ 141: Label
+ 143: 7(fvec4) Load 131(bigColor1_3)
+ 144: 7(fvec4) Load 9(color)
+ 145: 7(fvec4) FAdd 144 143
+ Store 9(color) 145
+ Branch 125
+ 125: Label
+ Branch 122
+ 124: Label
+ Store 148(i) 149
+ Branch 150
+ 150: Label
+ LoopMerge 152 153 None
+ Branch 154
+ 154: Label
+ 155: 146(int) Load 148(i)
+ 158: 146(int) Load 157(Count)
+ 159: 18(bool) SLessThan 155 158
+ BranchConditional 159 151 152
+ 151: Label
+ 161: 7(fvec4) Load 160(bigColor2)
+ 162: 7(fvec4) Load 9(color)
+ 163: 7(fvec4) FAdd 162 161
+ Store 9(color) 163
+ Branch 153
+ 153: Label
+ 164: 146(int) Load 148(i)
+ 166: 146(int) IAdd 164 165
+ Store 148(i) 166
+ Branch 150
+ 152: Label
+ Branch 167
+ 167: Label
+ LoopMerge 169 170 None
+ Branch 168
+ 168: Label
+ 172: 7(fvec4) Load 171(bigColor3)
+ 173: 7(fvec4) Load 9(color)
+ 174: 7(fvec4) FAdd 173 172
+ Store 9(color) 174
+ Branch 170
+ 170: Label
+ 175: 22(ptr) AccessChain 9(color) 21
+ 176: 6(float) Load 175
+ 177: 6(float) Load 106(d2)
+ 178: 18(bool) FOrdLessThan 176 177
+ BranchConditional 178 167 169
+ 169: Label
+ Store 179(i) 149
+ Branch 180
+ 180: Label
+ LoopMerge 182 183 None
+ Branch 184
+ 184: Label
+ 185: 146(int) Load 179(i)
+ 187: 18(bool) SLessThan 185 186
+ BranchConditional 187 181 182
+ 181: Label
+ 188: 6(float) Load 114(d3)
+ 189: 22(ptr) AccessChain 9(color) 66
+ 190: 6(float) Load 189
+ 191: 6(float) FAdd 190 188
+ 192: 22(ptr) AccessChain 9(color) 66
+ Store 192 191
+ Branch 183
+ 183: Label
+ 193: 146(int) Load 179(i)
+ 194: 146(int) IAdd 193 165
+ Store 179(i) 194
+ Branch 180
+ 182: Label
+ Store 195(i) 149
+ Branch 196
+ 196: Label
+ LoopMerge 198 199 None
+ Branch 200
+ 200: Label
+ 201: 146(int) Load 195(i)
+ 203: 18(bool) SLessThan 201 202
+ BranchConditional 203 197 198
+ 197: Label
+ 204: 22(ptr) AccessChain 9(color) 66
+ 205: 6(float) Load 204
+ 207: 18(bool) FOrdLessThan 205 206
+ SelectionMerge 209 None
+ BranchConditional 207 208 213
+ 208: Label
+ 210: 22(ptr) AccessChain 9(color) 21
+ 211: 6(float) Load 210
+ 212: 6(float) FAdd 211 96
+ Store 210 212
+ Branch 209
+ 213: Label
+ 214: 22(ptr) AccessChain 9(color) 111
+ 215: 6(float) Load 214
+ 216: 6(float) FAdd 215 96
+ Store 214 216
+ Branch 209
+ 209: Label
+ 217: 22(ptr) AccessChain 9(color) 75
+ 218: 6(float) Load 217
+ 219: 18(bool) FOrdLessThan 218 206
+ SelectionMerge 221 None
+ BranchConditional 219 220 221
+ 220: Label
+ 222: 22(ptr) AccessChain 9(color) 66
+ 223: 6(float) Load 222
+ 224: 22(ptr) AccessChain 9(color) 111
+ 225: 6(float) Load 224
+ 226: 18(bool) FOrdGreaterThan 223 225
+ SelectionMerge 228 None
+ BranchConditional 226 227 228
+ 227: Label
+ Branch 228
+ 228: Label
+ Branch 221
+ 221: Label
+ Branch 199
+ 199: Label
+ 229: 146(int) Load 195(i)
+ 230: 146(int) IAdd 229 165
+ Store 195(i) 230
+ Branch 196
+ 198: Label
+ Store 231(i) 149
+ Branch 232
+ 232: Label
+ LoopMerge 234 235 None
+ Branch 236
+ 236: Label
+ 237: 146(int) Load 231(i)
+ 239: 18(bool) SLessThan 237 238
+ BranchConditional 239 233 234
+ 233: Label
+ 240: 22(ptr) AccessChain 9(color) 66
+ 241: 6(float) Load 240
+ 242: 18(bool) FOrdLessThan 241 206
+ SelectionMerge 244 None
+ BranchConditional 242 243 248
+ 243: Label
+ 245: 22(ptr) AccessChain 9(color) 21
+ 246: 6(float) Load 245
+ 247: 6(float) FAdd 246 96
+ Store 245 247
+ Branch 244
+ 248: Label
+ 249: 22(ptr) AccessChain 9(color) 111
+ 250: 6(float) Load 249
+ 251: 6(float) FAdd 250 96
+ Store 249 251
+ Branch 244
+ 244: Label
+ Branch 235
+ 235: Label
+ 252: 146(int) Load 231(i)
+ 253: 146(int) IAdd 252 165
+ Store 231(i) 253
+ Branch 232
+ 234: Label
+ Store 254(i) 149
+ Branch 255
+ 255: Label
+ LoopMerge 257 258 None
+ Branch 259
+ 259: Label
+ 260: 146(int) Load 254(i)
+ 261: 18(bool) SLessThan 260 186
+ BranchConditional 261 256 257
+ 256: Label
+ 262: 6(float) Load 114(d3)
+ 263: 22(ptr) AccessChain 9(color) 66
+ 264: 6(float) Load 263
+ 265: 6(float) FAdd 264 262
+ 266: 22(ptr) AccessChain 9(color) 66
+ Store 266 265
+ 267: 22(ptr) AccessChain 9(color) 21
+ 268: 6(float) Load 267
+ 269: 6(float) Load 137(d4)
+ 270: 18(bool) FOrdLessThan 268 269
+ SelectionMerge 272 None
+ BranchConditional 270 271 272
+ 271: Label
+ Branch 258
+ 272: Label
+ 274: 22(ptr) AccessChain 9(color) 75
+ 275: 6(float) Load 274
+ 276: 6(float) FAdd 275 96
+ Store 274 276
+ Branch 258
+ 258: Label
+ 277: 146(int) Load 254(i)
+ 278: 146(int) IAdd 277 165
+ Store 254(i) 278
+ Branch 255
+ 257: Label
+ Store 279(i) 149
+ Branch 280
+ 280: Label
+ LoopMerge 282 283 None
+ Branch 284
+ 284: Label
+ 285: 146(int) Load 279(i)
+ 286: 18(bool) SLessThan 285 186
+ BranchConditional 286 281 282
+ 281: Label
+ 287: 6(float) Load 114(d3)
+ 288: 22(ptr) AccessChain 9(color) 66
+ 289: 6(float) Load 288
+ 290: 6(float) FAdd 289 287
+ 291: 22(ptr) AccessChain 9(color) 66
+ Store 291 290
+ 292: 22(ptr) AccessChain 9(color) 21
+ 293: 6(float) Load 292
+ 294: 6(float) Load 137(d4)
+ 295: 18(bool) FOrdLessThan 293 294
+ SelectionMerge 297 None
+ BranchConditional 295 296 297
+ 296: Label
+ Branch 282
+ 297: Label
+ 299: 22(ptr) AccessChain 9(color) 75
+ 300: 6(float) Load 299
+ 301: 6(float) FAdd 300 96
+ Store 299 301
+ Branch 283
+ 283: Label
+ 302: 146(int) Load 279(i)
+ 303: 146(int) IAdd 302 165
+ Store 279(i) 303
+ Branch 280
+ 282: Label
+ Branch 304
+ 304: Label
+ LoopMerge 306 307 None
+ Branch 305
+ 305: Label
+ 309: 7(fvec4) Load 308(bigColor4)
+ 310: 7(fvec4) Load 9(color)
+ 311: 7(fvec4) FAdd 310 309
+ Store 9(color) 311
+ 312: 22(ptr) AccessChain 9(color) 21
+ 313: 6(float) Load 312
+ 314: 6(float) Load 137(d4)
+ 315: 18(bool) FOrdLessThan 313 314
+ SelectionMerge 317 None
+ BranchConditional 315 316 317
+ 316: Label
+ Branch 307
+ 317: Label
+ 319: 22(ptr) AccessChain 9(color) 111
+ 320: 6(float) Load 319
+ 321: 6(float) Load 137(d4)
+ 322: 18(bool) FOrdLessThan 320 321
+ SelectionMerge 324 None
+ BranchConditional 322 323 330
+ 323: Label
+ 325: 6(float) Load 137(d4)
+ 326: 22(ptr) AccessChain 9(color) 111
+ 327: 6(float) Load 326
+ 328: 6(float) FAdd 327 325
+ 329: 22(ptr) AccessChain 9(color) 111
+ Store 329 328
+ Branch 324
+ 330: Label
+ 331: 6(float) Load 137(d4)
+ 332: 22(ptr) AccessChain 9(color) 21
+ 333: 6(float) Load 332
+ 334: 6(float) FAdd 333 331
+ 335: 22(ptr) AccessChain 9(color) 21
+ Store 335 334
+ Branch 324
+ 324: Label
+ Branch 307
+ 307: Label
+ 336: 22(ptr) AccessChain 9(color) 66
+ 337: 6(float) Load 336
+ 338: 6(float) Load 137(d4)
+ 339: 18(bool) FOrdLessThan 337 338
+ BranchConditional 339 304 306
+ 306: Label
+ Branch 340
+ 340: Label
+ LoopMerge 342 343 None
+ Branch 341
+ 341: Label
+ 345: 7(fvec4) Load 344(bigColor5)
+ 346: 7(fvec4) Load 9(color)
+ 347: 7(fvec4) FAdd 346 345
+ Store 9(color) 347
+ 348: 22(ptr) AccessChain 9(color) 111
+ 349: 6(float) Load 348
+ 351: 6(float) Load 350(d5)
+ 352: 18(bool) FOrdLessThan 349 351
+ SelectionMerge 354 None
+ BranchConditional 352 353 354
+ 353: Label
+ 355: 6(float) Load 350(d5)
+ 356: 22(ptr) AccessChain 9(color) 111
+ 357: 6(float) Load 356
+ 358: 6(float) FAdd 357 355
+ 359: 22(ptr) AccessChain 9(color) 111
+ Store 359 358
+ Branch 354
+ 354: Label
+ Branch 343
+ 343: Label
+ 360: 22(ptr) AccessChain 9(color) 21
+ 361: 6(float) Load 360
+ 362: 6(float) Load 350(d5)
+ 363: 18(bool) FOrdLessThan 361 362
+ BranchConditional 363 340 342
+ 342: Label
+ 364: 22(ptr) AccessChain 9(color) 21
+ 365: 6(float) Load 364
+ 367: 6(float) Load 366(d6)
+ 368: 18(bool) FOrdLessThan 365 367
+ SelectionMerge 370 None
+ BranchConditional 368 369 384
+ 369: Label
+ Branch 371
+ 371: Label
+ LoopMerge 373 374 None
+ Branch 375
+ 375: Label
+ 376: 22(ptr) AccessChain 9(color) 111
+ 377: 6(float) Load 376
+ 378: 6(float) Load 366(d6)
+ 379: 18(bool) FOrdLessThan 377 378
+ BranchConditional 379 372 373
+ 372: Label
+ 381: 7(fvec4) Load 380(bigColor6)
+ 382: 7(fvec4) Load 9(color)
+ 383: 7(fvec4) FAdd 382 381
+ Store 9(color) 383
+ Branch 374
+ 374: Label
+ Branch 371
+ 373: Label
+ Branch 370
+ 384: Label
+ Branch 385
+ 385: Label
+ LoopMerge 387 388 None
+ Branch 389
+ 389: Label
+ 390: 22(ptr) AccessChain 9(color) 66
+ 391: 6(float) Load 390
+ 392: 6(float) Load 366(d6)
+ 393: 18(bool) FOrdLessThan 391 392
+ BranchConditional 393 386 387
+ 386: Label
+ 394: 53(ptr) AccessChain 380(bigColor6) 66
+ 395: 6(float) Load 394
+ 396: 22(ptr) AccessChain 9(color) 66
+ 397: 6(float) Load 396
+ 398: 6(float) FAdd 397 395
+ 399: 22(ptr) AccessChain 9(color) 66
+ Store 399 398
+ Branch 388
+ 388: Label
+ Branch 385
+ 387: Label
+ Branch 370
+ 370: Label
+ 400: 22(ptr) AccessChain 9(color) 21
+ 401: 6(float) Load 400
+ 402: 6(float) Load 366(d6)
+ 403: 18(bool) FOrdLessThan 401 402
+ SelectionMerge 405 None
+ BranchConditional 403 404 424
+ 404: Label
+ Branch 406
+ 406: Label
+ LoopMerge 408 409 None
+ Branch 410
+ 410: Label
+ 411: 22(ptr) AccessChain 9(color) 111
+ 412: 6(float) Load 411
+ 413: 6(float) Load 366(d6)
+ 414: 18(bool) FOrdLessThan 412 413
+ BranchConditional 414 407 408
+ 407: Label
+ 415: 7(fvec4) Load 380(bigColor6)
+ 416: 7(fvec4) Load 9(color)
+ 417: 7(fvec4) FAdd 416 415
+ Store 9(color) 417
+ 419: 6(float) Load 418(d7)
+ 420: 18(bool) FOrdLessThan 419 96
+ SelectionMerge 422 None
+ BranchConditional 420 421 422
+ 421: Label
+ Branch 408
+ 422: Label
+ Branch 409
+ 409: Label
+ Branch 406
+ 408: Label
+ Branch 405
+ 424: Label
+ Branch 425
+ 425: Label
+ LoopMerge 427 428 None
+ Branch 429
+ 429: Label
+ 430: 22(ptr) AccessChain 9(color) 66
+ 431: 6(float) Load 430
+ 432: 6(float) Load 366(d6)
+ 433: 18(bool) FOrdLessThan 431 432
+ BranchConditional 433 426 427
+ 426: Label
+ 434: 53(ptr) AccessChain 380(bigColor6) 66
+ 435: 6(float) Load 434
+ 436: 22(ptr) AccessChain 9(color) 66
+ 437: 6(float) Load 436
+ 438: 6(float) FAdd 437 435
+ 439: 22(ptr) AccessChain 9(color) 66
+ Store 439 438
+ Branch 428
+ 428: Label
+ Branch 425
+ 427: Label
+ Branch 405
+ 405: Label
+ Branch 440
+ 440: Label
+ LoopMerge 442 443 None
+ Branch 441
+ 441: Label
+ 444: 6(float) Load 418(d7)
+ 446: 18(bool) FOrdLessThan 444 445
+ SelectionMerge 448 None
+ BranchConditional 446 447 448
+ 447: Label
+ Branch 442
+ 448: Label
+ 451: 7(fvec4) Load 450(bigColor7)
+ 452: 7(fvec4) Load 9(color)
+ 453: 7(fvec4) FAdd 452 451
+ Store 9(color) 453
+ 454: 6(float) Load 418(d7)
+ 455: 18(bool) FOrdLessThan 454 96
+ SelectionMerge 457 None
+ BranchConditional 455 456 457
+ 456: Label
+ 458: 22(ptr) AccessChain 9(color) 66
+ 459: 6(float) Load 458
+ 460: 6(float) FAdd 459 96
+ Store 458 460
+ Branch 442
+ 457: Label
+ 462: 7(fvec4) Load 11(BaseColor)
+ 463: 7(fvec4) Load 9(color)
+ 464: 7(fvec4) FAdd 463 462
+ Store 9(color) 464
+ Branch 443
+ 443: Label
+ BranchConditional 19 440 442
+ 442: Label
+ Branch 465
+ 465: Label
+ LoopMerge 467 468 None
+ Branch 466
+ 466: Label
+ 470: 6(float) Load 469(d8)
+ 471: 18(bool) FOrdLessThan 470 445
+ SelectionMerge 473 None
+ BranchConditional 471 472 473
+ 472: Label
+ Branch 467
+ 473: Label
+ 475: 7(fvec4) Load 450(bigColor7)
+ 476: 7(fvec4) Load 9(color)
+ 477: 7(fvec4) FAdd 476 475
+ Store 9(color) 477
+ 478: 6(float) Load 469(d8)
+ 479: 18(bool) FOrdLessThan 478 96
+ SelectionMerge 481 None
+ BranchConditional 479 480 481
+ 480: Label
+ 482: 22(ptr) AccessChain 9(color) 66
+ 483: 6(float) Load 482
+ 484: 6(float) FAdd 483 96
+ Store 482 484
+ 485: 6(float) Load 469(d8)
+ 487: 18(bool) FOrdLessThan 485 486
+ SelectionMerge 489 None
+ BranchConditional 487 488 493
+ 488: Label
+ 490: 22(ptr) AccessChain 9(color) 111
+ 491: 6(float) Load 490
+ 492: 6(float) FAdd 491 96
+ Store 490 492
+ Branch 489
+ 493: Label
+ 494: 22(ptr) AccessChain 9(color) 21
+ 495: 6(float) Load 494
+ 496: 6(float) FAdd 495 96
+ Store 494 496
+ Branch 489
+ 489: Label
+ Branch 467
+ 481: Label
+ 498: 7(fvec4) Load 11(BaseColor)
+ 499: 7(fvec4) Load 9(color)
+ 500: 7(fvec4) FAdd 499 498
+ Store 9(color) 500
+ Branch 468
+ 468: Label
+ 501: 22(ptr) AccessChain 9(color) 66
+ 502: 6(float) Load 501
+ 503: 6(float) Load 469(d8)
+ 504: 18(bool) FOrdLessThan 502 503
+ BranchConditional 504 465 467
+ 467: Label
+ Branch 505
+ 505: Label
+ LoopMerge 507 508 None
+ Branch 509
+ 509: Label
+ 510: 22(ptr) AccessChain 9(color) 75
+ 511: 6(float) Load 510
+ 513: 6(float) Load 512(d9)
+ 514: 18(bool) FOrdLessThan 511 513
+ BranchConditional 514 506 507
+ 506: Label
+ 515: 6(float) Load 512(d9)
+ 516: 6(float) Load 469(d8)
+ 517: 18(bool) FOrdGreaterThan 515 516
+ SelectionMerge 519 None
+ BranchConditional 517 518 519
+ 518: Label
+ 520: 22(ptr) AccessChain 9(color) 21
+ 521: 6(float) Load 520
+ 522: 6(float) Load 418(d7)
+ 523: 18(bool) FOrdLessThanEqual 521 522
+ SelectionMerge 525 None
+ BranchConditional 523 524 525
+ 524: Label
+ 526: 22(ptr) AccessChain 9(color) 66
+ 527: 6(float) Load 526
+ 529: 18(bool) FOrdEqual 527 528
+ SelectionMerge 531 None
+ BranchConditional 529 530 535
+ 530: Label
+ 532: 22(ptr) AccessChain 9(color) 75
+ 533: 6(float) Load 532
+ 534: 6(float) FAdd 533 96
+ Store 532 534
+ Branch 531
+ 535: Label
+ Branch 507
+ 531: Label
+ Branch 525
+ 525: Label
+ Branch 519
+ 519: Label
+ Branch 508
+ 508: Label
+ Branch 505
+ 507: Label
+ Branch 537
+ 537: Label
+ LoopMerge 539 540 None
+ Branch 541
+ 541: Label
+ 542: 22(ptr) AccessChain 9(color) 66
+ 543: 6(float) Load 542
+ 545: 6(float) Load 544(d10)
+ 546: 18(bool) FOrdLessThan 543 545
+ BranchConditional 546 538 539
+ 538: Label
+ 547: 22(ptr) AccessChain 9(color) 111
+ 548: 6(float) Load 547
+ 549: 6(float) FAdd 548 96
+ Store 547 549
+ 550: 22(ptr) AccessChain 9(color) 111
+ 551: 6(float) Load 550
+ 553: 6(float) Load 552(d11)
+ 554: 18(bool) FOrdLessThan 551 553
+ SelectionMerge 556 None
+ BranchConditional 554 555 556
+ 555: Label
+ 557: 22(ptr) AccessChain 9(color) 66
+ 558: 6(float) Load 557
+ 559: 6(float) FAdd 558 96
+ Store 557 559
+ 560: 22(ptr) AccessChain 9(color) 75
+ 561: 6(float) Load 560
+ 563: 6(float) Load 562(d12)
+ 564: 18(bool) FOrdLessThan 561 563
+ SelectionMerge 566 None
+ BranchConditional 564 565 570
+ 565: Label
+ 567: 22(ptr) AccessChain 9(color) 75
+ 568: 6(float) Load 567
+ 569: 6(float) FAdd 568 96
+ Store 567 569
+ Branch 566
+ 570: Label
+ 571: 22(ptr) AccessChain 9(color) 21
+ 572: 6(float) Load 571
+ 573: 6(float) FAdd 572 96
+ Store 571 573
+ Branch 566
+ 566: Label
+ Branch 540
+ 556: Label
+ 575: 7(fvec4) Load 9(color)
+ 576: 7(fvec4) CompositeConstruct 96 96 96 96
+ 577: 7(fvec4) FAdd 575 576
+ Store 9(color) 577
+ Branch 539
+ 540: Label
+ Branch 537
+ 539: Label
+ Branch 579
+ 579: Label
+ LoopMerge 581 582 None
+ Branch 583
+ 583: Label
+ 584: 22(ptr) AccessChain 9(color) 21
+ 585: 6(float) Load 584
+ 587: 18(bool) FOrdLessThan 585 586
+ BranchConditional 587 580 581
+ 580: Label
+ 589: 7(fvec4) Load 588(bigColor8)
+ 590: 7(fvec4) Load 9(color)
+ 591: 7(fvec4) FAdd 590 589
+ Store 9(color) 591
+ 592: 22(ptr) AccessChain 9(color) 66
+ 593: 6(float) Load 592
+ 594: 6(float) Load 469(d8)
+ 595: 18(bool) FOrdLessThan 593 594
+ SelectionMerge 597 None
+ BranchConditional 595 596 597
+ 596: Label
+ 598: 22(ptr) AccessChain 9(color) 75
+ 599: 6(float) Load 598
+ 600: 6(float) Load 366(d6)
+ 601: 18(bool) FOrdLessThan 599 600
+ SelectionMerge 603 None
+ BranchConditional 601 602 603
+ 602: Label
+ Branch 582
+ 603: Label
+ Branch 597
+ 597: Label
+ 605: 53(ptr) AccessChain 588(bigColor8) 21
+ 606: 6(float) Load 605
+ 607: 22(ptr) AccessChain 9(color) 111
+ 608: 6(float) Load 607
+ 609: 6(float) FAdd 608 606
+ 610: 22(ptr) AccessChain 9(color) 111
+ Store 610 609
+ Branch 582
+ 582: Label
+ Branch 579
+ 581: Label
+ 611: 7(fvec4) Load 9(color)
+ 612: 7(fvec4) CompositeConstruct 96 96 96 96
+ 613: 7(fvec4) FAdd 611 612
+ Store 9(color) 613
+ 616: 7(fvec4) Load 9(color)
+ Store 615(gl_FragColor) 616
+ Branch 617
+ 617: Label
+ LoopMerge 619 620 None
+ Branch 621
+ 621: Label
+ 622: 22(ptr) AccessChain 9(color) 21
+ 623: 6(float) Load 622
+ 625: 6(float) Load 624(d14)
+ 626: 18(bool) FOrdLessThan 623 625
+ BranchConditional 626 618 619
+ 618: Label
+ 627: 22(ptr) AccessChain 9(color) 111
+ 628: 6(float) Load 627
+ 630: 6(float) Load 629(d15)
+ 631: 18(bool) FOrdLessThan 628 630
+ SelectionMerge 633 None
+ BranchConditional 631 632 635
+ 632: Label
+ Return
+ 635: Label
+ 636: 7(fvec4) Load 9(color)
+ 637: 7(fvec4) CompositeConstruct 96 96 96 96
+ 638: 7(fvec4) FAdd 636 637
+ Store 9(color) 638
+ Branch 633
+ 633: Label
+ Branch 620
+ 620: Label
+ Branch 617
+ 619: Label
+ 639: 7(fvec4) Load 9(color)
+ 640: 7(fvec4) CompositeConstruct 96 96 96 96
+ 641: 7(fvec4) FAdd 639 640
+ Store 9(color) 641
+ Branch 642
+ 642: Label
+ LoopMerge 644 645 None
+ Branch 646
+ 646: Label
+ 647: 22(ptr) AccessChain 9(color) 75
+ 648: 6(float) Load 647
+ 650: 6(float) Load 649(d16)
+ 651: 18(bool) FOrdLessThan 648 650
+ BranchConditional 651 643 644
+ 643: Label
+ 652: 22(ptr) AccessChain 9(color) 75
+ 653: 6(float) Load 652
+ 654: 6(float) FAdd 653 96
+ Store 652 654
+ Branch 645
+ 645: Label
+ Branch 642
+ 644: Label
+ Branch 655
+ 655: Label
+ LoopMerge 657 658 None
+ Branch 659
+ 659: Label
+ 660: 22(ptr) AccessChain 9(color) 75
+ 661: 6(float) Load 660
+ 662: 6(float) Load 106(d2)
+ 663: 18(bool) FOrdLessThan 661 662
+ SelectionMerge 665 None
+ BranchConditional 663 664 665
+ 664: Label
+ 666: 22(ptr) AccessChain 9(color) 111
+ 667: 6(float) Load 666
+ 668: 6(float) Load 114(d3)
+ 669: 18(bool) FOrdLessThan 667 668
+ Branch 665
+ 665: Label
+ 670: 18(bool) Phi 663 659 669 664
+ BranchConditional 670 656 657
+ 656: Label
+ 671: 7(fvec4) Load 118(bigColor1_2)
+ 672: 7(fvec4) Load 9(color)
+ 673: 7(fvec4) FAdd 672 671
+ Store 9(color) 673
+ 674: 22(ptr) AccessChain 9(color) 66
+ 675: 6(float) Load 674
+ 676: 6(float) Load 114(d3)
+ 677: 18(bool) FOrdLessThan 675 676
+ SelectionMerge 679 None
+ BranchConditional 677 678 679
+ 678: Label
+ Return
+ 679: Label
+ Branch 658
+ 658: Label
+ Branch 655
+ 657: Label
+ Branch 681
+ 681: Label
+ LoopMerge 683 684 None
+ Branch 682
+ 682: Label
+ 685: 22(ptr) AccessChain 9(color) 111
+ 686: 6(float) Load 685
+ 688: 6(float) Load 687(d18)
+ 689: 18(bool) FOrdLessThan 686 688
+ SelectionMerge 691 None
+ BranchConditional 689 690 691
+ 690: Label
+ Return
+ 691: Label
+ 693: 7(fvec4) Load 9(color)
+ 694: 7(fvec4) CompositeConstruct 96 96 96 96
+ 695: 7(fvec4) FAdd 693 694
+ Store 9(color) 695
+ Branch 684
+ 684: Label
+ 696: 22(ptr) AccessChain 9(color) 21
+ 697: 6(float) Load 696
+ 699: 6(float) Load 698(d17)
+ 700: 18(bool) FOrdLessThan 697 699
+ BranchConditional 700 681 683
+ 683: Label
+ Branch 701
+ 701: Label
+ LoopMerge 703 704 None
+ Branch 705
+ 705: Label
+ 706: 22(ptr) AccessChain 9(color) 111
+ 707: 6(float) Load 706
+ 708: 6(float) Load 649(d16)
+ 709: 18(bool) FOrdLessThan 707 708
+ BranchConditional 709 702 703
+ 702: Label
+ 710: 22(ptr) AccessChain 9(color) 75
+ 711: 6(float) Load 710
+ 712: 6(float) Load 649(d16)
+ 713: 18(bool) FOrdLessThan 711 712
+ SelectionMerge 715 None
+ BranchConditional 713 714 717
+ 714: Label
+ Kill
+ 717: Label
+ 718: 7(fvec4) Load 9(color)
+ 719: 7(fvec4) CompositeConstruct 96 96 96 96
+ 720: 7(fvec4) FAdd 718 719
+ Store 9(color) 720
+ Branch 715
+ 715: Label
+ Branch 704
+ 704: Label
+ Branch 701
+ 703: Label
+ 721: 7(fvec4) Load 9(color)
+ 722: 7(fvec4) CompositeConstruct 96 96 96 96
+ 723: 7(fvec4) FAdd 721 722
+ Store 9(color) 723
+ 724: 7(fvec4) Load 9(color)
+ Store 615(gl_FragColor) 724
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.loopsArtificial.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.loopsArtificial.frag.out
new file mode 100755
index 00000000000..5f10bd35901
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.loopsArtificial.frag.out
@@ -0,0 +1,243 @@
+spv.loopsArtificial.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 158
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 11 17 27 80 140 142 143 144 145 146 147 148 149 150 151 152 153 154 157
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 140
+ Name 4 "main"
+ Name 9 "color"
+ Name 11 "BaseColor"
+ Name 17 "bigColor4"
+ Name 27 "d4"
+ Name 80 "d13"
+ Name 140 "gl_FragColor"
+ Name 142 "bigColor"
+ Name 143 "bigColor1_1"
+ Name 144 "bigColor1_2"
+ Name 145 "bigColor1_3"
+ Name 146 "bigColor2"
+ Name 147 "bigColor3"
+ Name 148 "bigColor5"
+ Name 149 "bigColor6"
+ Name 150 "bigColor7"
+ Name 151 "bigColor8"
+ Name 152 "d"
+ Name 153 "d2"
+ Name 154 "d3"
+ Name 157 "Count"
+ Decorate 157(Count) Flat
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+ 10: TypePointer Input 7(fvec4)
+ 11(BaseColor): 10(ptr) Variable Input
+ 17(bigColor4): 10(ptr) Variable Input
+ 21: TypeInt 32 0
+ 22: 21(int) Constant 0
+ 23: TypePointer Function 6(float)
+ 26: TypePointer Input 6(float)
+ 27(d4): 26(ptr) Variable Input
+ 29: TypeBool
+ 33: 6(float) Constant 1073741824
+ 34: 21(int) Constant 2
+ 47: 6(float) Constant 1065353216
+ 50: 21(int) Constant 1
+ 77: 21(int) Constant 3
+ 80(d13): 26(ptr) Variable Input
+ 139: TypePointer Output 7(fvec4)
+140(gl_FragColor): 139(ptr) Variable Output
+ 142(bigColor): 10(ptr) Variable Input
+143(bigColor1_1): 10(ptr) Variable Input
+144(bigColor1_2): 10(ptr) Variable Input
+145(bigColor1_3): 10(ptr) Variable Input
+ 146(bigColor2): 10(ptr) Variable Input
+ 147(bigColor3): 10(ptr) Variable Input
+ 148(bigColor5): 10(ptr) Variable Input
+ 149(bigColor6): 10(ptr) Variable Input
+ 150(bigColor7): 10(ptr) Variable Input
+ 151(bigColor8): 10(ptr) Variable Input
+ 152(d): 26(ptr) Variable Input
+ 153(d2): 26(ptr) Variable Input
+ 154(d3): 26(ptr) Variable Input
+ 155: TypeInt 32 1
+ 156: TypePointer Input 155(int)
+ 157(Count): 156(ptr) Variable Input
+ 4(main): 2 Function None 3
+ 5: Label
+ 9(color): 8(ptr) Variable Function
+ 12: 7(fvec4) Load 11(BaseColor)
+ Store 9(color) 12
+ Branch 13
+ 13: Label
+ LoopMerge 15 16 None
+ Branch 14
+ 14: Label
+ 18: 7(fvec4) Load 17(bigColor4)
+ 19: 7(fvec4) Load 9(color)
+ 20: 7(fvec4) FAdd 19 18
+ Store 9(color) 20
+ 24: 23(ptr) AccessChain 9(color) 22
+ 25: 6(float) Load 24
+ 28: 6(float) Load 27(d4)
+ 30: 29(bool) FOrdLessThan 25 28
+ SelectionMerge 32 None
+ BranchConditional 30 31 32
+ 31: Label
+ 35: 23(ptr) AccessChain 9(color) 34
+ 36: 6(float) Load 35
+ 37: 6(float) FAdd 36 33
+ 38: 23(ptr) AccessChain 9(color) 34
+ Store 38 37
+ 39: 23(ptr) AccessChain 9(color) 34
+ 40: 6(float) Load 39
+ 41: 6(float) Load 27(d4)
+ 42: 29(bool) FOrdLessThan 40 41
+ SelectionMerge 44 None
+ BranchConditional 42 43 44
+ 43: Label
+ 45: 23(ptr) AccessChain 9(color) 22
+ 46: 6(float) Load 45
+ 48: 6(float) FAdd 46 47
+ Store 45 48
+ Branch 16
+ 44: Label
+ Branch 32
+ 32: Label
+ 51: 23(ptr) AccessChain 9(color) 50
+ 52: 6(float) Load 51
+ 53: 6(float) Load 27(d4)
+ 54: 29(bool) FOrdLessThan 52 53
+ SelectionMerge 56 None
+ BranchConditional 54 55 62
+ 55: Label
+ 57: 6(float) Load 27(d4)
+ 58: 23(ptr) AccessChain 9(color) 50
+ 59: 6(float) Load 58
+ 60: 6(float) FAdd 59 57
+ 61: 23(ptr) AccessChain 9(color) 50
+ Store 61 60
+ Branch 56
+ 62: Label
+ 63: 6(float) Load 27(d4)
+ 64: 23(ptr) AccessChain 9(color) 22
+ 65: 6(float) Load 64
+ 66: 6(float) FAdd 65 63
+ 67: 23(ptr) AccessChain 9(color) 22
+ Store 67 66
+ Branch 56
+ 56: Label
+ Branch 16
+ 16: Label
+ 68: 23(ptr) AccessChain 9(color) 34
+ 69: 6(float) Load 68
+ 70: 6(float) Load 27(d4)
+ 71: 29(bool) FOrdLessThan 69 70
+ BranchConditional 71 13 15
+ 15: Label
+ Branch 72
+ 72: Label
+ LoopMerge 74 75 None
+ Branch 76
+ 76: Label
+ 78: 23(ptr) AccessChain 9(color) 77
+ 79: 6(float) Load 78
+ 81: 6(float) Load 80(d13)
+ 82: 29(bool) FOrdLessThan 79 81
+ BranchConditional 82 73 74
+ 73: Label
+ 83: 23(ptr) AccessChain 9(color) 34
+ 84: 6(float) Load 83
+ 85: 6(float) Load 80(d13)
+ 86: 29(bool) FOrdLessThan 84 85
+ SelectionMerge 88 None
+ BranchConditional 86 87 92
+ 87: Label
+ 89: 7(fvec4) Load 9(color)
+ 90: 7(fvec4) CompositeConstruct 47 47 47 47
+ 91: 7(fvec4) FAdd 89 90
+ Store 9(color) 91
+ Branch 88
+ 92: Label
+ 93: 7(fvec4) Load 9(color)
+ 94: 7(fvec4) CompositeConstruct 47 47 47 47
+ 95: 7(fvec4) FSub 93 94
+ Store 9(color) 95
+ Branch 88
+ 88: Label
+ 96: 7(fvec4) Load 17(bigColor4)
+ 97: 7(fvec4) Load 9(color)
+ 98: 7(fvec4) FAdd 97 96
+ Store 9(color) 98
+ 99: 23(ptr) AccessChain 9(color) 22
+ 100: 6(float) Load 99
+ 101: 6(float) Load 27(d4)
+ 102: 29(bool) FOrdLessThan 100 101
+ SelectionMerge 104 None
+ BranchConditional 102 103 104
+ 103: Label
+ 105: 23(ptr) AccessChain 9(color) 34
+ 106: 6(float) Load 105
+ 107: 6(float) FAdd 106 33
+ 108: 23(ptr) AccessChain 9(color) 34
+ Store 108 107
+ 109: 23(ptr) AccessChain 9(color) 34
+ 110: 6(float) Load 109
+ 111: 6(float) Load 27(d4)
+ 112: 29(bool) FOrdLessThan 110 111
+ SelectionMerge 114 None
+ BranchConditional 112 113 114
+ 113: Label
+ 115: 23(ptr) AccessChain 9(color) 22
+ 116: 6(float) Load 115
+ 117: 6(float) FAdd 116 47
+ Store 115 117
+ Branch 75
+ 114: Label
+ Branch 104
+ 104: Label
+ 119: 23(ptr) AccessChain 9(color) 50
+ 120: 6(float) Load 119
+ 121: 6(float) Load 27(d4)
+ 122: 29(bool) FOrdLessThan 120 121
+ SelectionMerge 124 None
+ BranchConditional 122 123 130
+ 123: Label
+ 125: 6(float) Load 27(d4)
+ 126: 23(ptr) AccessChain 9(color) 50
+ 127: 6(float) Load 126
+ 128: 6(float) FAdd 127 125
+ 129: 23(ptr) AccessChain 9(color) 50
+ Store 129 128
+ Branch 124
+ 130: Label
+ 131: 6(float) Load 27(d4)
+ 132: 23(ptr) AccessChain 9(color) 22
+ 133: 6(float) Load 132
+ 134: 6(float) FAdd 133 131
+ 135: 23(ptr) AccessChain 9(color) 22
+ Store 135 134
+ Branch 124
+ 124: Label
+ Branch 75
+ 75: Label
+ Branch 72
+ 74: Label
+ 136: 7(fvec4) Load 9(color)
+ 137: 7(fvec4) CompositeConstruct 47 47 47 47
+ 138: 7(fvec4) FAdd 136 137
+ Store 9(color) 138
+ 141: 7(fvec4) Load 9(color)
+ Store 140(gl_FragColor) 141
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.matFun.vert.out b/chromium/third_party/glslang/src/Test/baseResults/spv.matFun.vert.out
new file mode 100755
index 00000000000..0aa0a52da90
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.matFun.vert.out
@@ -0,0 +1,161 @@
+spv.matFun.vert
+Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 103
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Vertex 4 "main" 76 81
+ Source GLSL 400
+ Name 4 "main"
+ Name 14 "xf(mf33;vf3;"
+ Name 12 "m"
+ Name 13 "v"
+ Name 21 "Mat3(mf44;"
+ Name 20 "m"
+ Name 26 "mxv(mf44;vf3;"
+ Name 24 "m4"
+ Name 25 "v"
+ Name 65 "param"
+ Name 74 "gl_PerVertex"
+ MemberName 74(gl_PerVertex) 0 "gl_Position"
+ MemberName 74(gl_PerVertex) 1 "gl_PointSize"
+ MemberName 74(gl_PerVertex) 2 "gl_ClipDistance"
+ Name 76 ""
+ Name 77 "bl"
+ MemberName 77(bl) 0 "m4"
+ MemberName 77(bl) 1 "m3"
+ Name 79 "bName"
+ Name 81 "v3"
+ Name 82 "param"
+ Name 86 "param"
+ Name 89 "param"
+ Name 93 "param"
+ MemberDecorate 74(gl_PerVertex) 0 BuiltIn Position
+ MemberDecorate 74(gl_PerVertex) 1 BuiltIn PointSize
+ MemberDecorate 74(gl_PerVertex) 2 BuiltIn ClipDistance
+ Decorate 74(gl_PerVertex) Block
+ MemberDecorate 77(bl) 0 ColMajor
+ MemberDecorate 77(bl) 0 Offset 0
+ MemberDecorate 77(bl) 0 MatrixStride 16
+ MemberDecorate 77(bl) 1 ColMajor
+ MemberDecorate 77(bl) 1 Offset 64
+ MemberDecorate 77(bl) 1 MatrixStride 16
+ Decorate 77(bl) Block
+ Decorate 79(bName) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 3
+ 8: TypeMatrix 7(fvec3) 3
+ 9: TypePointer Function 8
+ 10: TypePointer Function 7(fvec3)
+ 11: TypeFunction 7(fvec3) 9(ptr) 10(ptr)
+ 16: TypeVector 6(float) 4
+ 17: TypeMatrix 16(fvec4) 4
+ 18: TypePointer Function 17
+ 19: TypeFunction 8 18(ptr)
+ 23: TypeFunction 7(fvec3) 18(ptr) 10(ptr)
+ 33: TypeInt 32 1
+ 34: 33(int) Constant 0
+ 35: TypePointer Function 16(fvec4)
+ 39: 33(int) Constant 1
+ 43: 33(int) Constant 2
+ 47: 6(float) Constant 1065353216
+ 48: 6(float) Constant 0
+ 71: TypeInt 32 0
+ 72: 71(int) Constant 1
+ 73: TypeArray 6(float) 72
+74(gl_PerVertex): TypeStruct 16(fvec4) 6(float) 73
+ 75: TypePointer Output 74(gl_PerVertex)
+ 76: 75(ptr) Variable Output
+ 77(bl): TypeStruct 17 8
+ 78: TypePointer Uniform 77(bl)
+ 79(bName): 78(ptr) Variable Uniform
+ 80: TypePointer Input 7(fvec3)
+ 81(v3): 80(ptr) Variable Input
+ 83: TypePointer Uniform 17
+ 90: TypePointer Uniform 8
+ 101: TypePointer Output 16(fvec4)
+ 4(main): 2 Function None 3
+ 5: Label
+ 82(param): 18(ptr) Variable Function
+ 86(param): 10(ptr) Variable Function
+ 89(param): 9(ptr) Variable Function
+ 93(param): 10(ptr) Variable Function
+ 84: 83(ptr) AccessChain 79(bName) 34
+ 85: 17 Load 84
+ Store 82(param) 85
+ 87: 7(fvec3) Load 81(v3)
+ Store 86(param) 87
+ 88: 7(fvec3) FunctionCall 26(mxv(mf44;vf3;) 82(param) 86(param)
+ 91: 90(ptr) AccessChain 79(bName) 39
+ 92: 8 Load 91
+ Store 89(param) 92
+ 94: 7(fvec3) Load 81(v3)
+ Store 93(param) 94
+ 95: 7(fvec3) FunctionCall 14(xf(mf33;vf3;) 89(param) 93(param)
+ 96: 7(fvec3) FAdd 88 95
+ 97: 6(float) CompositeExtract 96 0
+ 98: 6(float) CompositeExtract 96 1
+ 99: 6(float) CompositeExtract 96 2
+ 100: 16(fvec4) CompositeConstruct 97 98 99 47
+ 102: 101(ptr) AccessChain 76 34
+ Store 102 100
+ Return
+ FunctionEnd
+14(xf(mf33;vf3;): 7(fvec3) Function None 11
+ 12(m): 9(ptr) FunctionParameter
+ 13(v): 10(ptr) FunctionParameter
+ 15: Label
+ 28: 7(fvec3) Load 13(v)
+ 29: 8 Load 12(m)
+ 30: 7(fvec3) VectorTimesMatrix 28 29
+ ReturnValue 30
+ FunctionEnd
+ 21(Mat3(mf44;): 8 Function None 19
+ 20(m): 18(ptr) FunctionParameter
+ 22: Label
+ 36: 35(ptr) AccessChain 20(m) 34
+ 37: 16(fvec4) Load 36
+ 38: 7(fvec3) VectorShuffle 37 37 0 1 2
+ 40: 35(ptr) AccessChain 20(m) 39
+ 41: 16(fvec4) Load 40
+ 42: 7(fvec3) VectorShuffle 41 41 0 1 2
+ 44: 35(ptr) AccessChain 20(m) 43
+ 45: 16(fvec4) Load 44
+ 46: 7(fvec3) VectorShuffle 45 45 0 1 2
+ 49: 6(float) CompositeExtract 38 0
+ 50: 6(float) CompositeExtract 38 1
+ 51: 6(float) CompositeExtract 38 2
+ 52: 6(float) CompositeExtract 42 0
+ 53: 6(float) CompositeExtract 42 1
+ 54: 6(float) CompositeExtract 42 2
+ 55: 6(float) CompositeExtract 46 0
+ 56: 6(float) CompositeExtract 46 1
+ 57: 6(float) CompositeExtract 46 2
+ 58: 7(fvec3) CompositeConstruct 49 50 51
+ 59: 7(fvec3) CompositeConstruct 52 53 54
+ 60: 7(fvec3) CompositeConstruct 55 56 57
+ 61: 8 CompositeConstruct 58 59 60
+ ReturnValue 61
+ FunctionEnd
+26(mxv(mf44;vf3;): 7(fvec3) Function None 23
+ 24(m4): 18(ptr) FunctionParameter
+ 25(v): 10(ptr) FunctionParameter
+ 27: Label
+ 65(param): 18(ptr) Variable Function
+ 64: 7(fvec3) Load 25(v)
+ 66: 17 Load 24(m4)
+ Store 65(param) 66
+ 67: 8 FunctionCall 21(Mat3(mf44;) 65(param)
+ 68: 7(fvec3) VectorTimesMatrix 64 67
+ ReturnValue 68
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.matrix.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.matrix.frag.out
new file mode 100644
index 00000000000..7b34fca4dec
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.matrix.frag.out
@@ -0,0 +1,313 @@
+spv.matrix.frag
+Warning, version 420 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 261
+
+ Capability Shader
+ Capability Float64
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 12 14 28 161 169 187
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 420
+ Name 4 "main"
+ Name 10 "sum34"
+ Name 12 "m1"
+ Name 14 "m2"
+ Name 28 "f"
+ Name 140 "dm"
+ Name 159 "sum3"
+ Name 161 "v4"
+ Name 166 "sum4"
+ Name 169 "v3"
+ Name 174 "m43"
+ Name 179 "m4"
+ Name 187 "color"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypeMatrix 7(fvec4) 3
+ 9: TypePointer Function 8
+ 11: TypePointer Input 8
+ 12(m1): 11(ptr) Variable Input
+ 14(m2): 11(ptr) Variable Input
+ 27: TypePointer Input 6(float)
+ 28(f): 27(ptr) Variable Input
+ 81: 6(float) Constant 1065353216
+ 136: TypeFloat 64
+ 137: TypeVector 136(float) 4
+ 138: TypeMatrix 137(fvec4) 3
+ 139: TypePointer Function 138
+ 157: TypeVector 6(float) 3
+ 158: TypePointer Function 157(fvec3)
+ 160: TypePointer Input 7(fvec4)
+ 161(v4): 160(ptr) Variable Input
+ 165: TypePointer Function 7(fvec4)
+ 168: TypePointer Input 157(fvec3)
+ 169(v3): 168(ptr) Variable Input
+ 172: TypeMatrix 157(fvec3) 4
+ 173: TypePointer Function 172
+ 177: TypeMatrix 7(fvec4) 4
+ 178: TypePointer Function 177
+ 186: TypePointer Output 7(fvec4)
+ 187(color): 186(ptr) Variable Output
+ 208: 6(float) Constant 0
+ 4(main): 2 Function None 3
+ 5: Label
+ 10(sum34): 9(ptr) Variable Function
+ 140(dm): 139(ptr) Variable Function
+ 159(sum3): 158(ptr) Variable Function
+ 166(sum4): 165(ptr) Variable Function
+ 174(m43): 173(ptr) Variable Function
+ 179(m4): 178(ptr) Variable Function
+ 13: 8 Load 12(m1)
+ 15: 8 Load 14(m2)
+ 16: 7(fvec4) CompositeExtract 13 0
+ 17: 7(fvec4) CompositeExtract 15 0
+ 18: 7(fvec4) FSub 16 17
+ 19: 7(fvec4) CompositeExtract 13 1
+ 20: 7(fvec4) CompositeExtract 15 1
+ 21: 7(fvec4) FSub 19 20
+ 22: 7(fvec4) CompositeExtract 13 2
+ 23: 7(fvec4) CompositeExtract 15 2
+ 24: 7(fvec4) FSub 22 23
+ 25: 8 CompositeConstruct 18 21 24
+ Store 10(sum34) 25
+ 26: 8 Load 12(m1)
+ 29: 6(float) Load 28(f)
+ 30: 8 MatrixTimesScalar 26 29
+ 31: 8 Load 10(sum34)
+ 32: 7(fvec4) CompositeExtract 31 0
+ 33: 7(fvec4) CompositeExtract 30 0
+ 34: 7(fvec4) FAdd 32 33
+ 35: 7(fvec4) CompositeExtract 31 1
+ 36: 7(fvec4) CompositeExtract 30 1
+ 37: 7(fvec4) FAdd 35 36
+ 38: 7(fvec4) CompositeExtract 31 2
+ 39: 7(fvec4) CompositeExtract 30 2
+ 40: 7(fvec4) FAdd 38 39
+ 41: 8 CompositeConstruct 34 37 40
+ Store 10(sum34) 41
+ 42: 6(float) Load 28(f)
+ 43: 8 Load 12(m1)
+ 44: 8 MatrixTimesScalar 43 42
+ 45: 8 Load 10(sum34)
+ 46: 7(fvec4) CompositeExtract 45 0
+ 47: 7(fvec4) CompositeExtract 44 0
+ 48: 7(fvec4) FAdd 46 47
+ 49: 7(fvec4) CompositeExtract 45 1
+ 50: 7(fvec4) CompositeExtract 44 1
+ 51: 7(fvec4) FAdd 49 50
+ 52: 7(fvec4) CompositeExtract 45 2
+ 53: 7(fvec4) CompositeExtract 44 2
+ 54: 7(fvec4) FAdd 52 53
+ 55: 8 CompositeConstruct 48 51 54
+ Store 10(sum34) 55
+ 56: 8 Load 12(m1)
+ 57: 8 Load 14(m2)
+ 58: 7(fvec4) CompositeExtract 56 0
+ 59: 7(fvec4) CompositeExtract 57 0
+ 60: 7(fvec4) FMul 58 59
+ 61: 7(fvec4) CompositeExtract 56 1
+ 62: 7(fvec4) CompositeExtract 57 1
+ 63: 7(fvec4) FMul 61 62
+ 64: 7(fvec4) CompositeExtract 56 2
+ 65: 7(fvec4) CompositeExtract 57 2
+ 66: 7(fvec4) FMul 64 65
+ 67: 8 CompositeConstruct 60 63 66
+ 68: 8 Load 10(sum34)
+ 69: 7(fvec4) CompositeExtract 68 0
+ 70: 7(fvec4) CompositeExtract 67 0
+ 71: 7(fvec4) FDiv 69 70
+ 72: 7(fvec4) CompositeExtract 68 1
+ 73: 7(fvec4) CompositeExtract 67 1
+ 74: 7(fvec4) FDiv 72 73
+ 75: 7(fvec4) CompositeExtract 68 2
+ 76: 7(fvec4) CompositeExtract 67 2
+ 77: 7(fvec4) FDiv 75 76
+ 78: 8 CompositeConstruct 71 74 77
+ Store 10(sum34) 78
+ 79: 8 Load 12(m1)
+ 80: 6(float) Load 28(f)
+ 82: 6(float) FDiv 81 80
+ 83: 8 MatrixTimesScalar 79 82
+ 84: 8 Load 10(sum34)
+ 85: 7(fvec4) CompositeExtract 84 0
+ 86: 7(fvec4) CompositeExtract 83 0
+ 87: 7(fvec4) FAdd 85 86
+ 88: 7(fvec4) CompositeExtract 84 1
+ 89: 7(fvec4) CompositeExtract 83 1
+ 90: 7(fvec4) FAdd 88 89
+ 91: 7(fvec4) CompositeExtract 84 2
+ 92: 7(fvec4) CompositeExtract 83 2
+ 93: 7(fvec4) FAdd 91 92
+ 94: 8 CompositeConstruct 87 90 93
+ Store 10(sum34) 94
+ 95: 6(float) Load 28(f)
+ 96: 8 Load 12(m1)
+ 97: 7(fvec4) CompositeConstruct 95 95 95 95
+ 98: 7(fvec4) CompositeExtract 96 0
+ 99: 7(fvec4) FDiv 97 98
+ 100: 7(fvec4) CompositeExtract 96 1
+ 101: 7(fvec4) FDiv 97 100
+ 102: 7(fvec4) CompositeExtract 96 2
+ 103: 7(fvec4) FDiv 97 102
+ 104: 8 CompositeConstruct 99 101 103
+ 105: 8 Load 10(sum34)
+ 106: 7(fvec4) CompositeExtract 105 0
+ 107: 7(fvec4) CompositeExtract 104 0
+ 108: 7(fvec4) FAdd 106 107
+ 109: 7(fvec4) CompositeExtract 105 1
+ 110: 7(fvec4) CompositeExtract 104 1
+ 111: 7(fvec4) FAdd 109 110
+ 112: 7(fvec4) CompositeExtract 105 2
+ 113: 7(fvec4) CompositeExtract 104 2
+ 114: 7(fvec4) FAdd 112 113
+ 115: 8 CompositeConstruct 108 111 114
+ Store 10(sum34) 115
+ 116: 6(float) Load 28(f)
+ 117: 8 Load 10(sum34)
+ 118: 7(fvec4) CompositeConstruct 116 116 116 116
+ 119: 7(fvec4) CompositeExtract 117 0
+ 120: 7(fvec4) FAdd 119 118
+ 121: 7(fvec4) CompositeExtract 117 1
+ 122: 7(fvec4) FAdd 121 118
+ 123: 7(fvec4) CompositeExtract 117 2
+ 124: 7(fvec4) FAdd 123 118
+ 125: 8 CompositeConstruct 120 122 124
+ Store 10(sum34) 125
+ 126: 6(float) Load 28(f)
+ 127: 8 Load 10(sum34)
+ 128: 7(fvec4) CompositeConstruct 126 126 126 126
+ 129: 7(fvec4) CompositeExtract 127 0
+ 130: 7(fvec4) FSub 129 128
+ 131: 7(fvec4) CompositeExtract 127 1
+ 132: 7(fvec4) FSub 131 128
+ 133: 7(fvec4) CompositeExtract 127 2
+ 134: 7(fvec4) FSub 133 128
+ 135: 8 CompositeConstruct 130 132 134
+ Store 10(sum34) 135
+ 141: 8 Load 10(sum34)
+ 142: 7(fvec4) CompositeExtract 141 0
+ 143: 137(fvec4) FConvert 142
+ 144: 7(fvec4) CompositeExtract 141 1
+ 145: 137(fvec4) FConvert 144
+ 146: 7(fvec4) CompositeExtract 141 2
+ 147: 137(fvec4) FConvert 146
+ 148: 138 CompositeConstruct 143 145 147
+ Store 140(dm) 148
+ 149: 138 Load 140(dm)
+ 150: 137(fvec4) CompositeExtract 149 0
+ 151: 7(fvec4) FConvert 150
+ 152: 137(fvec4) CompositeExtract 149 1
+ 153: 7(fvec4) FConvert 152
+ 154: 137(fvec4) CompositeExtract 149 2
+ 155: 7(fvec4) FConvert 154
+ 156: 8 CompositeConstruct 151 153 155
+ Store 10(sum34) 156
+ 162: 7(fvec4) Load 161(v4)
+ 163: 8 Load 14(m2)
+ 164: 157(fvec3) VectorTimesMatrix 162 163
+ Store 159(sum3) 164
+ 167: 8 Load 14(m2)
+ 170: 157(fvec3) Load 169(v3)
+ 171: 7(fvec4) MatrixTimesVector 167 170
+ Store 166(sum4) 171
+ 175: 8 Load 10(sum34)
+ 176: 172 Transpose 175
+ Store 174(m43) 176
+ 180: 8 Load 12(m1)
+ 181: 172 Load 174(m43)
+ 182: 177 MatrixTimesMatrix 180 181
+ Store 179(m4) 182
+ 183: 7(fvec4) Load 161(v4)
+ 184: 177 Load 179(m4)
+ 185: 7(fvec4) VectorTimesMatrix 183 184
+ Store 166(sum4) 185
+ 188: 7(fvec4) Load 166(sum4)
+ Store 187(color) 188
+ 189: 8 Load 10(sum34)
+ 190: 7(fvec4) CompositeConstruct 81 81 81 81
+ 191: 7(fvec4) CompositeExtract 189 0
+ 192: 7(fvec4) FAdd 191 190
+ 193: 7(fvec4) CompositeExtract 189 1
+ 194: 7(fvec4) FAdd 193 190
+ 195: 7(fvec4) CompositeExtract 189 2
+ 196: 7(fvec4) FAdd 195 190
+ 197: 8 CompositeConstruct 192 194 196
+ Store 10(sum34) 197
+ 198: 8 Load 10(sum34)
+ 199: 7(fvec4) CompositeConstruct 81 81 81 81
+ 200: 7(fvec4) CompositeExtract 198 0
+ 201: 7(fvec4) FSub 200 199
+ 202: 7(fvec4) CompositeExtract 198 1
+ 203: 7(fvec4) FSub 202 199
+ 204: 7(fvec4) CompositeExtract 198 2
+ 205: 7(fvec4) FSub 204 199
+ 206: 8 CompositeConstruct 201 203 205
+ Store 10(sum34) 206
+ 207: 6(float) Load 28(f)
+ 209: 7(fvec4) CompositeConstruct 207 208 208 208
+ 210: 7(fvec4) CompositeConstruct 208 207 208 208
+ 211: 7(fvec4) CompositeConstruct 208 208 207 208
+ 212: 8 CompositeConstruct 209 210 211
+ 213: 8 Load 10(sum34)
+ 214: 7(fvec4) CompositeExtract 213 0
+ 215: 7(fvec4) CompositeExtract 212 0
+ 216: 7(fvec4) FAdd 214 215
+ 217: 7(fvec4) CompositeExtract 213 1
+ 218: 7(fvec4) CompositeExtract 212 1
+ 219: 7(fvec4) FAdd 217 218
+ 220: 7(fvec4) CompositeExtract 213 2
+ 221: 7(fvec4) CompositeExtract 212 2
+ 222: 7(fvec4) FAdd 220 221
+ 223: 8 CompositeConstruct 216 219 222
+ Store 10(sum34) 223
+ 224: 157(fvec3) Load 169(v3)
+ 225: 6(float) Load 28(f)
+ 226: 157(fvec3) Load 169(v3)
+ 227: 6(float) Load 28(f)
+ 228: 157(fvec3) Load 169(v3)
+ 229: 6(float) Load 28(f)
+ 230: 6(float) CompositeExtract 224 0
+ 231: 6(float) CompositeExtract 224 1
+ 232: 6(float) CompositeExtract 224 2
+ 233: 6(float) CompositeExtract 226 0
+ 234: 6(float) CompositeExtract 226 1
+ 235: 6(float) CompositeExtract 226 2
+ 236: 6(float) CompositeExtract 228 0
+ 237: 6(float) CompositeExtract 228 1
+ 238: 6(float) CompositeExtract 228 2
+ 239: 7(fvec4) CompositeConstruct 230 231 232 225
+ 240: 7(fvec4) CompositeConstruct 233 234 235 227
+ 241: 7(fvec4) CompositeConstruct 236 237 238 229
+ 242: 8 CompositeConstruct 239 240 241
+ 243: 8 Load 10(sum34)
+ 244: 7(fvec4) CompositeExtract 243 0
+ 245: 7(fvec4) CompositeExtract 242 0
+ 246: 7(fvec4) FAdd 244 245
+ 247: 7(fvec4) CompositeExtract 243 1
+ 248: 7(fvec4) CompositeExtract 242 1
+ 249: 7(fvec4) FAdd 247 248
+ 250: 7(fvec4) CompositeExtract 243 2
+ 251: 7(fvec4) CompositeExtract 242 2
+ 252: 7(fvec4) FAdd 250 251
+ 253: 8 CompositeConstruct 246 249 252
+ Store 10(sum34) 253
+ 254: 157(fvec3) Load 159(sum3)
+ 255: 172 Load 174(m43)
+ 256: 7(fvec4) VectorTimesMatrix 254 255
+ 257: 7(fvec4) Load 166(sum4)
+ 258: 7(fvec4) FAdd 256 257
+ 259: 7(fvec4) Load 187(color)
+ 260: 7(fvec4) FAdd 259 258
+ Store 187(color) 260
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.matrix2.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.matrix2.frag.out
new file mode 100644
index 00000000000..e0497b09d3c
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.matrix2.frag.out
@@ -0,0 +1,273 @@
+spv.matrix2.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 221
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 12 16 37 38 65 87 147 158 181 218 219 220
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 150
+ Name 4 "main"
+ Name 10 "m34"
+ Name 12 "v"
+ Name 16 "u"
+ Name 37 "FragColor"
+ Name 38 "Color"
+ Name 63 "m44"
+ Name 65 "un34"
+ Name 87 "um43"
+ Name 147 "um4"
+ Name 156 "inv"
+ Name 158 "um2"
+ Name 179 "inv3"
+ Name 181 "um3"
+ Name 190 "inv4"
+ Name 218 "colorTransform"
+ Name 219 "m"
+ Name 220 "n"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypeMatrix 7(fvec4) 3
+ 9: TypePointer Function 8
+ 11: TypePointer Input 7(fvec4)
+ 12(v): 11(ptr) Variable Input
+ 14: TypeVector 6(float) 3
+ 15: TypePointer Input 14(fvec3)
+ 16(u): 15(ptr) Variable Input
+ 19: 6(float) Constant 1082759578
+ 20: 6(float) Constant 0
+ 21: 7(fvec4) ConstantComposite 19 20 20 20
+ 22: 7(fvec4) ConstantComposite 20 19 20 20
+ 23: 7(fvec4) ConstantComposite 20 20 19 20
+ 24: 8 ConstantComposite 21 22 23
+ 36: TypePointer Output 7(fvec4)
+ 37(FragColor): 36(ptr) Variable Output
+ 38(Color): 15(ptr) Variable Input
+ 40: 6(float) Constant 1065353216
+ 54: TypeInt 32 0
+ 55: 54(int) Constant 0
+ 56: TypePointer Input 6(float)
+ 61: TypeMatrix 7(fvec4) 4
+ 62: TypePointer Function 61
+ 64: TypePointer Input 8
+ 65(un34): 64(ptr) Variable Input
+ 85: TypeMatrix 14(fvec3) 4
+ 86: TypePointer Input 85
+ 87(um43): 86(ptr) Variable Input
+ 146: TypePointer Input 61
+ 147(um4): 146(ptr) Variable Input
+ 153: TypeVector 6(float) 2
+ 154: TypeMatrix 153(fvec2) 2
+ 155: TypePointer Function 154
+ 157: TypePointer Input 154
+ 158(um2): 157(ptr) Variable Input
+ 161: TypeInt 32 1
+ 162: 161(int) Constant 0
+ 163: TypePointer Function 6(float)
+ 166: 161(int) Constant 1
+ 169: 54(int) Constant 1
+ 177: TypeMatrix 14(fvec3) 3
+ 178: TypePointer Function 177
+ 180: TypePointer Input 177
+ 181(um3): 180(ptr) Variable Input
+ 184: 161(int) Constant 2
+ 210: 54(int) Constant 3
+ 211: TypePointer Output 6(float)
+218(colorTransform): 180(ptr) Variable Input
+ 219(m): 146(ptr) Variable Input
+ 220(n): 146(ptr) Variable Input
+ 4(main): 2 Function None 3
+ 5: Label
+ 10(m34): 9(ptr) Variable Function
+ 63(m44): 62(ptr) Variable Function
+ 156(inv): 155(ptr) Variable Function
+ 179(inv3): 178(ptr) Variable Function
+ 190(inv4): 62(ptr) Variable Function
+ 13: 7(fvec4) Load 12(v)
+ 17: 14(fvec3) Load 16(u)
+ 18: 8 OuterProduct 13 17
+ Store 10(m34) 18
+ 25: 8 Load 10(m34)
+ 26: 7(fvec4) CompositeExtract 25 0
+ 27: 7(fvec4) CompositeExtract 24 0
+ 28: 7(fvec4) FAdd 26 27
+ 29: 7(fvec4) CompositeExtract 25 1
+ 30: 7(fvec4) CompositeExtract 24 1
+ 31: 7(fvec4) FAdd 29 30
+ 32: 7(fvec4) CompositeExtract 25 2
+ 33: 7(fvec4) CompositeExtract 24 2
+ 34: 7(fvec4) FAdd 32 33
+ 35: 8 CompositeConstruct 28 31 34
+ Store 10(m34) 35
+ 39: 14(fvec3) Load 38(Color)
+ 41: 6(float) CompositeExtract 39 0
+ 42: 6(float) CompositeExtract 39 1
+ 43: 6(float) CompositeExtract 39 2
+ 44: 7(fvec4) CompositeConstruct 41 42 43 40
+ Store 37(FragColor) 44
+ 45: 7(fvec4) Load 37(FragColor)
+ 46: 8 Load 10(m34)
+ 47: 14(fvec3) VectorTimesMatrix 45 46
+ 48: 6(float) CompositeExtract 47 0
+ 49: 6(float) CompositeExtract 47 1
+ 50: 6(float) CompositeExtract 47 2
+ 51: 7(fvec4) CompositeConstruct 48 49 50 40
+ 52: 7(fvec4) Load 37(FragColor)
+ 53: 7(fvec4) FMul 52 51
+ Store 37(FragColor) 53
+ 57: 56(ptr) AccessChain 12(v) 55
+ 58: 6(float) Load 57
+ 59: 8 Load 10(m34)
+ 60: 8 MatrixTimesScalar 59 58
+ Store 10(m34) 60
+ 66: 8 Load 65(un34)
+ 67: 6(float) CompositeExtract 66 0 0
+ 68: 6(float) CompositeExtract 66 0 1
+ 69: 6(float) CompositeExtract 66 0 2
+ 70: 6(float) CompositeExtract 66 0 3
+ 71: 6(float) CompositeExtract 66 1 0
+ 72: 6(float) CompositeExtract 66 1 1
+ 73: 6(float) CompositeExtract 66 1 2
+ 74: 6(float) CompositeExtract 66 1 3
+ 75: 6(float) CompositeExtract 66 2 0
+ 76: 6(float) CompositeExtract 66 2 1
+ 77: 6(float) CompositeExtract 66 2 2
+ 78: 6(float) CompositeExtract 66 2 3
+ 79: 7(fvec4) CompositeConstruct 67 68 69 70
+ 80: 7(fvec4) CompositeConstruct 71 72 73 74
+ 81: 7(fvec4) CompositeConstruct 75 76 77 78
+ 82: 7(fvec4) CompositeConstruct 20 20 20 40
+ 83: 61 CompositeConstruct 79 80 81 82
+ Store 63(m44) 83
+ 84: 8 Load 10(m34)
+ 88: 85 Load 87(um43)
+ 89: 61 MatrixTimesMatrix 84 88
+ 90: 61 Load 63(m44)
+ 91: 7(fvec4) CompositeExtract 90 0
+ 92: 7(fvec4) CompositeExtract 89 0
+ 93: 7(fvec4) FAdd 91 92
+ 94: 7(fvec4) CompositeExtract 90 1
+ 95: 7(fvec4) CompositeExtract 89 1
+ 96: 7(fvec4) FAdd 94 95
+ 97: 7(fvec4) CompositeExtract 90 2
+ 98: 7(fvec4) CompositeExtract 89 2
+ 99: 7(fvec4) FAdd 97 98
+ 100: 7(fvec4) CompositeExtract 90 3
+ 101: 7(fvec4) CompositeExtract 89 3
+ 102: 7(fvec4) FAdd 100 101
+ 103: 61 CompositeConstruct 93 96 99 102
+ Store 63(m44) 103
+ 104: 61 Load 63(m44)
+ 105: 7(fvec4) CompositeExtract 104 0
+ 106: 7(fvec4) FNegate 105
+ 107: 7(fvec4) CompositeExtract 104 1
+ 108: 7(fvec4) FNegate 107
+ 109: 7(fvec4) CompositeExtract 104 2
+ 110: 7(fvec4) FNegate 109
+ 111: 7(fvec4) CompositeExtract 104 3
+ 112: 7(fvec4) FNegate 111
+ 113: 61 CompositeConstruct 106 108 110 112
+ 114: 7(fvec4) Load 12(v)
+ 115: 7(fvec4) MatrixTimesVector 113 114
+ 116: 7(fvec4) Load 37(FragColor)
+ 117: 7(fvec4) FAdd 116 115
+ Store 37(FragColor) 117
+ 118: 61 Load 63(m44)
+ 119: 61 Load 63(m44)
+ 120: 7(fvec4) CompositeExtract 118 0
+ 121: 7(fvec4) CompositeExtract 119 0
+ 122: 7(fvec4) FMul 120 121
+ 123: 7(fvec4) CompositeExtract 118 1
+ 124: 7(fvec4) CompositeExtract 119 1
+ 125: 7(fvec4) FMul 123 124
+ 126: 7(fvec4) CompositeExtract 118 2
+ 127: 7(fvec4) CompositeExtract 119 2
+ 128: 7(fvec4) FMul 126 127
+ 129: 7(fvec4) CompositeExtract 118 3
+ 130: 7(fvec4) CompositeExtract 119 3
+ 131: 7(fvec4) FMul 129 130
+ 132: 61 CompositeConstruct 122 125 128 131
+ 133: 7(fvec4) Load 37(FragColor)
+ 134: 7(fvec4) VectorTimesMatrix 133 132
+ Store 37(FragColor) 134
+ 135: 85 Load 87(um43)
+ 136: 8 Transpose 135
+ Store 10(m34) 136
+ 137: 7(fvec4) Load 37(FragColor)
+ 138: 8 Load 10(m34)
+ 139: 14(fvec3) VectorTimesMatrix 137 138
+ 140: 6(float) CompositeExtract 139 0
+ 141: 6(float) CompositeExtract 139 1
+ 142: 6(float) CompositeExtract 139 2
+ 143: 7(fvec4) CompositeConstruct 140 141 142 40
+ 144: 7(fvec4) Load 37(FragColor)
+ 145: 7(fvec4) FMul 144 143
+ Store 37(FragColor) 145
+ 148: 61 Load 147(um4)
+ 149: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 148
+ 150: 7(fvec4) CompositeConstruct 149 149 149 149
+ 151: 7(fvec4) Load 37(FragColor)
+ 152: 7(fvec4) FMul 151 150
+ Store 37(FragColor) 152
+ 159: 154 Load 158(um2)
+ 160: 154 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 159
+ Store 156(inv) 160
+ 164: 163(ptr) AccessChain 156(inv) 162 55
+ 165: 6(float) Load 164
+ 167: 163(ptr) AccessChain 156(inv) 166 55
+ 168: 6(float) Load 167
+ 170: 163(ptr) AccessChain 156(inv) 162 169
+ 171: 6(float) Load 170
+ 172: 163(ptr) AccessChain 156(inv) 166 169
+ 173: 6(float) Load 172
+ 174: 7(fvec4) CompositeConstruct 165 168 171 173
+ 175: 7(fvec4) Load 37(FragColor)
+ 176: 7(fvec4) FMul 175 174
+ Store 37(FragColor) 176
+ 182: 177 Load 181(um3)
+ 183: 177 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 182
+ Store 179(inv3) 183
+ 185: 163(ptr) AccessChain 179(inv3) 184 169
+ 186: 6(float) Load 185
+ 187: 7(fvec4) CompositeConstruct 186 186 186 186
+ 188: 7(fvec4) Load 37(FragColor)
+ 189: 7(fvec4) FMul 188 187
+ Store 37(FragColor) 189
+ 191: 61 Load 147(um4)
+ 192: 61 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 191
+ Store 190(inv4) 192
+ 193: 61 Load 190(inv4)
+ 194: 7(fvec4) Load 37(FragColor)
+ 195: 7(fvec4) VectorTimesMatrix 194 193
+ Store 37(FragColor) 195
+ 196: 7(fvec4) Load 37(FragColor)
+ 197: 8 Load 65(un34)
+ 198: 8 Load 65(un34)
+ 199: 7(fvec4) CompositeExtract 197 0
+ 200: 7(fvec4) CompositeExtract 198 0
+ 201: 7(fvec4) FMul 199 200
+ 202: 7(fvec4) CompositeExtract 197 1
+ 203: 7(fvec4) CompositeExtract 198 1
+ 204: 7(fvec4) FMul 202 203
+ 205: 7(fvec4) CompositeExtract 197 2
+ 206: 7(fvec4) CompositeExtract 198 2
+ 207: 7(fvec4) FMul 205 206
+ 208: 8 CompositeConstruct 201 204 207
+ 209: 14(fvec3) VectorTimesMatrix 196 208
+ 212: 211(ptr) AccessChain 37(FragColor) 210
+ 213: 6(float) Load 212
+ 214: 6(float) CompositeExtract 209 0
+ 215: 6(float) CompositeExtract 209 1
+ 216: 6(float) CompositeExtract 209 2
+ 217: 7(fvec4) CompositeConstruct 214 215 216 213
+ Store 37(FragColor) 217
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.memoryQualifier.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.memoryQualifier.frag.out
new file mode 100644
index 00000000000..e2bfb392948
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.memoryQualifier.frag.out
@@ -0,0 +1,181 @@
+spv.memoryQualifier.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 97
+
+ Capability Shader
+ Capability SampledRect
+ Capability Sampled1D
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main"
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 450
+ Name 4 "main"
+ Name 9 "texel"
+ Name 12 "i1D"
+ Name 19 "i2D"
+ Name 28 "i2DRect"
+ Name 35 "i3D"
+ Name 44 "iCube"
+ Name 49 "Data"
+ MemberName 49(Data) 0 "f1"
+ MemberName 49(Data) 1 "f2"
+ Name 50 "Buffer"
+ MemberName 50(Buffer) 0 "f1"
+ MemberName 50(Buffer) 1 "f2"
+ MemberName 50(Buffer) 2 "f3"
+ MemberName 50(Buffer) 3 "f4"
+ MemberName 50(Buffer) 4 "i1"
+ MemberName 50(Buffer) 5 "data"
+ Name 52 ""
+ Decorate 12(i1D) DescriptorSet 0
+ Decorate 12(i1D) Binding 0
+ Decorate 12(i1D) Coherent
+ Decorate 19(i2D) DescriptorSet 0
+ Decorate 19(i2D) Binding 1
+ Decorate 19(i2D) Volatile
+ Decorate 28(i2DRect) DescriptorSet 0
+ Decorate 28(i2DRect) Binding 2
+ Decorate 28(i2DRect) Restrict
+ Decorate 35(i3D) DescriptorSet 0
+ Decorate 35(i3D) Binding 3
+ Decorate 35(i3D) NonWritable
+ Decorate 44(iCube) DescriptorSet 0
+ Decorate 44(iCube) Binding 3
+ Decorate 44(iCube) NonReadable
+ MemberDecorate 49(Data) 0 Coherent
+ MemberDecorate 49(Data) 0 Offset 0
+ MemberDecorate 49(Data) 1 Coherent
+ MemberDecorate 49(Data) 1 Offset 8
+ MemberDecorate 50(Buffer) 0 Coherent
+ MemberDecorate 50(Buffer) 0 Volatile
+ MemberDecorate 50(Buffer) 0 Offset 0
+ MemberDecorate 50(Buffer) 1 Coherent
+ MemberDecorate 50(Buffer) 1 Restrict
+ MemberDecorate 50(Buffer) 1 Offset 8
+ MemberDecorate 50(Buffer) 2 Coherent
+ MemberDecorate 50(Buffer) 2 NonWritable
+ MemberDecorate 50(Buffer) 2 Offset 16
+ MemberDecorate 50(Buffer) 3 Coherent
+ MemberDecorate 50(Buffer) 3 NonReadable
+ MemberDecorate 50(Buffer) 3 Offset 32
+ MemberDecorate 50(Buffer) 4 Coherent
+ MemberDecorate 50(Buffer) 4 Offset 48
+ MemberDecorate 50(Buffer) 5 Coherent
+ MemberDecorate 50(Buffer) 5 Offset 56
+ Decorate 50(Buffer) BufferBlock
+ Decorate 52 DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+ 10: TypeImage 6(float) 1D nonsampled format:R32f
+ 11: TypePointer UniformConstant 10
+ 12(i1D): 11(ptr) Variable UniformConstant
+ 14: TypeInt 32 1
+ 15: 14(int) Constant 1
+ 17: TypeImage 6(float) 2D nonsampled format:R32f
+ 18: TypePointer UniformConstant 17
+ 19(i2D): 18(ptr) Variable UniformConstant
+ 21: TypeVector 14(int) 2
+ 22: 21(ivec2) ConstantComposite 15 15
+ 26: TypeImage 6(float) Rect nonsampled format:R32f
+ 27: TypePointer UniformConstant 26
+ 28(i2DRect): 27(ptr) Variable UniformConstant
+ 33: TypeImage 6(float) 3D nonsampled format:R32f
+ 34: TypePointer UniformConstant 33
+ 35(i3D): 34(ptr) Variable UniformConstant
+ 37: TypeVector 14(int) 3
+ 38: 37(ivec3) ConstantComposite 15 15 15
+ 42: TypeImage 6(float) Cube nonsampled format:R32f
+ 43: TypePointer UniformConstant 42
+ 44(iCube): 43(ptr) Variable UniformConstant
+ 47: TypeVector 6(float) 2
+ 48: TypeVector 6(float) 3
+ 49(Data): TypeStruct 6(float) 47(fvec2)
+ 50(Buffer): TypeStruct 6(float) 47(fvec2) 48(fvec3) 7(fvec4) 14(int) 49(Data)
+ 51: TypePointer Uniform 50(Buffer)
+ 52: 51(ptr) Variable Uniform
+ 53: 14(int) Constant 4
+ 54: TypePointer Uniform 14(int)
+ 57: 14(int) Constant 0
+ 58: TypePointer Uniform 6(float)
+ 61: TypePointer Function 6(float)
+ 63: TypePointer Uniform 47(fvec2)
+ 71: 14(int) Constant 2
+ 72: TypePointer Uniform 48(fvec3)
+ 80: 14(int) Constant 5
+ 83: TypeInt 32 0
+ 84: 83(int) Constant 1
+ 88: 83(int) Constant 3
+ 93: 14(int) Constant 3
+ 95: TypePointer Uniform 7(fvec4)
+ 4(main): 2 Function None 3
+ 5: Label
+ 9(texel): 8(ptr) Variable Function
+ 13: 10 Load 12(i1D)
+ 16: 7(fvec4) ImageRead 13 15
+ Store 9(texel) 16
+ 20: 17 Load 19(i2D)
+ 23: 7(fvec4) ImageRead 20 22
+ 24: 7(fvec4) Load 9(texel)
+ 25: 7(fvec4) FAdd 24 23
+ Store 9(texel) 25
+ 29: 26 Load 28(i2DRect)
+ 30: 7(fvec4) ImageRead 29 22
+ 31: 7(fvec4) Load 9(texel)
+ 32: 7(fvec4) FAdd 31 30
+ Store 9(texel) 32
+ 36: 33 Load 35(i3D)
+ 39: 7(fvec4) ImageRead 36 38
+ 40: 7(fvec4) Load 9(texel)
+ 41: 7(fvec4) FAdd 40 39
+ Store 9(texel) 41
+ 45: 42 Load 44(iCube)
+ 46: 7(fvec4) Load 9(texel)
+ ImageWrite 45 38 46
+ 55: 54(ptr) AccessChain 52 53
+ 56: 14(int) Load 55
+ 59: 58(ptr) AccessChain 52 57
+ 60: 6(float) Load 59
+ 62: 61(ptr) AccessChain 9(texel) 56
+ Store 62 60
+ 64: 63(ptr) AccessChain 52 15
+ 65: 47(fvec2) Load 64
+ 66: 7(fvec4) Load 9(texel)
+ 67: 47(fvec2) VectorShuffle 66 66 0 1
+ 68: 47(fvec2) FAdd 67 65
+ 69: 7(fvec4) Load 9(texel)
+ 70: 7(fvec4) VectorShuffle 69 68 4 5 2 3
+ Store 9(texel) 70
+ 73: 72(ptr) AccessChain 52 71
+ 74: 48(fvec3) Load 73
+ 75: 7(fvec4) Load 9(texel)
+ 76: 48(fvec3) VectorShuffle 75 75 0 1 2
+ 77: 48(fvec3) FSub 76 74
+ 78: 7(fvec4) Load 9(texel)
+ 79: 7(fvec4) VectorShuffle 78 77 4 5 6 3
+ Store 9(texel) 79
+ 81: 58(ptr) AccessChain 52 80 57
+ 82: 6(float) Load 81
+ 85: 58(ptr) AccessChain 52 80 15 84
+ 86: 6(float) Load 85
+ 87: 6(float) FAdd 82 86
+ 89: 61(ptr) AccessChain 9(texel) 88
+ 90: 6(float) Load 89
+ 91: 6(float) FAdd 90 87
+ 92: 61(ptr) AccessChain 9(texel) 88
+ Store 92 91
+ 94: 7(fvec4) Load 9(texel)
+ 96: 95(ptr) AccessChain 52 93
+ Store 96 94
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.merge-unreachable.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.merge-unreachable.frag.out
new file mode 100644
index 00000000000..6e326187b21
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.merge-unreachable.frag.out
@@ -0,0 +1,47 @@
+spv.merge-unreachable.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 25
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 9
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 450
+ Name 4 "main"
+ Name 9 "v"
+ Decorate 9(v) Location 1
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Input 7(fvec4)
+ 9(v): 8(ptr) Variable Input
+ 11: 6(float) Constant 1036831949
+ 12: 6(float) Constant 1045220557
+ 13: 6(float) Constant 1050253722
+ 14: 6(float) Constant 1053609165
+ 15: 7(fvec4) ConstantComposite 11 12 13 14
+ 16: TypeBool
+ 17: TypeVector 16(bool) 4
+ 4(main): 2 Function None 3
+ 5: Label
+ 10: 7(fvec4) Load 9(v)
+ 18: 17(bvec4) FOrdEqual 10 15
+ 19: 16(bool) All 18
+ SelectionMerge 21 None
+ BranchConditional 19 20 23
+ 20: Label
+ Kill
+ 23: Label
+ Return
+ 21: Label
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.newTexture.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.newTexture.frag.out
new file mode 100755
index 00000000000..4390e26d401
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.newTexture.frag.out
@@ -0,0 +1,385 @@
+spv.newTexture.frag
+Warning, version 430 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 282
+
+ Capability Shader
+ Capability SampledRect
+ Capability SampledCubeArray
+ Capability ImageQuery
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 17 26 29 55 81 84 92 251 281
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 430
+ Name 4 "main"
+ Name 9 "v"
+ Name 13 "s2D"
+ Name 17 "c2D"
+ Name 23 "sCubeArrayShadow"
+ Name 26 "c4D"
+ Name 29 "c1D"
+ Name 42 "s3D"
+ Name 51 "s2DArray"
+ Name 55 "c3D"
+ Name 64 "s2DShadow"
+ Name 81 "ic3D"
+ Name 84 "ic1D"
+ Name 92 "ic2D"
+ Name 102 "sr"
+ Name 128 "sCube"
+ Name 139 "s2DArrayShadow"
+ Name 167 "iv"
+ Name 171 "is2D"
+ Name 206 "is3D"
+ Name 218 "isCube"
+ Name 230 "is2DArray"
+ Name 241 "iv2"
+ Name 245 "sCubeShadow"
+ Name 251 "FragData"
+ Name 263 "is2Dms"
+ Name 267 "us2D"
+ Name 271 "us3D"
+ Name 275 "usCube"
+ Name 279 "us2DArray"
+ Name 281 "ic4D"
+ Decorate 13(s2D) DescriptorSet 0
+ Decorate 23(sCubeArrayShadow) DescriptorSet 0
+ Decorate 42(s3D) DescriptorSet 0
+ Decorate 51(s2DArray) DescriptorSet 0
+ Decorate 64(s2DShadow) DescriptorSet 0
+ Decorate 81(ic3D) Flat
+ Decorate 84(ic1D) Flat
+ Decorate 92(ic2D) Flat
+ Decorate 102(sr) DescriptorSet 0
+ Decorate 128(sCube) DescriptorSet 0
+ Decorate 139(s2DArrayShadow) DescriptorSet 0
+ Decorate 171(is2D) DescriptorSet 0
+ Decorate 206(is3D) DescriptorSet 0
+ Decorate 218(isCube) DescriptorSet 0
+ Decorate 230(is2DArray) DescriptorSet 0
+ Decorate 245(sCubeShadow) DescriptorSet 0
+ Decorate 263(is2Dms) DescriptorSet 0
+ Decorate 267(us2D) DescriptorSet 0
+ Decorate 271(us3D) DescriptorSet 0
+ Decorate 275(usCube) DescriptorSet 0
+ Decorate 279(us2DArray) DescriptorSet 0
+ Decorate 281(ic4D) Flat
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+ 10: TypeImage 6(float) 2D sampled format:Unknown
+ 11: TypeSampledImage 10
+ 12: TypePointer UniformConstant 11
+ 13(s2D): 12(ptr) Variable UniformConstant
+ 15: TypeVector 6(float) 2
+ 16: TypePointer Input 15(fvec2)
+ 17(c2D): 16(ptr) Variable Input
+ 20: TypeImage 6(float) Cube depth array sampled format:Unknown
+ 21: TypeSampledImage 20
+ 22: TypePointer UniformConstant 21
+23(sCubeArrayShadow): 22(ptr) Variable UniformConstant
+ 25: TypePointer Input 7(fvec4)
+ 26(c4D): 25(ptr) Variable Input
+ 28: TypePointer Input 6(float)
+ 29(c1D): 28(ptr) Variable Input
+ 32: TypeInt 32 0
+ 33: 32(int) Constant 1
+ 34: TypePointer Function 6(float)
+ 39: TypeImage 6(float) 3D sampled format:Unknown
+ 40: TypeSampledImage 39
+ 41: TypePointer UniformConstant 40
+ 42(s3D): 41(ptr) Variable UniformConstant
+ 48: TypeImage 6(float) 2D array sampled format:Unknown
+ 49: TypeSampledImage 48
+ 50: TypePointer UniformConstant 49
+ 51(s2DArray): 50(ptr) Variable UniformConstant
+ 53: TypeVector 6(float) 3
+ 54: TypePointer Input 53(fvec3)
+ 55(c3D): 54(ptr) Variable Input
+ 57: 6(float) Constant 1067030938
+ 61: TypeImage 6(float) 2D depth sampled format:Unknown
+ 62: TypeSampledImage 61
+ 63: TypePointer UniformConstant 62
+ 64(s2DShadow): 63(ptr) Variable UniformConstant
+ 67: TypeInt 32 1
+ 68: TypeVector 67(int) 2
+ 69: 67(int) Constant 3
+ 70: 68(ivec2) ConstantComposite 69 69
+ 79: TypeVector 67(int) 3
+ 80: TypePointer Input 79(ivec3)
+ 81(ic3D): 80(ptr) Variable Input
+ 83: TypePointer Input 67(int)
+ 84(ic1D): 83(ptr) Variable Input
+ 91: TypePointer Input 68(ivec2)
+ 92(ic2D): 91(ptr) Variable Input
+ 94: 67(int) Constant 4
+ 99: TypeImage 6(float) Rect sampled format:Unknown
+ 100: TypeSampledImage 99
+ 101: TypePointer UniformConstant 100
+ 102(sr): 101(ptr) Variable UniformConstant
+ 105: 68(ivec2) ConstantComposite 94 94
+ 125: TypeImage 6(float) Cube sampled format:Unknown
+ 126: TypeSampledImage 125
+ 127: TypePointer UniformConstant 126
+ 128(sCube): 127(ptr) Variable UniformConstant
+ 136: TypeImage 6(float) 2D depth array sampled format:Unknown
+ 137: TypeSampledImage 136
+ 138: TypePointer UniformConstant 137
+139(s2DArrayShadow): 138(ptr) Variable UniformConstant
+ 146: 32(int) Constant 0
+ 165: TypeVector 67(int) 4
+ 166: TypePointer Function 165(ivec4)
+ 168: TypeImage 67(int) 2D sampled format:Unknown
+ 169: TypeSampledImage 168
+ 170: TypePointer UniformConstant 169
+ 171(is2D): 170(ptr) Variable UniformConstant
+ 203: TypeImage 67(int) 3D sampled format:Unknown
+ 204: TypeSampledImage 203
+ 205: TypePointer UniformConstant 204
+ 206(is3D): 205(ptr) Variable UniformConstant
+ 209: 6(float) Constant 1082549862
+ 215: TypeImage 67(int) Cube sampled format:Unknown
+ 216: TypeSampledImage 215
+ 217: TypePointer UniformConstant 216
+ 218(isCube): 217(ptr) Variable UniformConstant
+ 227: TypeImage 67(int) 2D array sampled format:Unknown
+ 228: TypeSampledImage 227
+ 229: TypePointer UniformConstant 228
+ 230(is2DArray): 229(ptr) Variable UniformConstant
+ 240: TypePointer Function 68(ivec2)
+ 242: TypeImage 6(float) Cube depth sampled format:Unknown
+ 243: TypeSampledImage 242
+ 244: TypePointer UniformConstant 243
+245(sCubeShadow): 244(ptr) Variable UniformConstant
+ 247: 67(int) Constant 2
+ 250: TypePointer Output 7(fvec4)
+ 251(FragData): 250(ptr) Variable Output
+ 255: 6(float) Constant 0
+ 260: TypeImage 67(int) 2D multi-sampled sampled format:Unknown
+ 261: TypeSampledImage 260
+ 262: TypePointer UniformConstant 261
+ 263(is2Dms): 262(ptr) Variable UniformConstant
+ 264: TypeImage 32(int) 2D sampled format:Unknown
+ 265: TypeSampledImage 264
+ 266: TypePointer UniformConstant 265
+ 267(us2D): 266(ptr) Variable UniformConstant
+ 268: TypeImage 32(int) 3D sampled format:Unknown
+ 269: TypeSampledImage 268
+ 270: TypePointer UniformConstant 269
+ 271(us3D): 270(ptr) Variable UniformConstant
+ 272: TypeImage 32(int) Cube sampled format:Unknown
+ 273: TypeSampledImage 272
+ 274: TypePointer UniformConstant 273
+ 275(usCube): 274(ptr) Variable UniformConstant
+ 276: TypeImage 32(int) 2D array sampled format:Unknown
+ 277: TypeSampledImage 276
+ 278: TypePointer UniformConstant 277
+ 279(us2DArray): 278(ptr) Variable UniformConstant
+ 280: TypePointer Input 165(ivec4)
+ 281(ic4D): 280(ptr) Variable Input
+ 4(main): 2 Function None 3
+ 5: Label
+ 9(v): 8(ptr) Variable Function
+ 167(iv): 166(ptr) Variable Function
+ 241(iv2): 240(ptr) Variable Function
+ 14: 11 Load 13(s2D)
+ 18: 15(fvec2) Load 17(c2D)
+ 19: 7(fvec4) ImageSampleImplicitLod 14 18
+ Store 9(v) 19
+ 24: 21 Load 23(sCubeArrayShadow)
+ 27: 7(fvec4) Load 26(c4D)
+ 30: 6(float) Load 29(c1D)
+ 31: 6(float) ImageSampleDrefImplicitLod 24 27 30
+ 35: 34(ptr) AccessChain 9(v) 33
+ 36: 6(float) Load 35
+ 37: 6(float) FAdd 36 31
+ 38: 34(ptr) AccessChain 9(v) 33
+ Store 38 37
+ 43: 40 Load 42(s3D)
+ 44: 7(fvec4) Load 26(c4D)
+ 45: 7(fvec4) ImageSampleProjImplicitLod 43 44
+ 46: 7(fvec4) Load 9(v)
+ 47: 7(fvec4) FAdd 46 45
+ Store 9(v) 47
+ 52: 49 Load 51(s2DArray)
+ 56: 53(fvec3) Load 55(c3D)
+ 58: 7(fvec4) ImageSampleExplicitLod 52 56 Lod 57
+ 59: 7(fvec4) Load 9(v)
+ 60: 7(fvec4) FAdd 59 58
+ Store 9(v) 60
+ 65: 62 Load 64(s2DShadow)
+ 66: 53(fvec3) Load 55(c3D)
+ 71: 6(float) Load 29(c1D)
+ 72: 6(float) CompositeExtract 66 2
+ 73: 6(float) ImageSampleDrefImplicitLod 65 66 72 Bias ConstOffset 71 70
+ 74: 34(ptr) AccessChain 9(v) 33
+ 75: 6(float) Load 74
+ 76: 6(float) FAdd 75 73
+ 77: 34(ptr) AccessChain 9(v) 33
+ Store 77 76
+ 78: 40 Load 42(s3D)
+ 82: 79(ivec3) Load 81(ic3D)
+ 85: 67(int) Load 84(ic1D)
+ 86: 39 Image 78
+ 87: 7(fvec4) ImageFetch 86 82 Lod 85
+ 88: 7(fvec4) Load 9(v)
+ 89: 7(fvec4) FAdd 88 87
+ Store 9(v) 89
+ 90: 11 Load 13(s2D)
+ 93: 68(ivec2) Load 92(ic2D)
+ 95: 10 Image 90
+ 96: 7(fvec4) ImageFetch 95 93 Lod ConstOffset 94 70
+ 97: 7(fvec4) Load 9(v)
+ 98: 7(fvec4) FAdd 97 96
+ Store 9(v) 98
+ 103: 100 Load 102(sr)
+ 104: 68(ivec2) Load 92(ic2D)
+ 106: 99 Image 103
+ 107: 7(fvec4) ImageFetch 106 104 ConstOffset 105
+ 108: 7(fvec4) Load 9(v)
+ 109: 7(fvec4) FAdd 108 107
+ Store 9(v) 109
+ 110: 62 Load 64(s2DShadow)
+ 111: 53(fvec3) Load 55(c3D)
+ 112: 6(float) Load 29(c1D)
+ 113: 6(float) CompositeExtract 111 2
+ 114: 6(float) ImageSampleDrefExplicitLod 110 111 113 Lod ConstOffset 112 70
+ 115: 34(ptr) AccessChain 9(v) 33
+ 116: 6(float) Load 115
+ 117: 6(float) FAdd 116 114
+ 118: 34(ptr) AccessChain 9(v) 33
+ Store 118 117
+ 119: 11 Load 13(s2D)
+ 120: 53(fvec3) Load 55(c3D)
+ 121: 6(float) Load 29(c1D)
+ 122: 7(fvec4) ImageSampleProjExplicitLod 119 120 Lod ConstOffset 121 70
+ 123: 7(fvec4) Load 9(v)
+ 124: 7(fvec4) FAdd 123 122
+ Store 9(v) 124
+ 129: 126 Load 128(sCube)
+ 130: 53(fvec3) Load 55(c3D)
+ 131: 53(fvec3) Load 55(c3D)
+ 132: 53(fvec3) Load 55(c3D)
+ 133: 7(fvec4) ImageSampleExplicitLod 129 130 Grad 131 132
+ 134: 7(fvec4) Load 9(v)
+ 135: 7(fvec4) FAdd 134 133
+ Store 9(v) 135
+ 140: 137 Load 139(s2DArrayShadow)
+ 141: 7(fvec4) Load 26(c4D)
+ 142: 15(fvec2) Load 17(c2D)
+ 143: 15(fvec2) Load 17(c2D)
+ 144: 6(float) CompositeExtract 141 3
+ 145: 6(float) ImageSampleDrefExplicitLod 140 141 144 Grad ConstOffset 142 143 70
+ 147: 34(ptr) AccessChain 9(v) 146
+ 148: 6(float) Load 147
+ 149: 6(float) FAdd 148 145
+ 150: 34(ptr) AccessChain 9(v) 146
+ Store 150 149
+ 151: 40 Load 42(s3D)
+ 152: 7(fvec4) Load 26(c4D)
+ 153: 53(fvec3) Load 55(c3D)
+ 154: 53(fvec3) Load 55(c3D)
+ 155: 7(fvec4) ImageSampleProjExplicitLod 151 152 Grad 153 154
+ 156: 7(fvec4) Load 9(v)
+ 157: 7(fvec4) FAdd 156 155
+ Store 9(v) 157
+ 158: 11 Load 13(s2D)
+ 159: 53(fvec3) Load 55(c3D)
+ 160: 15(fvec2) Load 17(c2D)
+ 161: 15(fvec2) Load 17(c2D)
+ 162: 7(fvec4) ImageSampleProjExplicitLod 158 159 Grad ConstOffset 160 161 70
+ 163: 7(fvec4) Load 9(v)
+ 164: 7(fvec4) FAdd 163 162
+ Store 9(v) 164
+ 172: 169 Load 171(is2D)
+ 173: 15(fvec2) Load 17(c2D)
+ 174: 165(ivec4) ImageSampleImplicitLod 172 173
+ Store 167(iv) 174
+ 175: 165(ivec4) Load 167(iv)
+ 176: 7(fvec4) ConvertSToF 175
+ 177: 7(fvec4) Load 9(v)
+ 178: 7(fvec4) FAdd 177 176
+ Store 9(v) 178
+ 179: 169 Load 171(is2D)
+ 180: 7(fvec4) Load 26(c4D)
+ 181: 165(ivec4) ImageSampleProjImplicitLod 179 180 ConstOffset 70
+ Store 167(iv) 181
+ 182: 165(ivec4) Load 167(iv)
+ 183: 7(fvec4) ConvertSToF 182
+ 184: 7(fvec4) Load 9(v)
+ 185: 7(fvec4) FAdd 184 183
+ Store 9(v) 185
+ 186: 169 Load 171(is2D)
+ 187: 53(fvec3) Load 55(c3D)
+ 188: 6(float) Load 29(c1D)
+ 189: 165(ivec4) ImageSampleProjExplicitLod 186 187 Lod 188
+ Store 167(iv) 189
+ 190: 165(ivec4) Load 167(iv)
+ 191: 7(fvec4) ConvertSToF 190
+ 192: 7(fvec4) Load 9(v)
+ 193: 7(fvec4) FAdd 192 191
+ Store 9(v) 193
+ 194: 169 Load 171(is2D)
+ 195: 53(fvec3) Load 55(c3D)
+ 196: 15(fvec2) Load 17(c2D)
+ 197: 15(fvec2) Load 17(c2D)
+ 198: 165(ivec4) ImageSampleProjExplicitLod 194 195 Grad 196 197
+ Store 167(iv) 198
+ 199: 165(ivec4) Load 167(iv)
+ 200: 7(fvec4) ConvertSToF 199
+ 201: 7(fvec4) Load 9(v)
+ 202: 7(fvec4) FAdd 201 200
+ Store 9(v) 202
+ 207: 204 Load 206(is3D)
+ 208: 53(fvec3) Load 55(c3D)
+ 210: 165(ivec4) ImageSampleImplicitLod 207 208 Bias 209
+ Store 167(iv) 210
+ 211: 165(ivec4) Load 167(iv)
+ 212: 7(fvec4) ConvertSToF 211
+ 213: 7(fvec4) Load 9(v)
+ 214: 7(fvec4) FAdd 213 212
+ Store 9(v) 214
+ 219: 216 Load 218(isCube)
+ 220: 53(fvec3) Load 55(c3D)
+ 221: 6(float) Load 29(c1D)
+ 222: 165(ivec4) ImageSampleExplicitLod 219 220 Lod 221
+ Store 167(iv) 222
+ 223: 165(ivec4) Load 167(iv)
+ 224: 7(fvec4) ConvertSToF 223
+ 225: 7(fvec4) Load 9(v)
+ 226: 7(fvec4) FAdd 225 224
+ Store 9(v) 226
+ 231: 228 Load 230(is2DArray)
+ 232: 79(ivec3) Load 81(ic3D)
+ 233: 67(int) Load 84(ic1D)
+ 234: 227 Image 231
+ 235: 165(ivec4) ImageFetch 234 232 Lod 233
+ Store 167(iv) 235
+ 236: 165(ivec4) Load 167(iv)
+ 237: 7(fvec4) ConvertSToF 236
+ 238: 7(fvec4) Load 9(v)
+ 239: 7(fvec4) FAdd 238 237
+ Store 9(v) 239
+ 246: 243 Load 245(sCubeShadow)
+ 248: 242 Image 246
+ 249: 68(ivec2) ImageQuerySizeLod 248 247
+ Store 241(iv2) 249
+ 252: 7(fvec4) Load 9(v)
+ 253: 68(ivec2) Load 241(iv2)
+ 254: 15(fvec2) ConvertSToF 253
+ 256: 6(float) CompositeExtract 254 0
+ 257: 6(float) CompositeExtract 254 1
+ 258: 7(fvec4) CompositeConstruct 256 257 255 255
+ 259: 7(fvec4) FAdd 252 258
+ Store 251(FragData) 259
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.noDeadDecorations.vert.out b/chromium/third_party/glslang/src/Test/baseResults/spv.noDeadDecorations.vert.out
new file mode 100644
index 00000000000..e9b23566a4b
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.noDeadDecorations.vert.out
@@ -0,0 +1,64 @@
+spv.noDeadDecorations.vert
+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 32
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Vertex 4 "main" 22
+ Source ESSL 310
+ Name 4 "main"
+ Name 10 "func(f1;"
+ Name 9 "a"
+ Name 20 "gl_PerVertex"
+ MemberName 20(gl_PerVertex) 0 "gl_Position"
+ MemberName 20(gl_PerVertex) 1 "gl_PointSize"
+ Name 22 ""
+ Name 26 "param"
+ Decorate 10(func(f1;) RelaxedPrecision
+ Decorate 9(a) RelaxedPrecision
+ Decorate 12 RelaxedPrecision
+ Decorate 13 RelaxedPrecision
+ MemberDecorate 20(gl_PerVertex) 0 BuiltIn Position
+ MemberDecorate 20(gl_PerVertex) 1 BuiltIn PointSize
+ Decorate 20(gl_PerVertex) Block
+ Decorate 27 RelaxedPrecision
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypePointer Function 6(float)
+ 8: TypeFunction 6(float) 7(ptr)
+ 16: 6(float) Constant 3212836864
+ 19: TypeVector 6(float) 4
+20(gl_PerVertex): TypeStruct 19(fvec4) 6(float)
+ 21: TypePointer Output 20(gl_PerVertex)
+ 22: 21(ptr) Variable Output
+ 23: TypeInt 32 1
+ 24: 23(int) Constant 0
+ 25: 6(float) Constant 0
+ 28: TypeInt 32 0
+ 29: 28(int) Constant 0
+ 30: TypePointer Output 6(float)
+ 4(main): 2 Function None 3
+ 5: Label
+ 26(param): 7(ptr) Variable Function
+ Store 26(param) 25
+ 27: 6(float) FunctionCall 10(func(f1;) 26(param)
+ 31: 30(ptr) AccessChain 22 24 29
+ Store 31 27
+ Return
+ FunctionEnd
+ 10(func(f1;): 6(float) Function None 8
+ 9(a): 7(ptr) FunctionParameter
+ 11: Label
+ 12: 6(float) Load 9(a)
+ 13: 6(float) FNegate 12
+ ReturnValue 13
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.nonSquare.vert.out b/chromium/third_party/glslang/src/Test/baseResults/spv.nonSquare.vert.out
new file mode 100755
index 00000000000..329a71cb299
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.nonSquare.vert.out
@@ -0,0 +1,116 @@
+spv.nonSquare.vert
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 90
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Vertex 4 "main" 12 22 28 55
+ Source GLSL 140
+ Name 4 "main"
+ Name 9 "a"
+ Name 12 "v3"
+ Name 16 "m23"
+ Name 19 "b"
+ Name 22 "m32"
+ Name 28 "gl_Position"
+ Name 55 "v4"
+ Decorate 28(gl_Position) BuiltIn Position
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 2
+ 8: TypePointer Function 7(fvec2)
+ 10: TypeVector 6(float) 3
+ 11: TypePointer Input 10(fvec3)
+ 12(v3): 11(ptr) Variable Input
+ 14: TypeMatrix 10(fvec3) 2
+ 15: TypePointer Function 14
+ 20: TypeMatrix 7(fvec2) 3
+ 21: TypePointer Output 20
+ 22(m32): 21(ptr) Variable Output
+ 26: TypeVector 6(float) 4
+ 27: TypePointer Output 26(fvec4)
+ 28(gl_Position): 27(ptr) Variable Output
+ 31: TypeMatrix 10(fvec3) 3
+ 35: 6(float) Constant 0
+ 40: TypeMatrix 26(fvec4) 4
+ 41: 6(float) Constant 1077936128
+ 42: 6(float) Constant 1086324736
+ 43: 26(fvec4) ConstantComposite 41 42 35 35
+ 44: 6(float) Constant 1091567616
+ 45: 6(float) Constant 1094713344
+ 46: 26(fvec4) ConstantComposite 44 45 35 35
+ 47: 6(float) Constant 1097859072
+ 48: 6(float) Constant 1099956224
+ 49: 26(fvec4) ConstantComposite 47 48 35 35
+ 50: 6(float) Constant 1101529088
+ 51: 6(float) Constant 1103101952
+ 52: 26(fvec4) ConstantComposite 50 51 35 35
+ 53: 40 ConstantComposite 43 46 49 52
+ 54: TypePointer Input 26(fvec4)
+ 55(v4): 54(ptr) Variable Input
+ 59: 6(float) Constant 1112014848
+ 60: 6(float) Constant 1121714176
+ 61: 6(float) Constant 1126825984
+ 62: 6(float) Constant 1130758144
+ 63: 26(fvec4) ConstantComposite 59 60 61 62
+ 65: 6(float) Constant 1106247680
+ 66: 6(float) Constant 1114636288
+ 67: 26(fvec4) ConstantComposite 65 66 35 35
+ 69: 6(float) Constant 1101004800
+ 70: 6(float) Constant 1092616192
+ 71: 6(float) Constant 1084227584
+ 72: 26(fvec4) ConstantComposite 69 70 42 71
+ 74: 7(fvec2) ConstantComposite 70 69
+ 75: TypeMatrix 26(fvec4) 2
+ 76: 26(fvec4) ConstantComposite 41 35 35 35
+ 77: 26(fvec4) ConstantComposite 35 41 35 35
+ 78: 75 ConstantComposite 76 77
+ 79: TypeMatrix 7(fvec2) 4
+ 80: 6(float) Constant 1065353216
+ 81: 6(float) Constant 1073741824
+ 82: 7(fvec2) ConstantComposite 80 81
+ 83: 6(float) Constant 1082130432
+ 84: 7(fvec2) ConstantComposite 41 83
+ 85: 7(fvec2) ConstantComposite 71 42
+ 86: 6(float) Constant 1088421888
+ 87: 6(float) Constant 1090519040
+ 88: 7(fvec2) ConstantComposite 86 87
+ 89: 79 ConstantComposite 82 84 85 88
+ 4(main): 2 Function None 3
+ 5: Label
+ 9(a): 8(ptr) Variable Function
+ 16(m23): 15(ptr) Variable Function
+ 19(b): 8(ptr) Variable Function
+ 13: 10(fvec3) Load 12(v3)
+ 17: 14 Load 16(m23)
+ 18: 7(fvec2) VectorTimesMatrix 13 17
+ Store 9(a) 18
+ 23: 20 Load 22(m32)
+ 24: 10(fvec3) Load 12(v3)
+ 25: 7(fvec2) MatrixTimesVector 23 24
+ Store 19(b) 25
+ 29: 14 Load 16(m23)
+ 30: 20 Load 22(m32)
+ 32: 31 MatrixTimesMatrix 29 30
+ 33: 10(fvec3) Load 12(v3)
+ 34: 10(fvec3) MatrixTimesVector 32 33
+ 36: 6(float) CompositeExtract 34 0
+ 37: 6(float) CompositeExtract 34 1
+ 38: 6(float) CompositeExtract 34 2
+ 39: 26(fvec4) CompositeConstruct 36 37 38 35
+ 56: 26(fvec4) Load 55(v4)
+ 57: 26(fvec4) MatrixTimesVector 53 56
+ 58: 26(fvec4) FAdd 39 57
+ 64: 26(fvec4) FAdd 58 63
+ 68: 26(fvec4) FAdd 64 67
+ 73: 26(fvec4) FAdd 68 72
+ Store 28(gl_Position) 73
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.precise.tesc.out b/chromium/third_party/glslang/src/Test/baseResults/spv.precise.tesc.out
new file mode 100644
index 00000000000..0331a14ac00
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.precise.tesc.out
@@ -0,0 +1,122 @@
+spv.precise.tesc
+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked tessellation control stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 72
+
+ Capability Tessellation
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint TessellationControl 4 "main" 12 15 20 30 40 45
+ ExecutionMode 4 OutputVertices 3
+ Source ESSL 310
+ SourceExtension "GL_EXT_gpu_shader5"
+ SourceExtension "GL_EXT_shader_io_blocks"
+ SourceExtension "GL_EXT_tessellation_shader"
+ Name 4 "main"
+ Name 12 "in_te_position"
+ Name 15 "gl_InvocationID"
+ Name 20 "in_tc_position"
+ Name 30 "gl_TessLevelInner"
+ Name 40 "gl_TessLevelOuter"
+ Name 45 "in_tc_tessParam"
+ Decorate 12(in_te_position) Location 0
+ Decorate 15(gl_InvocationID) BuiltIn InvocationId
+ Decorate 20(in_tc_position) Location 0
+ Decorate 30(gl_TessLevelInner) Patch
+ Decorate 30(gl_TessLevelInner) BuiltIn TessLevelInner
+ Decorate 40(gl_TessLevelOuter) Patch
+ Decorate 40(gl_TessLevelOuter) BuiltIn TessLevelOuter
+ Decorate 45(in_tc_tessParam) Location 1
+ Decorate 52 NoContraction
+ Decorate 53 NoContraction
+ Decorate 54 NoContraction
+ Decorate 60 NoContraction
+ Decorate 61 NoContraction
+ Decorate 62 NoContraction
+ Decorate 68 NoContraction
+ Decorate 69 NoContraction
+ Decorate 70 NoContraction
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 2
+ 8: TypeInt 32 0
+ 9: 8(int) Constant 3
+ 10: TypeArray 7(fvec2) 9
+ 11: TypePointer Output 10
+12(in_te_position): 11(ptr) Variable Output
+ 13: TypeInt 32 1
+ 14: TypePointer Input 13(int)
+15(gl_InvocationID): 14(ptr) Variable Input
+ 17: 8(int) Constant 32
+ 18: TypeArray 7(fvec2) 17
+ 19: TypePointer Input 18
+20(in_tc_position): 19(ptr) Variable Input
+ 22: TypePointer Input 7(fvec2)
+ 25: TypePointer Output 7(fvec2)
+ 27: 8(int) Constant 2
+ 28: TypeArray 6(float) 27
+ 29: TypePointer Output 28
+30(gl_TessLevelInner): 29(ptr) Variable Output
+ 31: 13(int) Constant 0
+ 32: 6(float) Constant 1084227584
+ 33: TypePointer Output 6(float)
+ 35: 13(int) Constant 1
+ 37: 8(int) Constant 4
+ 38: TypeArray 6(float) 37
+ 39: TypePointer Output 38
+40(gl_TessLevelOuter): 39(ptr) Variable Output
+ 41: 6(float) Constant 1065353216
+ 42: 6(float) Constant 1105985536
+ 43: TypeArray 6(float) 17
+ 44: TypePointer Input 43
+45(in_tc_tessParam): 44(ptr) Variable Input
+ 46: TypePointer Input 6(float)
+ 49: 13(int) Constant 2
+ 4(main): 2 Function None 3
+ 5: Label
+ 16: 13(int) Load 15(gl_InvocationID)
+ 21: 13(int) Load 15(gl_InvocationID)
+ 23: 22(ptr) AccessChain 20(in_tc_position) 21
+ 24: 7(fvec2) Load 23
+ 26: 25(ptr) AccessChain 12(in_te_position) 16
+ Store 26 24
+ 34: 33(ptr) AccessChain 30(gl_TessLevelInner) 31
+ Store 34 32
+ 36: 33(ptr) AccessChain 30(gl_TessLevelInner) 35
+ Store 36 32
+ 47: 46(ptr) AccessChain 45(in_tc_tessParam) 35
+ 48: 6(float) Load 47
+ 50: 46(ptr) AccessChain 45(in_tc_tessParam) 49
+ 51: 6(float) Load 50
+ 52: 6(float) FAdd 48 51
+ 53: 6(float) FMul 42 52
+ 54: 6(float) FAdd 41 53
+ 55: 33(ptr) AccessChain 40(gl_TessLevelOuter) 31
+ Store 55 54
+ 56: 46(ptr) AccessChain 45(in_tc_tessParam) 49
+ 57: 6(float) Load 56
+ 58: 46(ptr) AccessChain 45(in_tc_tessParam) 31
+ 59: 6(float) Load 58
+ 60: 6(float) FAdd 57 59
+ 61: 6(float) FMul 42 60
+ 62: 6(float) FAdd 41 61
+ 63: 33(ptr) AccessChain 40(gl_TessLevelOuter) 35
+ Store 63 62
+ 64: 46(ptr) AccessChain 45(in_tc_tessParam) 31
+ 65: 6(float) Load 64
+ 66: 46(ptr) AccessChain 45(in_tc_tessParam) 35
+ 67: 6(float) Load 66
+ 68: 6(float) FAdd 65 67
+ 69: 6(float) FMul 42 68
+ 70: 6(float) FAdd 41 69
+ 71: 33(ptr) AccessChain 40(gl_TessLevelOuter) 49
+ Store 71 70
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.precise.tese.out b/chromium/third_party/glslang/src/Test/baseResults/spv.precise.tese.out
new file mode 100644
index 00000000000..40339812283
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.precise.tese.out
@@ -0,0 +1,191 @@
+spv.precise.tese
+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked tessellation evaluation stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 119
+
+ Capability Tessellation
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint TessellationEvaluation 4 "main" 12 21 62 112
+ ExecutionMode 4 Triangles
+ ExecutionMode 4 SpacingEqual
+ ExecutionMode 4 VertexOrderCcw
+ Source ESSL 310
+ SourceExtension "GL_EXT_gpu_shader5"
+ SourceExtension "GL_EXT_shader_io_blocks"
+ SourceExtension "GL_EXT_tessellation_shader"
+ Name 4 "main"
+ Name 9 "pos"
+ Name 12 "gl_TessCoord"
+ Name 21 "in_te_position"
+ Name 45 "f"
+ Name 62 "in_f_color"
+ Name 73 "bits"
+ Name 77 "numBits"
+ Name 78 "i"
+ Name 110 "gl_PerVertex"
+ MemberName 110(gl_PerVertex) 0 "gl_Position"
+ MemberName 110(gl_PerVertex) 1 "gl_PointSize"
+ Name 112 ""
+ Decorate 12(gl_TessCoord) BuiltIn TessCoord
+ Decorate 21(in_te_position) Location 0
+ Decorate 27 NoContraction
+ Decorate 34 NoContraction
+ Decorate 35 NoContraction
+ Decorate 42 NoContraction
+ Decorate 43 NoContraction
+ Decorate 62(in_f_color) RelaxedPrecision
+ Decorate 62(in_f_color) Location 0
+ Decorate 67 RelaxedPrecision
+ Decorate 68 RelaxedPrecision
+ Decorate 69 RelaxedPrecision
+ Decorate 70 RelaxedPrecision
+ Decorate 97 NoContraction
+ Decorate 99 NoContraction
+ Decorate 101 NoContraction
+ Decorate 106 NoContraction
+ Decorate 109 NoContraction
+ MemberDecorate 110(gl_PerVertex) 0 BuiltIn Position
+ MemberDecorate 110(gl_PerVertex) 1 BuiltIn PointSize
+ Decorate 110(gl_PerVertex) Block
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 2
+ 8: TypePointer Function 7(fvec2)
+ 10: TypeVector 6(float) 3
+ 11: TypePointer Input 10(fvec3)
+12(gl_TessCoord): 11(ptr) Variable Input
+ 13: TypeInt 32 0
+ 14: 13(int) Constant 0
+ 15: TypePointer Input 6(float)
+ 18: 13(int) Constant 32
+ 19: TypeArray 7(fvec2) 18
+ 20: TypePointer Input 19
+21(in_te_position): 20(ptr) Variable Input
+ 22: TypeInt 32 1
+ 23: 22(int) Constant 0
+ 24: TypePointer Input 7(fvec2)
+ 28: 13(int) Constant 1
+ 31: 22(int) Constant 1
+ 36: 13(int) Constant 2
+ 39: 22(int) Constant 2
+ 44: TypePointer Function 6(float)
+ 46: 6(float) Constant 1077936128
+ 57: 6(float) Constant 1056964608
+ 60: TypeVector 6(float) 4
+ 61: TypePointer Output 60(fvec4)
+ 62(in_f_color): 61(ptr) Variable Output
+ 66: 6(float) Constant 1065353216
+ 71: TypeVector 13(int) 2
+ 72: TypePointer Function 71(ivec2)
+ 76: TypePointer Function 13(int)
+ 85: TypeBool
+ 105: 6(float) Constant 1025758986
+110(gl_PerVertex): TypeStruct 60(fvec4) 6(float)
+ 111: TypePointer Output 110(gl_PerVertex)
+ 112: 111(ptr) Variable Output
+ 114: 6(float) Constant 0
+ 4(main): 2 Function None 3
+ 5: Label
+ 9(pos): 8(ptr) Variable Function
+ 45(f): 44(ptr) Variable Function
+ 73(bits): 72(ptr) Variable Function
+ 77(numBits): 76(ptr) Variable Function
+ 78(i): 76(ptr) Variable Function
+ 16: 15(ptr) AccessChain 12(gl_TessCoord) 14
+ 17: 6(float) Load 16
+ 25: 24(ptr) AccessChain 21(in_te_position) 23
+ 26: 7(fvec2) Load 25
+ 27: 7(fvec2) VectorTimesScalar 26 17
+ 29: 15(ptr) AccessChain 12(gl_TessCoord) 28
+ 30: 6(float) Load 29
+ 32: 24(ptr) AccessChain 21(in_te_position) 31
+ 33: 7(fvec2) Load 32
+ 34: 7(fvec2) VectorTimesScalar 33 30
+ 35: 7(fvec2) FAdd 27 34
+ 37: 15(ptr) AccessChain 12(gl_TessCoord) 36
+ 38: 6(float) Load 37
+ 40: 24(ptr) AccessChain 21(in_te_position) 39
+ 41: 7(fvec2) Load 40
+ 42: 7(fvec2) VectorTimesScalar 41 38
+ 43: 7(fvec2) FAdd 35 42
+ Store 9(pos) 43
+ 47: 15(ptr) AccessChain 12(gl_TessCoord) 14
+ 48: 6(float) Load 47
+ 49: 15(ptr) AccessChain 12(gl_TessCoord) 28
+ 50: 6(float) Load 49
+ 51: 15(ptr) AccessChain 12(gl_TessCoord) 36
+ 52: 6(float) Load 51
+ 53: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 50 52
+ 54: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 48 53
+ 55: 6(float) FMul 46 54
+ 56: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 55
+ 58: 6(float) FMul 56 57
+ 59: 6(float) FAdd 58 57
+ Store 45(f) 59
+ 63: 10(fvec3) Load 12(gl_TessCoord)
+ 64: 6(float) Load 45(f)
+ 65: 10(fvec3) VectorTimesScalar 63 64
+ 67: 6(float) CompositeExtract 65 0
+ 68: 6(float) CompositeExtract 65 1
+ 69: 6(float) CompositeExtract 65 2
+ 70: 60(fvec4) CompositeConstruct 67 68 69 66
+ Store 62(in_f_color) 70
+ 74: 7(fvec2) Load 9(pos)
+ 75: 71(ivec2) Bitcast 74
+ Store 73(bits) 75
+ Store 77(numBits) 14
+ Store 78(i) 14
+ Branch 79
+ 79: Label
+ LoopMerge 81 82 None
+ Branch 83
+ 83: Label
+ 84: 13(int) Load 78(i)
+ 86: 85(bool) ULessThan 84 18
+ BranchConditional 86 80 81
+ 80: Label
+ 87: 76(ptr) AccessChain 73(bits) 14
+ 88: 13(int) Load 87
+ 89: 13(int) Load 78(i)
+ 90: 13(int) ShiftLeftLogical 88 89
+ 91: 13(int) BitwiseAnd 90 28
+ 92: 76(ptr) AccessChain 73(bits) 28
+ 93: 13(int) Load 92
+ 94: 13(int) Load 78(i)
+ 95: 13(int) ShiftLeftLogical 93 94
+ 96: 13(int) BitwiseAnd 95 28
+ 97: 13(int) IAdd 91 96
+ 98: 13(int) Load 77(numBits)
+ 99: 13(int) IAdd 98 97
+ Store 77(numBits) 99
+ Branch 82
+ 82: Label
+ 100: 13(int) Load 78(i)
+ 101: 13(int) IAdd 100 31
+ Store 78(i) 101
+ Branch 79
+ 81: Label
+ 102: 13(int) Load 77(numBits)
+ 103: 13(int) BitwiseAnd 102 28
+ 104: 6(float) ConvertUToF 103
+ 106: 6(float) FMul 104 105
+ 107: 7(fvec2) Load 9(pos)
+ 108: 7(fvec2) CompositeConstruct 106 106
+ 109: 7(fvec2) FAdd 107 108
+ Store 9(pos) 109
+ 113: 7(fvec2) Load 9(pos)
+ 115: 6(float) CompositeExtract 113 0
+ 116: 6(float) CompositeExtract 113 1
+ 117: 60(fvec4) CompositeConstruct 115 116 114 66
+ 118: 61(ptr) AccessChain 112 23
+ Store 118 117
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.precision.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.precision.frag.out
new file mode 100755
index 00000000000..33e4fb204ad
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.precision.frag.out
@@ -0,0 +1,234 @@
+spv.precision.frag
+Warning, version 310 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 127
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 23 59 61 73 116
+ ExecutionMode 4 OriginUpperLeft
+ Source ESSL 310
+ Name 4 "main"
+ Name 12 "foo(vf3;"
+ Name 11 "mv3"
+ Name 19 "boolfun(vb2;"
+ Name 18 "bv2"
+ Name 23 "highfin"
+ Name 38 "sum"
+ Name 40 "uniform_medium"
+ Name 42 "uniform_high"
+ Name 48 "uniform_low"
+ Name 53 "arg1"
+ Name 55 "arg2"
+ Name 57 "d"
+ Name 59 "lowfin"
+ Name 61 "mediumfin"
+ Name 65 "global_highp"
+ Name 69 "local_highp"
+ Name 73 "mediumfout"
+ Name 104 "ub2"
+ Name 105 "param"
+ Name 114 "S"
+ MemberName 114(S) 0 "a"
+ MemberName 114(S) 1 "b"
+ Name 116 "s"
+ Decorate 12(foo(vf3;) RelaxedPrecision
+ Decorate 11(mv3) RelaxedPrecision
+ Decorate 38(sum) RelaxedPrecision
+ Decorate 40(uniform_medium) RelaxedPrecision
+ Decorate 41 RelaxedPrecision
+ Decorate 46 RelaxedPrecision
+ Decorate 48(uniform_low) RelaxedPrecision
+ Decorate 49 RelaxedPrecision
+ Decorate 50 RelaxedPrecision
+ Decorate 51 RelaxedPrecision
+ Decorate 53(arg1) RelaxedPrecision
+ Decorate 55(arg2) RelaxedPrecision
+ Decorate 57(d) RelaxedPrecision
+ Decorate 59(lowfin) RelaxedPrecision
+ Decorate 60 RelaxedPrecision
+ Decorate 61(mediumfin) RelaxedPrecision
+ Decorate 62 RelaxedPrecision
+ Decorate 63 RelaxedPrecision
+ Decorate 73(mediumfout) RelaxedPrecision
+ Decorate 74 RelaxedPrecision
+ Decorate 75 RelaxedPrecision
+ Decorate 76 RelaxedPrecision
+ Decorate 77 RelaxedPrecision
+ Decorate 78 RelaxedPrecision
+ Decorate 79 RelaxedPrecision
+ Decorate 83 RelaxedPrecision
+ Decorate 85 RelaxedPrecision
+ Decorate 87 RelaxedPrecision
+ Decorate 88 RelaxedPrecision
+ Decorate 90 RelaxedPrecision
+ Decorate 91 RelaxedPrecision
+ Decorate 94 RelaxedPrecision
+ Decorate 95 RelaxedPrecision
+ Decorate 96 RelaxedPrecision
+ Decorate 97 RelaxedPrecision
+ Decorate 98 RelaxedPrecision
+ Decorate 99 RelaxedPrecision
+ Decorate 100 RelaxedPrecision
+ Decorate 101 RelaxedPrecision
+ Decorate 102 RelaxedPrecision
+ Decorate 110 RelaxedPrecision
+ Decorate 112 RelaxedPrecision
+ Decorate 113 RelaxedPrecision
+ MemberDecorate 114(S) 1 RelaxedPrecision
+ Decorate 120 RelaxedPrecision
+ Decorate 124 RelaxedPrecision
+ Decorate 125 RelaxedPrecision
+ Decorate 126 RelaxedPrecision
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 3
+ 8: TypePointer Function 7(fvec3)
+ 9: TypeVector 6(float) 2
+ 10: TypeFunction 9(fvec2) 8(ptr)
+ 14: TypeBool
+ 15: TypeVector 14(bool) 2
+ 16: TypePointer Function 15(bvec2)
+ 17: TypeFunction 14(bool) 16(ptr)
+ 21: TypeVector 6(float) 4
+ 22: TypePointer Input 21(fvec4)
+ 23(highfin): 22(ptr) Variable Input
+ 29: 14(bool) ConstantFalse
+ 30: 14(bool) ConstantTrue
+ 31: 15(bvec2) ConstantComposite 29 30
+ 36: TypeInt 32 1
+ 37: TypePointer Function 36(int)
+ 39: TypePointer Private 36(int)
+40(uniform_medium): 39(ptr) Variable Private
+42(uniform_high): 39(ptr) Variable Private
+ 48(uniform_low): 39(ptr) Variable Private
+ 52: TypePointer Function 6(float)
+ 54: 6(float) Constant 1078774989
+ 56: 6(float) Constant 1232730691
+ 58: TypePointer Input 6(float)
+ 59(lowfin): 58(ptr) Variable Input
+ 61(mediumfin): 58(ptr) Variable Input
+ 64: TypePointer Private 6(float)
+65(global_highp): 64(ptr) Variable Private
+ 68: TypePointer Function 21(fvec4)
+ 72: TypePointer Output 21(fvec4)
+ 73(mediumfout): 72(ptr) Variable Output
+ 82: 36(int) Constant 4
+ 84: TypeVector 36(int) 2
+ 92: TypeInt 32 0
+ 93: 92(int) Constant 0
+ 103: TypePointer Private 15(bvec2)
+ 104(ub2): 103(ptr) Variable Private
+ 111: 6(float) Constant 1065353216
+ 114(S): TypeStruct 6(float) 6(float)
+ 115: TypePointer Input 114(S)
+ 116(s): 115(ptr) Variable Input
+ 117: 36(int) Constant 0
+ 122: 36(int) Constant 1
+ 4(main): 2 Function None 3
+ 5: Label
+ 38(sum): 37(ptr) Variable Function
+ 53(arg1): 52(ptr) Variable Function
+ 55(arg2): 52(ptr) Variable Function
+ 57(d): 52(ptr) Variable Function
+ 69(local_highp): 68(ptr) Variable Function
+ 105(param): 16(ptr) Variable Function
+ 41: 36(int) Load 40(uniform_medium)
+ 43: 36(int) Load 42(uniform_high)
+ 44: 36(int) IAdd 41 43
+ Store 38(sum) 44
+ 45: 36(int) Load 42(uniform_high)
+ 46: 36(int) Load 38(sum)
+ 47: 36(int) IAdd 46 45
+ Store 38(sum) 47
+ 49: 36(int) Load 48(uniform_low)
+ 50: 36(int) Load 38(sum)
+ 51: 36(int) IAdd 50 49
+ Store 38(sum) 51
+ Store 53(arg1) 54
+ Store 55(arg2) 56
+ 60: 6(float) Load 59(lowfin)
+ 62: 6(float) Load 61(mediumfin)
+ 63: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 60 62
+ Store 57(d) 63
+ 66: 21(fvec4) Load 23(highfin)
+ 67: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 66
+ Store 65(global_highp) 67
+ 70: 6(float) Load 65(global_highp)
+ 71: 21(fvec4) CompositeConstruct 70 70 70 70
+ Store 69(local_highp) 71
+ 74: 6(float) Load 57(d)
+ 75: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 74
+ 76: 21(fvec4) CompositeConstruct 75 75 75 75
+ 77: 6(float) Load 55(arg2)
+ 78: 21(fvec4) CompositeConstruct 77 77 77 77
+ 79: 21(fvec4) FAdd 76 78
+ 80: 21(fvec4) Load 69(local_highp)
+ 81: 21(fvec4) FAdd 79 80
+ Store 73(mediumfout) 81
+ 83: 36(int) Load 48(uniform_low)
+ 85: 84(ivec2) CompositeConstruct 83 83
+ 86: 36(int) Load 42(uniform_high)
+ 87: 84(ivec2) CompositeConstruct 86 86
+ 88: 84(ivec2) IMul 85 87
+ 89: 36(int) Load 42(uniform_high)
+ 90: 84(ivec2) CompositeConstruct 89 89
+ 91: 84(ivec2) IAdd 88 90
+ 94: 36(int) CompositeExtract 91 0
+ 95: 36(int) IAdd 82 94
+ 96: 36(int) Load 38(sum)
+ 97: 36(int) IAdd 96 95
+ Store 38(sum) 97
+ 98: 36(int) Load 38(sum)
+ 99: 6(float) ConvertSToF 98
+ 100: 21(fvec4) CompositeConstruct 99 99 99 99
+ 101: 21(fvec4) Load 73(mediumfout)
+ 102: 21(fvec4) FAdd 101 100
+ Store 73(mediumfout) 102
+ 106: 15(bvec2) Load 104(ub2)
+ Store 105(param) 106
+ 107: 14(bool) FunctionCall 19(boolfun(vb2;) 105(param)
+ SelectionMerge 109 None
+ BranchConditional 107 108 109
+ 108: Label
+ 110: 21(fvec4) Load 73(mediumfout)
+ 112: 21(fvec4) CompositeConstruct 111 111 111 111
+ 113: 21(fvec4) FAdd 110 112
+ Store 73(mediumfout) 113
+ Branch 109
+ 109: Label
+ 118: 58(ptr) AccessChain 116(s) 117
+ 119: 6(float) Load 118
+ 120: 21(fvec4) Load 73(mediumfout)
+ 121: 21(fvec4) VectorTimesScalar 120 119
+ Store 73(mediumfout) 121
+ 123: 58(ptr) AccessChain 116(s) 122
+ 124: 6(float) Load 123
+ 125: 21(fvec4) Load 73(mediumfout)
+ 126: 21(fvec4) VectorTimesScalar 125 124
+ Store 73(mediumfout) 126
+ Return
+ FunctionEnd
+ 12(foo(vf3;): 9(fvec2) Function None 10
+ 11(mv3): 8(ptr) FunctionParameter
+ 13: Label
+ 24: 21(fvec4) Load 23(highfin)
+ 25: 9(fvec2) VectorShuffle 24 24 0 1
+ ReturnValue 25
+ FunctionEnd
+19(boolfun(vb2;): 14(bool) Function None 17
+ 18(bv2): 16(ptr) FunctionParameter
+ 20: Label
+ 28: 15(bvec2) Load 18(bv2)
+ 32: 15(bvec2) LogicalEqual 28 31
+ 33: 14(bool) All 32
+ ReturnValue 33
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.prepost.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.prepost.frag.out
new file mode 100755
index 00000000000..9581267ba71
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.prepost.frag.out
@@ -0,0 +1,147 @@
+spv.prepost.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 94
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 90
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 140
+ Name 4 "main"
+ Name 8 "index"
+ Name 14 "s"
+ MemberName 14(s) 0 "y"
+ Name 16 "str"
+ Name 22 "t"
+ Name 50 "x"
+ Name 61 "y"
+ Name 66 "z"
+ Name 73 "v"
+ Name 90 "gl_FragColor"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypePointer Function 6(int)
+ 9: 6(int) Constant 5
+ 10: TypeFloat 32
+ 11: TypeInt 32 0
+ 12: 11(int) Constant 5
+ 13: TypeArray 10(float) 12
+ 14(s): TypeStruct 13
+ 15: TypePointer Function 14(s)
+ 17: 6(int) Constant 0
+ 18: 6(int) Constant 4
+ 19: 10(float) Constant 1073741824
+ 20: TypePointer Function 10(float)
+ 24: 6(int) Constant 1
+ 28: 10(float) Constant 1065353216
+ 71: TypeVector 10(float) 4
+ 72: TypePointer Function 71(fvec4)
+ 74: 10(float) Constant 1077936128
+ 75: 10(float) Constant 1082130432
+ 76: 71(fvec4) ConstantComposite 28 19 74 75
+ 77: 11(int) Constant 2
+ 81: 11(int) Constant 1
+ 83: 11(int) Constant 3
+ 87: 11(int) Constant 0
+ 89: TypePointer Output 71(fvec4)
+90(gl_FragColor): 89(ptr) Variable Output
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(index): 7(ptr) Variable Function
+ 16(str): 15(ptr) Variable Function
+ 22(t): 20(ptr) Variable Function
+ 50(x): 20(ptr) Variable Function
+ 61(y): 20(ptr) Variable Function
+ 66(z): 20(ptr) Variable Function
+ 73(v): 72(ptr) Variable Function
+ Store 8(index) 9
+ 21: 20(ptr) AccessChain 16(str) 17 18
+ Store 21 19
+ 23: 6(int) Load 8(index)
+ 25: 6(int) ISub 23 24
+ Store 8(index) 25
+ 26: 20(ptr) AccessChain 16(str) 17 25
+ 27: 10(float) Load 26
+ 29: 10(float) FAdd 27 28
+ Store 26 29
+ Store 22(t) 29
+ 30: 10(float) Load 22(t)
+ 31: 20(ptr) AccessChain 16(str) 17 18
+ 32: 10(float) Load 31
+ 33: 10(float) FAdd 32 30
+ 34: 20(ptr) AccessChain 16(str) 17 18
+ Store 34 33
+ 35: 20(ptr) AccessChain 16(str) 17 18
+ 36: 10(float) Load 35
+ 37: 10(float) FSub 36 28
+ Store 35 37
+ Store 22(t) 36
+ 38: 6(int) Load 8(index)
+ 39: 6(int) IAdd 38 24
+ Store 8(index) 39
+ 40: 10(float) Load 22(t)
+ 41: 20(ptr) AccessChain 16(str) 17 38
+ 42: 10(float) Load 41
+ 43: 10(float) FAdd 42 40
+ 44: 20(ptr) AccessChain 16(str) 17 38
+ Store 44 43
+ 45: 6(int) Load 8(index)
+ 46: 6(int) ISub 45 24
+ Store 8(index) 46
+ 47: 20(ptr) AccessChain 16(str) 17 46
+ 48: 10(float) Load 47
+ 49: 10(float) FSub 48 28
+ Store 47 49
+ 51: 20(ptr) AccessChain 16(str) 17 18
+ 52: 10(float) Load 51
+ Store 50(x) 52
+ 53: 10(float) Load 50(x)
+ 54: 10(float) FAdd 53 28
+ Store 50(x) 54
+ 55: 10(float) Load 50(x)
+ 56: 10(float) FSub 55 28
+ Store 50(x) 56
+ 57: 10(float) Load 50(x)
+ 58: 10(float) FAdd 57 28
+ Store 50(x) 58
+ 59: 10(float) Load 50(x)
+ 60: 10(float) FSub 59 28
+ Store 50(x) 60
+ 62: 10(float) Load 50(x)
+ 63: 10(float) Load 50(x)
+ 64: 10(float) FAdd 63 28
+ Store 50(x) 64
+ 65: 10(float) FMul 62 64
+ Store 61(y) 65
+ 67: 10(float) Load 61(y)
+ 68: 10(float) Load 50(x)
+ 69: 10(float) FSub 68 28
+ Store 50(x) 69
+ 70: 10(float) FMul 67 68
+ Store 66(z) 70
+ Store 73(v) 76
+ 78: 20(ptr) AccessChain 73(v) 77
+ 79: 10(float) Load 78
+ 80: 10(float) FSub 79 28
+ Store 78 80
+ 82: 20(ptr) AccessChain 73(v) 81
+ Store 82 79
+ 84: 20(ptr) AccessChain 73(v) 83
+ 85: 10(float) Load 84
+ 86: 10(float) FSub 85 28
+ Store 84 86
+ 88: 20(ptr) AccessChain 73(v) 87
+ Store 88 86
+ 91: 10(float) Load 66(z)
+ 92: 71(fvec4) Load 73(v)
+ 93: 71(fvec4) VectorTimesScalar 92 91
+ Store 90(gl_FragColor) 93
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.pushConstant.vert.out b/chromium/third_party/glslang/src/Test/baseResults/spv.pushConstant.vert.out
new file mode 100644
index 00000000000..6b314e082ec
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.pushConstant.vert.out
@@ -0,0 +1,67 @@
+spv.pushConstant.vert
+Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 35
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Vertex 4 "main" 24
+ Source GLSL 400
+ Name 4 "main"
+ Name 11 "Material"
+ MemberName 11(Material) 0 "kind"
+ MemberName 11(Material) 1 "fa"
+ Name 13 "matInst"
+ Name 24 "color"
+ Decorate 10 ArrayStride 4
+ MemberDecorate 11(Material) 0 Offset 0
+ MemberDecorate 11(Material) 1 Offset 4
+ Decorate 11(Material) Block
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypeFloat 32
+ 8: TypeInt 32 0
+ 9: 8(int) Constant 3
+ 10: TypeArray 7(float) 9
+ 11(Material): TypeStruct 6(int) 10
+ 12: TypePointer PushConstant 11(Material)
+ 13(matInst): 12(ptr) Variable PushConstant
+ 14: 6(int) Constant 0
+ 15: TypePointer PushConstant 6(int)
+ 22: TypeVector 7(float) 4
+ 23: TypePointer Output 22(fvec4)
+ 24(color): 23(ptr) Variable Output
+ 25: 7(float) Constant 1045220557
+ 26: 22(fvec4) ConstantComposite 25 25 25 25
+ 28: 7(float) Constant 1056964608
+ 29: 22(fvec4) ConstantComposite 28 28 28 28
+ 31: 7(float) Constant 0
+ 32: 22(fvec4) ConstantComposite 31 31 31 31
+ 4(main): 2 Function None 3
+ 5: Label
+ 16: 15(ptr) AccessChain 13(matInst) 14
+ 17: 6(int) Load 16
+ SelectionMerge 21 None
+ Switch 17 20
+ case 1: 18
+ case 2: 19
+ 20: Label
+ Store 24(color) 32
+ Branch 21
+ 18: Label
+ Store 24(color) 26
+ Branch 21
+ 19: Label
+ Store 24(color) 29
+ Branch 21
+ 21: Label
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.qualifiers.vert.out b/chromium/third_party/glslang/src/Test/baseResults/spv.qualifiers.vert.out
new file mode 100755
index 00000000000..d2baf7229ff
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.qualifiers.vert.out
@@ -0,0 +1,54 @@
+spv.qualifiers.vert
+Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 21
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Vertex 4 "main" 9 11 13 15 17 19
+ Source GLSL 430
+ Name 4 "main"
+ Name 9 "outVc"
+ Name 11 "inV"
+ Name 13 "outVs"
+ Name 15 "outVf"
+ Name 17 "outVn"
+ Name 19 "outVcn"
+ Decorate 9(outVc) Centroid
+ Decorate 15(outVf) Flat
+ Decorate 17(outVn) NoPerspective
+ Decorate 19(outVcn) NoPerspective
+ Decorate 19(outVcn) Centroid
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Output 7(fvec4)
+ 9(outVc): 8(ptr) Variable Output
+ 10: TypePointer Input 7(fvec4)
+ 11(inV): 10(ptr) Variable Input
+ 13(outVs): 8(ptr) Variable Output
+ 15(outVf): 8(ptr) Variable Output
+ 17(outVn): 8(ptr) Variable Output
+ 19(outVcn): 8(ptr) Variable Output
+ 4(main): 2 Function None 3
+ 5: Label
+ 12: 7(fvec4) Load 11(inV)
+ Store 9(outVc) 12
+ 14: 7(fvec4) Load 11(inV)
+ Store 13(outVs) 14
+ 16: 7(fvec4) Load 11(inV)
+ Store 15(outVf) 16
+ 18: 7(fvec4) Load 11(inV)
+ Store 17(outVn) 18
+ 20: 7(fvec4) Load 11(inV)
+ Store 19(outVcn) 20
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.queryL.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.queryL.frag.out
new file mode 100755
index 00000000000..6d2b2b97d26
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.queryL.frag.out
@@ -0,0 +1,331 @@
+spv.queryL.frag
+Warning, version 430 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 237
+
+ Capability Shader
+ Capability SampledRect
+ Capability Sampled1D
+ Capability SampledCubeArray
+ Capability SampledBuffer
+ Capability ImageQuery
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main"
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 430
+ Name 4 "main"
+ Name 9 "lod"
+ Name 13 "samp1D"
+ Name 16 "pf"
+ Name 24 "isamp2D"
+ Name 26 "pf2"
+ Name 36 "usamp3D"
+ Name 40 "pf3"
+ Name 49 "sampCube"
+ Name 59 "isamp1DA"
+ Name 69 "usamp2DA"
+ Name 79 "isampCubeA"
+ Name 89 "samp1Ds"
+ Name 99 "samp2Ds"
+ Name 109 "sampCubes"
+ Name 119 "samp1DAs"
+ Name 129 "samp2DAs"
+ Name 139 "sampCubeAs"
+ Name 147 "levels"
+ Name 154 "usamp2D"
+ Name 163 "isamp3D"
+ Name 172 "isampCube"
+ Name 186 "samp2DA"
+ Name 195 "usampCubeA"
+ Name 232 "sampBuf"
+ Name 236 "sampRect"
+ Decorate 13(samp1D) DescriptorSet 0
+ Decorate 24(isamp2D) DescriptorSet 0
+ Decorate 36(usamp3D) DescriptorSet 0
+ Decorate 49(sampCube) DescriptorSet 0
+ Decorate 59(isamp1DA) DescriptorSet 0
+ Decorate 69(usamp2DA) DescriptorSet 0
+ Decorate 79(isampCubeA) DescriptorSet 0
+ Decorate 89(samp1Ds) DescriptorSet 0
+ Decorate 99(samp2Ds) DescriptorSet 0
+ Decorate 109(sampCubes) DescriptorSet 0
+ Decorate 119(samp1DAs) DescriptorSet 0
+ Decorate 129(samp2DAs) DescriptorSet 0
+ Decorate 139(sampCubeAs) DescriptorSet 0
+ Decorate 154(usamp2D) DescriptorSet 0
+ Decorate 163(isamp3D) DescriptorSet 0
+ Decorate 172(isampCube) DescriptorSet 0
+ Decorate 186(samp2DA) DescriptorSet 0
+ Decorate 195(usampCubeA) DescriptorSet 0
+ Decorate 232(sampBuf) DescriptorSet 0
+ Decorate 236(sampRect) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 2
+ 8: TypePointer Function 7(fvec2)
+ 10: TypeImage 6(float) 1D sampled format:Unknown
+ 11: TypeSampledImage 10
+ 12: TypePointer UniformConstant 11
+ 13(samp1D): 12(ptr) Variable UniformConstant
+ 15: TypePointer Function 6(float)
+ 20: TypeInt 32 1
+ 21: TypeImage 20(int) 2D sampled format:Unknown
+ 22: TypeSampledImage 21
+ 23: TypePointer UniformConstant 22
+ 24(isamp2D): 23(ptr) Variable UniformConstant
+ 32: TypeInt 32 0
+ 33: TypeImage 32(int) 3D sampled format:Unknown
+ 34: TypeSampledImage 33
+ 35: TypePointer UniformConstant 34
+ 36(usamp3D): 35(ptr) Variable UniformConstant
+ 38: TypeVector 6(float) 3
+ 39: TypePointer Function 38(fvec3)
+ 46: TypeImage 6(float) Cube sampled format:Unknown
+ 47: TypeSampledImage 46
+ 48: TypePointer UniformConstant 47
+ 49(sampCube): 48(ptr) Variable UniformConstant
+ 56: TypeImage 20(int) 1D array sampled format:Unknown
+ 57: TypeSampledImage 56
+ 58: TypePointer UniformConstant 57
+ 59(isamp1DA): 58(ptr) Variable UniformConstant
+ 66: TypeImage 32(int) 2D array sampled format:Unknown
+ 67: TypeSampledImage 66
+ 68: TypePointer UniformConstant 67
+ 69(usamp2DA): 68(ptr) Variable UniformConstant
+ 76: TypeImage 20(int) Cube array sampled format:Unknown
+ 77: TypeSampledImage 76
+ 78: TypePointer UniformConstant 77
+ 79(isampCubeA): 78(ptr) Variable UniformConstant
+ 86: TypeImage 6(float) 1D depth sampled format:Unknown
+ 87: TypeSampledImage 86
+ 88: TypePointer UniformConstant 87
+ 89(samp1Ds): 88(ptr) Variable UniformConstant
+ 96: TypeImage 6(float) 2D depth sampled format:Unknown
+ 97: TypeSampledImage 96
+ 98: TypePointer UniformConstant 97
+ 99(samp2Ds): 98(ptr) Variable UniformConstant
+ 106: TypeImage 6(float) Cube depth sampled format:Unknown
+ 107: TypeSampledImage 106
+ 108: TypePointer UniformConstant 107
+ 109(sampCubes): 108(ptr) Variable UniformConstant
+ 116: TypeImage 6(float) 1D depth array sampled format:Unknown
+ 117: TypeSampledImage 116
+ 118: TypePointer UniformConstant 117
+ 119(samp1DAs): 118(ptr) Variable UniformConstant
+ 126: TypeImage 6(float) 2D depth array sampled format:Unknown
+ 127: TypeSampledImage 126
+ 128: TypePointer UniformConstant 127
+ 129(samp2DAs): 128(ptr) Variable UniformConstant
+ 136: TypeImage 6(float) Cube depth array sampled format:Unknown
+ 137: TypeSampledImage 136
+ 138: TypePointer UniformConstant 137
+ 139(sampCubeAs): 138(ptr) Variable UniformConstant
+ 146: TypePointer Function 20(int)
+ 151: TypeImage 32(int) 2D sampled format:Unknown
+ 152: TypeSampledImage 151
+ 153: TypePointer UniformConstant 152
+ 154(usamp2D): 153(ptr) Variable UniformConstant
+ 160: TypeImage 20(int) 3D sampled format:Unknown
+ 161: TypeSampledImage 160
+ 162: TypePointer UniformConstant 161
+ 163(isamp3D): 162(ptr) Variable UniformConstant
+ 169: TypeImage 20(int) Cube sampled format:Unknown
+ 170: TypeSampledImage 169
+ 171: TypePointer UniformConstant 170
+ 172(isampCube): 171(ptr) Variable UniformConstant
+ 183: TypeImage 6(float) 2D array sampled format:Unknown
+ 184: TypeSampledImage 183
+ 185: TypePointer UniformConstant 184
+ 186(samp2DA): 185(ptr) Variable UniformConstant
+ 192: TypeImage 32(int) Cube array sampled format:Unknown
+ 193: TypeSampledImage 192
+ 194: TypePointer UniformConstant 193
+ 195(usampCubeA): 194(ptr) Variable UniformConstant
+ 229: TypeImage 6(float) Buffer sampled format:Unknown
+ 230: TypeSampledImage 229
+ 231: TypePointer UniformConstant 230
+ 232(sampBuf): 231(ptr) Variable UniformConstant
+ 233: TypeImage 6(float) Rect sampled format:Unknown
+ 234: TypeSampledImage 233
+ 235: TypePointer UniformConstant 234
+ 236(sampRect): 235(ptr) Variable UniformConstant
+ 4(main): 2 Function None 3
+ 5: Label
+ 9(lod): 8(ptr) Variable Function
+ 16(pf): 15(ptr) Variable Function
+ 26(pf2): 8(ptr) Variable Function
+ 40(pf3): 39(ptr) Variable Function
+ 147(levels): 146(ptr) Variable Function
+ 14: 11 Load 13(samp1D)
+ 17: 6(float) Load 16(pf)
+ 18: 10 Image 14
+ 19: 7(fvec2) ImageQueryLod 18 17
+ Store 9(lod) 19
+ 25: 22 Load 24(isamp2D)
+ 27: 7(fvec2) Load 26(pf2)
+ 28: 21 Image 25
+ 29: 7(fvec2) ImageQueryLod 28 27
+ 30: 7(fvec2) Load 9(lod)
+ 31: 7(fvec2) FAdd 30 29
+ Store 9(lod) 31
+ 37: 34 Load 36(usamp3D)
+ 41: 38(fvec3) Load 40(pf3)
+ 42: 33 Image 37
+ 43: 7(fvec2) ImageQueryLod 42 41
+ 44: 7(fvec2) Load 9(lod)
+ 45: 7(fvec2) FAdd 44 43
+ Store 9(lod) 45
+ 50: 47 Load 49(sampCube)
+ 51: 38(fvec3) Load 40(pf3)
+ 52: 46 Image 50
+ 53: 7(fvec2) ImageQueryLod 52 51
+ 54: 7(fvec2) Load 9(lod)
+ 55: 7(fvec2) FAdd 54 53
+ Store 9(lod) 55
+ 60: 57 Load 59(isamp1DA)
+ 61: 6(float) Load 16(pf)
+ 62: 56 Image 60
+ 63: 7(fvec2) ImageQueryLod 62 61
+ 64: 7(fvec2) Load 9(lod)
+ 65: 7(fvec2) FAdd 64 63
+ Store 9(lod) 65
+ 70: 67 Load 69(usamp2DA)
+ 71: 7(fvec2) Load 26(pf2)
+ 72: 66 Image 70
+ 73: 7(fvec2) ImageQueryLod 72 71
+ 74: 7(fvec2) Load 9(lod)
+ 75: 7(fvec2) FAdd 74 73
+ Store 9(lod) 75
+ 80: 77 Load 79(isampCubeA)
+ 81: 38(fvec3) Load 40(pf3)
+ 82: 76 Image 80
+ 83: 7(fvec2) ImageQueryLod 82 81
+ 84: 7(fvec2) Load 9(lod)
+ 85: 7(fvec2) FAdd 84 83
+ Store 9(lod) 85
+ 90: 87 Load 89(samp1Ds)
+ 91: 6(float) Load 16(pf)
+ 92: 86 Image 90
+ 93: 7(fvec2) ImageQueryLod 92 91
+ 94: 7(fvec2) Load 9(lod)
+ 95: 7(fvec2) FAdd 94 93
+ Store 9(lod) 95
+ 100: 97 Load 99(samp2Ds)
+ 101: 7(fvec2) Load 26(pf2)
+ 102: 96 Image 100
+ 103: 7(fvec2) ImageQueryLod 102 101
+ 104: 7(fvec2) Load 9(lod)
+ 105: 7(fvec2) FAdd 104 103
+ Store 9(lod) 105
+ 110: 107 Load 109(sampCubes)
+ 111: 38(fvec3) Load 40(pf3)
+ 112: 106 Image 110
+ 113: 7(fvec2) ImageQueryLod 112 111
+ 114: 7(fvec2) Load 9(lod)
+ 115: 7(fvec2) FAdd 114 113
+ Store 9(lod) 115
+ 120: 117 Load 119(samp1DAs)
+ 121: 6(float) Load 16(pf)
+ 122: 116 Image 120
+ 123: 7(fvec2) ImageQueryLod 122 121
+ 124: 7(fvec2) Load 9(lod)
+ 125: 7(fvec2) FAdd 124 123
+ Store 9(lod) 125
+ 130: 127 Load 129(samp2DAs)
+ 131: 7(fvec2) Load 26(pf2)
+ 132: 126 Image 130
+ 133: 7(fvec2) ImageQueryLod 132 131
+ 134: 7(fvec2) Load 9(lod)
+ 135: 7(fvec2) FAdd 134 133
+ Store 9(lod) 135
+ 140: 137 Load 139(sampCubeAs)
+ 141: 38(fvec3) Load 40(pf3)
+ 142: 136 Image 140
+ 143: 7(fvec2) ImageQueryLod 142 141
+ 144: 7(fvec2) Load 9(lod)
+ 145: 7(fvec2) FAdd 144 143
+ Store 9(lod) 145
+ 148: 11 Load 13(samp1D)
+ 149: 10 Image 148
+ 150: 20(int) ImageQueryLevels 149
+ Store 147(levels) 150
+ 155: 152 Load 154(usamp2D)
+ 156: 151 Image 155
+ 157: 20(int) ImageQueryLevels 156
+ 158: 20(int) Load 147(levels)
+ 159: 20(int) IAdd 158 157
+ Store 147(levels) 159
+ 164: 161 Load 163(isamp3D)
+ 165: 160 Image 164
+ 166: 20(int) ImageQueryLevels 165
+ 167: 20(int) Load 147(levels)
+ 168: 20(int) IAdd 167 166
+ Store 147(levels) 168
+ 173: 170 Load 172(isampCube)
+ 174: 169 Image 173
+ 175: 20(int) ImageQueryLevels 174
+ 176: 20(int) Load 147(levels)
+ 177: 20(int) IAdd 176 175
+ Store 147(levels) 177
+ 178: 57 Load 59(isamp1DA)
+ 179: 56 Image 178
+ 180: 20(int) ImageQueryLevels 179
+ 181: 20(int) Load 147(levels)
+ 182: 20(int) IAdd 181 180
+ Store 147(levels) 182
+ 187: 184 Load 186(samp2DA)
+ 188: 183 Image 187
+ 189: 20(int) ImageQueryLevels 188
+ 190: 20(int) Load 147(levels)
+ 191: 20(int) IAdd 190 189
+ Store 147(levels) 191
+ 196: 193 Load 195(usampCubeA)
+ 197: 192 Image 196
+ 198: 20(int) ImageQueryLevels 197
+ 199: 20(int) Load 147(levels)
+ 200: 20(int) IAdd 199 198
+ Store 147(levels) 200
+ 201: 87 Load 89(samp1Ds)
+ 202: 86 Image 201
+ 203: 20(int) ImageQueryLevels 202
+ Store 147(levels) 203
+ 204: 97 Load 99(samp2Ds)
+ 205: 96 Image 204
+ 206: 20(int) ImageQueryLevels 205
+ 207: 20(int) Load 147(levels)
+ 208: 20(int) IAdd 207 206
+ Store 147(levels) 208
+ 209: 107 Load 109(sampCubes)
+ 210: 106 Image 209
+ 211: 20(int) ImageQueryLevels 210
+ 212: 20(int) Load 147(levels)
+ 213: 20(int) IAdd 212 211
+ Store 147(levels) 213
+ 214: 117 Load 119(samp1DAs)
+ 215: 116 Image 214
+ 216: 20(int) ImageQueryLevels 215
+ 217: 20(int) Load 147(levels)
+ 218: 20(int) IAdd 217 216
+ Store 147(levels) 218
+ 219: 127 Load 129(samp2DAs)
+ 220: 126 Image 219
+ 221: 20(int) ImageQueryLevels 220
+ 222: 20(int) Load 147(levels)
+ 223: 20(int) IAdd 222 221
+ Store 147(levels) 223
+ 224: 137 Load 139(sampCubeAs)
+ 225: 136 Image 224
+ 226: 20(int) ImageQueryLevels 225
+ 227: 20(int) Load 147(levels)
+ 228: 20(int) IAdd 227 226
+ Store 147(levels) 228
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.separate.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.separate.frag.out
new file mode 100644
index 00000000000..2a71a019ece
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.separate.frag.out
@@ -0,0 +1,427 @@
+spv.separate.frag
+Warning, version 400 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 319
+
+ Capability Shader
+ Capability SampledRect
+ Capability Sampled1D
+ Capability SampledCubeArray
+ Capability SampledBuffer
+ Capability ImageMSArray
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 11 34
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 400
+ Name 4 "main"
+ Name 6 "foo("
+ Name 11 "color"
+ Name 14 "t2d"
+ Name 18 "s"
+ Name 31 "t3d"
+ Name 34 "i"
+ Name 41 "sA"
+ Name 58 "tex2D"
+ Name 64 "texCube"
+ Name 71 "texCubeArray"
+ Name 77 "sShadow"
+ Name 84 "itexCubeArray"
+ Name 91 "utexCubeArray"
+ Name 98 "tex1DArray"
+ Name 106 "itex1DArray"
+ Name 113 "utex1D"
+ Name 120 "itex1D"
+ Name 127 "utex1DArray"
+ Name 134 "texBuffer"
+ Name 146 "tex2DArray"
+ Name 158 "itex2D"
+ Name 165 "itex3D"
+ Name 172 "itexCube"
+ Name 179 "itex2DArray"
+ Name 186 "utex2D"
+ Name 193 "utex3D"
+ Name 200 "utexCube"
+ Name 207 "utex2DArray"
+ Name 214 "itex2DRect"
+ Name 221 "utex2DRect"
+ Name 228 "itexBuffer"
+ Name 235 "utexBuffer"
+ Name 242 "tex2DMS"
+ Name 249 "itex2DMS"
+ Name 256 "utex2DMS"
+ Name 263 "tex2DMSArray"
+ Name 270 "itex2DMSArray"
+ Name 277 "utex2DMSArray"
+ Name 284 "tex1D"
+ Name 294 "tex3D"
+ Name 305 "tex2DRect"
+ Decorate 14(t2d) DescriptorSet 0
+ Decorate 18(s) DescriptorSet 0
+ Decorate 31(t3d) DescriptorSet 0
+ Decorate 34(i) Flat
+ Decorate 41(sA) DescriptorSet 0
+ Decorate 58(tex2D) DescriptorSet 0
+ Decorate 64(texCube) DescriptorSet 0
+ Decorate 71(texCubeArray) DescriptorSet 0
+ Decorate 77(sShadow) DescriptorSet 0
+ Decorate 84(itexCubeArray) DescriptorSet 0
+ Decorate 91(utexCubeArray) DescriptorSet 0
+ Decorate 98(tex1DArray) DescriptorSet 0
+ Decorate 106(itex1DArray) DescriptorSet 0
+ Decorate 113(utex1D) DescriptorSet 0
+ Decorate 120(itex1D) DescriptorSet 0
+ Decorate 127(utex1DArray) DescriptorSet 0
+ Decorate 134(texBuffer) DescriptorSet 0
+ Decorate 146(tex2DArray) DescriptorSet 0
+ Decorate 158(itex2D) DescriptorSet 0
+ Decorate 165(itex3D) DescriptorSet 0
+ Decorate 172(itexCube) DescriptorSet 0
+ Decorate 179(itex2DArray) DescriptorSet 0
+ Decorate 186(utex2D) DescriptorSet 0
+ Decorate 193(utex3D) DescriptorSet 0
+ Decorate 200(utexCube) DescriptorSet 0
+ Decorate 207(utex2DArray) DescriptorSet 0
+ Decorate 214(itex2DRect) DescriptorSet 0
+ Decorate 221(utex2DRect) DescriptorSet 0
+ Decorate 228(itexBuffer) DescriptorSet 0
+ Decorate 235(utexBuffer) DescriptorSet 0
+ Decorate 242(tex2DMS) DescriptorSet 0
+ Decorate 249(itex2DMS) DescriptorSet 0
+ Decorate 256(utex2DMS) DescriptorSet 0
+ Decorate 263(tex2DMSArray) DescriptorSet 0
+ Decorate 270(itex2DMSArray) DescriptorSet 0
+ Decorate 277(utex2DMSArray) DescriptorSet 0
+ Decorate 284(tex1D) DescriptorSet 0
+ Decorate 294(tex3D) DescriptorSet 0
+ Decorate 305(tex2DRect) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 8: TypeFloat 32
+ 9: TypeVector 8(float) 4
+ 10: TypePointer Output 9(fvec4)
+ 11(color): 10(ptr) Variable Output
+ 12: TypeImage 8(float) 2D sampled format:Unknown
+ 13: TypePointer UniformConstant 12
+ 14(t2d): 13(ptr) Variable UniformConstant
+ 16: TypeSampler
+ 17: TypePointer UniformConstant 16
+ 18(s): 17(ptr) Variable UniformConstant
+ 20: TypeSampledImage 12
+ 22: TypeVector 8(float) 2
+ 23: 8(float) Constant 1056964608
+ 24: 22(fvec2) ConstantComposite 23 23
+ 26: TypeImage 8(float) 3D sampled format:Unknown
+ 27: TypeInt 32 0
+ 28: 27(int) Constant 4
+ 29: TypeArray 26 28
+ 30: TypePointer UniformConstant 29
+ 31(t3d): 30(ptr) Variable UniformConstant
+ 32: TypeInt 32 1
+ 33: TypePointer Input 32(int)
+ 34(i): 33(ptr) Variable Input
+ 36: TypePointer UniformConstant 26
+ 39: TypeArray 16 28
+ 40: TypePointer UniformConstant 39
+ 41(sA): 40(ptr) Variable UniformConstant
+ 42: 32(int) Constant 2
+ 45: TypeSampledImage 26
+ 47: TypeVector 8(float) 3
+ 48: 47(fvec3) ConstantComposite 23 23 23
+ 58(tex2D): 13(ptr) Variable UniformConstant
+ 62: TypeImage 8(float) Cube sampled format:Unknown
+ 63: TypePointer UniformConstant 62
+ 64(texCube): 63(ptr) Variable UniformConstant
+ 67: TypeSampledImage 62
+ 69: TypeImage 8(float) Cube array sampled format:Unknown
+ 70: TypePointer UniformConstant 69
+71(texCubeArray): 70(ptr) Variable UniformConstant
+ 74: TypeSampledImage 69
+ 77(sShadow): 17(ptr) Variable UniformConstant
+ 79: TypeImage 8(float) Cube depth array sampled format:Unknown
+ 80: TypeSampledImage 79
+ 82: TypeImage 32(int) Cube array sampled format:Unknown
+ 83: TypePointer UniformConstant 82
+84(itexCubeArray): 83(ptr) Variable UniformConstant
+ 87: TypeSampledImage 82
+ 89: TypeImage 27(int) Cube array sampled format:Unknown
+ 90: TypePointer UniformConstant 89
+91(utexCubeArray): 90(ptr) Variable UniformConstant
+ 94: TypeSampledImage 89
+ 96: TypeImage 8(float) 1D array sampled format:Unknown
+ 97: TypePointer UniformConstant 96
+ 98(tex1DArray): 97(ptr) Variable UniformConstant
+ 101: TypeImage 8(float) 1D depth array sampled format:Unknown
+ 102: TypeSampledImage 101
+ 104: TypeImage 32(int) 1D array sampled format:Unknown
+ 105: TypePointer UniformConstant 104
+106(itex1DArray): 105(ptr) Variable UniformConstant
+ 109: TypeSampledImage 104
+ 111: TypeImage 27(int) 1D sampled format:Unknown
+ 112: TypePointer UniformConstant 111
+ 113(utex1D): 112(ptr) Variable UniformConstant
+ 116: TypeSampledImage 111
+ 118: TypeImage 32(int) 1D sampled format:Unknown
+ 119: TypePointer UniformConstant 118
+ 120(itex1D): 119(ptr) Variable UniformConstant
+ 123: TypeSampledImage 118
+ 125: TypeImage 27(int) 1D array sampled format:Unknown
+ 126: TypePointer UniformConstant 125
+127(utex1DArray): 126(ptr) Variable UniformConstant
+ 130: TypeSampledImage 125
+ 132: TypeImage 8(float) Buffer sampled format:Unknown
+ 133: TypePointer UniformConstant 132
+ 134(texBuffer): 133(ptr) Variable UniformConstant
+ 137: TypeSampledImage 132
+ 141: TypeImage 8(float) Cube depth sampled format:Unknown
+ 142: TypeSampledImage 141
+ 144: TypeImage 8(float) 2D array sampled format:Unknown
+ 145: TypePointer UniformConstant 144
+ 146(tex2DArray): 145(ptr) Variable UniformConstant
+ 149: TypeSampledImage 144
+ 153: TypeImage 8(float) 2D depth array sampled format:Unknown
+ 154: TypeSampledImage 153
+ 156: TypeImage 32(int) 2D sampled format:Unknown
+ 157: TypePointer UniformConstant 156
+ 158(itex2D): 157(ptr) Variable UniformConstant
+ 161: TypeSampledImage 156
+ 163: TypeImage 32(int) 3D sampled format:Unknown
+ 164: TypePointer UniformConstant 163
+ 165(itex3D): 164(ptr) Variable UniformConstant
+ 168: TypeSampledImage 163
+ 170: TypeImage 32(int) Cube sampled format:Unknown
+ 171: TypePointer UniformConstant 170
+ 172(itexCube): 171(ptr) Variable UniformConstant
+ 175: TypeSampledImage 170
+ 177: TypeImage 32(int) 2D array sampled format:Unknown
+ 178: TypePointer UniformConstant 177
+179(itex2DArray): 178(ptr) Variable UniformConstant
+ 182: TypeSampledImage 177
+ 184: TypeImage 27(int) 2D sampled format:Unknown
+ 185: TypePointer UniformConstant 184
+ 186(utex2D): 185(ptr) Variable UniformConstant
+ 189: TypeSampledImage 184
+ 191: TypeImage 27(int) 3D sampled format:Unknown
+ 192: TypePointer UniformConstant 191
+ 193(utex3D): 192(ptr) Variable UniformConstant
+ 196: TypeSampledImage 191
+ 198: TypeImage 27(int) Cube sampled format:Unknown
+ 199: TypePointer UniformConstant 198
+ 200(utexCube): 199(ptr) Variable UniformConstant
+ 203: TypeSampledImage 198
+ 205: TypeImage 27(int) 2D array sampled format:Unknown
+ 206: TypePointer UniformConstant 205
+207(utex2DArray): 206(ptr) Variable UniformConstant
+ 210: TypeSampledImage 205
+ 212: TypeImage 32(int) Rect sampled format:Unknown
+ 213: TypePointer UniformConstant 212
+ 214(itex2DRect): 213(ptr) Variable UniformConstant
+ 217: TypeSampledImage 212
+ 219: TypeImage 27(int) Rect sampled format:Unknown
+ 220: TypePointer UniformConstant 219
+ 221(utex2DRect): 220(ptr) Variable UniformConstant
+ 224: TypeSampledImage 219
+ 226: TypeImage 32(int) Buffer sampled format:Unknown
+ 227: TypePointer UniformConstant 226
+ 228(itexBuffer): 227(ptr) Variable UniformConstant
+ 231: TypeSampledImage 226
+ 233: TypeImage 27(int) Buffer sampled format:Unknown
+ 234: TypePointer UniformConstant 233
+ 235(utexBuffer): 234(ptr) Variable UniformConstant
+ 238: TypeSampledImage 233
+ 240: TypeImage 8(float) 2D multi-sampled sampled format:Unknown
+ 241: TypePointer UniformConstant 240
+ 242(tex2DMS): 241(ptr) Variable UniformConstant
+ 245: TypeSampledImage 240
+ 247: TypeImage 32(int) 2D multi-sampled sampled format:Unknown
+ 248: TypePointer UniformConstant 247
+ 249(itex2DMS): 248(ptr) Variable UniformConstant
+ 252: TypeSampledImage 247
+ 254: TypeImage 27(int) 2D multi-sampled sampled format:Unknown
+ 255: TypePointer UniformConstant 254
+ 256(utex2DMS): 255(ptr) Variable UniformConstant
+ 259: TypeSampledImage 254
+ 261: TypeImage 8(float) 2D array multi-sampled sampled format:Unknown
+ 262: TypePointer UniformConstant 261
+263(tex2DMSArray): 262(ptr) Variable UniformConstant
+ 266: TypeSampledImage 261
+ 268: TypeImage 32(int) 2D array multi-sampled sampled format:Unknown
+ 269: TypePointer UniformConstant 268
+270(itex2DMSArray): 269(ptr) Variable UniformConstant
+ 273: TypeSampledImage 268
+ 275: TypeImage 27(int) 2D array multi-sampled sampled format:Unknown
+ 276: TypePointer UniformConstant 275
+277(utex2DMSArray): 276(ptr) Variable UniformConstant
+ 280: TypeSampledImage 275
+ 282: TypeImage 8(float) 1D sampled format:Unknown
+ 283: TypePointer UniformConstant 282
+ 284(tex1D): 283(ptr) Variable UniformConstant
+ 287: TypeSampledImage 282
+ 291: TypeImage 8(float) 1D depth sampled format:Unknown
+ 292: TypeSampledImage 291
+ 294(tex3D): 36(ptr) Variable UniformConstant
+ 300: TypeImage 8(float) 2D depth sampled format:Unknown
+ 301: TypeSampledImage 300
+ 303: TypeImage 8(float) Rect sampled format:Unknown
+ 304: TypePointer UniformConstant 303
+ 305(tex2DRect): 304(ptr) Variable UniformConstant
+ 308: TypeSampledImage 303
+ 312: TypeImage 8(float) Rect depth sampled format:Unknown
+ 313: TypeSampledImage 312
+ 317: TypeSampledImage 96
+ 4(main): 2 Function None 3
+ 5: Label
+ 15: 12 Load 14(t2d)
+ 19: 16 Load 18(s)
+ 21: 20 SampledImage 15 19
+ 25: 9(fvec4) ImageSampleImplicitLod 21 24
+ Store 11(color) 25
+ 35: 32(int) Load 34(i)
+ 37: 36(ptr) AccessChain 31(t3d) 35
+ 38: 26 Load 37
+ 43: 17(ptr) AccessChain 41(sA) 42
+ 44: 16 Load 43
+ 46: 45 SampledImage 38 44
+ 49: 9(fvec4) ImageSampleImplicitLod 46 48
+ 50: 9(fvec4) Load 11(color)
+ 51: 9(fvec4) FAdd 50 49
+ Store 11(color) 51
+ 52: 12 Load 14(t2d)
+ 53: 16 Load 18(s)
+ 54: 20 SampledImage 52 53
+ 55: 9(fvec4) ImageSampleImplicitLod 54 24
+ 56: 9(fvec4) Load 11(color)
+ 57: 9(fvec4) FAdd 56 55
+ Store 11(color) 57
+ Return
+ FunctionEnd
+ 6(foo(): 2 Function None 3
+ 7: Label
+ 59: 12 Load 58(tex2D)
+ 60: 16 Load 18(s)
+ 61: 20 SampledImage 59 60
+ 65: 62 Load 64(texCube)
+ 66: 16 Load 18(s)
+ 68: 67 SampledImage 65 66
+ 72: 69 Load 71(texCubeArray)
+ 73: 16 Load 18(s)
+ 75: 74 SampledImage 72 73
+ 76: 69 Load 71(texCubeArray)
+ 78: 16 Load 77(sShadow)
+ 81: 80 SampledImage 76 78
+ 85: 82 Load 84(itexCubeArray)
+ 86: 16 Load 18(s)
+ 88: 87 SampledImage 85 86
+ 92: 89 Load 91(utexCubeArray)
+ 93: 16 Load 18(s)
+ 95: 94 SampledImage 92 93
+ 99: 96 Load 98(tex1DArray)
+ 100: 16 Load 77(sShadow)
+ 103: 102 SampledImage 99 100
+ 107: 104 Load 106(itex1DArray)
+ 108: 16 Load 18(s)
+ 110: 109 SampledImage 107 108
+ 114: 111 Load 113(utex1D)
+ 115: 16 Load 18(s)
+ 117: 116 SampledImage 114 115
+ 121: 118 Load 120(itex1D)
+ 122: 16 Load 18(s)
+ 124: 123 SampledImage 121 122
+ 128: 125 Load 127(utex1DArray)
+ 129: 16 Load 18(s)
+ 131: 130 SampledImage 128 129
+ 135: 132 Load 134(texBuffer)
+ 136: 16 Load 18(s)
+ 138: 137 SampledImage 135 136
+ 139: 62 Load 64(texCube)
+ 140: 16 Load 77(sShadow)
+ 143: 142 SampledImage 139 140
+ 147: 144 Load 146(tex2DArray)
+ 148: 16 Load 18(s)
+ 150: 149 SampledImage 147 148
+ 151: 144 Load 146(tex2DArray)
+ 152: 16 Load 77(sShadow)
+ 155: 154 SampledImage 151 152
+ 159: 156 Load 158(itex2D)
+ 160: 16 Load 18(s)
+ 162: 161 SampledImage 159 160
+ 166: 163 Load 165(itex3D)
+ 167: 16 Load 18(s)
+ 169: 168 SampledImage 166 167
+ 173: 170 Load 172(itexCube)
+ 174: 16 Load 18(s)
+ 176: 175 SampledImage 173 174
+ 180: 177 Load 179(itex2DArray)
+ 181: 16 Load 18(s)
+ 183: 182 SampledImage 180 181
+ 187: 184 Load 186(utex2D)
+ 188: 16 Load 18(s)
+ 190: 189 SampledImage 187 188
+ 194: 191 Load 193(utex3D)
+ 195: 16 Load 18(s)
+ 197: 196 SampledImage 194 195
+ 201: 198 Load 200(utexCube)
+ 202: 16 Load 18(s)
+ 204: 203 SampledImage 201 202
+ 208: 205 Load 207(utex2DArray)
+ 209: 16 Load 18(s)
+ 211: 210 SampledImage 208 209
+ 215: 212 Load 214(itex2DRect)
+ 216: 16 Load 18(s)
+ 218: 217 SampledImage 215 216
+ 222: 219 Load 221(utex2DRect)
+ 223: 16 Load 18(s)
+ 225: 224 SampledImage 222 223
+ 229: 226 Load 228(itexBuffer)
+ 230: 16 Load 18(s)
+ 232: 231 SampledImage 229 230
+ 236: 233 Load 235(utexBuffer)
+ 237: 16 Load 18(s)
+ 239: 238 SampledImage 236 237
+ 243: 240 Load 242(tex2DMS)
+ 244: 16 Load 18(s)
+ 246: 245 SampledImage 243 244
+ 250: 247 Load 249(itex2DMS)
+ 251: 16 Load 18(s)
+ 253: 252 SampledImage 250 251
+ 257: 254 Load 256(utex2DMS)
+ 258: 16 Load 18(s)
+ 260: 259 SampledImage 257 258
+ 264: 261 Load 263(tex2DMSArray)
+ 265: 16 Load 18(s)
+ 267: 266 SampledImage 264 265
+ 271: 268 Load 270(itex2DMSArray)
+ 272: 16 Load 18(s)
+ 274: 273 SampledImage 271 272
+ 278: 275 Load 277(utex2DMSArray)
+ 279: 16 Load 18(s)
+ 281: 280 SampledImage 278 279
+ 285: 282 Load 284(tex1D)
+ 286: 16 Load 18(s)
+ 288: 287 SampledImage 285 286
+ 289: 282 Load 284(tex1D)
+ 290: 16 Load 77(sShadow)
+ 293: 292 SampledImage 289 290
+ 295: 26 Load 294(tex3D)
+ 296: 16 Load 18(s)
+ 297: 45 SampledImage 295 296
+ 298: 12 Load 58(tex2D)
+ 299: 16 Load 77(sShadow)
+ 302: 301 SampledImage 298 299
+ 306: 303 Load 305(tex2DRect)
+ 307: 16 Load 18(s)
+ 309: 308 SampledImage 306 307
+ 310: 303 Load 305(tex2DRect)
+ 311: 16 Load 77(sShadow)
+ 314: 313 SampledImage 310 311
+ 315: 96 Load 98(tex1DArray)
+ 316: 16 Load 18(s)
+ 318: 317 SampledImage 315 316
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.set.vert.out b/chromium/third_party/glslang/src/Test/baseResults/spv.set.vert.out
new file mode 100755
index 00000000000..72fbaa70dcc
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.set.vert.out
@@ -0,0 +1,51 @@
+spv.set.vert
+Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 22
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Vertex 4 "main" 9
+ Source GLSL 450
+ Name 4 "main"
+ Name 9 "color"
+ Name 10 "setBuf"
+ MemberName 10(setBuf) 0 "color"
+ Name 12 "setBufInst"
+ Name 21 "samp2D"
+ MemberDecorate 10(setBuf) 0 Offset 0
+ Decorate 10(setBuf) BufferBlock
+ Decorate 12(setBufInst) DescriptorSet 0
+ Decorate 12(setBufInst) Binding 8
+ Decorate 21(samp2D) DescriptorSet 4
+ Decorate 21(samp2D) Binding 7
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Output 7(fvec4)
+ 9(color): 8(ptr) Variable Output
+ 10(setBuf): TypeStruct 7(fvec4)
+ 11: TypePointer Uniform 10(setBuf)
+ 12(setBufInst): 11(ptr) Variable Uniform
+ 13: TypeInt 32 1
+ 14: 13(int) Constant 0
+ 15: TypePointer Uniform 7(fvec4)
+ 18: TypeImage 6(float) 2D sampled format:Unknown
+ 19: TypeSampledImage 18
+ 20: TypePointer UniformConstant 19
+ 21(samp2D): 20(ptr) Variable UniformConstant
+ 4(main): 2 Function None 3
+ 5: Label
+ 16: 15(ptr) AccessChain 12(setBufInst) 14
+ 17: 7(fvec4) Load 16
+ Store 9(color) 17
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.shaderBallot.comp.out b/chromium/third_party/glslang/src/Test/baseResults/spv.shaderBallot.comp.out
new file mode 100644
index 00000000000..cb2e0130ab2
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.shaderBallot.comp.out
@@ -0,0 +1,314 @@
+spv.shaderBallot.comp
+Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked compute stage:
+
+
+Missing functionality: shader ballot
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 241
+
+ Capability Shader
+ Capability Int64
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint GLCompute 4 "main" 10 22 24 27 30 33
+ ExecutionMode 4 LocalSize 8 8 1
+ Source GLSL 450
+ SourceExtension "GL_ARB_gpu_shader_int64"
+ SourceExtension "GL_ARB_shader_ballot"
+ Name 4 "main"
+ Name 8 "invocation"
+ Name 10 "gl_SubGroupInvocationARB"
+ Name 13 "gl_SubGroupSizeARB"
+ Name 20 "relMask"
+ Name 22 "gl_SubGroupEqMaskARB"
+ Name 24 "gl_SubGroupGeMaskARB"
+ Name 27 "gl_SubGroupGtMaskARB"
+ Name 30 "gl_SubGroupLeMaskARB"
+ Name 33 "gl_SubGroupLtMaskARB"
+ Name 48 "Buffers"
+ MemberName 48(Buffers) 0 "f4"
+ MemberName 48(Buffers) 1 "i4"
+ MemberName 48(Buffers) 2 "u4"
+ Name 51 "data"
+ MemberDecorate 48(Buffers) 0 Offset 0
+ MemberDecorate 48(Buffers) 1 Offset 16
+ MemberDecorate 48(Buffers) 2 Offset 32
+ Decorate 48(Buffers) BufferBlock
+ Decorate 51(data) DescriptorSet 0
+ Decorate 51(data) Binding 0
+ Decorate 240 BuiltIn WorkgroupSize
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 0
+ 7: TypePointer Function 6(int)
+ 9: TypePointer Input 6(int)
+10(gl_SubGroupInvocationARB): 9(ptr) Variable Input
+ 12: TypePointer UniformConstant 6(int)
+13(gl_SubGroupSizeARB): 12(ptr) Variable UniformConstant
+ 16: 6(int) Constant 4
+ 18: TypeInt 64 0
+ 19: TypePointer Function 18(int)
+ 21: TypePointer Input 18(int)
+22(gl_SubGroupEqMaskARB): 21(ptr) Variable Input
+24(gl_SubGroupGeMaskARB): 21(ptr) Variable Input
+27(gl_SubGroupGtMaskARB): 21(ptr) Variable Input
+30(gl_SubGroupLeMaskARB): 21(ptr) Variable Input
+33(gl_SubGroupLtMaskARB): 21(ptr) Variable Input
+ 37: TypeBool
+ 38: 37(bool) ConstantTrue
+ 43: TypeFloat 32
+ 44: TypeVector 43(float) 4
+ 45: TypeInt 32 1
+ 46: TypeVector 45(int) 4
+ 47: TypeVector 6(int) 4
+ 48(Buffers): TypeStruct 44(fvec4) 46(ivec4) 47(ivec4)
+ 49: TypeArray 48(Buffers) 16
+ 50: TypePointer Uniform 49
+ 51(data): 50(ptr) Variable Uniform
+ 53: 45(int) Constant 0
+ 54: 6(int) Constant 0
+ 55: TypePointer Uniform 43(float)
+ 62: 45(int) Constant 1
+ 63: TypeVector 43(float) 2
+ 64: TypePointer Uniform 44(fvec4)
+ 74: 45(int) Constant 2
+ 75: TypeVector 43(float) 3
+ 85: 45(int) Constant 3
+ 92: TypePointer Uniform 45(int)
+ 99: TypeVector 45(int) 2
+ 100: TypePointer Uniform 46(ivec4)
+ 110: TypeVector 45(int) 3
+ 126: TypePointer Uniform 6(int)
+ 133: TypeVector 6(int) 2
+ 134: TypePointer Uniform 47(ivec4)
+ 144: TypeVector 6(int) 3
+ 238: 6(int) Constant 8
+ 239: 6(int) Constant 1
+ 240: 144(ivec3) ConstantComposite 238 238 239
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(invocation): 7(ptr) Variable Function
+ 20(relMask): 19(ptr) Variable Function
+ 11: 6(int) Load 10(gl_SubGroupInvocationARB)
+ 14: 6(int) Load 13(gl_SubGroupSizeARB)
+ 15: 6(int) IAdd 11 14
+ 17: 6(int) UMod 15 16
+ Store 8(invocation) 17
+ 23: 18(int) Load 22(gl_SubGroupEqMaskARB)
+ 25: 18(int) Load 24(gl_SubGroupGeMaskARB)
+ 26: 18(int) IAdd 23 25
+ 28: 18(int) Load 27(gl_SubGroupGtMaskARB)
+ 29: 18(int) IAdd 26 28
+ 31: 18(int) Load 30(gl_SubGroupLeMaskARB)
+ 32: 18(int) IAdd 29 31
+ 34: 18(int) Load 33(gl_SubGroupLtMaskARB)
+ 35: 18(int) IAdd 32 34
+ Store 20(relMask) 35
+ 36: 18(int) Load 20(relMask)
+ 39: 18(int) ExtInst 1(GLSL.std.450) 0(Unknown) 38
+ 40: 37(bool) IEqual 36 39
+ SelectionMerge 42 None
+ BranchConditional 40 41 159
+ 41: Label
+ 52: 6(int) Load 8(invocation)
+ 56: 55(ptr) AccessChain 51(data) 53 53 54
+ 57: 43(float) Load 56
+ 58: 6(int) Load 8(invocation)
+ 59: 43(float) ExtInst 1(GLSL.std.450) 0(Unknown) 57 58
+ 60: 55(ptr) AccessChain 51(data) 52 53 54
+ Store 60 59
+ 61: 6(int) Load 8(invocation)
+ 65: 64(ptr) AccessChain 51(data) 62 53
+ 66: 44(fvec4) Load 65
+ 67: 63(fvec2) VectorShuffle 66 66 0 1
+ 68: 6(int) Load 8(invocation)
+ 69: 63(fvec2) ExtInst 1(GLSL.std.450) 0(Unknown) 67 68
+ 70: 64(ptr) AccessChain 51(data) 61 53
+ 71: 44(fvec4) Load 70
+ 72: 44(fvec4) VectorShuffle 71 69 4 5 2 3
+ Store 70 72
+ 73: 6(int) Load 8(invocation)
+ 76: 64(ptr) AccessChain 51(data) 74 53
+ 77: 44(fvec4) Load 76
+ 78: 75(fvec3) VectorShuffle 77 77 0 1 2
+ 79: 6(int) Load 8(invocation)
+ 80: 75(fvec3) ExtInst 1(GLSL.std.450) 0(Unknown) 78 79
+ 81: 64(ptr) AccessChain 51(data) 73 53
+ 82: 44(fvec4) Load 81
+ 83: 44(fvec4) VectorShuffle 82 80 4 5 6 3
+ Store 81 83
+ 84: 6(int) Load 8(invocation)
+ 86: 64(ptr) AccessChain 51(data) 85 53
+ 87: 44(fvec4) Load 86
+ 88: 6(int) Load 8(invocation)
+ 89: 44(fvec4) ExtInst 1(GLSL.std.450) 0(Unknown) 87 88
+ 90: 64(ptr) AccessChain 51(data) 84 53
+ Store 90 89
+ 91: 6(int) Load 8(invocation)
+ 93: 92(ptr) AccessChain 51(data) 53 62 54
+ 94: 45(int) Load 93
+ 95: 6(int) Load 8(invocation)
+ 96: 45(int) ExtInst 1(GLSL.std.450) 0(Unknown) 94 95
+ 97: 92(ptr) AccessChain 51(data) 91 62 54
+ Store 97 96
+ 98: 6(int) Load 8(invocation)
+ 101: 100(ptr) AccessChain 51(data) 62 62
+ 102: 46(ivec4) Load 101
+ 103: 99(ivec2) VectorShuffle 102 102 0 1
+ 104: 6(int) Load 8(invocation)
+ 105: 99(ivec2) ExtInst 1(GLSL.std.450) 0(Unknown) 103 104
+ 106: 100(ptr) AccessChain 51(data) 98 62
+ 107: 46(ivec4) Load 106
+ 108: 46(ivec4) VectorShuffle 107 105 4 5 2 3
+ Store 106 108
+ 109: 6(int) Load 8(invocation)
+ 111: 100(ptr) AccessChain 51(data) 74 62
+ 112: 46(ivec4) Load 111
+ 113: 110(ivec3) VectorShuffle 112 112 0 1 2
+ 114: 6(int) Load 8(invocation)
+ 115: 110(ivec3) ExtInst 1(GLSL.std.450) 0(Unknown) 113 114
+ 116: 100(ptr) AccessChain 51(data) 109 62
+ 117: 46(ivec4) Load 116
+ 118: 46(ivec4) VectorShuffle 117 115 4 5 6 3
+ Store 116 118
+ 119: 6(int) Load 8(invocation)
+ 120: 100(ptr) AccessChain 51(data) 85 62
+ 121: 46(ivec4) Load 120
+ 122: 6(int) Load 8(invocation)
+ 123: 46(ivec4) ExtInst 1(GLSL.std.450) 0(Unknown) 121 122
+ 124: 100(ptr) AccessChain 51(data) 119 62
+ Store 124 123
+ 125: 6(int) Load 8(invocation)
+ 127: 126(ptr) AccessChain 51(data) 53 74 54
+ 128: 6(int) Load 127
+ 129: 6(int) Load 8(invocation)
+ 130: 6(int) ExtInst 1(GLSL.std.450) 0(Unknown) 128 129
+ 131: 126(ptr) AccessChain 51(data) 125 74 54
+ Store 131 130
+ 132: 6(int) Load 8(invocation)
+ 135: 134(ptr) AccessChain 51(data) 62 74
+ 136: 47(ivec4) Load 135
+ 137: 133(ivec2) VectorShuffle 136 136 0 1
+ 138: 6(int) Load 8(invocation)
+ 139: 133(ivec2) ExtInst 1(GLSL.std.450) 0(Unknown) 137 138
+ 140: 134(ptr) AccessChain 51(data) 132 74
+ 141: 47(ivec4) Load 140
+ 142: 47(ivec4) VectorShuffle 141 139 4 5 2 3
+ Store 140 142
+ 143: 6(int) Load 8(invocation)
+ 145: 134(ptr) AccessChain 51(data) 74 74
+ 146: 47(ivec4) Load 145
+ 147: 144(ivec3) VectorShuffle 146 146 0 1 2
+ 148: 6(int) Load 8(invocation)
+ 149: 144(ivec3) ExtInst 1(GLSL.std.450) 0(Unknown) 147 148
+ 150: 134(ptr) AccessChain 51(data) 143 74
+ 151: 47(ivec4) Load 150
+ 152: 47(ivec4) VectorShuffle 151 149 4 5 6 3
+ Store 150 152
+ 153: 6(int) Load 8(invocation)
+ 154: 134(ptr) AccessChain 51(data) 85 74
+ 155: 47(ivec4) Load 154
+ 156: 6(int) Load 8(invocation)
+ 157: 47(ivec4) ExtInst 1(GLSL.std.450) 0(Unknown) 155 156
+ 158: 134(ptr) AccessChain 51(data) 153 74
+ Store 158 157
+ Branch 42
+ 159: Label
+ 160: 6(int) Load 8(invocation)
+ 161: 55(ptr) AccessChain 51(data) 53 53 54
+ 162: 43(float) Load 161
+ 163: 43(float) ExtInst 1(GLSL.std.450) 0(Unknown) 162
+ 164: 55(ptr) AccessChain 51(data) 160 53 54
+ Store 164 163
+ 165: 6(int) Load 8(invocation)
+ 166: 64(ptr) AccessChain 51(data) 62 53
+ 167: 44(fvec4) Load 166
+ 168: 63(fvec2) VectorShuffle 167 167 0 1
+ 169: 63(fvec2) ExtInst 1(GLSL.std.450) 0(Unknown) 168
+ 170: 64(ptr) AccessChain 51(data) 165 53
+ 171: 44(fvec4) Load 170
+ 172: 44(fvec4) VectorShuffle 171 169 4 5 2 3
+ Store 170 172
+ 173: 6(int) Load 8(invocation)
+ 174: 64(ptr) AccessChain 51(data) 74 53
+ 175: 44(fvec4) Load 174
+ 176: 75(fvec3) VectorShuffle 175 175 0 1 2
+ 177: 75(fvec3) ExtInst 1(GLSL.std.450) 0(Unknown) 176
+ 178: 64(ptr) AccessChain 51(data) 173 53
+ 179: 44(fvec4) Load 178
+ 180: 44(fvec4) VectorShuffle 179 177 4 5 6 3
+ Store 178 180
+ 181: 6(int) Load 8(invocation)
+ 182: 64(ptr) AccessChain 51(data) 85 53
+ 183: 44(fvec4) Load 182
+ 184: 44(fvec4) ExtInst 1(GLSL.std.450) 0(Unknown) 183
+ 185: 64(ptr) AccessChain 51(data) 181 53
+ Store 185 184
+ 186: 6(int) Load 8(invocation)
+ 187: 92(ptr) AccessChain 51(data) 53 62 54
+ 188: 45(int) Load 187
+ 189: 45(int) ExtInst 1(GLSL.std.450) 0(Unknown) 188
+ 190: 92(ptr) AccessChain 51(data) 186 62 54
+ Store 190 189
+ 191: 6(int) Load 8(invocation)
+ 192: 100(ptr) AccessChain 51(data) 62 62
+ 193: 46(ivec4) Load 192
+ 194: 99(ivec2) VectorShuffle 193 193 0 1
+ 195: 99(ivec2) ExtInst 1(GLSL.std.450) 0(Unknown) 194
+ 196: 100(ptr) AccessChain 51(data) 191 62
+ 197: 46(ivec4) Load 196
+ 198: 46(ivec4) VectorShuffle 197 195 4 5 2 3
+ Store 196 198
+ 199: 6(int) Load 8(invocation)
+ 200: 100(ptr) AccessChain 51(data) 74 62
+ 201: 46(ivec4) Load 200
+ 202: 110(ivec3) VectorShuffle 201 201 0 1 2
+ 203: 110(ivec3) ExtInst 1(GLSL.std.450) 0(Unknown) 202
+ 204: 100(ptr) AccessChain 51(data) 199 62
+ 205: 46(ivec4) Load 204
+ 206: 46(ivec4) VectorShuffle 205 203 4 5 6 3
+ Store 204 206
+ 207: 6(int) Load 8(invocation)
+ 208: 100(ptr) AccessChain 51(data) 85 62
+ 209: 46(ivec4) Load 208
+ 210: 46(ivec4) ExtInst 1(GLSL.std.450) 0(Unknown) 209
+ 211: 100(ptr) AccessChain 51(data) 207 62
+ Store 211 210
+ 212: 6(int) Load 8(invocation)
+ 213: 126(ptr) AccessChain 51(data) 53 74 54
+ 214: 6(int) Load 213
+ 215: 6(int) ExtInst 1(GLSL.std.450) 0(Unknown) 214
+ 216: 126(ptr) AccessChain 51(data) 212 74 54
+ Store 216 215
+ 217: 6(int) Load 8(invocation)
+ 218: 134(ptr) AccessChain 51(data) 62 74
+ 219: 47(ivec4) Load 218
+ 220: 133(ivec2) VectorShuffle 219 219 0 1
+ 221: 133(ivec2) ExtInst 1(GLSL.std.450) 0(Unknown) 220
+ 222: 134(ptr) AccessChain 51(data) 217 74
+ 223: 47(ivec4) Load 222
+ 224: 47(ivec4) VectorShuffle 223 221 4 5 2 3
+ Store 222 224
+ 225: 6(int) Load 8(invocation)
+ 226: 134(ptr) AccessChain 51(data) 74 74
+ 227: 47(ivec4) Load 226
+ 228: 144(ivec3) VectorShuffle 227 227 0 1 2
+ 229: 144(ivec3) ExtInst 1(GLSL.std.450) 0(Unknown) 228
+ 230: 134(ptr) AccessChain 51(data) 225 74
+ 231: 47(ivec4) Load 230
+ 232: 47(ivec4) VectorShuffle 231 229 4 5 6 3
+ Store 230 232
+ 233: 6(int) Load 8(invocation)
+ 234: 134(ptr) AccessChain 51(data) 85 74
+ 235: 47(ivec4) Load 234
+ 236: 47(ivec4) ExtInst 1(GLSL.std.450) 0(Unknown) 235
+ 237: 134(ptr) AccessChain 51(data) 233 74
+ Store 237 236
+ Branch 42
+ 42: Label
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.shaderGroupVote.comp.out b/chromium/third_party/glslang/src/Test/baseResults/spv.shaderGroupVote.comp.out
new file mode 100644
index 00000000000..e63164d024e
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.shaderGroupVote.comp.out
@@ -0,0 +1,71 @@
+spv.shaderGroupVote.comp
+Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked compute stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 37
+
+ Capability Shader
+ Capability Groups
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint GLCompute 4 "main"
+ ExecutionMode 4 LocalSize 4 4 1
+ Source GLSL 450
+ SourceExtension "GL_ARB_shader_group_vote"
+ Name 4 "main"
+ Name 8 "b1"
+ Name 10 "Buffers"
+ MemberName 10(Buffers) 0 "b"
+ Name 12 ""
+ MemberDecorate 10(Buffers) 0 Offset 0
+ Decorate 10(Buffers) BufferBlock
+ Decorate 12 DescriptorSet 0
+ Decorate 12 Binding 0
+ Decorate 36 BuiltIn WorkgroupSize
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeBool
+ 7: TypePointer Function 6(bool)
+ 9: TypeInt 32 0
+ 10(Buffers): TypeStruct 9(int)
+ 11: TypePointer Uniform 10(Buffers)
+ 12: 11(ptr) Variable Uniform
+ 13: TypeInt 32 1
+ 14: 13(int) Constant 0
+ 15: TypePointer Uniform 9(int)
+ 18: 9(int) Constant 0
+ 21: 9(int) Constant 3
+ 31: 9(int) Constant 1
+ 34: TypeVector 9(int) 3
+ 35: 9(int) Constant 4
+ 36: 34(ivec3) ConstantComposite 35 35 31
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(b1): 7(ptr) Variable Function
+ 16: 15(ptr) AccessChain 12 14
+ 17: 9(int) Load 16
+ 19: 6(bool) INotEqual 17 18
+ Store 8(b1) 19
+ 20: 6(bool) Load 8(b1)
+ 22: 6(bool) GroupAny 21 20
+ Store 8(b1) 22
+ 23: 6(bool) Load 8(b1)
+ 24: 6(bool) GroupAll 21 23
+ Store 8(b1) 24
+ 25: 6(bool) Load 8(b1)
+ 26: 6(bool) GroupAll 21 25
+ 27: 6(bool) GroupAny 21 25
+ 28: 6(bool) LogicalNot 27
+ 29: 6(bool) LogicalOr 26 28
+ Store 8(b1) 29
+ 30: 6(bool) Load 8(b1)
+ 32: 9(int) Select 30 31 18
+ 33: 15(ptr) AccessChain 12 14
+ Store 33 32
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.shiftOps.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.shiftOps.frag.out
new file mode 100644
index 00000000000..39e40ece737
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.shiftOps.frag.out
@@ -0,0 +1,70 @@
+spv.shiftOps.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 38
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 9 11 15 25 27 30
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 450
+ Name 4 "main"
+ Name 9 "icolor"
+ Name 11 "i3"
+ Name 15 "u1"
+ Name 25 "ucolor"
+ Name 27 "u3"
+ Name 30 "i1"
+ Decorate 11(i3) Flat
+ Decorate 15(u1) Flat
+ Decorate 27(u3) Flat
+ Decorate 30(i1) Flat
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypeVector 6(int) 3
+ 8: TypePointer Output 7(ivec3)
+ 9(icolor): 8(ptr) Variable Output
+ 10: TypePointer Input 7(ivec3)
+ 11(i3): 10(ptr) Variable Input
+ 13: TypeInt 32 0
+ 14: TypePointer Input 13(int)
+ 15(u1): 14(ptr) Variable Input
+ 17: TypeVector 13(int) 3
+ 20: 13(int) Constant 4
+ 24: TypePointer Output 17(ivec3)
+ 25(ucolor): 24(ptr) Variable Output
+ 26: TypePointer Input 17(ivec3)
+ 27(u3): 26(ptr) Variable Input
+ 29: TypePointer Input 6(int)
+ 30(i1): 29(ptr) Variable Input
+ 34: 6(int) Constant 5
+ 4(main): 2 Function None 3
+ 5: Label
+ 12: 7(ivec3) Load 11(i3)
+ 16: 13(int) Load 15(u1)
+ 18: 17(ivec3) CompositeConstruct 16 16 16
+ 19: 7(ivec3) ShiftLeftLogical 12 18
+ Store 9(icolor) 19
+ 21: 7(ivec3) Load 9(icolor)
+ 22: 17(ivec3) CompositeConstruct 20 20 20
+ 23: 7(ivec3) ShiftLeftLogical 21 22
+ Store 9(icolor) 23
+ 28: 17(ivec3) Load 27(u3)
+ 31: 6(int) Load 30(i1)
+ 32: 7(ivec3) CompositeConstruct 31 31 31
+ 33: 17(ivec3) ShiftRightLogical 28 32
+ Store 25(ucolor) 33
+ 35: 17(ivec3) Load 25(ucolor)
+ 36: 7(ivec3) CompositeConstruct 34 34 34
+ 37: 17(ivec3) ShiftRightLogical 35 36
+ Store 25(ucolor) 37
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.shortCircuit.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.shortCircuit.frag.out
new file mode 100644
index 00000000000..5b39b1cba56
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.shortCircuit.frag.out
@@ -0,0 +1,241 @@
+spv.shortCircuit.frag
+Warning, version 400 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 147
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 12 24 34 113 140 142
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 400
+ Name 4 "main"
+ Name 8 "foo("
+ Name 12 "of1"
+ Name 24 "of4"
+ Name 27 "ub"
+ Name 34 "ui"
+ Name 44 "uba"
+ Name 113 "uf"
+ Name 140 "uiv4"
+ Name 142 "uv4"
+ Name 145 "ub41"
+ Name 146 "ub42"
+ Decorate 34(ui) Flat
+ Decorate 140(uiv4) Flat
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeBool
+ 7: TypeFunction 6(bool)
+ 10: TypeFloat 32
+ 11: TypePointer Output 10(float)
+ 12(of1): 11(ptr) Variable Output
+ 14: 10(float) Constant 1065353216
+ 17: 10(float) Constant 1092616192
+ 21: 10(float) Constant 0
+ 22: TypeVector 10(float) 4
+ 23: TypePointer Output 22(fvec4)
+ 24(of4): 23(ptr) Variable Output
+ 25: 22(fvec4) ConstantComposite 21 21 21 21
+ 26: TypePointer Private 6(bool)
+ 27(ub): 26(ptr) Variable Private
+ 32: TypeInt 32 1
+ 33: TypePointer Input 32(int)
+ 34(ui): 33(ptr) Variable Input
+ 36: 32(int) Constant 2
+ 44(uba): 26(ptr) Variable Private
+ 112: TypePointer Input 10(float)
+ 113(uf): 112(ptr) Variable Input
+ 116: 10(float) Constant 1082130432
+ 138: TypeVector 32(int) 4
+ 139: TypePointer Input 138(ivec4)
+ 140(uiv4): 139(ptr) Variable Input
+ 141: TypePointer Input 22(fvec4)
+ 142(uv4): 141(ptr) Variable Input
+ 143: TypeVector 6(bool) 4
+ 144: TypePointer Private 143(bvec4)
+ 145(ub41): 144(ptr) Variable Private
+ 146(ub42): 144(ptr) Variable Private
+ 4(main): 2 Function None 3
+ 5: Label
+ Store 12(of1) 21
+ Store 24(of4) 25
+ 28: 6(bool) Load 27(ub)
+ 29: 6(bool) LogicalNot 28
+ SelectionMerge 31 None
+ BranchConditional 29 30 31
+ 30: Label
+ 35: 32(int) Load 34(ui)
+ 37: 6(bool) SGreaterThan 35 36
+ Branch 31
+ 31: Label
+ 38: 6(bool) Phi 28 5 37 30
+ SelectionMerge 40 None
+ BranchConditional 38 39 40
+ 39: Label
+ 41: 10(float) Load 12(of1)
+ 42: 10(float) FAdd 41 14
+ Store 12(of1) 42
+ Branch 40
+ 40: Label
+ 43: 6(bool) Load 27(ub)
+ 45: 6(bool) Load 44(uba)
+ 46: 6(bool) LogicalNot 45
+ 47: 6(bool) LogicalAnd 43 46
+ SelectionMerge 49 None
+ BranchConditional 47 48 49
+ 48: Label
+ 50: 10(float) Load 12(of1)
+ 51: 10(float) FAdd 50 14
+ Store 12(of1) 51
+ Branch 49
+ 49: Label
+ 52: 6(bool) Load 27(ub)
+ 53: 6(bool) LogicalNot 52
+ SelectionMerge 55 None
+ BranchConditional 53 54 55
+ 54: Label
+ 56: 6(bool) FunctionCall 8(foo()
+ Branch 55
+ 55: Label
+ 57: 6(bool) Phi 52 49 56 54
+ SelectionMerge 59 None
+ BranchConditional 57 58 59
+ 58: Label
+ 60: 10(float) Load 12(of1)
+ 61: 10(float) FAdd 60 14
+ Store 12(of1) 61
+ Branch 59
+ 59: Label
+ 62: 6(bool) Load 27(ub)
+ SelectionMerge 64 None
+ BranchConditional 62 63 64
+ 63: Label
+ 65: 6(bool) FunctionCall 8(foo()
+ Branch 64
+ 64: Label
+ 66: 6(bool) Phi 62 59 65 63
+ SelectionMerge 68 None
+ BranchConditional 66 67 68
+ 67: Label
+ 69: 10(float) Load 12(of1)
+ 70: 10(float) FAdd 69 14
+ Store 12(of1) 70
+ Branch 68
+ 68: Label
+ 71: 6(bool) FunctionCall 8(foo()
+ 72: 6(bool) Load 27(ub)
+ 73: 6(bool) LogicalOr 71 72
+ SelectionMerge 75 None
+ BranchConditional 73 74 75
+ 74: Label
+ 76: 10(float) Load 12(of1)
+ 77: 10(float) FAdd 76 14
+ Store 12(of1) 77
+ Branch 75
+ 75: Label
+ 78: 6(bool) FunctionCall 8(foo()
+ 79: 6(bool) Load 27(ub)
+ 80: 6(bool) LogicalAnd 78 79
+ SelectionMerge 82 None
+ BranchConditional 80 81 82
+ 81: Label
+ 83: 10(float) Load 12(of1)
+ 84: 10(float) FAdd 83 14
+ Store 12(of1) 84
+ Branch 82
+ 82: Label
+ 85: 6(bool) Load 27(ub)
+ 86: 6(bool) LogicalNot 85
+ SelectionMerge 88 None
+ BranchConditional 86 87 88
+ 87: Label
+ 89: 10(float) Load 12(of1)
+ 90: 10(float) FAdd 89 14
+ Store 12(of1) 90
+ 91: 6(bool) FOrdGreaterThan 90 14
+ Branch 88
+ 88: Label
+ 92: 6(bool) Phi 85 82 91 87
+ SelectionMerge 94 None
+ BranchConditional 92 93 94
+ 93: Label
+ 95: 22(fvec4) Load 24(of4)
+ 96: 22(fvec4) CompositeConstruct 14 14 14 14
+ 97: 22(fvec4) FAdd 95 96
+ Store 24(of4) 97
+ Branch 94
+ 94: Label
+ 98: 10(float) Load 12(of1)
+ 99: 10(float) FAdd 98 14
+ Store 12(of1) 99
+ 100: 6(bool) FOrdGreaterThan 99 14
+ 101: 6(bool) Load 27(ub)
+ 102: 6(bool) LogicalOr 100 101
+ SelectionMerge 104 None
+ BranchConditional 102 103 104
+ 103: Label
+ 105: 22(fvec4) Load 24(of4)
+ 106: 22(fvec4) CompositeConstruct 14 14 14 14
+ 107: 22(fvec4) FAdd 105 106
+ Store 24(of4) 107
+ Branch 104
+ 104: Label
+ 108: 6(bool) Load 27(ub)
+ 109: 6(bool) LogicalNot 108
+ SelectionMerge 111 None
+ BranchConditional 109 110 111
+ 110: Label
+ 114: 10(float) Load 113(uf)
+ 115: 10(float) ExtInst 1(GLSL.std.450) 13(Sin) 114
+ 117: 10(float) FMul 115 116
+ 118: 10(float) Load 12(of1)
+ 119: 6(bool) FOrdGreaterThan 117 118
+ Branch 111
+ 111: Label
+ 120: 6(bool) Phi 108 104 119 110
+ SelectionMerge 122 None
+ BranchConditional 120 121 122
+ 121: Label
+ 123: 10(float) Load 12(of1)
+ 124: 10(float) FAdd 123 14
+ Store 12(of1) 124
+ Branch 122
+ 122: Label
+ 125: 6(bool) Load 27(ub)
+ SelectionMerge 127 None
+ BranchConditional 125 126 127
+ 126: Label
+ 128: 10(float) Load 113(uf)
+ 129: 10(float) ExtInst 1(GLSL.std.450) 13(Sin) 128
+ 130: 10(float) FMul 129 116
+ 131: 10(float) Load 12(of1)
+ 132: 6(bool) FOrdGreaterThan 130 131
+ Branch 127
+ 127: Label
+ 133: 6(bool) Phi 125 122 132 126
+ SelectionMerge 135 None
+ BranchConditional 133 134 135
+ 134: Label
+ 136: 10(float) Load 12(of1)
+ 137: 10(float) FAdd 136 14
+ Store 12(of1) 137
+ Branch 135
+ 135: Label
+ Return
+ FunctionEnd
+ 8(foo(): 6(bool) Function None 7
+ 9: Label
+ 13: 10(float) Load 12(of1)
+ 15: 10(float) FAdd 13 14
+ Store 12(of1) 15
+ 16: 10(float) Load 12(of1)
+ 18: 6(bool) FOrdGreaterThan 16 17
+ ReturnValue 18
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.simpleFunctionCall.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.simpleFunctionCall.frag.out
new file mode 100755
index 00000000000..458a90dbac1
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.simpleFunctionCall.frag.out
@@ -0,0 +1,39 @@
+spv.simpleFunctionCall.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 19
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 12 17
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 150
+ Name 4 "main"
+ Name 9 "foo("
+ Name 12 "BaseColor"
+ Name 17 "gl_FragColor"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypeFunction 7(fvec4)
+ 11: TypePointer Input 7(fvec4)
+ 12(BaseColor): 11(ptr) Variable Input
+ 16: TypePointer Output 7(fvec4)
+17(gl_FragColor): 16(ptr) Variable Output
+ 4(main): 2 Function None 3
+ 5: Label
+ 18: 7(fvec4) FunctionCall 9(foo()
+ Store 17(gl_FragColor) 18
+ Return
+ FunctionEnd
+ 9(foo(): 7(fvec4) Function None 8
+ 10: Label
+ 13: 7(fvec4) Load 12(BaseColor)
+ ReturnValue 13
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.simpleMat.vert.out b/chromium/third_party/glslang/src/Test/baseResults/spv.simpleMat.vert.out
new file mode 100755
index 00000000000..3e0f05e19c6
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.simpleMat.vert.out
@@ -0,0 +1,64 @@
+spv.simpleMat.vert
+WARNING: 0:3: varying deprecated in version 130; may be removed in future release
+
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 39
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Vertex 4 "main" 9 12 15 19 23 34
+ Source GLSL 330
+ Name 4 "main"
+ Name 9 "glPos"
+ Name 12 "mvp"
+ Name 15 "v"
+ Name 19 "f"
+ Name 23 "am3"
+ Name 34 "arraym"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Output 7(fvec4)
+ 9(glPos): 8(ptr) Variable Output
+ 10: TypeMatrix 7(fvec4) 4
+ 11: TypePointer Output 10
+ 12(mvp): 11(ptr) Variable Output
+ 14: TypePointer Input 7(fvec4)
+ 15(v): 14(ptr) Variable Input
+ 18: TypePointer Output 6(float)
+ 19(f): 18(ptr) Variable Output
+ 20: TypeVector 6(float) 3
+ 21: TypeMatrix 20(fvec3) 3
+ 22: TypePointer Input 21
+ 23(am3): 22(ptr) Variable Input
+ 24: TypeInt 32 1
+ 25: 24(int) Constant 2
+ 26: TypeInt 32 0
+ 27: 26(int) Constant 1
+ 28: TypePointer Input 6(float)
+ 31: 26(int) Constant 3
+ 32: TypeArray 10 31
+ 33: TypePointer Input 32
+ 34(arraym): 33(ptr) Variable Input
+ 35: 24(int) Constant 1
+ 4(main): 2 Function None 3
+ 5: Label
+ 13: 10 Load 12(mvp)
+ 16: 7(fvec4) Load 15(v)
+ 17: 7(fvec4) MatrixTimesVector 13 16
+ Store 9(glPos) 17
+ 29: 28(ptr) AccessChain 23(am3) 25 27
+ 30: 6(float) Load 29
+ 36: 28(ptr) AccessChain 34(arraym) 35 25 31
+ 37: 6(float) Load 36
+ 38: 6(float) FAdd 30 37
+ Store 19(f) 38
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.sparseTexture.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.sparseTexture.frag.out
new file mode 100644
index 00000000000..ae48f41d72d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.sparseTexture.frag.out
@@ -0,0 +1,593 @@
+spv.sparseTexture.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 438
+
+ Capability Shader
+ Capability SampledRect
+ Capability SparseResidency
+ Capability SampledCubeArray
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 33 48 89 365 393 405 423
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 450
+ SourceExtension "GL_ARB_sparse_texture2"
+ Name 4 "main"
+ Name 8 "resident"
+ Name 13 "texel"
+ Name 18 "itexel"
+ Name 23 "utexel"
+ Name 29 "s2D"
+ Name 33 "c2"
+ Name 35 "ResType"
+ Name 44 "s3D"
+ Name 48 "c3"
+ Name 59 "isCube"
+ Name 62 "ResType"
+ Name 71 "s2DShadow"
+ Name 77 "ResType"
+ Name 86 "sCubeArrayShadow"
+ Name 89 "c4"
+ Name 108 "usCubeArray"
+ Name 111 "ResType"
+ Name 140 "us2DRect"
+ Name 154 "s2DArrayShadow"
+ Name 188 "s2DMS"
+ Name 228 "is2DArray"
+ Name 261 "sCubeShadow"
+ Name 294 "s2DRectShadow"
+ Name 365 "offsets"
+ Name 390 "i2D"
+ Name 393 "ic2"
+ Name 402 "ii3D"
+ Name 405 "ic3"
+ Name 414 "i2DMS"
+ Name 423 "outColor"
+ Decorate 29(s2D) DescriptorSet 0
+ Decorate 44(s3D) DescriptorSet 0
+ Decorate 59(isCube) DescriptorSet 0
+ Decorate 71(s2DShadow) DescriptorSet 0
+ Decorate 86(sCubeArrayShadow) DescriptorSet 0
+ Decorate 108(usCubeArray) DescriptorSet 0
+ Decorate 140(us2DRect) DescriptorSet 0
+ Decorate 154(s2DArrayShadow) DescriptorSet 0
+ Decorate 188(s2DMS) DescriptorSet 0
+ Decorate 228(is2DArray) DescriptorSet 0
+ Decorate 261(sCubeShadow) DescriptorSet 0
+ Decorate 294(s2DRectShadow) DescriptorSet 0
+ Decorate 365(offsets) Flat
+ Decorate 390(i2D) DescriptorSet 0
+ Decorate 393(ic2) Flat
+ Decorate 402(ii3D) DescriptorSet 0
+ Decorate 405(ic3) Flat
+ Decorate 414(i2DMS) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypePointer Function 6(int)
+ 9: 6(int) Constant 0
+ 10: TypeFloat 32
+ 11: TypeVector 10(float) 4
+ 12: TypePointer Function 11(fvec4)
+ 14: 10(float) Constant 0
+ 15: 11(fvec4) ConstantComposite 14 14 14 14
+ 16: TypeVector 6(int) 4
+ 17: TypePointer Function 16(ivec4)
+ 19: 16(ivec4) ConstantComposite 9 9 9 9
+ 20: TypeInt 32 0
+ 21: TypeVector 20(int) 4
+ 22: TypePointer Function 21(ivec4)
+ 24: 20(int) Constant 0
+ 25: 21(ivec4) ConstantComposite 24 24 24 24
+ 26: TypeImage 10(float) 2D sampled format:Unknown
+ 27: TypeSampledImage 26
+ 28: TypePointer UniformConstant 27
+ 29(s2D): 28(ptr) Variable UniformConstant
+ 31: TypeVector 10(float) 2
+ 32: TypePointer Input 31(fvec2)
+ 33(c2): 32(ptr) Variable Input
+ 35(ResType): TypeStruct 6(int) 11(fvec4)
+ 41: TypeImage 10(float) 3D sampled format:Unknown
+ 42: TypeSampledImage 41
+ 43: TypePointer UniformConstant 42
+ 44(s3D): 43(ptr) Variable UniformConstant
+ 46: TypeVector 10(float) 3
+ 47: TypePointer Input 46(fvec3)
+ 48(c3): 47(ptr) Variable Input
+ 50: 10(float) Constant 1073741824
+ 56: TypeImage 6(int) Cube sampled format:Unknown
+ 57: TypeSampledImage 56
+ 58: TypePointer UniformConstant 57
+ 59(isCube): 58(ptr) Variable UniformConstant
+ 62(ResType): TypeStruct 6(int) 16(ivec4)
+ 68: TypeImage 10(float) 2D depth sampled format:Unknown
+ 69: TypeSampledImage 68
+ 70: TypePointer UniformConstant 69
+ 71(s2DShadow): 70(ptr) Variable UniformConstant
+ 74: TypePointer Function 10(float)
+ 77(ResType): TypeStruct 6(int) 10(float)
+ 83: TypeImage 10(float) Cube depth array sampled format:Unknown
+ 84: TypeSampledImage 83
+ 85: TypePointer UniformConstant 84
+86(sCubeArrayShadow): 85(ptr) Variable UniformConstant
+ 88: TypePointer Input 11(fvec4)
+ 89(c4): 88(ptr) Variable Input
+ 91: 10(float) Constant 1065353216
+ 105: TypeImage 20(int) Cube array sampled format:Unknown
+ 106: TypeSampledImage 105
+ 107: TypePointer UniformConstant 106
+108(usCubeArray): 107(ptr) Variable UniformConstant
+ 111(ResType): TypeStruct 6(int) 21(ivec4)
+ 119: 20(int) Constant 1
+ 129: TypeVector 6(int) 3
+ 130: 6(int) Constant 2
+ 131: 129(ivec3) ConstantComposite 130 130 130
+ 137: TypeImage 20(int) Rect sampled format:Unknown
+ 138: TypeSampledImage 137
+ 139: TypePointer UniformConstant 138
+ 140(us2DRect): 139(ptr) Variable UniformConstant
+ 143: TypeVector 6(int) 2
+ 144: 6(int) Constant 3
+ 145: 143(ivec2) ConstantComposite 144 144
+ 151: TypeImage 10(float) 2D depth array sampled format:Unknown
+ 152: TypeSampledImage 151
+ 153: TypePointer UniformConstant 152
+154(s2DArrayShadow): 153(ptr) Variable UniformConstant
+ 157: 6(int) Constant 5
+ 158: 143(ivec2) ConstantComposite 157 157
+ 159: 20(int) Constant 2
+ 185: TypeImage 10(float) 2D multi-sampled sampled format:Unknown
+ 186: TypeSampledImage 185
+ 187: TypePointer UniformConstant 186
+ 188(s2DMS): 187(ptr) Variable UniformConstant
+ 192: 6(int) Constant 4
+ 202: 129(ivec3) ConstantComposite 192 192 192
+ 225: TypeImage 6(int) 2D array sampled format:Unknown
+ 226: TypeSampledImage 225
+ 227: TypePointer UniformConstant 226
+ 228(is2DArray): 227(ptr) Variable UniformConstant
+ 231: 6(int) Constant 6
+ 232: 143(ivec2) ConstantComposite 231 231
+ 240: 6(int) Constant 7
+ 241: 143(ivec2) ConstantComposite 240 240
+ 258: TypeImage 10(float) Cube depth sampled format:Unknown
+ 259: TypeSampledImage 258
+ 260: TypePointer UniformConstant 259
+261(sCubeShadow): 260(ptr) Variable UniformConstant
+ 291: TypeImage 10(float) Rect depth sampled format:Unknown
+ 292: TypeSampledImage 291
+ 293: TypePointer UniformConstant 292
+294(s2DRectShadow): 293(ptr) Variable UniformConstant
+ 299: 20(int) Constant 3
+ 311: 143(ivec2) ConstantComposite 130 130
+ 340: 143(ivec2) ConstantComposite 192 192
+ 362: 20(int) Constant 4
+ 363: TypeArray 143(ivec2) 362
+ 364: TypePointer Input 363
+ 365(offsets): 364(ptr) Variable Input
+ 388: TypeImage 10(float) 2D nonsampled format:Rgba32f
+ 389: TypePointer UniformConstant 388
+ 390(i2D): 389(ptr) Variable UniformConstant
+ 392: TypePointer Input 143(ivec2)
+ 393(ic2): 392(ptr) Variable Input
+ 400: TypeImage 6(int) 3D nonsampled format:Rgba32i
+ 401: TypePointer UniformConstant 400
+ 402(ii3D): 401(ptr) Variable UniformConstant
+ 404: TypePointer Input 129(ivec3)
+ 405(ic3): 404(ptr) Variable Input
+ 412: TypeImage 10(float) 2D multi-sampled nonsampled format:Rgba32f
+ 413: TypePointer UniformConstant 412
+ 414(i2DMS): 413(ptr) Variable UniformConstant
+ 422: TypePointer Output 11(fvec4)
+ 423(outColor): 422(ptr) Variable Output
+ 426: TypeBool
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(resident): 7(ptr) Variable Function
+ 13(texel): 12(ptr) Variable Function
+ 18(itexel): 17(ptr) Variable Function
+ 23(utexel): 22(ptr) Variable Function
+ 424: 12(ptr) Variable Function
+ Store 8(resident) 9
+ Store 13(texel) 15
+ Store 18(itexel) 19
+ Store 23(utexel) 25
+ 30: 27 Load 29(s2D)
+ 34: 31(fvec2) Load 33(c2)
+ 36: 35(ResType) ImageSparseSampleImplicitLod 30 34
+ 37: 11(fvec4) CompositeExtract 36 1
+ Store 13(texel) 37
+ 38: 6(int) CompositeExtract 36 0
+ 39: 6(int) Load 8(resident)
+ 40: 6(int) BitwiseOr 39 38
+ Store 8(resident) 40
+ 45: 42 Load 44(s3D)
+ 49: 46(fvec3) Load 48(c3)
+ 51: 35(ResType) ImageSparseSampleImplicitLod 45 49 Bias 50
+ 52: 11(fvec4) CompositeExtract 51 1
+ Store 13(texel) 52
+ 53: 6(int) CompositeExtract 51 0
+ 54: 6(int) Load 8(resident)
+ 55: 6(int) BitwiseOr 54 53
+ Store 8(resident) 55
+ 60: 57 Load 59(isCube)
+ 61: 46(fvec3) Load 48(c3)
+ 63: 62(ResType) ImageSparseSampleImplicitLod 60 61
+ 64: 16(ivec4) CompositeExtract 63 1
+ Store 18(itexel) 64
+ 65: 6(int) CompositeExtract 63 0
+ 66: 6(int) Load 8(resident)
+ 67: 6(int) BitwiseOr 66 65
+ Store 8(resident) 67
+ 72: 69 Load 71(s2DShadow)
+ 73: 46(fvec3) Load 48(c3)
+ 75: 74(ptr) AccessChain 13(texel) 24
+ 76: 10(float) CompositeExtract 73 2
+ 78: 77(ResType) ImageSparseSampleDrefImplicitLod 72 73 76
+ 79: 10(float) CompositeExtract 78 1
+ Store 75 79
+ 80: 6(int) CompositeExtract 78 0
+ 81: 6(int) Load 8(resident)
+ 82: 6(int) BitwiseOr 81 80
+ Store 8(resident) 82
+ 87: 84 Load 86(sCubeArrayShadow)
+ 90: 11(fvec4) Load 89(c4)
+ 92: 74(ptr) AccessChain 13(texel) 24
+ 93: 77(ResType) ImageSparseSampleDrefImplicitLod 87 90 91
+ 94: 10(float) CompositeExtract 93 1
+ Store 92 94
+ 95: 6(int) CompositeExtract 93 0
+ 96: 6(int) Load 8(resident)
+ 97: 6(int) BitwiseOr 96 95
+ Store 8(resident) 97
+ 98: 27 Load 29(s2D)
+ 99: 31(fvec2) Load 33(c2)
+ 100: 35(ResType) ImageSparseSampleExplicitLod 98 99 Lod 50
+ 101: 11(fvec4) CompositeExtract 100 1
+ Store 13(texel) 101
+ 102: 6(int) CompositeExtract 100 0
+ 103: 6(int) Load 8(resident)
+ 104: 6(int) BitwiseOr 103 102
+ Store 8(resident) 104
+ 109: 106 Load 108(usCubeArray)
+ 110: 11(fvec4) Load 89(c4)
+ 112:111(ResType) ImageSparseSampleExplicitLod 109 110 Lod 91
+ 113: 21(ivec4) CompositeExtract 112 1
+ Store 23(utexel) 113
+ 114: 6(int) CompositeExtract 112 0
+ 115: 6(int) Load 8(resident)
+ 116: 6(int) BitwiseOr 115 114
+ Store 8(resident) 116
+ 117: 69 Load 71(s2DShadow)
+ 118: 46(fvec3) Load 48(c3)
+ 120: 74(ptr) AccessChain 13(texel) 119
+ 121: 10(float) CompositeExtract 118 2
+ 122: 77(ResType) ImageSparseSampleDrefExplicitLod 117 118 121 Lod 50
+ 123: 10(float) CompositeExtract 122 1
+ Store 120 123
+ 124: 6(int) CompositeExtract 122 0
+ 125: 6(int) Load 8(resident)
+ 126: 6(int) BitwiseOr 125 124
+ Store 8(resident) 126
+ 127: 42 Load 44(s3D)
+ 128: 46(fvec3) Load 48(c3)
+ 132: 35(ResType) ImageSparseSampleImplicitLod 127 128 Bias ConstOffset 50 131
+ 133: 11(fvec4) CompositeExtract 132 1
+ Store 13(texel) 133
+ 134: 6(int) CompositeExtract 132 0
+ 135: 6(int) Load 8(resident)
+ 136: 6(int) BitwiseOr 135 134
+ Store 8(resident) 136
+ 141: 138 Load 140(us2DRect)
+ 142: 31(fvec2) Load 33(c2)
+ 146:111(ResType) ImageSparseSampleImplicitLod 141 142 ConstOffset 145
+ 147: 21(ivec4) CompositeExtract 146 1
+ Store 23(utexel) 147
+ 148: 6(int) CompositeExtract 146 0
+ 149: 6(int) Load 8(resident)
+ 150: 6(int) BitwiseOr 149 148
+ Store 8(resident) 150
+ 155: 152 Load 154(s2DArrayShadow)
+ 156: 11(fvec4) Load 89(c4)
+ 160: 74(ptr) AccessChain 13(texel) 159
+ 161: 10(float) CompositeExtract 156 3
+ 162: 77(ResType) ImageSparseSampleDrefImplicitLod 155 156 161 ConstOffset 158
+ 163: 10(float) CompositeExtract 162 1
+ Store 160 163
+ 164: 6(int) CompositeExtract 162 0
+ 165: 6(int) Load 8(resident)
+ 166: 6(int) BitwiseOr 165 164
+ Store 8(resident) 166
+ 167: 27 Load 29(s2D)
+ 168: 31(fvec2) Load 33(c2)
+ 169: 143(ivec2) ConvertFToS 168
+ 170: 26 Image 167
+ 171: 35(ResType) ImageSparseFetch 170 169 Lod 130
+ 172: 11(fvec4) CompositeExtract 171 1
+ Store 13(texel) 172
+ 173: 6(int) CompositeExtract 171 0
+ 174: 6(int) Load 8(resident)
+ 175: 6(int) BitwiseOr 174 173
+ Store 8(resident) 175
+ 176: 138 Load 140(us2DRect)
+ 177: 31(fvec2) Load 33(c2)
+ 178: 143(ivec2) ConvertFToS 177
+ 179: 137 Image 176
+ 180:111(ResType) ImageSparseFetch 179 178
+ 181: 21(ivec4) CompositeExtract 180 1
+ Store 23(utexel) 181
+ 182: 6(int) CompositeExtract 180 0
+ 183: 6(int) Load 8(resident)
+ 184: 6(int) BitwiseOr 183 182
+ Store 8(resident) 184
+ 189: 186 Load 188(s2DMS)
+ 190: 31(fvec2) Load 33(c2)
+ 191: 143(ivec2) ConvertFToS 190
+ 193: 185 Image 189
+ 194: 35(ResType) ImageSparseFetch 193 191 Sample 192
+ 195: 11(fvec4) CompositeExtract 194 1
+ Store 13(texel) 195
+ 196: 6(int) CompositeExtract 194 0
+ 197: 6(int) Load 8(resident)
+ 198: 6(int) BitwiseOr 197 196
+ Store 8(resident) 198
+ 199: 42 Load 44(s3D)
+ 200: 46(fvec3) Load 48(c3)
+ 201: 129(ivec3) ConvertFToS 200
+ 203: 41 Image 199
+ 204: 35(ResType) ImageSparseFetch 203 201 Lod ConstOffset 130 202
+ 205: 11(fvec4) CompositeExtract 204 1
+ Store 13(texel) 205
+ 206: 6(int) CompositeExtract 204 0
+ 207: 6(int) Load 8(resident)
+ 208: 6(int) BitwiseOr 207 206
+ Store 8(resident) 208
+ 209: 138 Load 140(us2DRect)
+ 210: 31(fvec2) Load 33(c2)
+ 211: 143(ivec2) ConvertFToS 210
+ 212: 137 Image 209
+ 213:111(ResType) ImageSparseFetch 212 211 ConstOffset 145
+ 214: 21(ivec4) CompositeExtract 213 1
+ Store 23(utexel) 214
+ 215: 6(int) CompositeExtract 213 0
+ 216: 6(int) Load 8(resident)
+ 217: 6(int) BitwiseOr 216 215
+ Store 8(resident) 217
+ 218: 27 Load 29(s2D)
+ 219: 31(fvec2) Load 33(c2)
+ 220: 35(ResType) ImageSparseSampleExplicitLod 218 219 Lod ConstOffset 50 158
+ 221: 11(fvec4) CompositeExtract 220 1
+ Store 13(texel) 221
+ 222: 6(int) CompositeExtract 220 0
+ 223: 6(int) Load 8(resident)
+ 224: 6(int) BitwiseOr 223 222
+ Store 8(resident) 224
+ 229: 226 Load 228(is2DArray)
+ 230: 46(fvec3) Load 48(c3)
+ 233: 62(ResType) ImageSparseSampleExplicitLod 229 230 Lod ConstOffset 50 232
+ 234: 16(ivec4) CompositeExtract 233 1
+ Store 18(itexel) 234
+ 235: 6(int) CompositeExtract 233 0
+ 236: 6(int) Load 8(resident)
+ 237: 6(int) BitwiseOr 236 235
+ Store 8(resident) 237
+ 238: 69 Load 71(s2DShadow)
+ 239: 46(fvec3) Load 48(c3)
+ 242: 74(ptr) AccessChain 13(texel) 159
+ 243: 10(float) CompositeExtract 239 2
+ 244: 77(ResType) ImageSparseSampleDrefExplicitLod 238 239 243 Lod ConstOffset 50 241
+ 245: 10(float) CompositeExtract 244 1
+ Store 242 245
+ 246: 6(int) CompositeExtract 244 0
+ 247: 6(int) Load 8(resident)
+ 248: 6(int) BitwiseOr 247 246
+ Store 8(resident) 248
+ 249: 42 Load 44(s3D)
+ 250: 46(fvec3) Load 48(c3)
+ 251: 46(fvec3) Load 48(c3)
+ 252: 46(fvec3) Load 48(c3)
+ 253: 35(ResType) ImageSparseSampleExplicitLod 249 250 Grad 251 252
+ 254: 11(fvec4) CompositeExtract 253 1
+ Store 13(texel) 254
+ 255: 6(int) CompositeExtract 253 0
+ 256: 6(int) Load 8(resident)
+ 257: 6(int) BitwiseOr 256 255
+ Store 8(resident) 257
+ 262: 259 Load 261(sCubeShadow)
+ 263: 11(fvec4) Load 89(c4)
+ 264: 46(fvec3) Load 48(c3)
+ 265: 46(fvec3) Load 48(c3)
+ 266: 74(ptr) AccessChain 13(texel) 119
+ 267: 10(float) CompositeExtract 263 3
+ 268: 77(ResType) ImageSparseSampleDrefExplicitLod 262 263 267 Grad 264 265
+ 269: 10(float) CompositeExtract 268 1
+ Store 266 269
+ 270: 6(int) CompositeExtract 268 0
+ 271: 6(int) Load 8(resident)
+ 272: 6(int) BitwiseOr 271 270
+ Store 8(resident) 272
+ 273: 106 Load 108(usCubeArray)
+ 274: 11(fvec4) Load 89(c4)
+ 275: 46(fvec3) Load 48(c3)
+ 276: 46(fvec3) Load 48(c3)
+ 277:111(ResType) ImageSparseSampleExplicitLod 273 274 Grad 275 276
+ 278: 21(ivec4) CompositeExtract 277 1
+ Store 23(utexel) 278
+ 279: 6(int) CompositeExtract 277 0
+ 280: 6(int) Load 8(resident)
+ 281: 6(int) BitwiseOr 280 279
+ Store 8(resident) 281
+ 282: 27 Load 29(s2D)
+ 283: 31(fvec2) Load 33(c2)
+ 284: 31(fvec2) Load 33(c2)
+ 285: 31(fvec2) Load 33(c2)
+ 286: 35(ResType) ImageSparseSampleExplicitLod 282 283 Grad ConstOffset 284 285 158
+ 287: 11(fvec4) CompositeExtract 286 1
+ Store 13(texel) 287
+ 288: 6(int) CompositeExtract 286 0
+ 289: 6(int) Load 8(resident)
+ 290: 6(int) BitwiseOr 289 288
+ Store 8(resident) 290
+ 295: 292 Load 294(s2DRectShadow)
+ 296: 46(fvec3) Load 48(c3)
+ 297: 31(fvec2) Load 33(c2)
+ 298: 31(fvec2) Load 33(c2)
+ 300: 74(ptr) AccessChain 13(texel) 299
+ 301: 10(float) CompositeExtract 296 2
+ 302: 77(ResType) ImageSparseSampleDrefExplicitLod 295 296 301 Grad ConstOffset 297 298 232
+ 303: 10(float) CompositeExtract 302 1
+ Store 300 303
+ 304: 6(int) CompositeExtract 302 0
+ 305: 6(int) Load 8(resident)
+ 306: 6(int) BitwiseOr 305 304
+ Store 8(resident) 306
+ 307: 226 Load 228(is2DArray)
+ 308: 46(fvec3) Load 48(c3)
+ 309: 31(fvec2) Load 33(c2)
+ 310: 31(fvec2) Load 33(c2)
+ 312: 62(ResType) ImageSparseSampleExplicitLod 307 308 Grad ConstOffset 309 310 311
+ 313: 16(ivec4) CompositeExtract 312 1
+ Store 18(itexel) 313
+ 314: 6(int) CompositeExtract 312 0
+ 315: 6(int) Load 8(resident)
+ 316: 6(int) BitwiseOr 315 314
+ Store 8(resident) 316
+ 317: 27 Load 29(s2D)
+ 318: 31(fvec2) Load 33(c2)
+ 319: 35(ResType) ImageSparseGather 317 318 9
+ 320: 11(fvec4) CompositeExtract 319 1
+ Store 13(texel) 320
+ 321: 6(int) CompositeExtract 319 0
+ 322: 6(int) Load 8(resident)
+ 323: 6(int) BitwiseOr 322 321
+ Store 8(resident) 323
+ 324: 226 Load 228(is2DArray)
+ 325: 46(fvec3) Load 48(c3)
+ 326: 62(ResType) ImageSparseGather 324 325 130
+ 327: 16(ivec4) CompositeExtract 326 1
+ Store 18(itexel) 327
+ 328: 6(int) CompositeExtract 326 0
+ 329: 6(int) Load 8(resident)
+ 330: 6(int) BitwiseOr 329 328
+ Store 8(resident) 330
+ 331: 152 Load 154(s2DArrayShadow)
+ 332: 46(fvec3) Load 48(c3)
+ 333: 35(ResType) ImageSparseDrefGather 331 332 50
+ 334: 11(fvec4) CompositeExtract 333 1
+ Store 13(texel) 334
+ 335: 6(int) CompositeExtract 333 0
+ 336: 6(int) Load 8(resident)
+ 337: 6(int) BitwiseOr 336 335
+ Store 8(resident) 337
+ 338: 27 Load 29(s2D)
+ 339: 31(fvec2) Load 33(c2)
+ 341: 35(ResType) ImageSparseGather 338 339 9 ConstOffset 340
+ 342: 11(fvec4) CompositeExtract 341 1
+ Store 13(texel) 342
+ 343: 6(int) CompositeExtract 341 0
+ 344: 6(int) Load 8(resident)
+ 345: 6(int) BitwiseOr 344 343
+ Store 8(resident) 345
+ 346: 226 Load 228(is2DArray)
+ 347: 46(fvec3) Load 48(c3)
+ 348: 62(ResType) ImageSparseGather 346 347 130 ConstOffset 158
+ 349: 16(ivec4) CompositeExtract 348 1
+ Store 18(itexel) 349
+ 350: 6(int) CompositeExtract 348 0
+ 351: 6(int) Load 8(resident)
+ 352: 6(int) BitwiseOr 351 350
+ Store 8(resident) 352
+ 353: 292 Load 294(s2DRectShadow)
+ 354: 31(fvec2) Load 33(c2)
+ 355: 35(ResType) ImageSparseDrefGather 353 354 50 ConstOffset 241
+ 356: 11(fvec4) CompositeExtract 355 1
+ Store 13(texel) 356
+ 357: 6(int) CompositeExtract 355 0
+ 358: 6(int) Load 8(resident)
+ 359: 6(int) BitwiseOr 358 357
+ Store 8(resident) 359
+ 360: 27 Load 29(s2D)
+ 361: 31(fvec2) Load 33(c2)
+ 366: 363 Load 365(offsets)
+ 367: 35(ResType) ImageSparseGather 360 361 9 ConstOffsets 366
+ 368: 11(fvec4) CompositeExtract 367 1
+ Store 13(texel) 368
+ 369: 6(int) CompositeExtract 367 0
+ 370: 6(int) Load 8(resident)
+ 371: 6(int) BitwiseOr 370 369
+ Store 8(resident) 371
+ 372: 226 Load 228(is2DArray)
+ 373: 46(fvec3) Load 48(c3)
+ 374: 363 Load 365(offsets)
+ 375: 62(ResType) ImageSparseGather 372 373 130 ConstOffsets 374
+ 376: 16(ivec4) CompositeExtract 375 1
+ Store 18(itexel) 376
+ 377: 6(int) CompositeExtract 375 0
+ 378: 6(int) Load 8(resident)
+ 379: 6(int) BitwiseOr 378 377
+ Store 8(resident) 379
+ 380: 292 Load 294(s2DRectShadow)
+ 381: 31(fvec2) Load 33(c2)
+ 382: 363 Load 365(offsets)
+ 383: 35(ResType) ImageSparseDrefGather 380 381 50 ConstOffsets 382
+ 384: 11(fvec4) CompositeExtract 383 1
+ Store 13(texel) 384
+ 385: 6(int) CompositeExtract 383 0
+ 386: 6(int) Load 8(resident)
+ 387: 6(int) BitwiseOr 386 385
+ Store 8(resident) 387
+ 391: 388 Load 390(i2D)
+ 394: 143(ivec2) Load 393(ic2)
+ 395: 35(ResType) ImageSparseRead 391 394
+ 396: 11(fvec4) CompositeExtract 395 1
+ Store 13(texel) 396
+ 397: 6(int) CompositeExtract 395 0
+ 398: 6(int) Load 8(resident)
+ 399: 6(int) BitwiseOr 398 397
+ Store 8(resident) 399
+ 403: 400 Load 402(ii3D)
+ 406: 129(ivec3) Load 405(ic3)
+ 407: 62(ResType) ImageSparseRead 403 406
+ 408: 16(ivec4) CompositeExtract 407 1
+ Store 18(itexel) 408
+ 409: 6(int) CompositeExtract 407 0
+ 410: 6(int) Load 8(resident)
+ 411: 6(int) BitwiseOr 410 409
+ Store 8(resident) 411
+ 415: 412 Load 414(i2DMS)
+ 416: 143(ivec2) Load 393(ic2)
+ 417: 35(ResType) ImageSparseRead 415 416 Sample 144
+ 418: 11(fvec4) CompositeExtract 417 1
+ Store 13(texel) 418
+ 419: 6(int) CompositeExtract 417 0
+ 420: 6(int) Load 8(resident)
+ 421: 6(int) BitwiseOr 420 419
+ Store 8(resident) 421
+ 425: 6(int) Load 8(resident)
+ 427: 426(bool) ImageSparseTexelsResident 425
+ SelectionMerge 429 None
+ BranchConditional 427 428 431
+ 428: Label
+ 430: 11(fvec4) Load 13(texel)
+ Store 424 430
+ Branch 429
+ 431: Label
+ 432: 16(ivec4) Load 18(itexel)
+ 433: 11(fvec4) ConvertSToF 432
+ 434: 21(ivec4) Load 23(utexel)
+ 435: 11(fvec4) ConvertUToF 434
+ 436: 11(fvec4) FAdd 433 435
+ Store 424 436
+ Branch 429
+ 429: Label
+ 437: 11(fvec4) Load 424
+ Store 423(outColor) 437
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.sparseTextureClamp.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.sparseTextureClamp.frag.out
new file mode 100644
index 00000000000..1922ac12548
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.sparseTextureClamp.frag.out
@@ -0,0 +1,471 @@
+spv.sparseTextureClamp.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 360
+
+ Capability Shader
+ Capability SampledRect
+ Capability SparseResidency
+ Capability MinLod
+ Capability SampledCubeArray
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 33 36 51 95 345
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 450
+ SourceExtension "GL_ARB_sparse_texture_clamp"
+ Name 4 "main"
+ Name 8 "resident"
+ Name 13 "texel"
+ Name 18 "itexel"
+ Name 23 "utexel"
+ Name 29 "s2D"
+ Name 33 "c2"
+ Name 36 "lodClamp"
+ Name 38 "ResType"
+ Name 47 "s3D"
+ Name 51 "c3"
+ Name 63 "isCube"
+ Name 67 "ResType"
+ Name 76 "s2DShadow"
+ Name 83 "ResType"
+ Name 92 "sCubeArrayShadow"
+ Name 95 "c4"
+ Name 154 "us2DRect"
+ Name 161 "ResType"
+ Name 170 "s2DArrayShadow"
+ Name 218 "sCubeShadow"
+ Name 235 "usCubeArray"
+ Name 286 "s2DRectShadow"
+ Name 305 "is2DArray"
+ Name 345 "outColor"
+ Decorate 29(s2D) DescriptorSet 0
+ Decorate 47(s3D) DescriptorSet 0
+ Decorate 63(isCube) DescriptorSet 0
+ Decorate 76(s2DShadow) DescriptorSet 0
+ Decorate 92(sCubeArrayShadow) DescriptorSet 0
+ Decorate 154(us2DRect) DescriptorSet 0
+ Decorate 170(s2DArrayShadow) DescriptorSet 0
+ Decorate 218(sCubeShadow) DescriptorSet 0
+ Decorate 235(usCubeArray) DescriptorSet 0
+ Decorate 286(s2DRectShadow) DescriptorSet 0
+ Decorate 305(is2DArray) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypePointer Function 6(int)
+ 9: 6(int) Constant 0
+ 10: TypeFloat 32
+ 11: TypeVector 10(float) 4
+ 12: TypePointer Function 11(fvec4)
+ 14: 10(float) Constant 0
+ 15: 11(fvec4) ConstantComposite 14 14 14 14
+ 16: TypeVector 6(int) 4
+ 17: TypePointer Function 16(ivec4)
+ 19: 16(ivec4) ConstantComposite 9 9 9 9
+ 20: TypeInt 32 0
+ 21: TypeVector 20(int) 4
+ 22: TypePointer Function 21(ivec4)
+ 24: 20(int) Constant 0
+ 25: 21(ivec4) ConstantComposite 24 24 24 24
+ 26: TypeImage 10(float) 2D sampled format:Unknown
+ 27: TypeSampledImage 26
+ 28: TypePointer UniformConstant 27
+ 29(s2D): 28(ptr) Variable UniformConstant
+ 31: TypeVector 10(float) 2
+ 32: TypePointer Input 31(fvec2)
+ 33(c2): 32(ptr) Variable Input
+ 35: TypePointer Input 10(float)
+ 36(lodClamp): 35(ptr) Variable Input
+ 38(ResType): TypeStruct 6(int) 11(fvec4)
+ 44: TypeImage 10(float) 3D sampled format:Unknown
+ 45: TypeSampledImage 44
+ 46: TypePointer UniformConstant 45
+ 47(s3D): 46(ptr) Variable UniformConstant
+ 49: TypeVector 10(float) 3
+ 50: TypePointer Input 49(fvec3)
+ 51(c3): 50(ptr) Variable Input
+ 54: 10(float) Constant 1073741824
+ 60: TypeImage 6(int) Cube sampled format:Unknown
+ 61: TypeSampledImage 60
+ 62: TypePointer UniformConstant 61
+ 63(isCube): 62(ptr) Variable UniformConstant
+ 67(ResType): TypeStruct 6(int) 16(ivec4)
+ 73: TypeImage 10(float) 2D depth sampled format:Unknown
+ 74: TypeSampledImage 73
+ 75: TypePointer UniformConstant 74
+ 76(s2DShadow): 75(ptr) Variable UniformConstant
+ 80: TypePointer Function 10(float)
+ 83(ResType): TypeStruct 6(int) 10(float)
+ 89: TypeImage 10(float) Cube depth array sampled format:Unknown
+ 90: TypeSampledImage 89
+ 91: TypePointer UniformConstant 90
+92(sCubeArrayShadow): 91(ptr) Variable UniformConstant
+ 94: TypePointer Input 11(fvec4)
+ 95(c4): 94(ptr) Variable Input
+ 97: 10(float) Constant 1065353216
+ 142: TypeVector 6(int) 3
+ 143: 6(int) Constant 2
+ 144: 142(ivec3) ConstantComposite 143 143 143
+ 151: TypeImage 20(int) Rect sampled format:Unknown
+ 152: TypeSampledImage 151
+ 153: TypePointer UniformConstant 152
+ 154(us2DRect): 153(ptr) Variable UniformConstant
+ 157: TypeVector 6(int) 2
+ 158: 6(int) Constant 3
+ 159: 157(ivec2) ConstantComposite 158 158
+ 161(ResType): TypeStruct 6(int) 21(ivec4)
+ 167: TypeImage 10(float) 2D depth array sampled format:Unknown
+ 168: TypeSampledImage 167
+ 169: TypePointer UniformConstant 168
+170(s2DArrayShadow): 169(ptr) Variable UniformConstant
+ 173: 6(int) Constant 5
+ 174: 157(ivec2) ConstantComposite 173 173
+ 176: 20(int) Constant 2
+ 215: TypeImage 10(float) Cube depth sampled format:Unknown
+ 216: TypeSampledImage 215
+ 217: TypePointer UniformConstant 216
+218(sCubeShadow): 217(ptr) Variable UniformConstant
+ 224: 20(int) Constant 1
+ 232: TypeImage 20(int) Cube array sampled format:Unknown
+ 233: TypeSampledImage 232
+ 234: TypePointer UniformConstant 233
+235(usCubeArray): 234(ptr) Variable UniformConstant
+ 283: TypeImage 10(float) Rect depth sampled format:Unknown
+ 284: TypeSampledImage 283
+ 285: TypePointer UniformConstant 284
+286(s2DRectShadow): 285(ptr) Variable UniformConstant
+ 291: 6(int) Constant 6
+ 292: 157(ivec2) ConstantComposite 291 291
+ 294: 20(int) Constant 3
+ 302: TypeImage 6(int) 2D array sampled format:Unknown
+ 303: TypeSampledImage 302
+ 304: TypePointer UniformConstant 303
+ 305(is2DArray): 304(ptr) Variable UniformConstant
+ 310: 157(ivec2) ConstantComposite 143 143
+ 344: TypePointer Output 11(fvec4)
+ 345(outColor): 344(ptr) Variable Output
+ 348: TypeBool
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(resident): 7(ptr) Variable Function
+ 13(texel): 12(ptr) Variable Function
+ 18(itexel): 17(ptr) Variable Function
+ 23(utexel): 22(ptr) Variable Function
+ 346: 12(ptr) Variable Function
+ Store 8(resident) 9
+ Store 13(texel) 15
+ Store 18(itexel) 19
+ Store 23(utexel) 25
+ 30: 27 Load 29(s2D)
+ 34: 31(fvec2) Load 33(c2)
+ 37: 10(float) Load 36(lodClamp)
+ 39: 38(ResType) ImageSparseSampleImplicitLod 30 34 MinLod 37
+ 40: 11(fvec4) CompositeExtract 39 1
+ Store 13(texel) 40
+ 41: 6(int) CompositeExtract 39 0
+ 42: 6(int) Load 8(resident)
+ 43: 6(int) BitwiseOr 42 41
+ Store 8(resident) 43
+ 48: 45 Load 47(s3D)
+ 52: 49(fvec3) Load 51(c3)
+ 53: 10(float) Load 36(lodClamp)
+ 55: 38(ResType) ImageSparseSampleImplicitLod 48 52 Bias MinLod 54 53
+ 56: 11(fvec4) CompositeExtract 55 1
+ Store 13(texel) 56
+ 57: 6(int) CompositeExtract 55 0
+ 58: 6(int) Load 8(resident)
+ 59: 6(int) BitwiseOr 58 57
+ Store 8(resident) 59
+ 64: 61 Load 63(isCube)
+ 65: 49(fvec3) Load 51(c3)
+ 66: 10(float) Load 36(lodClamp)
+ 68: 67(ResType) ImageSparseSampleImplicitLod 64 65 MinLod 66
+ 69: 16(ivec4) CompositeExtract 68 1
+ Store 18(itexel) 69
+ 70: 6(int) CompositeExtract 68 0
+ 71: 6(int) Load 8(resident)
+ 72: 6(int) BitwiseOr 71 70
+ Store 8(resident) 72
+ 77: 74 Load 76(s2DShadow)
+ 78: 49(fvec3) Load 51(c3)
+ 79: 10(float) Load 36(lodClamp)
+ 81: 80(ptr) AccessChain 13(texel) 24
+ 82: 10(float) CompositeExtract 78 2
+ 84: 83(ResType) ImageSparseSampleDrefImplicitLod 77 78 82 MinLod 79
+ 85: 10(float) CompositeExtract 84 1
+ Store 81 85
+ 86: 6(int) CompositeExtract 84 0
+ 87: 6(int) Load 8(resident)
+ 88: 6(int) BitwiseOr 87 86
+ Store 8(resident) 88
+ 93: 90 Load 92(sCubeArrayShadow)
+ 96: 11(fvec4) Load 95(c4)
+ 98: 10(float) Load 36(lodClamp)
+ 99: 80(ptr) AccessChain 13(texel) 24
+ 100: 83(ResType) ImageSparseSampleDrefImplicitLod 93 96 97 MinLod 98
+ 101: 10(float) CompositeExtract 100 1
+ Store 99 101
+ 102: 6(int) CompositeExtract 100 0
+ 103: 6(int) Load 8(resident)
+ 104: 6(int) BitwiseOr 103 102
+ Store 8(resident) 104
+ 105: 27 Load 29(s2D)
+ 106: 31(fvec2) Load 33(c2)
+ 107: 10(float) Load 36(lodClamp)
+ 108: 11(fvec4) ImageSampleImplicitLod 105 106 MinLod 107
+ 109: 11(fvec4) Load 13(texel)
+ 110: 11(fvec4) FAdd 109 108
+ Store 13(texel) 110
+ 111: 45 Load 47(s3D)
+ 112: 49(fvec3) Load 51(c3)
+ 113: 10(float) Load 36(lodClamp)
+ 114: 11(fvec4) ImageSampleImplicitLod 111 112 Bias MinLod 54 113
+ 115: 11(fvec4) Load 13(texel)
+ 116: 11(fvec4) FAdd 115 114
+ Store 13(texel) 116
+ 117: 61 Load 63(isCube)
+ 118: 49(fvec3) Load 51(c3)
+ 119: 10(float) Load 36(lodClamp)
+ 120: 16(ivec4) ImageSampleImplicitLod 117 118 MinLod 119
+ 121: 16(ivec4) Load 18(itexel)
+ 122: 16(ivec4) IAdd 121 120
+ Store 18(itexel) 122
+ 123: 74 Load 76(s2DShadow)
+ 124: 49(fvec3) Load 51(c3)
+ 125: 10(float) Load 36(lodClamp)
+ 126: 10(float) CompositeExtract 124 2
+ 127: 10(float) ImageSampleDrefImplicitLod 123 124 126 MinLod 125
+ 128: 80(ptr) AccessChain 13(texel) 24
+ 129: 10(float) Load 128
+ 130: 10(float) FAdd 129 127
+ 131: 80(ptr) AccessChain 13(texel) 24
+ Store 131 130
+ 132: 90 Load 92(sCubeArrayShadow)
+ 133: 11(fvec4) Load 95(c4)
+ 134: 10(float) Load 36(lodClamp)
+ 135: 10(float) ImageSampleDrefImplicitLod 132 133 97 MinLod 134
+ 136: 80(ptr) AccessChain 13(texel) 24
+ 137: 10(float) Load 136
+ 138: 10(float) FAdd 137 135
+ 139: 80(ptr) AccessChain 13(texel) 24
+ Store 139 138
+ 140: 45 Load 47(s3D)
+ 141: 49(fvec3) Load 51(c3)
+ 145: 10(float) Load 36(lodClamp)
+ 146: 38(ResType) ImageSparseSampleImplicitLod 140 141 Bias ConstOffset MinLod 54 144 145
+ 147: 11(fvec4) CompositeExtract 146 1
+ Store 13(texel) 147
+ 148: 6(int) CompositeExtract 146 0
+ 149: 6(int) Load 8(resident)
+ 150: 6(int) BitwiseOr 149 148
+ Store 8(resident) 150
+ 155: 152 Load 154(us2DRect)
+ 156: 31(fvec2) Load 33(c2)
+ 160: 10(float) Load 36(lodClamp)
+ 162:161(ResType) ImageSparseSampleImplicitLod 155 156 ConstOffset MinLod 159 160
+ 163: 21(ivec4) CompositeExtract 162 1
+ Store 23(utexel) 163
+ 164: 6(int) CompositeExtract 162 0
+ 165: 6(int) Load 8(resident)
+ 166: 6(int) BitwiseOr 165 164
+ Store 8(resident) 166
+ 171: 168 Load 170(s2DArrayShadow)
+ 172: 11(fvec4) Load 95(c4)
+ 175: 10(float) Load 36(lodClamp)
+ 177: 80(ptr) AccessChain 13(texel) 176
+ 178: 10(float) CompositeExtract 172 3
+ 179: 83(ResType) ImageSparseSampleDrefImplicitLod 171 172 178 ConstOffset MinLod 174 175
+ 180: 10(float) CompositeExtract 179 1
+ Store 177 180
+ 181: 6(int) CompositeExtract 179 0
+ 182: 6(int) Load 8(resident)
+ 183: 6(int) BitwiseOr 182 181
+ Store 8(resident) 183
+ 184: 45 Load 47(s3D)
+ 185: 49(fvec3) Load 51(c3)
+ 186: 10(float) Load 36(lodClamp)
+ 187: 11(fvec4) ImageSampleImplicitLod 184 185 Bias ConstOffset MinLod 54 144 186
+ 188: 11(fvec4) Load 13(texel)
+ 189: 11(fvec4) FAdd 188 187
+ Store 13(texel) 189
+ 190: 152 Load 154(us2DRect)
+ 191: 31(fvec2) Load 33(c2)
+ 192: 10(float) Load 36(lodClamp)
+ 193: 21(ivec4) ImageSampleImplicitLod 190 191 ConstOffset MinLod 159 192
+ 194: 21(ivec4) Load 23(utexel)
+ 195: 21(ivec4) IAdd 194 193
+ Store 23(utexel) 195
+ 196: 168 Load 170(s2DArrayShadow)
+ 197: 11(fvec4) Load 95(c4)
+ 198: 10(float) Load 36(lodClamp)
+ 199: 10(float) CompositeExtract 197 3
+ 200: 10(float) ImageSampleDrefImplicitLod 196 197 199 ConstOffset MinLod 174 198
+ 201: 80(ptr) AccessChain 13(texel) 176
+ 202: 10(float) Load 201
+ 203: 10(float) FAdd 202 200
+ 204: 80(ptr) AccessChain 13(texel) 176
+ Store 204 203
+ 205: 45 Load 47(s3D)
+ 206: 49(fvec3) Load 51(c3)
+ 207: 49(fvec3) Load 51(c3)
+ 208: 49(fvec3) Load 51(c3)
+ 209: 10(float) Load 36(lodClamp)
+ 210: 38(ResType) ImageSparseSampleExplicitLod 205 206 Grad MinLod 207 208 209
+ 211: 11(fvec4) CompositeExtract 210 1
+ Store 13(texel) 211
+ 212: 6(int) CompositeExtract 210 0
+ 213: 6(int) Load 8(resident)
+ 214: 6(int) BitwiseOr 213 212
+ Store 8(resident) 214
+ 219: 216 Load 218(sCubeShadow)
+ 220: 11(fvec4) Load 95(c4)
+ 221: 49(fvec3) Load 51(c3)
+ 222: 49(fvec3) Load 51(c3)
+ 223: 10(float) Load 36(lodClamp)
+ 225: 80(ptr) AccessChain 13(texel) 224
+ 226: 10(float) CompositeExtract 220 3
+ 227: 83(ResType) ImageSparseSampleDrefExplicitLod 219 220 226 Grad MinLod 221 222 223
+ 228: 10(float) CompositeExtract 227 1
+ Store 225 228
+ 229: 6(int) CompositeExtract 227 0
+ 230: 6(int) Load 8(resident)
+ 231: 6(int) BitwiseOr 230 229
+ Store 8(resident) 231
+ 236: 233 Load 235(usCubeArray)
+ 237: 11(fvec4) Load 95(c4)
+ 238: 49(fvec3) Load 51(c3)
+ 239: 49(fvec3) Load 51(c3)
+ 240: 10(float) Load 36(lodClamp)
+ 241:161(ResType) ImageSparseSampleExplicitLod 236 237 Grad MinLod 238 239 240
+ 242: 21(ivec4) CompositeExtract 241 1
+ Store 23(utexel) 242
+ 243: 6(int) CompositeExtract 241 0
+ 244: 6(int) Load 8(resident)
+ 245: 6(int) BitwiseOr 244 243
+ Store 8(resident) 245
+ 246: 45 Load 47(s3D)
+ 247: 49(fvec3) Load 51(c3)
+ 248: 49(fvec3) Load 51(c3)
+ 249: 49(fvec3) Load 51(c3)
+ 250: 10(float) Load 36(lodClamp)
+ 251: 11(fvec4) ImageSampleExplicitLod 246 247 Grad MinLod 248 249 250
+ 252: 11(fvec4) Load 13(texel)
+ 253: 11(fvec4) FAdd 252 251
+ Store 13(texel) 253
+ 254: 216 Load 218(sCubeShadow)
+ 255: 11(fvec4) Load 95(c4)
+ 256: 49(fvec3) Load 51(c3)
+ 257: 49(fvec3) Load 51(c3)
+ 258: 10(float) Load 36(lodClamp)
+ 259: 10(float) CompositeExtract 255 3
+ 260: 10(float) ImageSampleDrefExplicitLod 254 255 259 Grad MinLod 256 257 258
+ 261: 80(ptr) AccessChain 13(texel) 224
+ 262: 10(float) Load 261
+ 263: 10(float) FAdd 262 260
+ 264: 80(ptr) AccessChain 13(texel) 224
+ Store 264 263
+ 265: 233 Load 235(usCubeArray)
+ 266: 11(fvec4) Load 95(c4)
+ 267: 49(fvec3) Load 51(c3)
+ 268: 49(fvec3) Load 51(c3)
+ 269: 10(float) Load 36(lodClamp)
+ 270: 21(ivec4) ImageSampleExplicitLod 265 266 Grad MinLod 267 268 269
+ 271: 21(ivec4) Load 23(utexel)
+ 272: 21(ivec4) IAdd 271 270
+ Store 23(utexel) 272
+ 273: 27 Load 29(s2D)
+ 274: 31(fvec2) Load 33(c2)
+ 275: 31(fvec2) Load 33(c2)
+ 276: 31(fvec2) Load 33(c2)
+ 277: 10(float) Load 36(lodClamp)
+ 278: 38(ResType) ImageSparseSampleExplicitLod 273 274 Grad ConstOffset MinLod 275 276 174 277
+ 279: 11(fvec4) CompositeExtract 278 1
+ Store 13(texel) 279
+ 280: 6(int) CompositeExtract 278 0
+ 281: 6(int) Load 8(resident)
+ 282: 6(int) BitwiseOr 281 280
+ Store 8(resident) 282
+ 287: 284 Load 286(s2DRectShadow)
+ 288: 49(fvec3) Load 51(c3)
+ 289: 31(fvec2) Load 33(c2)
+ 290: 31(fvec2) Load 33(c2)
+ 293: 10(float) Load 36(lodClamp)
+ 295: 80(ptr) AccessChain 13(texel) 294
+ 296: 10(float) CompositeExtract 288 2
+ 297: 83(ResType) ImageSparseSampleDrefExplicitLod 287 288 296 Grad ConstOffset MinLod 289 290 292 293
+ 298: 10(float) CompositeExtract 297 1
+ Store 295 298
+ 299: 6(int) CompositeExtract 297 0
+ 300: 6(int) Load 8(resident)
+ 301: 6(int) BitwiseOr 300 299
+ Store 8(resident) 301
+ 306: 303 Load 305(is2DArray)
+ 307: 49(fvec3) Load 51(c3)
+ 308: 31(fvec2) Load 33(c2)
+ 309: 31(fvec2) Load 33(c2)
+ 311: 10(float) Load 36(lodClamp)
+ 312: 67(ResType) ImageSparseSampleExplicitLod 306 307 Grad ConstOffset MinLod 308 309 310 311
+ 313: 16(ivec4) CompositeExtract 312 1
+ Store 18(itexel) 313
+ 314: 6(int) CompositeExtract 312 0
+ 315: 6(int) Load 8(resident)
+ 316: 6(int) BitwiseOr 315 314
+ Store 8(resident) 316
+ 317: 27 Load 29(s2D)
+ 318: 31(fvec2) Load 33(c2)
+ 319: 31(fvec2) Load 33(c2)
+ 320: 31(fvec2) Load 33(c2)
+ 321: 10(float) Load 36(lodClamp)
+ 322: 11(fvec4) ImageSampleExplicitLod 317 318 Grad ConstOffset MinLod 319 320 174 321
+ 323: 11(fvec4) Load 13(texel)
+ 324: 11(fvec4) FAdd 323 322
+ Store 13(texel) 324
+ 325: 284 Load 286(s2DRectShadow)
+ 326: 49(fvec3) Load 51(c3)
+ 327: 31(fvec2) Load 33(c2)
+ 328: 31(fvec2) Load 33(c2)
+ 329: 10(float) Load 36(lodClamp)
+ 330: 10(float) CompositeExtract 326 2
+ 331: 10(float) ImageSampleDrefExplicitLod 325 326 330 Grad ConstOffset MinLod 327 328 292 329
+ 332: 80(ptr) AccessChain 13(texel) 294
+ 333: 10(float) Load 332
+ 334: 10(float) FAdd 333 331
+ 335: 80(ptr) AccessChain 13(texel) 294
+ Store 335 334
+ 336: 303 Load 305(is2DArray)
+ 337: 49(fvec3) Load 51(c3)
+ 338: 31(fvec2) Load 33(c2)
+ 339: 31(fvec2) Load 33(c2)
+ 340: 10(float) Load 36(lodClamp)
+ 341: 16(ivec4) ImageSampleExplicitLod 336 337 Grad ConstOffset MinLod 338 339 310 340
+ 342: 16(ivec4) Load 18(itexel)
+ 343: 16(ivec4) IAdd 342 341
+ Store 18(itexel) 343
+ 347: 6(int) Load 8(resident)
+ 349: 348(bool) ImageSparseTexelsResident 347
+ SelectionMerge 351 None
+ BranchConditional 349 350 353
+ 350: Label
+ 352: 11(fvec4) Load 13(texel)
+ Store 346 352
+ Branch 351
+ 353: Label
+ 354: 16(ivec4) Load 18(itexel)
+ 355: 11(fvec4) ConvertSToF 354
+ 356: 21(ivec4) Load 23(utexel)
+ 357: 11(fvec4) ConvertUToF 356
+ 358: 11(fvec4) FAdd 355 357
+ Store 346 358
+ Branch 351
+ 351: Label
+ 359: 11(fvec4) Load 346
+ Store 345(outColor) 359
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.specConstant.comp.out b/chromium/third_party/glslang/src/Test/baseResults/spv.specConstant.comp.out
new file mode 100644
index 00000000000..2f16f04d4a7
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.specConstant.comp.out
@@ -0,0 +1,55 @@
+spv.specConstant.comp
+Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked compute stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 27
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint GLCompute 4 "main"
+ ExecutionMode 4 LocalSize 32 32 1
+ Source GLSL 450
+ Name 4 "main"
+ Name 7 "bn"
+ MemberName 7(bn) 0 "a"
+ Name 9 "bi"
+ MemberDecorate 7(bn) 0 Offset 0
+ Decorate 7(bn) BufferBlock
+ Decorate 9(bi) DescriptorSet 0
+ Decorate 12 SpecId 18
+ Decorate 14 SpecId 19
+ Decorate 16 BuiltIn WorkgroupSize
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 0
+ 7(bn): TypeStruct 6(int)
+ 8: TypePointer Uniform 7(bn)
+ 9(bi): 8(ptr) Variable Uniform
+ 10: TypeInt 32 1
+ 11: 10(int) Constant 0
+ 12: 6(int) SpecConstant 32
+ 13: 6(int) Constant 32
+ 14: 6(int) SpecConstant 1
+ 15: TypeVector 6(int) 3
+ 16: 15(ivec3) SpecConstantComposite 12 13 14
+ 17: 6(int) Constant 0
+ 18: 6(int) SpecConstantOp 81 16 0
+ 19: 6(int) Constant 1
+ 20: 6(int) SpecConstantOp 81 16 1(GLSL.std.450)
+ 21: 6(int) SpecConstantOp 132 18 20
+ 22: 6(int) Constant 2
+ 23: 6(int) SpecConstantOp 81 16 2
+ 24: 6(int) SpecConstantOp 132 21 23
+ 25: TypePointer Uniform 6(int)
+ 4(main): 2 Function None 3
+ 5: Label
+ 26: 25(ptr) AccessChain 9(bi) 11
+ Store 26 24
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.specConstant.vert.out b/chromium/third_party/glslang/src/Test/baseResults/spv.specConstant.vert.out
new file mode 100644
index 00000000000..fb7c70a7309
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.specConstant.vert.out
@@ -0,0 +1,137 @@
+spv.specConstant.vert
+Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 81
+
+ Capability Shader
+ Capability Float64
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Vertex 4 "main" 20 22 28 53
+ Source GLSL 400
+ Name 4 "main"
+ Name 14 "foo(vf4[s1516];"
+ Name 13 "p"
+ Name 17 "builtin_spec_constant("
+ Name 20 "color"
+ Name 22 "ucol"
+ Name 28 "size"
+ Name 47 "param"
+ Name 53 "dupUcol"
+ Name 76 "result"
+ Decorate 9 SpecId 16
+ Decorate 30 SpecId 17
+ Decorate 34 SpecId 22
+ Decorate 39 SpecId 19
+ Decorate 40 SpecId 18
+ Decorate 50 SpecId 116
+ Decorate 60 SpecId 117
+ Decorate 63 SpecId 122
+ Decorate 67 SpecId 119
+ Decorate 68 SpecId 118
+ Decorate 77 SpecId 24
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypeInt 32 1
+ 9: 8(int) SpecConstant 5
+ 10: TypeArray 7(fvec4) 9
+ 11: TypePointer Function 10
+ 12: TypeFunction 2 11(ptr)
+ 16: TypeFunction 8(int)
+ 19: TypePointer Output 7(fvec4)
+ 20(color): 19(ptr) Variable Output
+ 21: TypePointer Input 10
+ 22(ucol): 21(ptr) Variable Input
+ 23: 8(int) Constant 2
+ 24: TypePointer Input 7(fvec4)
+ 27: TypePointer Output 8(int)
+ 28(size): 27(ptr) Variable Output
+ 29: TypeBool
+ 30: 29(bool) SpecConstantTrue
+ 33: TypeInt 32 0
+ 34: 33(int) SpecConstant 2
+ 38: TypeFloat 64
+ 39: 38(float) SpecConstant 1413754136 1074340347
+ 40: 6(float) SpecConstant 1078523331
+ 50: 8(int) SpecConstant 12
+ 51: TypeArray 7(fvec4) 50
+ 52: TypePointer Input 51
+ 53(dupUcol): 52(ptr) Variable Input
+ 60: 29(bool) SpecConstantTrue
+ 63: 33(int) SpecConstant 2
+ 67: 38(float) SpecConstant 1413754136 1074340347
+ 68: 6(float) SpecConstant 1078523331
+ 75: TypePointer Function 8(int)
+ 77: 8(int) SpecConstant 8
+ 4(main): 2 Function None 3
+ 5: Label
+ 47(param): 11(ptr) Variable Function
+ 25: 24(ptr) AccessChain 22(ucol) 23
+ 26: 7(fvec4) Load 25
+ Store 20(color) 26
+ Store 28(size) 9
+ SelectionMerge 32 None
+ BranchConditional 30 31 32
+ 31: Label
+ 35: 6(float) ConvertUToF 34
+ 36: 7(fvec4) Load 20(color)
+ 37: 7(fvec4) VectorTimesScalar 36 35
+ Store 20(color) 37
+ Branch 32
+ 32: Label
+ 41: 38(float) FConvert 40
+ 42: 38(float) FDiv 39 41
+ 43: 6(float) FConvert 42
+ 44: 7(fvec4) Load 20(color)
+ 45: 7(fvec4) CompositeConstruct 43 43 43 43
+ 46: 7(fvec4) FAdd 44 45
+ Store 20(color) 46
+ 48: 10 Load 22(ucol)
+ Store 47(param) 48
+ 49: 2 FunctionCall 14(foo(vf4[s1516];) 47(param)
+ Return
+ FunctionEnd
+14(foo(vf4[s1516];): 2 Function None 12
+ 13(p): 11(ptr) FunctionParameter
+ 15: Label
+ 54: 24(ptr) AccessChain 53(dupUcol) 23
+ 55: 7(fvec4) Load 54
+ 56: 7(fvec4) Load 20(color)
+ 57: 7(fvec4) FAdd 56 55
+ Store 20(color) 57
+ 58: 8(int) Load 28(size)
+ 59: 8(int) IAdd 58 50
+ Store 28(size) 59
+ SelectionMerge 62 None
+ BranchConditional 60 61 62
+ 61: Label
+ 64: 6(float) ConvertUToF 63
+ 65: 7(fvec4) Load 20(color)
+ 66: 7(fvec4) VectorTimesScalar 65 64
+ Store 20(color) 66
+ Branch 62
+ 62: Label
+ 69: 38(float) FConvert 68
+ 70: 38(float) FDiv 67 69
+ 71: 6(float) FConvert 70
+ 72: 7(fvec4) Load 20(color)
+ 73: 7(fvec4) CompositeConstruct 71 71 71 71
+ 74: 7(fvec4) FAdd 72 73
+ Store 20(color) 74
+ Return
+ FunctionEnd
+17(builtin_spec_constant(): 8(int) Function None 16
+ 18: Label
+ 76(result): 75(ptr) Variable Function
+ Store 76(result) 77
+ 78: 8(int) Load 76(result)
+ ReturnValue 78
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.specConstantComposite.vert.out b/chromium/third_party/glslang/src/Test/baseResults/spv.specConstantComposite.vert.out
new file mode 100644
index 00000000000..c4585e40da1
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.specConstantComposite.vert.out
@@ -0,0 +1,89 @@
+spv.specConstantComposite.vert
+Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 43
+
+ Capability Shader
+ Capability Float64
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Vertex 4 "main" 27 42
+ Source GLSL 450
+ Name 4 "main"
+ Name 6 "refer_primary_spec_const("
+ Name 8 "refer_composite_spec_const("
+ Name 10 "refer_copmosite_dot_dereference("
+ Name 12 "refer_composite_bracket_dereference("
+ Name 16 "refer_spec_const_array_length("
+ Name 18 "declare_spec_const_in_func("
+ Name 27 "color"
+ Name 33 "len"
+ Name 42 "global_vec4_array_with_spec_length"
+ Decorate 21 SpecId 203
+ Decorate 28 SpecId 200
+ Decorate 37 SpecId 201
+ Decorate 39 SpecId 202
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 14: TypeInt 32 1
+ 15: TypeFunction 14(int)
+ 20: TypeBool
+ 21: 20(bool) SpecConstantTrue
+ 24: TypeFloat 32
+ 25: TypeVector 24(float) 4
+ 26: TypePointer Output 25(fvec4)
+ 27(color): 26(ptr) Variable Output
+ 28: 14(int) SpecConstant 3
+ 32: TypePointer Function 14(int)
+ 37: 24(float) SpecConstant 1078523331
+ 38: TypeFloat 64
+ 39: 38(float) SpecConstant 1413754136 1074340347
+ 40: TypeArray 25(fvec4) 28
+ 41: TypePointer Input 40
+42(global_vec4_array_with_spec_length): 41(ptr) Variable Input
+ 4(main): 2 Function None 3
+ 5: Label
+ Return
+ FunctionEnd
+6(refer_primary_spec_const(): 2 Function None 3
+ 7: Label
+ SelectionMerge 23 None
+ BranchConditional 21 22 23
+ 22: Label
+ 29: 24(float) ConvertSToF 28
+ 30: 25(fvec4) Load 27(color)
+ 31: 25(fvec4) VectorTimesScalar 30 29
+ Store 27(color) 31
+ Branch 23
+ 23: Label
+ Return
+ FunctionEnd
+8(refer_composite_spec_const(): 2 Function None 3
+ 9: Label
+ Return
+ FunctionEnd
+10(refer_copmosite_dot_dereference(): 2 Function None 3
+ 11: Label
+ Return
+ FunctionEnd
+12(refer_composite_bracket_dereference(): 2 Function None 3
+ 13: Label
+ Return
+ FunctionEnd
+16(refer_spec_const_array_length(): 14(int) Function None 15
+ 17: Label
+ 33(len): 32(ptr) Variable Function
+ Store 33(len) 28
+ 34: 14(int) Load 33(len)
+ ReturnValue 34
+ FunctionEnd
+18(declare_spec_const_in_func(): 2 Function None 3
+ 19: Label
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.specConstantOperations.vert.out b/chromium/third_party/glslang/src/Test/baseResults/spv.specConstantOperations.vert.out
new file mode 100644
index 00000000000..ea4c69a2d99
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.specConstantOperations.vert.out
@@ -0,0 +1,164 @@
+spv.specConstantOperations.vert
+Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 131
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Vertex 4 "main"
+ Source GLSL 450
+ Name 4 "main"
+ Name 8 "non_const_array_size_from_spec_const("
+ Name 11 "i"
+ Name 27 "array"
+ Decorate 19 SpecId 201
+ Decorate 40 SpecId 200
+ Decorate 42 SpecId 202
+ Decorate 43 SpecId 203
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypeFunction 6(int)
+ 10: TypePointer Function 6(int)
+ 12: 6(int) Constant 0
+ 19: 6(int) SpecConstant 10
+ 20: 6(int) Constant 2
+ 21: 6(int) SpecConstantOp 128 19 20
+ 22: TypeBool
+ 24: 6(int) SpecConstantOp 128 19 20
+ 25: TypeArray 6(int) 24
+ 26: TypePointer Function 25
+ 29: 6(int) Constant 1023
+ 32: 6(int) Constant 1
+ 34: 6(int) SpecConstantOp 128 19 32
+ 39: TypeFloat 32
+ 40: 39(float) SpecConstant 1078530010
+ 41: TypeInt 32 0
+ 42: 41(int) SpecConstant 100
+ 43: 6(int) SpecConstant 4294967286
+ 44: 41(int) Constant 0
+ 45: 22(bool) SpecConstantOp 171 19 44
+ 46: 22(bool) SpecConstantOp 171 42 44
+ 47: 6(int) SpecConstantOp 169 45 32 12
+ 48: 41(int) Constant 1
+ 49: 41(int) SpecConstantOp 169 45 48 44
+ 50: 41(int) SpecConstantOp 128 43 44
+ 51: 6(int) SpecConstantOp 128 42 44
+ 52: 6(int) SpecConstantOp 126 19
+ 53: 6(int) SpecConstantOp 200 19
+ 54: 6(int) SpecConstantOp 128 19 20
+ 55: 6(int) SpecConstantOp 128 19 20
+ 56: 6(int) Constant 3
+ 57: 6(int) SpecConstantOp 130 55 56
+ 58: 6(int) Constant 4
+ 59: 6(int) SpecConstantOp 130 54 58
+ 60: 6(int) SpecConstantOp 132 43 20
+ 61: 41(int) Constant 2
+ 62: 41(int) SpecConstantOp 132 42 61
+ 63: 6(int) Constant 5
+ 64: 6(int) SpecConstantOp 135 60 63
+ 65: 41(int) Constant 5
+ 66: 41(int) SpecConstantOp 134 62 65
+ 67: 6(int) SpecConstantOp 139 43 58
+ 68: 41(int) Constant 4
+ 69: 41(int) SpecConstantOp 137 42 68
+ 70: 6(int) SpecConstantOp 132 43 56
+ 71: 6(int) SpecConstantOp 135 70 63
+ 72: 6(int) Constant 10
+ 73: 6(int) SpecConstantOp 195 43 72
+ 74: 6(int) Constant 20
+ 75: 41(int) SpecConstantOp 194 42 74
+ 76: 6(int) SpecConstantOp 196 43 32
+ 77: 41(int) SpecConstantOp 196 42 20
+ 78: 6(int) Constant 256
+ 79: 6(int) SpecConstantOp 197 43 78
+ 80: 41(int) Constant 512
+ 81: 41(int) SpecConstantOp 198 42 80
+ 82: 22(bool) SpecConstantOp 177 19 43
+ 83: 22(bool) SpecConstantOp 170 42 42
+ 84: 22(bool) SpecConstantOp 173 19 43
+ 85: 6(int) Constant 30
+ 86: TypeVector 6(int) 4
+ 87: 86(ivec4) SpecConstantComposite 74 85 19 19
+ 88: 41(int) Constant 4294967295
+ 89: 41(int) Constant 4294967294
+ 90: TypeVector 41(int) 4
+ 91: 90(ivec4) SpecConstantComposite 42 42 88 89
+ 92: TypeVector 22(bool) 4
+ 93: 90(ivec4) ConstantComposite 44 44 44 44
+ 94: 92(bvec4) SpecConstantOp 171 87 93
+ 95: 92(bvec4) SpecConstantOp 171 91 93
+ 96: 86(ivec4) ConstantComposite 12 12 12 12
+ 97: 86(ivec4) ConstantComposite 32 32 32 32
+ 98: 86(ivec4) SpecConstantOp 169 94 97 96
+ 99: 90(ivec4) ConstantComposite 48 48 48 48
+ 100: 90(ivec4) SpecConstantOp 169 94 99 93
+ 101: 90(ivec4) SpecConstantOp 128 87 93
+ 102: 86(ivec4) SpecConstantOp 128 91 93
+ 103: 86(ivec4) SpecConstantOp 200 87
+ 104: 86(ivec4) SpecConstantOp 126 87
+ 105: 86(ivec4) ConstantComposite 20 20 20 20
+ 106: 86(ivec4) SpecConstantOp 128 87 105
+ 107: 86(ivec4) SpecConstantOp 128 87 105
+ 108: 86(ivec4) ConstantComposite 56 56 56 56
+ 109: 86(ivec4) SpecConstantOp 130 107 108
+ 110: 86(ivec4) ConstantComposite 58 58 58 58
+ 111: 86(ivec4) SpecConstantOp 130 109 110
+ 112: 86(ivec4) SpecConstantOp 132 87 105
+ 113: 86(ivec4) ConstantComposite 63 63 63 63
+ 114: 86(ivec4) SpecConstantOp 135 112 113
+ 115: 86(ivec4) SpecConstantOp 139 87 110
+ 116: 86(ivec4) ConstantComposite 72 72 72 72
+ 117: 86(ivec4) SpecConstantOp 195 87 116
+ 118: 86(ivec4) SpecConstantOp 196 87 105
+ 119: 6(int) Constant 1024
+ 120: 86(ivec4) ConstantComposite 119 119 119 119
+ 121: 86(ivec4) SpecConstantOp 197 87 120
+ 122: 41(int) Constant 2048
+ 123: 90(ivec4) ConstantComposite 122 122 122 122
+ 124: 90(ivec4) SpecConstantOp 198 91 123
+ 125: 6(int) SpecConstantOp 81 87 0
+ 126: TypeVector 6(int) 2
+ 127: 126(ivec2) SpecConstantOp 79 87 87 1(GLSL.std.450) 0
+ 128: TypeVector 6(int) 3
+ 129: 128(ivec3) SpecConstantOp 79 87 87 2 1(GLSL.std.450) 0
+ 130: 86(ivec4) SpecConstantOp 79 87 87 1(GLSL.std.450) 2 0 3
+ 4(main): 2 Function None 3
+ 5: Label
+ Return
+ FunctionEnd
+8(non_const_array_size_from_spec_const(): 6(int) Function None 7
+ 9: Label
+ 11(i): 10(ptr) Variable Function
+ 27(array): 26(ptr) Variable Function
+ Store 11(i) 12
+ Branch 13
+ 13: Label
+ LoopMerge 15 16 None
+ Branch 17
+ 17: Label
+ 18: 6(int) Load 11(i)
+ 23: 22(bool) SLessThan 18 21
+ BranchConditional 23 14 15
+ 14: Label
+ 28: 6(int) Load 11(i)
+ 30: 10(ptr) AccessChain 27(array) 28
+ Store 30 29
+ Branch 16
+ 16: Label
+ 31: 6(int) Load 11(i)
+ 33: 6(int) IAdd 31 32
+ Store 11(i) 33
+ Branch 13
+ 15: Label
+ 35: 10(ptr) AccessChain 27(array) 34
+ 36: 6(int) Load 35
+ ReturnValue 36
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.structAssignment.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.structAssignment.frag.out
new file mode 100755
index 00000000000..7c28e103c6b
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.structAssignment.frag.out
@@ -0,0 +1,93 @@
+spv.structAssignment.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 50
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 31 44
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 140
+ Name 4 "main"
+ Name 8 "lunarStruct1"
+ MemberName 8(lunarStruct1) 0 "i"
+ MemberName 8(lunarStruct1) 1 "f"
+ Name 9 "lunarStruct2"
+ MemberName 9(lunarStruct2) 0 "i"
+ MemberName 9(lunarStruct2) 1 "f"
+ MemberName 9(lunarStruct2) 2 "s1_1"
+ Name 10 "lunarStruct3"
+ MemberName 10(lunarStruct3) 0 "s2_1"
+ MemberName 10(lunarStruct3) 1 "i"
+ MemberName 10(lunarStruct3) 2 "f"
+ MemberName 10(lunarStruct3) 3 "s1_1"
+ Name 12 "foo3"
+ Name 22 "locals2"
+ Name 27 "foo2"
+ Name 31 "gl_FragColor"
+ Name 40 "samp2D"
+ Name 44 "coord"
+ Name 49 "foo"
+ Decorate 40(samp2D) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypeFloat 32
+ 8(lunarStruct1): TypeStruct 6(int) 7(float)
+ 9(lunarStruct2): TypeStruct 6(int) 7(float) 8(lunarStruct1)
+10(lunarStruct3): TypeStruct 9(lunarStruct2) 6(int) 7(float) 8(lunarStruct1)
+ 11: TypePointer Private 10(lunarStruct3)
+ 12(foo3): 11(ptr) Variable Private
+ 13: 6(int) Constant 0
+ 14: TypePointer Private 6(int)
+ 17: TypeBool
+ 21: TypePointer Function 9(lunarStruct2)
+ 23: TypePointer Private 9(lunarStruct2)
+ 27(foo2): 23(ptr) Variable Private
+ 29: TypeVector 7(float) 4
+ 30: TypePointer Output 29(fvec4)
+31(gl_FragColor): 30(ptr) Variable Output
+ 32: 6(int) Constant 2
+ 33: 6(int) Constant 1
+ 34: TypePointer Function 7(float)
+ 37: TypeImage 7(float) 2D sampled format:Unknown
+ 38: TypeSampledImage 37
+ 39: TypePointer UniformConstant 38
+ 40(samp2D): 39(ptr) Variable UniformConstant
+ 42: TypeVector 7(float) 2
+ 43: TypePointer Input 42(fvec2)
+ 44(coord): 43(ptr) Variable Input
+ 48: TypePointer Private 8(lunarStruct1)
+ 49(foo): 48(ptr) Variable Private
+ 4(main): 2 Function None 3
+ 5: Label
+ 22(locals2): 21(ptr) Variable Function
+ 15: 14(ptr) AccessChain 12(foo3) 13 13
+ 16: 6(int) Load 15
+ 18: 17(bool) SGreaterThan 16 13
+ SelectionMerge 20 None
+ BranchConditional 18 19 26
+ 19: Label
+ 24: 23(ptr) AccessChain 12(foo3) 13
+ 25:9(lunarStruct2) Load 24
+ Store 22(locals2) 25
+ Branch 20
+ 26: Label
+ 28:9(lunarStruct2) Load 27(foo2)
+ Store 22(locals2) 28
+ Branch 20
+ 20: Label
+ 35: 34(ptr) AccessChain 22(locals2) 32 33
+ 36: 7(float) Load 35
+ 41: 38 Load 40(samp2D)
+ 45: 42(fvec2) Load 44(coord)
+ 46: 29(fvec4) ImageSampleImplicitLod 41 45
+ 47: 29(fvec4) VectorTimesScalar 46 36
+ Store 31(gl_FragColor) 47
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.structDeref.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.structDeref.frag.out
new file mode 100755
index 00000000000..78ebdc635f1
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.structDeref.frag.out
@@ -0,0 +1,191 @@
+spv.structDeref.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 123
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 61 99
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 140
+ Name 4 "main"
+ Name 8 "s0"
+ MemberName 8(s0) 0 "i"
+ Name 9 "s1"
+ MemberName 9(s1) 0 "i"
+ MemberName 9(s1) 1 "f"
+ MemberName 9(s1) 2 "s0_1"
+ Name 10 "s2"
+ MemberName 10(s2) 0 "i"
+ MemberName 10(s2) 1 "f"
+ MemberName 10(s2) 2 "s1_1"
+ Name 14 "s3"
+ MemberName 14(s3) 0 "s2_1"
+ MemberName 14(s3) 1 "i"
+ MemberName 14(s3) 2 "f"
+ MemberName 14(s3) 3 "s1_1"
+ Name 16 "foo3"
+ Name 27 "locals2"
+ Name 40 "fArray"
+ Name 46 "locals1Array"
+ Name 49 "foo1"
+ Name 53 "locals0"
+ Name 54 "s00"
+ MemberName 54(s00) 0 "s0_0"
+ Name 56 "locals00"
+ Name 61 "coord"
+ Name 71 "foo0"
+ Name 86 "foo00"
+ Name 99 "gl_FragColor"
+ Name 116 "samp2D"
+ Name 122 "foo2"
+ Decorate 116(samp2D) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypeFloat 32
+ 8(s0): TypeStruct 6(int)
+ 9(s1): TypeStruct 6(int) 7(float) 8(s0)
+ 10(s2): TypeStruct 6(int) 7(float) 9(s1)
+ 11: TypeInt 32 0
+ 12: 11(int) Constant 12
+ 13: TypeArray 10(s2) 12
+ 14(s3): TypeStruct 13 6(int) 7(float) 9(s1)
+ 15: TypePointer Private 14(s3)
+ 16(foo3): 15(ptr) Variable Private
+ 17: 6(int) Constant 0
+ 18: 6(int) Constant 9
+ 19: TypePointer Private 6(int)
+ 22: TypeBool
+ 26: TypePointer Function 10(s2)
+ 28: 6(int) Constant 1
+ 29: 7(float) Constant 1065353216
+ 30: TypePointer Function 7(float)
+ 32: 6(int) Constant 2
+ 33: 8(s0) ConstantComposite 17
+ 34: 9(s1) ConstantComposite 17 29 33
+ 35: TypePointer Function 9(s1)
+ 37: 11(int) Constant 6
+ 38: TypeArray 7(float) 37
+ 39: TypePointer Function 38
+ 41: 7(float) Constant 0
+ 42: 38 ConstantComposite 41 41 41 41 41 41
+ 43: 11(int) Constant 10
+ 44: TypeArray 9(s1) 43
+ 45: TypePointer Function 44
+ 47: 6(int) Constant 6
+ 48: TypePointer Private 9(s1)
+ 49(foo1): 48(ptr) Variable Private
+ 52: TypePointer Function 8(s0)
+ 54(s00): TypeStruct 8(s0)
+ 55: TypePointer Function 54(s00)
+ 57: 54(s00) ConstantComposite 33
+ 59: TypeVector 7(float) 2
+ 60: TypePointer Input 59(fvec2)
+ 61(coord): 60(ptr) Variable Input
+ 62: 11(int) Constant 0
+ 63: TypePointer Input 7(float)
+ 67: 11(int) Constant 1
+ 70: TypePointer Private 8(s0)
+ 71(foo0): 70(ptr) Variable Private
+ 75: 7(float) Constant 1073741824
+ 76: 7(float) Constant 1077936128
+ 77: 7(float) Constant 1082130432
+ 78: 7(float) Constant 1084227584
+ 79: 38 ConstantComposite 41 29 75 76 77 78
+ 85: TypePointer Private 54(s00)
+ 86(foo00): 85(ptr) Variable Private
+ 88: TypePointer Function 6(int)
+ 91: 6(int) Constant 5
+ 97: TypeVector 7(float) 4
+ 98: TypePointer Output 97(fvec4)
+99(gl_FragColor): 98(ptr) Variable Output
+ 106: 6(int) Constant 3
+ 113: TypeImage 7(float) 2D sampled format:Unknown
+ 114: TypeSampledImage 113
+ 115: TypePointer UniformConstant 114
+ 116(samp2D): 115(ptr) Variable UniformConstant
+ 121: TypePointer Private 10(s2)
+ 122(foo2): 121(ptr) Variable Private
+ 4(main): 2 Function None 3
+ 5: Label
+ 27(locals2): 26(ptr) Variable Function
+ 40(fArray): 39(ptr) Variable Function
+46(locals1Array): 45(ptr) Variable Function
+ 53(locals0): 52(ptr) Variable Function
+ 56(locals00): 55(ptr) Variable Function
+ 20: 19(ptr) AccessChain 16(foo3) 17 18 17
+ 21: 6(int) Load 20
+ 23: 22(bool) SGreaterThan 21 17
+ SelectionMerge 25 None
+ BranchConditional 23 24 58
+ 24: Label
+ 31: 30(ptr) AccessChain 27(locals2) 28
+ Store 31 29
+ 36: 35(ptr) AccessChain 27(locals2) 32
+ Store 36 34
+ Store 40(fArray) 42
+ 50: 9(s1) Load 49(foo1)
+ 51: 35(ptr) AccessChain 46(locals1Array) 47
+ Store 51 50
+ Store 53(locals0) 33
+ Store 56(locals00) 57
+ Branch 25
+ 58: Label
+ 64: 63(ptr) AccessChain 61(coord) 62
+ 65: 7(float) Load 64
+ 66: 30(ptr) AccessChain 27(locals2) 28
+ Store 66 65
+ 68: 63(ptr) AccessChain 61(coord) 67
+ 69: 7(float) Load 68
+ 72: 8(s0) Load 71(foo0)
+ 73: 9(s1) CompositeConstruct 28 69 72
+ 74: 35(ptr) AccessChain 27(locals2) 32
+ Store 74 73
+ Store 40(fArray) 79
+ 80: 35(ptr) AccessChain 27(locals2) 32
+ 81: 9(s1) Load 80
+ 82: 35(ptr) AccessChain 46(locals1Array) 47
+ Store 82 81
+ 83: 70(ptr) AccessChain 49(foo1) 32
+ 84: 8(s0) Load 83
+ Store 53(locals0) 84
+ 87: 54(s00) Load 86(foo00)
+ Store 56(locals00) 87
+ Branch 25
+ 25: Label
+ 89: 88(ptr) AccessChain 53(locals0) 17
+ 90: 6(int) Load 89
+ 92: 22(bool) SGreaterThan 90 91
+ SelectionMerge 94 None
+ BranchConditional 92 93 94
+ 93: Label
+ 95: 52(ptr) AccessChain 56(locals00) 17
+ 96: 8(s0) Load 95
+ Store 53(locals0) 96
+ Branch 94
+ 94: Label
+ 100: 88(ptr) AccessChain 53(locals0) 17
+ 101: 6(int) Load 100
+ 102: 7(float) ConvertSToF 101
+ 103: 30(ptr) AccessChain 46(locals1Array) 47 28
+ 104: 7(float) Load 103
+ 105: 7(float) FAdd 102 104
+ 107: 30(ptr) AccessChain 40(fArray) 106
+ 108: 7(float) Load 107
+ 109: 7(float) FAdd 105 108
+ 110: 30(ptr) AccessChain 27(locals2) 32 28
+ 111: 7(float) Load 110
+ 112: 7(float) FAdd 109 111
+ 117: 114 Load 116(samp2D)
+ 118: 59(fvec2) Load 61(coord)
+ 119: 97(fvec4) ImageSampleImplicitLod 117 118
+ 120: 97(fvec4) VectorTimesScalar 119 112
+ Store 99(gl_FragColor) 120
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.structure.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.structure.frag.out
new file mode 100755
index 00000000000..8d91ed043af
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.structure.frag.out
@@ -0,0 +1,99 @@
+spv.structure.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 60
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 45 54
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 140
+ Name 4 "main"
+ Name 8 "scale"
+ Name 18 "lunarStruct1"
+ MemberName 18(lunarStruct1) 0 "i"
+ MemberName 18(lunarStruct1) 1 "f"
+ MemberName 18(lunarStruct1) 2 "color"
+ Name 21 "lunarStruct2"
+ MemberName 21(lunarStruct2) 0 "i"
+ MemberName 21(lunarStruct2) 1 "f"
+ MemberName 21(lunarStruct2) 2 "s1_1"
+ Name 24 "foo2"
+ Name 45 "gl_FragColor"
+ Name 50 "samp2D"
+ Name 54 "coord"
+ Name 59 "foo"
+ Decorate 50(samp2D) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypePointer Function 6(float)
+ 9: 6(float) Constant 0
+ 10: TypeInt 32 1
+ 11: TypeInt 32 0
+ 12: 11(int) Constant 5
+ 13: TypeArray 10(int) 12
+ 14: 11(int) Constant 4
+ 15: TypeArray 6(float) 14
+ 16: TypeVector 6(float) 4
+ 17: TypeArray 16(fvec4) 12
+18(lunarStruct1): TypeStruct 10(int) 15 17
+ 19: 11(int) Constant 7
+ 20: TypeArray 18(lunarStruct1) 19
+21(lunarStruct2): TypeStruct 13 6(float) 20
+ 22: TypeArray 21(lunarStruct2) 12
+ 23: TypePointer Private 22
+ 24(foo2): 23(ptr) Variable Private
+ 25: 10(int) Constant 3
+ 26: 10(int) Constant 0
+ 27: 10(int) Constant 4
+ 28: TypePointer Private 10(int)
+ 31: TypeBool
+ 35: 10(int) Constant 2
+ 36: 11(int) Constant 0
+ 37: TypePointer Private 6(float)
+ 41: 10(int) Constant 1
+ 44: TypePointer Output 16(fvec4)
+45(gl_FragColor): 44(ptr) Variable Output
+ 47: TypeImage 6(float) 2D sampled format:Unknown
+ 48: TypeSampledImage 47
+ 49: TypePointer UniformConstant 48
+ 50(samp2D): 49(ptr) Variable UniformConstant
+ 52: TypeVector 6(float) 2
+ 53: TypePointer Input 52(fvec2)
+ 54(coord): 53(ptr) Variable Input
+ 58: TypePointer Private 18(lunarStruct1)
+ 59(foo): 58(ptr) Variable Private
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(scale): 7(ptr) Variable Function
+ Store 8(scale) 9
+ 29: 28(ptr) AccessChain 24(foo2) 25 26 27
+ 30: 10(int) Load 29
+ 32: 31(bool) SGreaterThan 30 26
+ SelectionMerge 34 None
+ BranchConditional 32 33 40
+ 33: Label
+ 38: 37(ptr) AccessChain 24(foo2) 25 35 35 35 25 36
+ 39: 6(float) Load 38
+ Store 8(scale) 39
+ Branch 34
+ 40: Label
+ 42: 37(ptr) AccessChain 24(foo2) 25 35 35 41 25
+ 43: 6(float) Load 42
+ Store 8(scale) 43
+ Branch 34
+ 34: Label
+ 46: 6(float) Load 8(scale)
+ 51: 48 Load 50(samp2D)
+ 55: 52(fvec2) Load 54(coord)
+ 56: 16(fvec4) ImageSampleImplicitLod 51 55
+ 57: 16(fvec4) VectorTimesScalar 56 46
+ Store 45(gl_FragColor) 57
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.subpass.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.subpass.frag.out
new file mode 100644
index 00000000000..93d680c71ab
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.subpass.frag.out
@@ -0,0 +1,118 @@
+spv.subpass.frag
+Warning, version 400 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 67
+
+ Capability Shader
+ Capability InputAttachment
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 15 27 53
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 400
+ Name 4 "main"
+ Name 11 "foo(iIPM1;"
+ Name 10 "sb"
+ Name 15 "icolor"
+ Name 27 "color"
+ Name 30 "sub"
+ Name 35 "subMS"
+ Name 42 "isub"
+ Name 45 "isubMS"
+ Name 53 "ucolor"
+ Name 56 "usub"
+ Name 61 "usubMS"
+ Decorate 30(sub) DescriptorSet 0
+ Decorate 30(sub) InputAttachmentIndex 1
+ Decorate 35(subMS) DescriptorSet 0
+ Decorate 35(subMS) InputAttachmentIndex 2
+ Decorate 42(isub) DescriptorSet 0
+ Decorate 42(isub) InputAttachmentIndex 3
+ Decorate 45(isubMS) DescriptorSet 0
+ Decorate 45(isubMS) InputAttachmentIndex 4
+ Decorate 56(usub) DescriptorSet 0
+ Decorate 56(usub) InputAttachmentIndex 5
+ Decorate 61(usubMS) DescriptorSet 0
+ Decorate 61(usubMS) InputAttachmentIndex 6
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypeImage 6(int) SubpassData multi-sampled nonsampled format:Unknown
+ 8: TypePointer UniformConstant 7
+ 9: TypeFunction 2 8(ptr)
+ 13: TypeVector 6(int) 4
+ 14: TypePointer Output 13(ivec4)
+ 15(icolor): 14(ptr) Variable Output
+ 17: 6(int) Constant 3
+ 18: 6(int) Constant 0
+ 19: TypeVector 6(int) 2
+ 20: 19(ivec2) ConstantComposite 18 18
+ 24: TypeFloat 32
+ 25: TypeVector 24(float) 4
+ 26: TypePointer Output 25(fvec4)
+ 27(color): 26(ptr) Variable Output
+ 28: TypeImage 24(float) SubpassData nonsampled format:Unknown
+ 29: TypePointer UniformConstant 28
+ 30(sub): 29(ptr) Variable UniformConstant
+ 33: TypeImage 24(float) SubpassData multi-sampled nonsampled format:Unknown
+ 34: TypePointer UniformConstant 33
+ 35(subMS): 34(ptr) Variable UniformConstant
+ 40: TypeImage 6(int) SubpassData nonsampled format:Unknown
+ 41: TypePointer UniformConstant 40
+ 42(isub): 41(ptr) Variable UniformConstant
+ 45(isubMS): 8(ptr) Variable UniformConstant
+ 50: TypeInt 32 0
+ 51: TypeVector 50(int) 4
+ 52: TypePointer Output 51(ivec4)
+ 53(ucolor): 52(ptr) Variable Output
+ 54: TypeImage 50(int) SubpassData nonsampled format:Unknown
+ 55: TypePointer UniformConstant 54
+ 56(usub): 55(ptr) Variable UniformConstant
+ 59: TypeImage 50(int) SubpassData multi-sampled nonsampled format:Unknown
+ 60: TypePointer UniformConstant 59
+ 61(usubMS): 60(ptr) Variable UniformConstant
+ 4(main): 2 Function None 3
+ 5: Label
+ 31: 28 Load 30(sub)
+ 32: 25(fvec4) ImageRead 31 20
+ Store 27(color) 32
+ 36: 33 Load 35(subMS)
+ 37: 25(fvec4) ImageRead 36 20 Sample 17
+ 38: 25(fvec4) Load 27(color)
+ 39: 25(fvec4) FAdd 38 37
+ Store 27(color) 39
+ 43: 40 Load 42(isub)
+ 44: 13(ivec4) ImageRead 43 20
+ Store 15(icolor) 44
+ 46: 7 Load 45(isubMS)
+ 47: 13(ivec4) ImageRead 46 20 Sample 17
+ 48: 13(ivec4) Load 15(icolor)
+ 49: 13(ivec4) IAdd 48 47
+ Store 15(icolor) 49
+ 57: 54 Load 56(usub)
+ 58: 51(ivec4) ImageRead 57 20
+ Store 53(ucolor) 58
+ 62: 59 Load 61(usubMS)
+ 63: 51(ivec4) ImageRead 62 20 Sample 17
+ 64: 51(ivec4) Load 53(ucolor)
+ 65: 51(ivec4) IAdd 64 63
+ Store 53(ucolor) 65
+ 66: 2 FunctionCall 11(foo(iIPM1;) 45(isubMS)
+ Return
+ FunctionEnd
+ 11(foo(iIPM1;): 2 Function None 9
+ 10(sb): 8(ptr) FunctionParameter
+ 12: Label
+ 16: 7 Load 10(sb)
+ 21: 13(ivec4) ImageRead 16 20 Sample 17
+ 22: 13(ivec4) Load 15(icolor)
+ 23: 13(ivec4) IAdd 22 21
+ Store 15(icolor) 23
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.switch.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.switch.frag.out
new file mode 100755
index 00000000000..87ea4c87ea7
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.switch.frag.out
@@ -0,0 +1,532 @@
+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 10000
+// Generated by (magic number): 80001
+// Id's are bound by 269
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 62 75 129 227 233
+ ExecutionMode 4 OriginUpperLeft
+ Source ESSL 310
+ Name 4 "main"
+ Name 15 "foo1(vf4;vf4;i1;"
+ Name 12 "v1"
+ Name 13 "v2"
+ Name 14 "i1"
+ Name 20 "foo2(vf4;vf4;i1;"
+ Name 17 "v1"
+ Name 18 "v2"
+ Name 19 "i1"
+ Name 60 "local"
+ Name 62 "c"
+ Name 73 "f"
+ Name 75 "x"
+ Name 129 "d"
+ Name 155 "i"
+ Name 175 "j"
+ Name 227 "color"
+ Name 233 "v"
+ Name 234 "param"
+ Name 236 "param"
+ Name 238 "param"
+ Name 246 "param"
+ Name 248 "param"
+ Name 250 "param"
+ Decorate 15(foo1(vf4;vf4;i1;) RelaxedPrecision
+ Decorate 12(v1) RelaxedPrecision
+ Decorate 13(v2) RelaxedPrecision
+ Decorate 14(i1) RelaxedPrecision
+ Decorate 20(foo2(vf4;vf4;i1;) RelaxedPrecision
+ Decorate 17(v1) RelaxedPrecision
+ Decorate 18(v2) RelaxedPrecision
+ Decorate 19(i1) RelaxedPrecision
+ Decorate 22 RelaxedPrecision
+ Decorate 27 RelaxedPrecision
+ Decorate 29 RelaxedPrecision
+ Decorate 31 RelaxedPrecision
+ Decorate 32 RelaxedPrecision
+ Decorate 33 RelaxedPrecision
+ Decorate 40 RelaxedPrecision
+ Decorate 46 RelaxedPrecision
+ Decorate 51 RelaxedPrecision
+ Decorate 53 RelaxedPrecision
+ Decorate 54 RelaxedPrecision
+ Decorate 55 RelaxedPrecision
+ Decorate 60(local) RelaxedPrecision
+ Decorate 62(c) RelaxedPrecision
+ Decorate 62(c) Flat
+ Decorate 63 RelaxedPrecision
+ Decorate 64 RelaxedPrecision
+ Decorate 66 RelaxedPrecision
+ Decorate 67 RelaxedPrecision
+ Decorate 73(f) RelaxedPrecision
+ Decorate 75(x) RelaxedPrecision
+ Decorate 76 RelaxedPrecision
+ Decorate 77 RelaxedPrecision
+ Decorate 79 RelaxedPrecision
+ Decorate 80 RelaxedPrecision
+ Decorate 82 RelaxedPrecision
+ Decorate 83 RelaxedPrecision
+ Decorate 85 RelaxedPrecision
+ Decorate 90 RelaxedPrecision
+ Decorate 91 RelaxedPrecision
+ Decorate 92 RelaxedPrecision
+ Decorate 93 RelaxedPrecision
+ Decorate 94 RelaxedPrecision
+ Decorate 95 RelaxedPrecision
+ Decorate 96 RelaxedPrecision
+ Decorate 97 RelaxedPrecision
+ Decorate 99 RelaxedPrecision
+ Decorate 100 RelaxedPrecision
+ Decorate 101 RelaxedPrecision
+ Decorate 102 RelaxedPrecision
+ Decorate 104 RelaxedPrecision
+ Decorate 108 RelaxedPrecision
+ Decorate 109 RelaxedPrecision
+ Decorate 110 RelaxedPrecision
+ Decorate 111 RelaxedPrecision
+ Decorate 113 RelaxedPrecision
+ Decorate 114 RelaxedPrecision
+ Decorate 115 RelaxedPrecision
+ Decorate 116 RelaxedPrecision
+ Decorate 119 RelaxedPrecision
+ Decorate 124 RelaxedPrecision
+ Decorate 125 RelaxedPrecision
+ Decorate 126 RelaxedPrecision
+ Decorate 127 RelaxedPrecision
+ Decorate 129(d) RelaxedPrecision
+ Decorate 129(d) Flat
+ Decorate 130 RelaxedPrecision
+ Decorate 134 RelaxedPrecision
+ Decorate 135 RelaxedPrecision
+ Decorate 136 RelaxedPrecision
+ Decorate 137 RelaxedPrecision
+ Decorate 138 RelaxedPrecision
+ Decorate 139 RelaxedPrecision
+ Decorate 140 RelaxedPrecision
+ Decorate 142 RelaxedPrecision
+ Decorate 143 RelaxedPrecision
+ Decorate 144 RelaxedPrecision
+ Decorate 145 RelaxedPrecision
+ Decorate 146 RelaxedPrecision
+ Decorate 150 RelaxedPrecision
+ Decorate 151 RelaxedPrecision
+ Decorate 152 RelaxedPrecision
+ Decorate 153 RelaxedPrecision
+ Decorate 155(i) RelaxedPrecision
+ Decorate 162 RelaxedPrecision
+ Decorate 166 RelaxedPrecision
+ Decorate 171 RelaxedPrecision
+ Decorate 172 RelaxedPrecision
+ Decorate 173 RelaxedPrecision
+ Decorate 174 RelaxedPrecision
+ Decorate 175(j) RelaxedPrecision
+ Decorate 182 RelaxedPrecision
+ Decorate 185 RelaxedPrecision
+ Decorate 186 RelaxedPrecision
+ Decorate 187 RelaxedPrecision
+ Decorate 193 RelaxedPrecision
+ Decorate 194 RelaxedPrecision
+ Decorate 196 RelaxedPrecision
+ Decorate 197 RelaxedPrecision
+ Decorate 198 RelaxedPrecision
+ Decorate 199 RelaxedPrecision
+ Decorate 202 RelaxedPrecision
+ Decorate 203 RelaxedPrecision
+ Decorate 204 RelaxedPrecision
+ Decorate 205 RelaxedPrecision
+ Decorate 207 RelaxedPrecision
+ Decorate 213 RelaxedPrecision
+ Decorate 214 RelaxedPrecision
+ Decorate 215 RelaxedPrecision
+ Decorate 219 RelaxedPrecision
+ Decorate 220 RelaxedPrecision
+ Decorate 221 RelaxedPrecision
+ Decorate 222 RelaxedPrecision
+ Decorate 227(color) RelaxedPrecision
+ Decorate 228 RelaxedPrecision
+ Decorate 229 RelaxedPrecision
+ Decorate 230 RelaxedPrecision
+ Decorate 231 RelaxedPrecision
+ Decorate 233(v) RelaxedPrecision
+ Decorate 235 RelaxedPrecision
+ Decorate 237 RelaxedPrecision
+ Decorate 239 RelaxedPrecision
+ Decorate 240 RelaxedPrecision
+ Decorate 243 RelaxedPrecision
+ Decorate 244 RelaxedPrecision
+ Decorate 245 RelaxedPrecision
+ Decorate 247 RelaxedPrecision
+ Decorate 249 RelaxedPrecision
+ Decorate 251 RelaxedPrecision
+ Decorate 252 RelaxedPrecision
+ Decorate 254 RelaxedPrecision
+ Decorate 255 RelaxedPrecision
+ Decorate 256 RelaxedPrecision
+ Decorate 257 RelaxedPrecision
+ Decorate 264 RelaxedPrecision
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+ 9: TypeInt 32 1
+ 10: TypePointer Function 9(int)
+ 11: TypeFunction 7(fvec4) 8(ptr) 8(ptr) 10(ptr)
+ 36: 6(float) Constant 0
+ 37: 7(fvec4) ConstantComposite 36 36 36 36
+ 48: 6(float) Constant 1065353216
+ 49: 7(fvec4) ConstantComposite 48 48 48 48
+ 61: TypePointer Input 9(int)
+ 62(c): 61(ptr) Variable Input
+ 65: 9(int) Constant 1
+ 72: TypePointer Function 6(float)
+ 74: TypePointer Input 6(float)
+ 75(x): 74(ptr) Variable Input
+ 129(d): 61(ptr) Variable Input
+ 156: 9(int) Constant 0
+ 163: 9(int) Constant 10
+ 164: TypeBool
+ 176: 9(int) Constant 20
+ 183: 9(int) Constant 30
+ 188: 6(float) Constant 1120429670
+ 208: 6(float) Constant 1079739679
+ 226: TypePointer Output 6(float)
+ 227(color): 226(ptr) Variable Output
+ 232: TypePointer Input 7(fvec4)
+ 233(v): 232(ptr) Variable Input
+ 241: TypeInt 32 0
+ 242: 241(int) Constant 1
+ 253: 241(int) Constant 2
+ 4(main): 2 Function None 3
+ 5: Label
+ 60(local): 10(ptr) Variable Function
+ 73(f): 72(ptr) Variable Function
+ 155(i): 10(ptr) Variable Function
+ 175(j): 10(ptr) Variable Function
+ 234(param): 8(ptr) Variable Function
+ 236(param): 8(ptr) Variable Function
+ 238(param): 10(ptr) Variable Function
+ 246(param): 8(ptr) Variable Function
+ 248(param): 8(ptr) Variable Function
+ 250(param): 10(ptr) Variable Function
+ 63: 9(int) Load 62(c)
+ Store 60(local) 63
+ 64: 9(int) Load 60(local)
+ 66: 9(int) IAdd 64 65
+ Store 60(local) 66
+ 67: 9(int) Load 62(c)
+ SelectionMerge 71 None
+ Switch 67 70
+ case 1: 68
+ case 2: 69
+ 70: Label
+ 82: 6(float) Load 75(x)
+ 83: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 82
+ Store 73(f) 83
+ Branch 71
+ 68: Label
+ 76: 6(float) Load 75(x)
+ 77: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 76
+ Store 73(f) 77
+ Branch 71
+ 69: Label
+ 79: 6(float) Load 75(x)
+ 80: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 79
+ Store 73(f) 80
+ Branch 71
+ 71: Label
+ 85: 9(int) Load 62(c)
+ SelectionMerge 89 None
+ Switch 85 88
+ case 1: 86
+ case 2: 87
+ 88: Label
+ 99: 6(float) Load 75(x)
+ 100: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 99
+ 101: 6(float) Load 73(f)
+ 102: 6(float) FAdd 101 100
+ Store 73(f) 102
+ Branch 89
+ 86: Label
+ 90: 6(float) Load 75(x)
+ 91: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 90
+ 92: 6(float) Load 73(f)
+ 93: 6(float) FAdd 92 91
+ Store 73(f) 93
+ Branch 87
+ 87: Label
+ 94: 6(float) Load 75(x)
+ 95: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 94
+ 96: 6(float) Load 73(f)
+ 97: 6(float) FAdd 96 95
+ Store 73(f) 97
+ Branch 89
+ 89: Label
+ 104: 9(int) Load 62(c)
+ SelectionMerge 107 None
+ Switch 104 107
+ case 1: 105
+ case 2: 106
+ 105: Label
+ 108: 6(float) Load 75(x)
+ 109: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 108
+ 110: 6(float) Load 73(f)
+ 111: 6(float) FAdd 110 109
+ Store 73(f) 111
+ Branch 107
+ 106: Label
+ 113: 6(float) Load 75(x)
+ 114: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 113
+ 115: 6(float) Load 73(f)
+ 116: 6(float) FAdd 115 114
+ Store 73(f) 116
+ Branch 107
+ 107: Label
+ 119: 9(int) Load 62(c)
+ SelectionMerge 123 None
+ Switch 119 122
+ case 1: 120
+ case 2: 121
+ 122: Label
+ 150: 6(float) Load 75(x)
+ 151: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 150
+ 152: 6(float) Load 73(f)
+ 153: 6(float) FAdd 152 151
+ Store 73(f) 153
+ Branch 123
+ 120: Label
+ 124: 6(float) Load 75(x)
+ 125: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 124
+ 126: 6(float) Load 73(f)
+ 127: 6(float) FAdd 126 125
+ Store 73(f) 127
+ Branch 123
+ 121: Label
+ 130: 9(int) Load 129(d)
+ SelectionMerge 133 None
+ Switch 130 133
+ case 1: 131
+ case 2: 132
+ 131: Label
+ 134: 6(float) Load 75(x)
+ 135: 6(float) Load 75(x)
+ 136: 6(float) FMul 134 135
+ 137: 6(float) Load 75(x)
+ 138: 6(float) FMul 136 137
+ 139: 6(float) Load 73(f)
+ 140: 6(float) FAdd 139 138
+ Store 73(f) 140
+ Branch 133
+ 132: Label
+ 142: 6(float) Load 75(x)
+ 143: 6(float) Load 75(x)
+ 144: 6(float) FMul 142 143
+ 145: 6(float) Load 73(f)
+ 146: 6(float) FAdd 145 144
+ Store 73(f) 146
+ Branch 133
+ 133: Label
+ Branch 123
+ 123: Label
+ Store 155(i) 156
+ Branch 157
+ 157: Label
+ LoopMerge 159 160 None
+ Branch 161
+ 161: Label
+ 162: 9(int) Load 155(i)
+ 165: 164(bool) SLessThan 162 163
+ BranchConditional 165 158 159
+ 158: Label
+ 166: 9(int) Load 62(c)
+ SelectionMerge 170 None
+ Switch 166 169
+ case 1: 167
+ case 2: 168
+ 169: Label
+ 202: 6(float) Load 75(x)
+ 203: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 202
+ 204: 6(float) Load 73(f)
+ 205: 6(float) FAdd 204 203
+ Store 73(f) 205
+ Branch 170
+ 167: Label
+ 171: 6(float) Load 75(x)
+ 172: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 171
+ 173: 6(float) Load 73(f)
+ 174: 6(float) FAdd 173 172
+ Store 73(f) 174
+ Store 175(j) 176
+ Branch 177
+ 177: Label
+ LoopMerge 179 180 None
+ Branch 181
+ 181: Label
+ 182: 9(int) Load 175(j)
+ 184: 164(bool) SLessThan 182 183
+ BranchConditional 184 178 179
+ 178: Label
+ 185: 6(float) Load 73(f)
+ 186: 6(float) FAdd 185 48
+ Store 73(f) 186
+ 187: 6(float) Load 73(f)
+ 189: 164(bool) FOrdLessThan 187 188
+ SelectionMerge 191 None
+ BranchConditional 189 190 191
+ 190: Label
+ Branch 179
+ 191: Label
+ Branch 180
+ 180: Label
+ 193: 9(int) Load 175(j)
+ 194: 9(int) IAdd 193 65
+ Store 175(j) 194
+ Branch 177
+ 179: Label
+ Branch 170
+ 168: Label
+ 196: 6(float) Load 75(x)
+ 197: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 196
+ 198: 6(float) Load 73(f)
+ 199: 6(float) FAdd 198 197
+ Store 73(f) 199
+ Branch 170
+ 170: Label
+ 207: 6(float) Load 73(f)
+ 209: 164(bool) FOrdLessThan 207 208
+ SelectionMerge 211 None
+ BranchConditional 209 210 211
+ 210: Label
+ Branch 159
+ 211: Label
+ Branch 160
+ 160: Label
+ 213: 9(int) Load 155(i)
+ 214: 9(int) IAdd 213 65
+ Store 155(i) 214
+ Branch 157
+ 159: Label
+ 215: 9(int) Load 62(c)
+ SelectionMerge 218 None
+ Switch 215 218
+ case 1: 216
+ case 2: 217
+ 216: Label
+ 219: 6(float) Load 75(x)
+ 220: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 219
+ 221: 6(float) Load 73(f)
+ 222: 6(float) FAdd 221 220
+ Store 73(f) 222
+ Branch 218
+ 217: Label
+ Branch 218
+ 218: Label
+ 228: 6(float) Load 73(f)
+ 229: 9(int) Load 60(local)
+ 230: 6(float) ConvertSToF 229
+ 231: 6(float) FAdd 228 230
+ Store 227(color) 231
+ 235: 7(fvec4) Load 233(v)
+ Store 234(param) 235
+ 237: 7(fvec4) Load 233(v)
+ Store 236(param) 237
+ 239: 9(int) Load 62(c)
+ Store 238(param) 239
+ 240: 7(fvec4) FunctionCall 15(foo1(vf4;vf4;i1;) 234(param) 236(param) 238(param)
+ 243: 6(float) CompositeExtract 240 1
+ 244: 6(float) Load 227(color)
+ 245: 6(float) FAdd 244 243
+ Store 227(color) 245
+ 247: 7(fvec4) Load 233(v)
+ Store 246(param) 247
+ 249: 7(fvec4) Load 233(v)
+ Store 248(param) 249
+ 251: 9(int) Load 62(c)
+ Store 250(param) 251
+ 252: 7(fvec4) FunctionCall 20(foo2(vf4;vf4;i1;) 246(param) 248(param) 250(param)
+ 254: 6(float) CompositeExtract 252 2
+ 255: 6(float) Load 227(color)
+ 256: 6(float) FAdd 255 254
+ Store 227(color) 256
+ 257: 9(int) Load 62(c)
+ SelectionMerge 260 None
+ Switch 257 259
+ case 0: 258
+ 259: Label
+ Branch 260
+ 258: Label
+ Branch 260
+ 260: Label
+ 264: 9(int) Load 62(c)
+ SelectionMerge 266 None
+ Switch 264 265
+ 265: Label
+ Branch 266
+ 266: Label
+ Return
+ FunctionEnd
+15(foo1(vf4;vf4;i1;): 7(fvec4) Function None 11
+ 12(v1): 8(ptr) FunctionParameter
+ 13(v2): 8(ptr) FunctionParameter
+ 14(i1): 10(ptr) FunctionParameter
+ 16: Label
+ 22: 9(int) Load 14(i1)
+ SelectionMerge 26 None
+ Switch 22 26
+ case 0: 23
+ case 2: 24
+ case 1: 24
+ case 3: 25
+ 23: Label
+ 27: 7(fvec4) Load 12(v1)
+ ReturnValue 27
+ 24: Label
+ 29: 7(fvec4) Load 13(v2)
+ ReturnValue 29
+ 25: Label
+ 31: 7(fvec4) Load 12(v1)
+ 32: 7(fvec4) Load 13(v2)
+ 33: 7(fvec4) FMul 31 32
+ ReturnValue 33
+ 26: Label
+ ReturnValue 37
+ FunctionEnd
+20(foo2(vf4;vf4;i1;): 7(fvec4) Function None 11
+ 17(v1): 8(ptr) FunctionParameter
+ 18(v2): 8(ptr) FunctionParameter
+ 19(i1): 10(ptr) FunctionParameter
+ 21: Label
+ 40: 9(int) Load 19(i1)
+ SelectionMerge 45 None
+ Switch 40 45
+ case 0: 41
+ case 2: 42
+ case 1: 43
+ case 3: 44
+ 41: Label
+ 46: 7(fvec4) Load 17(v1)
+ ReturnValue 46
+ 42: Label
+ ReturnValue 49
+ 43: Label
+ 51: 7(fvec4) Load 18(v2)
+ ReturnValue 51
+ 44: Label
+ 53: 7(fvec4) Load 17(v1)
+ 54: 7(fvec4) Load 18(v2)
+ 55: 7(fvec4) FMul 53 54
+ ReturnValue 55
+ 45: Label
+ ReturnValue 37
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.swizzle.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.swizzle.frag.out
new file mode 100755
index 00000000000..471fed1128c
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.swizzle.frag.out
@@ -0,0 +1,170 @@
+spv.swizzle.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 108
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 14 30 69 107
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 140
+ Name 4 "main"
+ Name 8 "blendscale"
+ Name 12 "w"
+ Name 14 "u"
+ Name 16 "w_dep"
+ Name 18 "w_reorder"
+ Name 20 "w2"
+ Name 22 "w_flow"
+ Name 30 "t"
+ Name 49 "w_undef"
+ Name 56 "p"
+ Name 69 "gl_FragColor"
+ Name 81 "c"
+ Name 83 "rep"
+ Name 107 "blend"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypePointer Function 6(float)
+ 9: 6(float) Constant 1071971828
+ 10: TypeVector 6(float) 4
+ 11: TypePointer Function 10(fvec4)
+ 13: TypePointer Input 10(fvec4)
+ 14(u): 13(ptr) Variable Input
+ 25: TypeInt 32 0
+ 26: 25(int) Constant 2
+ 28: TypeVector 6(float) 2
+ 29: TypePointer Input 28(fvec2)
+ 30(t): 29(ptr) Variable Input
+ 35: 25(int) Constant 0
+ 40: 25(int) Constant 1
+ 54: TypeBool
+ 55: TypePointer Private 54(bool)
+ 56(p): 55(ptr) Variable Private
+ 60: TypePointer Input 6(float)
+ 68: TypePointer Output 10(fvec4)
+69(gl_FragColor): 68(ptr) Variable Output
+ 80: TypePointer Function 28(fvec2)
+ 84: 6(float) Constant 0
+ 85: 6(float) Constant 1065353216
+ 86: 10(fvec4) ConstantComposite 84 84 84 85
+ 92: 6(float) Constant 3212836864
+ 102: 6(float) Constant 1079613850
+ 107(blend): 60(ptr) Variable Input
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(blendscale): 7(ptr) Variable Function
+ 12(w): 11(ptr) Variable Function
+ 16(w_dep): 11(ptr) Variable Function
+ 18(w_reorder): 11(ptr) Variable Function
+ 20(w2): 11(ptr) Variable Function
+ 22(w_flow): 11(ptr) Variable Function
+ 49(w_undef): 11(ptr) Variable Function
+ 81(c): 80(ptr) Variable Function
+ 83(rep): 11(ptr) Variable Function
+ Store 8(blendscale) 9
+ 15: 10(fvec4) Load 14(u)
+ Store 12(w) 15
+ 17: 10(fvec4) Load 14(u)
+ Store 16(w_dep) 17
+ 19: 10(fvec4) Load 14(u)
+ Store 18(w_reorder) 19
+ 21: 10(fvec4) Load 14(u)
+ Store 20(w2) 21
+ 23: 10(fvec4) Load 14(u)
+ Store 22(w_flow) 23
+ 24: 6(float) Load 8(blendscale)
+ 27: 7(ptr) AccessChain 18(w_reorder) 26
+ Store 27 24
+ 31: 28(fvec2) Load 30(t)
+ 32: 10(fvec4) Load 12(w)
+ 33: 10(fvec4) VectorShuffle 32 31 0 5 2 4
+ Store 12(w) 33
+ 34: 6(float) Load 8(blendscale)
+ 36: 7(ptr) AccessChain 18(w_reorder) 35
+ Store 36 34
+ 37: 10(fvec4) Load 14(u)
+ 38: 10(fvec4) VectorShuffle 37 37 2 3 0 1
+ Store 20(w2) 38
+ 39: 6(float) Load 8(blendscale)
+ 41: 7(ptr) AccessChain 18(w_reorder) 40
+ Store 41 39
+ 42: 10(fvec4) Load 20(w2)
+ 43: 28(fvec2) VectorShuffle 42 42 0 2
+ 44: 10(fvec4) Load 16(w_dep)
+ 45: 10(fvec4) VectorShuffle 44 43 4 5 2 3
+ Store 16(w_dep) 45
+ 46: 28(fvec2) Load 30(t)
+ 47: 10(fvec4) Load 16(w_dep)
+ 48: 10(fvec4) VectorShuffle 47 46 0 1 4 5
+ Store 16(w_dep) 48
+ 50: 10(fvec4) Load 14(u)
+ 51: 28(fvec2) VectorShuffle 50 50 2 3
+ 52: 10(fvec4) Load 49(w_undef)
+ 53: 10(fvec4) VectorShuffle 52 51 4 5 2 3
+ Store 49(w_undef) 53
+ 57: 54(bool) Load 56(p)
+ SelectionMerge 59 None
+ BranchConditional 57 58 64
+ 58: Label
+ 61: 60(ptr) AccessChain 30(t) 35
+ 62: 6(float) Load 61
+ 63: 7(ptr) AccessChain 22(w_flow) 35
+ Store 63 62
+ Branch 59
+ 64: Label
+ 65: 60(ptr) AccessChain 30(t) 40
+ 66: 6(float) Load 65
+ 67: 7(ptr) AccessChain 22(w_flow) 35
+ Store 67 66
+ Branch 59
+ 59: Label
+ 70: 10(fvec4) Load 18(w_reorder)
+ 71: 10(fvec4) Load 49(w_undef)
+ 72: 10(fvec4) Load 12(w)
+ 73: 10(fvec4) Load 20(w2)
+ 74: 10(fvec4) FMul 72 73
+ 75: 10(fvec4) Load 16(w_dep)
+ 76: 10(fvec4) FMul 74 75
+ 77: 10(fvec4) Load 22(w_flow)
+ 78: 10(fvec4) FMul 76 77
+ 79: 10(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 70 71 78
+ Store 69(gl_FragColor) 79
+ 82: 28(fvec2) Load 30(t)
+ Store 81(c) 82
+ Store 83(rep) 86
+ 87: 7(ptr) AccessChain 81(c) 35
+ 88: 6(float) Load 87
+ 89: 54(bool) FOrdLessThan 88 84
+ SelectionMerge 91 None
+ BranchConditional 89 90 91
+ 90: Label
+ 93: 7(ptr) AccessChain 81(c) 35
+ 94: 6(float) Load 93
+ 95: 6(float) FMul 94 92
+ 96: 7(ptr) AccessChain 81(c) 35
+ Store 96 95
+ Branch 91
+ 91: Label
+ 97: 7(ptr) AccessChain 81(c) 35
+ 98: 6(float) Load 97
+ 99: 54(bool) FOrdLessThanEqual 98 85
+ SelectionMerge 101 None
+ BranchConditional 99 100 101
+ 100: Label
+ 103: 7(ptr) AccessChain 83(rep) 35
+ Store 103 102
+ Branch 101
+ 101: Label
+ 104: 10(fvec4) Load 83(rep)
+ 105: 10(fvec4) Load 69(gl_FragColor)
+ 106: 10(fvec4) FAdd 105 104
+ Store 69(gl_FragColor) 106
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.test.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.test.frag.out
new file mode 100644
index 00000000000..8f1c5260bba
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.test.frag.out
@@ -0,0 +1,90 @@
+spv.test.frag
+Warning, version 400 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 55
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 20 22 37 43 46 49
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 400
+ Name 4 "main"
+ Name 8 "blendscale"
+ Name 12 "v"
+ Name 16 "texSampler2D"
+ Name 20 "t"
+ Name 22 "scale"
+ Name 29 "w"
+ Name 33 "texSampler3D"
+ Name 37 "coords"
+ Name 43 "gl_FragColor"
+ Name 46 "u"
+ Name 49 "blend"
+ Decorate 16(texSampler2D) DescriptorSet 0
+ Decorate 33(texSampler3D) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypePointer Function 6(float)
+ 9: 6(float) Constant 1071971828
+ 10: TypeVector 6(float) 4
+ 11: TypePointer Function 10(fvec4)
+ 13: TypeImage 6(float) 2D sampled format:Unknown
+ 14: TypeSampledImage 13
+ 15: TypePointer UniformConstant 14
+16(texSampler2D): 15(ptr) Variable UniformConstant
+ 18: TypeVector 6(float) 2
+ 19: TypePointer Input 18(fvec2)
+ 20(t): 19(ptr) Variable Input
+ 22(scale): 19(ptr) Variable Input
+ 30: TypeImage 6(float) 3D sampled format:Unknown
+ 31: TypeSampledImage 30
+ 32: TypePointer UniformConstant 31
+33(texSampler3D): 32(ptr) Variable UniformConstant
+ 35: TypeVector 6(float) 3
+ 36: TypePointer Input 35(fvec3)
+ 37(coords): 36(ptr) Variable Input
+ 42: TypePointer Output 10(fvec4)
+43(gl_FragColor): 42(ptr) Variable Output
+ 45: TypePointer Input 10(fvec4)
+ 46(u): 45(ptr) Variable Input
+ 48: TypePointer Input 6(float)
+ 49(blend): 48(ptr) Variable Input
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(blendscale): 7(ptr) Variable Function
+ 12(v): 11(ptr) Variable Function
+ 29(w): 11(ptr) Variable Function
+ Store 8(blendscale) 9
+ 17: 14 Load 16(texSampler2D)
+ 21: 18(fvec2) Load 20(t)
+ 23: 18(fvec2) Load 22(scale)
+ 24: 18(fvec2) FAdd 21 23
+ 25: 18(fvec2) Load 22(scale)
+ 26: 18(fvec2) FDiv 24 25
+ 27: 10(fvec4) ImageSampleImplicitLod 17 26
+ 28: 10(fvec4) VectorShuffle 27 27 3 2 1 0
+ Store 12(v) 28
+ 34: 31 Load 33(texSampler3D)
+ 38: 35(fvec3) Load 37(coords)
+ 39: 10(fvec4) ImageSampleImplicitLod 34 38
+ 40: 10(fvec4) Load 12(v)
+ 41: 10(fvec4) FAdd 39 40
+ Store 29(w) 41
+ 44: 10(fvec4) Load 29(w)
+ 47: 10(fvec4) Load 46(u)
+ 50: 6(float) Load 49(blend)
+ 51: 6(float) Load 8(blendscale)
+ 52: 6(float) FMul 50 51
+ 53: 10(fvec4) CompositeConstruct 52 52 52 52
+ 54: 10(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 44 47 53
+ Store 43(gl_FragColor) 54
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.test.vert.out b/chromium/third_party/glslang/src/Test/baseResults/spv.test.vert.out
new file mode 100644
index 00000000000..697e468d4fd
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.test.vert.out
@@ -0,0 +1,49 @@
+spv.test.vert
+WARNING: 0:5: attribute deprecated in version 130; may be removed in future release
+
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 24
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Vertex 4 "main" 9 11 15 18 21
+ Source GLSL 140
+ Name 4 "main"
+ Name 9 "uv"
+ Name 11 "uv_in"
+ Name 15 "gl_Position"
+ Name 18 "transform"
+ Name 21 "position"
+ Decorate 15(gl_Position) BuiltIn Position
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 2
+ 8: TypePointer Output 7(fvec2)
+ 9(uv): 8(ptr) Variable Output
+ 10: TypePointer Input 7(fvec2)
+ 11(uv_in): 10(ptr) Variable Input
+ 13: TypeVector 6(float) 4
+ 14: TypePointer Output 13(fvec4)
+ 15(gl_Position): 14(ptr) Variable Output
+ 16: TypeMatrix 13(fvec4) 4
+ 17: TypePointer Input 16
+ 18(transform): 17(ptr) Variable Input
+ 20: TypePointer Input 13(fvec4)
+ 21(position): 20(ptr) Variable Input
+ 4(main): 2 Function None 3
+ 5: Label
+ 12: 7(fvec2) Load 11(uv_in)
+ Store 9(uv) 12
+ 19: 16 Load 18(transform)
+ 22: 13(fvec4) Load 21(position)
+ 23: 13(fvec4) MatrixTimesVector 19 22
+ Store 15(gl_Position) 23
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.texture.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.texture.frag.out
new file mode 100755
index 00000000000..b5794751f5a
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.texture.frag.out
@@ -0,0 +1,385 @@
+spv.texture.frag
+WARNING: 0:10: varying deprecated in version 130; may be removed in future release
+WARNING: 0:11: varying deprecated in version 130; may be removed in future release
+WARNING: 0:12: varying deprecated in version 130; may be removed in future release
+
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 291
+
+ Capability Shader
+ Capability Sampled1D
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 47 277 280 283 289 290
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 140
+ Name 4 "main"
+ Name 8 "blendscale"
+ Name 10 "bias"
+ Name 12 "lod"
+ Name 14 "proj"
+ Name 15 "coords1D"
+ Name 18 "coords3D"
+ Name 24 "coords4D"
+ Name 26 "color"
+ Name 32 "texSampler1D"
+ Name 47 "coords2D"
+ Name 72 "texSampler2D"
+ Name 98 "texSampler3D"
+ Name 124 "texSamplerCube"
+ Name 139 "shadowSampler1D"
+ Name 158 "shadowSampler2D"
+ Name 207 "iCoords2D"
+ Name 212 "iLod"
+ Name 222 "gradX"
+ Name 225 "gradY"
+ Name 277 "gl_FragColor"
+ Name 280 "u"
+ Name 283 "blend"
+ Name 289 "scale"
+ Name 290 "t"
+ Decorate 32(texSampler1D) DescriptorSet 0
+ Decorate 72(texSampler2D) DescriptorSet 0
+ Decorate 98(texSampler3D) DescriptorSet 0
+ Decorate 124(texSamplerCube) DescriptorSet 0
+ Decorate 139(shadowSampler1D) DescriptorSet 0
+ Decorate 158(shadowSampler2D) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypePointer Function 6(float)
+ 9: 6(float) Constant 1071971828
+ 11: 6(float) Constant 1073741824
+ 13: 6(float) Constant 1077936128
+ 16: TypeVector 6(float) 3
+ 17: TypePointer Function 16(fvec3)
+ 19: 6(float) Constant 1076753334
+ 20: 6(float) Constant 1079836148
+ 21: 16(fvec3) ConstantComposite 9 19 20
+ 22: TypeVector 6(float) 4
+ 23: TypePointer Function 22(fvec4)
+ 25: 22(fvec4) ConstantComposite 9 19 20 11
+ 27: 6(float) Constant 0
+ 28: 22(fvec4) ConstantComposite 27 27 27 27
+ 29: TypeImage 6(float) 1D sampled format:Unknown
+ 30: TypeSampledImage 29
+ 31: TypePointer UniformConstant 30
+32(texSampler1D): 31(ptr) Variable UniformConstant
+ 45: TypeVector 6(float) 2
+ 46: TypePointer Input 45(fvec2)
+ 47(coords2D): 46(ptr) Variable Input
+ 69: TypeImage 6(float) 2D sampled format:Unknown
+ 70: TypeSampledImage 69
+ 71: TypePointer UniformConstant 70
+72(texSampler2D): 71(ptr) Variable UniformConstant
+ 95: TypeImage 6(float) 3D sampled format:Unknown
+ 96: TypeSampledImage 95
+ 97: TypePointer UniformConstant 96
+98(texSampler3D): 97(ptr) Variable UniformConstant
+ 121: TypeImage 6(float) Cube sampled format:Unknown
+ 122: TypeSampledImage 121
+ 123: TypePointer UniformConstant 122
+124(texSamplerCube): 123(ptr) Variable UniformConstant
+ 136: TypeImage 6(float) 1D depth sampled format:Unknown
+ 137: TypeSampledImage 136
+ 138: TypePointer UniformConstant 137
+139(shadowSampler1D): 138(ptr) Variable UniformConstant
+ 155: TypeImage 6(float) 2D depth sampled format:Unknown
+ 156: TypeSampledImage 155
+ 157: TypePointer UniformConstant 156
+158(shadowSampler2D): 157(ptr) Variable UniformConstant
+ 204: TypeInt 32 1
+ 205: TypeVector 204(int) 2
+ 206: TypePointer Function 205(ivec2)
+ 208: 204(int) Constant 0
+ 209: 204(int) Constant 5
+ 210: 205(ivec2) ConstantComposite 208 209
+ 211: TypePointer Function 204(int)
+ 213: 204(int) Constant 1
+ 221: TypePointer Function 45(fvec2)
+ 250: 204(int) Constant 3
+ 251: 204(int) Constant 4294967289
+ 252: 205(ivec2) ConstantComposite 250 251
+ 276: TypePointer Output 22(fvec4)
+277(gl_FragColor): 276(ptr) Variable Output
+ 279: TypePointer Input 22(fvec4)
+ 280(u): 279(ptr) Variable Input
+ 282: TypePointer Input 6(float)
+ 283(blend): 282(ptr) Variable Input
+ 289(scale): 46(ptr) Variable Input
+ 290(t): 46(ptr) Variable Input
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(blendscale): 7(ptr) Variable Function
+ 10(bias): 7(ptr) Variable Function
+ 12(lod): 7(ptr) Variable Function
+ 14(proj): 7(ptr) Variable Function
+ 15(coords1D): 7(ptr) Variable Function
+ 18(coords3D): 17(ptr) Variable Function
+ 24(coords4D): 23(ptr) Variable Function
+ 26(color): 23(ptr) Variable Function
+ 207(iCoords2D): 206(ptr) Variable Function
+ 212(iLod): 211(ptr) Variable Function
+ 222(gradX): 221(ptr) Variable Function
+ 225(gradY): 221(ptr) Variable Function
+ Store 8(blendscale) 9
+ Store 10(bias) 11
+ Store 12(lod) 13
+ Store 14(proj) 11
+ Store 15(coords1D) 9
+ Store 18(coords3D) 21
+ Store 24(coords4D) 25
+ Store 26(color) 28
+ 33: 30 Load 32(texSampler1D)
+ 34: 6(float) Load 15(coords1D)
+ 35: 22(fvec4) ImageSampleImplicitLod 33 34
+ 36: 22(fvec4) Load 26(color)
+ 37: 22(fvec4) FAdd 36 35
+ Store 26(color) 37
+ 38: 30 Load 32(texSampler1D)
+ 39: 6(float) Load 15(coords1D)
+ 40: 6(float) Load 10(bias)
+ 41: 22(fvec4) ImageSampleImplicitLod 38 39 Bias 40
+ 42: 22(fvec4) Load 26(color)
+ 43: 22(fvec4) FAdd 42 41
+ Store 26(color) 43
+ 44: 30 Load 32(texSampler1D)
+ 48: 45(fvec2) Load 47(coords2D)
+ 49: 22(fvec4) ImageSampleProjImplicitLod 44 48
+ 50: 22(fvec4) Load 26(color)
+ 51: 22(fvec4) FAdd 50 49
+ Store 26(color) 51
+ 52: 30 Load 32(texSampler1D)
+ 53: 22(fvec4) Load 24(coords4D)
+ 54: 22(fvec4) ImageSampleProjImplicitLod 52 53
+ 55: 22(fvec4) Load 26(color)
+ 56: 22(fvec4) FAdd 55 54
+ Store 26(color) 56
+ 57: 30 Load 32(texSampler1D)
+ 58: 45(fvec2) Load 47(coords2D)
+ 59: 6(float) Load 10(bias)
+ 60: 22(fvec4) ImageSampleProjImplicitLod 57 58 Bias 59
+ 61: 22(fvec4) Load 26(color)
+ 62: 22(fvec4) FAdd 61 60
+ Store 26(color) 62
+ 63: 30 Load 32(texSampler1D)
+ 64: 22(fvec4) Load 24(coords4D)
+ 65: 6(float) Load 10(bias)
+ 66: 22(fvec4) ImageSampleProjImplicitLod 63 64 Bias 65
+ 67: 22(fvec4) Load 26(color)
+ 68: 22(fvec4) FAdd 67 66
+ Store 26(color) 68
+ 73: 70 Load 72(texSampler2D)
+ 74: 45(fvec2) Load 47(coords2D)
+ 75: 22(fvec4) ImageSampleImplicitLod 73 74
+ 76: 22(fvec4) Load 26(color)
+ 77: 22(fvec4) FAdd 76 75
+ Store 26(color) 77
+ 78: 70 Load 72(texSampler2D)
+ 79: 45(fvec2) Load 47(coords2D)
+ 80: 6(float) Load 10(bias)
+ 81: 22(fvec4) ImageSampleImplicitLod 78 79 Bias 80
+ 82: 22(fvec4) Load 26(color)
+ 83: 22(fvec4) FAdd 82 81
+ Store 26(color) 83
+ 84: 70 Load 72(texSampler2D)
+ 85: 16(fvec3) Load 18(coords3D)
+ 86: 22(fvec4) ImageSampleProjImplicitLod 84 85
+ 87: 22(fvec4) Load 26(color)
+ 88: 22(fvec4) FAdd 87 86
+ Store 26(color) 88
+ 89: 70 Load 72(texSampler2D)
+ 90: 22(fvec4) Load 24(coords4D)
+ 91: 6(float) Load 10(bias)
+ 92: 22(fvec4) ImageSampleProjImplicitLod 89 90 Bias 91
+ 93: 22(fvec4) Load 26(color)
+ 94: 22(fvec4) FAdd 93 92
+ Store 26(color) 94
+ 99: 96 Load 98(texSampler3D)
+ 100: 16(fvec3) Load 18(coords3D)
+ 101: 22(fvec4) ImageSampleImplicitLod 99 100
+ 102: 22(fvec4) Load 26(color)
+ 103: 22(fvec4) FAdd 102 101
+ Store 26(color) 103
+ 104: 96 Load 98(texSampler3D)
+ 105: 16(fvec3) Load 18(coords3D)
+ 106: 6(float) Load 10(bias)
+ 107: 22(fvec4) ImageSampleImplicitLod 104 105 Bias 106
+ 108: 22(fvec4) Load 26(color)
+ 109: 22(fvec4) FAdd 108 107
+ Store 26(color) 109
+ 110: 96 Load 98(texSampler3D)
+ 111: 22(fvec4) Load 24(coords4D)
+ 112: 22(fvec4) ImageSampleProjImplicitLod 110 111
+ 113: 22(fvec4) Load 26(color)
+ 114: 22(fvec4) FAdd 113 112
+ Store 26(color) 114
+ 115: 96 Load 98(texSampler3D)
+ 116: 22(fvec4) Load 24(coords4D)
+ 117: 6(float) Load 10(bias)
+ 118: 22(fvec4) ImageSampleProjImplicitLod 115 116 Bias 117
+ 119: 22(fvec4) Load 26(color)
+ 120: 22(fvec4) FAdd 119 118
+ Store 26(color) 120
+ 125: 122 Load 124(texSamplerCube)
+ 126: 16(fvec3) Load 18(coords3D)
+ 127: 22(fvec4) ImageSampleImplicitLod 125 126
+ 128: 22(fvec4) Load 26(color)
+ 129: 22(fvec4) FAdd 128 127
+ Store 26(color) 129
+ 130: 122 Load 124(texSamplerCube)
+ 131: 16(fvec3) Load 18(coords3D)
+ 132: 6(float) Load 10(bias)
+ 133: 22(fvec4) ImageSampleImplicitLod 130 131 Bias 132
+ 134: 22(fvec4) Load 26(color)
+ 135: 22(fvec4) FAdd 134 133
+ Store 26(color) 135
+ 140: 137 Load 139(shadowSampler1D)
+ 141: 16(fvec3) Load 18(coords3D)
+ 142: 6(float) CompositeExtract 141 2
+ 143: 6(float) ImageSampleDrefImplicitLod 140 141 142
+ 144: 22(fvec4) Load 26(color)
+ 145: 22(fvec4) CompositeConstruct 143 143 143 143
+ 146: 22(fvec4) FAdd 144 145
+ Store 26(color) 146
+ 147: 137 Load 139(shadowSampler1D)
+ 148: 16(fvec3) Load 18(coords3D)
+ 149: 6(float) Load 10(bias)
+ 150: 6(float) CompositeExtract 148 2
+ 151: 6(float) ImageSampleDrefImplicitLod 147 148 150 Bias 149
+ 152: 22(fvec4) Load 26(color)
+ 153: 22(fvec4) CompositeConstruct 151 151 151 151
+ 154: 22(fvec4) FAdd 152 153
+ Store 26(color) 154
+ 159: 156 Load 158(shadowSampler2D)
+ 160: 16(fvec3) Load 18(coords3D)
+ 161: 6(float) CompositeExtract 160 2
+ 162: 6(float) ImageSampleDrefImplicitLod 159 160 161
+ 163: 22(fvec4) Load 26(color)
+ 164: 22(fvec4) CompositeConstruct 162 162 162 162
+ 165: 22(fvec4) FAdd 163 164
+ Store 26(color) 165
+ 166: 156 Load 158(shadowSampler2D)
+ 167: 16(fvec3) Load 18(coords3D)
+ 168: 6(float) Load 10(bias)
+ 169: 6(float) CompositeExtract 167 2
+ 170: 6(float) ImageSampleDrefImplicitLod 166 167 169 Bias 168
+ 171: 22(fvec4) Load 26(color)
+ 172: 22(fvec4) CompositeConstruct 170 170 170 170
+ 173: 22(fvec4) FAdd 171 172
+ Store 26(color) 173
+ 174: 137 Load 139(shadowSampler1D)
+ 175: 22(fvec4) Load 24(coords4D)
+ 176: 6(float) CompositeExtract 175 2
+ 177: 6(float) ImageSampleProjDrefImplicitLod 174 175 176
+ 178: 22(fvec4) Load 26(color)
+ 179: 22(fvec4) CompositeConstruct 177 177 177 177
+ 180: 22(fvec4) FAdd 178 179
+ Store 26(color) 180
+ 181: 137 Load 139(shadowSampler1D)
+ 182: 22(fvec4) Load 24(coords4D)
+ 183: 6(float) Load 10(bias)
+ 184: 6(float) CompositeExtract 182 2
+ 185: 6(float) ImageSampleProjDrefImplicitLod 181 182 184 Bias 183
+ 186: 22(fvec4) Load 26(color)
+ 187: 22(fvec4) CompositeConstruct 185 185 185 185
+ 188: 22(fvec4) FAdd 186 187
+ Store 26(color) 188
+ 189: 156 Load 158(shadowSampler2D)
+ 190: 22(fvec4) Load 24(coords4D)
+ 191: 6(float) CompositeExtract 190 2
+ 192: 6(float) ImageSampleProjDrefImplicitLod 189 190 191
+ 193: 22(fvec4) Load 26(color)
+ 194: 22(fvec4) CompositeConstruct 192 192 192 192
+ 195: 22(fvec4) FAdd 193 194
+ Store 26(color) 195
+ 196: 156 Load 158(shadowSampler2D)
+ 197: 22(fvec4) Load 24(coords4D)
+ 198: 6(float) Load 10(bias)
+ 199: 6(float) CompositeExtract 197 2
+ 200: 6(float) ImageSampleProjDrefImplicitLod 196 197 199 Bias 198
+ 201: 22(fvec4) Load 26(color)
+ 202: 22(fvec4) CompositeConstruct 200 200 200 200
+ 203: 22(fvec4) FAdd 201 202
+ Store 26(color) 203
+ Store 207(iCoords2D) 210
+ Store 212(iLod) 213
+ 214: 70 Load 72(texSampler2D)
+ 215: 205(ivec2) Load 207(iCoords2D)
+ 216: 204(int) Load 212(iLod)
+ 217: 69 Image 214
+ 218: 22(fvec4) ImageFetch 217 215 Lod 216
+ 219: 22(fvec4) Load 26(color)
+ 220: 22(fvec4) FAdd 219 218
+ Store 26(color) 220
+ 223: 45(fvec2) Load 47(coords2D)
+ 224: 45(fvec2) DPdx 223
+ Store 222(gradX) 224
+ 226: 45(fvec2) Load 47(coords2D)
+ 227: 45(fvec2) DPdy 226
+ Store 225(gradY) 227
+ 228: 70 Load 72(texSampler2D)
+ 229: 45(fvec2) Load 47(coords2D)
+ 230: 45(fvec2) Load 222(gradX)
+ 231: 45(fvec2) Load 225(gradY)
+ 232: 22(fvec4) ImageSampleExplicitLod 228 229 Grad 230 231
+ 233: 22(fvec4) Load 26(color)
+ 234: 22(fvec4) FAdd 233 232
+ Store 26(color) 234
+ 235: 70 Load 72(texSampler2D)
+ 236: 45(fvec2) Load 47(coords2D)
+ 237: 6(float) Load 14(proj)
+ 238: 6(float) CompositeExtract 236 0
+ 239: 6(float) CompositeExtract 236 1
+ 240: 16(fvec3) CompositeConstruct 238 239 237
+ 241: 45(fvec2) Load 222(gradX)
+ 242: 45(fvec2) Load 225(gradY)
+ 243: 22(fvec4) ImageSampleProjExplicitLod 235 240 Grad 241 242
+ 244: 22(fvec4) Load 26(color)
+ 245: 22(fvec4) FAdd 244 243
+ Store 26(color) 245
+ 246: 70 Load 72(texSampler2D)
+ 247: 45(fvec2) Load 47(coords2D)
+ 248: 45(fvec2) Load 222(gradX)
+ 249: 45(fvec2) Load 225(gradY)
+ 253: 22(fvec4) ImageSampleExplicitLod 246 247 Grad ConstOffset 248 249 252
+ 254: 22(fvec4) Load 26(color)
+ 255: 22(fvec4) FAdd 254 253
+ Store 26(color) 255
+ 256: 70 Load 72(texSampler2D)
+ 257: 16(fvec3) Load 18(coords3D)
+ 258: 45(fvec2) Load 222(gradX)
+ 259: 45(fvec2) Load 225(gradY)
+ 260: 22(fvec4) ImageSampleProjExplicitLod 256 257 Grad ConstOffset 258 259 252
+ 261: 22(fvec4) Load 26(color)
+ 262: 22(fvec4) FAdd 261 260
+ Store 26(color) 262
+ 263: 156 Load 158(shadowSampler2D)
+ 264: 45(fvec2) Load 47(coords2D)
+ 265: 6(float) Load 12(lod)
+ 266: 6(float) CompositeExtract 264 0
+ 267: 6(float) CompositeExtract 264 1
+ 268: 16(fvec3) CompositeConstruct 266 267 265
+ 269: 45(fvec2) Load 222(gradX)
+ 270: 45(fvec2) Load 225(gradY)
+ 271: 6(float) CompositeExtract 268 2
+ 272: 6(float) ImageSampleDrefExplicitLod 263 268 271 Grad 269 270
+ 273: 22(fvec4) Load 26(color)
+ 274: 22(fvec4) CompositeConstruct 272 272 272 272
+ 275: 22(fvec4) FAdd 273 274
+ Store 26(color) 275
+ 278: 22(fvec4) Load 26(color)
+ 281: 22(fvec4) Load 280(u)
+ 284: 6(float) Load 283(blend)
+ 285: 6(float) Load 8(blendscale)
+ 286: 6(float) FMul 284 285
+ 287: 22(fvec4) CompositeConstruct 286 286 286 286
+ 288: 22(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 278 281 287
+ Store 277(gl_FragColor) 288
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.texture.vert.out b/chromium/third_party/glslang/src/Test/baseResults/spv.texture.vert.out
new file mode 100755
index 00000000000..179e567d4da
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.texture.vert.out
@@ -0,0 +1,197 @@
+spv.texture.vert
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 142
+
+ Capability Shader
+ Capability Sampled1D
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Vertex 4 "main" 39 140
+ Source GLSL 140
+ Name 4 "main"
+ Name 8 "lod"
+ Name 10 "coords1D"
+ Name 14 "coords3D"
+ Name 20 "coords4D"
+ Name 23 "color"
+ Name 29 "texSampler1D"
+ Name 39 "coords2D"
+ Name 54 "texSampler2D"
+ Name 76 "texSampler3D"
+ Name 92 "texSamplerCube"
+ Name 102 "shadowSampler1D"
+ Name 114 "shadowSampler2D"
+ Name 140 "gl_Position"
+ Decorate 29(texSampler1D) DescriptorSet 0
+ Decorate 54(texSampler2D) DescriptorSet 0
+ Decorate 76(texSampler3D) DescriptorSet 0
+ Decorate 92(texSamplerCube) DescriptorSet 0
+ Decorate 102(shadowSampler1D) DescriptorSet 0
+ Decorate 114(shadowSampler2D) DescriptorSet 0
+ Decorate 140(gl_Position) BuiltIn Position
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypePointer Function 6(float)
+ 9: 6(float) Constant 1077936128
+ 11: 6(float) Constant 1071971828
+ 12: TypeVector 6(float) 3
+ 13: TypePointer Function 12(fvec3)
+ 15: 6(float) Constant 1076753334
+ 16: 6(float) Constant 1079836148
+ 17: 12(fvec3) ConstantComposite 11 15 16
+ 18: TypeVector 6(float) 4
+ 19: TypePointer Function 18(fvec4)
+ 21: 6(float) Constant 1073741824
+ 22: 18(fvec4) ConstantComposite 11 15 16 21
+ 24: 6(float) Constant 0
+ 25: 18(fvec4) ConstantComposite 24 24 24 24
+ 26: TypeImage 6(float) 1D sampled format:Unknown
+ 27: TypeSampledImage 26
+ 28: TypePointer UniformConstant 27
+29(texSampler1D): 28(ptr) Variable UniformConstant
+ 37: TypeVector 6(float) 2
+ 38: TypePointer Input 37(fvec2)
+ 39(coords2D): 38(ptr) Variable Input
+ 51: TypeImage 6(float) 2D sampled format:Unknown
+ 52: TypeSampledImage 51
+ 53: TypePointer UniformConstant 52
+54(texSampler2D): 53(ptr) Variable UniformConstant
+ 73: TypeImage 6(float) 3D sampled format:Unknown
+ 74: TypeSampledImage 73
+ 75: TypePointer UniformConstant 74
+76(texSampler3D): 75(ptr) Variable UniformConstant
+ 89: TypeImage 6(float) Cube sampled format:Unknown
+ 90: TypeSampledImage 89
+ 91: TypePointer UniformConstant 90
+92(texSamplerCube): 91(ptr) Variable UniformConstant
+ 99: TypeImage 6(float) 1D depth sampled format:Unknown
+ 100: TypeSampledImage 99
+ 101: TypePointer UniformConstant 100
+102(shadowSampler1D): 101(ptr) Variable UniformConstant
+ 111: TypeImage 6(float) 2D depth sampled format:Unknown
+ 112: TypeSampledImage 111
+ 113: TypePointer UniformConstant 112
+114(shadowSampler2D): 113(ptr) Variable UniformConstant
+ 139: TypePointer Output 18(fvec4)
+140(gl_Position): 139(ptr) Variable Output
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(lod): 7(ptr) Variable Function
+ 10(coords1D): 7(ptr) Variable Function
+ 14(coords3D): 13(ptr) Variable Function
+ 20(coords4D): 19(ptr) Variable Function
+ 23(color): 19(ptr) Variable Function
+ Store 8(lod) 9
+ Store 10(coords1D) 11
+ Store 14(coords3D) 17
+ Store 20(coords4D) 22
+ Store 23(color) 25
+ 30: 27 Load 29(texSampler1D)
+ 31: 6(float) Load 10(coords1D)
+ 32: 6(float) Load 8(lod)
+ 33: 18(fvec4) ImageSampleExplicitLod 30 31 Lod 32
+ 34: 18(fvec4) Load 23(color)
+ 35: 18(fvec4) FAdd 34 33
+ Store 23(color) 35
+ 36: 27 Load 29(texSampler1D)
+ 40: 37(fvec2) Load 39(coords2D)
+ 41: 6(float) Load 8(lod)
+ 42: 18(fvec4) ImageSampleProjExplicitLod 36 40 Lod 41
+ 43: 18(fvec4) Load 23(color)
+ 44: 18(fvec4) FAdd 43 42
+ Store 23(color) 44
+ 45: 27 Load 29(texSampler1D)
+ 46: 18(fvec4) Load 20(coords4D)
+ 47: 6(float) Load 8(lod)
+ 48: 18(fvec4) ImageSampleProjExplicitLod 45 46 Lod 47
+ 49: 18(fvec4) Load 23(color)
+ 50: 18(fvec4) FAdd 49 48
+ Store 23(color) 50
+ 55: 52 Load 54(texSampler2D)
+ 56: 37(fvec2) Load 39(coords2D)
+ 57: 6(float) Load 8(lod)
+ 58: 18(fvec4) ImageSampleExplicitLod 55 56 Lod 57
+ 59: 18(fvec4) Load 23(color)
+ 60: 18(fvec4) FAdd 59 58
+ Store 23(color) 60
+ 61: 52 Load 54(texSampler2D)
+ 62: 12(fvec3) Load 14(coords3D)
+ 63: 6(float) Load 8(lod)
+ 64: 18(fvec4) ImageSampleProjExplicitLod 61 62 Lod 63
+ 65: 18(fvec4) Load 23(color)
+ 66: 18(fvec4) FAdd 65 64
+ Store 23(color) 66
+ 67: 52 Load 54(texSampler2D)
+ 68: 18(fvec4) Load 20(coords4D)
+ 69: 6(float) Load 8(lod)
+ 70: 18(fvec4) ImageSampleProjExplicitLod 67 68 Lod 69
+ 71: 18(fvec4) Load 23(color)
+ 72: 18(fvec4) FAdd 71 70
+ Store 23(color) 72
+ 77: 74 Load 76(texSampler3D)
+ 78: 12(fvec3) Load 14(coords3D)
+ 79: 6(float) Load 8(lod)
+ 80: 18(fvec4) ImageSampleExplicitLod 77 78 Lod 79
+ 81: 18(fvec4) Load 23(color)
+ 82: 18(fvec4) FAdd 81 80
+ Store 23(color) 82
+ 83: 74 Load 76(texSampler3D)
+ 84: 18(fvec4) Load 20(coords4D)
+ 85: 6(float) Load 8(lod)
+ 86: 18(fvec4) ImageSampleProjExplicitLod 83 84 Lod 85
+ 87: 18(fvec4) Load 23(color)
+ 88: 18(fvec4) FAdd 87 86
+ Store 23(color) 88
+ 93: 90 Load 92(texSamplerCube)
+ 94: 12(fvec3) Load 14(coords3D)
+ 95: 6(float) Load 8(lod)
+ 96: 18(fvec4) ImageSampleExplicitLod 93 94 Lod 95
+ 97: 18(fvec4) Load 23(color)
+ 98: 18(fvec4) FAdd 97 96
+ Store 23(color) 98
+ 103: 100 Load 102(shadowSampler1D)
+ 104: 12(fvec3) Load 14(coords3D)
+ 105: 6(float) Load 8(lod)
+ 106: 6(float) CompositeExtract 104 2
+ 107: 6(float) ImageSampleDrefExplicitLod 103 104 106 Lod 105
+ 108: 18(fvec4) Load 23(color)
+ 109: 18(fvec4) CompositeConstruct 107 107 107 107
+ 110: 18(fvec4) FAdd 108 109
+ Store 23(color) 110
+ 115: 112 Load 114(shadowSampler2D)
+ 116: 12(fvec3) Load 14(coords3D)
+ 117: 6(float) Load 8(lod)
+ 118: 6(float) CompositeExtract 116 2
+ 119: 6(float) ImageSampleDrefExplicitLod 115 116 118 Lod 117
+ 120: 18(fvec4) Load 23(color)
+ 121: 18(fvec4) CompositeConstruct 119 119 119 119
+ 122: 18(fvec4) FAdd 120 121
+ Store 23(color) 122
+ 123: 100 Load 102(shadowSampler1D)
+ 124: 18(fvec4) Load 20(coords4D)
+ 125: 6(float) Load 8(lod)
+ 126: 6(float) CompositeExtract 124 2
+ 127: 6(float) ImageSampleProjDrefExplicitLod 123 124 126 Lod 125
+ 128: 18(fvec4) Load 23(color)
+ 129: 18(fvec4) CompositeConstruct 127 127 127 127
+ 130: 18(fvec4) FAdd 128 129
+ Store 23(color) 130
+ 131: 112 Load 114(shadowSampler2D)
+ 132: 18(fvec4) Load 20(coords4D)
+ 133: 6(float) Load 8(lod)
+ 134: 6(float) CompositeExtract 132 2
+ 135: 6(float) ImageSampleProjDrefExplicitLod 131 132 134 Lod 133
+ 136: 18(fvec4) Load 23(color)
+ 137: 18(fvec4) CompositeConstruct 135 135 135 135
+ 138: 18(fvec4) FAdd 136 137
+ Store 23(color) 138
+ 141: 18(fvec4) Load 23(color)
+ Store 140(gl_Position) 141
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.types.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.types.frag.out
new file mode 100755
index 00000000000..4295370d385
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.types.frag.out
@@ -0,0 +1,340 @@
+spv.types.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 260
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 91 93 100 102 109 111 118 120 127 129 136 138 145 147 154 156 160
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 140
+ Name 4 "main"
+ Name 8 "b"
+ Name 10 "u_b"
+ Name 12 "i_b"
+ Name 17 "b2"
+ Name 19 "u_b2"
+ Name 22 "i_b2"
+ Name 35 "b3"
+ Name 37 "u_b3"
+ Name 40 "i_b3"
+ Name 59 "b4"
+ Name 61 "u_b4"
+ Name 64 "i_b4"
+ Name 89 "i"
+ Name 91 "u_i"
+ Name 93 "i_i"
+ Name 98 "i2"
+ Name 100 "u_i2"
+ Name 102 "i_i2"
+ Name 107 "i3"
+ Name 109 "u_i3"
+ Name 111 "i_i3"
+ Name 116 "i4"
+ Name 118 "u_i4"
+ Name 120 "i_i4"
+ Name 125 "f"
+ Name 127 "u_f"
+ Name 129 "i_f"
+ Name 134 "f2"
+ Name 136 "u_f2"
+ Name 138 "i_f2"
+ Name 143 "f3"
+ Name 145 "u_f3"
+ Name 147 "i_f3"
+ Name 152 "f4"
+ Name 154 "u_f4"
+ Name 156 "i_f4"
+ Name 160 "gl_FragColor"
+ Decorate 91(u_i) Flat
+ Decorate 93(i_i) Flat
+ Decorate 100(u_i2) Flat
+ Decorate 102(i_i2) Flat
+ Decorate 109(u_i3) Flat
+ Decorate 111(i_i3) Flat
+ Decorate 118(u_i4) Flat
+ Decorate 120(i_i4) Flat
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeBool
+ 7: TypePointer Function 6(bool)
+ 9: TypePointer Private 6(bool)
+ 10(u_b): 9(ptr) Variable Private
+ 12(i_b): 9(ptr) Variable Private
+ 15: TypeVector 6(bool) 2
+ 16: TypePointer Function 15(bvec2)
+ 18: TypePointer Private 15(bvec2)
+ 19(u_b2): 18(ptr) Variable Private
+ 22(i_b2): 18(ptr) Variable Private
+ 33: TypeVector 6(bool) 3
+ 34: TypePointer Function 33(bvec3)
+ 36: TypePointer Private 33(bvec3)
+ 37(u_b3): 36(ptr) Variable Private
+ 40(i_b3): 36(ptr) Variable Private
+ 57: TypeVector 6(bool) 4
+ 58: TypePointer Function 57(bvec4)
+ 60: TypePointer Private 57(bvec4)
+ 61(u_b4): 60(ptr) Variable Private
+ 64(i_b4): 60(ptr) Variable Private
+ 87: TypeInt 32 1
+ 88: TypePointer Function 87(int)
+ 90: TypePointer Input 87(int)
+ 91(u_i): 90(ptr) Variable Input
+ 93(i_i): 90(ptr) Variable Input
+ 96: TypeVector 87(int) 2
+ 97: TypePointer Function 96(ivec2)
+ 99: TypePointer Input 96(ivec2)
+ 100(u_i2): 99(ptr) Variable Input
+ 102(i_i2): 99(ptr) Variable Input
+ 105: TypeVector 87(int) 3
+ 106: TypePointer Function 105(ivec3)
+ 108: TypePointer Input 105(ivec3)
+ 109(u_i3): 108(ptr) Variable Input
+ 111(i_i3): 108(ptr) Variable Input
+ 114: TypeVector 87(int) 4
+ 115: TypePointer Function 114(ivec4)
+ 117: TypePointer Input 114(ivec4)
+ 118(u_i4): 117(ptr) Variable Input
+ 120(i_i4): 117(ptr) Variable Input
+ 123: TypeFloat 32
+ 124: TypePointer Function 123(float)
+ 126: TypePointer Input 123(float)
+ 127(u_f): 126(ptr) Variable Input
+ 129(i_f): 126(ptr) Variable Input
+ 132: TypeVector 123(float) 2
+ 133: TypePointer Function 132(fvec2)
+ 135: TypePointer Input 132(fvec2)
+ 136(u_f2): 135(ptr) Variable Input
+ 138(i_f2): 135(ptr) Variable Input
+ 141: TypeVector 123(float) 3
+ 142: TypePointer Function 141(fvec3)
+ 144: TypePointer Input 141(fvec3)
+ 145(u_f3): 144(ptr) Variable Input
+ 147(i_f3): 144(ptr) Variable Input
+ 150: TypeVector 123(float) 4
+ 151: TypePointer Function 150(fvec4)
+ 153: TypePointer Input 150(fvec4)
+ 154(u_f4): 153(ptr) Variable Input
+ 156(i_f4): 153(ptr) Variable Input
+ 159: TypePointer Output 150(fvec4)
+160(gl_FragColor): 159(ptr) Variable Output
+ 193: TypeInt 32 0
+ 194: 193(int) Constant 0
+ 198: 193(int) Constant 1
+ 208: 193(int) Constant 2
+ 221: 193(int) Constant 3
+ 257: 123(float) Constant 1065353216
+ 258: 150(fvec4) ConstantComposite 257 257 257 257
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(b): 7(ptr) Variable Function
+ 17(b2): 16(ptr) Variable Function
+ 35(b3): 34(ptr) Variable Function
+ 59(b4): 58(ptr) Variable Function
+ 89(i): 88(ptr) Variable Function
+ 98(i2): 97(ptr) Variable Function
+ 107(i3): 106(ptr) Variable Function
+ 116(i4): 115(ptr) Variable Function
+ 125(f): 124(ptr) Variable Function
+ 134(f2): 133(ptr) Variable Function
+ 143(f3): 142(ptr) Variable Function
+ 152(f4): 151(ptr) Variable Function
+ 161: 151(ptr) Variable Function
+ 11: 6(bool) Load 10(u_b)
+ 13: 6(bool) Load 12(i_b)
+ 14: 6(bool) LogicalAnd 11 13
+ Store 8(b) 14
+ 20: 15(bvec2) Load 19(u_b2)
+ 21: 6(bool) CompositeExtract 20 0
+ 23: 15(bvec2) Load 22(i_b2)
+ 24: 6(bool) CompositeExtract 23 0
+ 25: 6(bool) LogicalAnd 21 24
+ 26: 15(bvec2) Load 19(u_b2)
+ 27: 6(bool) CompositeExtract 26 1
+ 28: 6(bool) LogicalAnd 25 27
+ 29: 15(bvec2) Load 22(i_b2)
+ 30: 6(bool) CompositeExtract 29 1
+ 31: 6(bool) LogicalAnd 28 30
+ 32: 15(bvec2) CompositeConstruct 31 31
+ Store 17(b2) 32
+ 38: 33(bvec3) Load 37(u_b3)
+ 39: 6(bool) CompositeExtract 38 0
+ 41: 33(bvec3) Load 40(i_b3)
+ 42: 6(bool) CompositeExtract 41 0
+ 43: 6(bool) LogicalAnd 39 42
+ 44: 33(bvec3) Load 37(u_b3)
+ 45: 6(bool) CompositeExtract 44 1
+ 46: 6(bool) LogicalAnd 43 45
+ 47: 33(bvec3) Load 40(i_b3)
+ 48: 6(bool) CompositeExtract 47 1
+ 49: 6(bool) LogicalAnd 46 48
+ 50: 33(bvec3) Load 37(u_b3)
+ 51: 6(bool) CompositeExtract 50 2
+ 52: 6(bool) LogicalAnd 49 51
+ 53: 33(bvec3) Load 40(i_b3)
+ 54: 6(bool) CompositeExtract 53 2
+ 55: 6(bool) LogicalAnd 52 54
+ 56: 33(bvec3) CompositeConstruct 55 55 55
+ Store 35(b3) 56
+ 62: 57(bvec4) Load 61(u_b4)
+ 63: 6(bool) CompositeExtract 62 0
+ 65: 57(bvec4) Load 64(i_b4)
+ 66: 6(bool) CompositeExtract 65 0
+ 67: 6(bool) LogicalAnd 63 66
+ 68: 57(bvec4) Load 61(u_b4)
+ 69: 6(bool) CompositeExtract 68 1
+ 70: 6(bool) LogicalAnd 67 69
+ 71: 57(bvec4) Load 64(i_b4)
+ 72: 6(bool) CompositeExtract 71 1
+ 73: 6(bool) LogicalAnd 70 72
+ 74: 57(bvec4) Load 61(u_b4)
+ 75: 6(bool) CompositeExtract 74 2
+ 76: 6(bool) LogicalAnd 73 75
+ 77: 57(bvec4) Load 64(i_b4)
+ 78: 6(bool) CompositeExtract 77 2
+ 79: 6(bool) LogicalAnd 76 78
+ 80: 57(bvec4) Load 61(u_b4)
+ 81: 6(bool) CompositeExtract 80 3
+ 82: 6(bool) LogicalAnd 79 81
+ 83: 57(bvec4) Load 64(i_b4)
+ 84: 6(bool) CompositeExtract 83 3
+ 85: 6(bool) LogicalAnd 82 84
+ 86: 57(bvec4) CompositeConstruct 85 85 85 85
+ Store 59(b4) 86
+ 92: 87(int) Load 91(u_i)
+ 94: 87(int) Load 93(i_i)
+ 95: 87(int) IAdd 92 94
+ Store 89(i) 95
+ 101: 96(ivec2) Load 100(u_i2)
+ 103: 96(ivec2) Load 102(i_i2)
+ 104: 96(ivec2) IAdd 101 103
+ Store 98(i2) 104
+ 110: 105(ivec3) Load 109(u_i3)
+ 112: 105(ivec3) Load 111(i_i3)
+ 113: 105(ivec3) IAdd 110 112
+ Store 107(i3) 113
+ 119: 114(ivec4) Load 118(u_i4)
+ 121: 114(ivec4) Load 120(i_i4)
+ 122: 114(ivec4) IAdd 119 121
+ Store 116(i4) 122
+ 128: 123(float) Load 127(u_f)
+ 130: 123(float) Load 129(i_f)
+ 131: 123(float) FAdd 128 130
+ Store 125(f) 131
+ 137: 132(fvec2) Load 136(u_f2)
+ 139: 132(fvec2) Load 138(i_f2)
+ 140: 132(fvec2) FAdd 137 139
+ Store 134(f2) 140
+ 146: 141(fvec3) Load 145(u_f3)
+ 148: 141(fvec3) Load 147(i_f3)
+ 149: 141(fvec3) FAdd 146 148
+ Store 143(f3) 149
+ 155: 150(fvec4) Load 154(u_f4)
+ 157: 150(fvec4) Load 156(i_f4)
+ 158: 150(fvec4) FAdd 155 157
+ Store 152(f4) 158
+ 162: 6(bool) Load 8(b)
+ 163: 15(bvec2) Load 17(b2)
+ 164: 6(bool) CompositeExtract 163 0
+ 165: 6(bool) LogicalOr 162 164
+ 166: 15(bvec2) Load 17(b2)
+ 167: 6(bool) CompositeExtract 166 1
+ 168: 6(bool) LogicalOr 165 167
+ 169: 33(bvec3) Load 35(b3)
+ 170: 6(bool) CompositeExtract 169 0
+ 171: 6(bool) LogicalOr 168 170
+ 172: 33(bvec3) Load 35(b3)
+ 173: 6(bool) CompositeExtract 172 1
+ 174: 6(bool) LogicalOr 171 173
+ 175: 33(bvec3) Load 35(b3)
+ 176: 6(bool) CompositeExtract 175 2
+ 177: 6(bool) LogicalOr 174 176
+ 178: 57(bvec4) Load 59(b4)
+ 179: 6(bool) CompositeExtract 178 0
+ 180: 6(bool) LogicalOr 177 179
+ 181: 57(bvec4) Load 59(b4)
+ 182: 6(bool) CompositeExtract 181 1
+ 183: 6(bool) LogicalOr 180 182
+ 184: 57(bvec4) Load 59(b4)
+ 185: 6(bool) CompositeExtract 184 2
+ 186: 6(bool) LogicalOr 183 185
+ 187: 57(bvec4) Load 59(b4)
+ 188: 6(bool) CompositeExtract 187 3
+ 189: 6(bool) LogicalOr 186 188
+ SelectionMerge 191 None
+ BranchConditional 189 190 256
+ 190: Label
+ 192: 87(int) Load 89(i)
+ 195: 88(ptr) AccessChain 98(i2) 194
+ 196: 87(int) Load 195
+ 197: 87(int) IAdd 192 196
+ 199: 88(ptr) AccessChain 98(i2) 198
+ 200: 87(int) Load 199
+ 201: 87(int) IAdd 197 200
+ 202: 88(ptr) AccessChain 107(i3) 194
+ 203: 87(int) Load 202
+ 204: 87(int) IAdd 201 203
+ 205: 88(ptr) AccessChain 107(i3) 198
+ 206: 87(int) Load 205
+ 207: 87(int) IAdd 204 206
+ 209: 88(ptr) AccessChain 107(i3) 208
+ 210: 87(int) Load 209
+ 211: 87(int) IAdd 207 210
+ 212: 88(ptr) AccessChain 116(i4) 194
+ 213: 87(int) Load 212
+ 214: 87(int) IAdd 211 213
+ 215: 88(ptr) AccessChain 116(i4) 198
+ 216: 87(int) Load 215
+ 217: 87(int) IAdd 214 216
+ 218: 88(ptr) AccessChain 116(i4) 208
+ 219: 87(int) Load 218
+ 220: 87(int) IAdd 217 219
+ 222: 88(ptr) AccessChain 116(i4) 221
+ 223: 87(int) Load 222
+ 224: 87(int) IAdd 220 223
+ 225: 123(float) ConvertSToF 224
+ 226: 123(float) Load 125(f)
+ 227: 123(float) FAdd 225 226
+ 228: 124(ptr) AccessChain 134(f2) 194
+ 229: 123(float) Load 228
+ 230: 123(float) FAdd 227 229
+ 231: 124(ptr) AccessChain 134(f2) 198
+ 232: 123(float) Load 231
+ 233: 123(float) FAdd 230 232
+ 234: 124(ptr) AccessChain 143(f3) 194
+ 235: 123(float) Load 234
+ 236: 123(float) FAdd 233 235
+ 237: 124(ptr) AccessChain 143(f3) 198
+ 238: 123(float) Load 237
+ 239: 123(float) FAdd 236 238
+ 240: 124(ptr) AccessChain 143(f3) 208
+ 241: 123(float) Load 240
+ 242: 123(float) FAdd 239 241
+ 243: 124(ptr) AccessChain 152(f4) 194
+ 244: 123(float) Load 243
+ 245: 123(float) FAdd 242 244
+ 246: 124(ptr) AccessChain 152(f4) 198
+ 247: 123(float) Load 246
+ 248: 123(float) FAdd 245 247
+ 249: 124(ptr) AccessChain 152(f4) 208
+ 250: 123(float) Load 249
+ 251: 123(float) FAdd 248 250
+ 252: 124(ptr) AccessChain 152(f4) 221
+ 253: 123(float) Load 252
+ 254: 123(float) FAdd 251 253
+ 255: 150(fvec4) CompositeConstruct 254 254 254 254
+ Store 161 255
+ Branch 191
+ 256: Label
+ Store 161 258
+ Branch 191
+ 191: Label
+ 259: 150(fvec4) Load 161
+ Store 160(gl_FragColor) 259
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.uint.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.uint.frag.out
new file mode 100755
index 00000000000..7d934ff1ddc
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.uint.frag.out
@@ -0,0 +1,438 @@
+spv.uint.frag
+Warning, version 310 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 207
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 15 68 77 200 202 204
+ ExecutionMode 4 OriginUpperLeft
+ Source ESSL 310
+ Name 4 "main"
+ Name 8 "count"
+ Name 12 "u"
+ Name 15 "t"
+ Name 55 "shiftedii"
+ Name 57 "shiftedui"
+ Name 59 "shiftediu"
+ Name 60 "shifteduu"
+ Name 68 "c"
+ Name 72 "usampler"
+ Name 77 "tc"
+ Name 111 "af"
+ Name 115 "ab"
+ Name 118 "ai"
+ Name 152 "mask1"
+ Name 154 "mask2"
+ Name 156 "mask3"
+ Name 160 "mask4"
+ Name 200 "f"
+ Name 202 "v"
+ Name 204 "i"
+ Name 206 "b"
+ Decorate 8(count) RelaxedPrecision
+ Decorate 12(u) RelaxedPrecision
+ Decorate 15(t) RelaxedPrecision
+ Decorate 15(t) Flat
+ Decorate 19 RelaxedPrecision
+ Decorate 21 RelaxedPrecision
+ Decorate 27 RelaxedPrecision
+ Decorate 28 RelaxedPrecision
+ Decorate 32 RelaxedPrecision
+ Decorate 33 RelaxedPrecision
+ Decorate 38 RelaxedPrecision
+ Decorate 39 RelaxedPrecision
+ Decorate 43 RelaxedPrecision
+ Decorate 44 RelaxedPrecision
+ Decorate 48 RelaxedPrecision
+ Decorate 49 RelaxedPrecision
+ Decorate 53 RelaxedPrecision
+ Decorate 54 RelaxedPrecision
+ Decorate 55(shiftedii) RelaxedPrecision
+ Decorate 57(shiftedui) RelaxedPrecision
+ Decorate 59(shiftediu) RelaxedPrecision
+ Decorate 60(shifteduu) RelaxedPrecision
+ Decorate 61 RelaxedPrecision
+ Decorate 62 RelaxedPrecision
+ Decorate 68(c) RelaxedPrecision
+ Decorate 72(usampler) RelaxedPrecision
+ Decorate 72(usampler) DescriptorSet 0
+ Decorate 73 RelaxedPrecision
+ Decorate 77(tc) RelaxedPrecision
+ Decorate 78 RelaxedPrecision
+ Decorate 79 RelaxedPrecision
+ Decorate 80 RelaxedPrecision
+ Decorate 81 RelaxedPrecision
+ Decorate 85 RelaxedPrecision
+ Decorate 86 RelaxedPrecision
+ Decorate 88 RelaxedPrecision
+ Decorate 89 RelaxedPrecision
+ Decorate 90 RelaxedPrecision
+ Decorate 91 RelaxedPrecision
+ Decorate 92 RelaxedPrecision
+ Decorate 97 RelaxedPrecision
+ Decorate 98 RelaxedPrecision
+ Decorate 101 RelaxedPrecision
+ Decorate 102 RelaxedPrecision
+ Decorate 105 RelaxedPrecision
+ Decorate 111(af) RelaxedPrecision
+ Decorate 112 RelaxedPrecision
+ Decorate 113 RelaxedPrecision
+ Decorate 116 RelaxedPrecision
+ Decorate 118(ai) RelaxedPrecision
+ Decorate 119 RelaxedPrecision
+ Decorate 120 RelaxedPrecision
+ Decorate 121 RelaxedPrecision
+ Decorate 122 RelaxedPrecision
+ Decorate 124 RelaxedPrecision
+ Decorate 125 RelaxedPrecision
+ Decorate 126 RelaxedPrecision
+ Decorate 127 RelaxedPrecision
+ Decorate 128 RelaxedPrecision
+ Decorate 129 RelaxedPrecision
+ Decorate 130 RelaxedPrecision
+ Decorate 131 RelaxedPrecision
+ Decorate 135 RelaxedPrecision
+ Decorate 136 RelaxedPrecision
+ Decorate 140 RelaxedPrecision
+ Decorate 141 RelaxedPrecision
+ Decorate 145 RelaxedPrecision
+ Decorate 146 RelaxedPrecision
+ Decorate 150 RelaxedPrecision
+ Decorate 151 RelaxedPrecision
+ Decorate 152(mask1) RelaxedPrecision
+ Decorate 154(mask2) RelaxedPrecision
+ Decorate 156(mask3) RelaxedPrecision
+ Decorate 157 RelaxedPrecision
+ Decorate 159 RelaxedPrecision
+ Decorate 160(mask4) RelaxedPrecision
+ Decorate 162 RelaxedPrecision
+ Decorate 163 RelaxedPrecision
+ Decorate 167 RelaxedPrecision
+ Decorate 168 RelaxedPrecision
+ Decorate 169 RelaxedPrecision
+ Decorate 170 RelaxedPrecision
+ Decorate 171 RelaxedPrecision
+ Decorate 175 RelaxedPrecision
+ Decorate 176 RelaxedPrecision
+ Decorate 177 RelaxedPrecision
+ Decorate 178 RelaxedPrecision
+ Decorate 179 RelaxedPrecision
+ Decorate 180 RelaxedPrecision
+ Decorate 184 RelaxedPrecision
+ Decorate 185 RelaxedPrecision
+ Decorate 186 RelaxedPrecision
+ Decorate 187 RelaxedPrecision
+ Decorate 188 RelaxedPrecision
+ Decorate 192 RelaxedPrecision
+ Decorate 193 RelaxedPrecision
+ Decorate 194 RelaxedPrecision
+ Decorate 195 RelaxedPrecision
+ Decorate 196 RelaxedPrecision
+ Decorate 197 RelaxedPrecision
+ Decorate 198 RelaxedPrecision
+ Decorate 200(f) RelaxedPrecision
+ Decorate 202(v) RelaxedPrecision
+ Decorate 202(v) Flat
+ Decorate 204(i) RelaxedPrecision
+ Decorate 204(i) Flat
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypePointer Function 6(int)
+ 9: 6(int) Constant 1
+ 10: TypeInt 32 0
+ 11: TypePointer Function 10(int)
+ 13: TypeVector 10(int) 2
+ 14: TypePointer Input 13(ivec2)
+ 15(t): 14(ptr) Variable Input
+ 16: 10(int) Constant 1
+ 17: TypePointer Input 10(int)
+ 20: 10(int) Constant 3
+ 22: TypeBool
+ 23: 22(bool) ConstantTrue
+ 26: 6(int) Constant 2
+ 31: 6(int) Constant 3
+ 34: 22(bool) ConstantFalse
+ 37: 6(int) Constant 5
+ 42: 6(int) Constant 7
+ 47: 6(int) Constant 11
+ 52: 6(int) Constant 13
+ 56: 6(int) Constant 4294967295
+ 58: 10(int) Constant 4194303
+ 66: TypeVector 10(int) 4
+ 67: TypePointer Output 66(ivec4)
+ 68(c): 67(ptr) Variable Output
+ 69: TypeImage 10(int) 2D sampled format:Unknown
+ 70: TypeSampledImage 69
+ 71: TypePointer UniformConstant 70
+ 72(usampler): 71(ptr) Variable UniformConstant
+ 74: TypeFloat 32
+ 75: TypeVector 74(float) 2
+ 76: TypePointer Input 75(fvec2)
+ 77(tc): 76(ptr) Variable Input
+ 87: 74(float) Constant 1065353216
+ 99: 74(float) Constant 1073741824
+ 100: 75(fvec2) ConstantComposite 99 99
+ 103: 10(int) Constant 0
+ 106: 10(int) Constant 4
+ 110: TypePointer Function 74(float)
+ 114: TypePointer Function 22(bool)
+ 134: 6(int) Constant 17
+ 139: 6(int) Constant 19
+ 144: 6(int) Constant 23
+ 149: 6(int) Constant 27
+ 153: 10(int) Constant 161
+ 155: 10(int) Constant 2576
+ 158: 6(int) Constant 4
+ 161: 10(int) Constant 2737
+ 199: TypePointer Input 74(float)
+ 200(f): 199(ptr) Variable Input
+ 201: TypePointer Input 66(ivec4)
+ 202(v): 201(ptr) Variable Input
+ 203: TypePointer Input 6(int)
+ 204(i): 203(ptr) Variable Input
+ 205: TypePointer Private 22(bool)
+ 206(b): 205(ptr) Variable Private
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(count): 7(ptr) Variable Function
+ 12(u): 11(ptr) Variable Function
+ 55(shiftedii): 7(ptr) Variable Function
+ 57(shiftedui): 11(ptr) Variable Function
+ 59(shiftediu): 7(ptr) Variable Function
+ 60(shifteduu): 11(ptr) Variable Function
+ 111(af): 110(ptr) Variable Function
+ 115(ab): 114(ptr) Variable Function
+ 118(ai): 7(ptr) Variable Function
+ 152(mask1): 11(ptr) Variable Function
+ 154(mask2): 11(ptr) Variable Function
+ 156(mask3): 11(ptr) Variable Function
+ 160(mask4): 11(ptr) Variable Function
+ Store 8(count) 9
+ 18: 17(ptr) AccessChain 15(t) 16
+ 19: 10(int) Load 18
+ 21: 10(int) IAdd 19 20
+ Store 12(u) 21
+ SelectionMerge 25 None
+ BranchConditional 23 24 25
+ 24: Label
+ 27: 6(int) Load 8(count)
+ 28: 6(int) IMul 27 26
+ Store 8(count) 28
+ Branch 25
+ 25: Label
+ SelectionMerge 30 None
+ BranchConditional 23 29 30
+ 29: Label
+ 32: 6(int) Load 8(count)
+ 33: 6(int) IMul 32 31
+ Store 8(count) 33
+ Branch 30
+ 30: Label
+ SelectionMerge 36 None
+ BranchConditional 34 35 36
+ 35: Label
+ 38: 6(int) Load 8(count)
+ 39: 6(int) IMul 38 37
+ Store 8(count) 39
+ Branch 36
+ 36: Label
+ SelectionMerge 41 None
+ BranchConditional 23 40 41
+ 40: Label
+ 43: 6(int) Load 8(count)
+ 44: 6(int) IMul 43 42
+ Store 8(count) 44
+ Branch 41
+ 41: Label
+ SelectionMerge 46 None
+ BranchConditional 23 45 46
+ 45: Label
+ 48: 6(int) Load 8(count)
+ 49: 6(int) IMul 48 47
+ Store 8(count) 49
+ Branch 46
+ 46: Label
+ SelectionMerge 51 None
+ BranchConditional 34 50 51
+ 50: Label
+ 53: 6(int) Load 8(count)
+ 54: 6(int) IMul 53 52
+ Store 8(count) 54
+ Branch 51
+ 51: Label
+ Store 55(shiftedii) 56
+ Store 57(shiftedui) 58
+ Store 59(shiftediu) 56
+ Store 60(shifteduu) 58
+ 61: 6(int) Load 55(shiftedii)
+ 62: 6(int) Load 59(shiftediu)
+ 63: 22(bool) IEqual 61 62
+ SelectionMerge 65 None
+ BranchConditional 63 64 65
+ 64: Label
+ 73: 70 Load 72(usampler)
+ 78: 75(fvec2) Load 77(tc)
+ 79: 66(ivec4) ImageSampleImplicitLod 73 78
+ Store 68(c) 79
+ Branch 65
+ 65: Label
+ 80: 10(int) Load 57(shiftedui)
+ 81: 10(int) Load 60(shifteduu)
+ 82: 22(bool) IEqual 80 81
+ SelectionMerge 84 None
+ BranchConditional 82 83 84
+ 83: Label
+ 85: 70 Load 72(usampler)
+ 86: 75(fvec2) Load 77(tc)
+ 88: 75(fvec2) CompositeConstruct 87 87
+ 89: 75(fvec2) FAdd 86 88
+ 90: 66(ivec4) ImageSampleImplicitLod 85 89
+ Store 68(c) 90
+ Branch 84
+ 84: Label
+ 91: 6(int) Load 55(shiftedii)
+ 92: 10(int) Load 57(shiftedui)
+ 93: 6(int) Bitcast 92
+ 94: 22(bool) IEqual 91 93
+ SelectionMerge 96 None
+ BranchConditional 94 95 96
+ 95: Label
+ 97: 70 Load 72(usampler)
+ 98: 75(fvec2) Load 77(tc)
+ 101: 75(fvec2) FSub 98 100
+ 102: 66(ivec4) ImageSampleImplicitLod 97 101
+ Store 68(c) 102
+ Branch 96
+ 96: Label
+ 104: 17(ptr) AccessChain 15(t) 103
+ 105: 10(int) Load 104
+ 107: 22(bool) UGreaterThan 105 106
+ SelectionMerge 109 None
+ BranchConditional 107 108 109
+ 108: Label
+ 112: 10(int) Load 12(u)
+ 113: 74(float) ConvertUToF 112
+ Store 111(af) 113
+ 116: 10(int) Load 12(u)
+ 117: 22(bool) INotEqual 116 103
+ Store 115(ab) 117
+ 119: 10(int) Load 12(u)
+ 120: 6(int) Bitcast 119
+ Store 118(ai) 120
+ 121: 74(float) Load 111(af)
+ 122: 10(int) ConvertFToU 121
+ 123: 22(bool) Load 115(ab)
+ 124: 10(int) Select 123 16 103
+ 125: 6(int) Load 118(ai)
+ 126: 10(int) Bitcast 125
+ 127: 6(int) Load 8(count)
+ 128: 10(int) Bitcast 127
+ 129: 66(ivec4) CompositeConstruct 122 124 126 128
+ 130: 66(ivec4) Load 68(c)
+ 131: 66(ivec4) IAdd 130 129
+ Store 68(c) 131
+ Branch 109
+ 109: Label
+ SelectionMerge 133 None
+ BranchConditional 23 132 133
+ 132: Label
+ 135: 6(int) Load 8(count)
+ 136: 6(int) IMul 135 134
+ Store 8(count) 136
+ Branch 133
+ 133: Label
+ SelectionMerge 138 None
+ BranchConditional 34 137 138
+ 137: Label
+ 140: 6(int) Load 8(count)
+ 141: 6(int) IMul 140 139
+ Store 8(count) 141
+ Branch 138
+ 138: Label
+ SelectionMerge 143 None
+ BranchConditional 23 142 143
+ 142: Label
+ 145: 6(int) Load 8(count)
+ 146: 6(int) IMul 145 144
+ Store 8(count) 146
+ Branch 143
+ 143: Label
+ SelectionMerge 148 None
+ BranchConditional 23 147 148
+ 147: Label
+ 150: 6(int) Load 8(count)
+ 151: 6(int) IMul 150 149
+ Store 8(count) 151
+ Branch 148
+ 148: Label
+ Store 152(mask1) 153
+ Store 154(mask2) 155
+ 157: 10(int) Load 152(mask1)
+ 159: 10(int) ShiftLeftLogical 157 158
+ Store 156(mask3) 159
+ Store 160(mask4) 161
+ 162: 10(int) Load 156(mask3)
+ 163: 10(int) Load 154(mask2)
+ 164: 22(bool) IEqual 162 163
+ SelectionMerge 166 None
+ BranchConditional 164 165 166
+ 165: Label
+ 167: 6(int) Load 8(count)
+ 168: 6(int) IMul 167 26
+ Store 8(count) 168
+ Branch 166
+ 166: Label
+ 169: 10(int) Load 156(mask3)
+ 170: 10(int) Load 152(mask1)
+ 171: 10(int) BitwiseAnd 169 170
+ 172: 22(bool) INotEqual 171 103
+ SelectionMerge 174 None
+ BranchConditional 172 173 174
+ 173: Label
+ 175: 6(int) Load 8(count)
+ 176: 6(int) IMul 175 31
+ Store 8(count) 176
+ Branch 174
+ 174: Label
+ 177: 10(int) Load 152(mask1)
+ 178: 10(int) Load 156(mask3)
+ 179: 10(int) BitwiseOr 177 178
+ 180: 10(int) Load 160(mask4)
+ 181: 22(bool) IEqual 179 180
+ SelectionMerge 183 None
+ BranchConditional 181 182 183
+ 182: Label
+ 184: 6(int) Load 8(count)
+ 185: 6(int) IMul 184 37
+ Store 8(count) 185
+ Branch 183
+ 183: Label
+ 186: 10(int) Load 152(mask1)
+ 187: 10(int) Load 160(mask4)
+ 188: 10(int) BitwiseXor 186 187
+ 189: 22(bool) IEqual 188 155
+ SelectionMerge 191 None
+ BranchConditional 189 190 191
+ 190: Label
+ 192: 6(int) Load 8(count)
+ 193: 6(int) IMul 192 42
+ Store 8(count) 193
+ Branch 191
+ 191: Label
+ 194: 6(int) Load 8(count)
+ 195: 10(int) Bitcast 194
+ 196: 66(ivec4) CompositeConstruct 195 195 195 195
+ 197: 66(ivec4) Load 68(c)
+ 198: 66(ivec4) IAdd 197 196
+ Store 68(c) 198
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.uniformArray.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.uniformArray.frag.out
new file mode 100644
index 00000000000..e66eda6b109
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.uniformArray.frag.out
@@ -0,0 +1,80 @@
+spv.uniformArray.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 53
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 14 25 35 47
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 140
+ Name 4 "main"
+ Name 9 "texColor"
+ Name 14 "color"
+ Name 25 "inColor"
+ Name 35 "alpha"
+ Name 47 "gl_FragColor"
+ Name 52 "texSampler2D"
+ Decorate 52(texSampler2D) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+ 10: TypeInt 32 0
+ 11: 10(int) Constant 6
+ 12: TypeArray 7(fvec4) 11
+ 13: TypePointer Input 12
+ 14(color): 13(ptr) Variable Input
+ 15: TypeInt 32 1
+ 16: 15(int) Constant 1
+ 17: TypePointer Input 7(fvec4)
+ 23: TypeVector 6(float) 3
+ 24: TypePointer Input 23(fvec3)
+ 25(inColor): 24(ptr) Variable Input
+ 32: 10(int) Constant 16
+ 33: TypeArray 6(float) 32
+ 34: TypePointer Input 33
+ 35(alpha): 34(ptr) Variable Input
+ 36: 15(int) Constant 12
+ 37: TypePointer Input 6(float)
+ 40: 10(int) Constant 3
+ 41: TypePointer Function 6(float)
+ 46: TypePointer Output 7(fvec4)
+47(gl_FragColor): 46(ptr) Variable Output
+ 49: TypeImage 6(float) 2D sampled format:Unknown
+ 50: TypeSampledImage 49
+ 51: TypePointer UniformConstant 50
+52(texSampler2D): 51(ptr) Variable UniformConstant
+ 4(main): 2 Function None 3
+ 5: Label
+ 9(texColor): 8(ptr) Variable Function
+ 18: 17(ptr) AccessChain 14(color) 16
+ 19: 7(fvec4) Load 18
+ 20: 17(ptr) AccessChain 14(color) 16
+ 21: 7(fvec4) Load 20
+ 22: 7(fvec4) FAdd 19 21
+ Store 9(texColor) 22
+ 26: 23(fvec3) Load 25(inColor)
+ 27: 7(fvec4) Load 9(texColor)
+ 28: 23(fvec3) VectorShuffle 27 27 0 1 2
+ 29: 23(fvec3) FAdd 28 26
+ 30: 7(fvec4) Load 9(texColor)
+ 31: 7(fvec4) VectorShuffle 30 29 4 5 6 3
+ Store 9(texColor) 31
+ 38: 37(ptr) AccessChain 35(alpha) 36
+ 39: 6(float) Load 38
+ 42: 41(ptr) AccessChain 9(texColor) 40
+ 43: 6(float) Load 42
+ 44: 6(float) FAdd 43 39
+ 45: 41(ptr) AccessChain 9(texColor) 40
+ Store 45 44
+ 48: 7(fvec4) Load 9(texColor)
+ Store 47(gl_FragColor) 48
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.variableArrayIndex.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.variableArrayIndex.frag.out
new file mode 100755
index 00000000000..43df45f52c0
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.variableArrayIndex.frag.out
@@ -0,0 +1,172 @@
+spv.variableArrayIndex.frag
+Warning, version 400 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 97
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 10 21 37 40 58 67
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 400
+ Name 4 "main"
+ Name 8 "iLocal"
+ Name 10 "Count"
+ Name 13 "lunarStruct1"
+ MemberName 13(lunarStruct1) 0 "i"
+ MemberName 13(lunarStruct1) 1 "f"
+ Name 14 "lunarStruct2"
+ MemberName 14(lunarStruct2) 0 "i"
+ MemberName 14(lunarStruct2) 1 "f"
+ MemberName 14(lunarStruct2) 2 "s1_1"
+ Name 18 "lunarStruct1"
+ MemberName 18(lunarStruct1) 0 "i"
+ MemberName 18(lunarStruct1) 1 "f"
+ Name 19 "lunarStruct3"
+ MemberName 19(lunarStruct3) 0 "s2_1"
+ MemberName 19(lunarStruct3) 1 "i"
+ MemberName 19(lunarStruct3) 2 "f"
+ MemberName 19(lunarStruct3) 3 "s1_1"
+ Name 21 "foo3"
+ Name 31 "scale"
+ Name 32 "lunarStruct1"
+ MemberName 32(lunarStruct1) 0 "i"
+ MemberName 32(lunarStruct1) 1 "f"
+ Name 33 "lunarStruct2"
+ MemberName 33(lunarStruct2) 0 "i"
+ MemberName 33(lunarStruct2) 1 "f"
+ MemberName 33(lunarStruct2) 2 "s1_1"
+ Name 37 "foo2"
+ Name 38 "lunarStruct1"
+ MemberName 38(lunarStruct1) 0 "i"
+ MemberName 38(lunarStruct1) 1 "f"
+ Name 40 "foo"
+ Name 58 "gl_FragColor"
+ Name 63 "samp2D"
+ Name 67 "coord"
+ Name 73 "constructed"
+ Decorate 10(Count) Flat
+ MemberDecorate 19(lunarStruct3) 0 Flat
+ MemberDecorate 19(lunarStruct3) 1 Flat
+ MemberDecorate 19(lunarStruct3) 2 Flat
+ MemberDecorate 19(lunarStruct3) 3 Flat
+ MemberDecorate 33(lunarStruct2) 0 Flat
+ MemberDecorate 33(lunarStruct2) 1 Flat
+ MemberDecorate 33(lunarStruct2) 2 Flat
+ MemberDecorate 38(lunarStruct1) 0 Flat
+ MemberDecorate 38(lunarStruct1) 1 Flat
+ Decorate 63(samp2D) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypePointer Function 6(int)
+ 9: TypePointer Input 6(int)
+ 10(Count): 9(ptr) Variable Input
+ 12: TypeFloat 32
+13(lunarStruct1): TypeStruct 6(int) 12(float)
+14(lunarStruct2): TypeStruct 6(int) 12(float) 13(lunarStruct1)
+ 15: TypeInt 32 0
+ 16: 15(int) Constant 3
+ 17: TypeArray 14(lunarStruct2) 16
+18(lunarStruct1): TypeStruct 6(int) 12(float)
+19(lunarStruct3): TypeStruct 17 6(int) 12(float) 18(lunarStruct1)
+ 20: TypePointer Input 19(lunarStruct3)
+ 21(foo3): 20(ptr) Variable Input
+ 22: 6(int) Constant 0
+ 23: 6(int) Constant 1
+ 26: TypeBool
+ 30: TypePointer Function 12(float)
+32(lunarStruct1): TypeStruct 6(int) 12(float)
+33(lunarStruct2): TypeStruct 6(int) 12(float) 32(lunarStruct1)
+ 34: 15(int) Constant 5
+ 35: TypeArray 33(lunarStruct2) 34
+ 36: TypePointer Input 35
+ 37(foo2): 36(ptr) Variable Input
+38(lunarStruct1): TypeStruct 6(int) 12(float)
+ 39: TypePointer Input 38(lunarStruct1)
+ 40(foo): 39(ptr) Variable Input
+ 45: 6(int) Constant 2
+ 50: TypePointer Input 12(float)
+ 56: TypeVector 12(float) 4
+ 57: TypePointer Output 56(fvec4)
+58(gl_FragColor): 57(ptr) Variable Output
+ 60: TypeImage 12(float) 2D sampled format:Unknown
+ 61: TypeSampledImage 60
+ 62: TypePointer UniformConstant 61
+ 63(samp2D): 62(ptr) Variable UniformConstant
+ 65: TypeVector 12(float) 2
+ 66: TypePointer Input 65(fvec2)
+ 67(coord): 66(ptr) Variable Input
+ 71: TypeArray 65(fvec2) 16
+ 72: TypePointer Function 71
+ 77: 12(float) Constant 1065353216
+ 78: 12(float) Constant 1073741824
+ 79: 65(fvec2) ConstantComposite 77 78
+ 83: TypePointer Function 65(fvec2)
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(iLocal): 7(ptr) Variable Function
+ 31(scale): 30(ptr) Variable Function
+ 73(constructed): 72(ptr) Variable Function
+ 11: 6(int) Load 10(Count)
+ Store 8(iLocal) 11
+ 24: 9(ptr) AccessChain 21(foo3) 22 23 22
+ 25: 6(int) Load 24
+ 27: 26(bool) SGreaterThan 25 22
+ SelectionMerge 29 None
+ BranchConditional 27 28 53
+ 28: Label
+ 41: 9(ptr) AccessChain 40(foo) 22
+ 42: 6(int) Load 41
+ 43: 9(ptr) AccessChain 21(foo3) 22 42 22
+ 44: 6(int) Load 43
+ 46: 6(int) IAdd 44 45
+ 47: 6(int) Load 8(iLocal)
+ 48: 6(int) IAdd 47 23
+ Store 8(iLocal) 48
+ 49: 6(int) IAdd 46 48
+ 51: 50(ptr) AccessChain 37(foo2) 49 45 23
+ 52: 12(float) Load 51
+ Store 31(scale) 52
+ Branch 29
+ 53: Label
+ 54: 50(ptr) AccessChain 21(foo3) 22 22 45 23
+ 55: 12(float) Load 54
+ Store 31(scale) 55
+ Branch 29
+ 29: Label
+ 59: 12(float) Load 31(scale)
+ 64: 61 Load 63(samp2D)
+ 68: 65(fvec2) Load 67(coord)
+ 69: 56(fvec4) ImageSampleImplicitLod 64 68
+ 70: 56(fvec4) VectorTimesScalar 69 59
+ Store 58(gl_FragColor) 70
+ 74: 65(fvec2) Load 67(coord)
+ 75: 12(float) Load 31(scale)
+ 76: 65(fvec2) CompositeConstruct 75 75
+ 80: 71 CompositeConstruct 74 76 79
+ Store 73(constructed) 80
+ 81: 9(ptr) AccessChain 40(foo) 22
+ 82: 6(int) Load 81
+ 84: 83(ptr) AccessChain 73(constructed) 82
+ 85: 65(fvec2) Load 84
+ 86: 9(ptr) AccessChain 40(foo) 22
+ 87: 6(int) Load 86
+ 88: 83(ptr) AccessChain 73(constructed) 87
+ 89: 65(fvec2) Load 88
+ 90: 12(float) CompositeExtract 85 0
+ 91: 12(float) CompositeExtract 85 1
+ 92: 12(float) CompositeExtract 89 0
+ 93: 12(float) CompositeExtract 89 1
+ 94: 56(fvec4) CompositeConstruct 90 91 92 93
+ 95: 56(fvec4) Load 58(gl_FragColor)
+ 96: 56(fvec4) FAdd 95 94
+ Store 58(gl_FragColor) 96
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.varyingArray.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.varyingArray.frag.out
new file mode 100755
index 00000000000..4a7d2ee6268
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.varyingArray.frag.out
@@ -0,0 +1,89 @@
+spv.varyingArray.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 61
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 19 34 39 45 48
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 140
+ Name 4 "main"
+ Name 9 "texColor"
+ Name 13 "texSampler2D"
+ Name 19 "TexCoord"
+ Name 34 "color"
+ Name 39 "alpha"
+ Name 45 "gl_FragColor"
+ Name 48 "foo"
+ Decorate 13(texSampler2D) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+ 10: TypeImage 6(float) 2D sampled format:Unknown
+ 11: TypeSampledImage 10
+ 12: TypePointer UniformConstant 11
+13(texSampler2D): 12(ptr) Variable UniformConstant
+ 15: TypeInt 32 0
+ 16: 15(int) Constant 6
+ 17: TypeArray 7(fvec4) 16
+ 18: TypePointer Input 17
+ 19(TexCoord): 18(ptr) Variable Input
+ 20: TypeInt 32 1
+ 21: 20(int) Constant 4
+ 22: TypePointer Input 7(fvec4)
+ 25: 20(int) Constant 5
+ 29: TypeVector 6(float) 2
+ 34(color): 22(ptr) Variable Input
+ 38: TypePointer Input 6(float)
+ 39(alpha): 38(ptr) Variable Input
+ 41: 15(int) Constant 3
+ 42: TypePointer Function 6(float)
+ 44: TypePointer Output 7(fvec4)
+45(gl_FragColor): 44(ptr) Variable Output
+ 46: TypeArray 7(fvec4) 41
+ 47: TypePointer Input 46
+ 48(foo): 47(ptr) Variable Input
+ 49: 20(int) Constant 1
+ 52: 20(int) Constant 0
+ 4(main): 2 Function None 3
+ 5: Label
+ 9(texColor): 8(ptr) Variable Function
+ 14: 11 Load 13(texSampler2D)
+ 23: 22(ptr) AccessChain 19(TexCoord) 21
+ 24: 7(fvec4) Load 23
+ 26: 22(ptr) AccessChain 19(TexCoord) 25
+ 27: 7(fvec4) Load 26
+ 28: 7(fvec4) FAdd 24 27
+ 30: 6(float) CompositeExtract 28 0
+ 31: 6(float) CompositeExtract 28 1
+ 32: 29(fvec2) CompositeConstruct 30 31
+ 33: 7(fvec4) ImageSampleImplicitLod 14 32
+ Store 9(texColor) 33
+ 35: 7(fvec4) Load 34(color)
+ 36: 7(fvec4) Load 9(texColor)
+ 37: 7(fvec4) FAdd 36 35
+ Store 9(texColor) 37
+ 40: 6(float) Load 39(alpha)
+ 43: 42(ptr) AccessChain 9(texColor) 41
+ Store 43 40
+ 50: 22(ptr) AccessChain 48(foo) 49
+ 51: 7(fvec4) Load 50
+ 53: 22(ptr) AccessChain 19(TexCoord) 52
+ 54: 7(fvec4) Load 53
+ 55: 7(fvec4) FAdd 51 54
+ 56: 22(ptr) AccessChain 19(TexCoord) 21
+ 57: 7(fvec4) Load 56
+ 58: 7(fvec4) FAdd 55 57
+ 59: 7(fvec4) Load 9(texColor)
+ 60: 7(fvec4) FAdd 58 59
+ Store 45(gl_FragColor) 60
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.varyingArrayIndirect.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.varyingArrayIndirect.frag.out
new file mode 100755
index 00000000000..410fd3c46a1
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.varyingArrayIndirect.frag.out
@@ -0,0 +1,102 @@
+spv.varyingArrayIndirect.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 70
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 19 22 30 31 45 50 56
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 140
+ Name 4 "main"
+ Name 9 "texColor"
+ Name 13 "texSampler2D"
+ Name 19 "userIn"
+ Name 22 "b"
+ Name 30 "TexCoord"
+ Name 31 "a"
+ Name 45 "color"
+ Name 50 "alpha"
+ Name 56 "gl_FragColor"
+ Decorate 13(texSampler2D) DescriptorSet 0
+ Decorate 22(b) Flat
+ Decorate 31(a) Flat
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+ 10: TypeImage 6(float) 2D sampled format:Unknown
+ 11: TypeSampledImage 10
+ 12: TypePointer UniformConstant 11
+13(texSampler2D): 12(ptr) Variable UniformConstant
+ 15: TypeInt 32 0
+ 16: 15(int) Constant 2
+ 17: TypeArray 7(fvec4) 16
+ 18: TypePointer Input 17
+ 19(userIn): 18(ptr) Variable Input
+ 20: TypeInt 32 1
+ 21: TypePointer Input 20(int)
+ 22(b): 21(ptr) Variable Input
+ 24: TypePointer Input 7(fvec4)
+ 27: 15(int) Constant 6
+ 28: TypeArray 7(fvec4) 27
+ 29: TypePointer Input 28
+ 30(TexCoord): 29(ptr) Variable Input
+ 31(a): 21(ptr) Variable Input
+ 36: 20(int) Constant 5
+ 40: TypeVector 6(float) 2
+ 45(color): 24(ptr) Variable Input
+ 49: TypePointer Input 6(float)
+ 50(alpha): 49(ptr) Variable Input
+ 52: 15(int) Constant 3
+ 53: TypePointer Function 6(float)
+ 55: TypePointer Output 7(fvec4)
+56(gl_FragColor): 55(ptr) Variable Output
+ 57: 20(int) Constant 0
+ 4(main): 2 Function None 3
+ 5: Label
+ 9(texColor): 8(ptr) Variable Function
+ 14: 11 Load 13(texSampler2D)
+ 23: 20(int) Load 22(b)
+ 25: 24(ptr) AccessChain 19(userIn) 23
+ 26: 7(fvec4) Load 25
+ 32: 20(int) Load 31(a)
+ 33: 24(ptr) AccessChain 30(TexCoord) 32
+ 34: 7(fvec4) Load 33
+ 35: 7(fvec4) FAdd 26 34
+ 37: 24(ptr) AccessChain 30(TexCoord) 36
+ 38: 7(fvec4) Load 37
+ 39: 7(fvec4) FAdd 35 38
+ 41: 6(float) CompositeExtract 39 0
+ 42: 6(float) CompositeExtract 39 1
+ 43: 40(fvec2) CompositeConstruct 41 42
+ 44: 7(fvec4) ImageSampleImplicitLod 14 43
+ Store 9(texColor) 44
+ 46: 7(fvec4) Load 45(color)
+ 47: 7(fvec4) Load 9(texColor)
+ 48: 7(fvec4) FAdd 47 46
+ Store 9(texColor) 48
+ 51: 6(float) Load 50(alpha)
+ 54: 53(ptr) AccessChain 9(texColor) 52
+ Store 54 51
+ 58: 24(ptr) AccessChain 30(TexCoord) 57
+ 59: 7(fvec4) Load 58
+ 60: 20(int) Load 22(b)
+ 61: 24(ptr) AccessChain 30(TexCoord) 60
+ 62: 7(fvec4) Load 61
+ 63: 7(fvec4) FAdd 59 62
+ 64: 7(fvec4) Load 9(texColor)
+ 65: 7(fvec4) FAdd 63 64
+ 66: 20(int) Load 31(a)
+ 67: 24(ptr) AccessChain 19(userIn) 66
+ 68: 7(fvec4) Load 67
+ 69: 7(fvec4) FAdd 65 68
+ Store 56(gl_FragColor) 69
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.voidFunction.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.voidFunction.frag.out
new file mode 100755
index 00000000000..1d4b694b3fe
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.voidFunction.frag.out
@@ -0,0 +1,77 @@
+spv.voidFunction.frag
+Warning, version 400 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 43
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 24 37 40 42
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 400
+ Name 4 "main"
+ Name 6 "foo("
+ Name 8 "foo2("
+ Name 12 "bar"
+ Name 22 "outColor"
+ Name 24 "bigColor"
+ Name 37 "gl_FragColor"
+ Name 40 "BaseColor"
+ Name 42 "d"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 10: TypeFloat 32
+ 11: TypePointer Private 10(float)
+ 12(bar): 11(ptr) Variable Private
+ 13: 10(float) Constant 1073741824
+ 15: 10(float) Constant 1065353216
+ 20: TypeVector 10(float) 4
+ 21: TypePointer Function 20(fvec4)
+ 23: TypePointer Input 20(fvec4)
+ 24(bigColor): 23(ptr) Variable Input
+ 29: TypeInt 32 0
+ 30: 29(int) Constant 0
+ 31: TypePointer Function 10(float)
+ 36: TypePointer Output 20(fvec4)
+37(gl_FragColor): 36(ptr) Variable Output
+ 40(BaseColor): 23(ptr) Variable Input
+ 41: TypePointer Input 10(float)
+ 42(d): 41(ptr) Variable Input
+ 4(main): 2 Function None 3
+ 5: Label
+ 22(outColor): 21(ptr) Variable Function
+ Store 12(bar) 13
+ 25: 20(fvec4) Load 24(bigColor)
+ Store 22(outColor) 25
+ 26: 2 FunctionCall 6(foo()
+ 27: 2 FunctionCall 8(foo2()
+ 28: 10(float) Load 12(bar)
+ 32: 31(ptr) AccessChain 22(outColor) 30
+ 33: 10(float) Load 32
+ 34: 10(float) FAdd 33 28
+ 35: 31(ptr) AccessChain 22(outColor) 30
+ Store 35 34
+ 38: 20(fvec4) Load 22(outColor)
+ Store 37(gl_FragColor) 38
+ Return
+ FunctionEnd
+ 6(foo(): 2 Function None 3
+ 7: Label
+ 14: 10(float) Load 12(bar)
+ 16: 10(float) FAdd 14 15
+ Store 12(bar) 16
+ Return
+ FunctionEnd
+ 8(foo2(): 2 Function None 3
+ 9: Label
+ 18: 10(float) Load 12(bar)
+ 19: 10(float) FAdd 18 15
+ Store 12(bar) 19
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.while-continue-break.vert.out b/chromium/third_party/glslang/src/Test/baseResults/spv.while-continue-break.vert.out
new file mode 100644
index 00000000000..2ec331024b0
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.while-continue-break.vert.out
@@ -0,0 +1,79 @@
+spv.while-continue-break.vert
+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 41
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Vertex 4 "main"
+ Source ESSL 310
+ Name 4 "main"
+ Name 8 "i"
+ Name 19 "A"
+ Name 27 "B"
+ Name 29 "C"
+ Name 39 "D"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypePointer Function 6(int)
+ 9: 6(int) Constant 0
+ 16: 6(int) Constant 10
+ 17: TypeBool
+ 20: 6(int) Constant 1
+ 22: 6(int) Constant 2
+ 31: 6(int) Constant 5
+ 40: 6(int) Constant 3
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(i): 7(ptr) Variable Function
+ 19(A): 7(ptr) Variable Function
+ 27(B): 7(ptr) Variable Function
+ 29(C): 7(ptr) Variable Function
+ 39(D): 7(ptr) Variable Function
+ Store 8(i) 9
+ Branch 10
+ 10: Label
+ LoopMerge 12 13 None
+ Branch 14
+ 14: Label
+ 15: 6(int) Load 8(i)
+ 18: 17(bool) SLessThan 15 16
+ BranchConditional 18 11 12
+ 11: Label
+ Store 19(A) 20
+ 21: 6(int) Load 8(i)
+ 23: 6(int) SMod 21 22
+ 24: 17(bool) IEqual 23 9
+ SelectionMerge 26 None
+ BranchConditional 24 25 26
+ 25: Label
+ Store 27(B) 22
+ Branch 13
+ 26: Label
+ 30: 6(int) Load 8(i)
+ 32: 6(int) SMod 30 31
+ 33: 17(bool) IEqual 32 9
+ SelectionMerge 35 None
+ BranchConditional 33 34 35
+ 34: Label
+ Store 27(B) 22
+ Branch 12
+ 35: Label
+ 37: 6(int) Load 8(i)
+ 38: 6(int) IAdd 37 20
+ Store 8(i) 38
+ Branch 13
+ 13: Label
+ Branch 10
+ 12: Label
+ Store 39(D) 40
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.while-simple.vert.out b/chromium/third_party/glslang/src/Test/baseResults/spv.while-simple.vert.out
new file mode 100755
index 00000000000..0c1c822179f
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.while-simple.vert.out
@@ -0,0 +1,48 @@
+spv.while-simple.vert
+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 22
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Vertex 4 "main"
+ Source ESSL 310
+ Name 4 "main"
+ Name 8 "i"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypePointer Function 6(int)
+ 9: 6(int) Constant 0
+ 16: 6(int) Constant 10
+ 17: TypeBool
+ 20: 6(int) Constant 1
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(i): 7(ptr) Variable Function
+ Store 8(i) 9
+ Branch 10
+ 10: Label
+ LoopMerge 12 13 None
+ Branch 14
+ 14: Label
+ 15: 6(int) Load 8(i)
+ 18: 17(bool) SLessThan 15 16
+ BranchConditional 18 11 12
+ 11: Label
+ 19: 6(int) Load 8(i)
+ 21: 6(int) IAdd 19 20
+ Store 8(i) 21
+ Branch 13
+ 13: Label
+ Branch 10
+ 12: Label
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/spv.whileLoop.frag.out b/chromium/third_party/glslang/src/Test/baseResults/spv.whileLoop.frag.out
new file mode 100755
index 00000000000..8de5e956e0d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/spv.whileLoop.frag.out
@@ -0,0 +1,65 @@
+spv.whileLoop.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 35
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 11 24 28 33
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 140
+ Name 4 "main"
+ Name 9 "color"
+ Name 11 "BaseColor"
+ Name 24 "d"
+ Name 28 "bigColor"
+ Name 33 "gl_FragColor"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+ 10: TypePointer Input 7(fvec4)
+ 11(BaseColor): 10(ptr) Variable Input
+ 18: TypeInt 32 0
+ 19: 18(int) Constant 0
+ 20: TypePointer Function 6(float)
+ 23: TypePointer Input 6(float)
+ 24(d): 23(ptr) Variable Input
+ 26: TypeBool
+ 28(bigColor): 10(ptr) Variable Input
+ 32: TypePointer Output 7(fvec4)
+33(gl_FragColor): 32(ptr) Variable Output
+ 4(main): 2 Function None 3
+ 5: Label
+ 9(color): 8(ptr) Variable Function
+ 12: 7(fvec4) Load 11(BaseColor)
+ Store 9(color) 12
+ Branch 13
+ 13: Label
+ LoopMerge 15 16 None
+ Branch 17
+ 17: Label
+ 21: 20(ptr) AccessChain 9(color) 19
+ 22: 6(float) Load 21
+ 25: 6(float) Load 24(d)
+ 27: 26(bool) FOrdLessThan 22 25
+ BranchConditional 27 14 15
+ 14: Label
+ 29: 7(fvec4) Load 28(bigColor)
+ 30: 7(fvec4) Load 9(color)
+ 31: 7(fvec4) FAdd 30 29
+ Store 9(color) 31
+ Branch 16
+ 16: Label
+ Branch 13
+ 15: Label
+ 34: 7(fvec4) Load 9(color)
+ Store 33(gl_FragColor) 34
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/structAssignment.frag.out b/chromium/third_party/glslang/src/Test/baseResults/structAssignment.frag.out
new file mode 100644
index 00000000000..75cc44c2b6b
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/structAssignment.frag.out
@@ -0,0 +1,103 @@
+structAssignment.frag
+WARNING: 0:4: varying deprecated in version 130; may be removed in future release
+
+Shader version: 130
+0:? Sequence
+0:29 Function Definition: main( (global void)
+0:29 Function Parameters:
+0:? Sequence
+0:33 Test condition and select (temp void)
+0:33 Condition
+0:33 Compare Greater Than (temp bool)
+0:33 i: direct index for structure (global int)
+0:33 s2_1: direct index for structure (global structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:33 'foo3' (uniform structure{global structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
+0:33 Constant:
+0:33 0 (const int)
+0:33 Constant:
+0:33 0 (const int)
+0:33 Constant:
+0:33 0 (const int)
+0:33 true case
+0:34 move second child to first child (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:34 'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:34 s2_1: direct index for structure (global structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:34 'foo3' (uniform structure{global structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
+0:34 Constant:
+0:34 0 (const int)
+0:33 false case
+0:36 move second child to first child (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:36 'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:36 'foo2' (uniform structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:38 move second child to first child (temp 4-component vector of float)
+0:38 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:38 vector-scale (temp 4-component vector of float)
+0:38 f: direct index for structure (global float)
+0:38 s1_1: direct index for structure (global structure{global int i, global float f})
+0:38 'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:38 Constant:
+0:38 2 (const int)
+0:38 Constant:
+0:38 1 (const int)
+0:38 texture (global 4-component vector of float)
+0:38 'sampler' (uniform sampler2D)
+0:38 'coord' (smooth in 2-component vector of float)
+0:? Linker Objects
+0:? 'sampler' (uniform sampler2D)
+0:? 'coord' (smooth in 2-component vector of float)
+0:? 'foo' (uniform structure{global int i, global float f})
+0:? 'foo2' (uniform structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:? 'foo3' (uniform structure{global structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+0:? Sequence
+0:29 Function Definition: main( (global void)
+0:29 Function Parameters:
+0:? Sequence
+0:33 Test condition and select (temp void)
+0:33 Condition
+0:33 Compare Greater Than (temp bool)
+0:33 i: direct index for structure (global int)
+0:33 s2_1: direct index for structure (global structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:33 'foo3' (uniform structure{global structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
+0:33 Constant:
+0:33 0 (const int)
+0:33 Constant:
+0:33 0 (const int)
+0:33 Constant:
+0:33 0 (const int)
+0:33 true case
+0:34 move second child to first child (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:34 'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:34 s2_1: direct index for structure (global structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:34 'foo3' (uniform structure{global structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
+0:34 Constant:
+0:34 0 (const int)
+0:33 false case
+0:36 move second child to first child (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:36 'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:36 'foo2' (uniform structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:38 move second child to first child (temp 4-component vector of float)
+0:38 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:38 vector-scale (temp 4-component vector of float)
+0:38 f: direct index for structure (global float)
+0:38 s1_1: direct index for structure (global structure{global int i, global float f})
+0:38 'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:38 Constant:
+0:38 2 (const int)
+0:38 Constant:
+0:38 1 (const int)
+0:38 texture (global 4-component vector of float)
+0:38 'sampler' (uniform sampler2D)
+0:38 'coord' (smooth in 2-component vector of float)
+0:? Linker Objects
+0:? 'sampler' (uniform sampler2D)
+0:? 'coord' (smooth in 2-component vector of float)
+0:? 'foo' (uniform structure{global int i, global float f})
+0:? 'foo2' (uniform structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:? 'foo3' (uniform structure{global structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/structDeref.frag.out b/chromium/third_party/glslang/src/Test/baseResults/structDeref.frag.out
new file mode 100644
index 00000000000..fc9d3778e55
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/structDeref.frag.out
@@ -0,0 +1,345 @@
+structDeref.frag
+WARNING: 0:4: varying deprecated in version 130; may be removed in future release
+
+Shader version: 130
+0:? Sequence
+0:41 Function Definition: main( (global void)
+0:41 Function Parameters:
+0:? Sequence
+0:51 Test condition and select (temp void)
+0:51 Condition
+0:51 Compare Greater Than (temp bool)
+0:51 i: direct index for structure (global int)
+0:51 direct index (temp structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})
+0:51 s2_1: direct index for structure (global 12-element array of structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})
+0:51 'foo3' (uniform structure{global 12-element array of structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})
+0:51 Constant:
+0:51 0 (const int)
+0:51 Constant:
+0:51 9 (const int)
+0:51 Constant:
+0:51 0 (const int)
+0:51 Constant:
+0:51 0 (const int)
+0:51 true case
+0:52 Sequence
+0:52 move second child to first child (temp float)
+0:52 f: direct index for structure (global float)
+0:52 'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})
+0:52 Constant:
+0:52 1 (const int)
+0:52 Constant:
+0:52 1.000000
+0:53 move second child to first child (temp structure{global int i, global float f, global structure{global int i} s0_1})
+0:53 s1_1: direct index for structure (global structure{global int i, global float f, global structure{global int i} s0_1})
+0:53 'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})
+0:53 Constant:
+0:53 2 (const int)
+0:53 Constant:
+0:53 0 (const int)
+0:53 1.000000
+0:53 0 (const int)
+0:54 move second child to first child (temp 6-element array of float)
+0:54 'fArray' (temp 6-element array of float)
+0:54 Constant:
+0:54 0.000000
+0:54 0.000000
+0:54 0.000000
+0:54 0.000000
+0:54 0.000000
+0:54 0.000000
+0:55 move second child to first child (temp structure{global int i, global float f, global structure{global int i} s0_1})
+0:55 direct index (temp structure{global int i, global float f, global structure{global int i} s0_1})
+0:55 'locals1Array' (temp 10-element array of structure{global int i, global float f, global structure{global int i} s0_1})
+0:55 Constant:
+0:55 6 (const int)
+0:55 'foo1' (uniform structure{global int i, global float f, global structure{global int i} s0_1})
+0:56 move second child to first child (temp structure{global int i})
+0:56 'locals0' (temp structure{global int i})
+0:56 Constant:
+0:56 0 (const int)
+0:57 move second child to first child (temp structure{global structure{global int i} s0_0})
+0:57 'locals00' (temp structure{global structure{global int i} s0_0})
+0:57 Constant:
+0:57 0 (const int)
+0:51 false case
+0:59 Sequence
+0:59 move second child to first child (temp float)
+0:59 f: direct index for structure (global float)
+0:59 'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})
+0:59 Constant:
+0:59 1 (const int)
+0:59 direct index (temp float)
+0:59 'coord' (smooth in 2-component vector of float)
+0:59 Constant:
+0:59 0 (const int)
+0:60 move second child to first child (temp structure{global int i, global float f, global structure{global int i} s0_1})
+0:60 s1_1: direct index for structure (global structure{global int i, global float f, global structure{global int i} s0_1})
+0:60 'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})
+0:60 Constant:
+0:60 2 (const int)
+0:60 Construct structure (temp structure{global int i, global float f, global structure{global int i} s0_1})
+0:60 Constant:
+0:60 1 (const int)
+0:60 direct index (temp float)
+0:60 'coord' (smooth in 2-component vector of float)
+0:60 Constant:
+0:60 1 (const int)
+0:60 'foo0' (uniform structure{global int i})
+0:61 move second child to first child (temp 6-element array of float)
+0:61 'fArray' (temp 6-element array of float)
+0:61 Constant:
+0:61 0.000000
+0:61 1.000000
+0:61 2.000000
+0:61 3.000000
+0:61 4.000000
+0:61 5.000000
+0:62 move second child to first child (temp structure{global int i, global float f, global structure{global int i} s0_1})
+0:62 direct index (temp structure{global int i, global float f, global structure{global int i} s0_1})
+0:62 'locals1Array' (temp 10-element array of structure{global int i, global float f, global structure{global int i} s0_1})
+0:62 Constant:
+0:62 6 (const int)
+0:62 s1_1: direct index for structure (global structure{global int i, global float f, global structure{global int i} s0_1})
+0:62 'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})
+0:62 Constant:
+0:62 2 (const int)
+0:63 move second child to first child (temp structure{global int i})
+0:63 'locals0' (temp structure{global int i})
+0:63 s0_1: direct index for structure (global structure{global int i})
+0:63 'foo1' (uniform structure{global int i, global float f, global structure{global int i} s0_1})
+0:63 Constant:
+0:63 2 (const int)
+0:64 move second child to first child (temp structure{global structure{global int i} s0_0})
+0:64 'locals00' (temp structure{global structure{global int i} s0_0})
+0:64 'foo00' (uniform structure{global structure{global int i} s0_0})
+0:67 Test condition and select (temp void)
+0:67 Condition
+0:67 Compare Greater Than (temp bool)
+0:67 i: direct index for structure (global int)
+0:67 'locals0' (temp structure{global int i})
+0:67 Constant:
+0:67 0 (const int)
+0:67 Constant:
+0:67 5 (const int)
+0:67 true case
+0:68 move second child to first child (temp structure{global int i})
+0:68 'locals0' (temp structure{global int i})
+0:68 s0_0: direct index for structure (global structure{global int i})
+0:68 'locals00' (temp structure{global structure{global int i} s0_0})
+0:68 Constant:
+0:68 0 (const int)
+0:70 move second child to first child (temp 4-component vector of float)
+0:70 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:70 vector-scale (temp 4-component vector of float)
+0:70 add (temp float)
+0:70 add (temp float)
+0:70 add (temp float)
+0:70 Convert int to float (temp float)
+0:70 i: direct index for structure (global int)
+0:70 'locals0' (temp structure{global int i})
+0:70 Constant:
+0:70 0 (const int)
+0:70 f: direct index for structure (global float)
+0:70 direct index (temp structure{global int i, global float f, global structure{global int i} s0_1})
+0:70 'locals1Array' (temp 10-element array of structure{global int i, global float f, global structure{global int i} s0_1})
+0:70 Constant:
+0:70 6 (const int)
+0:70 Constant:
+0:70 1 (const int)
+0:70 direct index (temp float)
+0:70 'fArray' (temp 6-element array of float)
+0:70 Constant:
+0:70 3 (const int)
+0:70 f: direct index for structure (global float)
+0:70 s1_1: direct index for structure (global structure{global int i, global float f, global structure{global int i} s0_1})
+0:70 'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})
+0:70 Constant:
+0:70 2 (const int)
+0:70 Constant:
+0:70 1 (const int)
+0:70 texture (global 4-component vector of float)
+0:70 'sampler' (uniform sampler2D)
+0:70 'coord' (smooth in 2-component vector of float)
+0:? Linker Objects
+0:? 'sampler' (uniform sampler2D)
+0:? 'coord' (smooth in 2-component vector of float)
+0:? 'foo0' (uniform structure{global int i})
+0:? 'foo1' (uniform structure{global int i, global float f, global structure{global int i} s0_1})
+0:? 'foo2' (uniform structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})
+0:? 'foo3' (uniform structure{global 12-element array of structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})
+0:? 'foo00' (uniform structure{global structure{global int i} s0_0})
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+0:? Sequence
+0:41 Function Definition: main( (global void)
+0:41 Function Parameters:
+0:? Sequence
+0:51 Test condition and select (temp void)
+0:51 Condition
+0:51 Compare Greater Than (temp bool)
+0:51 i: direct index for structure (global int)
+0:51 direct index (temp structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})
+0:51 s2_1: direct index for structure (global 12-element array of structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})
+0:51 'foo3' (uniform structure{global 12-element array of structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})
+0:51 Constant:
+0:51 0 (const int)
+0:51 Constant:
+0:51 9 (const int)
+0:51 Constant:
+0:51 0 (const int)
+0:51 Constant:
+0:51 0 (const int)
+0:51 true case
+0:52 Sequence
+0:52 move second child to first child (temp float)
+0:52 f: direct index for structure (global float)
+0:52 'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})
+0:52 Constant:
+0:52 1 (const int)
+0:52 Constant:
+0:52 1.000000
+0:53 move second child to first child (temp structure{global int i, global float f, global structure{global int i} s0_1})
+0:53 s1_1: direct index for structure (global structure{global int i, global float f, global structure{global int i} s0_1})
+0:53 'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})
+0:53 Constant:
+0:53 2 (const int)
+0:53 Constant:
+0:53 0 (const int)
+0:53 1.000000
+0:53 0 (const int)
+0:54 move second child to first child (temp 6-element array of float)
+0:54 'fArray' (temp 6-element array of float)
+0:54 Constant:
+0:54 0.000000
+0:54 0.000000
+0:54 0.000000
+0:54 0.000000
+0:54 0.000000
+0:54 0.000000
+0:55 move second child to first child (temp structure{global int i, global float f, global structure{global int i} s0_1})
+0:55 direct index (temp structure{global int i, global float f, global structure{global int i} s0_1})
+0:55 'locals1Array' (temp 10-element array of structure{global int i, global float f, global structure{global int i} s0_1})
+0:55 Constant:
+0:55 6 (const int)
+0:55 'foo1' (uniform structure{global int i, global float f, global structure{global int i} s0_1})
+0:56 move second child to first child (temp structure{global int i})
+0:56 'locals0' (temp structure{global int i})
+0:56 Constant:
+0:56 0 (const int)
+0:57 move second child to first child (temp structure{global structure{global int i} s0_0})
+0:57 'locals00' (temp structure{global structure{global int i} s0_0})
+0:57 Constant:
+0:57 0 (const int)
+0:51 false case
+0:59 Sequence
+0:59 move second child to first child (temp float)
+0:59 f: direct index for structure (global float)
+0:59 'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})
+0:59 Constant:
+0:59 1 (const int)
+0:59 direct index (temp float)
+0:59 'coord' (smooth in 2-component vector of float)
+0:59 Constant:
+0:59 0 (const int)
+0:60 move second child to first child (temp structure{global int i, global float f, global structure{global int i} s0_1})
+0:60 s1_1: direct index for structure (global structure{global int i, global float f, global structure{global int i} s0_1})
+0:60 'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})
+0:60 Constant:
+0:60 2 (const int)
+0:60 Construct structure (temp structure{global int i, global float f, global structure{global int i} s0_1})
+0:60 Constant:
+0:60 1 (const int)
+0:60 direct index (temp float)
+0:60 'coord' (smooth in 2-component vector of float)
+0:60 Constant:
+0:60 1 (const int)
+0:60 'foo0' (uniform structure{global int i})
+0:61 move second child to first child (temp 6-element array of float)
+0:61 'fArray' (temp 6-element array of float)
+0:61 Constant:
+0:61 0.000000
+0:61 1.000000
+0:61 2.000000
+0:61 3.000000
+0:61 4.000000
+0:61 5.000000
+0:62 move second child to first child (temp structure{global int i, global float f, global structure{global int i} s0_1})
+0:62 direct index (temp structure{global int i, global float f, global structure{global int i} s0_1})
+0:62 'locals1Array' (temp 10-element array of structure{global int i, global float f, global structure{global int i} s0_1})
+0:62 Constant:
+0:62 6 (const int)
+0:62 s1_1: direct index for structure (global structure{global int i, global float f, global structure{global int i} s0_1})
+0:62 'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})
+0:62 Constant:
+0:62 2 (const int)
+0:63 move second child to first child (temp structure{global int i})
+0:63 'locals0' (temp structure{global int i})
+0:63 s0_1: direct index for structure (global structure{global int i})
+0:63 'foo1' (uniform structure{global int i, global float f, global structure{global int i} s0_1})
+0:63 Constant:
+0:63 2 (const int)
+0:64 move second child to first child (temp structure{global structure{global int i} s0_0})
+0:64 'locals00' (temp structure{global structure{global int i} s0_0})
+0:64 'foo00' (uniform structure{global structure{global int i} s0_0})
+0:67 Test condition and select (temp void)
+0:67 Condition
+0:67 Compare Greater Than (temp bool)
+0:67 i: direct index for structure (global int)
+0:67 'locals0' (temp structure{global int i})
+0:67 Constant:
+0:67 0 (const int)
+0:67 Constant:
+0:67 5 (const int)
+0:67 true case
+0:68 move second child to first child (temp structure{global int i})
+0:68 'locals0' (temp structure{global int i})
+0:68 s0_0: direct index for structure (global structure{global int i})
+0:68 'locals00' (temp structure{global structure{global int i} s0_0})
+0:68 Constant:
+0:68 0 (const int)
+0:70 move second child to first child (temp 4-component vector of float)
+0:70 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:70 vector-scale (temp 4-component vector of float)
+0:70 add (temp float)
+0:70 add (temp float)
+0:70 add (temp float)
+0:70 Convert int to float (temp float)
+0:70 i: direct index for structure (global int)
+0:70 'locals0' (temp structure{global int i})
+0:70 Constant:
+0:70 0 (const int)
+0:70 f: direct index for structure (global float)
+0:70 direct index (temp structure{global int i, global float f, global structure{global int i} s0_1})
+0:70 'locals1Array' (temp 10-element array of structure{global int i, global float f, global structure{global int i} s0_1})
+0:70 Constant:
+0:70 6 (const int)
+0:70 Constant:
+0:70 1 (const int)
+0:70 direct index (temp float)
+0:70 'fArray' (temp 6-element array of float)
+0:70 Constant:
+0:70 3 (const int)
+0:70 f: direct index for structure (global float)
+0:70 s1_1: direct index for structure (global structure{global int i, global float f, global structure{global int i} s0_1})
+0:70 'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})
+0:70 Constant:
+0:70 2 (const int)
+0:70 Constant:
+0:70 1 (const int)
+0:70 texture (global 4-component vector of float)
+0:70 'sampler' (uniform sampler2D)
+0:70 'coord' (smooth in 2-component vector of float)
+0:? Linker Objects
+0:? 'sampler' (uniform sampler2D)
+0:? 'coord' (smooth in 2-component vector of float)
+0:? 'foo0' (uniform structure{global int i})
+0:? 'foo1' (uniform structure{global int i, global float f, global structure{global int i} s0_1})
+0:? 'foo2' (uniform structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})
+0:? 'foo3' (uniform structure{global 12-element array of structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})
+0:? 'foo00' (uniform structure{global structure{global int i} s0_0})
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/structure.frag.out b/chromium/third_party/glslang/src/Test/baseResults/structure.frag.out
new file mode 100644
index 00000000000..666b140724b
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/structure.frag.out
@@ -0,0 +1,165 @@
+structure.frag
+WARNING: 0:3: varying deprecated in version 130; may be removed in future release
+
+Shader version: 130
+0:? Sequence
+0:20 Function Definition: main( (global void)
+0:20 Function Parameters:
+0:22 Sequence
+0:22 Sequence
+0:22 move second child to first child (temp float)
+0:22 'scale' (temp float)
+0:22 Constant:
+0:22 0.000000
+0:24 Test condition and select (temp void)
+0:24 Condition
+0:24 Compare Greater Than (temp bool)
+0:24 direct index (temp int)
+0:24 i: direct index for structure (global 5-element array of int)
+0:24 direct index (temp structure{global 5-element array of int i, global float f, global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1})
+0:24 'foo2' (uniform 5-element array of structure{global 5-element array of int i, global float f, global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1})
+0:24 Constant:
+0:24 3 (const int)
+0:24 Constant:
+0:24 0 (const int)
+0:24 Constant:
+0:24 4 (const int)
+0:24 Constant:
+0:24 0 (const int)
+0:24 true case
+0:25 move second child to first child (temp float)
+0:25 'scale' (temp float)
+0:25 direct index (temp float)
+0:25 direct index (temp 4-component vector of float)
+0:25 color: direct index for structure (global 5-element array of 4-component vector of float)
+0:25 direct index (temp structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color})
+0:25 s1_1: direct index for structure (global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color})
+0:25 direct index (temp structure{global 5-element array of int i, global float f, global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1})
+0:25 'foo2' (uniform 5-element array of structure{global 5-element array of int i, global float f, global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1})
+0:25 Constant:
+0:25 3 (const int)
+0:25 Constant:
+0:25 2 (const int)
+0:25 Constant:
+0:25 2 (const int)
+0:25 Constant:
+0:25 2 (const int)
+0:25 Constant:
+0:25 3 (const int)
+0:25 Constant:
+0:25 0 (const int)
+0:24 false case
+0:27 move second child to first child (temp float)
+0:27 'scale' (temp float)
+0:27 direct index (temp float)
+0:27 f: direct index for structure (global 4-element array of float)
+0:27 direct index (temp structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color})
+0:27 s1_1: direct index for structure (global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color})
+0:27 direct index (temp structure{global 5-element array of int i, global float f, global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1})
+0:27 'foo2' (uniform 5-element array of structure{global 5-element array of int i, global float f, global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1})
+0:27 Constant:
+0:27 3 (const int)
+0:27 Constant:
+0:27 2 (const int)
+0:27 Constant:
+0:27 2 (const int)
+0:27 Constant:
+0:27 1 (const int)
+0:27 Constant:
+0:27 3 (const int)
+0:29 move second child to first child (temp 4-component vector of float)
+0:29 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:29 vector-scale (temp 4-component vector of float)
+0:29 'scale' (temp float)
+0:29 texture (global 4-component vector of float)
+0:29 'sampler' (uniform sampler2D)
+0:29 'coord' (smooth in 2-component vector of float)
+0:? Linker Objects
+0:? 'sampler' (uniform sampler2D)
+0:? 'coord' (smooth in 2-component vector of float)
+0:? 'foo' (uniform structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color})
+0:? 'foo2' (uniform 5-element array of structure{global 5-element array of int i, global float f, global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1})
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+0:? Sequence
+0:20 Function Definition: main( (global void)
+0:20 Function Parameters:
+0:22 Sequence
+0:22 Sequence
+0:22 move second child to first child (temp float)
+0:22 'scale' (temp float)
+0:22 Constant:
+0:22 0.000000
+0:24 Test condition and select (temp void)
+0:24 Condition
+0:24 Compare Greater Than (temp bool)
+0:24 direct index (temp int)
+0:24 i: direct index for structure (global 5-element array of int)
+0:24 direct index (temp structure{global 5-element array of int i, global float f, global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1})
+0:24 'foo2' (uniform 5-element array of structure{global 5-element array of int i, global float f, global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1})
+0:24 Constant:
+0:24 3 (const int)
+0:24 Constant:
+0:24 0 (const int)
+0:24 Constant:
+0:24 4 (const int)
+0:24 Constant:
+0:24 0 (const int)
+0:24 true case
+0:25 move second child to first child (temp float)
+0:25 'scale' (temp float)
+0:25 direct index (temp float)
+0:25 direct index (temp 4-component vector of float)
+0:25 color: direct index for structure (global 5-element array of 4-component vector of float)
+0:25 direct index (temp structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color})
+0:25 s1_1: direct index for structure (global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color})
+0:25 direct index (temp structure{global 5-element array of int i, global float f, global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1})
+0:25 'foo2' (uniform 5-element array of structure{global 5-element array of int i, global float f, global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1})
+0:25 Constant:
+0:25 3 (const int)
+0:25 Constant:
+0:25 2 (const int)
+0:25 Constant:
+0:25 2 (const int)
+0:25 Constant:
+0:25 2 (const int)
+0:25 Constant:
+0:25 3 (const int)
+0:25 Constant:
+0:25 0 (const int)
+0:24 false case
+0:27 move second child to first child (temp float)
+0:27 'scale' (temp float)
+0:27 direct index (temp float)
+0:27 f: direct index for structure (global 4-element array of float)
+0:27 direct index (temp structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color})
+0:27 s1_1: direct index for structure (global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color})
+0:27 direct index (temp structure{global 5-element array of int i, global float f, global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1})
+0:27 'foo2' (uniform 5-element array of structure{global 5-element array of int i, global float f, global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1})
+0:27 Constant:
+0:27 3 (const int)
+0:27 Constant:
+0:27 2 (const int)
+0:27 Constant:
+0:27 2 (const int)
+0:27 Constant:
+0:27 1 (const int)
+0:27 Constant:
+0:27 3 (const int)
+0:29 move second child to first child (temp 4-component vector of float)
+0:29 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:29 vector-scale (temp 4-component vector of float)
+0:29 'scale' (temp float)
+0:29 texture (global 4-component vector of float)
+0:29 'sampler' (uniform sampler2D)
+0:29 'coord' (smooth in 2-component vector of float)
+0:? Linker Objects
+0:? 'sampler' (uniform sampler2D)
+0:? 'coord' (smooth in 2-component vector of float)
+0:? 'foo' (uniform structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color})
+0:? 'foo2' (uniform 5-element array of structure{global 5-element array of int i, global float f, global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1})
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/switch.frag.out b/chromium/third_party/glslang/src/Test/baseResults/switch.frag.out
new file mode 100644
index 00000000000..f8b179c0918
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/switch.frag.out
@@ -0,0 +1,691 @@
+switch.frag
+ERROR: 0:11: 'switch' : condition must be a scalar integer expression
+ERROR: 0:14: 'switch' : condition must be a scalar integer expression
+ERROR: 0:21: 'switch' : last case/default label not followed by statements
+ERROR: 0:28: 'switch' : cannot have statements before first case/default label
+ERROR: 0:43: 'default' : duplicate label
+ERROR: 0:63: 'case' : duplicated value
+ERROR: 0:65: 'case' : scalar integer expression required
+ERROR: 0:67: 'case' : constant expression required
+ERROR: 0:89: '' : break statement only allowed in switch and loops
+ERROR: 0:99: 'case' : cannot be nested inside control flow
+ERROR: 0:104: 'case' : cannot be nested inside control flow
+ERROR: 0:108: 'case' : cannot be nested inside control flow
+ERROR: 0:115: 'default' : cannot be nested inside control flow
+ERROR: 0:119: 'case' : cannot appear outside switch statement
+ERROR: 0:120: 'default' : cannot appear outside switch statement
+ERROR: 0:126: 'onlyInSwitch' : undeclared identifier
+ERROR: 0:128: 'switch' : last case/default label not followed by statements
+ERROR: 0:140: 'nestedX' : undeclared identifier
+ERROR: 0:157: 'nestedZ' : undeclared identifier
+ERROR: 19 compilation errors. No code generated.
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:6 Function Definition: main( (global void)
+0:6 Function Parameters:
+0:? Sequence
+0:11 'f' (temp highp float)
+0:14 'a' (temp 2-element array of mediump int)
+0:17 'c' (uniform mediump int)
+0:21 switch
+0:21 condition
+0:21 'c' (uniform mediump int)
+0:21 body
+0:21 Sequence
+0:23 case: with expression
+0:23 Constant:
+0:23 2 (const int)
+0:21 Sequence
+0:21 Branch: Break
+0:26 switch
+0:26 condition
+0:26 'c' (uniform mediump int)
+0:26 body
+0:26 Sequence
+0:28 Sequence
+0:28 move second child to first child (temp highp float)
+0:28 'f' (temp highp float)
+0:28 sine (global highp float)
+0:28 'x' (smooth in highp float)
+0:29 case: with expression
+0:29 Constant:
+0:29 2 (const int)
+0:? Sequence
+0:30 move second child to first child (temp highp float)
+0:30 'f' (temp highp float)
+0:30 cosine (global highp float)
+0:30 'x' (smooth in highp float)
+0:31 Branch: Break
+0:34 switch
+0:34 condition
+0:34 'c' (uniform mediump int)
+0:34 body
+0:34 Sequence
+0:35 default:
+0:? Sequence
+0:36 Branch: Break
+0:37 case: with expression
+0:37 Constant:
+0:37 1 (const int)
+0:? Sequence
+0:38 move second child to first child (temp highp float)
+0:38 'f' (temp highp float)
+0:38 sine (global highp float)
+0:38 'x' (smooth in highp float)
+0:39 Branch: Break
+0:40 case: with expression
+0:40 Constant:
+0:40 2 (const int)
+0:? Sequence
+0:41 move second child to first child (temp highp float)
+0:41 'f' (temp highp float)
+0:41 cosine (global highp float)
+0:41 'x' (smooth in highp float)
+0:42 Branch: Break
+0:43 default:
+0:? Sequence
+0:44 move second child to first child (temp highp float)
+0:44 'f' (temp highp float)
+0:44 tangent (global highp float)
+0:44 'x' (smooth in highp float)
+0:47 switch
+0:47 condition
+0:47 'c' (uniform mediump int)
+0:47 body
+0:47 Sequence
+0:48 case: with expression
+0:48 Constant:
+0:48 1 (const int)
+0:? Sequence
+0:49 move second child to first child (temp highp float)
+0:49 'f' (temp highp float)
+0:49 sine (global highp float)
+0:49 'x' (smooth in highp float)
+0:50 Branch: Break
+0:51 case: with expression
+0:51 Constant:
+0:51 2 (const int)
+0:? Sequence
+0:52 switch
+0:52 condition
+0:52 'd' (uniform mediump int)
+0:52 body
+0:52 Sequence
+0:53 case: with expression
+0:53 Constant:
+0:53 1 (const int)
+0:? Sequence
+0:54 move second child to first child (temp highp float)
+0:54 'f' (temp highp float)
+0:54 component-wise multiply (temp highp float)
+0:54 component-wise multiply (temp highp float)
+0:54 'x' (smooth in highp float)
+0:54 'x' (smooth in highp float)
+0:54 'x' (smooth in highp float)
+0:55 Branch: Break
+0:56 case: with expression
+0:56 Constant:
+0:56 2 (const int)
+0:? Sequence
+0:57 move second child to first child (temp highp float)
+0:57 'f' (temp highp float)
+0:57 component-wise multiply (temp highp float)
+0:57 'x' (smooth in highp float)
+0:57 'x' (smooth in highp float)
+0:58 Branch: Break
+0:60 Branch: Break
+0:61 default:
+0:? Sequence
+0:62 move second child to first child (temp highp float)
+0:62 'f' (temp highp float)
+0:62 tangent (global highp float)
+0:62 'x' (smooth in highp float)
+0:63 case: with expression
+0:63 Constant:
+0:63 1 (const int)
+0:? Sequence
+0:64 Branch: Break
+0:65 case: with expression
+0:65 Constant:
+0:65 3.800000
+0:? Sequence
+0:66 Branch: Break
+0:67 case: with expression
+0:67 'c' (uniform mediump int)
+0:? Sequence
+0:68 Branch: Break
+0:71 switch
+0:71 condition
+0:71 'c' (uniform mediump int)
+0:71 body
+0:71 Sequence
+0:72 case: with expression
+0:72 Constant:
+0:72 1 (const int)
+0:? Sequence
+0:73 move second child to first child (temp highp float)
+0:73 'f' (temp highp float)
+0:73 sine (global highp float)
+0:73 'x' (smooth in highp float)
+0:74 Branch: Break
+0:75 case: with expression
+0:75 Constant:
+0:75 2 (const int)
+0:? Sequence
+0:76 switch
+0:76 condition
+0:76 'd' (uniform mediump int)
+0:76 body
+0:76 Sequence
+0:77 case: with expression
+0:77 Constant:
+0:77 1 (const int)
+0:? Sequence
+0:78 move second child to first child (temp highp float)
+0:78 'f' (temp highp float)
+0:78 component-wise multiply (temp highp float)
+0:78 component-wise multiply (temp highp float)
+0:78 'x' (smooth in highp float)
+0:78 'x' (smooth in highp float)
+0:78 'x' (smooth in highp float)
+0:79 Branch: Break
+0:80 case: with expression
+0:80 Constant:
+0:80 2 (const int)
+0:? Sequence
+0:81 move second child to first child (temp highp float)
+0:81 'f' (temp highp float)
+0:81 component-wise multiply (temp highp float)
+0:81 'x' (smooth in highp float)
+0:81 'x' (smooth in highp float)
+0:82 Branch: Break
+0:84 Branch: Break
+0:85 default:
+0:? Sequence
+0:86 move second child to first child (temp highp float)
+0:86 'f' (temp highp float)
+0:86 tangent (global highp float)
+0:86 'x' (smooth in highp float)
+0:89 Branch: Break
+0:91 switch
+0:91 condition
+0:91 'c' (uniform mediump int)
+0:91 body
+0:91 Sequence
+0:92 case: with expression
+0:92 Constant:
+0:92 1 (const int)
+0:? Sequence
+0:93 move second child to first child (temp highp float)
+0:93 'f' (temp highp float)
+0:93 sine (global highp float)
+0:93 'x' (smooth in highp float)
+0:94 Branch: Break
+0:95 case: with expression
+0:95 Constant:
+0:95 2 (const int)
+0:? Sequence
+0:96 switch
+0:96 condition
+0:96 'd' (uniform mediump int)
+0:96 body
+0:96 Sequence
+0:97 case: with expression
+0:97 Constant:
+0:97 1 (const int)
+0:? Sequence
+0:? Sequence
+0:100 Branch: Break
+0:102 move second child to first child (temp highp float)
+0:102 'f' (temp highp float)
+0:102 component-wise multiply (temp highp float)
+0:102 component-wise multiply (temp highp float)
+0:102 'x' (smooth in highp float)
+0:102 'x' (smooth in highp float)
+0:102 'x' (smooth in highp float)
+0:103 Test condition and select (temp void)
+0:103 Condition
+0:103 Compare Less Than (temp bool)
+0:103 'c' (uniform mediump int)
+0:103 'd' (uniform mediump int)
+0:103 true case
+0:? Sequence
+0:105 move second child to first child (temp highp float)
+0:105 'f' (temp highp float)
+0:105 component-wise multiply (temp highp float)
+0:105 'x' (smooth in highp float)
+0:105 'x' (smooth in highp float)
+0:107 Test condition and select (temp void)
+0:107 Condition
+0:107 Compare Less Than (temp bool)
+0:107 'd' (uniform mediump int)
+0:107 'c' (uniform mediump int)
+0:107 true case is null
+0:109 Branch: Break
+0:111 Branch: Break
+0:112 case: with expression
+0:112 Constant:
+0:112 4 (const int)
+0:? Sequence
+0:113 move second child to first child (temp highp float)
+0:113 'f' (temp highp float)
+0:113 tangent (global highp float)
+0:113 'x' (smooth in highp float)
+0:114 Test condition and select (temp void)
+0:114 Condition
+0:114 Compare Less Than (temp bool)
+0:114 'f' (temp highp float)
+0:114 Constant:
+0:114 0.000000
+0:114 true case is null
+0:116 Branch: Break
+0:122 switch
+0:122 condition
+0:122 Constant:
+0:122 0 (const int)
+0:122 body
+0:122 Sequence
+0:123 default:
+0:? Sequence
+0:124 Sequence
+0:124 move second child to first child (temp mediump int)
+0:124 'onlyInSwitch' (temp mediump int)
+0:124 Constant:
+0:124 0 (const int)
+0:126 'onlyInSwitch' (temp float)
+0:128 switch
+0:128 condition
+0:128 Constant:
+0:128 0 (const int)
+0:128 body
+0:128 Sequence
+0:129 default:
+0:128 Sequence
+0:128 Branch: Break
+0:133 switch
+0:133 condition
+0:133 'c' (uniform mediump int)
+0:133 body
+0:133 Sequence
+0:134 case: with expression
+0:134 Constant:
+0:134 1 (const int)
+0:? Sequence
+0:? Sequence
+0:137 Branch: Break
+0:139 case: with expression
+0:139 Constant:
+0:139 2 (const int)
+0:? Sequence
+0:140 'nestedX' (temp float)
+0:143 Branch: Break
+0:144 case: with expression
+0:144 Constant:
+0:144 3 (const int)
+0:? Sequence
+0:146 Branch: Break
+0:147 Branch: Break
+0:148 case: with expression
+0:148 Constant:
+0:148 4 (const int)
+0:? Sequence
+0:149 Sequence
+0:149 move second child to first child (temp mediump int)
+0:149 'linearY' (temp mediump int)
+0:149 'linearZ' (temp mediump int)
+0:150 Branch: Break
+0:151 case: with expression
+0:151 Constant:
+0:151 5 (const int)
+0:? Sequence
+0:153 Branch: Break
+0:154 case: with expression
+0:154 Constant:
+0:154 6 (const int)
+0:? Sequence
+0:155 Constant:
+0:155 4 (const int)
+0:157 'nestedZ' (temp float)
+0:? Linker Objects
+0:? 'c' (uniform mediump int)
+0:? 'd' (uniform mediump int)
+0:? 'x' (smooth in highp float)
+
+
+Linked fragment stage:
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:6 Function Definition: main( (global void)
+0:6 Function Parameters:
+0:? Sequence
+0:11 'f' (temp highp float)
+0:14 'a' (temp 2-element array of mediump int)
+0:17 'c' (uniform mediump int)
+0:21 switch
+0:21 condition
+0:21 'c' (uniform mediump int)
+0:21 body
+0:21 Sequence
+0:23 case: with expression
+0:23 Constant:
+0:23 2 (const int)
+0:21 Sequence
+0:21 Branch: Break
+0:26 switch
+0:26 condition
+0:26 'c' (uniform mediump int)
+0:26 body
+0:26 Sequence
+0:28 Sequence
+0:28 move second child to first child (temp highp float)
+0:28 'f' (temp highp float)
+0:28 sine (global highp float)
+0:28 'x' (smooth in highp float)
+0:29 case: with expression
+0:29 Constant:
+0:29 2 (const int)
+0:? Sequence
+0:30 move second child to first child (temp highp float)
+0:30 'f' (temp highp float)
+0:30 cosine (global highp float)
+0:30 'x' (smooth in highp float)
+0:31 Branch: Break
+0:34 switch
+0:34 condition
+0:34 'c' (uniform mediump int)
+0:34 body
+0:34 Sequence
+0:35 default:
+0:? Sequence
+0:36 Branch: Break
+0:37 case: with expression
+0:37 Constant:
+0:37 1 (const int)
+0:? Sequence
+0:38 move second child to first child (temp highp float)
+0:38 'f' (temp highp float)
+0:38 sine (global highp float)
+0:38 'x' (smooth in highp float)
+0:39 Branch: Break
+0:40 case: with expression
+0:40 Constant:
+0:40 2 (const int)
+0:? Sequence
+0:41 move second child to first child (temp highp float)
+0:41 'f' (temp highp float)
+0:41 cosine (global highp float)
+0:41 'x' (smooth in highp float)
+0:42 Branch: Break
+0:43 default:
+0:? Sequence
+0:44 move second child to first child (temp highp float)
+0:44 'f' (temp highp float)
+0:44 tangent (global highp float)
+0:44 'x' (smooth in highp float)
+0:47 switch
+0:47 condition
+0:47 'c' (uniform mediump int)
+0:47 body
+0:47 Sequence
+0:48 case: with expression
+0:48 Constant:
+0:48 1 (const int)
+0:? Sequence
+0:49 move second child to first child (temp highp float)
+0:49 'f' (temp highp float)
+0:49 sine (global highp float)
+0:49 'x' (smooth in highp float)
+0:50 Branch: Break
+0:51 case: with expression
+0:51 Constant:
+0:51 2 (const int)
+0:? Sequence
+0:52 switch
+0:52 condition
+0:52 'd' (uniform mediump int)
+0:52 body
+0:52 Sequence
+0:53 case: with expression
+0:53 Constant:
+0:53 1 (const int)
+0:? Sequence
+0:54 move second child to first child (temp highp float)
+0:54 'f' (temp highp float)
+0:54 component-wise multiply (temp highp float)
+0:54 component-wise multiply (temp highp float)
+0:54 'x' (smooth in highp float)
+0:54 'x' (smooth in highp float)
+0:54 'x' (smooth in highp float)
+0:55 Branch: Break
+0:56 case: with expression
+0:56 Constant:
+0:56 2 (const int)
+0:? Sequence
+0:57 move second child to first child (temp highp float)
+0:57 'f' (temp highp float)
+0:57 component-wise multiply (temp highp float)
+0:57 'x' (smooth in highp float)
+0:57 'x' (smooth in highp float)
+0:58 Branch: Break
+0:60 Branch: Break
+0:61 default:
+0:? Sequence
+0:62 move second child to first child (temp highp float)
+0:62 'f' (temp highp float)
+0:62 tangent (global highp float)
+0:62 'x' (smooth in highp float)
+0:63 case: with expression
+0:63 Constant:
+0:63 1 (const int)
+0:? Sequence
+0:64 Branch: Break
+0:65 case: with expression
+0:65 Constant:
+0:65 3.800000
+0:? Sequence
+0:66 Branch: Break
+0:67 case: with expression
+0:67 'c' (uniform mediump int)
+0:? Sequence
+0:68 Branch: Break
+0:71 switch
+0:71 condition
+0:71 'c' (uniform mediump int)
+0:71 body
+0:71 Sequence
+0:72 case: with expression
+0:72 Constant:
+0:72 1 (const int)
+0:? Sequence
+0:73 move second child to first child (temp highp float)
+0:73 'f' (temp highp float)
+0:73 sine (global highp float)
+0:73 'x' (smooth in highp float)
+0:74 Branch: Break
+0:75 case: with expression
+0:75 Constant:
+0:75 2 (const int)
+0:? Sequence
+0:76 switch
+0:76 condition
+0:76 'd' (uniform mediump int)
+0:76 body
+0:76 Sequence
+0:77 case: with expression
+0:77 Constant:
+0:77 1 (const int)
+0:? Sequence
+0:78 move second child to first child (temp highp float)
+0:78 'f' (temp highp float)
+0:78 component-wise multiply (temp highp float)
+0:78 component-wise multiply (temp highp float)
+0:78 'x' (smooth in highp float)
+0:78 'x' (smooth in highp float)
+0:78 'x' (smooth in highp float)
+0:79 Branch: Break
+0:80 case: with expression
+0:80 Constant:
+0:80 2 (const int)
+0:? Sequence
+0:81 move second child to first child (temp highp float)
+0:81 'f' (temp highp float)
+0:81 component-wise multiply (temp highp float)
+0:81 'x' (smooth in highp float)
+0:81 'x' (smooth in highp float)
+0:82 Branch: Break
+0:84 Branch: Break
+0:85 default:
+0:? Sequence
+0:86 move second child to first child (temp highp float)
+0:86 'f' (temp highp float)
+0:86 tangent (global highp float)
+0:86 'x' (smooth in highp float)
+0:89 Branch: Break
+0:91 switch
+0:91 condition
+0:91 'c' (uniform mediump int)
+0:91 body
+0:91 Sequence
+0:92 case: with expression
+0:92 Constant:
+0:92 1 (const int)
+0:? Sequence
+0:93 move second child to first child (temp highp float)
+0:93 'f' (temp highp float)
+0:93 sine (global highp float)
+0:93 'x' (smooth in highp float)
+0:94 Branch: Break
+0:95 case: with expression
+0:95 Constant:
+0:95 2 (const int)
+0:? Sequence
+0:96 switch
+0:96 condition
+0:96 'd' (uniform mediump int)
+0:96 body
+0:96 Sequence
+0:97 case: with expression
+0:97 Constant:
+0:97 1 (const int)
+0:? Sequence
+0:? Sequence
+0:100 Branch: Break
+0:102 move second child to first child (temp highp float)
+0:102 'f' (temp highp float)
+0:102 component-wise multiply (temp highp float)
+0:102 component-wise multiply (temp highp float)
+0:102 'x' (smooth in highp float)
+0:102 'x' (smooth in highp float)
+0:102 'x' (smooth in highp float)
+0:103 Test condition and select (temp void)
+0:103 Condition
+0:103 Compare Less Than (temp bool)
+0:103 'c' (uniform mediump int)
+0:103 'd' (uniform mediump int)
+0:103 true case
+0:? Sequence
+0:105 move second child to first child (temp highp float)
+0:105 'f' (temp highp float)
+0:105 component-wise multiply (temp highp float)
+0:105 'x' (smooth in highp float)
+0:105 'x' (smooth in highp float)
+0:107 Test condition and select (temp void)
+0:107 Condition
+0:107 Compare Less Than (temp bool)
+0:107 'd' (uniform mediump int)
+0:107 'c' (uniform mediump int)
+0:107 true case is null
+0:109 Branch: Break
+0:111 Branch: Break
+0:112 case: with expression
+0:112 Constant:
+0:112 4 (const int)
+0:? Sequence
+0:113 move second child to first child (temp highp float)
+0:113 'f' (temp highp float)
+0:113 tangent (global highp float)
+0:113 'x' (smooth in highp float)
+0:114 Test condition and select (temp void)
+0:114 Condition
+0:114 Compare Less Than (temp bool)
+0:114 'f' (temp highp float)
+0:114 Constant:
+0:114 0.000000
+0:114 true case is null
+0:116 Branch: Break
+0:122 switch
+0:122 condition
+0:122 Constant:
+0:122 0 (const int)
+0:122 body
+0:122 Sequence
+0:123 default:
+0:? Sequence
+0:124 Sequence
+0:124 move second child to first child (temp mediump int)
+0:124 'onlyInSwitch' (temp mediump int)
+0:124 Constant:
+0:124 0 (const int)
+0:126 'onlyInSwitch' (temp float)
+0:128 switch
+0:128 condition
+0:128 Constant:
+0:128 0 (const int)
+0:128 body
+0:128 Sequence
+0:129 default:
+0:128 Sequence
+0:128 Branch: Break
+0:133 switch
+0:133 condition
+0:133 'c' (uniform mediump int)
+0:133 body
+0:133 Sequence
+0:134 case: with expression
+0:134 Constant:
+0:134 1 (const int)
+0:? Sequence
+0:? Sequence
+0:137 Branch: Break
+0:139 case: with expression
+0:139 Constant:
+0:139 2 (const int)
+0:? Sequence
+0:140 'nestedX' (temp float)
+0:143 Branch: Break
+0:144 case: with expression
+0:144 Constant:
+0:144 3 (const int)
+0:? Sequence
+0:146 Branch: Break
+0:147 Branch: Break
+0:148 case: with expression
+0:148 Constant:
+0:148 4 (const int)
+0:? Sequence
+0:149 Sequence
+0:149 move second child to first child (temp mediump int)
+0:149 'linearY' (temp mediump int)
+0:149 'linearZ' (temp mediump int)
+0:150 Branch: Break
+0:151 case: with expression
+0:151 Constant:
+0:151 5 (const int)
+0:? Sequence
+0:153 Branch: Break
+0:154 case: with expression
+0:154 Constant:
+0:154 6 (const int)
+0:? Sequence
+0:155 Constant:
+0:155 4 (const int)
+0:157 'nestedZ' (temp float)
+0:? Linker Objects
+0:? 'c' (uniform mediump int)
+0:? 'd' (uniform mediump int)
+0:? 'x' (smooth in highp float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/swizzle.frag.out b/chromium/third_party/glslang/src/Test/baseResults/swizzle.frag.out
new file mode 100644
index 00000000000..8e1b759c0b7
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/swizzle.frag.out
@@ -0,0 +1,423 @@
+swizzle.frag
+Shader version: 110
+0:? Sequence
+0:9 Function Definition: main( (global void)
+0:9 Function Parameters:
+0:11 Sequence
+0:11 Sequence
+0:11 move second child to first child (temp float)
+0:11 'blendscale' (temp float)
+0:11 Constant:
+0:11 1.789000
+0:13 Sequence
+0:13 move second child to first child (temp 4-component vector of float)
+0:13 'w' (temp 4-component vector of float)
+0:13 'u' (uniform 4-component vector of float)
+0:15 Sequence
+0:15 move second child to first child (temp 4-component vector of float)
+0:15 'w_dep' (temp 4-component vector of float)
+0:15 'u' (uniform 4-component vector of float)
+0:16 Sequence
+0:16 move second child to first child (temp 4-component vector of float)
+0:16 'w_reorder' (temp 4-component vector of float)
+0:16 'u' (uniform 4-component vector of float)
+0:17 Sequence
+0:17 move second child to first child (temp 4-component vector of float)
+0:17 'w2' (temp 4-component vector of float)
+0:17 'u' (uniform 4-component vector of float)
+0:18 Sequence
+0:18 move second child to first child (temp 4-component vector of float)
+0:18 'w_flow' (temp 4-component vector of float)
+0:18 'u' (uniform 4-component vector of float)
+0:20 move second child to first child (temp float)
+0:20 direct index (temp float)
+0:20 'w_reorder' (temp 4-component vector of float)
+0:20 Constant:
+0:20 2 (const int)
+0:20 'blendscale' (temp float)
+0:22 move second child to first child (temp 2-component vector of float)
+0:22 vector swizzle (temp 2-component vector of float)
+0:22 'w' (temp 4-component vector of float)
+0:22 Sequence
+0:22 Constant:
+0:22 3 (const int)
+0:22 Constant:
+0:22 1 (const int)
+0:22 't' (smooth in 2-component vector of float)
+0:24 move second child to first child (temp float)
+0:24 direct index (temp float)
+0:24 'w_reorder' (temp 4-component vector of float)
+0:24 Constant:
+0:24 0 (const int)
+0:24 'blendscale' (temp float)
+0:26 move second child to first child (temp 4-component vector of float)
+0:26 vector swizzle (temp 4-component vector of float)
+0:26 'w2' (temp 4-component vector of float)
+0:26 Sequence
+0:26 Constant:
+0:26 0 (const int)
+0:26 Constant:
+0:26 1 (const int)
+0:26 Constant:
+0:26 2 (const int)
+0:26 Constant:
+0:26 3 (const int)
+0:26 vector swizzle (temp 4-component vector of float)
+0:26 'u' (uniform 4-component vector of float)
+0:26 Sequence
+0:26 Constant:
+0:26 2 (const int)
+0:26 Constant:
+0:26 3 (const int)
+0:26 Constant:
+0:26 0 (const int)
+0:26 Constant:
+0:26 1 (const int)
+0:28 move second child to first child (temp float)
+0:28 direct index (temp float)
+0:28 'w_reorder' (temp 4-component vector of float)
+0:28 Constant:
+0:28 1 (const int)
+0:28 'blendscale' (temp float)
+0:30 move second child to first child (temp 2-component vector of float)
+0:30 vector swizzle (temp 2-component vector of float)
+0:30 'w_dep' (temp 4-component vector of float)
+0:30 Sequence
+0:30 Constant:
+0:30 0 (const int)
+0:30 Constant:
+0:30 1 (const int)
+0:30 vector swizzle (temp 2-component vector of float)
+0:30 'w2' (temp 4-component vector of float)
+0:30 Sequence
+0:30 Constant:
+0:30 0 (const int)
+0:30 Constant:
+0:30 2 (const int)
+0:31 move second child to first child (temp 2-component vector of float)
+0:31 vector swizzle (temp 2-component vector of float)
+0:31 'w_dep' (temp 4-component vector of float)
+0:31 Sequence
+0:31 Constant:
+0:31 2 (const int)
+0:31 Constant:
+0:31 3 (const int)
+0:31 't' (smooth in 2-component vector of float)
+0:33 move second child to first child (temp 2-component vector of float)
+0:33 vector swizzle (temp 2-component vector of float)
+0:33 'w_undef' (temp 4-component vector of float)
+0:33 Sequence
+0:33 Constant:
+0:33 0 (const int)
+0:33 Constant:
+0:33 1 (const int)
+0:33 vector swizzle (temp 2-component vector of float)
+0:33 'u' (uniform 4-component vector of float)
+0:33 Sequence
+0:33 Constant:
+0:33 2 (const int)
+0:33 Constant:
+0:33 3 (const int)
+0:35 Test condition and select (temp void)
+0:35 Condition
+0:35 'p' (uniform bool)
+0:35 true case
+0:36 move second child to first child (temp float)
+0:36 direct index (temp float)
+0:36 'w_flow' (temp 4-component vector of float)
+0:36 Constant:
+0:36 0 (const int)
+0:36 direct index (temp float)
+0:36 't' (smooth in 2-component vector of float)
+0:36 Constant:
+0:36 0 (const int)
+0:35 false case
+0:38 move second child to first child (temp float)
+0:38 direct index (temp float)
+0:38 'w_flow' (temp 4-component vector of float)
+0:38 Constant:
+0:38 0 (const int)
+0:38 direct index (temp float)
+0:38 't' (smooth in 2-component vector of float)
+0:38 Constant:
+0:38 1 (const int)
+0:40 move second child to first child (temp 4-component vector of float)
+0:40 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:40 mix (global 4-component vector of float)
+0:40 'w_reorder' (temp 4-component vector of float)
+0:40 'w_undef' (temp 4-component vector of float)
+0:40 component-wise multiply (temp 4-component vector of float)
+0:40 component-wise multiply (temp 4-component vector of float)
+0:40 component-wise multiply (temp 4-component vector of float)
+0:40 'w' (temp 4-component vector of float)
+0:40 'w2' (temp 4-component vector of float)
+0:40 'w_dep' (temp 4-component vector of float)
+0:40 'w_flow' (temp 4-component vector of float)
+0:42 Sequence
+0:42 move second child to first child (temp 2-component vector of float)
+0:42 'c' (temp 2-component vector of float)
+0:42 't' (smooth in 2-component vector of float)
+0:43 Sequence
+0:43 move second child to first child (temp 4-component vector of float)
+0:43 'rep' (temp 4-component vector of float)
+0:43 Constant:
+0:43 0.000000
+0:43 0.000000
+0:43 0.000000
+0:43 1.000000
+0:45 Test condition and select (temp void)
+0:45 Condition
+0:45 Compare Less Than (temp bool)
+0:45 direct index (temp float)
+0:45 'c' (temp 2-component vector of float)
+0:45 Constant:
+0:45 0 (const int)
+0:45 Constant:
+0:45 0.000000
+0:45 true case
+0:46 multiply second child into first child (temp float)
+0:46 direct index (temp float)
+0:46 'c' (temp 2-component vector of float)
+0:46 Constant:
+0:46 0 (const int)
+0:46 Constant:
+0:46 -1.000000
+0:48 Test condition and select (temp void)
+0:48 Condition
+0:48 Compare Less Than or Equal (temp bool)
+0:48 direct index (temp float)
+0:48 'c' (temp 2-component vector of float)
+0:48 Constant:
+0:48 0 (const int)
+0:48 Constant:
+0:48 1.000000
+0:48 true case
+0:49 move second child to first child (temp float)
+0:49 direct index (temp float)
+0:49 'rep' (temp 4-component vector of float)
+0:49 Constant:
+0:49 0 (const int)
+0:49 Constant:
+0:49 3.400000
+0:51 add second child into first child (temp 4-component vector of float)
+0:51 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:51 'rep' (temp 4-component vector of float)
+0:? Linker Objects
+0:? 'blend' (uniform float)
+0:? 'u' (uniform 4-component vector of float)
+0:? 'p' (uniform bool)
+0:? 't' (smooth in 2-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 110
+0:? Sequence
+0:9 Function Definition: main( (global void)
+0:9 Function Parameters:
+0:11 Sequence
+0:11 Sequence
+0:11 move second child to first child (temp float)
+0:11 'blendscale' (temp float)
+0:11 Constant:
+0:11 1.789000
+0:13 Sequence
+0:13 move second child to first child (temp 4-component vector of float)
+0:13 'w' (temp 4-component vector of float)
+0:13 'u' (uniform 4-component vector of float)
+0:15 Sequence
+0:15 move second child to first child (temp 4-component vector of float)
+0:15 'w_dep' (temp 4-component vector of float)
+0:15 'u' (uniform 4-component vector of float)
+0:16 Sequence
+0:16 move second child to first child (temp 4-component vector of float)
+0:16 'w_reorder' (temp 4-component vector of float)
+0:16 'u' (uniform 4-component vector of float)
+0:17 Sequence
+0:17 move second child to first child (temp 4-component vector of float)
+0:17 'w2' (temp 4-component vector of float)
+0:17 'u' (uniform 4-component vector of float)
+0:18 Sequence
+0:18 move second child to first child (temp 4-component vector of float)
+0:18 'w_flow' (temp 4-component vector of float)
+0:18 'u' (uniform 4-component vector of float)
+0:20 move second child to first child (temp float)
+0:20 direct index (temp float)
+0:20 'w_reorder' (temp 4-component vector of float)
+0:20 Constant:
+0:20 2 (const int)
+0:20 'blendscale' (temp float)
+0:22 move second child to first child (temp 2-component vector of float)
+0:22 vector swizzle (temp 2-component vector of float)
+0:22 'w' (temp 4-component vector of float)
+0:22 Sequence
+0:22 Constant:
+0:22 3 (const int)
+0:22 Constant:
+0:22 1 (const int)
+0:22 't' (smooth in 2-component vector of float)
+0:24 move second child to first child (temp float)
+0:24 direct index (temp float)
+0:24 'w_reorder' (temp 4-component vector of float)
+0:24 Constant:
+0:24 0 (const int)
+0:24 'blendscale' (temp float)
+0:26 move second child to first child (temp 4-component vector of float)
+0:26 vector swizzle (temp 4-component vector of float)
+0:26 'w2' (temp 4-component vector of float)
+0:26 Sequence
+0:26 Constant:
+0:26 0 (const int)
+0:26 Constant:
+0:26 1 (const int)
+0:26 Constant:
+0:26 2 (const int)
+0:26 Constant:
+0:26 3 (const int)
+0:26 vector swizzle (temp 4-component vector of float)
+0:26 'u' (uniform 4-component vector of float)
+0:26 Sequence
+0:26 Constant:
+0:26 2 (const int)
+0:26 Constant:
+0:26 3 (const int)
+0:26 Constant:
+0:26 0 (const int)
+0:26 Constant:
+0:26 1 (const int)
+0:28 move second child to first child (temp float)
+0:28 direct index (temp float)
+0:28 'w_reorder' (temp 4-component vector of float)
+0:28 Constant:
+0:28 1 (const int)
+0:28 'blendscale' (temp float)
+0:30 move second child to first child (temp 2-component vector of float)
+0:30 vector swizzle (temp 2-component vector of float)
+0:30 'w_dep' (temp 4-component vector of float)
+0:30 Sequence
+0:30 Constant:
+0:30 0 (const int)
+0:30 Constant:
+0:30 1 (const int)
+0:30 vector swizzle (temp 2-component vector of float)
+0:30 'w2' (temp 4-component vector of float)
+0:30 Sequence
+0:30 Constant:
+0:30 0 (const int)
+0:30 Constant:
+0:30 2 (const int)
+0:31 move second child to first child (temp 2-component vector of float)
+0:31 vector swizzle (temp 2-component vector of float)
+0:31 'w_dep' (temp 4-component vector of float)
+0:31 Sequence
+0:31 Constant:
+0:31 2 (const int)
+0:31 Constant:
+0:31 3 (const int)
+0:31 't' (smooth in 2-component vector of float)
+0:33 move second child to first child (temp 2-component vector of float)
+0:33 vector swizzle (temp 2-component vector of float)
+0:33 'w_undef' (temp 4-component vector of float)
+0:33 Sequence
+0:33 Constant:
+0:33 0 (const int)
+0:33 Constant:
+0:33 1 (const int)
+0:33 vector swizzle (temp 2-component vector of float)
+0:33 'u' (uniform 4-component vector of float)
+0:33 Sequence
+0:33 Constant:
+0:33 2 (const int)
+0:33 Constant:
+0:33 3 (const int)
+0:35 Test condition and select (temp void)
+0:35 Condition
+0:35 'p' (uniform bool)
+0:35 true case
+0:36 move second child to first child (temp float)
+0:36 direct index (temp float)
+0:36 'w_flow' (temp 4-component vector of float)
+0:36 Constant:
+0:36 0 (const int)
+0:36 direct index (temp float)
+0:36 't' (smooth in 2-component vector of float)
+0:36 Constant:
+0:36 0 (const int)
+0:35 false case
+0:38 move second child to first child (temp float)
+0:38 direct index (temp float)
+0:38 'w_flow' (temp 4-component vector of float)
+0:38 Constant:
+0:38 0 (const int)
+0:38 direct index (temp float)
+0:38 't' (smooth in 2-component vector of float)
+0:38 Constant:
+0:38 1 (const int)
+0:40 move second child to first child (temp 4-component vector of float)
+0:40 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:40 mix (global 4-component vector of float)
+0:40 'w_reorder' (temp 4-component vector of float)
+0:40 'w_undef' (temp 4-component vector of float)
+0:40 component-wise multiply (temp 4-component vector of float)
+0:40 component-wise multiply (temp 4-component vector of float)
+0:40 component-wise multiply (temp 4-component vector of float)
+0:40 'w' (temp 4-component vector of float)
+0:40 'w2' (temp 4-component vector of float)
+0:40 'w_dep' (temp 4-component vector of float)
+0:40 'w_flow' (temp 4-component vector of float)
+0:42 Sequence
+0:42 move second child to first child (temp 2-component vector of float)
+0:42 'c' (temp 2-component vector of float)
+0:42 't' (smooth in 2-component vector of float)
+0:43 Sequence
+0:43 move second child to first child (temp 4-component vector of float)
+0:43 'rep' (temp 4-component vector of float)
+0:43 Constant:
+0:43 0.000000
+0:43 0.000000
+0:43 0.000000
+0:43 1.000000
+0:45 Test condition and select (temp void)
+0:45 Condition
+0:45 Compare Less Than (temp bool)
+0:45 direct index (temp float)
+0:45 'c' (temp 2-component vector of float)
+0:45 Constant:
+0:45 0 (const int)
+0:45 Constant:
+0:45 0.000000
+0:45 true case
+0:46 multiply second child into first child (temp float)
+0:46 direct index (temp float)
+0:46 'c' (temp 2-component vector of float)
+0:46 Constant:
+0:46 0 (const int)
+0:46 Constant:
+0:46 -1.000000
+0:48 Test condition and select (temp void)
+0:48 Condition
+0:48 Compare Less Than or Equal (temp bool)
+0:48 direct index (temp float)
+0:48 'c' (temp 2-component vector of float)
+0:48 Constant:
+0:48 0 (const int)
+0:48 Constant:
+0:48 1.000000
+0:48 true case
+0:49 move second child to first child (temp float)
+0:49 direct index (temp float)
+0:49 'rep' (temp 4-component vector of float)
+0:49 Constant:
+0:49 0 (const int)
+0:49 Constant:
+0:49 3.400000
+0:51 add second child into first child (temp 4-component vector of float)
+0:51 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:51 'rep' (temp 4-component vector of float)
+0:? Linker Objects
+0:? 'blend' (uniform float)
+0:? 'u' (uniform 4-component vector of float)
+0:? 'p' (uniform bool)
+0:? 't' (smooth in 2-component vector of float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/syntaxError.frag.out b/chromium/third_party/glslang/src/Test/baseResults/syntaxError.frag.out
new file mode 100644
index 00000000000..af0e7323539
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/syntaxError.frag.out
@@ -0,0 +1,24 @@
+syntaxError.frag
+ERROR: 0:9: 'vec5' : undeclared identifier
+ERROR: 0:9: '' : syntax error
+ERROR: 2 compilation errors. No code generated.
+
+
+Shader version: 120
+ERROR: node is still EOpNull!
+0:? Linker Objects
+0:? 'bigColor' (uniform 4-component vector of float)
+0:? 'BaseColor' (smooth in 4-component vector of float)
+0:? 'd' (uniform float)
+
+
+Linked fragment stage:
+
+
+Shader version: 120
+ERROR: node is still EOpNull!
+0:? Linker Objects
+0:? 'bigColor' (uniform 4-component vector of float)
+0:? 'BaseColor' (smooth in 4-component vector of float)
+0:? 'd' (uniform float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/test.conf b/chromium/third_party/glslang/src/Test/baseResults/test.conf
new file mode 100644
index 00000000000..f156c5c6d5c
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/test.conf
@@ -0,0 +1,92 @@
+MaxLights 32
+MaxClipPlanes 6
+MaxTextureUnits 32
+MaxTextureCoords 32
+MaxVertexAttribs 64
+MaxVertexUniformComponents 4096
+MaxVaryingFloats 64
+MaxVertexTextureImageUnits 32
+MaxCombinedTextureImageUnits 80
+MaxTextureImageUnits 32
+MaxFragmentUniformComponents 4096
+MaxDrawBuffers 32
+MaxVertexUniformVectors 128
+MaxVaryingVectors 8
+MaxFragmentUniformVectors 16
+MaxVertexOutputVectors 16
+MaxFragmentInputVectors 15
+MinProgramTexelOffset -8
+MaxProgramTexelOffset 7
+MaxClipDistances 8
+MaxComputeWorkGroupCountX 65535
+MaxComputeWorkGroupCountY 65535
+MaxComputeWorkGroupCountZ 65535
+MaxComputeWorkGroupSizeX 1024
+MaxComputeWorkGroupSizeY 1024
+MaxComputeWorkGroupSizeZ 64
+MaxComputeUniformComponents 1024
+MaxComputeTextureImageUnits 16
+MaxComputeImageUniforms 8
+MaxComputeAtomicCounters 8
+MaxComputeAtomicCounterBuffers 1
+MaxVaryingComponents 60
+MaxVertexOutputComponents 64
+MaxGeometryInputComponents 64
+MaxGeometryOutputComponents 128
+MaxFragmentInputComponents 128
+MaxImageUnits 8
+MaxCombinedImageUnitsAndFragmentOutputs 8
+MaxCombinedShaderOutputResources 8
+MaxImageSamples 0
+MaxVertexImageUniforms 0
+MaxTessControlImageUniforms 0
+MaxTessEvaluationImageUniforms 0
+MaxGeometryImageUniforms 0
+MaxFragmentImageUniforms 8
+MaxCombinedImageUniforms 8
+MaxGeometryTextureImageUnits 16
+MaxGeometryOutputVertices 256
+MaxGeometryTotalOutputComponents 1024
+MaxGeometryUniformComponents 1024
+MaxGeometryVaryingComponents 64
+MaxTessControlInputComponents 128
+MaxTessControlOutputComponents 128
+MaxTessControlTextureImageUnits 16
+MaxTessControlUniformComponents 1024
+MaxTessControlTotalOutputComponents 4096
+MaxTessEvaluationInputComponents 128
+MaxTessEvaluationOutputComponents 128
+MaxTessEvaluationTextureImageUnits 16
+MaxTessEvaluationUniformComponents 1024
+MaxTessPatchComponents 120
+MaxPatchVertices 32
+MaxTessGenLevel 64
+MaxViewports 16
+MaxVertexAtomicCounters 0
+MaxTessControlAtomicCounters 0
+MaxTessEvaluationAtomicCounters 0
+MaxGeometryAtomicCounters 0
+MaxFragmentAtomicCounters 8
+MaxCombinedAtomicCounters 8
+MaxAtomicCounterBindings 1
+MaxVertexAtomicCounterBuffers 0
+MaxTessControlAtomicCounterBuffers 0
+MaxTessEvaluationAtomicCounterBuffers 0
+MaxGeometryAtomicCounterBuffers 0
+MaxFragmentAtomicCounterBuffers 1
+MaxCombinedAtomicCounterBuffers 1
+MaxAtomicCounterBufferSize 16384
+MaxTransformFeedbackBuffers 4
+MaxTransformFeedbackInterleavedComponents 64
+MaxCullDistances 8
+MaxCombinedClipAndCullDistances 8
+MaxSamples 4
+nonInductiveForLoops 1
+whileLoops 1
+doWhileLoops 1
+generalUniformIndexing 1
+generalAttributeMatrixVectorIndexing 1
+generalVaryingIndexing 1
+generalSamplerIndexing 1
+generalVariableIndexing 1
+generalConstantMatrixVectorIndexing 1
diff --git a/chromium/third_party/glslang/src/Test/baseResults/test.frag.out b/chromium/third_party/glslang/src/Test/baseResults/test.frag.out
new file mode 100644
index 00000000000..e6b98766f36
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/test.frag.out
@@ -0,0 +1,115 @@
+test.frag
+Shader version: 110
+0:? Sequence
+0:13 Function Definition: main( (global void)
+0:13 Function Parameters:
+0:15 Sequence
+0:15 Sequence
+0:15 move second child to first child (temp float)
+0:15 'blendscale' (temp float)
+0:15 Constant:
+0:15 1.789000
+0:17 Sequence
+0:17 move second child to first child (temp 4-component vector of float)
+0:17 'v' (temp 4-component vector of float)
+0:17 vector swizzle (temp 4-component vector of float)
+0:17 texture (global 4-component vector of float)
+0:17 'texSampler2D' (uniform sampler2D)
+0:17 divide (temp 2-component vector of float)
+0:17 add (temp 2-component vector of float)
+0:17 't' (smooth in 2-component vector of float)
+0:17 'scale' (uniform 2-component vector of float)
+0:17 'scale' (uniform 2-component vector of float)
+0:17 Sequence
+0:17 Constant:
+0:17 3 (const int)
+0:17 Constant:
+0:17 2 (const int)
+0:17 Constant:
+0:17 1 (const int)
+0:17 Constant:
+0:17 0 (const int)
+0:19 Sequence
+0:19 move second child to first child (temp 4-component vector of float)
+0:19 'w' (temp 4-component vector of float)
+0:19 add (temp 4-component vector of float)
+0:19 texture (global 4-component vector of float)
+0:19 'texSampler3D' (uniform sampler3D)
+0:19 'coords' (smooth in 3-component vector of float)
+0:19 'v' (temp 4-component vector of float)
+0:21 move second child to first child (temp 4-component vector of float)
+0:21 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:21 mix (global 4-component vector of float)
+0:21 'w' (temp 4-component vector of float)
+0:21 'u' (uniform 4-component vector of float)
+0:21 component-wise multiply (temp float)
+0:21 'blend' (uniform float)
+0:21 'blendscale' (temp float)
+0:? Linker Objects
+0:? 'texSampler2D' (uniform sampler2D)
+0:? 'texSampler3D' (uniform sampler3D)
+0:? 'blend' (uniform float)
+0:? 'scale' (uniform 2-component vector of float)
+0:? 'u' (uniform 4-component vector of float)
+0:? 't' (smooth in 2-component vector of float)
+0:? 'coords' (smooth in 3-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 110
+0:? Sequence
+0:13 Function Definition: main( (global void)
+0:13 Function Parameters:
+0:15 Sequence
+0:15 Sequence
+0:15 move second child to first child (temp float)
+0:15 'blendscale' (temp float)
+0:15 Constant:
+0:15 1.789000
+0:17 Sequence
+0:17 move second child to first child (temp 4-component vector of float)
+0:17 'v' (temp 4-component vector of float)
+0:17 vector swizzle (temp 4-component vector of float)
+0:17 texture (global 4-component vector of float)
+0:17 'texSampler2D' (uniform sampler2D)
+0:17 divide (temp 2-component vector of float)
+0:17 add (temp 2-component vector of float)
+0:17 't' (smooth in 2-component vector of float)
+0:17 'scale' (uniform 2-component vector of float)
+0:17 'scale' (uniform 2-component vector of float)
+0:17 Sequence
+0:17 Constant:
+0:17 3 (const int)
+0:17 Constant:
+0:17 2 (const int)
+0:17 Constant:
+0:17 1 (const int)
+0:17 Constant:
+0:17 0 (const int)
+0:19 Sequence
+0:19 move second child to first child (temp 4-component vector of float)
+0:19 'w' (temp 4-component vector of float)
+0:19 add (temp 4-component vector of float)
+0:19 texture (global 4-component vector of float)
+0:19 'texSampler3D' (uniform sampler3D)
+0:19 'coords' (smooth in 3-component vector of float)
+0:19 'v' (temp 4-component vector of float)
+0:21 move second child to first child (temp 4-component vector of float)
+0:21 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:21 mix (global 4-component vector of float)
+0:21 'w' (temp 4-component vector of float)
+0:21 'u' (uniform 4-component vector of float)
+0:21 component-wise multiply (temp float)
+0:21 'blend' (uniform float)
+0:21 'blendscale' (temp float)
+0:? Linker Objects
+0:? 'texSampler2D' (uniform sampler2D)
+0:? 'texSampler3D' (uniform sampler3D)
+0:? 'blend' (uniform float)
+0:? 'scale' (uniform 2-component vector of float)
+0:? 'u' (uniform 4-component vector of float)
+0:? 't' (smooth in 2-component vector of float)
+0:? 'coords' (smooth in 3-component vector of float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/texture.frag.out b/chromium/third_party/glslang/src/Test/baseResults/texture.frag.out
new file mode 100644
index 00000000000..5e886095d19
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/texture.frag.out
@@ -0,0 +1,564 @@
+texture.frag
+WARNING: 0:14: varying deprecated in version 130; may be removed in future release
+WARNING: 0:15: varying deprecated in version 130; may be removed in future release
+
+Shader version: 130
+0:? Sequence
+0:17 Function Definition: main( (global void)
+0:17 Function Parameters:
+0:19 Sequence
+0:19 Sequence
+0:19 move second child to first child (temp float)
+0:19 'blendscale' (temp float)
+0:19 Constant:
+0:19 1.789000
+0:20 Sequence
+0:20 move second child to first child (temp float)
+0:20 'bias' (temp float)
+0:20 Constant:
+0:20 2.000000
+0:21 Sequence
+0:21 move second child to first child (temp float)
+0:21 'lod' (temp float)
+0:21 Constant:
+0:21 3.000000
+0:22 Sequence
+0:22 move second child to first child (temp float)
+0:22 'proj' (temp float)
+0:22 Constant:
+0:22 2.000000
+0:23 Sequence
+0:23 move second child to first child (temp float)
+0:23 'coords1D' (temp float)
+0:23 Constant:
+0:23 1.789000
+0:24 Sequence
+0:24 move second child to first child (temp 3-component vector of float)
+0:24 'coords3D' (temp 3-component vector of float)
+0:24 Constant:
+0:24 1.789000
+0:24 2.718000
+0:24 3.453000
+0:25 Sequence
+0:25 move second child to first child (temp 4-component vector of float)
+0:25 'coords4D' (temp 4-component vector of float)
+0:25 Constant:
+0:25 1.789000
+0:25 2.718000
+0:25 3.453000
+0:25 2.000000
+0:26 Sequence
+0:26 move second child to first child (temp 4-component vector of float)
+0:26 'color' (temp 4-component vector of float)
+0:26 Constant:
+0:26 0.000000
+0:26 0.000000
+0:26 0.000000
+0:26 0.000000
+0:28 add second child into first child (temp 4-component vector of float)
+0:28 'color' (temp 4-component vector of float)
+0:28 texture (global 4-component vector of float)
+0:28 'texSampler1D' (uniform sampler1D)
+0:28 'coords1D' (temp float)
+0:29 add second child into first child (temp 4-component vector of float)
+0:29 'color' (temp 4-component vector of float)
+0:29 texture (global 4-component vector of float)
+0:29 'texSampler1D' (uniform sampler1D)
+0:29 'coords1D' (temp float)
+0:29 'bias' (temp float)
+0:30 add second child into first child (temp 4-component vector of float)
+0:30 'color' (temp 4-component vector of float)
+0:30 textureProj (global 4-component vector of float)
+0:30 'texSampler1D' (uniform sampler1D)
+0:30 'coords2D' (smooth in 2-component vector of float)
+0:31 add second child into first child (temp 4-component vector of float)
+0:31 'color' (temp 4-component vector of float)
+0:31 textureProj (global 4-component vector of float)
+0:31 'texSampler1D' (uniform sampler1D)
+0:31 'coords4D' (temp 4-component vector of float)
+0:32 add second child into first child (temp 4-component vector of float)
+0:32 'color' (temp 4-component vector of float)
+0:32 textureProj (global 4-component vector of float)
+0:32 'texSampler1D' (uniform sampler1D)
+0:32 'coords2D' (smooth in 2-component vector of float)
+0:32 'bias' (temp float)
+0:33 add second child into first child (temp 4-component vector of float)
+0:33 'color' (temp 4-component vector of float)
+0:33 textureProj (global 4-component vector of float)
+0:33 'texSampler1D' (uniform sampler1D)
+0:33 'coords4D' (temp 4-component vector of float)
+0:33 'bias' (temp float)
+0:35 add second child into first child (temp 4-component vector of float)
+0:35 'color' (temp 4-component vector of float)
+0:35 texture (global 4-component vector of float)
+0:35 'texSampler2D' (uniform sampler2D)
+0:35 'coords2D' (smooth in 2-component vector of float)
+0:36 add second child into first child (temp 4-component vector of float)
+0:36 'color' (temp 4-component vector of float)
+0:36 texture (global 4-component vector of float)
+0:36 'texSampler2D' (uniform sampler2D)
+0:36 'coords2D' (smooth in 2-component vector of float)
+0:36 'bias' (temp float)
+0:37 add second child into first child (temp 4-component vector of float)
+0:37 'color' (temp 4-component vector of float)
+0:37 textureProj (global 4-component vector of float)
+0:37 'texSampler2D' (uniform sampler2D)
+0:37 'coords3D' (temp 3-component vector of float)
+0:38 add second child into first child (temp 4-component vector of float)
+0:38 'color' (temp 4-component vector of float)
+0:38 textureProj (global 4-component vector of float)
+0:38 'texSampler2D' (uniform sampler2D)
+0:38 'coords4D' (temp 4-component vector of float)
+0:38 'bias' (temp float)
+0:40 add second child into first child (temp 4-component vector of float)
+0:40 'color' (temp 4-component vector of float)
+0:40 texture (global 4-component vector of float)
+0:40 'texSampler3D' (uniform sampler3D)
+0:40 'coords3D' (temp 3-component vector of float)
+0:41 add second child into first child (temp 4-component vector of float)
+0:41 'color' (temp 4-component vector of float)
+0:41 texture (global 4-component vector of float)
+0:41 'texSampler3D' (uniform sampler3D)
+0:41 'coords3D' (temp 3-component vector of float)
+0:41 'bias' (temp float)
+0:42 add second child into first child (temp 4-component vector of float)
+0:42 'color' (temp 4-component vector of float)
+0:42 textureProj (global 4-component vector of float)
+0:42 'texSampler3D' (uniform sampler3D)
+0:42 'coords4D' (temp 4-component vector of float)
+0:43 add second child into first child (temp 4-component vector of float)
+0:43 'color' (temp 4-component vector of float)
+0:43 textureProj (global 4-component vector of float)
+0:43 'texSampler3D' (uniform sampler3D)
+0:43 'coords4D' (temp 4-component vector of float)
+0:43 'bias' (temp float)
+0:45 add second child into first child (temp 4-component vector of float)
+0:45 'color' (temp 4-component vector of float)
+0:45 texture (global 4-component vector of float)
+0:45 'texSamplerCube' (uniform samplerCube)
+0:45 'coords3D' (temp 3-component vector of float)
+0:46 add second child into first child (temp 4-component vector of float)
+0:46 'color' (temp 4-component vector of float)
+0:46 texture (global 4-component vector of float)
+0:46 'texSamplerCube' (uniform samplerCube)
+0:46 'coords3D' (temp 3-component vector of float)
+0:46 'bias' (temp float)
+0:48 add second child into first child (temp 4-component vector of float)
+0:48 'color' (temp 4-component vector of float)
+0:48 texture (global 4-component vector of float)
+0:48 'shadowSampler1D' (uniform sampler1DShadow)
+0:48 'coords3D' (temp 3-component vector of float)
+0:49 add second child into first child (temp 4-component vector of float)
+0:49 'color' (temp 4-component vector of float)
+0:49 texture (global 4-component vector of float)
+0:49 'shadowSampler1D' (uniform sampler1DShadow)
+0:49 'coords3D' (temp 3-component vector of float)
+0:49 'bias' (temp float)
+0:50 add second child into first child (temp 4-component vector of float)
+0:50 'color' (temp 4-component vector of float)
+0:50 texture (global 4-component vector of float)
+0:50 'shadowSampler2D' (uniform sampler2DShadow)
+0:50 'coords3D' (temp 3-component vector of float)
+0:51 add second child into first child (temp 4-component vector of float)
+0:51 'color' (temp 4-component vector of float)
+0:51 texture (global 4-component vector of float)
+0:51 'shadowSampler2D' (uniform sampler2DShadow)
+0:51 'coords3D' (temp 3-component vector of float)
+0:51 'bias' (temp float)
+0:52 add second child into first child (temp 4-component vector of float)
+0:52 'color' (temp 4-component vector of float)
+0:52 textureProj (global 4-component vector of float)
+0:52 'shadowSampler1D' (uniform sampler1DShadow)
+0:52 'coords4D' (temp 4-component vector of float)
+0:53 add second child into first child (temp 4-component vector of float)
+0:53 'color' (temp 4-component vector of float)
+0:53 textureProj (global 4-component vector of float)
+0:53 'shadowSampler1D' (uniform sampler1DShadow)
+0:53 'coords4D' (temp 4-component vector of float)
+0:53 'bias' (temp float)
+0:54 add second child into first child (temp 4-component vector of float)
+0:54 'color' (temp 4-component vector of float)
+0:54 textureProj (global 4-component vector of float)
+0:54 'shadowSampler2D' (uniform sampler2DShadow)
+0:54 'coords4D' (temp 4-component vector of float)
+0:55 add second child into first child (temp 4-component vector of float)
+0:55 'color' (temp 4-component vector of float)
+0:55 textureProj (global 4-component vector of float)
+0:55 'shadowSampler2D' (uniform sampler2DShadow)
+0:55 'coords4D' (temp 4-component vector of float)
+0:55 'bias' (temp float)
+0:57 Sequence
+0:57 move second child to first child (temp 2-component vector of int)
+0:57 'iCoords2D' (temp 2-component vector of int)
+0:57 Constant:
+0:57 0 (const int)
+0:57 5 (const int)
+0:58 Sequence
+0:58 move second child to first child (temp int)
+0:58 'iLod' (temp int)
+0:58 Constant:
+0:58 1 (const int)
+0:60 add second child into first child (temp 4-component vector of float)
+0:60 'color' (temp 4-component vector of float)
+0:60 textureFetch (global 4-component vector of float)
+0:60 'texSampler2D' (uniform sampler2D)
+0:60 'iCoords2D' (temp 2-component vector of int)
+0:60 'iLod' (temp int)
+0:62 Sequence
+0:62 move second child to first child (temp 2-component vector of float)
+0:62 'gradX' (temp 2-component vector of float)
+0:62 dPdx (global 2-component vector of float)
+0:62 'coords2D' (smooth in 2-component vector of float)
+0:63 Sequence
+0:63 move second child to first child (temp 2-component vector of float)
+0:63 'gradY' (temp 2-component vector of float)
+0:63 dPdy (global 2-component vector of float)
+0:63 'coords2D' (smooth in 2-component vector of float)
+0:66 add second child into first child (temp 4-component vector of float)
+0:66 'color' (temp 4-component vector of float)
+0:66 textureGrad (global 4-component vector of float)
+0:66 'texSampler2D' (uniform sampler2D)
+0:66 'coords2D' (smooth in 2-component vector of float)
+0:66 'gradX' (temp 2-component vector of float)
+0:66 'gradY' (temp 2-component vector of float)
+0:67 add second child into first child (temp 4-component vector of float)
+0:67 'color' (temp 4-component vector of float)
+0:67 textureProjGrad (global 4-component vector of float)
+0:67 'texSampler2D' (uniform sampler2D)
+0:67 Construct vec3 (temp 3-component vector of float)
+0:67 'coords2D' (smooth in 2-component vector of float)
+0:67 'proj' (temp float)
+0:67 'gradX' (temp 2-component vector of float)
+0:67 'gradY' (temp 2-component vector of float)
+0:68 add second child into first child (temp 4-component vector of float)
+0:68 'color' (temp 4-component vector of float)
+0:68 textureGradOffset (global 4-component vector of float)
+0:68 'texSampler2D' (uniform sampler2D)
+0:68 'coords2D' (smooth in 2-component vector of float)
+0:68 'gradX' (temp 2-component vector of float)
+0:68 'gradY' (temp 2-component vector of float)
+0:68 Constant:
+0:68 3 (const int)
+0:68 -7 (const int)
+0:69 add second child into first child (temp 4-component vector of float)
+0:69 'color' (temp 4-component vector of float)
+0:69 textureProjGradOffset (global 4-component vector of float)
+0:69 'texSampler2D' (uniform sampler2D)
+0:69 'coords3D' (temp 3-component vector of float)
+0:69 'gradX' (temp 2-component vector of float)
+0:69 'gradY' (temp 2-component vector of float)
+0:69 Constant:
+0:69 3 (const int)
+0:69 -7 (const int)
+0:70 add second child into first child (temp 4-component vector of float)
+0:70 'color' (temp 4-component vector of float)
+0:70 textureGrad (global float)
+0:70 'shadowSampler2D' (uniform sampler2DShadow)
+0:70 Construct vec3 (temp 3-component vector of float)
+0:70 'coords2D' (smooth in 2-component vector of float)
+0:70 'lod' (temp float)
+0:70 'gradX' (temp 2-component vector of float)
+0:70 'gradY' (temp 2-component vector of float)
+0:72 move second child to first child (temp 4-component vector of float)
+0:72 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:72 mix (global 4-component vector of float)
+0:72 'color' (temp 4-component vector of float)
+0:72 'u' (uniform 4-component vector of float)
+0:72 component-wise multiply (temp float)
+0:72 'blend' (uniform float)
+0:72 'blendscale' (temp float)
+0:? Linker Objects
+0:? 'texSampler1D' (uniform sampler1D)
+0:? 'texSampler2D' (uniform sampler2D)
+0:? 'texSampler3D' (uniform sampler3D)
+0:? 'texSamplerCube' (uniform samplerCube)
+0:? 'shadowSampler1D' (uniform sampler1DShadow)
+0:? 'shadowSampler2D' (uniform sampler2DShadow)
+0:? 'blend' (uniform float)
+0:? 'scale' (uniform 2-component vector of float)
+0:? 'u' (uniform 4-component vector of float)
+0:? 't' (smooth in 2-component vector of float)
+0:? 'coords2D' (smooth in 2-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+0:? Sequence
+0:17 Function Definition: main( (global void)
+0:17 Function Parameters:
+0:19 Sequence
+0:19 Sequence
+0:19 move second child to first child (temp float)
+0:19 'blendscale' (temp float)
+0:19 Constant:
+0:19 1.789000
+0:20 Sequence
+0:20 move second child to first child (temp float)
+0:20 'bias' (temp float)
+0:20 Constant:
+0:20 2.000000
+0:21 Sequence
+0:21 move second child to first child (temp float)
+0:21 'lod' (temp float)
+0:21 Constant:
+0:21 3.000000
+0:22 Sequence
+0:22 move second child to first child (temp float)
+0:22 'proj' (temp float)
+0:22 Constant:
+0:22 2.000000
+0:23 Sequence
+0:23 move second child to first child (temp float)
+0:23 'coords1D' (temp float)
+0:23 Constant:
+0:23 1.789000
+0:24 Sequence
+0:24 move second child to first child (temp 3-component vector of float)
+0:24 'coords3D' (temp 3-component vector of float)
+0:24 Constant:
+0:24 1.789000
+0:24 2.718000
+0:24 3.453000
+0:25 Sequence
+0:25 move second child to first child (temp 4-component vector of float)
+0:25 'coords4D' (temp 4-component vector of float)
+0:25 Constant:
+0:25 1.789000
+0:25 2.718000
+0:25 3.453000
+0:25 2.000000
+0:26 Sequence
+0:26 move second child to first child (temp 4-component vector of float)
+0:26 'color' (temp 4-component vector of float)
+0:26 Constant:
+0:26 0.000000
+0:26 0.000000
+0:26 0.000000
+0:26 0.000000
+0:28 add second child into first child (temp 4-component vector of float)
+0:28 'color' (temp 4-component vector of float)
+0:28 texture (global 4-component vector of float)
+0:28 'texSampler1D' (uniform sampler1D)
+0:28 'coords1D' (temp float)
+0:29 add second child into first child (temp 4-component vector of float)
+0:29 'color' (temp 4-component vector of float)
+0:29 texture (global 4-component vector of float)
+0:29 'texSampler1D' (uniform sampler1D)
+0:29 'coords1D' (temp float)
+0:29 'bias' (temp float)
+0:30 add second child into first child (temp 4-component vector of float)
+0:30 'color' (temp 4-component vector of float)
+0:30 textureProj (global 4-component vector of float)
+0:30 'texSampler1D' (uniform sampler1D)
+0:30 'coords2D' (smooth in 2-component vector of float)
+0:31 add second child into first child (temp 4-component vector of float)
+0:31 'color' (temp 4-component vector of float)
+0:31 textureProj (global 4-component vector of float)
+0:31 'texSampler1D' (uniform sampler1D)
+0:31 'coords4D' (temp 4-component vector of float)
+0:32 add second child into first child (temp 4-component vector of float)
+0:32 'color' (temp 4-component vector of float)
+0:32 textureProj (global 4-component vector of float)
+0:32 'texSampler1D' (uniform sampler1D)
+0:32 'coords2D' (smooth in 2-component vector of float)
+0:32 'bias' (temp float)
+0:33 add second child into first child (temp 4-component vector of float)
+0:33 'color' (temp 4-component vector of float)
+0:33 textureProj (global 4-component vector of float)
+0:33 'texSampler1D' (uniform sampler1D)
+0:33 'coords4D' (temp 4-component vector of float)
+0:33 'bias' (temp float)
+0:35 add second child into first child (temp 4-component vector of float)
+0:35 'color' (temp 4-component vector of float)
+0:35 texture (global 4-component vector of float)
+0:35 'texSampler2D' (uniform sampler2D)
+0:35 'coords2D' (smooth in 2-component vector of float)
+0:36 add second child into first child (temp 4-component vector of float)
+0:36 'color' (temp 4-component vector of float)
+0:36 texture (global 4-component vector of float)
+0:36 'texSampler2D' (uniform sampler2D)
+0:36 'coords2D' (smooth in 2-component vector of float)
+0:36 'bias' (temp float)
+0:37 add second child into first child (temp 4-component vector of float)
+0:37 'color' (temp 4-component vector of float)
+0:37 textureProj (global 4-component vector of float)
+0:37 'texSampler2D' (uniform sampler2D)
+0:37 'coords3D' (temp 3-component vector of float)
+0:38 add second child into first child (temp 4-component vector of float)
+0:38 'color' (temp 4-component vector of float)
+0:38 textureProj (global 4-component vector of float)
+0:38 'texSampler2D' (uniform sampler2D)
+0:38 'coords4D' (temp 4-component vector of float)
+0:38 'bias' (temp float)
+0:40 add second child into first child (temp 4-component vector of float)
+0:40 'color' (temp 4-component vector of float)
+0:40 texture (global 4-component vector of float)
+0:40 'texSampler3D' (uniform sampler3D)
+0:40 'coords3D' (temp 3-component vector of float)
+0:41 add second child into first child (temp 4-component vector of float)
+0:41 'color' (temp 4-component vector of float)
+0:41 texture (global 4-component vector of float)
+0:41 'texSampler3D' (uniform sampler3D)
+0:41 'coords3D' (temp 3-component vector of float)
+0:41 'bias' (temp float)
+0:42 add second child into first child (temp 4-component vector of float)
+0:42 'color' (temp 4-component vector of float)
+0:42 textureProj (global 4-component vector of float)
+0:42 'texSampler3D' (uniform sampler3D)
+0:42 'coords4D' (temp 4-component vector of float)
+0:43 add second child into first child (temp 4-component vector of float)
+0:43 'color' (temp 4-component vector of float)
+0:43 textureProj (global 4-component vector of float)
+0:43 'texSampler3D' (uniform sampler3D)
+0:43 'coords4D' (temp 4-component vector of float)
+0:43 'bias' (temp float)
+0:45 add second child into first child (temp 4-component vector of float)
+0:45 'color' (temp 4-component vector of float)
+0:45 texture (global 4-component vector of float)
+0:45 'texSamplerCube' (uniform samplerCube)
+0:45 'coords3D' (temp 3-component vector of float)
+0:46 add second child into first child (temp 4-component vector of float)
+0:46 'color' (temp 4-component vector of float)
+0:46 texture (global 4-component vector of float)
+0:46 'texSamplerCube' (uniform samplerCube)
+0:46 'coords3D' (temp 3-component vector of float)
+0:46 'bias' (temp float)
+0:48 add second child into first child (temp 4-component vector of float)
+0:48 'color' (temp 4-component vector of float)
+0:48 texture (global 4-component vector of float)
+0:48 'shadowSampler1D' (uniform sampler1DShadow)
+0:48 'coords3D' (temp 3-component vector of float)
+0:49 add second child into first child (temp 4-component vector of float)
+0:49 'color' (temp 4-component vector of float)
+0:49 texture (global 4-component vector of float)
+0:49 'shadowSampler1D' (uniform sampler1DShadow)
+0:49 'coords3D' (temp 3-component vector of float)
+0:49 'bias' (temp float)
+0:50 add second child into first child (temp 4-component vector of float)
+0:50 'color' (temp 4-component vector of float)
+0:50 texture (global 4-component vector of float)
+0:50 'shadowSampler2D' (uniform sampler2DShadow)
+0:50 'coords3D' (temp 3-component vector of float)
+0:51 add second child into first child (temp 4-component vector of float)
+0:51 'color' (temp 4-component vector of float)
+0:51 texture (global 4-component vector of float)
+0:51 'shadowSampler2D' (uniform sampler2DShadow)
+0:51 'coords3D' (temp 3-component vector of float)
+0:51 'bias' (temp float)
+0:52 add second child into first child (temp 4-component vector of float)
+0:52 'color' (temp 4-component vector of float)
+0:52 textureProj (global 4-component vector of float)
+0:52 'shadowSampler1D' (uniform sampler1DShadow)
+0:52 'coords4D' (temp 4-component vector of float)
+0:53 add second child into first child (temp 4-component vector of float)
+0:53 'color' (temp 4-component vector of float)
+0:53 textureProj (global 4-component vector of float)
+0:53 'shadowSampler1D' (uniform sampler1DShadow)
+0:53 'coords4D' (temp 4-component vector of float)
+0:53 'bias' (temp float)
+0:54 add second child into first child (temp 4-component vector of float)
+0:54 'color' (temp 4-component vector of float)
+0:54 textureProj (global 4-component vector of float)
+0:54 'shadowSampler2D' (uniform sampler2DShadow)
+0:54 'coords4D' (temp 4-component vector of float)
+0:55 add second child into first child (temp 4-component vector of float)
+0:55 'color' (temp 4-component vector of float)
+0:55 textureProj (global 4-component vector of float)
+0:55 'shadowSampler2D' (uniform sampler2DShadow)
+0:55 'coords4D' (temp 4-component vector of float)
+0:55 'bias' (temp float)
+0:57 Sequence
+0:57 move second child to first child (temp 2-component vector of int)
+0:57 'iCoords2D' (temp 2-component vector of int)
+0:57 Constant:
+0:57 0 (const int)
+0:57 5 (const int)
+0:58 Sequence
+0:58 move second child to first child (temp int)
+0:58 'iLod' (temp int)
+0:58 Constant:
+0:58 1 (const int)
+0:60 add second child into first child (temp 4-component vector of float)
+0:60 'color' (temp 4-component vector of float)
+0:60 textureFetch (global 4-component vector of float)
+0:60 'texSampler2D' (uniform sampler2D)
+0:60 'iCoords2D' (temp 2-component vector of int)
+0:60 'iLod' (temp int)
+0:62 Sequence
+0:62 move second child to first child (temp 2-component vector of float)
+0:62 'gradX' (temp 2-component vector of float)
+0:62 dPdx (global 2-component vector of float)
+0:62 'coords2D' (smooth in 2-component vector of float)
+0:63 Sequence
+0:63 move second child to first child (temp 2-component vector of float)
+0:63 'gradY' (temp 2-component vector of float)
+0:63 dPdy (global 2-component vector of float)
+0:63 'coords2D' (smooth in 2-component vector of float)
+0:66 add second child into first child (temp 4-component vector of float)
+0:66 'color' (temp 4-component vector of float)
+0:66 textureGrad (global 4-component vector of float)
+0:66 'texSampler2D' (uniform sampler2D)
+0:66 'coords2D' (smooth in 2-component vector of float)
+0:66 'gradX' (temp 2-component vector of float)
+0:66 'gradY' (temp 2-component vector of float)
+0:67 add second child into first child (temp 4-component vector of float)
+0:67 'color' (temp 4-component vector of float)
+0:67 textureProjGrad (global 4-component vector of float)
+0:67 'texSampler2D' (uniform sampler2D)
+0:67 Construct vec3 (temp 3-component vector of float)
+0:67 'coords2D' (smooth in 2-component vector of float)
+0:67 'proj' (temp float)
+0:67 'gradX' (temp 2-component vector of float)
+0:67 'gradY' (temp 2-component vector of float)
+0:68 add second child into first child (temp 4-component vector of float)
+0:68 'color' (temp 4-component vector of float)
+0:68 textureGradOffset (global 4-component vector of float)
+0:68 'texSampler2D' (uniform sampler2D)
+0:68 'coords2D' (smooth in 2-component vector of float)
+0:68 'gradX' (temp 2-component vector of float)
+0:68 'gradY' (temp 2-component vector of float)
+0:68 Constant:
+0:68 3 (const int)
+0:68 -7 (const int)
+0:69 add second child into first child (temp 4-component vector of float)
+0:69 'color' (temp 4-component vector of float)
+0:69 textureProjGradOffset (global 4-component vector of float)
+0:69 'texSampler2D' (uniform sampler2D)
+0:69 'coords3D' (temp 3-component vector of float)
+0:69 'gradX' (temp 2-component vector of float)
+0:69 'gradY' (temp 2-component vector of float)
+0:69 Constant:
+0:69 3 (const int)
+0:69 -7 (const int)
+0:70 add second child into first child (temp 4-component vector of float)
+0:70 'color' (temp 4-component vector of float)
+0:70 textureGrad (global float)
+0:70 'shadowSampler2D' (uniform sampler2DShadow)
+0:70 Construct vec3 (temp 3-component vector of float)
+0:70 'coords2D' (smooth in 2-component vector of float)
+0:70 'lod' (temp float)
+0:70 'gradX' (temp 2-component vector of float)
+0:70 'gradY' (temp 2-component vector of float)
+0:72 move second child to first child (temp 4-component vector of float)
+0:72 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:72 mix (global 4-component vector of float)
+0:72 'color' (temp 4-component vector of float)
+0:72 'u' (uniform 4-component vector of float)
+0:72 component-wise multiply (temp float)
+0:72 'blend' (uniform float)
+0:72 'blendscale' (temp float)
+0:? Linker Objects
+0:? 'texSampler1D' (uniform sampler1D)
+0:? 'texSampler2D' (uniform sampler2D)
+0:? 'texSampler3D' (uniform sampler3D)
+0:? 'texSamplerCube' (uniform samplerCube)
+0:? 'shadowSampler1D' (uniform sampler1DShadow)
+0:? 'shadowSampler2D' (uniform sampler2DShadow)
+0:? 'blend' (uniform float)
+0:? 'scale' (uniform 2-component vector of float)
+0:? 'u' (uniform 4-component vector of float)
+0:? 't' (smooth in 2-component vector of float)
+0:? 'coords2D' (smooth in 2-component vector of float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/tokenLength.vert.out b/chromium/third_party/glslang/src/Test/baseResults/tokenLength.vert.out
new file mode 100644
index 00000000000..26dabf0c08c
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/tokenLength.vert.out
@@ -0,0 +1,222 @@
+tokenLength.vert
+ERROR: 0:9: '' : numeric literal too big
+ERROR: 0:10: '' : numeric literal too big
+ERROR: 0:13: '' : octal literal too big
+ERROR: 0:14: '' : hexidecimal literal too big
+ERROR: 0:23: '' : float literal too long
+ERROR: 0:32: '' : name too long
+ERROR: 0:33: '' : hexidecimal literal too big
+ERROR: 0:34: '' : numeric literal too long
+ERROR: 0:34: '' : octal literal too big
+ERROR: 0:35: '' : numeric literal too long
+ERROR: 0:35: '' : numeric literal too big
+ERROR: 0:36: '' : float literal too long
+ERROR: 0:36: '' : float literal too long
+ERROR: 0:36: '' : float literal too long
+WARNING: 0:39: '#extension' : extension not supported: a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhooooooooooooooooooooooooooooooohhhhhhhhhhhhhhhhh01234
+ERROR: 0:40: '' : name too long
+WARNING: 0:40: '#extension' : extension not supported: a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhooooooooooooooooooooooooooooooohhhhhhhhhhhhhhhhh01234
+ERROR: 0:43: '' : name too long
+ERROR: 0:44: '#extension' : ':' missing after extension name
+ERROR: 0:47: '#error' : in long non - zero # if
+ERROR: 0:50: '#error' : in long zero # if
+ERROR: 0:52: '' : numeric literal too long
+ERROR: 0:53: '#error' : in too long # if
+ERROR: 0:56: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+ERROR: 0:59: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+ERROR: 0:62: '' : name too long
+ERROR: 0:62: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+ERROR: 0:67: '' : numeric literal too long
+ERROR: 0:70: '' : name too long
+ERROR: 0:70: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+ERROR: 28 compilation errors. No code generated.
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:9 Sequence
+0:9 move second child to first child (temp highp int)
+0:9 'E1' (global highp int)
+0:9 Constant:
+0:9 -1 (const int)
+0:10 Sequence
+0:10 move second child to first child (temp highp int)
+0:10 'E2' (global highp int)
+0:10 Constant:
+0:10 -1 (const int)
+0:11 Sequence
+0:11 move second child to first child (temp highp int)
+0:11 'B' (global highp int)
+0:11 Constant:
+0:11 -1 (const int)
+0:13 Sequence
+0:13 move second child to first child (temp highp int)
+0:13 'OE' (global highp int)
+0:13 Constant:
+0:13 1073741823 (const int)
+0:14 Sequence
+0:14 move second child to first child (temp highp int)
+0:14 'HE' (global highp int)
+0:14 Constant:
+0:14 -1 (const int)
+0:17 Sequence
+0:17 move second child to first child (temp highp float)
+0:17 'F' (global highp float)
+0:17 Constant:
+0:17 1.012346
+0:20 Sequence
+0:20 move second child to first child (temp highp float)
+0:20 'G' (global highp float)
+0:20 Constant:
+0:20 1.012346
+0:23 Sequence
+0:23 move second child to first child (temp highp float)
+0:23 'E3' (global highp float)
+0:23 Constant:
+0:23 12.000000
+0:25 Function Definition: main( (global void)
+0:25 Function Parameters:
+0:27 Sequence
+0:27 move second child to first child (temp highp 4-component vector of float)
+0:27 'gl_Position' (gl_Position highp 4-component vector of float Position)
+0:28 Construct vec4 (temp highp 4-component vector of float)
+0:27 'ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789' (in highp float)
+0:28 Convert int to float (temp highp float)
+0:28 'B' (global highp int)
+0:28 'F' (global highp float)
+0:28 'G' (global highp float)
+0:33 Sequence
+0:33 move second child to first child (temp highp int)
+0:33 'superH' (global highp int)
+0:33 Constant:
+0:33 -1 (const int)
+0:34 Sequence
+0:34 move second child to first child (temp highp int)
+0:34 'superO' (global highp int)
+0:34 Constant:
+0:34 1073741823 (const int)
+0:35 Sequence
+0:35 move second child to first child (temp highp int)
+0:35 'superI' (global highp int)
+0:35 Constant:
+0:35 -1 (const int)
+0:36 Sequence
+0:36 move second child to first child (temp highp float)
+0:36 'superF' (global highp float)
+0:36 Constant:
+0:36 inf
+0:? Linker Objects
+0:? 'BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789' (in highp float)
+0:? 'ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789' (in highp float)
+0:? 'E1' (global highp int)
+0:? 'E2' (global highp int)
+0:? 'B' (global highp int)
+0:? 'OE' (global highp int)
+0:? 'HE' (global highp int)
+0:? 'F' (global highp float)
+0:? 'G' (global highp float)
+0:? 'E3' (global highp float)
+0:? 'BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789B' (global highp float)
+0:? 'superH' (global highp int)
+0:? 'superO' (global highp int)
+0:? 'superI' (global highp int)
+0:? 'superF' (global highp float)
+0:? 'gl_VertexID' (gl_VertexId highp int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+
+
+Linked vertex stage:
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:9 Sequence
+0:9 move second child to first child (temp highp int)
+0:9 'E1' (global highp int)
+0:9 Constant:
+0:9 -1 (const int)
+0:10 Sequence
+0:10 move second child to first child (temp highp int)
+0:10 'E2' (global highp int)
+0:10 Constant:
+0:10 -1 (const int)
+0:11 Sequence
+0:11 move second child to first child (temp highp int)
+0:11 'B' (global highp int)
+0:11 Constant:
+0:11 -1 (const int)
+0:13 Sequence
+0:13 move second child to first child (temp highp int)
+0:13 'OE' (global highp int)
+0:13 Constant:
+0:13 1073741823 (const int)
+0:14 Sequence
+0:14 move second child to first child (temp highp int)
+0:14 'HE' (global highp int)
+0:14 Constant:
+0:14 -1 (const int)
+0:17 Sequence
+0:17 move second child to first child (temp highp float)
+0:17 'F' (global highp float)
+0:17 Constant:
+0:17 1.012346
+0:20 Sequence
+0:20 move second child to first child (temp highp float)
+0:20 'G' (global highp float)
+0:20 Constant:
+0:20 1.012346
+0:23 Sequence
+0:23 move second child to first child (temp highp float)
+0:23 'E3' (global highp float)
+0:23 Constant:
+0:23 12.000000
+0:25 Function Definition: main( (global void)
+0:25 Function Parameters:
+0:27 Sequence
+0:27 move second child to first child (temp highp 4-component vector of float)
+0:27 'gl_Position' (gl_Position highp 4-component vector of float Position)
+0:28 Construct vec4 (temp highp 4-component vector of float)
+0:27 'ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789' (in highp float)
+0:28 Convert int to float (temp highp float)
+0:28 'B' (global highp int)
+0:28 'F' (global highp float)
+0:28 'G' (global highp float)
+0:33 Sequence
+0:33 move second child to first child (temp highp int)
+0:33 'superH' (global highp int)
+0:33 Constant:
+0:33 -1 (const int)
+0:34 Sequence
+0:34 move second child to first child (temp highp int)
+0:34 'superO' (global highp int)
+0:34 Constant:
+0:34 1073741823 (const int)
+0:35 Sequence
+0:35 move second child to first child (temp highp int)
+0:35 'superI' (global highp int)
+0:35 Constant:
+0:35 -1 (const int)
+0:36 Sequence
+0:36 move second child to first child (temp highp float)
+0:36 'superF' (global highp float)
+0:36 Constant:
+0:36 inf
+0:? Linker Objects
+0:? 'BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789' (in highp float)
+0:? 'ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789' (in highp float)
+0:? 'E1' (global highp int)
+0:? 'E2' (global highp int)
+0:? 'B' (global highp int)
+0:? 'OE' (global highp int)
+0:? 'HE' (global highp int)
+0:? 'F' (global highp float)
+0:? 'G' (global highp float)
+0:? 'E3' (global highp float)
+0:? 'BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789B' (global highp float)
+0:? 'superH' (global highp int)
+0:? 'superO' (global highp int)
+0:? 'superI' (global highp int)
+0:? 'superF' (global highp float)
+0:? 'gl_VertexID' (gl_VertexId highp int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/types.frag.out b/chromium/third_party/glslang/src/Test/baseResults/types.frag.out
new file mode 100644
index 00000000000..475a989c7e4
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/types.frag.out
@@ -0,0 +1,677 @@
+types.frag
+Shader version: 130
+0:? Sequence
+0:33 Function Definition: main( (global void)
+0:33 Function Parameters:
+0:35 Sequence
+0:35 Sequence
+0:35 move second child to first child (temp bool)
+0:35 'b' (temp bool)
+0:35 logical-and (temp bool)
+0:35 'u_b' (uniform bool)
+0:35 'i_b' (uniform bool)
+0:36 Sequence
+0:36 move second child to first child (temp 2-component vector of bool)
+0:36 'b2' (temp 2-component vector of bool)
+0:36 Construct bvec2 (temp 2-component vector of bool)
+0:36 logical-and (temp bool)
+0:36 logical-and (temp bool)
+0:36 logical-and (temp bool)
+0:36 direct index (temp bool)
+0:36 'u_b2' (uniform 2-component vector of bool)
+0:36 Constant:
+0:36 0 (const int)
+0:36 direct index (temp bool)
+0:36 'i_b2' (uniform 2-component vector of bool)
+0:36 Constant:
+0:36 0 (const int)
+0:36 direct index (temp bool)
+0:36 'u_b2' (uniform 2-component vector of bool)
+0:36 Constant:
+0:36 1 (const int)
+0:36 direct index (temp bool)
+0:36 'i_b2' (uniform 2-component vector of bool)
+0:36 Constant:
+0:36 1 (const int)
+0:37 Sequence
+0:37 move second child to first child (temp 3-component vector of bool)
+0:37 'b3' (temp 3-component vector of bool)
+0:37 Construct bvec3 (temp 3-component vector of bool)
+0:37 logical-and (temp bool)
+0:37 logical-and (temp bool)
+0:37 logical-and (temp bool)
+0:37 logical-and (temp bool)
+0:37 logical-and (temp bool)
+0:37 direct index (temp bool)
+0:37 'u_b3' (uniform 3-component vector of bool)
+0:37 Constant:
+0:37 0 (const int)
+0:37 direct index (temp bool)
+0:37 'i_b3' (uniform 3-component vector of bool)
+0:37 Constant:
+0:37 0 (const int)
+0:37 direct index (temp bool)
+0:37 'u_b3' (uniform 3-component vector of bool)
+0:37 Constant:
+0:37 1 (const int)
+0:37 direct index (temp bool)
+0:37 'i_b3' (uniform 3-component vector of bool)
+0:37 Constant:
+0:37 1 (const int)
+0:37 direct index (temp bool)
+0:37 'u_b3' (uniform 3-component vector of bool)
+0:37 Constant:
+0:37 2 (const int)
+0:37 direct index (temp bool)
+0:37 'i_b3' (uniform 3-component vector of bool)
+0:37 Constant:
+0:37 2 (const int)
+0:38 Sequence
+0:38 move second child to first child (temp 4-component vector of bool)
+0:38 'b4' (temp 4-component vector of bool)
+0:38 Construct bvec4 (temp 4-component vector of bool)
+0:38 logical-and (temp bool)
+0:38 logical-and (temp bool)
+0:38 logical-and (temp bool)
+0:38 logical-and (temp bool)
+0:38 logical-and (temp bool)
+0:38 logical-and (temp bool)
+0:38 logical-and (temp bool)
+0:38 direct index (temp bool)
+0:38 'u_b4' (uniform 4-component vector of bool)
+0:38 Constant:
+0:38 0 (const int)
+0:38 direct index (temp bool)
+0:38 'i_b4' (uniform 4-component vector of bool)
+0:38 Constant:
+0:38 0 (const int)
+0:38 direct index (temp bool)
+0:38 'u_b4' (uniform 4-component vector of bool)
+0:38 Constant:
+0:38 1 (const int)
+0:38 direct index (temp bool)
+0:38 'i_b4' (uniform 4-component vector of bool)
+0:38 Constant:
+0:38 1 (const int)
+0:38 direct index (temp bool)
+0:38 'u_b4' (uniform 4-component vector of bool)
+0:38 Constant:
+0:38 2 (const int)
+0:38 direct index (temp bool)
+0:38 'i_b4' (uniform 4-component vector of bool)
+0:38 Constant:
+0:38 2 (const int)
+0:38 direct index (temp bool)
+0:38 'u_b4' (uniform 4-component vector of bool)
+0:38 Constant:
+0:38 3 (const int)
+0:38 direct index (temp bool)
+0:38 'i_b4' (uniform 4-component vector of bool)
+0:38 Constant:
+0:38 3 (const int)
+0:40 Sequence
+0:40 move second child to first child (temp int)
+0:40 'i' (temp int)
+0:40 add (temp int)
+0:40 'u_i' (uniform int)
+0:40 'i_i' (flat in int)
+0:41 Sequence
+0:41 move second child to first child (temp 2-component vector of int)
+0:41 'i2' (temp 2-component vector of int)
+0:41 add (temp 2-component vector of int)
+0:41 'u_i2' (uniform 2-component vector of int)
+0:41 'i_i2' (flat in 2-component vector of int)
+0:42 Sequence
+0:42 move second child to first child (temp 3-component vector of int)
+0:42 'i3' (temp 3-component vector of int)
+0:42 add (temp 3-component vector of int)
+0:42 'u_i3' (uniform 3-component vector of int)
+0:42 'i_i3' (flat in 3-component vector of int)
+0:43 Sequence
+0:43 move second child to first child (temp 4-component vector of int)
+0:43 'i4' (temp 4-component vector of int)
+0:43 add (temp 4-component vector of int)
+0:43 'u_i4' (uniform 4-component vector of int)
+0:43 'i_i4' (flat in 4-component vector of int)
+0:45 Sequence
+0:45 move second child to first child (temp float)
+0:45 'f' (temp float)
+0:45 add (temp float)
+0:45 'u_f' (uniform float)
+0:45 'i_f' (smooth in float)
+0:46 Sequence
+0:46 move second child to first child (temp 2-component vector of float)
+0:46 'f2' (temp 2-component vector of float)
+0:46 add (temp 2-component vector of float)
+0:46 'u_f2' (uniform 2-component vector of float)
+0:46 'i_f2' (smooth in 2-component vector of float)
+0:47 Sequence
+0:47 move second child to first child (temp 3-component vector of float)
+0:47 'f3' (temp 3-component vector of float)
+0:47 add (temp 3-component vector of float)
+0:47 'u_f3' (uniform 3-component vector of float)
+0:47 'i_f3' (smooth in 3-component vector of float)
+0:48 Sequence
+0:48 move second child to first child (temp 4-component vector of float)
+0:48 'f4' (temp 4-component vector of float)
+0:48 add (temp 4-component vector of float)
+0:48 'u_f4' (uniform 4-component vector of float)
+0:48 'i_f4' (smooth in 4-component vector of float)
+0:50 move second child to first child (temp 4-component vector of float)
+0:50 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:60 Test condition and select (temp 4-component vector of float)
+0:60 Condition
+0:59 logical-or (temp bool)
+0:58 logical-or (temp bool)
+0:57 logical-or (temp bool)
+0:56 logical-or (temp bool)
+0:55 logical-or (temp bool)
+0:54 logical-or (temp bool)
+0:53 logical-or (temp bool)
+0:52 logical-or (temp bool)
+0:51 logical-or (temp bool)
+0:51 'b' (temp bool)
+0:52 direct index (temp bool)
+0:52 'b2' (temp 2-component vector of bool)
+0:52 Constant:
+0:52 0 (const int)
+0:53 direct index (temp bool)
+0:53 'b2' (temp 2-component vector of bool)
+0:53 Constant:
+0:53 1 (const int)
+0:54 direct index (temp bool)
+0:54 'b3' (temp 3-component vector of bool)
+0:54 Constant:
+0:54 0 (const int)
+0:55 direct index (temp bool)
+0:55 'b3' (temp 3-component vector of bool)
+0:55 Constant:
+0:55 1 (const int)
+0:56 direct index (temp bool)
+0:56 'b3' (temp 3-component vector of bool)
+0:56 Constant:
+0:56 2 (const int)
+0:57 direct index (temp bool)
+0:57 'b4' (temp 4-component vector of bool)
+0:57 Constant:
+0:57 0 (const int)
+0:58 direct index (temp bool)
+0:58 'b4' (temp 4-component vector of bool)
+0:58 Constant:
+0:58 1 (const int)
+0:59 direct index (temp bool)
+0:59 'b4' (temp 4-component vector of bool)
+0:59 Constant:
+0:59 2 (const int)
+0:60 direct index (temp bool)
+0:60 'b4' (temp 4-component vector of bool)
+0:60 Constant:
+0:60 3 (const int)
+0:60 true case
+0:79 Construct vec4 (temp 4-component vector of float)
+0:79 add (temp float)
+0:78 add (temp float)
+0:77 add (temp float)
+0:76 add (temp float)
+0:75 add (temp float)
+0:74 add (temp float)
+0:73 add (temp float)
+0:72 add (temp float)
+0:71 add (temp float)
+0:70 add (temp float)
+0:69 Convert int to float (temp float)
+0:69 add (temp int)
+0:68 add (temp int)
+0:67 add (temp int)
+0:66 add (temp int)
+0:65 add (temp int)
+0:64 add (temp int)
+0:63 add (temp int)
+0:62 add (temp int)
+0:61 add (temp int)
+0:61 'i' (temp int)
+0:62 direct index (temp int)
+0:62 'i2' (temp 2-component vector of int)
+0:62 Constant:
+0:62 0 (const int)
+0:63 direct index (temp int)
+0:63 'i2' (temp 2-component vector of int)
+0:63 Constant:
+0:63 1 (const int)
+0:64 direct index (temp int)
+0:64 'i3' (temp 3-component vector of int)
+0:64 Constant:
+0:64 0 (const int)
+0:65 direct index (temp int)
+0:65 'i3' (temp 3-component vector of int)
+0:65 Constant:
+0:65 1 (const int)
+0:66 direct index (temp int)
+0:66 'i3' (temp 3-component vector of int)
+0:66 Constant:
+0:66 2 (const int)
+0:67 direct index (temp int)
+0:67 'i4' (temp 4-component vector of int)
+0:67 Constant:
+0:67 0 (const int)
+0:68 direct index (temp int)
+0:68 'i4' (temp 4-component vector of int)
+0:68 Constant:
+0:68 1 (const int)
+0:69 direct index (temp int)
+0:69 'i4' (temp 4-component vector of int)
+0:69 Constant:
+0:69 2 (const int)
+0:70 direct index (temp int)
+0:70 'i4' (temp 4-component vector of int)
+0:70 Constant:
+0:70 3 (const int)
+0:71 'f' (temp float)
+0:72 direct index (temp float)
+0:72 'f2' (temp 2-component vector of float)
+0:72 Constant:
+0:72 0 (const int)
+0:73 direct index (temp float)
+0:73 'f2' (temp 2-component vector of float)
+0:73 Constant:
+0:73 1 (const int)
+0:74 direct index (temp float)
+0:74 'f3' (temp 3-component vector of float)
+0:74 Constant:
+0:74 0 (const int)
+0:75 direct index (temp float)
+0:75 'f3' (temp 3-component vector of float)
+0:75 Constant:
+0:75 1 (const int)
+0:76 direct index (temp float)
+0:76 'f3' (temp 3-component vector of float)
+0:76 Constant:
+0:76 2 (const int)
+0:77 direct index (temp float)
+0:77 'f4' (temp 4-component vector of float)
+0:77 Constant:
+0:77 0 (const int)
+0:78 direct index (temp float)
+0:78 'f4' (temp 4-component vector of float)
+0:78 Constant:
+0:78 1 (const int)
+0:79 direct index (temp float)
+0:79 'f4' (temp 4-component vector of float)
+0:79 Constant:
+0:79 2 (const int)
+0:80 direct index (temp float)
+0:80 'f4' (temp 4-component vector of float)
+0:80 Constant:
+0:80 3 (const int)
+0:60 false case
+0:80 Constant:
+0:80 1.000000
+0:80 1.000000
+0:80 1.000000
+0:80 1.000000
+0:? Linker Objects
+0:? 'u_b' (uniform bool)
+0:? 'u_b2' (uniform 2-component vector of bool)
+0:? 'u_b3' (uniform 3-component vector of bool)
+0:? 'u_b4' (uniform 4-component vector of bool)
+0:? 'u_i' (uniform int)
+0:? 'u_i2' (uniform 2-component vector of int)
+0:? 'u_i3' (uniform 3-component vector of int)
+0:? 'u_i4' (uniform 4-component vector of int)
+0:? 'u_f' (uniform float)
+0:? 'u_f2' (uniform 2-component vector of float)
+0:? 'u_f3' (uniform 3-component vector of float)
+0:? 'u_f4' (uniform 4-component vector of float)
+0:? 'i_b' (uniform bool)
+0:? 'i_b2' (uniform 2-component vector of bool)
+0:? 'i_b3' (uniform 3-component vector of bool)
+0:? 'i_b4' (uniform 4-component vector of bool)
+0:? 'i_i' (flat in int)
+0:? 'i_i2' (flat in 2-component vector of int)
+0:? 'i_i3' (flat in 3-component vector of int)
+0:? 'i_i4' (flat in 4-component vector of int)
+0:? 'i_f' (smooth in float)
+0:? 'i_f2' (smooth in 2-component vector of float)
+0:? 'i_f3' (smooth in 3-component vector of float)
+0:? 'i_f4' (smooth in 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+0:? Sequence
+0:33 Function Definition: main( (global void)
+0:33 Function Parameters:
+0:35 Sequence
+0:35 Sequence
+0:35 move second child to first child (temp bool)
+0:35 'b' (temp bool)
+0:35 logical-and (temp bool)
+0:35 'u_b' (uniform bool)
+0:35 'i_b' (uniform bool)
+0:36 Sequence
+0:36 move second child to first child (temp 2-component vector of bool)
+0:36 'b2' (temp 2-component vector of bool)
+0:36 Construct bvec2 (temp 2-component vector of bool)
+0:36 logical-and (temp bool)
+0:36 logical-and (temp bool)
+0:36 logical-and (temp bool)
+0:36 direct index (temp bool)
+0:36 'u_b2' (uniform 2-component vector of bool)
+0:36 Constant:
+0:36 0 (const int)
+0:36 direct index (temp bool)
+0:36 'i_b2' (uniform 2-component vector of bool)
+0:36 Constant:
+0:36 0 (const int)
+0:36 direct index (temp bool)
+0:36 'u_b2' (uniform 2-component vector of bool)
+0:36 Constant:
+0:36 1 (const int)
+0:36 direct index (temp bool)
+0:36 'i_b2' (uniform 2-component vector of bool)
+0:36 Constant:
+0:36 1 (const int)
+0:37 Sequence
+0:37 move second child to first child (temp 3-component vector of bool)
+0:37 'b3' (temp 3-component vector of bool)
+0:37 Construct bvec3 (temp 3-component vector of bool)
+0:37 logical-and (temp bool)
+0:37 logical-and (temp bool)
+0:37 logical-and (temp bool)
+0:37 logical-and (temp bool)
+0:37 logical-and (temp bool)
+0:37 direct index (temp bool)
+0:37 'u_b3' (uniform 3-component vector of bool)
+0:37 Constant:
+0:37 0 (const int)
+0:37 direct index (temp bool)
+0:37 'i_b3' (uniform 3-component vector of bool)
+0:37 Constant:
+0:37 0 (const int)
+0:37 direct index (temp bool)
+0:37 'u_b3' (uniform 3-component vector of bool)
+0:37 Constant:
+0:37 1 (const int)
+0:37 direct index (temp bool)
+0:37 'i_b3' (uniform 3-component vector of bool)
+0:37 Constant:
+0:37 1 (const int)
+0:37 direct index (temp bool)
+0:37 'u_b3' (uniform 3-component vector of bool)
+0:37 Constant:
+0:37 2 (const int)
+0:37 direct index (temp bool)
+0:37 'i_b3' (uniform 3-component vector of bool)
+0:37 Constant:
+0:37 2 (const int)
+0:38 Sequence
+0:38 move second child to first child (temp 4-component vector of bool)
+0:38 'b4' (temp 4-component vector of bool)
+0:38 Construct bvec4 (temp 4-component vector of bool)
+0:38 logical-and (temp bool)
+0:38 logical-and (temp bool)
+0:38 logical-and (temp bool)
+0:38 logical-and (temp bool)
+0:38 logical-and (temp bool)
+0:38 logical-and (temp bool)
+0:38 logical-and (temp bool)
+0:38 direct index (temp bool)
+0:38 'u_b4' (uniform 4-component vector of bool)
+0:38 Constant:
+0:38 0 (const int)
+0:38 direct index (temp bool)
+0:38 'i_b4' (uniform 4-component vector of bool)
+0:38 Constant:
+0:38 0 (const int)
+0:38 direct index (temp bool)
+0:38 'u_b4' (uniform 4-component vector of bool)
+0:38 Constant:
+0:38 1 (const int)
+0:38 direct index (temp bool)
+0:38 'i_b4' (uniform 4-component vector of bool)
+0:38 Constant:
+0:38 1 (const int)
+0:38 direct index (temp bool)
+0:38 'u_b4' (uniform 4-component vector of bool)
+0:38 Constant:
+0:38 2 (const int)
+0:38 direct index (temp bool)
+0:38 'i_b4' (uniform 4-component vector of bool)
+0:38 Constant:
+0:38 2 (const int)
+0:38 direct index (temp bool)
+0:38 'u_b4' (uniform 4-component vector of bool)
+0:38 Constant:
+0:38 3 (const int)
+0:38 direct index (temp bool)
+0:38 'i_b4' (uniform 4-component vector of bool)
+0:38 Constant:
+0:38 3 (const int)
+0:40 Sequence
+0:40 move second child to first child (temp int)
+0:40 'i' (temp int)
+0:40 add (temp int)
+0:40 'u_i' (uniform int)
+0:40 'i_i' (flat in int)
+0:41 Sequence
+0:41 move second child to first child (temp 2-component vector of int)
+0:41 'i2' (temp 2-component vector of int)
+0:41 add (temp 2-component vector of int)
+0:41 'u_i2' (uniform 2-component vector of int)
+0:41 'i_i2' (flat in 2-component vector of int)
+0:42 Sequence
+0:42 move second child to first child (temp 3-component vector of int)
+0:42 'i3' (temp 3-component vector of int)
+0:42 add (temp 3-component vector of int)
+0:42 'u_i3' (uniform 3-component vector of int)
+0:42 'i_i3' (flat in 3-component vector of int)
+0:43 Sequence
+0:43 move second child to first child (temp 4-component vector of int)
+0:43 'i4' (temp 4-component vector of int)
+0:43 add (temp 4-component vector of int)
+0:43 'u_i4' (uniform 4-component vector of int)
+0:43 'i_i4' (flat in 4-component vector of int)
+0:45 Sequence
+0:45 move second child to first child (temp float)
+0:45 'f' (temp float)
+0:45 add (temp float)
+0:45 'u_f' (uniform float)
+0:45 'i_f' (smooth in float)
+0:46 Sequence
+0:46 move second child to first child (temp 2-component vector of float)
+0:46 'f2' (temp 2-component vector of float)
+0:46 add (temp 2-component vector of float)
+0:46 'u_f2' (uniform 2-component vector of float)
+0:46 'i_f2' (smooth in 2-component vector of float)
+0:47 Sequence
+0:47 move second child to first child (temp 3-component vector of float)
+0:47 'f3' (temp 3-component vector of float)
+0:47 add (temp 3-component vector of float)
+0:47 'u_f3' (uniform 3-component vector of float)
+0:47 'i_f3' (smooth in 3-component vector of float)
+0:48 Sequence
+0:48 move second child to first child (temp 4-component vector of float)
+0:48 'f4' (temp 4-component vector of float)
+0:48 add (temp 4-component vector of float)
+0:48 'u_f4' (uniform 4-component vector of float)
+0:48 'i_f4' (smooth in 4-component vector of float)
+0:50 move second child to first child (temp 4-component vector of float)
+0:50 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:60 Test condition and select (temp 4-component vector of float)
+0:60 Condition
+0:59 logical-or (temp bool)
+0:58 logical-or (temp bool)
+0:57 logical-or (temp bool)
+0:56 logical-or (temp bool)
+0:55 logical-or (temp bool)
+0:54 logical-or (temp bool)
+0:53 logical-or (temp bool)
+0:52 logical-or (temp bool)
+0:51 logical-or (temp bool)
+0:51 'b' (temp bool)
+0:52 direct index (temp bool)
+0:52 'b2' (temp 2-component vector of bool)
+0:52 Constant:
+0:52 0 (const int)
+0:53 direct index (temp bool)
+0:53 'b2' (temp 2-component vector of bool)
+0:53 Constant:
+0:53 1 (const int)
+0:54 direct index (temp bool)
+0:54 'b3' (temp 3-component vector of bool)
+0:54 Constant:
+0:54 0 (const int)
+0:55 direct index (temp bool)
+0:55 'b3' (temp 3-component vector of bool)
+0:55 Constant:
+0:55 1 (const int)
+0:56 direct index (temp bool)
+0:56 'b3' (temp 3-component vector of bool)
+0:56 Constant:
+0:56 2 (const int)
+0:57 direct index (temp bool)
+0:57 'b4' (temp 4-component vector of bool)
+0:57 Constant:
+0:57 0 (const int)
+0:58 direct index (temp bool)
+0:58 'b4' (temp 4-component vector of bool)
+0:58 Constant:
+0:58 1 (const int)
+0:59 direct index (temp bool)
+0:59 'b4' (temp 4-component vector of bool)
+0:59 Constant:
+0:59 2 (const int)
+0:60 direct index (temp bool)
+0:60 'b4' (temp 4-component vector of bool)
+0:60 Constant:
+0:60 3 (const int)
+0:60 true case
+0:79 Construct vec4 (temp 4-component vector of float)
+0:79 add (temp float)
+0:78 add (temp float)
+0:77 add (temp float)
+0:76 add (temp float)
+0:75 add (temp float)
+0:74 add (temp float)
+0:73 add (temp float)
+0:72 add (temp float)
+0:71 add (temp float)
+0:70 add (temp float)
+0:69 Convert int to float (temp float)
+0:69 add (temp int)
+0:68 add (temp int)
+0:67 add (temp int)
+0:66 add (temp int)
+0:65 add (temp int)
+0:64 add (temp int)
+0:63 add (temp int)
+0:62 add (temp int)
+0:61 add (temp int)
+0:61 'i' (temp int)
+0:62 direct index (temp int)
+0:62 'i2' (temp 2-component vector of int)
+0:62 Constant:
+0:62 0 (const int)
+0:63 direct index (temp int)
+0:63 'i2' (temp 2-component vector of int)
+0:63 Constant:
+0:63 1 (const int)
+0:64 direct index (temp int)
+0:64 'i3' (temp 3-component vector of int)
+0:64 Constant:
+0:64 0 (const int)
+0:65 direct index (temp int)
+0:65 'i3' (temp 3-component vector of int)
+0:65 Constant:
+0:65 1 (const int)
+0:66 direct index (temp int)
+0:66 'i3' (temp 3-component vector of int)
+0:66 Constant:
+0:66 2 (const int)
+0:67 direct index (temp int)
+0:67 'i4' (temp 4-component vector of int)
+0:67 Constant:
+0:67 0 (const int)
+0:68 direct index (temp int)
+0:68 'i4' (temp 4-component vector of int)
+0:68 Constant:
+0:68 1 (const int)
+0:69 direct index (temp int)
+0:69 'i4' (temp 4-component vector of int)
+0:69 Constant:
+0:69 2 (const int)
+0:70 direct index (temp int)
+0:70 'i4' (temp 4-component vector of int)
+0:70 Constant:
+0:70 3 (const int)
+0:71 'f' (temp float)
+0:72 direct index (temp float)
+0:72 'f2' (temp 2-component vector of float)
+0:72 Constant:
+0:72 0 (const int)
+0:73 direct index (temp float)
+0:73 'f2' (temp 2-component vector of float)
+0:73 Constant:
+0:73 1 (const int)
+0:74 direct index (temp float)
+0:74 'f3' (temp 3-component vector of float)
+0:74 Constant:
+0:74 0 (const int)
+0:75 direct index (temp float)
+0:75 'f3' (temp 3-component vector of float)
+0:75 Constant:
+0:75 1 (const int)
+0:76 direct index (temp float)
+0:76 'f3' (temp 3-component vector of float)
+0:76 Constant:
+0:76 2 (const int)
+0:77 direct index (temp float)
+0:77 'f4' (temp 4-component vector of float)
+0:77 Constant:
+0:77 0 (const int)
+0:78 direct index (temp float)
+0:78 'f4' (temp 4-component vector of float)
+0:78 Constant:
+0:78 1 (const int)
+0:79 direct index (temp float)
+0:79 'f4' (temp 4-component vector of float)
+0:79 Constant:
+0:79 2 (const int)
+0:80 direct index (temp float)
+0:80 'f4' (temp 4-component vector of float)
+0:80 Constant:
+0:80 3 (const int)
+0:60 false case
+0:80 Constant:
+0:80 1.000000
+0:80 1.000000
+0:80 1.000000
+0:80 1.000000
+0:? Linker Objects
+0:? 'u_b' (uniform bool)
+0:? 'u_b2' (uniform 2-component vector of bool)
+0:? 'u_b3' (uniform 3-component vector of bool)
+0:? 'u_b4' (uniform 4-component vector of bool)
+0:? 'u_i' (uniform int)
+0:? 'u_i2' (uniform 2-component vector of int)
+0:? 'u_i3' (uniform 3-component vector of int)
+0:? 'u_i4' (uniform 4-component vector of int)
+0:? 'u_f' (uniform float)
+0:? 'u_f2' (uniform 2-component vector of float)
+0:? 'u_f3' (uniform 3-component vector of float)
+0:? 'u_f4' (uniform 4-component vector of float)
+0:? 'i_b' (uniform bool)
+0:? 'i_b2' (uniform 2-component vector of bool)
+0:? 'i_b3' (uniform 3-component vector of bool)
+0:? 'i_b4' (uniform 4-component vector of bool)
+0:? 'i_i' (flat in int)
+0:? 'i_i2' (flat in 2-component vector of int)
+0:? 'i_i3' (flat in 3-component vector of int)
+0:? 'i_i4' (flat in 4-component vector of int)
+0:? 'i_f' (smooth in float)
+0:? 'i_f2' (smooth in 2-component vector of float)
+0:? 'i_f3' (smooth in 3-component vector of float)
+0:? 'i_f4' (smooth in 4-component vector of float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/uint.frag.out b/chromium/third_party/glslang/src/Test/baseResults/uint.frag.out
new file mode 100644
index 00000000000..dbe9578d285
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/uint.frag.out
@@ -0,0 +1,607 @@
+uint.frag
+ERROR: 0:2: 'uint' : must be qualified as flat in
+ERROR: 0:6: 'in' : cannot be bool
+ERROR: 0:20: 'const' : non-matching or non-convertible constant type for const initializer
+ERROR: 0:24: 'const' : non-matching or non-convertible constant type for const initializer
+ERROR: 0:34: 'const' : non-matching or non-convertible constant type for const initializer
+ERROR: 0:37: 'const' : non-matching or non-convertible constant type for const initializer
+ERROR: 0:48: '=' : cannot convert from 'const int' to 'temp mediump uint'
+ERROR: 0:51: '=' : cannot convert from 'const int' to 'temp mediump uint'
+ERROR: 0:63: 'float' : type requires declaration of default precision qualifier
+ERROR: 9 compilation errors. No code generated.
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:15 Function Definition: main( (global void)
+0:15 Function Parameters:
+0:17 Sequence
+0:17 Sequence
+0:17 move second child to first child (temp mediump int)
+0:17 'count' (temp mediump int)
+0:17 Constant:
+0:17 1 (const int)
+0:19 Sequence
+0:19 move second child to first child (temp mediump uint)
+0:19 'u' (temp mediump uint)
+0:19 add (temp mediump uint)
+0:19 direct index (temp mediump uint)
+0:19 't' (flat in mediump 2-component vector of uint)
+0:19 Constant:
+0:19 1 (const int)
+0:19 Constant:
+0:19 3 (const uint)
+0:27 Test condition and select (temp void)
+0:27 Condition
+0:27 Constant:
+0:27 true (const bool)
+0:27 true case
+0:28 multiply second child into first child (temp mediump int)
+0:28 'count' (temp mediump int)
+0:28 Constant:
+0:28 2 (const int)
+0:29 Test condition and select (temp void)
+0:29 Condition
+0:29 Constant:
+0:29 true (const bool)
+0:29 true case
+0:30 multiply second child into first child (temp mediump int)
+0:30 'count' (temp mediump int)
+0:30 Constant:
+0:30 3 (const int)
+0:31 Test condition and select (temp void)
+0:31 Condition
+0:31 Constant:
+0:31 false (const bool)
+0:31 true case
+0:32 multiply second child into first child (temp mediump int)
+0:32 'count' (temp mediump int)
+0:32 Constant:
+0:32 5 (const int)
+0:41 Test condition and select (temp void)
+0:41 Condition
+0:41 Constant:
+0:41 true (const bool)
+0:41 true case
+0:42 multiply second child into first child (temp mediump int)
+0:42 'count' (temp mediump int)
+0:42 Constant:
+0:42 7 (const int)
+0:43 Test condition and select (temp void)
+0:43 Condition
+0:43 Constant:
+0:43 true (const bool)
+0:43 true case
+0:44 multiply second child into first child (temp mediump int)
+0:44 'count' (temp mediump int)
+0:44 Constant:
+0:44 11 (const int)
+0:45 Test condition and select (temp void)
+0:45 Condition
+0:45 Constant:
+0:45 false (const bool)
+0:45 true case
+0:46 multiply second child into first child (temp mediump int)
+0:46 'count' (temp mediump int)
+0:46 Constant:
+0:46 13 (const int)
+0:49 Sequence
+0:49 move second child to first child (temp mediump int)
+0:49 'shiftedii' (temp mediump int)
+0:49 Constant:
+0:49 -1 (const int)
+0:50 Sequence
+0:50 move second child to first child (temp mediump uint)
+0:50 'shiftedui' (temp mediump uint)
+0:50 Constant:
+0:50 4194303 (const uint)
+0:52 Sequence
+0:52 move second child to first child (temp mediump int)
+0:52 'shiftediu' (temp mediump int)
+0:52 Constant:
+0:52 -1 (const int)
+0:53 Sequence
+0:53 move second child to first child (temp mediump uint)
+0:53 'shifteduu' (temp mediump uint)
+0:53 Constant:
+0:53 4194303 (const uint)
+0:55 Test condition and select (temp void)
+0:55 Condition
+0:55 Compare Equal (temp bool)
+0:55 'shiftedii' (temp mediump int)
+0:55 'shiftediu' (temp mediump int)
+0:55 true case
+0:56 move second child to first child (temp mediump 4-component vector of uint)
+0:56 'c' (out mediump 4-component vector of uint)
+0:56 texture (global lowp 4-component vector of uint)
+0:56 'usampler' (uniform lowp usampler2D)
+0:56 'tc' (smooth in highp 2-component vector of float)
+0:57 Test condition and select (temp void)
+0:57 Condition
+0:57 Compare Equal (temp bool)
+0:57 'shiftedui' (temp mediump uint)
+0:57 'shifteduu' (temp mediump uint)
+0:57 true case
+0:58 move second child to first child (temp mediump 4-component vector of uint)
+0:58 'c' (out mediump 4-component vector of uint)
+0:58 texture (global lowp 4-component vector of uint)
+0:58 'usampler' (uniform lowp usampler2D)
+0:58 add (temp highp 2-component vector of float)
+0:58 'tc' (smooth in highp 2-component vector of float)
+0:58 Constant:
+0:58 1.000000
+0:59 Test condition and select (temp void)
+0:59 Condition
+0:59 Compare Equal (temp bool)
+0:59 'shiftedii' (temp mediump int)
+0:59 Convert uint to int (temp int)
+0:59 'shiftedui' (temp mediump uint)
+0:59 true case
+0:60 move second child to first child (temp mediump 4-component vector of uint)
+0:60 'c' (out mediump 4-component vector of uint)
+0:60 texture (global lowp 4-component vector of uint)
+0:60 'usampler' (uniform lowp usampler2D)
+0:60 subtract (temp highp 2-component vector of float)
+0:60 'tc' (smooth in highp 2-component vector of float)
+0:60 Constant:
+0:60 2.000000
+0:60 2.000000
+0:62 Test condition and select (temp void)
+0:62 Condition
+0:62 Compare Greater Than (temp bool)
+0:62 direct index (temp mediump uint)
+0:62 't' (flat in mediump 2-component vector of uint)
+0:62 Constant:
+0:62 0 (const int)
+0:62 Constant:
+0:62 4 (const uint)
+0:62 true case
+0:63 Sequence
+0:63 Sequence
+0:63 move second child to first child (temp mediump float)
+0:63 'af' (temp mediump float)
+0:63 Convert uint to float (temp mediump float)
+0:63 'u' (temp mediump uint)
+0:64 Sequence
+0:64 move second child to first child (temp bool)
+0:64 'ab' (temp bool)
+0:64 Convert uint to bool (temp bool)
+0:64 'u' (temp mediump uint)
+0:65 Sequence
+0:65 move second child to first child (temp mediump int)
+0:65 'ai' (temp mediump int)
+0:65 Convert uint to int (temp mediump int)
+0:65 'u' (temp mediump uint)
+0:67 add second child into first child (temp mediump 4-component vector of uint)
+0:67 'c' (out mediump 4-component vector of uint)
+0:67 Construct uvec4 (temp mediump 4-component vector of uint)
+0:67 Convert float to uint (temp mediump uint)
+0:67 'af' (temp mediump float)
+0:67 Convert bool to uint (temp mediump uint)
+0:67 'ab' (temp bool)
+0:67 Convert int to uint (temp mediump uint)
+0:67 'ai' (temp mediump int)
+0:67 Convert int to uint (temp mediump uint)
+0:67 'count' (temp mediump int)
+0:75 Test condition and select (temp void)
+0:75 Condition
+0:75 Constant:
+0:75 true (const bool)
+0:75 true case
+0:76 multiply second child into first child (temp mediump int)
+0:76 'count' (temp mediump int)
+0:76 Constant:
+0:76 17 (const int)
+0:78 Test condition and select (temp void)
+0:78 Condition
+0:78 Constant:
+0:78 false (const bool)
+0:78 true case
+0:79 multiply second child into first child (temp mediump int)
+0:79 'count' (temp mediump int)
+0:79 Constant:
+0:79 19 (const int)
+0:81 Test condition and select (temp void)
+0:81 Condition
+0:81 Constant:
+0:81 true (const bool)
+0:81 true case
+0:82 multiply second child into first child (temp mediump int)
+0:82 'count' (temp mediump int)
+0:82 Constant:
+0:82 23 (const int)
+0:84 Test condition and select (temp void)
+0:84 Condition
+0:84 Constant:
+0:84 true (const bool)
+0:84 true case
+0:85 multiply second child into first child (temp mediump int)
+0:85 'count' (temp mediump int)
+0:85 Constant:
+0:85 27 (const int)
+0:87 Sequence
+0:87 move second child to first child (temp mediump uint)
+0:87 'mask1' (temp mediump uint)
+0:87 Constant:
+0:87 161 (const uint)
+0:88 Sequence
+0:88 move second child to first child (temp mediump uint)
+0:88 'mask2' (temp mediump uint)
+0:88 Constant:
+0:88 2576 (const uint)
+0:89 Sequence
+0:89 move second child to first child (temp mediump uint)
+0:89 'mask3' (temp mediump uint)
+0:89 left-shift (temp mediump uint)
+0:89 'mask1' (temp mediump uint)
+0:89 Constant:
+0:89 4 (const int)
+0:90 Sequence
+0:90 move second child to first child (temp mediump uint)
+0:90 'mask4' (temp mediump uint)
+0:90 Constant:
+0:90 2737 (const uint)
+0:92 Test condition and select (temp void)
+0:92 Condition
+0:92 Compare Equal (temp bool)
+0:92 'mask3' (temp mediump uint)
+0:92 'mask2' (temp mediump uint)
+0:92 true case
+0:93 multiply second child into first child (temp mediump int)
+0:93 'count' (temp mediump int)
+0:93 Constant:
+0:93 100 (const int)
+0:95 Test condition and select (temp void)
+0:95 Condition
+0:95 Compare Not Equal (temp bool)
+0:95 bitwise and (temp mediump uint)
+0:95 'mask3' (temp mediump uint)
+0:95 'mask1' (temp mediump uint)
+0:95 Constant:
+0:95 0 (const uint)
+0:95 true case
+0:96 multiply second child into first child (temp mediump int)
+0:96 'count' (temp mediump int)
+0:96 Constant:
+0:96 101 (const int)
+0:98 Test condition and select (temp void)
+0:98 Condition
+0:98 Compare Equal (temp bool)
+0:98 inclusive-or (temp mediump uint)
+0:98 'mask1' (temp mediump uint)
+0:98 'mask3' (temp mediump uint)
+0:98 'mask4' (temp mediump uint)
+0:98 true case
+0:99 multiply second child into first child (temp mediump int)
+0:99 'count' (temp mediump int)
+0:99 Constant:
+0:99 102 (const int)
+0:101 Test condition and select (temp void)
+0:101 Condition
+0:101 Compare Equal (temp bool)
+0:101 exclusive-or (temp mediump uint)
+0:101 'mask1' (temp mediump uint)
+0:101 'mask4' (temp mediump uint)
+0:101 Constant:
+0:101 2576 (const uint)
+0:101 true case
+0:102 multiply second child into first child (temp mediump int)
+0:102 'count' (temp mediump int)
+0:102 Constant:
+0:102 103 (const int)
+0:104 add second child into first child (temp mediump 4-component vector of uint)
+0:104 'c' (out mediump 4-component vector of uint)
+0:104 Construct uvec4 (temp mediump 4-component vector of uint)
+0:104 Convert int to uint (temp mediump uint)
+0:104 'count' (temp mediump int)
+0:? Linker Objects
+0:? 'badu' (smooth in mediump 2-component vector of uint)
+0:? 't' (flat in mediump 2-component vector of uint)
+0:? 'f' (smooth in highp float)
+0:? 'tc' (smooth in highp 2-component vector of float)
+0:? 'bad' (smooth in bool)
+0:? 'v' (uniform mediump 4-component vector of uint)
+0:? 'i' (uniform mediump int)
+0:? 'b' (uniform bool)
+0:? 'c' (out mediump 4-component vector of uint)
+0:? 'usampler' (uniform lowp usampler2D)
+
+
+Linked fragment stage:
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:15 Function Definition: main( (global void)
+0:15 Function Parameters:
+0:17 Sequence
+0:17 Sequence
+0:17 move second child to first child (temp mediump int)
+0:17 'count' (temp mediump int)
+0:17 Constant:
+0:17 1 (const int)
+0:19 Sequence
+0:19 move second child to first child (temp mediump uint)
+0:19 'u' (temp mediump uint)
+0:19 add (temp mediump uint)
+0:19 direct index (temp mediump uint)
+0:19 't' (flat in mediump 2-component vector of uint)
+0:19 Constant:
+0:19 1 (const int)
+0:19 Constant:
+0:19 3 (const uint)
+0:27 Test condition and select (temp void)
+0:27 Condition
+0:27 Constant:
+0:27 true (const bool)
+0:27 true case
+0:28 multiply second child into first child (temp mediump int)
+0:28 'count' (temp mediump int)
+0:28 Constant:
+0:28 2 (const int)
+0:29 Test condition and select (temp void)
+0:29 Condition
+0:29 Constant:
+0:29 true (const bool)
+0:29 true case
+0:30 multiply second child into first child (temp mediump int)
+0:30 'count' (temp mediump int)
+0:30 Constant:
+0:30 3 (const int)
+0:31 Test condition and select (temp void)
+0:31 Condition
+0:31 Constant:
+0:31 false (const bool)
+0:31 true case
+0:32 multiply second child into first child (temp mediump int)
+0:32 'count' (temp mediump int)
+0:32 Constant:
+0:32 5 (const int)
+0:41 Test condition and select (temp void)
+0:41 Condition
+0:41 Constant:
+0:41 true (const bool)
+0:41 true case
+0:42 multiply second child into first child (temp mediump int)
+0:42 'count' (temp mediump int)
+0:42 Constant:
+0:42 7 (const int)
+0:43 Test condition and select (temp void)
+0:43 Condition
+0:43 Constant:
+0:43 true (const bool)
+0:43 true case
+0:44 multiply second child into first child (temp mediump int)
+0:44 'count' (temp mediump int)
+0:44 Constant:
+0:44 11 (const int)
+0:45 Test condition and select (temp void)
+0:45 Condition
+0:45 Constant:
+0:45 false (const bool)
+0:45 true case
+0:46 multiply second child into first child (temp mediump int)
+0:46 'count' (temp mediump int)
+0:46 Constant:
+0:46 13 (const int)
+0:49 Sequence
+0:49 move second child to first child (temp mediump int)
+0:49 'shiftedii' (temp mediump int)
+0:49 Constant:
+0:49 -1 (const int)
+0:50 Sequence
+0:50 move second child to first child (temp mediump uint)
+0:50 'shiftedui' (temp mediump uint)
+0:50 Constant:
+0:50 4194303 (const uint)
+0:52 Sequence
+0:52 move second child to first child (temp mediump int)
+0:52 'shiftediu' (temp mediump int)
+0:52 Constant:
+0:52 -1 (const int)
+0:53 Sequence
+0:53 move second child to first child (temp mediump uint)
+0:53 'shifteduu' (temp mediump uint)
+0:53 Constant:
+0:53 4194303 (const uint)
+0:55 Test condition and select (temp void)
+0:55 Condition
+0:55 Compare Equal (temp bool)
+0:55 'shiftedii' (temp mediump int)
+0:55 'shiftediu' (temp mediump int)
+0:55 true case
+0:56 move second child to first child (temp mediump 4-component vector of uint)
+0:56 'c' (out mediump 4-component vector of uint)
+0:56 texture (global lowp 4-component vector of uint)
+0:56 'usampler' (uniform lowp usampler2D)
+0:56 'tc' (smooth in highp 2-component vector of float)
+0:57 Test condition and select (temp void)
+0:57 Condition
+0:57 Compare Equal (temp bool)
+0:57 'shiftedui' (temp mediump uint)
+0:57 'shifteduu' (temp mediump uint)
+0:57 true case
+0:58 move second child to first child (temp mediump 4-component vector of uint)
+0:58 'c' (out mediump 4-component vector of uint)
+0:58 texture (global lowp 4-component vector of uint)
+0:58 'usampler' (uniform lowp usampler2D)
+0:58 add (temp highp 2-component vector of float)
+0:58 'tc' (smooth in highp 2-component vector of float)
+0:58 Constant:
+0:58 1.000000
+0:59 Test condition and select (temp void)
+0:59 Condition
+0:59 Compare Equal (temp bool)
+0:59 'shiftedii' (temp mediump int)
+0:59 Convert uint to int (temp int)
+0:59 'shiftedui' (temp mediump uint)
+0:59 true case
+0:60 move second child to first child (temp mediump 4-component vector of uint)
+0:60 'c' (out mediump 4-component vector of uint)
+0:60 texture (global lowp 4-component vector of uint)
+0:60 'usampler' (uniform lowp usampler2D)
+0:60 subtract (temp highp 2-component vector of float)
+0:60 'tc' (smooth in highp 2-component vector of float)
+0:60 Constant:
+0:60 2.000000
+0:60 2.000000
+0:62 Test condition and select (temp void)
+0:62 Condition
+0:62 Compare Greater Than (temp bool)
+0:62 direct index (temp mediump uint)
+0:62 't' (flat in mediump 2-component vector of uint)
+0:62 Constant:
+0:62 0 (const int)
+0:62 Constant:
+0:62 4 (const uint)
+0:62 true case
+0:63 Sequence
+0:63 Sequence
+0:63 move second child to first child (temp mediump float)
+0:63 'af' (temp mediump float)
+0:63 Convert uint to float (temp mediump float)
+0:63 'u' (temp mediump uint)
+0:64 Sequence
+0:64 move second child to first child (temp bool)
+0:64 'ab' (temp bool)
+0:64 Convert uint to bool (temp bool)
+0:64 'u' (temp mediump uint)
+0:65 Sequence
+0:65 move second child to first child (temp mediump int)
+0:65 'ai' (temp mediump int)
+0:65 Convert uint to int (temp mediump int)
+0:65 'u' (temp mediump uint)
+0:67 add second child into first child (temp mediump 4-component vector of uint)
+0:67 'c' (out mediump 4-component vector of uint)
+0:67 Construct uvec4 (temp mediump 4-component vector of uint)
+0:67 Convert float to uint (temp mediump uint)
+0:67 'af' (temp mediump float)
+0:67 Convert bool to uint (temp mediump uint)
+0:67 'ab' (temp bool)
+0:67 Convert int to uint (temp mediump uint)
+0:67 'ai' (temp mediump int)
+0:67 Convert int to uint (temp mediump uint)
+0:67 'count' (temp mediump int)
+0:75 Test condition and select (temp void)
+0:75 Condition
+0:75 Constant:
+0:75 true (const bool)
+0:75 true case
+0:76 multiply second child into first child (temp mediump int)
+0:76 'count' (temp mediump int)
+0:76 Constant:
+0:76 17 (const int)
+0:78 Test condition and select (temp void)
+0:78 Condition
+0:78 Constant:
+0:78 false (const bool)
+0:78 true case
+0:79 multiply second child into first child (temp mediump int)
+0:79 'count' (temp mediump int)
+0:79 Constant:
+0:79 19 (const int)
+0:81 Test condition and select (temp void)
+0:81 Condition
+0:81 Constant:
+0:81 true (const bool)
+0:81 true case
+0:82 multiply second child into first child (temp mediump int)
+0:82 'count' (temp mediump int)
+0:82 Constant:
+0:82 23 (const int)
+0:84 Test condition and select (temp void)
+0:84 Condition
+0:84 Constant:
+0:84 true (const bool)
+0:84 true case
+0:85 multiply second child into first child (temp mediump int)
+0:85 'count' (temp mediump int)
+0:85 Constant:
+0:85 27 (const int)
+0:87 Sequence
+0:87 move second child to first child (temp mediump uint)
+0:87 'mask1' (temp mediump uint)
+0:87 Constant:
+0:87 161 (const uint)
+0:88 Sequence
+0:88 move second child to first child (temp mediump uint)
+0:88 'mask2' (temp mediump uint)
+0:88 Constant:
+0:88 2576 (const uint)
+0:89 Sequence
+0:89 move second child to first child (temp mediump uint)
+0:89 'mask3' (temp mediump uint)
+0:89 left-shift (temp mediump uint)
+0:89 'mask1' (temp mediump uint)
+0:89 Constant:
+0:89 4 (const int)
+0:90 Sequence
+0:90 move second child to first child (temp mediump uint)
+0:90 'mask4' (temp mediump uint)
+0:90 Constant:
+0:90 2737 (const uint)
+0:92 Test condition and select (temp void)
+0:92 Condition
+0:92 Compare Equal (temp bool)
+0:92 'mask3' (temp mediump uint)
+0:92 'mask2' (temp mediump uint)
+0:92 true case
+0:93 multiply second child into first child (temp mediump int)
+0:93 'count' (temp mediump int)
+0:93 Constant:
+0:93 100 (const int)
+0:95 Test condition and select (temp void)
+0:95 Condition
+0:95 Compare Not Equal (temp bool)
+0:95 bitwise and (temp mediump uint)
+0:95 'mask3' (temp mediump uint)
+0:95 'mask1' (temp mediump uint)
+0:95 Constant:
+0:95 0 (const uint)
+0:95 true case
+0:96 multiply second child into first child (temp mediump int)
+0:96 'count' (temp mediump int)
+0:96 Constant:
+0:96 101 (const int)
+0:98 Test condition and select (temp void)
+0:98 Condition
+0:98 Compare Equal (temp bool)
+0:98 inclusive-or (temp mediump uint)
+0:98 'mask1' (temp mediump uint)
+0:98 'mask3' (temp mediump uint)
+0:98 'mask4' (temp mediump uint)
+0:98 true case
+0:99 multiply second child into first child (temp mediump int)
+0:99 'count' (temp mediump int)
+0:99 Constant:
+0:99 102 (const int)
+0:101 Test condition and select (temp void)
+0:101 Condition
+0:101 Compare Equal (temp bool)
+0:101 exclusive-or (temp mediump uint)
+0:101 'mask1' (temp mediump uint)
+0:101 'mask4' (temp mediump uint)
+0:101 Constant:
+0:101 2576 (const uint)
+0:101 true case
+0:102 multiply second child into first child (temp mediump int)
+0:102 'count' (temp mediump int)
+0:102 Constant:
+0:102 103 (const int)
+0:104 add second child into first child (temp mediump 4-component vector of uint)
+0:104 'c' (out mediump 4-component vector of uint)
+0:104 Construct uvec4 (temp mediump 4-component vector of uint)
+0:104 Convert int to uint (temp mediump uint)
+0:104 'count' (temp mediump int)
+0:? Linker Objects
+0:? 'badu' (smooth in mediump 2-component vector of uint)
+0:? 't' (flat in mediump 2-component vector of uint)
+0:? 'f' (smooth in highp float)
+0:? 'tc' (smooth in highp 2-component vector of float)
+0:? 'bad' (smooth in bool)
+0:? 'v' (uniform mediump 4-component vector of uint)
+0:? 'i' (uniform mediump int)
+0:? 'b' (uniform bool)
+0:? 'c' (out mediump 4-component vector of uint)
+0:? 'usampler' (uniform lowp usampler2D)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/uniformArray.frag.out b/chromium/third_party/glslang/src/Test/baseResults/uniformArray.frag.out
new file mode 100644
index 00000000000..4e8ace841e1
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/uniformArray.frag.out
@@ -0,0 +1,97 @@
+uniformArray.frag
+Shader version: 130
+0:? Sequence
+0:7 Function Definition: main( (global void)
+0:7 Function Parameters:
+0:9 Sequence
+0:9 Sequence
+0:9 move second child to first child (temp 4-component vector of float)
+0:9 'texColor' (temp 4-component vector of float)
+0:9 add (temp 4-component vector of float)
+0:9 direct index (temp 4-component vector of float)
+0:9 'color' (uniform 6-element array of 4-component vector of float)
+0:9 Constant:
+0:9 1 (const int)
+0:9 direct index (temp 4-component vector of float)
+0:9 'color' (uniform 6-element array of 4-component vector of float)
+0:9 Constant:
+0:9 1 (const int)
+0:11 add second child into first child (temp 3-component vector of float)
+0:11 vector swizzle (temp 3-component vector of float)
+0:11 'texColor' (temp 4-component vector of float)
+0:11 Sequence
+0:11 Constant:
+0:11 0 (const int)
+0:11 Constant:
+0:11 1 (const int)
+0:11 Constant:
+0:11 2 (const int)
+0:11 'inColor' (uniform 3-component vector of float)
+0:13 add second child into first child (temp float)
+0:13 direct index (temp float)
+0:13 'texColor' (temp 4-component vector of float)
+0:13 Constant:
+0:13 3 (const int)
+0:13 direct index (temp float)
+0:13 'alpha' (uniform 16-element array of float)
+0:13 Constant:
+0:13 12 (const int)
+0:15 move second child to first child (temp 4-component vector of float)
+0:15 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:15 'texColor' (temp 4-component vector of float)
+0:? Linker Objects
+0:? 'texSampler2D' (uniform sampler2D)
+0:? 'inColor' (uniform 3-component vector of float)
+0:? 'color' (uniform 6-element array of 4-component vector of float)
+0:? 'alpha' (uniform 16-element array of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+0:? Sequence
+0:7 Function Definition: main( (global void)
+0:7 Function Parameters:
+0:9 Sequence
+0:9 Sequence
+0:9 move second child to first child (temp 4-component vector of float)
+0:9 'texColor' (temp 4-component vector of float)
+0:9 add (temp 4-component vector of float)
+0:9 direct index (temp 4-component vector of float)
+0:9 'color' (uniform 6-element array of 4-component vector of float)
+0:9 Constant:
+0:9 1 (const int)
+0:9 direct index (temp 4-component vector of float)
+0:9 'color' (uniform 6-element array of 4-component vector of float)
+0:9 Constant:
+0:9 1 (const int)
+0:11 add second child into first child (temp 3-component vector of float)
+0:11 vector swizzle (temp 3-component vector of float)
+0:11 'texColor' (temp 4-component vector of float)
+0:11 Sequence
+0:11 Constant:
+0:11 0 (const int)
+0:11 Constant:
+0:11 1 (const int)
+0:11 Constant:
+0:11 2 (const int)
+0:11 'inColor' (uniform 3-component vector of float)
+0:13 add second child into first child (temp float)
+0:13 direct index (temp float)
+0:13 'texColor' (temp 4-component vector of float)
+0:13 Constant:
+0:13 3 (const int)
+0:13 direct index (temp float)
+0:13 'alpha' (uniform 16-element array of float)
+0:13 Constant:
+0:13 12 (const int)
+0:15 move second child to first child (temp 4-component vector of float)
+0:15 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:15 'texColor' (temp 4-component vector of float)
+0:? Linker Objects
+0:? 'texSampler2D' (uniform sampler2D)
+0:? 'inColor' (uniform 3-component vector of float)
+0:? 'color' (uniform 6-element array of 4-component vector of float)
+0:? 'alpha' (uniform 16-element array of float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/variableArrayIndex.frag.out b/chromium/third_party/glslang/src/Test/baseResults/variableArrayIndex.frag.out
new file mode 100644
index 00000000000..2a63d115b1b
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/variableArrayIndex.frag.out
@@ -0,0 +1,225 @@
+variableArrayIndex.frag
+WARNING: 0:3: varying deprecated in version 130; may be removed in future release
+
+Shader version: 130
+0:? Sequence
+0:29 Function Definition: main( (global void)
+0:29 Function Parameters:
+0:? Sequence
+0:32 Sequence
+0:32 move second child to first child (temp int)
+0:32 'iLocal' (temp int)
+0:32 'Count' (uniform int)
+0:34 Test condition and select (temp void)
+0:34 Condition
+0:34 Compare Greater Than (temp bool)
+0:34 i: direct index for structure (global int)
+0:34 direct index (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:34 s2_1: direct index for structure (global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:34 'foo3' (uniform structure{global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
+0:34 Constant:
+0:34 0 (const int)
+0:34 Constant:
+0:34 1 (const int)
+0:34 Constant:
+0:34 0 (const int)
+0:34 Constant:
+0:34 0 (const int)
+0:34 true case
+0:35 move second child to first child (temp float)
+0:35 'scale' (temp float)
+0:35 f: direct index for structure (global float)
+0:35 s1_1: direct index for structure (global structure{global int i, global float f})
+0:35 indirect index (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:35 'foo2' (uniform 5-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:35 add (temp int)
+0:35 add (temp int)
+0:35 i: direct index for structure (global int)
+0:35 indirect index (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:35 s2_1: direct index for structure (global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:35 'foo3' (uniform structure{global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
+0:35 Constant:
+0:35 0 (const int)
+0:35 i: direct index for structure (global int)
+0:35 'foo' (uniform structure{global int i, global float f})
+0:35 Constant:
+0:35 0 (const int)
+0:35 Constant:
+0:35 0 (const int)
+0:35 Constant:
+0:35 2 (const int)
+0:35 Pre-Increment (temp int)
+0:35 'iLocal' (temp int)
+0:35 Constant:
+0:35 2 (const int)
+0:35 Constant:
+0:35 1 (const int)
+0:34 false case
+0:37 move second child to first child (temp float)
+0:37 'scale' (temp float)
+0:37 f: direct index for structure (global float)
+0:37 s1_1: direct index for structure (global structure{global int i, global float f})
+0:37 direct index (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:37 s2_1: direct index for structure (global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:37 'foo3' (uniform structure{global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
+0:37 Constant:
+0:37 0 (const int)
+0:37 Constant:
+0:37 0 (const int)
+0:37 Constant:
+0:37 2 (const int)
+0:37 Constant:
+0:37 1 (const int)
+0:43 move second child to first child (temp 4-component vector of float)
+0:43 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:43 vector-scale (temp 4-component vector of float)
+0:43 'scale' (temp float)
+0:43 texture (global 4-component vector of float)
+0:43 'sampler' (uniform sampler2D)
+0:43 'coord' (smooth in 2-component vector of float)
+0:45 Sequence
+0:45 move second child to first child (temp 3-element array of 2-component vector of float)
+0:45 'constructed' (temp 3-element array of 2-component vector of float)
+0:45 Construct vec2 (temp 3-element array of 2-component vector of float)
+0:45 'coord' (smooth in 2-component vector of float)
+0:45 Construct vec2 (temp 2-component vector of float)
+0:45 'scale' (temp float)
+0:45 Constant:
+0:45 1.000000
+0:45 2.000000
+0:46 add second child into first child (temp 4-component vector of float)
+0:46 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:46 Construct vec4 (temp 4-component vector of float)
+0:46 indirect index (temp 2-component vector of float)
+0:46 'constructed' (temp 3-element array of 2-component vector of float)
+0:46 i: direct index for structure (global int)
+0:46 'foo' (uniform structure{global int i, global float f})
+0:46 Constant:
+0:46 0 (const int)
+0:46 indirect index (temp 2-component vector of float)
+0:46 'constructed' (temp 3-element array of 2-component vector of float)
+0:46 i: direct index for structure (global int)
+0:46 'foo' (uniform structure{global int i, global float f})
+0:46 Constant:
+0:46 0 (const int)
+0:? Linker Objects
+0:? 'sampler' (uniform sampler2D)
+0:? 'coord' (smooth in 2-component vector of float)
+0:? 'foo' (uniform structure{global int i, global float f})
+0:? 'foo2' (uniform 5-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:? 'foo3' (uniform structure{global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
+0:? 'Count' (uniform int)
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+0:? Sequence
+0:29 Function Definition: main( (global void)
+0:29 Function Parameters:
+0:? Sequence
+0:32 Sequence
+0:32 move second child to first child (temp int)
+0:32 'iLocal' (temp int)
+0:32 'Count' (uniform int)
+0:34 Test condition and select (temp void)
+0:34 Condition
+0:34 Compare Greater Than (temp bool)
+0:34 i: direct index for structure (global int)
+0:34 direct index (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:34 s2_1: direct index for structure (global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:34 'foo3' (uniform structure{global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
+0:34 Constant:
+0:34 0 (const int)
+0:34 Constant:
+0:34 1 (const int)
+0:34 Constant:
+0:34 0 (const int)
+0:34 Constant:
+0:34 0 (const int)
+0:34 true case
+0:35 move second child to first child (temp float)
+0:35 'scale' (temp float)
+0:35 f: direct index for structure (global float)
+0:35 s1_1: direct index for structure (global structure{global int i, global float f})
+0:35 indirect index (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:35 'foo2' (uniform 5-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:35 add (temp int)
+0:35 add (temp int)
+0:35 i: direct index for structure (global int)
+0:35 indirect index (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:35 s2_1: direct index for structure (global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:35 'foo3' (uniform structure{global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
+0:35 Constant:
+0:35 0 (const int)
+0:35 i: direct index for structure (global int)
+0:35 'foo' (uniform structure{global int i, global float f})
+0:35 Constant:
+0:35 0 (const int)
+0:35 Constant:
+0:35 0 (const int)
+0:35 Constant:
+0:35 2 (const int)
+0:35 Pre-Increment (temp int)
+0:35 'iLocal' (temp int)
+0:35 Constant:
+0:35 2 (const int)
+0:35 Constant:
+0:35 1 (const int)
+0:34 false case
+0:37 move second child to first child (temp float)
+0:37 'scale' (temp float)
+0:37 f: direct index for structure (global float)
+0:37 s1_1: direct index for structure (global structure{global int i, global float f})
+0:37 direct index (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:37 s2_1: direct index for structure (global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:37 'foo3' (uniform structure{global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
+0:37 Constant:
+0:37 0 (const int)
+0:37 Constant:
+0:37 0 (const int)
+0:37 Constant:
+0:37 2 (const int)
+0:37 Constant:
+0:37 1 (const int)
+0:43 move second child to first child (temp 4-component vector of float)
+0:43 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:43 vector-scale (temp 4-component vector of float)
+0:43 'scale' (temp float)
+0:43 texture (global 4-component vector of float)
+0:43 'sampler' (uniform sampler2D)
+0:43 'coord' (smooth in 2-component vector of float)
+0:45 Sequence
+0:45 move second child to first child (temp 3-element array of 2-component vector of float)
+0:45 'constructed' (temp 3-element array of 2-component vector of float)
+0:45 Construct vec2 (temp 3-element array of 2-component vector of float)
+0:45 'coord' (smooth in 2-component vector of float)
+0:45 Construct vec2 (temp 2-component vector of float)
+0:45 'scale' (temp float)
+0:45 Constant:
+0:45 1.000000
+0:45 2.000000
+0:46 add second child into first child (temp 4-component vector of float)
+0:46 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:46 Construct vec4 (temp 4-component vector of float)
+0:46 indirect index (temp 2-component vector of float)
+0:46 'constructed' (temp 3-element array of 2-component vector of float)
+0:46 i: direct index for structure (global int)
+0:46 'foo' (uniform structure{global int i, global float f})
+0:46 Constant:
+0:46 0 (const int)
+0:46 indirect index (temp 2-component vector of float)
+0:46 'constructed' (temp 3-element array of 2-component vector of float)
+0:46 i: direct index for structure (global int)
+0:46 'foo' (uniform structure{global int i, global float f})
+0:46 Constant:
+0:46 0 (const int)
+0:? Linker Objects
+0:? 'sampler' (uniform sampler2D)
+0:? 'coord' (smooth in 2-component vector of float)
+0:? 'foo' (uniform structure{global int i, global float f})
+0:? 'foo2' (uniform 5-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:? 'foo3' (uniform structure{global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
+0:? 'Count' (uniform int)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/varyingArray.frag.out b/chromium/third_party/glslang/src/Test/baseResults/varyingArray.frag.out
new file mode 100644
index 00000000000..c6cf6bae2b4
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/varyingArray.frag.out
@@ -0,0 +1,120 @@
+varyingArray.frag
+WARNING: 0:3: varying deprecated in version 130; may be removed in future release
+WARNING: 0:4: varying deprecated in version 130; may be removed in future release
+WARNING: 0:6: varying deprecated in version 130; may be removed in future release
+WARNING: 0:8: varying deprecated in version 130; may be removed in future release
+
+Shader version: 130
+0:? Sequence
+0:10 Function Definition: main( (global void)
+0:10 Function Parameters:
+0:12 Sequence
+0:12 Sequence
+0:12 move second child to first child (temp 4-component vector of float)
+0:12 'texColor' (temp 4-component vector of float)
+0:12 texture (global 4-component vector of float)
+0:12 'texSampler2D' (uniform sampler2D)
+0:12 Construct vec2 (temp 2-component vector of float)
+0:12 add (temp 4-component vector of float)
+0:12 direct index (smooth temp 4-component vector of float TexCoord)
+0:12 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:12 Constant:
+0:12 4 (const int)
+0:12 direct index (smooth temp 4-component vector of float TexCoord)
+0:12 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:12 Constant:
+0:12 5 (const int)
+0:14 add second child into first child (temp 4-component vector of float)
+0:14 'texColor' (temp 4-component vector of float)
+0:14 'color' (smooth in 4-component vector of float)
+0:16 move second child to first child (temp float)
+0:16 direct index (temp float)
+0:16 'texColor' (temp 4-component vector of float)
+0:16 Constant:
+0:16 3 (const int)
+0:16 'alpha' (smooth in float)
+0:18 move second child to first child (temp 4-component vector of float)
+0:18 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:18 add (temp 4-component vector of float)
+0:18 add (temp 4-component vector of float)
+0:18 add (temp 4-component vector of float)
+0:18 direct index (smooth temp 4-component vector of float)
+0:18 'foo' (smooth in 3-element array of 4-component vector of float)
+0:18 Constant:
+0:18 1 (const int)
+0:18 direct index (smooth temp 4-component vector of float TexCoord)
+0:18 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:18 Constant:
+0:18 0 (const int)
+0:18 direct index (smooth temp 4-component vector of float TexCoord)
+0:18 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:18 Constant:
+0:18 4 (const int)
+0:18 'texColor' (temp 4-component vector of float)
+0:? Linker Objects
+0:? 'texSampler2D' (uniform sampler2D)
+0:? 'color' (smooth in 4-component vector of float)
+0:? 'alpha' (smooth in float)
+0:? 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:? 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:? 'foo' (smooth in 3-element array of 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+0:? Sequence
+0:10 Function Definition: main( (global void)
+0:10 Function Parameters:
+0:12 Sequence
+0:12 Sequence
+0:12 move second child to first child (temp 4-component vector of float)
+0:12 'texColor' (temp 4-component vector of float)
+0:12 texture (global 4-component vector of float)
+0:12 'texSampler2D' (uniform sampler2D)
+0:12 Construct vec2 (temp 2-component vector of float)
+0:12 add (temp 4-component vector of float)
+0:12 direct index (smooth temp 4-component vector of float TexCoord)
+0:12 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:12 Constant:
+0:12 4 (const int)
+0:12 direct index (smooth temp 4-component vector of float TexCoord)
+0:12 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:12 Constant:
+0:12 5 (const int)
+0:14 add second child into first child (temp 4-component vector of float)
+0:14 'texColor' (temp 4-component vector of float)
+0:14 'color' (smooth in 4-component vector of float)
+0:16 move second child to first child (temp float)
+0:16 direct index (temp float)
+0:16 'texColor' (temp 4-component vector of float)
+0:16 Constant:
+0:16 3 (const int)
+0:16 'alpha' (smooth in float)
+0:18 move second child to first child (temp 4-component vector of float)
+0:18 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:18 add (temp 4-component vector of float)
+0:18 add (temp 4-component vector of float)
+0:18 add (temp 4-component vector of float)
+0:18 direct index (smooth temp 4-component vector of float)
+0:18 'foo' (smooth in 3-element array of 4-component vector of float)
+0:18 Constant:
+0:18 1 (const int)
+0:18 direct index (smooth temp 4-component vector of float TexCoord)
+0:18 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:18 Constant:
+0:18 0 (const int)
+0:18 direct index (smooth temp 4-component vector of float TexCoord)
+0:18 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:18 Constant:
+0:18 4 (const int)
+0:18 'texColor' (temp 4-component vector of float)
+0:? Linker Objects
+0:? 'texSampler2D' (uniform sampler2D)
+0:? 'color' (smooth in 4-component vector of float)
+0:? 'alpha' (smooth in float)
+0:? 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:? 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:? 'foo' (smooth in 3-element array of 4-component vector of float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/varyingArrayIndirect.frag.out b/chromium/third_party/glslang/src/Test/baseResults/varyingArrayIndirect.frag.out
new file mode 100644
index 00000000000..02a41f3f1dc
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/varyingArrayIndirect.frag.out
@@ -0,0 +1,126 @@
+varyingArrayIndirect.frag
+WARNING: 0:3: varying deprecated in version 130; may be removed in future release
+WARNING: 0:4: varying deprecated in version 130; may be removed in future release
+WARNING: 0:6: varying deprecated in version 130; may be removed in future release
+WARNING: 0:8: varying deprecated in version 130; may be removed in future release
+
+Shader version: 130
+0:? Sequence
+0:12 Function Definition: main( (global void)
+0:12 Function Parameters:
+0:14 Sequence
+0:14 Sequence
+0:14 move second child to first child (temp 4-component vector of float)
+0:14 'texColor' (temp 4-component vector of float)
+0:14 texture (global 4-component vector of float)
+0:14 'texSampler2D' (uniform sampler2D)
+0:14 Construct vec2 (temp 2-component vector of float)
+0:14 add (temp 4-component vector of float)
+0:14 add (temp 4-component vector of float)
+0:14 indirect index (smooth temp 4-component vector of float)
+0:14 'userIn' (smooth in 2-element array of 4-component vector of float)
+0:14 'b' (uniform int)
+0:14 indirect index (smooth temp 4-component vector of float TexCoord)
+0:14 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:14 'a' (uniform int)
+0:14 direct index (smooth temp 4-component vector of float TexCoord)
+0:14 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:14 Constant:
+0:14 5 (const int)
+0:16 add second child into first child (temp 4-component vector of float)
+0:16 'texColor' (temp 4-component vector of float)
+0:16 'color' (smooth in 4-component vector of float)
+0:18 move second child to first child (temp float)
+0:18 direct index (temp float)
+0:18 'texColor' (temp 4-component vector of float)
+0:18 Constant:
+0:18 3 (const int)
+0:18 'alpha' (smooth in float)
+0:20 move second child to first child (temp 4-component vector of float)
+0:20 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:20 add (temp 4-component vector of float)
+0:20 add (temp 4-component vector of float)
+0:20 add (temp 4-component vector of float)
+0:20 direct index (smooth temp 4-component vector of float TexCoord)
+0:20 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:20 Constant:
+0:20 0 (const int)
+0:20 indirect index (smooth temp 4-component vector of float TexCoord)
+0:20 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:20 'b' (uniform int)
+0:20 'texColor' (temp 4-component vector of float)
+0:20 indirect index (smooth temp 4-component vector of float)
+0:20 'userIn' (smooth in 2-element array of 4-component vector of float)
+0:20 'a' (uniform int)
+0:? Linker Objects
+0:? 'texSampler2D' (uniform sampler2D)
+0:? 'color' (smooth in 4-component vector of float)
+0:? 'alpha' (smooth in float)
+0:? 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:? 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:? 'userIn' (smooth in 2-element array of 4-component vector of float)
+0:? 'a' (uniform int)
+0:? 'b' (uniform int)
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+0:? Sequence
+0:12 Function Definition: main( (global void)
+0:12 Function Parameters:
+0:14 Sequence
+0:14 Sequence
+0:14 move second child to first child (temp 4-component vector of float)
+0:14 'texColor' (temp 4-component vector of float)
+0:14 texture (global 4-component vector of float)
+0:14 'texSampler2D' (uniform sampler2D)
+0:14 Construct vec2 (temp 2-component vector of float)
+0:14 add (temp 4-component vector of float)
+0:14 add (temp 4-component vector of float)
+0:14 indirect index (smooth temp 4-component vector of float)
+0:14 'userIn' (smooth in 2-element array of 4-component vector of float)
+0:14 'b' (uniform int)
+0:14 indirect index (smooth temp 4-component vector of float TexCoord)
+0:14 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:14 'a' (uniform int)
+0:14 direct index (smooth temp 4-component vector of float TexCoord)
+0:14 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:14 Constant:
+0:14 5 (const int)
+0:16 add second child into first child (temp 4-component vector of float)
+0:16 'texColor' (temp 4-component vector of float)
+0:16 'color' (smooth in 4-component vector of float)
+0:18 move second child to first child (temp float)
+0:18 direct index (temp float)
+0:18 'texColor' (temp 4-component vector of float)
+0:18 Constant:
+0:18 3 (const int)
+0:18 'alpha' (smooth in float)
+0:20 move second child to first child (temp 4-component vector of float)
+0:20 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:20 add (temp 4-component vector of float)
+0:20 add (temp 4-component vector of float)
+0:20 add (temp 4-component vector of float)
+0:20 direct index (smooth temp 4-component vector of float TexCoord)
+0:20 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:20 Constant:
+0:20 0 (const int)
+0:20 indirect index (smooth temp 4-component vector of float TexCoord)
+0:20 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:20 'b' (uniform int)
+0:20 'texColor' (temp 4-component vector of float)
+0:20 indirect index (smooth temp 4-component vector of float)
+0:20 'userIn' (smooth in 2-element array of 4-component vector of float)
+0:20 'a' (uniform int)
+0:? Linker Objects
+0:? 'texSampler2D' (uniform sampler2D)
+0:? 'color' (smooth in 4-component vector of float)
+0:? 'alpha' (smooth in float)
+0:? 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:? 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:? 'userIn' (smooth in 2-element array of 4-component vector of float)
+0:? 'a' (uniform int)
+0:? 'b' (uniform int)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/versionsClean.frag.out b/chromium/third_party/glslang/src/Test/baseResults/versionsClean.frag.out
new file mode 100644
index 00000000000..44f04f6aa02
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/versionsClean.frag.out
@@ -0,0 +1,44 @@
+versionsClean.frag
+ERROR: #version: statement must appear first in es-profile shader; before comments or newlines
+ERROR: 0:34: '#version' : must occur first in shader
+ERROR: 2 compilation errors. No code generated.
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:41 Function Definition: main( (global void)
+0:41 Function Parameters:
+0:43 Sequence
+0:43 move second child to first child (temp highp 4-component vector of float)
+0:43 'foo' (out highp 4-component vector of float)
+0:43 Construct vec4 (temp highp 4-component vector of float)
+0:43 'color' (smooth in highp 3-component vector of float)
+0:43 Constant:
+0:43 142.000000
+0:44 Branch: Kill
+0:? Linker Objects
+0:? 'color' (smooth in highp 3-component vector of float)
+0:? 'foo' (out highp 4-component vector of float)
+0:? 'bar' (uniform highp sampler2DArrayShadow)
+
+
+Linked fragment stage:
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:41 Function Definition: main( (global void)
+0:41 Function Parameters:
+0:43 Sequence
+0:43 move second child to first child (temp highp 4-component vector of float)
+0:43 'foo' (out highp 4-component vector of float)
+0:43 Construct vec4 (temp highp 4-component vector of float)
+0:43 'color' (smooth in highp 3-component vector of float)
+0:43 Constant:
+0:43 142.000000
+0:44 Branch: Kill
+0:? Linker Objects
+0:? 'color' (smooth in highp 3-component vector of float)
+0:? 'foo' (out highp 4-component vector of float)
+0:? 'bar' (uniform highp sampler2DArrayShadow)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/versionsClean.vert.out b/chromium/third_party/glslang/src/Test/baseResults/versionsClean.vert.out
new file mode 100644
index 00000000000..c5d05a71a62
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/versionsClean.vert.out
@@ -0,0 +1,49 @@
+versionsClean.vert
+Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
+
+Shader version: 420
+0:? Sequence
+0:40 Function Definition: main( (global void)
+0:40 Function Parameters:
+0:42 Sequence
+0:42 move second child to first child (temp 4-component vector of float)
+0:42 gl_Position: direct index for structure (gl_Position 4-component vector of float Position)
+0:42 'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:42 Constant:
+0:42 0 (const uint)
+0:42 Construct vec4 (temp 4-component vector of float)
+0:42 'color' (in 3-component vector of float)
+0:42 Constant:
+0:42 142.000000
+0:? Linker Objects
+0:? 'color' (in 3-component vector of float)
+0:? 'foo' (uniform sampler2DRect)
+0:? 'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:? 'gl_VertexID' (gl_VertexId int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
+
+
+Linked vertex stage:
+
+
+Shader version: 420
+0:? Sequence
+0:40 Function Definition: main( (global void)
+0:40 Function Parameters:
+0:42 Sequence
+0:42 move second child to first child (temp 4-component vector of float)
+0:42 gl_Position: direct index for structure (gl_Position 4-component vector of float Position)
+0:42 'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:42 Constant:
+0:42 0 (const uint)
+0:42 Construct vec4 (temp 4-component vector of float)
+0:42 'color' (in 3-component vector of float)
+0:42 Constant:
+0:42 142.000000
+0:? Linker Objects
+0:? 'color' (in 3-component vector of float)
+0:? 'foo' (uniform sampler2DRect)
+0:? 'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:? 'gl_VertexID' (gl_VertexId int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/versionsErrors.frag.out b/chromium/third_party/glslang/src/Test/baseResults/versionsErrors.frag.out
new file mode 100644
index 00000000000..34182d015c8
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/versionsErrors.frag.out
@@ -0,0 +1,44 @@
+versionsErrors.frag
+ERROR: #version: versions before 150 do not allow a profile token
+ERROR: 0:38: 'attribute' : not supported in this stage: fragment
+ERROR: 0:40: 'sampler2DRect' : Reserved word.
+ERROR: 0:44: 'floating-point suffix' : not supported for this version or the enabled extensions
+ERROR: 4 compilation errors. No code generated.
+
+
+Shader version: 110
+ERROR: node is still EOpNull!
+0:42 Function Definition: main( (global void)
+0:42 Function Parameters:
+0:44 Sequence
+0:44 move second child to first child (temp 4-component vector of float)
+0:44 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:44 Construct vec4 (temp 4-component vector of float)
+0:44 'color' (smooth in 3-component vector of float)
+0:44 Constant:
+0:44 142.000000
+0:45 Branch: Kill
+0:? Linker Objects
+0:? 'color' (smooth in 3-component vector of float)
+0:? 'foo' (uniform sampler2DRect)
+
+
+Linked fragment stage:
+
+
+Shader version: 110
+ERROR: node is still EOpNull!
+0:42 Function Definition: main( (global void)
+0:42 Function Parameters:
+0:44 Sequence
+0:44 move second child to first child (temp 4-component vector of float)
+0:44 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:44 Construct vec4 (temp 4-component vector of float)
+0:44 'color' (smooth in 3-component vector of float)
+0:44 Constant:
+0:44 142.000000
+0:45 Branch: Kill
+0:? Linker Objects
+0:? 'color' (smooth in 3-component vector of float)
+0:? 'foo' (uniform sampler2DRect)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/versionsErrors.vert.out b/chromium/third_party/glslang/src/Test/baseResults/versionsErrors.vert.out
new file mode 100644
index 00000000000..0aeaea8cc3d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/versionsErrors.vert.out
@@ -0,0 +1,58 @@
+versionsErrors.vert
+Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
+WARNING: 0:38: attribute deprecated in version 130; may be removed in future release
+ERROR: 0:38: 'attribute' : no longer supported in core profile; removed in version 420
+ERROR: 0:45: 'discard' : not supported in this stage: vertex
+ERROR: 2 compilation errors. No code generated.
+
+
+Shader version: 420
+Requested GL_ARB_texture_rectangle
+ERROR: node is still EOpNull!
+0:42 Function Definition: main( (global void)
+0:42 Function Parameters:
+0:44 Sequence
+0:44 move second child to first child (temp 4-component vector of float)
+0:44 gl_Position: direct index for structure (gl_Position 4-component vector of float Position)
+0:44 'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:44 Constant:
+0:44 0 (const uint)
+0:44 Construct vec4 (temp 4-component vector of float)
+0:44 'color' (in 3-component vector of float)
+0:44 Constant:
+0:44 142.000000
+0:45 Branch: Kill
+0:? Linker Objects
+0:? 'color' (in 3-component vector of float)
+0:? 'foo' (uniform sampler2DRect)
+0:? 'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:? 'gl_VertexID' (gl_VertexId int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
+
+
+Linked vertex stage:
+
+
+Shader version: 420
+Requested GL_ARB_texture_rectangle
+ERROR: node is still EOpNull!
+0:42 Function Definition: main( (global void)
+0:42 Function Parameters:
+0:44 Sequence
+0:44 move second child to first child (temp 4-component vector of float)
+0:44 gl_Position: direct index for structure (gl_Position 4-component vector of float Position)
+0:44 'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:44 Constant:
+0:44 0 (const uint)
+0:44 Construct vec4 (temp 4-component vector of float)
+0:44 'color' (in 3-component vector of float)
+0:44 Constant:
+0:44 142.000000
+0:45 Branch: Kill
+0:? Linker Objects
+0:? 'color' (in 3-component vector of float)
+0:? 'foo' (uniform sampler2DRect)
+0:? 'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:? 'gl_VertexID' (gl_VertexId int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/voidFunction.frag.out b/chromium/third_party/glslang/src/Test/baseResults/voidFunction.frag.out
new file mode 100644
index 00000000000..638cfbdd3d8
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/voidFunction.frag.out
@@ -0,0 +1,91 @@
+voidFunction.frag
+Shader version: 120
+0:? Sequence
+0:7 Sequence
+0:7 move second child to first child (temp float)
+0:7 'bar' (global float)
+0:7 Constant:
+0:7 2.000000
+0:9 Function Definition: foo( (global void)
+0:9 Function Parameters:
+0:11 Sequence
+0:11 Post-Increment (temp float)
+0:11 'bar' (global float)
+0:13 Branch: Return
+0:16 Function Definition: foo2( (global void)
+0:16 Function Parameters:
+0:18 Sequence
+0:18 Post-Increment (temp float)
+0:18 'bar' (global float)
+0:21 Function Definition: main( (global void)
+0:21 Function Parameters:
+0:23 Sequence
+0:23 Sequence
+0:23 move second child to first child (temp 4-component vector of float)
+0:23 'outColor' (temp 4-component vector of float)
+0:23 'bigColor' (uniform 4-component vector of float)
+0:25 Function Call: foo( (global void)
+0:27 Function Call: foo2( (global void)
+0:29 add second child into first child (temp float)
+0:29 direct index (temp float)
+0:29 'outColor' (temp 4-component vector of float)
+0:29 Constant:
+0:29 0 (const int)
+0:29 'bar' (global float)
+0:31 move second child to first child (temp 4-component vector of float)
+0:31 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:31 'outColor' (temp 4-component vector of float)
+0:33 Branch: Return
+0:? Linker Objects
+0:? 'bigColor' (uniform 4-component vector of float)
+0:? 'BaseColor' (smooth in 4-component vector of float)
+0:? 'd' (uniform float)
+0:? 'bar' (global float)
+
+
+Linked fragment stage:
+
+
+Shader version: 120
+0:? Sequence
+0:7 Sequence
+0:7 move second child to first child (temp float)
+0:7 'bar' (global float)
+0:7 Constant:
+0:7 2.000000
+0:9 Function Definition: foo( (global void)
+0:9 Function Parameters:
+0:11 Sequence
+0:11 Post-Increment (temp float)
+0:11 'bar' (global float)
+0:13 Branch: Return
+0:16 Function Definition: foo2( (global void)
+0:16 Function Parameters:
+0:18 Sequence
+0:18 Post-Increment (temp float)
+0:18 'bar' (global float)
+0:21 Function Definition: main( (global void)
+0:21 Function Parameters:
+0:23 Sequence
+0:23 Sequence
+0:23 move second child to first child (temp 4-component vector of float)
+0:23 'outColor' (temp 4-component vector of float)
+0:23 'bigColor' (uniform 4-component vector of float)
+0:25 Function Call: foo( (global void)
+0:27 Function Call: foo2( (global void)
+0:29 add second child into first child (temp float)
+0:29 direct index (temp float)
+0:29 'outColor' (temp 4-component vector of float)
+0:29 Constant:
+0:29 0 (const int)
+0:29 'bar' (global float)
+0:31 move second child to first child (temp 4-component vector of float)
+0:31 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:31 'outColor' (temp 4-component vector of float)
+0:33 Branch: Return
+0:? Linker Objects
+0:? 'bigColor' (uniform 4-component vector of float)
+0:? 'BaseColor' (smooth in 4-component vector of float)
+0:? 'd' (uniform float)
+0:? 'bar' (global float)
+
diff --git a/chromium/third_party/glslang/src/Test/baseResults/vulkan.ast.vert.out b/chromium/third_party/glslang/src/Test/baseResults/vulkan.ast.vert.out
new file mode 100755
index 00000000000..31ac4940ed8
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/vulkan.ast.vert.out
@@ -0,0 +1,324 @@
+vulkan.ast.vert
+Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
+
+Shader version: 450
+0:? Sequence
+0:7 Function Definition: main( (global void)
+0:7 Function Parameters:
+0:9 Sequence
+0:9 Convert float to bool (temp bool)
+0:9 'scf1' (specialization-constant const float)
+0:9 1.000000
+0:10 Construct bool (specialization-constant const bool)
+0:10 'scbt' (specialization-constant const bool)
+0:10 true (const bool)
+0:11 Convert int to bool (specialization-constant const bool)
+0:11 'sci2' (specialization-constant const int)
+0:11 2 (const int)
+0:13 Construct float (temp float)
+0:13 'scf1' (specialization-constant const float)
+0:13 1.000000
+0:14 Convert bool to float (temp float)
+0:14 'scbt' (specialization-constant const bool)
+0:14 true (const bool)
+0:15 Convert int to float (temp float)
+0:15 'sci2' (specialization-constant const int)
+0:15 2 (const int)
+0:17 Convert float to int (temp int)
+0:17 'scf1' (specialization-constant const float)
+0:17 1.000000
+0:18 Convert bool to int (specialization-constant const int)
+0:18 'scbt' (specialization-constant const bool)
+0:18 true (const bool)
+0:19 Construct int (specialization-constant const int)
+0:19 'sci2' (specialization-constant const int)
+0:19 2 (const int)
+0:21 component-wise multiply (temp float)
+0:21 'scf1' (specialization-constant const float)
+0:21 1.000000
+0:21 'scf1' (specialization-constant const float)
+0:21 1.000000
+0:22 logical-or (specialization-constant const bool)
+0:22 'scbt' (specialization-constant const bool)
+0:22 true (const bool)
+0:22 'scbt' (specialization-constant const bool)
+0:22 true (const bool)
+0:23 component-wise multiply (specialization-constant const int)
+0:23 'sci2' (specialization-constant const int)
+0:23 2 (const int)
+0:23 'sci2' (specialization-constant const int)
+0:23 2 (const int)
+0:24 add (temp float)
+0:24 'scf1' (specialization-constant const float)
+0:24 1.000000
+0:24 Convert int to float (temp float)
+0:24 'sci2' (specialization-constant const int)
+0:24 2 (const int)
+0:26 Negate value (temp float)
+0:26 'scf1' (specialization-constant const float)
+0:26 1.000000
+0:27 Negate conditional (specialization-constant const bool)
+0:27 'scbt' (specialization-constant const bool)
+0:27 true (const bool)
+0:28 Negate value (specialization-constant const int)
+0:28 'sci2' (specialization-constant const int)
+0:28 2 (const int)
+0:30 Compare Greater Than (temp bool)
+0:30 'scf1' (specialization-constant const float)
+0:30 1.000000
+0:30 'scf1' (specialization-constant const float)
+0:30 1.000000
+0:31 Compare Greater Than (specialization-constant const bool)
+0:31 'sci2' (specialization-constant const int)
+0:31 2 (const int)
+0:31 'sci2' (specialization-constant const int)
+0:31 2 (const int)
+0:33 Compare Not Equal (temp bool)
+0:33 'scf1' (specialization-constant const float)
+0:33 1.000000
+0:33 'scf1' (specialization-constant const float)
+0:33 1.000000
+0:34 Compare Not Equal (specialization-constant const bool)
+0:34 'scbt' (specialization-constant const bool)
+0:34 true (const bool)
+0:34 'scbt' (specialization-constant const bool)
+0:34 true (const bool)
+0:35 Compare Not Equal (specialization-constant const bool)
+0:35 'sci2' (specialization-constant const int)
+0:35 2 (const int)
+0:35 'sci2' (specialization-constant const int)
+0:35 2 (const int)
+0:37 Construct ivec2 (specialization-constant const 2-component vector of int)
+0:37 'sci2' (specialization-constant const int)
+0:37 2 (const int)
+0:37 'sci2' (specialization-constant const int)
+0:37 2 (const int)
+0:38 Construct ivec2 (temp 2-element array of 2-component vector of int)
+0:38 Construct ivec2 (specialization-constant const 2-component vector of int)
+0:38 'sci2' (specialization-constant const int)
+0:38 2 (const int)
+0:38 'sci2' (specialization-constant const int)
+0:38 2 (const int)
+0:38 Construct ivec2 (specialization-constant const 2-component vector of int)
+0:38 'sci2' (specialization-constant const int)
+0:38 2 (const int)
+0:38 'sci2' (specialization-constant const int)
+0:38 2 (const int)
+0:40 Construct vec2 (temp 2-component vector of float)
+0:40 'scf1' (specialization-constant const float)
+0:40 1.000000
+0:40 'scf1' (specialization-constant const float)
+0:40 1.000000
+0:41 Construct vec2 (temp 2-element array of 2-component vector of float)
+0:41 Construct vec2 (temp 2-component vector of float)
+0:41 'scf1' (specialization-constant const float)
+0:41 1.000000
+0:41 'scf1' (specialization-constant const float)
+0:41 1.000000
+0:41 Construct vec2 (temp 2-component vector of float)
+0:41 'scf1' (specialization-constant const float)
+0:41 1.000000
+0:41 'scf1' (specialization-constant const float)
+0:41 1.000000
+0:? Linker Objects
+0:? 'scf1' (specialization-constant const float)
+0:? 1.000000
+0:? 'scbt' (specialization-constant const bool)
+0:? true (const bool)
+0:? 'sci2' (specialization-constant const int)
+0:? 2 (const int)
+
+
+Linked vertex stage:
+
+
+Shader version: 450
+0:? Sequence
+0:7 Function Definition: main( (global void)
+0:7 Function Parameters:
+0:9 Sequence
+0:9 Convert float to bool (temp bool)
+0:9 'scf1' (specialization-constant const float)
+0:9 1.000000
+0:10 Construct bool (specialization-constant const bool)
+0:10 'scbt' (specialization-constant const bool)
+0:10 true (const bool)
+0:11 Convert int to bool (specialization-constant const bool)
+0:11 'sci2' (specialization-constant const int)
+0:11 2 (const int)
+0:13 Construct float (temp float)
+0:13 'scf1' (specialization-constant const float)
+0:13 1.000000
+0:14 Convert bool to float (temp float)
+0:14 'scbt' (specialization-constant const bool)
+0:14 true (const bool)
+0:15 Convert int to float (temp float)
+0:15 'sci2' (specialization-constant const int)
+0:15 2 (const int)
+0:17 Convert float to int (temp int)
+0:17 'scf1' (specialization-constant const float)
+0:17 1.000000
+0:18 Convert bool to int (specialization-constant const int)
+0:18 'scbt' (specialization-constant const bool)
+0:18 true (const bool)
+0:19 Construct int (specialization-constant const int)
+0:19 'sci2' (specialization-constant const int)
+0:19 2 (const int)
+0:21 component-wise multiply (temp float)
+0:21 'scf1' (specialization-constant const float)
+0:21 1.000000
+0:21 'scf1' (specialization-constant const float)
+0:21 1.000000
+0:22 logical-or (specialization-constant const bool)
+0:22 'scbt' (specialization-constant const bool)
+0:22 true (const bool)
+0:22 'scbt' (specialization-constant const bool)
+0:22 true (const bool)
+0:23 component-wise multiply (specialization-constant const int)
+0:23 'sci2' (specialization-constant const int)
+0:23 2 (const int)
+0:23 'sci2' (specialization-constant const int)
+0:23 2 (const int)
+0:24 add (temp float)
+0:24 'scf1' (specialization-constant const float)
+0:24 1.000000
+0:24 Convert int to float (temp float)
+0:24 'sci2' (specialization-constant const int)
+0:24 2 (const int)
+0:26 Negate value (temp float)
+0:26 'scf1' (specialization-constant const float)
+0:26 1.000000
+0:27 Negate conditional (specialization-constant const bool)
+0:27 'scbt' (specialization-constant const bool)
+0:27 true (const bool)
+0:28 Negate value (specialization-constant const int)
+0:28 'sci2' (specialization-constant const int)
+0:28 2 (const int)
+0:30 Compare Greater Than (temp bool)
+0:30 'scf1' (specialization-constant const float)
+0:30 1.000000
+0:30 'scf1' (specialization-constant const float)
+0:30 1.000000
+0:31 Compare Greater Than (specialization-constant const bool)
+0:31 'sci2' (specialization-constant const int)
+0:31 2 (const int)
+0:31 'sci2' (specialization-constant const int)
+0:31 2 (const int)
+0:33 Compare Not Equal (temp bool)
+0:33 'scf1' (specialization-constant const float)
+0:33 1.000000
+0:33 'scf1' (specialization-constant const float)
+0:33 1.000000
+0:34 Compare Not Equal (specialization-constant const bool)
+0:34 'scbt' (specialization-constant const bool)
+0:34 true (const bool)
+0:34 'scbt' (specialization-constant const bool)
+0:34 true (const bool)
+0:35 Compare Not Equal (specialization-constant const bool)
+0:35 'sci2' (specialization-constant const int)
+0:35 2 (const int)
+0:35 'sci2' (specialization-constant const int)
+0:35 2 (const int)
+0:37 Construct ivec2 (specialization-constant const 2-component vector of int)
+0:37 'sci2' (specialization-constant const int)
+0:37 2 (const int)
+0:37 'sci2' (specialization-constant const int)
+0:37 2 (const int)
+0:38 Construct ivec2 (temp 2-element array of 2-component vector of int)
+0:38 Construct ivec2 (specialization-constant const 2-component vector of int)
+0:38 'sci2' (specialization-constant const int)
+0:38 2 (const int)
+0:38 'sci2' (specialization-constant const int)
+0:38 2 (const int)
+0:38 Construct ivec2 (specialization-constant const 2-component vector of int)
+0:38 'sci2' (specialization-constant const int)
+0:38 2 (const int)
+0:38 'sci2' (specialization-constant const int)
+0:38 2 (const int)
+0:40 Construct vec2 (temp 2-component vector of float)
+0:40 'scf1' (specialization-constant const float)
+0:40 1.000000
+0:40 'scf1' (specialization-constant const float)
+0:40 1.000000
+0:41 Construct vec2 (temp 2-element array of 2-component vector of float)
+0:41 Construct vec2 (temp 2-component vector of float)
+0:41 'scf1' (specialization-constant const float)
+0:41 1.000000
+0:41 'scf1' (specialization-constant const float)
+0:41 1.000000
+0:41 Construct vec2 (temp 2-component vector of float)
+0:41 'scf1' (specialization-constant const float)
+0:41 1.000000
+0:41 'scf1' (specialization-constant const float)
+0:41 1.000000
+0:? Linker Objects
+0:? 'scf1' (specialization-constant const float)
+0:? 1.000000
+0:? 'scbt' (specialization-constant const bool)
+0:? true (const bool)
+0:? 'sci2' (specialization-constant const int)
+0:? 2 (const int)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 50
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Vertex 4 "main"
+ Source GLSL 450
+ Name 4 "main"
+ Decorate 7 SpecId 200
+ Decorate 11 SpecId 201
+ Decorate 13 SpecId 202
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: 6(float) SpecConstant 1065353216
+ 8: TypeBool
+ 9: 6(float) Constant 0
+ 11: 8(bool) SpecConstantTrue
+ 12: TypeInt 32 1
+ 13: 12(int) SpecConstant 2
+ 14: TypeInt 32 0
+ 15: 14(int) Constant 0
+ 16: 8(bool) SpecConstantOp 171 13 15
+ 17: 6(float) Constant 1065353216
+ 21: 12(int) Constant 0
+ 22: 12(int) Constant 1
+ 23: 12(int) SpecConstantOp 169 11 22 21
+ 25: 8(bool) SpecConstantOp 166 11 11
+ 26: 12(int) SpecConstantOp 132 13 13
+ 30: 8(bool) SpecConstantOp 168 11
+ 31: 12(int) SpecConstantOp 126 13
+ 33: 8(bool) SpecConstantOp 173 13 13
+ 35: 8(bool) SpecConstantOp 165 11 11
+ 36: 8(bool) SpecConstantOp 171 13 13
+ 37: TypeVector 12(int) 2
+ 38: 37(ivec2) SpecConstantComposite 13 13
+ 39: 37(ivec2) SpecConstantComposite 13 13
+ 40: 37(ivec2) SpecConstantComposite 13 13
+ 41: 14(int) Constant 2
+ 42: TypeArray 37(ivec2) 41
+ 44: TypeVector 6(float) 2
+ 48: TypeArray 44(fvec2) 41
+ 4(main): 2 Function None 3
+ 5: Label
+ 10: 8(bool) FOrdNotEqual 7 9
+ 18: 6(float) Select 11 17 9
+ 19: 6(float) ConvertSToF 13
+ 20: 12(int) ConvertFToS 7
+ 24: 6(float) FMul 7 7
+ 27: 6(float) ConvertSToF 13
+ 28: 6(float) FAdd 7 27
+ 29: 6(float) FNegate 7
+ 32: 8(bool) FOrdGreaterThan 7 7
+ 34: 8(bool) FOrdNotEqual 7 7
+ 43: 42 CompositeConstruct 39 40
+ 45: 44(fvec2) CompositeConstruct 7 7
+ 46: 44(fvec2) CompositeConstruct 7 7
+ 47: 44(fvec2) CompositeConstruct 7 7
+ 49: 48 CompositeConstruct 46 47
+ Return
+ FunctionEnd
diff --git a/chromium/third_party/glslang/src/Test/baseResults/vulkan.comp.out b/chromium/third_party/glslang/src/Test/baseResults/vulkan.comp.out
new file mode 100644
index 00000000000..7f1fd18ac73
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/vulkan.comp.out
@@ -0,0 +1,11 @@
+vulkan.comp
+Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:5: 'local_size' : cannot change previously set size
+ERROR: 1 compilation errors. No code generated.
+
+
+
+Linked compute stage:
+
+
+SPIR-V is not generated for failed compile or link
diff --git a/chromium/third_party/glslang/src/Test/baseResults/vulkan.frag.out b/chromium/third_party/glslang/src/Test/baseResults/vulkan.frag.out
new file mode 100644
index 00000000000..fe8b045b3b2
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/vulkan.frag.out
@@ -0,0 +1,44 @@
+vulkan.frag
+Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:14: 'sampler2D' : sampler-constructor requires two arguments
+ERROR: 0:15: 'sampler2D' : sampler-constructor first argument must be a scalar textureXXX type
+ERROR: 0:16: 'sampler2D' : sampler-constructor first argument must be a scalar textureXXX type
+ERROR: 0:17: 'sampler2D' : sampler-constructor second argument must be a scalar type 'sampler'
+ERROR: 0:18: 'sampler2D' : sampler-constructor second argument must be a scalar type 'sampler'
+ERROR: 0:19: 'sampler2D' : sampler-constructor second argument must be a scalar type 'sampler'
+ERROR: 0:21: 'sampler3D' : sampler-constructor cannot make an array of samplers
+ERROR: 0:22: 'sampler2D' : sampler-constructor first argument must be a scalar textureXXX type
+ERROR: 0:23: 'sampler2D' : sampler-constructor first argument must match type and dimensionality of constructor type
+ERROR: 0:24: 'sampler2D' : sampler-constructor second argument presence of shadow must match constructor presence of shadow
+ERROR: 0:25: 'sampler2DShadow' : sampler-constructor second argument presence of shadow must match constructor presence of shadow
+ERROR: 0:28: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: s2D
+ERROR: 0:29: 'sampler3D' : sampler-constructor cannot make an array of samplers
+ERROR: 0:29: 'sampler3D' : sampler/image types can only be used in uniform variables or function parameters: s3d
+ERROR: 0:29: '=' : cannot convert from 'const float' to 'global 4-element array of sampler3D'
+ERROR: 0:39: 'push_constant' : can only be used with a uniform
+ERROR: 0:43: 'non-opaque uniforms outside a block' : not allowed when using GLSL for Vulkan
+ERROR: 0:43: 'push_constant' : can only be used with a block
+ERROR: 0:45: 'push_constant' : cannot declare a default, can only be used on a block
+ERROR: 0:47: 'push_constant' : requires an instance name
+ERROR: 0:52: 'input_attachment_index' : can only be used with a subpass
+ERROR: 0:53: 'input_attachment_index' : can only be used with a subpass
+ERROR: 0:54: 'subpass' : requires an input_attachment_index layout qualifier
+ERROR: 0:60: 'subpassLoadMS' : no matching overloaded function found
+ERROR: 0:61: 'subpassLoad' : no matching overloaded function found
+ERROR: 0:63: 'subpassLoadMS' : no matching overloaded function found
+ERROR: 0:66: 'subroutine' : not allowed when generating SPIR-V
+ERROR: 0:66: 'non-opaque uniforms outside a block' : not allowed when using GLSL for Vulkan
+ERROR: 0:67: 'subroutine' : not allowed when generating SPIR-V
+ERROR: 0:67: 'uniform' : no qualifiers allowed for function return
+ERROR: 0:69: 'non-opaque uniforms outside a block' : not allowed when using GLSL for Vulkan
+ERROR: 0:73: 'texture' : no matching overloaded function found
+ERROR: 0:74: 'imageStore' : no matching overloaded function found
+ERROR: 33 compilation errors. No code generated.
+
+
+
+Linked fragment stage:
+
+ERROR: Linking fragment stage: Only one push_constant block is allowed per stage
+
+SPIR-V is not generated for failed compile or link
diff --git a/chromium/third_party/glslang/src/Test/baseResults/vulkan.vert.out b/chromium/third_party/glslang/src/Test/baseResults/vulkan.vert.out
new file mode 100644
index 00000000000..0cac808ff2f
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/vulkan.vert.out
@@ -0,0 +1,33 @@
+vulkan.vert
+Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:3: 'subpass input' : not supported in this stage: vertex
+ERROR: 0:4: 'subpass input' : not supported in this stage: vertex
+ERROR: 0:5: 'subpass input' : not supported in this stage: vertex
+ERROR: 0:6: 'subpass input' : not supported in this stage: vertex
+ERROR: 0:7: 'subpass input' : not supported in this stage: vertex
+ERROR: 0:8: 'subpass input' : not supported in this stage: vertex
+ERROR: 0:12: 'constant_id' : can only be applied to a scalar
+ERROR: 0:13: 'constant_id' : specialization-constant id already used
+ERROR: 0:13: 'constant_id' : can only be applied to 'const'-qualified scalar
+ERROR: 0:13: 'constant_id' : cannot be applied to this type
+ERROR: 0:14: 'constant_id' : specialization-constant id is too large
+ERROR: 0:15: 'constant_id' : can only be applied to a scalar
+ERROR: 0:16: 'constant_id' : specialization-constant id already used
+ERROR: 0:16: 'constant_id' : cannot declare a default, can only be used on a scalar
+ERROR: 0:20: 'subpassLoad' : no matching overloaded function found
+ERROR: 0:20: 'assign' : cannot convert from 'const float' to 'smooth out 4-component vector of float'
+ERROR: 0:23: 'atomic counter types' : not allowed when using GLSL for Vulkan
+ERROR: 0:24: 'shared' : not allowed when using GLSL for Vulkan
+ERROR: 0:25: 'packed' : not allowed when using GLSL for Vulkan
+ERROR: 0:32: 'initializer' : can't use with types containing arrays sized with a specialization constant
+ERROR: 0:34: '=' : can't use with types containing arrays sized with a specialization constant
+ERROR: 0:35: '==' : can't use with types containing arrays sized with a specialization constant
+ERROR: 0:39: 'set' : cannot be used with push_constant
+ERROR: 23 compilation errors. No code generated.
+
+
+
+Linked vertex stage:
+
+
+SPIR-V is not generated for failed compile or link
diff --git a/chromium/third_party/glslang/src/Test/baseResults/whileLoop.frag.out b/chromium/third_party/glslang/src/Test/baseResults/whileLoop.frag.out
new file mode 100644
index 00000000000..ad30b361f15
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/baseResults/whileLoop.frag.out
@@ -0,0 +1,65 @@
+whileLoop.frag
+Shader version: 110
+0:? Sequence
+0:7 Function Definition: main( (global void)
+0:7 Function Parameters:
+0:9 Sequence
+0:9 Sequence
+0:9 move second child to first child (temp 4-component vector of float)
+0:9 'color' (temp 4-component vector of float)
+0:9 'BaseColor' (smooth in 4-component vector of float)
+0:11 Loop with condition tested first
+0:11 Loop Condition
+0:11 Compare Less Than (temp bool)
+0:11 direct index (temp float)
+0:11 'color' (temp 4-component vector of float)
+0:11 Constant:
+0:11 0 (const int)
+0:11 'd' (uniform float)
+0:11 Loop Body
+0:12 Sequence
+0:12 add second child into first child (temp 4-component vector of float)
+0:12 'color' (temp 4-component vector of float)
+0:12 'bigColor' (uniform 4-component vector of float)
+0:15 move second child to first child (temp 4-component vector of float)
+0:15 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:15 'color' (temp 4-component vector of float)
+0:? Linker Objects
+0:? 'bigColor' (uniform 4-component vector of float)
+0:? 'BaseColor' (smooth in 4-component vector of float)
+0:? 'd' (uniform float)
+
+
+Linked fragment stage:
+
+
+Shader version: 110
+0:? Sequence
+0:7 Function Definition: main( (global void)
+0:7 Function Parameters:
+0:9 Sequence
+0:9 Sequence
+0:9 move second child to first child (temp 4-component vector of float)
+0:9 'color' (temp 4-component vector of float)
+0:9 'BaseColor' (smooth in 4-component vector of float)
+0:11 Loop with condition tested first
+0:11 Loop Condition
+0:11 Compare Less Than (temp bool)
+0:11 direct index (temp float)
+0:11 'color' (temp 4-component vector of float)
+0:11 Constant:
+0:11 0 (const int)
+0:11 'd' (uniform float)
+0:11 Loop Body
+0:12 Sequence
+0:12 add second child into first child (temp 4-component vector of float)
+0:12 'color' (temp 4-component vector of float)
+0:12 'bigColor' (uniform 4-component vector of float)
+0:15 move second child to first child (temp 4-component vector of float)
+0:15 'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:15 'color' (temp 4-component vector of float)
+0:? Linker Objects
+0:? 'bigColor' (uniform 4-component vector of float)
+0:? 'BaseColor' (smooth in 4-component vector of float)
+0:? 'd' (uniform float)
+
diff --git a/chromium/third_party/glslang/src/Test/bump b/chromium/third_party/glslang/src/Test/bump
new file mode 100755
index 00000000000..f23be33b627
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/bump
@@ -0,0 +1,2 @@
+cp localResults/* baseResults/
+
diff --git a/chromium/third_party/glslang/src/Test/comment.frag b/chromium/third_party/glslang/src/Test/comment.frag
new file mode 100644
index 00000000000..f5c565c22f2
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/comment.frag
@@ -0,0 +1,19 @@
+
+ //
+/* anotehn t* ontuh * / tnoahnt /* oo */
+/* multi line...
+
+ao */
+/* no escape \
+oanot */
+// escape nothing \o oeu
+// escape newline \
+still in a comment
+// escape newline \
+
+// a different comment
+#version 430 core
+in vec4 v;
+void main() {}
+
+
diff --git a/chromium/third_party/glslang/src/Test/conditionalDiscard.frag b/chromium/third_party/glslang/src/Test/conditionalDiscard.frag
new file mode 100644
index 00000000000..ebc82fc616f
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/conditionalDiscard.frag
@@ -0,0 +1,14 @@
+#version 110
+
+uniform sampler2D tex;
+varying vec2 coord;
+
+void main (void)
+{
+ vec4 v = texture2D(tex, coord);
+
+ if (v == vec4(0.1,0.2,0.3,0.4))
+ discard;
+
+ gl_FragColor = v;
+}
diff --git a/chromium/third_party/glslang/src/Test/constErrors.frag b/chromium/third_party/glslang/src/Test/constErrors.frag
new file mode 100644
index 00000000000..0067af1180d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/constErrors.frag
@@ -0,0 +1,35 @@
+#version 330
+
+in vec4 inVar;
+out vec4 outVar;
+
+const int constInt = 3;
+
+uniform int uniformInt;
+
+void main()
+{
+ const int a1 = 2; // okay
+ const int a2 = constInt; // okay
+ const int a3 = uniformInt; // error
+
+ vec4 c[constInt]; // okay
+ vec4 d[uniformInt]; // error
+ vec4 e[constInt + uniformInt]; // error
+ vec4 f[uniformInt + constInt]; // error
+
+ vec4 g[int(sin(0.3)) + 1]; // okay
+}
+
+const struct S {
+ vec3 v3;
+ ivec2 iv2;
+} s = S(vec3(3.0), ivec2(3, constInt + uniformInt)); // ERROR, non-const y componenent
+
+const struct S2 {
+ vec3 v3;
+ ivec2 iv2;
+ mat2x4 m;
+} s2 = S2(vec3(3.0), ivec2(3, constInt), mat2x4(1.0, 2.0, 3.0, inVar.x, 5.0, 6.0, 7.0, 8.0)); // ERROR, non-constant matrix
+
+const float f = 3; // okay, type conversion
diff --git a/chromium/third_party/glslang/src/Test/constFold.frag b/chromium/third_party/glslang/src/Test/constFold.frag
new file mode 100644
index 00000000000..4e809d60240
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/constFold.frag
@@ -0,0 +1,141 @@
+#version 430
+
+const int a = 1;
+const int b = 2;
+const int c = a + b; // 3
+const int d = c - a; // 2
+const float e = float(d); // 2.0
+const float f = e * float(c); // 6.0
+const float g = f / float(d); // 3.0
+
+const vec2 pytho = vec2(3.0, 4.0);
+
+in vec4 inv;
+out vec4 FragColor;
+out vec2 out2;
+out vec4 out3;
+out vec4 out4;
+out ivec4 out5;
+out vec3 out6;
+out vec4 out7;
+out vec4 out8;
+out vec4 out9;
+out vec4 out10;
+out vec4 out11;
+out ivec2 out12;
+out uvec3 out13;
+
+void main()
+{
+ vec4 dx = dFdx(inv);
+ const ivec4 v = ivec4(a, b, c, d);
+ vec4 array2[v.y]; // 2
+ const ivec4 u = ~v;
+
+ const float h = degrees(g); // 171.88
+
+ FragColor = vec4(e, f, g, h); // 2, 6, 3, 171.88
+
+ vec4 array3[c]; // 3
+ vec4 arrayMax[int(max(float(array2.length()), float(array3.length())))];
+ vec4 arrayMin[int(min(float(array2.length()), float(array3.length())))];
+ FragColor = vec4(arrayMax.length(), arrayMin.length(), sin(3.14), cos(3.14)); // 3, 2, .00159, -.999
+ out2 = length(pytho) + normalize(pytho) + dFdx(pytho) + dFdy(pytho) + fwidth(pytho); // 5+3/5, 5+4/5
+ out3 = vec4(exp(3.0), log(10.0), exp2(4.0), log2(256.0)); // 20.08, 2.3, 16, 8
+ out4 = vec4(sqrt(100.0), inversesqrt(100.0), abs(-4.7), abs(10.9)); // 10, .1, 4.7, 10.9
+ out5 = ivec4(abs(-8) + sign(0), abs(17), sign(-12), sign(9)); // 8, 17, -1, 1
+ out6 = vec3(sign(-8.8), sign(18.0), sign(0.0)); // -1.0, 1.0, 0.0
+ out7 = vec4(floor(4.2), ceil(-4.1), trunc(5.9), trunc(-5.9)); // 4, -4, 5, -5
+ out8 = vec4(round(4.4), round(4.6), roundEven(4.5), roundEven(-5.5)); // 4, 5, 4, -6
+ out9 = vec4(roundEven(7.5), roundEven(-4.5), fract(2.345), fract(-2.6)); // 8, -4, .345, 0.4
+ out10 = vec4(isinf(4.0/0.0), isinf(-3.0/0.0), isinf(0.0/0.0), isinf(-93048593405938405938405.0)); // true, true, false, false -> 1.0, 1.0, 0.0, 0.0
+ out11 = vec4(isnan(4.0/0.0), isnan(-3.0/0.0), isnan(0.0/0.0), isnan(-93048593405938405938405.0)); // false, false, true, false -> 0.0, 1.0, 0.0, 0.0
+ out11 = vec4(tan(0.8), atan(1.029), atan(8.0, 10.0), atan(10000.0)); // 1.029, 0.8, 0.6747, 1.57
+ out11 = vec4(asin(0.0), asin(0.5), acos(0.0), acos(0.5)); // 0.0, .523599, 1.57, 1.047
+
+ const vec4 v1 = vec4(1.0, 0.0, 0.5, -0.2);
+ const vec4 v2 = vec4(0.2, 0.3, 0.4, 0.5);
+ out11 = atan(v1, v2); // 1.373401, 0.0, 0.896055, -0.380506
+
+ const ivec2 v3 = ivec2(15.0, 17.0);
+ const ivec2 v4 = ivec2(17.0, 15.0);
+ out12 = min(v3, 16); // 15, 16
+ out12 = max(v3, v4); // 17, 17
+ out2 = pow(vec2(v3), vec2(2.5, 3.0)); // 871.4, 4913
+ out13 = clamp(uvec3(1, 20, 50), 10u, 30u); // 10, 20, 30
+ out2 = mix(vec2(3.0, 4.0), vec2(5.0, 6.0), bvec2(false, true)); // 3.0, 6.0
+ out2 = mix(vec2(3.0, 4.0), vec2(5.0, 6.0), 0.25); // 3.5, 4.5
+ out2 = step(0.5, vec2(0.2, 0.6)); // 0.0, 1.0
+ out11 = smoothstep(50.0, 60.0, vec4(40.0, 51.0, 55.0, 70.0)); // 0.0, 0.028, 0.5, 1.0
+}
+
+const struct S {
+ vec3 v3;
+ ivec2 iv2;
+ mat2x4 m;
+} s = S(vec3(3.0), ivec2(3, a + b), mat2x4(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0));
+
+void foo()
+{
+ float a[s.iv2.y]; // 3 element array
+ a[0] = s.m[1].z; // 7.0
+ b % 0; // int
+ b / 0;
+ e / 0;
+ const uint ua = 5;
+ const uvec2 ub = uvec2(6, 7);
+ const uint uc = 8;
+ ub % 4u;
+ 0u % uc;
+ ub % 0u;
+}
+
+const mat2 m2 = mat2(2, 3, 4, 5);
+const mat3 m3 = mat3(m2);
+const int mc = int(m3[2][2]);
+float a1[mc];
+float a2[int(m3[2][1]) + 2]; // size 2
+float a3[int(m3[1][0])]; // size 4
+const vec2 v2 = vec2(1, 2);
+const vec3 v3 = vec3(3, 4, 5);
+float a4[uint(mat3(v2, v3, v2, v2)[2][2])]; // size 2
+
+void foo2()
+{
+ a1[0]; // array size 1
+ a2[0]; // array size 2
+ a3[0]; // array size 4
+ a4[0]; // array size 2
+ v2[-1]; // ERROR
+ v3[4]; // ERROR
+ m3[0][-2]; // ERROR
+ m2[-1][1]; // ERROR
+ m3[1][3]; // ERROR
+ m3[3][1]; // ERROR
+ int p;
+ p = -2147483647 / -1;
+ p = -2147483648 / -1;
+ p = 2147483647 / -1;
+ float f = vec4(7.8 < 2.4 ? -1.333 : 1.444).a;
+ f = vec4(inv.x < 2.4 ? -1.0 : 1.0).a; // not folded, ensuring no propagation
+}
+
+const mat2 mm2 = mat2(1.0, 2.0, 3.0, 4.0);
+const mat3x2 mm32 = mat3x2(10.0, 11.0, 12.0, 13.0, 14.0, 15.0);
+
+void foo3()
+{
+ mat3x2 r32 = mm2 * mm32;
+}
+
+struct cag {
+ int i;
+ float f;
+ bool b;
+};
+const cag a0[3] = cag[3](cag(3, 2.0, true), cag(1, 5.0, true), cag(1, 9.0, false));
+
+void foo4()
+{
+ int a = int(a0[2].f);
+} \ No newline at end of file
diff --git a/chromium/third_party/glslang/src/Test/conversion.frag b/chromium/third_party/glslang/src/Test/conversion.frag
new file mode 100644
index 00000000000..3931f5a2959
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/conversion.frag
@@ -0,0 +1,112 @@
+#version 130
+
+uniform bool u_b;
+uniform bvec2 u_b2;
+uniform bvec3 u_b3;
+uniform bvec4 u_b4;
+
+uniform int u_i;
+uniform ivec2 u_i2;
+uniform ivec3 u_i3;
+uniform ivec4 u_i4;
+
+uniform float u_f;
+uniform vec2 u_f2;
+uniform vec3 u_f3;
+uniform vec4 u_f4;
+
+uniform bool i_b;
+uniform bvec2 i_b2;
+uniform bvec3 i_b3;
+uniform bvec4 i_b4;
+
+flat in int i_i;
+flat in ivec2 i_i2;
+flat in ivec3 i_i3;
+flat in ivec4 i_i4;
+
+in float i_f;
+in vec2 i_f2;
+in vec3 i_f3;
+in vec4 i_f4;
+
+void main()
+{
+ bool b = bool(u_i) ^^ bool(u_f);
+ bvec2 b2 = bvec2(u_i, u_f);
+ bvec3 b3 = bvec3(u_i, u_f, i_i);
+ bvec4 b4 = bvec4(u_i, u_f, i_i, i_f);
+
+ int i = int(u_f) + int(b);
+ ivec2 i2 = ivec2(u_f2) + ivec2(b2);
+ ivec3 i3 = ivec3(u_f3) + ivec3(b3);
+ ivec4 i4 = ivec4(u_f4) + ivec4(b4);
+
+ float f = i;
+ vec2 f2 = i2;
+ vec3 f3 = i3;
+ vec4 f4 = i4;
+
+ f += (float(i) + float(b));
+ f2 -= vec2(i2) + vec2(b2);
+ f3 /= vec3(i3) + vec3(b3);
+ f4 += vec4(i4) + vec4(b4);
+
+ f4 += vec4(bvec4(i_i4));
+ f4 += vec4(bvec4(u_f4));
+
+ f += f - i;
+ f2 += vec2(f, i) + i2;
+ f3 += i3 + vec3(f, i, f);
+ f4 += vec4(b, i, f, i) + i4;
+
+ f2 += vec2(f, i) * i;
+ f3 += vec3(f, i, f) + i;
+ f4 += i - vec4(b, i, f, i);
+
+ i2 += ivec2(f, i);
+ i3 += ivec3(f, i, f);
+ i4 += ivec4(b, i, f, i);
+
+ if (f < i || i < f ||
+ f2 == i2 ||
+ i3 != f3)
+ f = (b ? i : f2.x) + (b2.x ? f3.x : i2.y);
+
+ gl_FragColor =
+ b ||
+ b2.x ||
+ b2.y ||
+ b3.x ||
+ b3.y ||
+ b3.z ||
+ b4.x ||
+ b4.y ||
+ b4.z ||
+ b4.w ? vec4(
+ i +
+ i2.x +
+ i2.y +
+ i3.x +
+ i3.y +
+ i3.z +
+ i4.x +
+ i4.y +
+ i4.z +
+ i4.w +
+ f +
+ f2.x +
+ f2.y +
+ f3.x +
+ f3.y +
+ f3.z +
+ f4.x +
+ f4.y +
+ f4.z +
+ f4.w) : vec4(1.0);
+
+ // with constants...
+ ivec4 cv2 = ivec4(1.0);
+ bvec4 cv5 = bvec4(cv2);
+ gl_FragColor += float(cv5);
+}
diff --git a/chromium/third_party/glslang/src/Test/cppComplexExpr.vert b/chromium/third_party/glslang/src/Test/cppComplexExpr.vert
new file mode 100644
index 00000000000..bce5ffa3797
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/cppComplexExpr.vert
@@ -0,0 +1,183 @@
+#version 300 es
+#define ON1
+#define ON2
+float sum = 0.0;
+
+void main()
+{
+#if defined(ON1) && (defined(OFF) || defined(ON2))
+//yes
+ sum += 1.0;
+#endif
+
+#if !defined(ON1) || (defined(OFF) || (!defined(OFF2) && defined(ON2)))
+//yes
+ sum += 20.0;
+#endif
+
+#if defined(ON1) && (defined(OFF) || !defined(ON2))
+//no
+ sum += 0.1;
+#endif
+
+#if !defined(ON1) || (defined(OFF) || !defined(OFF2) && !defined(ON2))
+//no
+ sum += 0.2;
+#endif
+
+#if !defined(ON1) || !defined(OFF) || defined(ON2) && defined(OFF2)
+//yes
+ sum += 300.0;
+#endif
+
+#if (!defined(ON1) || !defined(OFF) || defined(ON2)) && defined(OFF2)
+//no
+ sum += 0.4;
+#endif
+
+// sum should be 321.0
+ gl_Position = vec4(sum);
+}
+
+#define ADD(a, b) a + b + ((a) + ((b)));
+
+float foo()
+{
+ return ADD(gl_Position.xyxwx, 3.0) // ERROR, should be this line number
+ return ADD(gl_Position.y, 3.0)
+}
+
+#define BIG aonetuhanoethuanoenaoethu snaoetuhs onethausoentuas hnoethaueohnatuoeh santuoehsantouhe snathoensuta hsnoethuasntoe hsnuathoesnuathoenstuh nsoethantseuh toae ua \
+ antoeh uantheount oentahoent uahnsoethasnutoehansteuo santhu sneoathu snoethasnut oesanthoesna thusenotha nsthasunoeth ausntehsunathoensuathoesnta uhnsoetha usntoeh uanhs unosethu \
+ antoehunatoehu natoehua oentha neotuhan toehu natoehu ntahoe nutah eu natoheunathoen uasoenuasoent asntoehsan tuosnthnu aohenuath eontha untoh eunth unth anth unth nth nth nt \
+ a ntoehanu tunth nsont uhansoethausn oehsanthnt heauo eanthuo sh nahnoethansu tohe sanuthoe snathuoesntha snuothe anthusonehtasuntoeh asnuthonsa teauhntoeha onetuha nth \
+ anoethuan toentauh noethauntohe anuthoe nathu noethaun oethanuthoe nathuoe ntahu enotha unetha ntuhenaothu enotahun eotha ntoehu aoehuntha enotuh aonethau noethu anoethuna toheua \
+ ontehanutoe hnuathoena aoteha aonetuha
+
+// identical
+#define BIG aonetuhanoethuanoenaoethu snaoetuhs onethausoentuas hnoethaueohnatuoeh santuoehsantouhe snathoensuta hsnoethuasntoe hsnuathoesnuathoenstuh nsoethantseuh toae ua \
+ antoeh uantheount oentahoent uahnsoethasnutoehansteuo santhu sneoathu snoethasnut oesanthoesna thusenotha nsthasunoeth ausntehsunathoensuathoesnta uhnsoetha usntoeh uanhs unosethu \
+ antoehunatoehu natoehua oentha neotuhan toehu natoehu ntahoe nutah eu natoheunathoen uasoenuasoent asntoehsan tuosnthnu aohenuath eontha untoh eunth unth anth unth nth nth nt \
+ a ntoehanu tunth nsont uhansoethausn oehsanthnt heauo eanthuo sh nahnoethansu tohe sanuthoe snathuoesntha snuothe anthusonehtasuntoeh asnuthonsa teauhntoeha onetuha nth \
+ anoethuan toentauh noethauntohe anuthoe nathu noethaun oethanuthoe nathuoe ntahu enotha unetha ntuhenaothu enotahun eotha ntoehu aoehuntha enotuh aonethau noethu anoethuna toheua \
+ ontehanutoe hnuathoena aoteha aonetuha
+
+// ERROR, one character different
+#define BIG aonetuhanoethuanoenaoethu snaoetuhs onethausoentuas hnoethaueohnatuoeh santuoehsantouhe snathoensuta hsnoethuasntoe hsnuathoesnuathoenstuh nsoethantseuh toae ua \
+ antoeh uantheount oentahoent uahnsoethasnutoehansteuo santhu sneoathu snoethasnut oesanthoesna thusenotha nsthasunoeth ausntehsunathoensuathoesnta uhnsoetha usntoeh uanhs unosethu \
+ antoehunatoehu natoehua oentha neotuhan toehu natoehu ntahoe nutah eu natoheunathoen uasoenuasoent asntoehsan tuosnthnu aohenuath eontha untoh eunth unth anth unth nth nth nt \
+ a ntoehanu tunth nsont uhansoethasn oehsanthnt heauo eanthuo sh nahnoethansu tohe sanuthoe snathuoesntha snuothe anthusonehtasuntoeh asnuthonsa teauhntoeha onetuha nth \
+ anoethuan toentauh noethauntohe anuthoe nathu noethaun oethanuthoe nathuoe ntahu enotha unetha ntuhenaothu enotahun eotha ntoehu aoehuntha enotuh aonethau noethu anoethuna toheua \
+ ontehanutoe hnuathoena aoteha aonetuha
+
+#define BIGARGS1(aonthanotehu, bonthanotehu, conthanotehu, donthanotehu, eonthanotehu, fonthanotehu, gonthanotehu, honthanotehu, ionthanotehu, jonthanotehu, konthanotehu) jonthanotehu
+#define BIGARGS2(aonthanotehu, bonthanotehu, conthanotehu, donthanotehu, eonthanotehu, fonthanotehu, gonthanotehu, honthanotehu, ionthanotehu, jonthanotehu, konthanotehu) jonthanotehu
+#define BIGARGS3(aonthanotehu, bonthanotehu, conthanotehu, donthanotehu, eonthanotehu, fonthanotehu, gonthanotehu, honthanotehu, ionthanotehu, jonthanotehu, konthanotehu) jonthanotehu
+#define BIGARGS4(aonthanotehu, bonthanotehu, conthanotehu, donthanotehu, eonthanotehu, fonthanotehu, gonthanotehu, honthanotehu, ionthanotehu, jonthanotehu, konthanotehu) jonthanotehu
+
+
+#define foobar(a, b) a + b
+
+#if foobar(1.1, 2.2)
+#error good macro
+#else
+#error bad macro
+#endif
+
+#if foobar(1
+;
+#
+#
+#endif
+#if foobar(1,
+;
+#
+#
+#endif
+float c = foobar(1.1, 2.2
+ );
+#if foobar(1.1, 2.2
+)
+#if foobar(1.1, 2.2
+#endif
+#endif
+
+#define VAL0 0
+#define VAL1 1
+
+#if UNDEF
+#error bad 0
+#else
+#error good 0
+#endif
+
+#if VAL1 || UNDEF
+#error good 1
+#else
+#error bad 1
+#endif
+
+#if VAL1 && UNDEF // UNDEF ERROR
+#endif
+
+#if VAL0 || UNDEF // UNDEF ERROR
+#endif
+
+#if VAL0 && UNDEF
+#error bad 2
+#else
+#error good 1
+#endif
+
+#if VAL1 || (VAL1 && UNDEF)
+#error good 3
+#else
+#error bad 3
+#endif
+
+#if VAL1 && (VAL1 || UNDEF)
+#error good 4
+#else
+#error bad 4
+#endif
+
+#if VAL1 < VAL1 || VAL1 > VAL1 || UNDEF // UNDEF ERROR
+#endif
+
+#if VAL1 < VAL1 || VAL1 > VAL1 && UNDEF
+#endif
+
+#if VAL1 || UNDEF && UNDEF2
+#endif
+
+#if VAL0 || UNDEF && UNDEF2 // UNDEF ERROR
+#endif
+
+#if (VAL1 || UNDEF) && UNDEF2 // UNDEF2 ERROR
+#endif
+
+#if (VAL0 && UNDEF) || UNDEF2 // UNDEF2 ERROR
+#endif
+
+#line 3000
+#error line of this error should be 3000
+
+#define __LINE__ 30
+#define __FILE__
+#define __VERSION__
+#define GL_SOME_EXTENSION
+#undef __LINE__
+#undef __FILE__
+#undef __VERSION__
+#undef GL_SOME_EXTENSION
+
+#line 4000
+#line 200 % 0 // ERROR, div by 0
+#if __LINE__ / 0 // ERROR, div by 0
+#endif
+
+#if 7% // ERROR incomplete expression
+
+#line 10000
+#if 0
+// ERROR, EOF \ No newline at end of file
diff --git a/chromium/third_party/glslang/src/Test/cppIndent.vert b/chromium/third_party/glslang/src/Test/cppIndent.vert
new file mode 100644
index 00000000000..49ec8ba3ddd
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/cppIndent.vert
@@ -0,0 +1,61 @@
+#version 110
+
+#define ON
+
+float sum = 0.0;
+
+void main()
+{
+
+#ifdef ON
+//yes
+sum += 1.0;
+#endif
+
+#ifdef OFF
+ //no
+ sum += 20.0;
+#endif
+
+ #if defined(ON)
+ //yes
+ sum += 300.0;
+ #endif
+
+ #if defined(OFF)
+ //no
+ sum += 4000.0;
+ #endif
+
+ #if !defined(ON)
+ //no
+ sum += 50000.0;
+ #endif
+
+ #if !defined(OFF)
+ //yes
+ sum += 600000.0;
+ #endif
+
+ #if defined (ON) && defined (OFF)
+//no
+sum += 7000000.0;
+ #endif
+
+#if defined ( ON ) && ! defined(OFF)
+//yes
+sum += 80000000.0;
+#endif
+
+#if defined(OFF) || defined(ON)
+//yes
+sum += 900000000.0;
+#endif
+
+// sum should be 980600301.0
+ gl_Position = vec4(sum);
+}
+
+#define FUNC(a,b) a+b
+// needs to be last test in file due to syntax error
+void foo986(){ FUNC( (((2)))), 4); } // ERROR, too many )
diff --git a/chromium/third_party/glslang/src/Test/cppNest.vert b/chromium/third_party/glslang/src/Test/cppNest.vert
new file mode 100644
index 00000000000..26038ea965d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/cppNest.vert
@@ -0,0 +1,177 @@
+#version 110
+
+#define ON
+
+float sum = 0.0;
+
+void main()
+{
+
+#ifdef ON
+//yes
+sum += 1.0;
+
+ #ifdef OFF
+ //no
+ sum += 20.0;
+ #endif
+
+ #if defined(ON)
+ //yes
+ sum += 300.0;
+ #endif
+
+#endif
+
+
+#if defined(OFF)
+//no
+sum += 4000.0;
+
+#if !defined(ON)
+//no
+sum += 50000.0;
+#endif
+
+ //no
+ sum += 0.1;
+ #ifdef ON
+ //no
+ sum += 0.2;
+ #endif
+
+ //no
+ sum += 0.01;
+ #ifdef ON
+ //no
+ sum += 0.02;
+ #else
+ //no
+ sum += 0.03;
+ #endif
+
+//no
+ sum + 0.3;
+
+#endif
+
+
+#if !defined(OFF)
+//yes
+sum += 600000.0;
+
+ #if defined(ON) && !defined(OFF)
+ //yes
+ sum += 80000000.0;
+
+ #if defined(OFF) || defined(ON)
+ //yes
+ sum += 900000000.0;
+
+ #if defined(ON) && defined(OFF)
+ //no
+ sum += 0.7;
+ #elif !defined(OFF)
+ //yes
+ sum += 7000000.0;
+ #endif
+
+ #endif
+
+ #endif
+
+#endif
+
+// sum should be 987600301.0
+ gl_Position = vec4(sum);
+}
+
+#define A 1
+#define C 0
+#define E 0
+#define F 1
+#if A
+ #if C
+ #if E
+ int selected4 = 1;
+ #elif F
+ int selected4 = 2;
+ #else
+ int selected4 = 3;
+ #endif
+ #endif
+ int selected4 = 4;
+#endif
+
+#define ZA 1
+#define ZC 1
+#define ZE 0
+#define ZF 1
+#if ZA
+ #if ZC
+ #if ZE
+ int selected2 = 1;
+ #elif ZF
+ int selected2 = 2;
+ #else
+ int selected2 = 3;
+ #endif
+ #endif
+#endif
+
+#define AZA 1
+#define AZC 1
+#define AZE 0
+#define AZF 0
+#if AZA
+ #if AZC
+ #if AZE
+ int selected3 = 1;
+ #elif AZF
+ int selected3 = 2;
+ #else
+ int selected3 = 3;
+ #endif
+ #endif
+#endif
+
+// ERROR cases...
+
+#if 0
+int;
+#else
+int;
+#elif 1
+int;
+#endif
+
+#if 0
+int;
+#else
+int;
+#else
+int;
+#endif
+
+#if 0
+ #if 0
+ int;
+ #else
+ int;
+ #elif 1
+ int;
+ #endif
+
+ #if 0
+ int;
+ #else
+ int;
+ #else
+ int;
+ #endif
+#endif
+
+#define FUNC(a,b) a+b
+void foo985(){ FUNC( (((2))), ((3),4)); }
+// needs to be last test in file
+void foo987(){ FUNC(((); } // ERROR, EOF in argument
diff --git a/chromium/third_party/glslang/src/Test/cppSimple.vert b/chromium/third_party/glslang/src/Test/cppSimple.vert
new file mode 100644
index 00000000000..198203a69d7
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/cppSimple.vert
@@ -0,0 +1,343 @@
+#version 400
+
+#define ON
+
+float sum = 0.0;
+
+void main()
+{
+
+#ifdef ON
+//yes
+sum += 1.0;
+#endif
+
+#ifdef OFF
+//no
+sum += 20.0;
+#endif
+
+#if defined(ON)
+//yes
+sum += 300.0;
+#endif
+
+#if defined(OFF)
+//no
+sum += 4000.0;
+#endif
+
+#if !defined(ON)
+//no
+sum += 50000.0;
+#endif
+
+#ifndef OFF
+//yes
+sum += 600000.0;
+#else
+//no
+sum += 0.6;
+#endif
+
+#if defined(ON) && defined(OFF)
+//no
+sum += 0.7;
+#elif !defined(OFF)
+//yes
+sum += 7000000.0;
+#endif
+
+#if defined(ON) && !defined(OFF)
+//yes
+sum += 80000000.0;
+#endif
+
+#if defined(OFF) || defined(ON)
+//yes
+sum += 900000000.0;
+#endif
+
+#if NEVER_DEFINED
+//no
+sum += 0.04;
+#else
+sum += 0.05;
+#endif
+
+// sum should be 987600301.7
+ gl_Position = vec4(sum);
+}
+
+#define A 0
+# define B 0
+ # define C 0
+
+#if (A == B) || (A == C)
+#error good1
+#endif
+
+#if A == B || (A == C)
+#error good2
+#endif
+
+#if (A == B || (A == C))
+#error good3
+#endif
+
+#if (AA == BB) || (AA == CC)
+#error good4
+#endif
+
+#if AA == BB || (AA == CC)
+#error good5
+#endif
+
+#if ((AA == BB || (AA == CC)))
+#error good6
+#endif
+
+#if (A == B || (A == C)
+#error bad1
+#endif
+
+#if A == B || A == C)
+#error bad2
+#endif
+
+#if (A == B || (A == C)
+#error bad3
+#endif
+
+#if AA == BB) || (AA == CC)
+#error bad4
+#endif
+
+#if AA == BB || (AA == CC
+#error bad5
+#endif
+
+#if ((AA == BB || (AA == CC))))
+#error bad6
+#endif extra tokens
+
+int linenumber = __LINE__;
+int filenumber = __FILE__;
+int version = __VERSION__;
+
+#define PI (3.14)
+#define TWOPI (2.0 * PI)
+float twoPi = TWOPI;
+
+//#define PASTE(a,b) a ## b
+//float PASTE(tod, ay) = 17;
+
+"boo" // ERROR
+int a = length("aoenatuh"); // ERROR
+#define QUOTE "abcd" // okay
+'int'; // ERROR
+#define SINGLE 'a' // okay
+// ERROR: all the following are reserved
+#define GL_
+#define GL_Macro 1
+#define __M
+#define M__
+#define ABC__DE abc
+
+#if 4
+#else extra
+#elif
+// ERROR elif after else
+#endif
+
+#if blah
+ #if 0
+ #else extra
+ #ifdef M
+ #else
+ #else
+ // ERROR else after else
+ #endif extra
+ #endif
+#endif
+
+#define m1(a,a) // ERROR
+#define m2(a,b)
+
+// okay
+#define m3 (a)
+#define m3 (a)
+
+// ERROR
+#define m4(b)
+#define m4 (b)
+
+// ERROR
+#define m5 (b)
+#define m5(b)
+
+// ERROR
+#define m6(a)
+#define m6
+
+// ERROR (whitespace)
+#define m7 (a)
+#define m7 ( a)
+
+#define m80(a,b) is + exactly m3 the same
+#define m80(a,b) is + exactly m3 the same
+
+// ERROR
+#define m8(a,b) almost + exactly m3 the same
+#define m8(a,b) almost + exactly m3 thee same
+
+// ERROR
+#define m9(a,b,c) aoe
+#define m9(a,d,c) aoe
+
+#define n1 0xf
+int n = n1;
+
+#define f1 .08e-2Lf
+double f = f1;
+
+#undef __VERSION__
+#undef GL_ARB_texture_rectangle
+
+#
+ #
+ #
+##
+# #
+# 0x25
+####
+####ff
+#########ff fg 0x25
+#pragma
+#pragma(aoent)
+ # pragma
+#pragma STDGL
+#pragma optimize( on)
+#pragma optimize(off)
+#pragma debug( on)
+#pragma debug(off )
+#pragma optimize( on) anoteun
+#pragma optimize(off
+#pragma debug( on) (
+#pragma debug(off aoeua)
+#pragma optimize( on)
+#pragma optimize(off,)
+#pragma debug( on, aoeu)
+#pragma debugoff )
+#pragma aontheu natoeh uantheo uasotea noeahuonea uonethau onethuanoeth aunotehau noeth anthoeua anoethuantoeh uantoehu natoehu naoteh unotaehu noethua onetuh aou
+# \
+
+# \
+ error good continuation
+
+#flizbit
+
+#define directive error
+
+#directive directive was expanded
+
+#line 12000
+#error line should be 12000
+#line 13000 7
+#error line should be 13000, string 7
+#define L1 14000
+#define L2 13
+#define F1 5
+#define F2 7
+#line L1 + L2
+#error line should be 14013, string 7
+#line L1 + L2 F1 + F2 // antoeuh sat comment
+#error line should be 14013, string 12
+#line L1 + L2 + F1 + F2
+#error line should be 14025, string 12
+#line 1234 F1 + F2 extra
+#define empty_extra
+#line 1235 F1 + F2 empty_extra
+#define moreEmpty empty_extra
+#line 1236 F1 + F2 moreEmpty empty_extra // okay, lots of nothin
+#line 1237 F1 + F2 moreEmpty empty_extra extra // ERROR, 'extra'
+#line 1238 F1 + F2 moreEmpty empty_extra
+#line 1239 empty_extra F1 empty_extra + empty_extra F2 empty_extra moreEmpty empty_extra
+#line (20000)
+#error line should be 20000
+#line (20000+10)
+#error line should be 20010
+#line +20020
+#error line should be 20020
+
+#define VAL1 1.0
+#define VAL2 2.0
+
+#define RES2 /* test a multiline
+ comment in a macro definition */ (RES1 * VAL2)
+#define RES1 (VAL2 / VAL1)
+#define RES2 /* comment */(RES1 * VAL2)
+#define /* */SUM_VALUES (RES2 + RES1)
+
+void foo234()
+{
+ gl_Position = vec4(SUM_VALUES);
+}
+
+// more whitespace recording tests
+#define SPACE_AT_END(a,b) spaceAtEndIsOkay
+#define SPACE_AT_END(a,b) spaceAtEndIsOkay // space at end
+
+#define SPACE_AT_BEGIN(a,b)spaceAtBeginIsOkay
+#define SPACE_AT_BEGIN(a,b) spaceAtBeginIsOkay
+
+// space in middle is an error
+#define SPACE_IN_MIDDLE(a,b) space +in middle
+#define SPACE_IN_MIDDLE(a,b) space + in middle
+
+#define FIRSTPART 17
+#define SECONDPART + 5
+
+#if FIRSTPART SECONDPART == 22
+#error good evaluation 1
+#endif
+
+#if moreEmpty FIRSTPART moreEmpty SECONDPART moreEmpty == moreEmpty 22 moreEmpty
+#error good evaluation 2
+#endif
+
+// ERRORS...
+#line 9000
+#if defined(OUNH
+#endif
+#if defined OUNH)
+#endif
+
+// recursion (okay)
+#define RECURSE RECURSE
+int RECURSE;
+#define R2 R1
+#define R1 R2
+#undef RECURSE
+int R1 = RECURSE;
+
+#define FOOOM(a,b) a + b
+int aoeua = FOOOM;
+#if FOOOM
+#endif
+
+#line 9500
+#if\376
+#endif
+#if \376
+#endif
+#if \377
+#endif
+#error\377
+#error \ 376
+#error \377
+
+#line 10000
+#if 1
+#else
+// ERROR, missing #endif \ No newline at end of file
diff --git a/chromium/third_party/glslang/src/Test/dataOut.frag b/chromium/third_party/glslang/src/Test/dataOut.frag
new file mode 100644
index 00000000000..6aaa7cfbb0e
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/dataOut.frag
@@ -0,0 +1,8 @@
+#version 130
+
+varying vec4 Color;
+
+void main()
+{
+ gl_FragData[1] = Color;
+}
diff --git a/chromium/third_party/glslang/src/Test/dataOutIndirect.frag b/chromium/third_party/glslang/src/Test/dataOutIndirect.frag
new file mode 100644
index 00000000000..0dc3494a51c
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/dataOutIndirect.frag
@@ -0,0 +1,10 @@
+#version 130
+
+varying vec4 Color;
+
+uniform int i;
+
+void main()
+{
+ gl_FragData[i] = Color;
+}
diff --git a/chromium/third_party/glslang/src/Test/dce.frag b/chromium/third_party/glslang/src/Test/dce.frag
new file mode 100644
index 00000000000..df62fc57172
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/dce.frag
@@ -0,0 +1,56 @@
+#version 400
+
+const bool flag = false;
+
+int c = 0;
+
+void bar()
+{
+ if (flag)
+ ++c; // should still show up in AST
+ else
+ ++c;
+
+ flag ? ++c : ++c; // both should still show up in AST
+
+ switch (c) {
+ case 1:
+ ++c;
+ break;
+ ++c; // should still show up in AST
+ case 2:
+ break;
+ ++c; // should still show up in AST
+ default:
+ break;
+ }
+
+ for (int i = 0; i < 0; ++i)
+ ++c; // should still show up in AST
+
+ for (int i = 0; i < 10; ++i) {
+ if (c < 3) {
+ break;
+ ++c; // should still show up in AST
+ } else {
+ continue;
+ ++c; // should still show up in AST
+ }
+ }
+
+ return;
+
+ ++c; // should still show up in AST
+}
+
+int foo() // not called, but should still show up in AST
+{
+ if (c > 4) {
+ return 4;
+ ++c; // should still show up in AST
+ }
+
+ return 5;
+
+ ++c; // should still show up in AST
+}
diff --git a/chromium/third_party/glslang/src/Test/decls.frag b/chromium/third_party/glslang/src/Test/decls.frag
new file mode 100644
index 00000000000..5d2683448be
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/decls.frag
@@ -0,0 +1,49 @@
+#version 120
+
+int a;
+int b, c;
+int d1 = 1;
+int e2 = 2, f;
+int g, h3 = 3;
+
+int i4[4];
+int j, k5[5];
+int m6[6], m7[7];
+int n8[8], p;
+
+int ii4[4] = int[](1, 2, 3, 4);
+int ij, ik5[5] = int[](5, 6, 7, 8, 9);
+int im2[2] = int[](10, 11), im3[3] = int[](12, 13, 14);
+int in8[4] = int[](21, 22, 23, 24), ip;
+
+void vi4[4] = int[](1, 2, 3, 4);
+void vj, vk5[5] = int[](5, 6, 7, 8, 9);
+void vm2[2] = int[](10, 11), vm3[3] = int[](12, 13, 14);
+void vn8[4] = int[](21, 22, 23, 24), vp;
+
+const int cii4[4] = int[](1, 2, 3, 4);
+const int cij, cik5[5] = int[](5, 6, 7, 8, 9);
+const int cim2[2] = int[](10, 11), cim3[3] = int[](12, 13, 14);
+const int cin8[4] = int[](21, 22, 23, 24), cip;
+
+uniform int uii4[4] = int[](1, 2, 3, 4);
+uniform int uij, uik5[5] = int[](5, 6, 7, 8, 9);
+uniform int uim2[2] = int[](10, 11), uim3[3] = int[](12, 13, 14);
+uniform int uin8[4] = int[](21, 22, 23, 24), uip;
+
+int gl_vi4[4] = int[](1, 2, 3, 4);
+int gl_vj, gl_vk5[5] = int[](5, 6, 7, 8, 9);
+int gl_vm2[2] = int[](10, 11), gl_vm3[3] = int[](12, 13, 14);
+int gl_vn8[4] = int[](21, 22, 23, 24), gl_vp;
+
+void main()
+{
+ while (bool cond = b < c);
+ while (int icond = b);
+ while (bool gl_cond = b < c);
+}
+
+int foob__vi4[4] = int[](1, 2, 3, 4);
+int foob__vj, foob__vk5[5] = int[](5, 6, 7, 8, 9);
+int __foobvm2[2] = int[](10, 11), __foobvm3[3] = int[](12, 13, 14);
+int foob__vn8[4] = int[](21, 22, 23, 24), foob__vp;
diff --git a/chromium/third_party/glslang/src/Test/deepRvalue.frag b/chromium/third_party/glslang/src/Test/deepRvalue.frag
new file mode 100644
index 00000000000..71e9cdb3c7d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/deepRvalue.frag
@@ -0,0 +1,36 @@
+#version 120
+
+uniform sampler2D sampler;
+
+vec4 v1 = vec4(2.0, 3.0, 5.0, 7.0);
+vec4 v2 = vec4(11.0, 13.0, 17.0, 19.0);
+vec4 v3 = vec4(23.0, 29.0, 31.0, 37.0);
+vec4 v4 = vec4(41.0, 43.0, 47.0, 53.0);
+
+struct str {
+ int a;
+ vec2 b[3];
+ bool c;
+};
+
+void main()
+{
+ mat4 m = mat4(v1, v2, v3, v4);
+
+ mat4 mm = matrixCompMult(m, m);
+ float f = mm[1].w; // should be 19 * 19 = 361
+
+ // do a deep access to a spontaneous r-value
+ float g = matrixCompMult(m, m)[2].y; // should be 29 * 29 = 841
+
+ float h = str(1, vec2[3](vec2(2.0, 3.0), vec2(4.0, 5.0), vec2(6.0, 7.0)), true).b[1][1]; // should be 5.0
+
+ float i = texture2D(sampler, vec2(0.5,0.5)).y;
+
+ i += (i > 0.1 ? v1 : v2)[3];
+
+ str t;
+ i += (t = str(1, vec2[3](vec2(2.0, 3.0), vec2(4.0, 5.0), vec2(6.0, 7.0)), true)).b[2].y; // should be 7.0
+
+ gl_FragColor = vec4(f, g, h, i);
+}
diff --git a/chromium/third_party/glslang/src/Test/depthOut.frag b/chromium/third_party/glslang/src/Test/depthOut.frag
new file mode 100644
index 00000000000..9b08962eec3
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/depthOut.frag
@@ -0,0 +1,10 @@
+#version 130
+
+varying vec4 Color;
+varying float Depth;
+
+void main()
+{
+ gl_FragDepth = Depth;
+ gl_FragColor = Color;
+}
diff --git a/chromium/third_party/glslang/src/Test/discard-dce.frag b/chromium/third_party/glslang/src/Test/discard-dce.frag
new file mode 100644
index 00000000000..dbdcee67982
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/discard-dce.frag
@@ -0,0 +1,35 @@
+#version 110
+varying vec2 tex_coord;
+
+void main (void)
+{
+ vec4 white = vec4(1.0);
+ vec4 black = vec4(0.2);
+ vec4 color = white;
+
+ // First, cut out our circle
+ float x = tex_coord.x*2.0 - 1.0;
+ float y = tex_coord.y*2.0 - 1.0;
+
+ float radius = sqrt(x*x + y*y);
+ if (radius > 1.0) {
+ if (radius > 1.1) {
+ ++color;
+ }
+
+ gl_FragColor = color;
+
+ if (radius > 1.2) {
+ ++color;
+ }
+
+ discard;
+ }
+
+ // If we're near an edge, darken us a tiny bit
+ if (radius >= 0.75)
+ color -= abs(pow(radius, 16.0)/2.0);
+
+ gl_FragColor = color;
+
+}
diff --git a/chromium/third_party/glslang/src/Test/doWhileLoop.frag b/chromium/third_party/glslang/src/Test/doWhileLoop.frag
new file mode 100644
index 00000000000..eaacaba217e
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/doWhileLoop.frag
@@ -0,0 +1,16 @@
+#version 110
+
+uniform vec4 bigColor;
+varying vec4 BaseColor;
+uniform float d;
+
+void main()
+{
+ vec4 color = BaseColor;
+
+ do {
+ color += bigColor;
+ } while (color.x < d);
+
+ gl_FragColor = color;
+}
diff --git a/chromium/third_party/glslang/src/Test/earlyReturnDiscard.frag b/chromium/third_party/glslang/src/Test/earlyReturnDiscard.frag
new file mode 100644
index 00000000000..ecd5594659b
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/earlyReturnDiscard.frag
@@ -0,0 +1,102 @@
+#version 110
+
+uniform float d;
+uniform vec4 bigColor, smallColor;
+uniform vec4 otherColor;
+
+varying float c;
+
+uniform float threshhold;
+uniform float threshhold2;
+uniform float threshhold3;
+
+uniform float minimum;
+
+varying vec4 BaseColor;
+
+uniform bool b;
+
+void main()
+{
+ vec4 color = BaseColor;
+ vec4 color2;
+
+ color2 = otherColor;
+
+ if (c > d)
+ color += bigColor;
+ else
+ color += smallColor;
+
+ if (color.z < minimum)
+ return;
+
+ color.z++;
+
+ if (color.z > threshhold)
+ discard;
+
+ color++;
+
+ // Two path, different rest
+ if (color.w > threshhold2) {
+ if (color.z > threshhold2)
+ return;
+ else if (b)
+ color.z++;
+ else {
+ if (color.x < minimum) {
+ discard;
+ } else {
+ color++;
+ }
+ }
+ } else {
+ if (b)
+ discard;
+ else
+ return;
+ }
+
+
+ // // Two path, shared rest
+ // if (color.w > threshhold2) {
+ // if (color.z > threshhold2)
+ // return;
+ // else if (b)
+ // color++;
+ // else {
+ // if (color.x < minimum) {
+ // discard;
+ // } else {
+ // color++;
+ // }
+ // }
+ // } else {
+ // if (b)
+ // discard;
+ // else
+ // return;
+ // }
+
+
+ // // One path
+ // if (color.w > threshhold2) {
+ // if (color.z > threshhold2)
+ // return;
+ // else {
+ // if (color.x < minimum) {
+ // discard;
+ // } else {
+ // color++;
+ // }
+ // }
+ // } else {
+ // if (b)
+ // discard;
+ // else
+ // return;
+ // }
+
+ gl_FragColor = color * color2;
+}
diff --git a/chromium/third_party/glslang/src/Test/empty.frag b/chromium/third_party/glslang/src/Test/empty.frag
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/empty.frag
diff --git a/chromium/third_party/glslang/src/Test/empty2.frag b/chromium/third_party/glslang/src/Test/empty2.frag
new file mode 100644
index 00000000000..8b137891791
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/empty2.frag
@@ -0,0 +1 @@
+
diff --git a/chromium/third_party/glslang/src/Test/empty3.frag b/chromium/third_party/glslang/src/Test/empty3.frag
new file mode 100644
index 00000000000..14cd83d77f7
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/empty3.frag
@@ -0,0 +1 @@
+#version 110
diff --git a/chromium/third_party/glslang/src/Test/errors.frag b/chromium/third_party/glslang/src/Test/errors.frag
new file mode 100644
index 00000000000..99cf2b9365d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/errors.frag
@@ -0,0 +1,4 @@
+int main(int foo)
+{
+ return 1;
+}
diff --git a/chromium/third_party/glslang/src/Test/es-link1.frag b/chromium/third_party/glslang/src/Test/es-link1.frag
new file mode 100644
index 00000000000..fe4da41d034
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/es-link1.frag
@@ -0,0 +1,8 @@
+#version 100
+
+mediump vec4 calculateColor();
+
+void main()
+{
+ gl_FragColor = calculateColor();
+}
diff --git a/chromium/third_party/glslang/src/Test/es-link2.frag b/chromium/third_party/glslang/src/Test/es-link2.frag
new file mode 100644
index 00000000000..e7b5a4779b7
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/es-link2.frag
@@ -0,0 +1,8 @@
+#version 100
+
+varying mediump vec4 varyingColor;
+
+mediump vec4 calculateColor()
+{
+ return varyingColor * 0.5;
+}
diff --git a/chromium/third_party/glslang/src/Test/flowControl.frag b/chromium/third_party/glslang/src/Test/flowControl.frag
new file mode 100644
index 00000000000..a6ef419d29d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/flowControl.frag
@@ -0,0 +1,23 @@
+#version 120
+
+uniform float d;
+uniform vec4 bigColor, smallColor;
+uniform vec4 otherColor;
+
+varying float c;
+varying vec4 BaseColor;
+
+void main()
+{
+ vec4 color = BaseColor;
+ vec4 color2;
+
+ color2 = otherColor;
+
+ if (c > d)
+ color += bigColor;
+ else
+ color += smallColor;
+
+ gl_FragColor = color * color2;
+}
diff --git a/chromium/third_party/glslang/src/Test/forLoop.frag b/chromium/third_party/glslang/src/Test/forLoop.frag
new file mode 100644
index 00000000000..c26700aeb17
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/forLoop.frag
@@ -0,0 +1,41 @@
+#version 130
+
+uniform vec4 bigColor;
+in vec4 BaseColor;
+in float f;
+
+uniform int Count;
+uniform uvec4 v4;
+
+void main()
+{
+ vec4 color = BaseColor;
+
+ for (int i = 0; i < Count; ++i) {
+ color += bigColor;
+ }
+
+ gl_FragColor = color;
+
+ float sum = 0.0;
+ for (int i = 0; i < 4; ++i)
+ sum += v4[i];
+
+ vec4 tv4;
+
+ for (int i = 0; i < 4; ++i)
+ tv4[i] = v4[i] * 4u;
+
+ gl_FragColor += vec4(sum) + tv4;
+
+ vec4 r;
+ r.xyz = BaseColor.xyz;
+
+ for (int i = 0; i < Count; ++i)
+ r.w = f;
+
+ gl_FragColor.xyz += r.xyz;
+
+ for (int i = 0; i < 16; i += 4)
+ gl_FragColor *= f;
+}
diff --git a/chromium/third_party/glslang/src/Test/forwardRef.frag b/chromium/third_party/glslang/src/Test/forwardRef.frag
new file mode 100644
index 00000000000..49f3504eacf
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/forwardRef.frag
@@ -0,0 +1,37 @@
+#version 110
+
+uniform vec4 bigColor;
+varying vec4 BaseColor;
+uniform float d;
+
+void bar();
+float foo(vec4);
+float unreachableReturn();
+
+void main()
+{
+ vec4 color = vec4(foo(BaseColor));
+
+ bar();
+ float f = unreachableReturn();
+
+ gl_FragColor = color * f;
+}
+
+void bar()
+{
+}
+
+float unreachableReturn()
+{
+ bar();
+ if (d < 4.2)
+ return 1.2;
+ else
+ return 4.5;
+}
+
+float foo(vec4 bar)
+{
+ return bar.x + bar.y;
+}
diff --git a/chromium/third_party/glslang/src/Test/functionCall.frag b/chromium/third_party/glslang/src/Test/functionCall.frag
new file mode 100644
index 00000000000..ca2866271c6
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/functionCall.frag
@@ -0,0 +1,44 @@
+#version 130
+
+uniform vec4 bigColor;
+varying vec4 BaseColor;
+uniform float d;
+
+float h = 0.0;
+
+float foo(vec4 bar)
+{
+ return bar.x + bar.y;
+}
+
+void bar()
+{
+}
+
+float unreachableReturn()
+{
+ if (d < 4.2)
+ return 1.2;
+ else
+ return 4.5;
+ // might be another return inserted here by builders, has to be correct type
+}
+
+float missingReturn()
+{
+ if (d < 4.5) {
+ h = d;
+ return 3.9;
+ }
+}
+
+void main()
+{
+ vec4 color = vec4(foo(BaseColor));
+
+ bar();
+ float f = unreachableReturn();
+ float g = missingReturn();
+
+ gl_FragColor = color * f * h;
+}
diff --git a/chromium/third_party/glslang/src/Test/functionSemantics.frag b/chromium/third_party/glslang/src/Test/functionSemantics.frag
new file mode 100644
index 00000000000..780a87966c8
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/functionSemantics.frag
@@ -0,0 +1,70 @@
+#version 400
+
+uniform float u;
+
+int foo(int a, const int b, in int c, const in int d, out int e, inout int f)
+{
+ int sum = a + b + c + d + f; // no e, it is out only
+ // sum should be 47 now
+
+ a *= 64;
+ // no b, it is read only
+ c *= 64;
+ // no d, it is read only
+ e = 64 * 16; // e starts undefined
+ f *= 64;
+
+ sum += a + 64 * b + c + 64 * d + e + f; // everything has a value now, totaling of 64(1+2+4+8+16+32) = 64*63 = 4032
+ // sum should be 4032 + 47 = 4079
+
+ return sum;
+}
+
+int foo2(float a, vec3 b, out int r)
+{
+ r = int(3.0 * a);
+ return int(5.0 * b.y);
+}
+
+int foo3()
+{
+ if (u > 3.2) {
+ discard;
+ return 1000000;
+ }
+
+ return 2000000;
+}
+
+void main()
+{
+ int e;
+ int t = 2;
+ struct s {
+ ivec4 t;
+ } f;
+ f.t.y = 32;
+
+ // test the different qualifers
+ int color = foo(1, 2, t+t, 8, e, f.t.y);
+
+ color += 128 * (e + f.t.y); // right side should be 128(64(16 + 32)) = 393216
+ // sum should be 4079 + 393216 = 397295
+
+ // test conversions
+ float arg;
+ float ret;
+ ret = foo2(4, ivec3(1,2,3), arg); // ret = 10, param = 12.0
+ color += int(ret + arg); // adds 22, for total of 397317
+
+ color += foo3(); // theoretically, add 2000000, for total of 2397317
+
+ gl_FragColor = vec4(color);
+}
+
+vec3 m(vec2);
+void aggCall()
+{
+ float F;
+ m(ivec2(F)); // test input conversion of single argument that's an aggregate; other function tests in 120.vert
+}
diff --git a/chromium/third_party/glslang/src/Test/glslangValidator b/chromium/third_party/glslang/src/Test/glslangValidator
new file mode 100755
index 00000000000..856aa1a9957
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/glslangValidator
@@ -0,0 +1,2 @@
+#!/usr/bin/env bash
+../build/install/bin/glslangValidator $*
diff --git a/chromium/third_party/glslang/src/Test/hlsl.assoc.frag b/chromium/third_party/glslang/src/Test/hlsl.assoc.frag
new file mode 100644
index 00000000000..8ce1050cd1b
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/hlsl.assoc.frag
@@ -0,0 +1,11 @@
+float4 PixelShaderFunction(
+ float4 a1,
+ float4 a2,
+ float4 a3,
+ float4 a4,
+ float4 a5
+ ) : COLOR0
+{
+ a1 = a2 = a3 = a4 = a5;
+ return a1 + a2 + a3 + a4 + a5;
+}
diff --git a/chromium/third_party/glslang/src/Test/hlsl.attribute.frag b/chromium/third_party/glslang/src/Test/hlsl.attribute.frag
new file mode 100644
index 00000000000..25c72d46efd
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/hlsl.attribute.frag
@@ -0,0 +1,13 @@
+float4 PixelShaderFunction(float4 input) : COLOR0
+{
+ [unroll];
+ [];
+ [][][];
+ [unroll(4)];
+ [allow_uav_condition];
+ [unroll(4)] [allow_uav_condition];
+ [ loop ];
+ [fastopt];
+ [branch] if (0);
+ [flatten];
+}
diff --git a/chromium/third_party/glslang/src/Test/hlsl.cast.frag b/chromium/third_party/glslang/src/Test/hlsl.cast.frag
new file mode 100644
index 00000000000..c8dc8212d06
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/hlsl.cast.frag
@@ -0,0 +1,4 @@
+float4 PixelShaderFunction(float4 input) : COLOR0
+{
+ return (float4)input + (int4)input + (float4)1.198;
+}
diff --git a/chromium/third_party/glslang/src/Test/hlsl.doLoop.frag b/chromium/third_party/glslang/src/Test/hlsl.doLoop.frag
new file mode 100644
index 00000000000..546b2c2ca76
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/hlsl.doLoop.frag
@@ -0,0 +1,6 @@
+float4 PixelShaderFunction(float4 input) : COLOR0
+{
+ [unroll] do {} while (false);
+ [unroll] do {;} while (false);
+ do { return input; } while (input == input);
+}
diff --git a/chromium/third_party/glslang/src/Test/hlsl.float1.frag b/chromium/third_party/glslang/src/Test/hlsl.float1.frag
new file mode 100644
index 00000000000..5000dcedcf1
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/hlsl.float1.frag
@@ -0,0 +1,7 @@
+float1 f1 = float1(1.0);
+float scalar = 2.0;
+
+float1 ShaderFunction(float1 inFloat1, float inScalar) : COLOR0
+{
+ return f1 * scalar + inFloat1 * inScalar;
+}
diff --git a/chromium/third_party/glslang/src/Test/hlsl.float4.frag b/chromium/third_party/glslang/src/Test/hlsl.float4.frag
new file mode 100644
index 00000000000..df871225dcc
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/hlsl.float4.frag
@@ -0,0 +1,11 @@
+float4 AmbientColor = float4(1, 0.5, 0, 1);
+
+bool ff1 : SV_IsFrontFace;
+float4 ff2 : packoffset(c0.y);
+float4 ff3 : packoffset(c0.y) : register(ps_5_0, s[0]) ;
+float4 ff4 : VPOS : packoffset(c0.y) : register(ps_5_0, s[0]) <int bambam=30;> ;
+
+float4 ShaderFunction(float4 input) : COLOR0
+{
+ return input * AmbientColor;
+}
diff --git a/chromium/third_party/glslang/src/Test/hlsl.forLoop.frag b/chromium/third_party/glslang/src/Test/hlsl.forLoop.frag
new file mode 100644
index 00000000000..9109de79be3
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/hlsl.forLoop.frag
@@ -0,0 +1,8 @@
+float4 PixelShaderFunction(float4 input) : COLOR0
+{
+ for (;;) ;
+ for (++input; ; ) ;
+ [unroll] for (; input != input; ) {}
+ for (; input != input; ) { return -input; }
+ for (--input; input != input; input += 2) { return -input; }
+}
diff --git a/chromium/third_party/glslang/src/Test/hlsl.frag b/chromium/third_party/glslang/src/Test/hlsl.frag
new file mode 100644
index 00000000000..1620ed58822
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/hlsl.frag
@@ -0,0 +1,12 @@
+float4 AmbientColor = float4(1, 0.5, 0, 1);
+float AmbientIntensity = 0.1;
+
+float4 PixelShaderFunction(float4 input) : COLOR0
+{
+ return input * AmbientIntensity + AmbientColor;
+ return input * input + input * input;
+ return input + input * input + input;
+ return ++input * -+-+--input;
+ return input++ + ++input;
+ return sin(input);
+}
diff --git a/chromium/third_party/glslang/src/Test/hlsl.if.frag b/chromium/third_party/glslang/src/Test/hlsl.if.frag
new file mode 100644
index 00000000000..1f0dde713e1
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/hlsl.if.frag
@@ -0,0 +1,28 @@
+float4 PixelShaderFunction(float4 input) : COLOR0
+{
+ if (input == input)
+ return input;
+
+ if (input == input)
+ return input;
+ else
+ return -input;
+
+ if (input == input)
+ ;
+
+ if (input == input)
+ ;
+ else
+ ;
+
+ [flatten] if (input == input) {
+ return input;
+ }
+
+ if (input == input) {
+ return input;
+ } else {
+ return -input;
+ }
+}
diff --git a/chromium/third_party/glslang/src/Test/hlsl.intrinsics.frag b/chromium/third_party/glslang/src/Test/hlsl.intrinsics.frag
new file mode 100644
index 00000000000..a8a49a0fc16
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/hlsl.intrinsics.frag
@@ -0,0 +1,407 @@
+float PixelShaderFunction(float inF0, float inF1, float inF2)
+{
+ all(inF0);
+ abs(inF0);
+ acos(inF0);
+ any(inF0);
+ asin(inF0);
+ atan(inF0);
+ atan2(inF0, inF1);
+ ceil(inF0);
+ clamp(inF0, inF1, inF2);
+ clip(inF0);
+ cos(inF0);
+ cosh(inF0);
+ countbits(7);
+ ddx(inF0);
+ ddx_coarse(inF0);
+ ddx_fine(inF0);
+ ddy(inF0);
+ ddy_coarse(inF0);
+ ddy_fine(inF0);
+ degrees(inF0);
+ // EvaluateAttributeAtCentroid(inF0);
+ // EvaluateAttributeAtSample(inF0, 0);
+ // TODO: EvaluateAttributeSnapped(inF0, int2(1,2));
+ exp(inF0);
+ exp2(inF0);
+ firstbithigh(7);
+ firstbitlow(7);
+ floor(inF0);
+ // TODO: fma(inD0, inD1, inD2);
+ fmod(inF0, inF1);
+ frac(inF0);
+ frexp(inF0, inF1);
+ fwidth(inF0);
+ isinf(inF0);
+ isnan(inF0);
+ ldexp(inF0, inF1);
+ log(inF0);
+ log10(inF0);
+ log2(inF0);
+ max(inF0, inF1);
+ min(inF0, inF1);
+ pow(inF0, inF1);
+ radians(inF0);
+ rcp(inF0);
+ reversebits(2);
+ round(inF0);
+ rsqrt(inF0);
+ saturate(inF0);
+ sign(inF0);
+ sin(inF0);
+ sincos(inF0, inF1, inF2);
+ sinh(inF0);
+ smoothstep(inF0, inF1, inF2);
+ sqrt(inF0);
+ step(inF0, inF1);
+ tan(inF0);
+ tanh(inF0);
+ // TODO: sampler intrinsics, when we can declare the types.
+ trunc(inF0);
+
+ return 0.0;
+}
+
+float1 PixelShaderFunction(float1 inF0, float1 inF1, float1 inF2)
+{
+ // TODO: ... add when float1 prototypes are generated
+ return 0.0;
+}
+
+float2 PixelShaderFunction(float2 inF0, float2 inF1, float2 inF2)
+{
+ all(inF0);
+ abs(inF0);
+ acos(inF0);
+ any(inF0);
+ asin(inF0);
+ atan(inF0);
+ atan2(inF0, inF1);
+ ceil(inF0);
+ clamp(inF0, inF1, inF2);
+ clip(inF0);
+ cos(inF0);
+ cosh(inF0);
+ countbits(int2(7,3));
+ ddx(inF0);
+ ddx_coarse(inF0);
+ ddx_fine(inF0);
+ ddy(inF0);
+ ddy_coarse(inF0);
+ ddy_fine(inF0);
+ degrees(inF0);
+ distance(inF0, inF1);
+ dot(inF0, inF1);
+ // EvaluateAttributeAtCentroid(inF0);
+ // EvaluateAttributeAtSample(inF0, 0);
+ // TODO: EvaluateAttributeSnapped(inF0, int2(1,2));
+ exp(inF0);
+ exp2(inF0);
+ faceforward(inF0, inF1, inF2);
+ firstbithigh(7);
+ firstbitlow(7);
+ floor(inF0);
+ // TODO: fma(inD0, inD1, inD2);
+ fmod(inF0, inF1);
+ frac(inF0);
+ frexp(inF0, inF1);
+ fwidth(inF0);
+ isinf(inF0);
+ isnan(inF0);
+ ldexp(inF0, inF1);
+ length(inF0);
+ log(inF0);
+ log10(inF0);
+ log2(inF0);
+ max(inF0, inF1);
+ min(inF0, inF1);
+ normalize(inF0);
+ pow(inF0, inF1);
+ radians(inF0);
+ rcp(inF0);
+ reflect(inF0, inF1);
+ refract(inF0, inF1, 2.0);
+ reversebits(int2(1,2));
+ round(inF0);
+ rsqrt(inF0);
+ saturate(inF0);
+ sign(inF0);
+ sin(inF0);
+ sincos(inF0, inF1, inF2);
+ sinh(inF0);
+ smoothstep(inF0, inF1, inF2);
+ sqrt(inF0);
+ step(inF0, inF1);
+ tan(inF0);
+ tanh(inF0);
+ // TODO: sampler intrinsics, when we can declare the types.
+ trunc(inF0);
+
+ // TODO: ... add when float1 prototypes are generated
+ return float2(1,2);
+}
+
+float3 PixelShaderFunction(float3 inF0, float3 inF1, float3 inF2)
+{
+ all(inF0);
+ abs(inF0);
+ acos(inF0);
+ any(inF0);
+ asin(inF0);
+ atan(inF0);
+ atan2(inF0, inF1);
+ ceil(inF0);
+ clamp(inF0, inF1, inF2);
+ clip(inF0);
+ cos(inF0);
+ cosh(inF0);
+ countbits(int3(7,3,5));
+ cross(inF0, inF1);
+ ddx(inF0);
+ ddx_coarse(inF0);
+ ddx_fine(inF0);
+ ddy(inF0);
+ ddy_coarse(inF0);
+ ddy_fine(inF0);
+ degrees(inF0);
+ distance(inF0, inF1);
+ dot(inF0, inF1);
+ // EvaluateAttributeAtCentroid(inF0);
+ // EvaluateAttributeAtSample(inF0, 0);
+ // TODO: EvaluateAttributeSnapped(inF0, int2(1,2));
+ exp(inF0);
+ exp2(inF0);
+ faceforward(inF0, inF1, inF2);
+ firstbithigh(7);
+ firstbitlow(7);
+ floor(inF0);
+ // TODO: fma(inD0, inD1, inD2);
+ fmod(inF0, inF1);
+ frac(inF0);
+ frexp(inF0, inF1);
+ fwidth(inF0);
+ isinf(inF0);
+ isnan(inF0);
+ ldexp(inF0, inF1);
+ length(inF0);
+ log(inF0);
+ log10(inF0);
+ log2(inF0);
+ max(inF0, inF1);
+ min(inF0, inF1);
+ normalize(inF0);
+ pow(inF0, inF1);
+ radians(inF0);
+ rcp(inF0);
+ reflect(inF0, inF1);
+ refract(inF0, inF1, 2.0);
+ reversebits(int3(1,2,3));
+ round(inF0);
+ rsqrt(inF0);
+ saturate(inF0);
+ sign(inF0);
+ sin(inF0);
+ sincos(inF0, inF1, inF2);
+ sinh(inF0);
+ smoothstep(inF0, inF1, inF2);
+ sqrt(inF0);
+ step(inF0, inF1);
+ tan(inF0);
+ tanh(inF0);
+ // TODO: sampler intrinsics, when we can declare the types.
+ trunc(inF0);
+
+ // TODO: ... add when float1 prototypes are generated
+ return float3(1,2,3);
+}
+
+float4 PixelShaderFunction(float4 inF0, float4 inF1, float4 inF2)
+{
+ all(inF0);
+ abs(inF0);
+ acos(inF0);
+ any(inF0);
+ asin(inF0);
+ atan(inF0);
+ atan2(inF0, inF1);
+ ceil(inF0);
+ clamp(inF0, inF1, inF2);
+ clip(inF0);
+ cos(inF0);
+ cosh(inF0);
+ countbits(int4(7,3,5,2));
+ ddx(inF0);
+ ddx_coarse(inF0);
+ ddx_fine(inF0);
+ ddy(inF0);
+ ddy_coarse(inF0);
+ ddy_fine(inF0);
+ degrees(inF0);
+ distance(inF0, inF1);
+ dot(inF0, inF1);
+ dst(inF0, inF1);
+ // EvaluateAttributeAtCentroid(inF0);
+ // EvaluateAttributeAtSample(inF0, 0);
+ // TODO: EvaluateAttributeSnapped(inF0, int2(1,2));
+ exp(inF0);
+ exp2(inF0);
+ faceforward(inF0, inF1, inF2);
+ firstbithigh(7);
+ firstbitlow(7);
+ floor(inF0);
+ // TODO: fma(inD0, inD1, inD2);
+ fmod(inF0, inF1);
+ frac(inF0);
+ frexp(inF0, inF1);
+ fwidth(inF0);
+ isinf(inF0);
+ isnan(inF0);
+ ldexp(inF0, inF1);
+ length(inF0);
+ log(inF0);
+ log10(inF0);
+ log2(inF0);
+ max(inF0, inF1);
+ min(inF0, inF1);
+ normalize(inF0);
+ pow(inF0, inF1);
+ radians(inF0);
+ rcp(inF0);
+ reflect(inF0, inF1);
+ refract(inF0, inF1, 2.0);
+ reversebits(int4(1,2,3,4));
+ round(inF0);
+ rsqrt(inF0);
+ saturate(inF0);
+ sign(inF0);
+ sin(inF0);
+ sincos(inF0, inF1, inF2);
+ sinh(inF0);
+ smoothstep(inF0, inF1, inF2);
+ sqrt(inF0);
+ step(inF0, inF1);
+ tan(inF0);
+ tanh(inF0);
+ // TODO: sampler intrinsics, when we can declare the types.
+ trunc(inF0);
+
+ // TODO: ... add when float1 prototypes are generated
+ return float4(1,2,3,4);
+}
+
+// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
+#define MATFNS() \
+ all(inF0); \
+ abs(inF0); \
+ acos(inF0); \
+ any(inF0); \
+ asin(inF0); \
+ atan(inF0); \
+ atan2(inF0, inF1); \
+ ceil(inF0); \
+ clip(inF0); \
+ clamp(inF0, inF1, inF2); \
+ cos(inF0); \
+ cosh(inF0); \
+ ddx(inF0); \
+ ddx_coarse(inF0); \
+ ddx_fine(inF0); \
+ ddy(inF0); \
+ ddy_coarse(inF0); \
+ ddy_fine(inF0); \
+ degrees(inF0); \
+ determinant(inF0); \
+ exp(inF0); \
+ exp2(inF0); \
+ firstbithigh(7); \
+ firstbitlow(7); \
+ floor(inF0); \
+ fmod(inF0, inF1); \
+ frac(inF0); \
+ frexp(inF0, inF1); \
+ fwidth(inF0); \
+ ldexp(inF0, inF1); \
+ log(inF0); \
+ log10(inF0); \
+ log2(inF0); \
+ max(inF0, inF1); \
+ min(inF0, inF1); \
+ pow(inF0, inF1); \
+ radians(inF0); \
+ round(inF0); \
+ rsqrt(inF0); \
+ saturate(inF0); \
+ sign(inF0); \
+ sin(inF0); \
+ sincos(inF0, inF1, inF2); \
+ sinh(inF0); \
+ smoothstep(inF0, inF1, inF2); \
+ sqrt(inF0); \
+ step(inF0, inF1); \
+ tan(inF0); \
+ tanh(inF0); \
+ transpose(inF0); \
+ trunc(inF0);
+
+// TODO: turn on non-square matrix tests when protos are available.
+
+float2x2 PixelShaderFunction(float2x2 inF0, float2x2 inF1, float2x2 inF2)
+{
+ // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
+ MATFNS()
+
+ // TODO: ... add when float1 prototypes are generated
+ return float2x2(2,2,2,2);
+}
+
+float3x3 PixelShaderFunction(float3x3 inF0, float3x3 inF1, float3x3 inF2)
+{
+ // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
+ MATFNS()
+
+ // TODO: ... add when float1 prototypes are generated
+ return float3x3(3,3,3,3,3,3,3,3,3);
+}
+
+float4x4 PixelShaderFunction(float4x4 inF0, float4x4 inF1, float4x4 inF2)
+{
+ // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
+ MATFNS()
+
+ // TODO: ... add when float1 prototypes are generated
+ return float4x4(4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4);
+}
+
+#define TESTGENMUL(ST, VT, MT) \
+ ST r0 = mul(inF0, inF1); \
+ VT r1 = mul(inFV0, inF0); \
+ VT r2 = mul(inF0, inFV0); \
+ ST r3 = mul(inFV0, inFV1); \
+ VT r4 = mul(inFM0, inFV0); \
+ VT r5 = mul(inFV0, inFM0); \
+ MT r6 = mul(inFM0, inF0); \
+ MT r7 = mul(inF0, inFM0); \
+ MT r8 = mul(inFM0, inFM1);
+
+
+void TestGenMul(float inF0, float inF1,
+ float2 inFV0, float2 inFV1,
+ float2x2 inFM0, float2x2 inFM1)
+{
+ TESTGENMUL(float, float2, float2x2);
+}
+
+void TestGenMul(float inF0, float inF1,
+ float3 inFV0, float3 inFV1,
+ float3x3 inFM0, float3x3 inFM1)
+{
+ TESTGENMUL(float, float3, float3x3);
+}
+
+void TestGenMul(float inF0, float inF1,
+ float4 inFV0, float4 inFV1,
+ float4x4 inFM0, float4x4 inFM1)
+{
+ TESTGENMUL(float, float4, float4x4);
+}
diff --git a/chromium/third_party/glslang/src/Test/hlsl.intrinsics.negative.frag b/chromium/third_party/glslang/src/Test/hlsl.intrinsics.negative.frag
new file mode 100644
index 00000000000..b93f104d3db
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/hlsl.intrinsics.negative.frag
@@ -0,0 +1,137 @@
+float PixelShaderFunction(float inF0, float inF1, float inF2, int inI0)
+{
+ // AllMemoryBarrier(); // TODO: expected error: invalid in fragment stage
+ // AllMemoryBarrierWithGroupSync(); // TODO: expected error: invalid in fragment stage
+ asdouble(inF0, inF1); // expected error: only integer inputs
+ CheckAccessFullyMapped(3.0); // expected error: only valid on integers
+ countbits(inF0); // expected error: only integer inputs
+ cross(inF0, inF1); // expected error: only on float3 inputs
+ D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs
+ determinant(inF0); // expected error: only valid on mats
+ // DeviceMemoryBarrierWithGroupSync(); // TODO: expected error: only valid in compute stage
+ f16tof32(inF0); // expected error: only integer inputs
+ firstbithigh(inF0); // expected error: only integer inputs
+ firstbitlow(inF0); // expected error: only integer inputs
+ fma(inF0, inF1, inF2); // expected error: only double inputs
+ // InterlockedAdd(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out in proto generator
+ // InterlockedAnd(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out i // InterlockedMax(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out in proto generator
+ // InterlockedMin(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out in proto generator
+ // InterlockedOor(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out in proto generator
+ // InterlockedXor(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out in proto generator
+ // GroupMemoryBarrier(); // TODO: expected error: invalid in fragment stage
+ // GroupMemoryBarrierWithGroupSync(); // TODO: expected error: invalid in fragment stage
+ length(inF0); // expected error: invalid on scalars
+ msad4(inF0, float2(0), float4(0)); // expected error: only integer inputs
+ normalize(inF0); // expected error: invalid on scalars
+ reflect(inF0, inF1); // expected error: invalid on scalars
+ refract(inF0, inF1, inF2); // expected error: invalid on scalars
+ refract(float2(0), float2(0), float2(0)); // expected error: last parameter only scalar
+ reversebits(inF0); // expected error: only integer inputs
+ transpose(inF0); // expected error: only valid on mats
+
+ return 0.0;
+}
+
+float1 PixelShaderFunction(float1 inF0, float1 inF1, float1 inF2, int1 inI0)
+{
+ // TODO: ... add when float1 prototypes are generated
+
+ GetRenderTargetSamplePosition(inF0); // expected error: only integer inputs
+
+ return 0.0;
+}
+
+float2 PixelShaderFunction(float2 inF0, float2 inF1, float2 inF2, int2 inI0)
+{
+ asdouble(inF0, inF1); // expected error: only integer inputs
+ CheckAccessFullyMapped(inF0); // expected error: only valid on scalars
+ countbits(inF0); // expected error: only integer inputs
+ cross(inF0, inF1); // expected error: only on float3 inputs
+ D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs
+ determinant(inF0); // expected error: only valid on mats
+ f16tof32(inF0); // expected error: only integer inputs
+ firstbithigh(inF0); // expected error: only integer inputs
+ firstbitlow(inF0); // expected error: only integer inputs
+ fma(inF0, inF1, inF2); // expected error: only double inputs
+ reversebits(inF0); // expected error: only integer inputs
+ transpose(inF0); // expected error: only valid on mats
+
+ return float2(1,2);
+}
+
+float3 PixelShaderFunction(float3 inF0, float3 inF1, float3 inF2, int3 inI0)
+{
+ CheckAccessFullyMapped(inF0); // expected error: only valid on scalars
+ countbits(inF0); // expected error: only integer inputs
+ D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs
+ determinant(inF0); // expected error: only valid on mats
+ f16tof32(inF0); // expected error: only integer inputs
+ firstbithigh(inF0); // expected error: only integer inputs
+ firstbitlow(inF0); // expected error: only integer inputs
+ fma(inF0, inF1, inF2); // expected error: only double inputs
+ reversebits(inF0); // expected error: only integer inputs
+ transpose(inF0); // expected error: only valid on mats
+
+
+ return float3(1,2,3);
+}
+
+float4 PixelShaderFunction(float4 inF0, float4 inF1, float4 inF2, int4 inI0)
+{
+ CheckAccessFullyMapped(inF0); // expected error: only valid on scalars
+ countbits(inF0); // expected error: only integer inputs
+ cross(inF0, inF1); // expected error: only on float3 inputs
+ determinant(inF0); // expected error: only valid on mats
+ f16tof32(inF0); // expected error: only integer inputs
+ firstbithigh(inF0); // expected error: only integer inputs
+ firstbitlow(inF0); // expected error: only integer inputs
+ fma(inF0, inF1, inF2); // expected error: only double inputs
+ reversebits(inF0); // expected error: only integer inputs
+ transpose(inF0); // expected error: only valid on mats
+
+ return float4(1,2,3,4);
+}
+
+// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
+#define MATFNS() \
+ countbits(inF0); \
+ D3DCOLORtoUBYTE4(inF0); \
+ cross(inF0, inF1); \
+ f16tof32(inF0); \
+ firstbithigh(inF0); \
+ firstbitlow(inF0); \
+ fma(inF0, inF1, inF2); \
+ reversebits(inF0); \
+ length(inF0); \
+ noise(inF0); \
+ normalize(inF0); \
+ reflect(inF0, inF1); \
+ refract(inF0, inF1, 1.0); \
+ reversebits(inF0); \
+
+
+// TODO: turn on non-square matrix tests when protos are available.
+
+float2x2 PixelShaderFunction(float2x2 inF0, float2x2 inF1, float2x2 inF2)
+{
+ // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
+ MATFNS()
+
+ return float2x2(2,2,2,2);
+}
+
+float3x3 PixelShaderFunction(float3x3 inF0, float3x3 inF1, float3x3 inF2)
+{
+ // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
+ MATFNS()
+
+ return float3x3(3,3,3,3,3,3,3,3,3);
+}
+
+float4x4 PixelShaderFunction(float4x4 inF0, float4x4 inF1, float4x4 inF2)
+{
+ // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
+ MATFNS()
+
+ return float4x4(4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4);
+}
diff --git a/chromium/third_party/glslang/src/Test/hlsl.intrinsics.negative.vert b/chromium/third_party/glslang/src/Test/hlsl.intrinsics.negative.vert
new file mode 100644
index 00000000000..ee2a29d54e0
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/hlsl.intrinsics.negative.vert
@@ -0,0 +1,196 @@
+float VertexShaderFunction(float inF0, float inF1, float inF2, int inI0)
+{
+ // AllMemoryBarrier(); // invalid in fragment stage TODO: parser currently crashes on empty arg list
+ // AllMemoryBarrierWithGroupSync(); // invalid in fragment stage TODO: parser currently crashes on empty arg list
+ asdouble(inF0, inF1); // expected error: only integer inputs
+ CheckAccessFullyMapped(3.0); // expected error: only valid on integers
+ CheckAccessFullyMapped(3); // expected error: only valid in pixel & compute stages
+ clip(inF0); // expected error: only valid in pixel & compute stages
+ countbits(inF0); // expected error: only integer inputs
+ cross(inF0, inF1); // expected error: only on float3 inputs
+ D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs
+ // DeviceMemoryBarrier(); // TODO: expected error: only valid in pixel & compute stages
+ // DeviceMemoryBarrierWithGroupSync(); // TODO: expected error: only valid in compute stage
+ ddx(inF0); // expected error: only valid in pixel & compute stages
+ ddx_coarse(inF0); // expected error: only valid in pixel & compute stages
+ ddx_fine(inF0); // expected error: only valid in pixel & compute stages
+ ddy(inF0); // expected error: only valid in pixel & compute stages
+ ddy_coarse(inF0); // expected error: only valid in pixel & compute stages
+ ddy_fine(inF0); // expected error: only valid in pixel & compute stages
+ determinant(inF0); // expected error: only valid on mats
+ EvaluateAttributeAtCentroid(inF0); // expected error: only valid in pixel stage
+ EvaluateAttributeAtSample(inF0, 2); // expected error: only valid in pixel stage
+ EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only valid in pixel stage
+ f16tof32(inF0); // expected error: only integer inputs
+ firstbithigh(inF0); // expected error: only integer inputs
+ firstbitlow(inF0); // expected error: only integer inputs
+ fma(inF0, inF1, inF2); // expected error: only double inputs
+ // InterlockedAdd(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out in proto generator
+ // InterlockedAnd(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out i // InterlockedMax(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out in proto generator
+ // InterlockedMin(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out in proto generator
+ // InterlockedOor(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out in proto generator
+ // InterlockedXor(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out in proto generator
+ // GroupMemoryBarrier(); // TODO: expected error: only valid in compute stage
+ // GroupMemoryBarrierWithGroupSync(); // TODO: expected error: only valid in compute stage
+ length(inF0); // expect error: invalid on scalars
+ msad4(inF0, float2(0), float4(0)); // expected error: only integer inputs
+ normalize(inF0); // expect error: invalid on scalars
+ reflect(inF0, inF1); // expect error: invalid on scalars
+ refract(inF0, inF1, inF2); // expect error: invalid on scalars
+ refract(float2(0), float2(0), float2(0)); // expected error: last parameter only scalar
+ reversebits(inF0); // expected error: only integer inputs
+ transpose(inF0); // expect error: only valid on mats
+
+ // TODO: texture intrinsics, when we can declare samplers.
+
+ return 0.0;
+}
+
+float1 VertexShaderFunction(float1 inF0, float1 inF1, float1 inF2, int1 inI0)
+{
+ // TODO: ... add when float1 prototypes are generated
+
+ GetRenderTargetSamplePosition(inF0); // expected error: only integer inputs
+
+ return 0.0;
+}
+
+float2 VertexShaderFunction(float2 inF0, float2 inF1, float2 inF2, int2 inI0)
+{
+ asdouble(inF0, inF1); // expected error: only integer inputs
+ CheckAccessFullyMapped(inF0); // expect error: only valid on scalars
+ countbits(inF0); // expected error: only integer inputs
+ cross(inF0, inF1); // expected error: only on float3 inputs
+ D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs
+ ddx(inF0); // only valid in pixel & compute stages
+ ddx_coarse(inF0); // only valid in pixel & compute stages
+ ddx_fine(inF0); // only valid in pixel & compute stages
+ ddy(inF0); // only valid in pixel & compute stages
+ ddy_coarse(inF0); // only valid in pixel & compute stages
+ ddy_fine(inF0); // only valid in pixel & compute stages
+ determinant(inF0); // expect error: only valid on mats
+ EvaluateAttributeAtCentroid(inF0); // expected error: only valid in pixel stage
+ EvaluateAttributeAtSample(inF0, 2); // expected error: only valid in pixel stage
+ EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only valid in pixel stage
+ f16tof32(inF0); // expected error: only integer inputs
+ firstbithigh(inF0); // expected error: only integer inputs
+ firstbitlow(inF0); // expected error: only integer inputs
+ fma(inF0, inF1, inF2); // expected error: only double inputs
+ noise(inF0); // expected error: only valid in pixel stage
+ reversebits(inF0); // expected error: only integer inputs
+ transpose(inF0); // expect error: only valid on mats
+
+ // TODO: texture intrinsics, when we can declare samplers.
+
+ return float2(1,2);
+}
+
+float3 VertexShaderFunction(float3 inF0, float3 inF1, float3 inF2, int3 inI0)
+{
+ CheckAccessFullyMapped(inF0); // expect error: only valid on scalars
+ countbits(inF0); // expected error: only integer inputs
+ ddx(inF0); // only valid in pixel & compute stages
+ ddx_coarse(inF0); // only valid in pixel & compute stages
+ ddx_fine(inF0); // only valid in pixel & compute stages
+ ddy(inF0); // only valid in pixel & compute stages
+ ddy_coarse(inF0); // only valid in pixel & compute stages
+ ddy_fine(inF0); // only valid in pixel & compute stages
+ D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs
+ determinant(inF0); // expect error: only valid on mats
+ EvaluateAttributeAtCentroid(inF0); // expected error: only valid in pixel stage
+ EvaluateAttributeAtSample(inF0, 2); // expected error: only valid in pixel stage
+ EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only valid in pixel stage
+ f16tof32(inF0); // expected error: only integer inputs
+ firstbithigh(inF0); // expected error: only integer inputs
+ firstbitlow(inF0); // expected error: only integer inputs
+ fma(inF0, inF1, inF2); // expected error: only double inputs
+ noise(inF0); // expected error: only valid in pixel stage
+ reversebits(inF0); // expected error: only integer inputs
+ transpose(inF0); // expect error: only valid on mats
+
+ // TODO: texture intrinsics, when we can declare samplers.
+
+ return float3(1,2,3);
+}
+
+float4 VertexShaderFunction(float4 inF0, float4 inF1, float4 inF2, int4 inI0)
+{
+ CheckAccessFullyMapped(inF0); // expect error: only valid on scalars
+ countbits(inF0); // expected error: only integer inputs
+ cross(inF0, inF1); // expected error: only on float3 inputs
+ determinant(inF0); // expect error: only valid on mats
+ ddx(inF0); // only valid in pixel & compute stages
+ ddx_coarse(inF0); // only valid in pixel & compute stages
+ ddx_fine(inF0); // only valid in pixel & compute stages
+ ddy(inF0); // only valid in pixel & compute stages
+ ddy_coarse(inF0); // only valid in pixel & compute stages
+ ddy_fine(inF0); // only valid in pixel & compute stages
+ EvaluateAttributeAtCentroid(inF0); // expected error: only valid in pixel stage
+ EvaluateAttributeAtSample(inF0, 2); // expected error: only valid in pixel stage
+ EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only valid in pixel stage
+ f16tof32(inF0); // expected error: only integer inputs
+ firstbithigh(inF0); // expected error: only integer inputs
+ firstbitlow(inF0); // expected error: only integer inputs
+ fma(inF0, inF1, inF2); // expected error: only double inputs
+ noise(inF0); // expected error: only valid in pixel stage
+ reversebits(inF0); // expected error: only integer inputs
+ transpose(inF0); // expect error: only valid on mats
+
+ // TODO: texture intrinsics, when we can declare samplers.
+
+ return float4(1,2,3,4);
+}
+
+// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
+#define MATFNS() \
+ countbits(inF0); \
+ cross(inF0, inF1); \
+ D3DCOLORtoUBYTE4(inF0); \
+ ddx(inF0); \
+ ddx_coarse(inF0); \
+ ddx_fine(inF0); \
+ ddy(inF0); \
+ ddy_coarse(inF0); \
+ ddy_fine(inF0); \
+ EvaluateAttributeAtCentroid(inF0); \
+ EvaluateAttributeAtSample(inF0, 2); \
+ EvaluateAttributeSnapped(inF0, int2(2)); \
+ f16tof32(inF0); \
+ firstbithigh(inF0); \
+ firstbitlow(inF0); \
+ fma(inF0, inF1, inF2); \
+ noise(inF0); \
+ reversebits(inF0); \
+ length(inF0); \
+ noise(inF0); \
+ normalize(inF0); \
+ reflect(inF0, inF1); \
+ refract(inF0, inF1, 1.0); \
+ reversebits(inF0); \
+
+
+// TODO: turn on non-square matrix tests when protos are available.
+
+float2x2 VertexShaderFunction(float2x2 inF0, float2x2 inF1, float2x2 inF2)
+{
+ // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
+ MATFNS()
+
+ return float2x2(2,2,2,2);
+}
+
+float3x3 VertexShaderFunction(float3x3 inF0, float3x3 inF1, float3x3 inF2)
+{
+ // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
+ MATFNS()
+
+ return float3x3(3,3,3,3,3,3,3,3,3);
+}
+
+float4x4 VertexShaderFunction(float4x4 inF0, float4x4 inF1, float4x4 inF2)
+{
+ // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
+ MATFNS()
+
+ return float4x4(4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4);
+}
diff --git a/chromium/third_party/glslang/src/Test/hlsl.intrinsics.vert b/chromium/third_party/glslang/src/Test/hlsl.intrinsics.vert
new file mode 100644
index 00000000000..cab79a83490
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/hlsl.intrinsics.vert
@@ -0,0 +1,372 @@
+float VertexShaderFunction(float inF0, float inF1, float inF2)
+{
+ all(inF0);
+ abs(inF0);
+ acos(inF0);
+ any(inF0);
+ asin(inF0);
+ atan(inF0);
+ atan2(inF0, inF1);
+ ceil(inF0);
+ clamp(inF0, inF1, inF2);
+ cos(inF0);
+ cosh(inF0);
+ countbits(7);
+ degrees(inF0);
+ // EvaluateAttributeAtCentroid(inF0);
+ // EvaluateAttributeAtSample(inF0, 0);
+ // TODO: EvaluateAttributeSnapped(inF0, int2(1,2));
+ exp(inF0);
+ exp2(inF0);
+ firstbithigh(7);
+ firstbitlow(7);
+ floor(inF0);
+ // TODO: fma(inD0, inD1, inD2);
+ fmod(inF0, inF1);
+ frac(inF0);
+ frexp(inF0, inF1);
+ fwidth(inF0);
+ isinf(inF0);
+ isnan(inF0);
+ ldexp(inF0, inF1);
+ log(inF0);
+ log10(inF0);
+ log2(inF0);
+ max(inF0, inF1);
+ min(inF0, inF1);
+ // TODO: mul(inF0, inF1);
+ pow(inF0, inF1);
+ radians(inF0);
+ reversebits(2);
+ round(inF0);
+ rsqrt(inF0);
+ saturate(inF0);
+ sign(inF0);
+ sin(inF0);
+ sincos(inF0, inF1, inF2);
+ sinh(inF0);
+ smoothstep(inF0, inF1, inF2);
+ sqrt(inF0);
+ step(inF0, inF1);
+ tan(inF0);
+ tanh(inF0);
+ // TODO: sampler intrinsics, when we can declare the types.
+ trunc(inF0);
+
+ return 0.0;
+}
+
+float1 VertexShaderFunction(float1 inF0, float1 inF1, float1 inF2)
+{
+ // TODO: ... add when float1 prototypes are generated
+ return 0.0;
+}
+
+float2 VertexShaderFunction(float2 inF0, float2 inF1, float2 inF2)
+{
+ all(inF0);
+ abs(inF0);
+ acos(inF0);
+ any(inF0);
+ asin(inF0);
+ atan(inF0);
+ atan2(inF0, inF1);
+ ceil(inF0);
+ clamp(inF0, inF1, inF2);
+ cos(inF0);
+ cosh(inF0);
+ countbits(int2(7,3));
+ degrees(inF0);
+ distance(inF0, inF1);
+ dot(inF0, inF1);
+ // EvaluateAttributeAtCentroid(inF0);
+ // EvaluateAttributeAtSample(inF0, 0);
+ // TODO: EvaluateAttributeSnapped(inF0, int2(1,2));
+ exp(inF0);
+ exp2(inF0);
+ faceforward(inF0, inF1, inF2);
+ firstbithigh(7);
+ firstbitlow(7);
+ floor(inF0);
+ // TODO: fma(inD0, inD1, inD2);
+ fmod(inF0, inF1);
+ frac(inF0);
+ frexp(inF0, inF1);
+ fwidth(inF0);
+ isinf(inF0);
+ isnan(inF0);
+ ldexp(inF0, inF1);
+ length(inF0);
+ log(inF0);
+ log10(inF0);
+ log2(inF0);
+ max(inF0, inF1);
+ min(inF0, inF1);
+ // TODO: mul(inF0, inF1);
+ normalize(inF0);
+ pow(inF0, inF1);
+ radians(inF0);
+ reflect(inF0, inF1);
+ refract(inF0, inF1, 2.0);
+ reversebits(int2(1,2));
+ round(inF0);
+ rsqrt(inF0);
+ saturate(inF0);
+ sign(inF0);
+ sin(inF0);
+ sincos(inF0, inF1, inF2);
+ sinh(inF0);
+ smoothstep(inF0, inF1, inF2);
+ sqrt(inF0);
+ step(inF0, inF1);
+ tan(inF0);
+ tanh(inF0);
+ // TODO: sampler intrinsics, when we can declare the types.
+ trunc(inF0);
+
+ // TODO: ... add when float1 prototypes are generated
+ return float2(1,2);
+}
+
+float3 VertexShaderFunction(float3 inF0, float3 inF1, float3 inF2)
+{
+ all(inF0);
+ abs(inF0);
+ acos(inF0);
+ any(inF0);
+ asin(inF0);
+ atan(inF0);
+ atan2(inF0, inF1);
+ ceil(inF0);
+ clamp(inF0, inF1, inF2);
+ cos(inF0);
+ cosh(inF0);
+ countbits(int3(7,3,5));
+ cross(inF0, inF1);
+ degrees(inF0);
+ distance(inF0, inF1);
+ dot(inF0, inF1);
+ // EvaluateAttributeAtCentroid(inF0);
+ // EvaluateAttributeAtSample(inF0, 0);
+ // TODO: EvaluateAttributeSnapped(inF0, int2(1,2));
+ exp(inF0);
+ exp2(inF0);
+ faceforward(inF0, inF1, inF2);
+ firstbithigh(7);
+ firstbitlow(7);
+ floor(inF0);
+ // TODO: fma(inD0, inD1, inD2);
+ fmod(inF0, inF1);
+ frac(inF0);
+ frexp(inF0, inF1);
+ fwidth(inF0);
+ isinf(inF0);
+ isnan(inF0);
+ ldexp(inF0, inF1);
+ length(inF0);
+ log(inF0);
+ log10(inF0);
+ log2(inF0);
+ max(inF0, inF1);
+ min(inF0, inF1);
+ // TODO: mul(inF0, inF1);
+ normalize(inF0);
+ pow(inF0, inF1);
+ radians(inF0);
+ reflect(inF0, inF1);
+ refract(inF0, inF1, 2.0);
+ reversebits(int3(1,2,3));
+ round(inF0);
+ rsqrt(inF0);
+ saturate(inF0);
+ sign(inF0);
+ sin(inF0);
+ sincos(inF0, inF1, inF2);
+ sinh(inF0);
+ smoothstep(inF0, inF1, inF2);
+ sqrt(inF0);
+ step(inF0, inF1);
+ tan(inF0);
+ tanh(inF0);
+ // TODO: sampler intrinsics, when we can declare the types.
+ trunc(inF0);
+
+ // TODO: ... add when float1 prototypes are generated
+ return float3(1,2,3);
+}
+
+float4 VertexShaderFunction(float4 inF0, float4 inF1, float4 inF2)
+{
+ all(inF0);
+ abs(inF0);
+ acos(inF0);
+ any(inF0);
+ asin(inF0);
+ atan(inF0);
+ atan2(inF0, inF1);
+ ceil(inF0);
+ clamp(inF0, inF1, inF2);
+ cos(inF0);
+ cosh(inF0);
+ countbits(int4(7,3,5,2));
+ degrees(inF0);
+ distance(inF0, inF1);
+ dot(inF0, inF1);
+ dst(inF0, inF1);
+ // EvaluateAttributeAtCentroid(inF0);
+ // EvaluateAttributeAtSample(inF0, 0);
+ // TODO: EvaluateAttributeSnapped(inF0, int2(1,2));
+ exp(inF0);
+ exp2(inF0);
+ faceforward(inF0, inF1, inF2);
+ firstbithigh(7);
+ firstbitlow(7);
+ floor(inF0);
+ // TODO: fma(inD0, inD1, inD2);
+ fmod(inF0, inF1);
+ frac(inF0);
+ frexp(inF0, inF1);
+ fwidth(inF0);
+ isinf(inF0);
+ isnan(inF0);
+ ldexp(inF0, inF1);
+ length(inF0);
+ log(inF0);
+ log10(inF0);
+ log2(inF0);
+ max(inF0, inF1);
+ min(inF0, inF1);
+ // TODO: mul(inF0, inF1);
+ normalize(inF0);
+ pow(inF0, inF1);
+ radians(inF0);
+ reflect(inF0, inF1);
+ refract(inF0, inF1, 2.0);
+ reversebits(int4(1,2,3,4));
+ round(inF0);
+ rsqrt(inF0);
+ saturate(inF0);
+ sign(inF0);
+ sin(inF0);
+ sincos(inF0, inF1, inF2);
+ sinh(inF0);
+ smoothstep(inF0, inF1, inF2);
+ sqrt(inF0);
+ step(inF0, inF1);
+ tan(inF0);
+ tanh(inF0);
+ // TODO: sampler intrinsics, when we can declare the types.
+ trunc(inF0);
+
+ // TODO: ... add when float1 prototypes are generated
+ return float4(1,2,3,4);
+}
+
+// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
+#define MATFNS() \
+ all(inF0); \
+ abs(inF0); \
+ acos(inF0); \
+ any(inF0); \
+ asin(inF0); \
+ atan(inF0); \
+ atan2(inF0, inF1); \
+ ceil(inF0); \
+ clamp(inF0, inF1, inF2); \
+ cos(inF0); \
+ cosh(inF0); \
+ degrees(inF0); \
+ determinant(inF0); \
+ exp(inF0); \
+ exp2(inF0); \
+ firstbithigh(7); \
+ firstbitlow(7); \
+ floor(inF0); \
+ fmod(inF0, inF1); \
+ frac(inF0); \
+ frexp(inF0, inF1); \
+ fwidth(inF0); \
+ ldexp(inF0, inF1); \
+ log(inF0); \
+ log10(inF0); \
+ log2(inF0); \
+ max(inF0, inF1); \
+ min(inF0, inF1); \
+ pow(inF0, inF1); \
+ radians(inF0); \
+ round(inF0); \
+ rsqrt(inF0); \
+ saturate(inF0); \
+ sign(inF0); \
+ sin(inF0); \
+ sincos(inF0, inF1, inF2); \
+ sinh(inF0); \
+ smoothstep(inF0, inF1, inF2); \
+ sqrt(inF0); \
+ step(inF0, inF1); \
+ tan(inF0); \
+ tanh(inF0); \
+ transpose(inF0); \
+ trunc(inF0);
+
+// TODO: turn on non-square matrix tests when protos are available.
+
+float2x2 VertexShaderFunction(float2x2 inF0, float2x2 inF1, float2x2 inF2)
+{
+ // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
+ MATFNS();
+
+ // TODO: ... add when float1 prototypes are generated
+ return float2x2(2,2,2,2);
+}
+
+float3x3 VertexShaderFunction(float3x3 inF0, float3x3 inF1, float3x3 inF2)
+{
+ // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
+ MATFNS();
+
+ // TODO: ... add when float1 prototypes are generated
+ return float3x3(3,3,3,3,3,3,3,3,3);
+}
+
+float4x4 VertexShaderFunction(float4x4 inF0, float4x4 inF1, float4x4 inF2)
+{
+ // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
+ MATFNS();
+
+ // TODO: ... add when float1 prototypes are generated
+ return float4x4(4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4);
+}
+
+#define TESTGENMUL(ST, VT, MT) \
+ ST r0 = mul(inF0, inF1); \
+ VT r1 = mul(inFV0, inF0); \
+ VT r2 = mul(inF0, inFV0); \
+ ST r3 = mul(inFV0, inFV1); \
+ VT r4 = mul(inFM0, inFV0); \
+ VT r5 = mul(inFV0, inFM0); \
+ MT r6 = mul(inFM0, inF0); \
+ MT r7 = mul(inF0, inFM0); \
+ MT r8 = mul(inFM0, inFM1);
+
+
+void TestGenMul(float inF0, float inF1,
+ float2 inFV0, float2 inFV1,
+ float2x2 inFM0, float2x2 inFM1)
+{
+ TESTGENMUL(float, float2, float2x2);
+}
+
+void TestGenMul(float inF0, float inF1,
+ float3 inFV0, float3 inFV1,
+ float3x3 inFM0, float3x3 inFM1)
+{
+ TESTGENMUL(float, float3, float3x3);
+}
+
+void TestGenMul(float inF0, float inF1,
+ float4 inFV0, float4 inFV1,
+ float4x4 inFM0, float4x4 inFM1)
+{
+ TESTGENMUL(float, float4, float4x4);
+}
diff --git a/chromium/third_party/glslang/src/Test/hlsl.matType.frag b/chromium/third_party/glslang/src/Test/hlsl.matType.frag
new file mode 100644
index 00000000000..36d71e3bab3
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/hlsl.matType.frag
@@ -0,0 +1,10 @@
+float1 f1 = float1(1.0);
+float1x1 fmat11;
+float4x1 fmat41;
+float1x2 fmat12;
+double2x3 dmat23;
+int4x4 int44;
+
+float1 ShaderFunction(float1 inFloat1, float inScalar) : COLOR0
+{
+}
diff --git a/chromium/third_party/glslang/src/Test/hlsl.max.frag b/chromium/third_party/glslang/src/Test/hlsl.max.frag
new file mode 100644
index 00000000000..6d1ea0b1291
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/hlsl.max.frag
@@ -0,0 +1,4 @@
+float4 PixelShaderFunction(float4 input1, float4 input2) : COLOR0
+{
+ return max(input1, input2);
+}
diff --git a/chromium/third_party/glslang/src/Test/hlsl.precedence.frag b/chromium/third_party/glslang/src/Test/hlsl.precedence.frag
new file mode 100644
index 00000000000..eae0435e074
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/hlsl.precedence.frag
@@ -0,0 +1,9 @@
+float4 PixelShaderFunction(
+ float4 a1,
+ float4 a2,
+ float4 a3,
+ float4 a4
+ ) : COLOR0
+{
+ return a1 + a2 * a3 + a4;
+}
diff --git a/chromium/third_party/glslang/src/Test/hlsl.precedence2.frag b/chromium/third_party/glslang/src/Test/hlsl.precedence2.frag
new file mode 100644
index 00000000000..0d3f583a819
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/hlsl.precedence2.frag
@@ -0,0 +1,9 @@
+int PixelShaderFunction(
+ int a1,
+ int a2,
+ int a3,
+ int a4
+ ) : COLOR0
+{
+ return (a1 * a2 + a3 << a4) + (a1 << a2 + a3 * a4);
+}
diff --git a/chromium/third_party/glslang/src/Test/hlsl.scope.frag b/chromium/third_party/glslang/src/Test/hlsl.scope.frag
new file mode 100644
index 00000000000..0d8cc1ad98d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/hlsl.scope.frag
@@ -0,0 +1,30 @@
+float4 PixelShaderFunction(float4 input) : COLOR0
+{
+ int x;
+ x;
+ {
+ float x;
+ x;
+ {
+ bool x;
+ x;
+ {
+ float3 x;
+ x;
+ }
+ x;
+ }
+ x;
+ }
+ x;
+
+ if (x > 0)
+ bool x;
+
+ while (x > 0)
+ bool x;
+
+ do {
+ bool x;
+ } while (x > 0);
+}
diff --git a/chromium/third_party/glslang/src/Test/hlsl.sin.frag b/chromium/third_party/glslang/src/Test/hlsl.sin.frag
new file mode 100644
index 00000000000..edf087deb4e
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/hlsl.sin.frag
@@ -0,0 +1,4 @@
+float4 PixelShaderFunction(float4 input) : COLOR0
+{
+ return sin(input);
+}
diff --git a/chromium/third_party/glslang/src/Test/hlsl.struct.frag b/chromium/third_party/glslang/src/Test/hlsl.struct.frag
new file mode 100644
index 00000000000..aded037cc20
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/hlsl.struct.frag
@@ -0,0 +1,39 @@
+struct {
+};
+
+struct {
+ bool b;
+};
+
+struct myS {
+ bool b, c;
+ float4 a, d;
+};
+
+myS s1;
+
+struct {
+ float4 i;
+} s2;
+
+struct {
+ linear float4 a;
+ nointerpolation bool b;
+ noperspective centroid float1 c;
+ sample centroid float2 d;
+ bool ff1 : SV_IsFrontFace;
+ bool ff2 : packoffset(c0.y);
+ bool ff3 : packoffset(c0.y) : register(ps_5_0, s[0]) ;
+ float4 ff4 : VPOS : packoffset(c0.y) : register(ps_5_0, s[0]) <int bambam=30;> ;
+} s4;
+
+float4 PixelShaderFunction(float4 input) : COLOR0
+{
+ struct FS {
+ bool3 b3;
+ } s3;
+
+ s3 == s3;
+
+ return input;
+} \ No newline at end of file
diff --git a/chromium/third_party/glslang/src/Test/hlsl.void.frag b/chromium/third_party/glslang/src/Test/hlsl.void.frag
new file mode 100644
index 00000000000..9bf06b72652
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/hlsl.void.frag
@@ -0,0 +1,8 @@
+void foo1() {}
+void foo2(void) {}
+
+float4 PixelShaderFunction(float4 input) : COLOR0
+{
+ foo1();
+ foo2();
+} \ No newline at end of file
diff --git a/chromium/third_party/glslang/src/Test/hlsl.whileLoop.frag b/chromium/third_party/glslang/src/Test/hlsl.whileLoop.frag
new file mode 100644
index 00000000000..f282375ddd5
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/hlsl.whileLoop.frag
@@ -0,0 +1,7 @@
+float4 PixelShaderFunction(float4 input) : COLOR0
+{
+ while (input != input) { return input; }
+ while (false) ;
+ [unroll] while (false) { }
+ while ((false)) { }
+}
diff --git a/chromium/third_party/glslang/src/Test/length.frag b/chromium/third_party/glslang/src/Test/length.frag
new file mode 100644
index 00000000000..6520facdc81
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/length.frag
@@ -0,0 +1,18 @@
+#version 120
+
+uniform vec4 u[3];
+
+#ifdef TEST_POST_110
+varying vec2 v[];
+#else
+varying vec2 v[2];
+#endif
+
+void main()
+{
+ int a[5];
+
+ vec2 t = v[0] + v[1];
+
+ gl_FragColor = vec4(u.length() * v.length() * a.length());
+}
diff --git a/chromium/third_party/glslang/src/Test/lineContinuation.vert b/chromium/third_party/glslang/src/Test/lineContinuation.vert
new file mode 100644
index 00000000000..471f3a34227
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/lineContinuation.vert
@@ -0,0 +1,151 @@
+#version 300 es
+
+// this file cont\
+ains no errors other than the #error which are there to see if line numbering for errors is correct
+
+#error e1
+
+float f\
+oo; // same as 'float foo;'
+
+#error e2
+
+#define MAIN void main() \
+ { \
+gl_Position = vec4(foo); \
+}
+
+#error e3
+
+MAIN
+
+vec4 foo2(vec4 a)
+{
+ vec4 b = a; \
+ return b;
+}
+
+// aoeuntheo unatehutna \ antaehnathe
+// anteonuth $ natohe " '
+// anteonuth natohe
+
+#define FOO int /* \
+*/ goodDecl;
+
+FOO
+
+#define A int q1 = \ 1
+#define B int q2 = \1
+#define C int q3 = $ 1
+#define D int q4 = @ 1
+
+const highp int a1 = \ 4; // ERROR
+const highp int a2 = @ 3; // ERROR
+const highp int a3 = $4; // ERROR
+const highp int a4 = a2\; // ERROR
+
+A;
+B;
+C;
+D;
+
+# \
+
+# \
+ error good continuation
+
+#define AA1 a \ b
+#define AA2 a \\ b
+#define AA3 a \\\ b
+#define AA4 a \\\\ b
+
+// anoetuh nonaetu \\\\\\
+still in comment
+
+const int abdece = 10;
+const int aoeuntaoehu = abd\
+\
+\
+\
+\
+\
+ece;
+
+float funkyf = \
+.\
+1\
+2\
+3\
+e\
++\
+1\
+7\
+;\
+int funkyh\
+=\
+0\
+x\
+f\
+4\
+;
+int funkyo =\
+0\
+4\
+2\
+;
+int c = \
+11;
+int d = 1\
+2;
+
+#define FOOM(a,b) a + b
+
+#if FO\
+OM(2\
+,\
+3)
+int bar103 = 17;
+#endif
+
+// ERROR
+#if FOOM(2,
+3)
+int bar104 = 19;
+#endif
+
+// ERROR
+#if FOOM(
+2,3)
+int bar105 = 19;
+#endif
+
+int bar106 = FOOM(5,7);
+int bar107 = FOOM // okay
+ (
+ 2
+ ,
+ 3
+ )
+ ;
+
+void foo203209409()
+{
+ bar107 \
++= 37;
+ bar107 *\
+= 38;
+ bar107 /=\
+39;
+ bar107 +\
+41;
+}
+
+#define QUOTE "ab\
+cd"
+
+void foo230920394()
+{
+ // syntax error
+ bar107 +\
+ = 42;
+}
diff --git a/chromium/third_party/glslang/src/Test/lineContinuation100.vert b/chromium/third_party/glslang/src/Test/lineContinuation100.vert
new file mode 100644
index 00000000000..955be3f8d35
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/lineContinuation100.vert
@@ -0,0 +1,56 @@
+#version 100
+
+// non-line continuation comment \
+#error good error
+
+
+
+float f\
+oo; // same as 'float foo;'
+
+#error e2
+
+#define MAIN void main() \
+ { \
+gl_Position = vec4(foo); \
+}
+
+#error e3
+
+MAIN
+
+vec4 foo2(vec4 a)
+{
+ vec4 b = a; \
+ return b;
+}
+
+// aoeuntheo unatehutna \ antaehnathe
+// anteonuth $ natohe " '
+// anteonuth natohe
+/*@*/
+/* *@/*/
+//@
+
+#define A int q1 = \ 1
+#define B int q2 = \1
+#define C int q3 = $ 1
+#define D int q4 = @ 1
+
+const highp int a1 = \ 4; // ERROR
+const highp int a2 = @ 3; // ERROR
+const highp int a3 = $4; // ERROR
+const highp int a4 = a2\; // ERROR
+
+A;
+B;
+C;
+D;
+
+# \
+
+# \
+ error bad continuation
+
+#define QUOTE "ab\
+cd"
diff --git a/chromium/third_party/glslang/src/Test/link1.frag b/chromium/third_party/glslang/src/Test/link1.frag
new file mode 100644
index 00000000000..31676813c19
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/link1.frag
@@ -0,0 +1,38 @@
+#version 130
+
+uniform vec4 uv4;
+uniform vec3 glass;
+
+const int ci = 8;
+
+vec4 a = ci * uv4;
+
+in vec3 iv3;
+in vec4 cup;
+
+void main()
+{
+}
+
+vec4 b = ci * a;
+
+ivec2 foo(mat2 m)
+{
+ return ivec2(m[0]);
+}
+
+vec4 c = b * b;
+
+const vec3 cv3 = vec3(43.0, 0.34, 9.9);
+const vec3 cv3n = vec3(43.0, 0.34, 9.9);
+const vec3 cv3e = vec3(43.0, 0.34, 9.9);
+uniform mat2 um2 = mat2(4.0);
+uniform mat2 um2n = mat2(4.0);
+uniform mat2 um2e = mat2(4.0);
+struct S {
+ int a;
+ float b;
+};
+uniform S s = S(82, 3.9);
+uniform S sn;
+uniform S se = S(82, 3.9);
diff --git a/chromium/third_party/glslang/src/Test/link2.frag b/chromium/third_party/glslang/src/Test/link2.frag
new file mode 100644
index 00000000000..301c2717d34
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/link2.frag
@@ -0,0 +1,36 @@
+#version 130
+
+uniform vec4 uv4;
+uniform vec2 glass;
+
+const int ci = 8;
+
+vec4 d = ci * uv4;
+
+in vec3 iv3;
+flat in vec4 cup;
+
+vec4 e = ci * d;
+
+ivec2 foo()
+{
+ return ivec2(2);
+}
+
+vec4 f = e * e;
+
+const vec3 cv3 = vec3(43.0, 0.34, 9.9);
+const vec3 cv3e = vec3(43.0, 0.34, 2.9);
+uniform mat2 um2 = mat2(4.0);
+uniform mat2 um2n;
+uniform mat2 um2e = mat2(3.0);
+struct S {
+ int a;
+ float b;
+};
+uniform S s = S(82, 3.9);
+uniform S sn = S(82, 3.9);
+uniform S se = S(81, 3.9);
+
+#extension GL_OES_texture_3D : enable
+#extension GL_OES_standard_derivatives : enable
diff --git a/chromium/third_party/glslang/src/Test/link3.frag b/chromium/third_party/glslang/src/Test/link3.frag
new file mode 100644
index 00000000000..015ad35b2f3
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/link3.frag
@@ -0,0 +1,9 @@
+#version 300 es
+
+precision highp float;
+
+in vec2 iv3;
+
+#extension GL_OES_standard_derivatives : enable
+#extension GL_OES_EGL_image_external : require
+#extension GL_OES_texture_3D : enable
diff --git a/chromium/third_party/glslang/src/Test/localAggregates.frag b/chromium/third_party/glslang/src/Test/localAggregates.frag
new file mode 100644
index 00000000000..dbc9725b451
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/localAggregates.frag
@@ -0,0 +1,72 @@
+#version 130
+
+uniform sampler2D sampler;
+varying vec2 coord;
+varying vec4 color;
+
+struct s1 {
+ int i;
+ float f;
+};
+
+struct s2 {
+ int i;
+ float f;
+ s1 s1_1;
+ vec4 bleh;
+};
+
+struct s3 {
+ s2 s2_1;
+ int i;
+ float f;
+ s1 s1_1;
+};
+
+
+uniform s1 foo;
+uniform s2 foo2;
+uniform s3 foo3;
+
+uniform float[16] uFloatArray;
+uniform int condition;
+
+void main()
+{
+ s2 locals2;
+ s3 locals3;
+ float localFArray[16];
+ int localIArray[8];
+
+ locals2 = foo3.s2_1;
+
+ if (foo3.s2_1.i > 0) {
+ locals2.s1_1.f = 1.0;
+ localFArray[4] = coord.x;
+ localIArray[2] = foo3.s2_1.i;
+ } else {
+ locals2.s1_1.f = coord.x;
+ localFArray[4] = 1.0;
+ localIArray[2] = 0;
+ }
+
+ if (localIArray[2] == 0)
+ ++localFArray[4];
+
+ float localArray[16];
+ int x = 5;
+ localArray[x] = coord.x;
+
+ float[16] a;
+
+ for (int i = 0; i < 16; i++)
+ a[i] = 0.0;
+
+ if (condition == 1)
+ a = localArray;
+
+ locals2.bleh = color;
+ locals2.bleh.z = coord.y;
+
+ gl_FragColor = locals2.bleh * (localFArray[4] + locals2.s1_1.f + localArray[x] + a[x]) * texture2D(sampler, coord);
+}
diff --git a/chromium/third_party/glslang/src/Test/loops.frag b/chromium/third_party/glslang/src/Test/loops.frag
new file mode 100644
index 00000000000..44f13bcd803
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/loops.frag
@@ -0,0 +1,320 @@
+#version 130
+uniform vec4 bigColor;
+uniform vec4 bigColor1_1;
+uniform vec4 bigColor1_2;
+uniform vec4 bigColor1_3;
+uniform vec4 bigColor2;
+uniform vec4 bigColor3;
+uniform vec4 bigColor4;
+uniform vec4 bigColor5;
+uniform vec4 bigColor6;
+uniform vec4 bigColor7;
+uniform vec4 bigColor8;
+
+varying vec4 BaseColor;
+
+uniform float d;
+uniform float d2;
+uniform float d3;
+uniform float d4;
+uniform float d5;
+uniform float d6;
+uniform float d7;
+uniform float d8;
+uniform float d9;
+uniform float d10;
+uniform float d11;
+uniform float d12;
+uniform float d13;
+uniform float d14;
+uniform float d15;
+uniform float d16;
+uniform float d17;
+uniform float d18;
+uniform float d19;
+uniform float d20;
+uniform float d21;
+uniform float d22;
+uniform float d23;
+uniform float d24;
+uniform float d25;
+uniform float d26;
+uniform float d27;
+uniform float d28;
+uniform float d29;
+uniform float d30;
+uniform float d31;
+uniform float d32;
+uniform float d33;
+uniform float d34;
+
+uniform int Count;
+
+void main()
+{
+ vec4 color = BaseColor;
+
+ // Not a real loop
+ while (true) {
+ if (color.x < 0.33) {
+ color += vec4(0.33);
+ break;
+ }
+ if (color.x < 0.66) {
+ color += vec4(0.66);
+ break;
+ }
+
+ color += vec4(0.33);
+ break;
+ }
+
+ // While
+ while (color.x < d) {
+ color += bigColor;
+ }
+
+ // While (latchy)
+ while (color.z < d) {
+ color += bigColor1_1;
+ if (color.w < d)
+ continue;
+
+ color += bigColor1_1;
+ }
+
+ // While (constant)
+ while (color.x < 42.0) {
+ ++color;
+ }
+
+ // While (complicated-conditional)
+ while (color.w < d2 && color.y < d3) {
+ color += bigColor1_2;
+ }
+
+ // While (multi-exit)
+ while (color.z < d3) {
+ color += bigColor1_3;
+ if (color.y < d4)
+ break;
+ color += bigColor1_3;
+ }
+
+ // For (dynamic)
+ for (int i = 0; i < Count; ++i) {
+ color += bigColor2;
+ }
+
+ // Do while
+ do {
+ color += bigColor3;
+ } while (color.x < d2);
+
+ // For (static)
+ for (int i = 0; i < 42; ++i) {
+ color.z += d3;
+ }
+
+ // For (static) flow-control
+ for (int i = 0; i < 100; ++i) {
+ if (color.z < 20.0)
+ color.x++;
+ else
+ color.y++;
+ if (color.w < 20.0)
+ if (color.z > color.y)
+ 0; // do nothing
+ }
+
+ // For (static) flow-control with latch merge
+ for (int i = 0; i < 120; ++i) {
+ if (color.z < 20.0)
+ color.x++;
+ else
+ color.y++;
+ }
+
+ // For (static) latchy
+ for (int i = 0; i < 42; ++i) {
+ color.z += d3;
+ if (color.x < d4)
+ continue;
+ ++color.w;
+ }
+
+ // For (static) multi-exit
+ for (int i = 0; i < 42; ++i) {
+ color.z += d3;
+ if (color.x < d4)
+ break;
+ ++color.w;
+ }
+
+ // Latchy
+ do {
+ color += bigColor4;
+ if (color.x < d4)
+ continue;
+ if (color.y < d4)
+ color.y += d4;
+ else
+ color.x += d4;
+ } while (color.z < d4);
+
+ // Do while flow control
+ do {
+ color += bigColor5;
+ if (color.y < d5)
+ color.y += d5;
+ } while (color.x < d5);
+
+ // If then loop
+ if (color.x < d6) {
+ while (color.y < d6)
+ color += bigColor6;
+ } else {
+ while (color.z < d6)
+ color.z += bigColor6.z;
+ }
+
+ // If then multi-exit
+ if (color.x < d6) {
+ while (color.y < d6) {
+ color += bigColor6;
+ if (d7 < 1.0)
+ break;
+ }
+
+ } else {
+ while (color.z < d6)
+ color.z += bigColor6.z;
+ }
+
+
+ // Multi-exit
+ do {
+ if (d7 < 0.0)
+ break;
+
+ color += bigColor7;
+
+ if (d7 < 1.0) {
+ color.z++;
+ break;
+ }
+
+ color += BaseColor;
+
+ } while (true);
+
+
+ // Multi-exit2
+ do {
+ // invariant conditional break at the top of the loop. This could be a
+ // situation where unswitching the loop has no real increases in code
+ // size.
+ if (d8 < 0.0)
+ break;
+
+ color += bigColor7;
+
+ if (d8 < 1.0) {
+ color.z++;
+ if (d8 < 2.0) {
+ color.y++;
+ } else {
+ color.x++;
+ }
+ break;
+ }
+
+ color += BaseColor;
+
+ } while (color.z < d8);
+
+ // Deep exit
+ while (color.w < d9) {
+ if (d9 > d8) {
+ if (color.x <= d7) {
+ if (color.z == 5.0)
+ color.w++;
+ else
+ break;
+ }
+ }
+
+ }
+
+ // No end loop-back.
+ while (color.z < d10) {
+ color.y++;
+ if (color.y < d11) {
+ color.z++;
+ if (color.w < d12)
+ color.w++;
+ else
+ color.x++;
+ continue;
+ }
+
+ color++;
+ break;
+ }
+
+ // Multi-continue
+ while (color.x < 10.0) {
+ color += bigColor8;
+
+ if (color.z < d8)
+ if (color.w < d6)
+ continue;
+
+ color.y += bigColor8.x;
+ }
+
+ color++;
+ gl_FragColor = color;
+
+ // Early Return
+ while (color.x < d14) {
+ if (color.y < d15) {
+ return;
+ }
+ else
+ color++;
+ }
+
+ color++;
+
+ while (color.w < d16) {
+ color.w++;
+ }
+
+
+ // While (complicated-conditional)
+ while (color.w < d2 && color.y < d3) {
+ color += bigColor1_2;
+ if (color.z < d3)
+ return;
+ }
+
+
+ do {
+ if (color.y < d18)
+ return;
+ color++;
+ } while (color.x < d17);
+
+ // Early Discard
+ while (color.y < d16) {
+ if (color.w < d16) {
+ discard;
+ } else
+ color++;
+ }
+
+ color++;
+
+ gl_FragColor = color;
+}
diff --git a/chromium/third_party/glslang/src/Test/loopsArtificial.frag b/chromium/third_party/glslang/src/Test/loopsArtificial.frag
new file mode 100644
index 00000000000..7195a4f87c8
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/loopsArtificial.frag
@@ -0,0 +1,96 @@
+#version 130
+uniform vec4 bigColor;
+uniform vec4 bigColor1_1;
+uniform vec4 bigColor1_2;
+uniform vec4 bigColor1_3;
+uniform vec4 bigColor2;
+uniform vec4 bigColor3;
+uniform vec4 bigColor4;
+uniform vec4 bigColor5;
+uniform vec4 bigColor6;
+uniform vec4 bigColor7;
+uniform vec4 bigColor8;
+
+varying vec4 BaseColor;
+
+uniform float d;
+uniform float d2;
+uniform float d3;
+uniform float d4;
+uniform float d5;
+uniform float d6;
+uniform float d7;
+uniform float d8;
+uniform float d9;
+uniform float d10;
+uniform float d11;
+uniform float d12;
+uniform float d13;
+uniform float d14;
+uniform float d15;
+uniform float d16;
+uniform float d17;
+uniform float d18;
+uniform float d19;
+uniform float d20;
+uniform float d21;
+uniform float d22;
+uniform float d23;
+uniform float d24;
+uniform float d25;
+uniform float d26;
+uniform float d27;
+uniform float d28;
+uniform float d29;
+uniform float d30;
+uniform float d31;
+uniform float d32;
+uniform float d33;
+uniform float d34;
+
+uniform int Count;
+
+void main()
+{
+ vec4 color = BaseColor;
+
+ // Latchy2
+ do {
+ color += bigColor4;
+ if (color.x < d4) {
+ color.z += 2.0;
+ if (color.z < d4) {
+ color.x++;
+ continue;
+ }
+ }
+ if (color.y < d4)
+ color.y += d4;
+ else
+ color.x += d4;
+ } while (color.z < d4);
+
+ // Immediate dominator
+ while (color.w < d13) {
+ if (color.z < d13)
+ color++;
+ else
+ color--;
+ // code from Latchy 2
+ color += bigColor4;
+ if (color.x < d4) {
+ color.z += 2.0;
+ if (color.z < d4) {
+ color.x++;
+ continue;
+ }
+ }
+ if (color.y < d4)
+ color.y += d4;
+ else
+ color.x += d4;
+ }
+
+ color++;
+ gl_FragColor = color;
+}
diff --git a/chromium/third_party/glslang/src/Test/mains.frag b/chromium/third_party/glslang/src/Test/mains.frag
new file mode 100644
index 00000000000..d6e17f966e5
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/mains.frag
@@ -0,0 +1,9 @@
+#version 300 es
+
+void main()
+{
+}
+
+void main()
+{
+}
diff --git a/chromium/third_party/glslang/src/Test/mains1.frag b/chromium/third_party/glslang/src/Test/mains1.frag
new file mode 100644
index 00000000000..b2beec6d7a8
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/mains1.frag
@@ -0,0 +1,5 @@
+#version 110
+
+void main()
+{
+}
diff --git a/chromium/third_party/glslang/src/Test/mains2.frag b/chromium/third_party/glslang/src/Test/mains2.frag
new file mode 100644
index 00000000000..b2beec6d7a8
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/mains2.frag
@@ -0,0 +1,5 @@
+#version 110
+
+void main()
+{
+}
diff --git a/chromium/third_party/glslang/src/Test/makeDoc b/chromium/third_party/glslang/src/Test/makeDoc
new file mode 100644
index 00000000000..c9d598ec418
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/makeDoc
@@ -0,0 +1,3 @@
+#!/usr/bin/env bash
+./glslangValidator -p > instDesc
+asciidoc --backend=html5 instDesc
diff --git a/chromium/third_party/glslang/src/Test/matrix.frag b/chromium/third_party/glslang/src/Test/matrix.frag
new file mode 100644
index 00000000000..0c0be7417fd
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/matrix.frag
@@ -0,0 +1,55 @@
+#version 130
+
+//#define TEST_POST_110
+
+uniform mat3 colorTransform;
+varying 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;
+
+#ifdef TEST_POST_110
+varying vec3 u;
+#else
+varying vec4 u;
+#endif
+
+void main()
+{
+ gl_FragColor = vec4(un34[1]);
+ gl_FragColor += vec4(Color * colorTransform, 1.0);
+
+ if (m != n)
+ gl_FragColor += v;
+ 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
+
+ if (m34 == un34)
+ gl_FragColor += m34 * u;
+ else
+ gl_FragColor += (un34 * um43) * v;
+}
diff --git a/chromium/third_party/glslang/src/Test/matrix2.frag b/chromium/third_party/glslang/src/Test/matrix2.frag
new file mode 100644
index 00000000000..193c99d3eae
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/matrix2.frag
@@ -0,0 +1,50 @@
+#version 150
+
+uniform mat3 colorTransform;
+varying vec3 Color;
+uniform mat4 m, n;
+
+uniform mat4x3 um43;
+uniform mat3x4 un34;
+uniform mat2 um2;
+uniform mat3 um3;
+uniform mat4 um4;
+
+varying vec4 v;
+
+varying vec3 u;
+
+out vec4 FragColor;
+
+void main()
+{
+ mat3x4 m34 = outerProduct(v, u);
+
+ m34 += mat3x4(4.3);
+
+ FragColor = vec4(Color, 1.0);
+ FragColor *= vec4(FragColor * m34, 1.0);
+
+ m34 *= v.x;
+
+ mat4 m44 = mat4(un34);
+
+ m44 += m34 * um43;
+
+ FragColor += (-m44) * v;
+
+ FragColor *= matrixCompMult(m44, m44);
+
+ m34 = transpose(um43);
+ FragColor *= vec4(FragColor * m34, 1.0);
+ FragColor *= vec4(determinant(um4));
+ mat2 inv = inverse(um2);
+ FragColor *= vec4(inv[0][0], inv[1][0], inv[0][1], inv[1][1]);
+ mat3 inv3 = inverse(um3);
+ FragColor *= vec4(inv3[2][1]);
+
+ mat4 inv4 = inverse(um4);
+ FragColor *= inv4;
+
+ FragColor = vec4(FragColor * matrixCompMult(un34, un34), FragColor.w);
+}
diff --git a/chromium/third_party/glslang/src/Test/matrixError.vert b/chromium/third_party/glslang/src/Test/matrixError.vert
new file mode 100644
index 00000000000..3c8cc11fec5
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/matrixError.vert
@@ -0,0 +1,22 @@
+#version 120
+
+attribute vec3 v3;
+
+uniform mat3x2 m32;
+
+const mat2x4 m24 = mat2x4(1.0, 2.0,
+ 3.0, 4.0,
+ 3.0, 4.0,
+ 3.0, 4.0, 5.0); // ERROR, too many arguments
+
+void main()
+{
+ mat2x3 m23;
+ vec3 a, b;
+
+ a = v3 * m23; // ERROR, type mismatch
+ b = m32 * v3; // ERROR, type mismatch
+ m23.xy; // ERROR, can't use .
+
+ gl_Position = vec4(m23 * m32 * v3, m24[2][4]); // ERROR, 2 and 4 are out of range
+}
diff --git a/chromium/third_party/glslang/src/Test/max_vertices_0.geom b/chromium/third_party/glslang/src/Test/max_vertices_0.geom
new file mode 100644
index 00000000000..08fd6e6f240
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/max_vertices_0.geom
@@ -0,0 +1,12 @@
+#version 330
+
+layout(points) in;
+layout(triangle_strip, max_vertices = 0) out;
+in highp vec4 v_geom_FragColor[];
+out highp vec4 v_frag_FragColor;
+
+void main (void)
+{
+ EndPrimitive();
+ EndPrimitive();
+}
diff --git a/chromium/third_party/glslang/src/Test/negativeArraySize.comp b/chromium/third_party/glslang/src/Test/negativeArraySize.comp
new file mode 100644
index 00000000000..20636c0a7d0
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/negativeArraySize.comp
@@ -0,0 +1,10 @@
+#version 310 es
+
+#ifdef GL_ES
+precision mediump float;
+#endif
+
+void main()
+{
+ float f[-2]; // cannot declare arrays with negative size
+}
diff --git a/chromium/third_party/glslang/src/Test/newTexture.frag b/chromium/third_party/glslang/src/Test/newTexture.frag
new file mode 100644
index 00000000000..4f807691f70
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/newTexture.frag
@@ -0,0 +1,75 @@
+#version 430
+
+uniform samplerBuffer sb;
+uniform sampler2DRect sr;
+uniform sampler2D s2D;
+uniform sampler3D s3D;
+uniform samplerCube sCube;
+uniform samplerCubeShadow sCubeShadow;
+uniform sampler2DShadow s2DShadow;
+uniform sampler2DArray s2DArray;
+uniform sampler2DArrayShadow s2DArrayShadow;
+
+uniform isampler2D is2D;
+uniform isampler3D is3D;
+uniform isamplerCube isCube;
+uniform isampler2DArray is2DArray;
+uniform isampler2DMS is2Dms;
+
+uniform usampler2D us2D;
+uniform usampler3D us3D;
+uniform usamplerCube usCube;
+uniform usampler2DArray us2DArray;
+
+in float c1D;
+in vec2 c2D;
+in vec3 c3D;
+in vec4 c4D;
+
+flat in int ic1D;
+flat in ivec2 ic2D;
+flat in ivec3 ic3D;
+flat in ivec4 ic4D;
+
+out vec4 FragData;
+
+void main()
+{
+ vec4 v = texture(s2D, c2D);
+ v += textureProj(s3D, c4D);
+ v += textureLod(s2DArray, c3D, 1.2);
+ v.y += textureOffset(s2DShadow, c3D, ivec2(3), c1D);
+ v += texelFetch(s3D, ic3D, ic1D);
+ v += texelFetchOffset(s2D, ic2D, 4, ivec2(3));
+ v += texelFetchOffset(sr, ic2D, ivec2(4));
+ v.y += textureLodOffset(s2DShadow, c3D, c1D, ivec2(3));
+ v += textureProjLodOffset(s2D, c3D, c1D, ivec2(3));
+ v += textureGrad(sCube, c3D, c3D, c3D);
+ v.x += textureGradOffset(s2DArrayShadow, c4D, c2D, c2D, ivec2(3));
+ v += textureProjGrad(s3D, c4D, c3D, c3D);
+ v += textureProjGradOffset(s2D, c3D, c2D, c2D, ivec2(3));
+
+ ivec4 iv = texture(is2D, c2D);
+ v += vec4(iv);
+ iv = textureProjOffset(is2D, c4D, ivec2(3));
+ v += vec4(iv);
+ iv = textureProjLod(is2D, c3D, c1D);
+ v += vec4(iv);
+ iv = textureProjGrad(is2D, c3D, c2D, c2D);
+ v += vec4(iv);
+ iv = texture(is3D, c3D, 4.2);
+ v += vec4(iv);
+ iv = textureLod(isCube, c3D, c1D);
+ v += vec4(iv);
+ iv = texelFetch(is2DArray, ic3D, ic1D);
+ v += vec4(iv);
+ iv += texelFetch(is2Dms, ic2D, ic1D);
+ v += vec4(iv);
+ v += texelFetch(sb, ic1D);
+ v += texelFetch(sr, ic2D);
+
+ ivec2 iv2 = textureSize(sCubeShadow, 2);
+ // iv2 += textureSize(is2Dms);
+
+ FragData = v + vec4(iv2, 0.0, 0.0);
+}
diff --git a/chromium/third_party/glslang/src/Test/noMain.vert b/chromium/third_party/glslang/src/Test/noMain.vert
new file mode 100644
index 00000000000..27be67df3e5
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/noMain.vert
@@ -0,0 +1,5 @@
+#version 300 es
+
+void foo()
+{
+}
diff --git a/chromium/third_party/glslang/src/Test/noMain1.geom b/chromium/third_party/glslang/src/Test/noMain1.geom
new file mode 100644
index 00000000000..4fa1b768c2a
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/noMain1.geom
@@ -0,0 +1,7 @@
+#version 110
+
+void foo()
+{
+}
+
+layout(points) out; \ No newline at end of file
diff --git a/chromium/third_party/glslang/src/Test/noMain2.geom b/chromium/third_party/glslang/src/Test/noMain2.geom
new file mode 100644
index 00000000000..d7c96c95661
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/noMain2.geom
@@ -0,0 +1,7 @@
+#version 150
+
+void bar()
+{
+}
+
+layout(line_strip) out;
diff --git a/chromium/third_party/glslang/src/Test/nonSquare.vert b/chromium/third_party/glslang/src/Test/nonSquare.vert
new file mode 100644
index 00000000000..0974425917e
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/nonSquare.vert
@@ -0,0 +1,25 @@
+#version 120
+
+attribute vec3 v3;
+attribute vec4 v4;
+
+uniform mat3x2 m32;
+
+const vec2 cv2 = vec2(10.0, 20.0);
+const mat2x4 m24 = mat2x4(3.0);
+const mat4x2 m42 = mat4x2(1.0, 2.0,
+ 3.0, 4.0,
+ 5.0, 6.0,
+ 7.0, 8.0);
+
+void main()
+{
+ mat2x3 m23;
+ vec2 a, b;
+
+ a = v3 * m23;
+ b = m32 * v3;
+
+ gl_Position = vec4(m23 * m32 * v3, m24[1][3]) +
+ (m24 * m42) * v4 + cv2 * m42 + m24 * cv2 + vec4(cv2[1], cv2.x, m42[2][1], m42[2][0]);
+}
diff --git a/chromium/third_party/glslang/src/Test/nonVulkan.frag b/chromium/third_party/glslang/src/Test/nonVulkan.frag
new file mode 100644
index 00000000000..05c818d7ce5
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/nonVulkan.frag
@@ -0,0 +1,9 @@
+#version 450
+
+layout(constant_id = 17) const int arraySize = 12; // ERROR
+layout(input_attachment_index = 1) int foo; // ERROR
+layout(push_constant) uniform ubn { int a; } ubi; // ERROR
+
+#ifdef VULKAN
+#error VULKAN should not be defined
+#endif
diff --git a/chromium/third_party/glslang/src/Test/numeral.frag b/chromium/third_party/glslang/src/Test/numeral.frag
new file mode 100644
index 00000000000..789f1b43859
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/numeral.frag
@@ -0,0 +1,103 @@
+#version 400
+
+void main()
+{
+ int o00 = 00;
+ int o000 = 000;
+ int o0000 = 0000;
+ int o5 = 05;
+ int o05 = 005;
+ int o006 = 0006;
+ int o7 = 07;
+ int o58 = 072;
+ int omax = 037777777777;
+ int o8 = 08; // ERROR
+ int o08 = 008; // ERROR
+ int o009 = 0009; // ERROR
+ int obig = 07324327323472347234; // ERROR
+ int omax1 = 040000000000; // ERROR
+
+ uint uo5 = 05u;
+ uint uo6 = 06u;
+ uint uo7 = 07u;
+ uint uo8 = 08u; // ERROR
+ uint uo9 = 09u; // ERROR
+
+ int h0 = 0x0;
+ int h00 = 0x00;
+ int h000 = 0x000;
+ int h1 = 0x1;
+ int h2 = 0x00000002;
+ int h300 = 0x000300;
+ int hABCDEF = 0xAbCdEF;
+ int hFFFFFFFF = 0xFFFFFFFF;
+ int h12345678 = 0xBC614E;
+ int hToBeOrNotToBe = 0x2b | ~0x2B;
+
+ uint uh0 = 0x0u;
+ uint uhg = (0xcu);
+ uint uh000 = 0x000u;
+ uint uh1 = 0x1u;
+ uint uh2 = 0x00000002u;
+ uint uh300 = 0x000300u;
+ uint uhABCDEF = 0xAbCdEFu;
+ uint uhFFFFFFFF = 0xFFFFFFFFu;
+ uint uh12345678 = 0xBC614Eu;
+ uint uhToBeOrNotToBe = 0x2bu | ~0x2BU;
+
+ //int he1 = 0xG; // ERROR
+ int he2 = 0x; // ERROR
+ int hbig = 0xFFFFFFFF1; // ERROR
+
+ float f1 = 1.0;
+ float f2 = 2.;
+ float f3 = 3e0;
+ float f4 = 40e-1;
+ float f5 = 05.;
+ float f6 = 006.;
+ float f7 = .7e1;
+ float f8 = 08e0;
+ float f9 = .9e+1;
+ float f10 = 10.0;
+ float f11 = .011e+3;
+ float f12 = .0012e4;
+ float f543 = 000000543.;
+ float f6789 = 00006789.;
+ float f88 = 0000088.;
+
+ float g1 = 5.3876e4;
+ float g2 = 4000000000e-11;
+ float g3 = 1e+5;
+ float g4 = 7.321E-3;
+ float g5 = 3.2E+4;
+ float g6 = 0.5e-5;
+ float g7 = 0.45;
+ float g8 = 6.e10;
+
+ double gf1 = 1.0lf;
+ double gf2 = 2.Lf;
+ double gf3 = .3e1lF;
+ double gf4 = .4e1LF;
+ float gf5 = 5.f;
+ float gf6 = 6.F;
+
+ //float e1 = 1..; // ERROR
+ //float e2 = 2.l; // ERROR
+ //float e3 = ..3; // ERROR
+ //float e4 = 4ee1; // ERROR
+ float e5 = 5f; // ERROR
+}
+
+layout (location = 2) out vec4 c2;
+layout (location = 3u) out vec4 c3;
+layout (location = 04) out vec4 c4;
+layout (location = 005u) out vec4 c5;
+layout (location = 0x6) out vec4 c6;
+layout (location = 0x7u) out vec4 c7;
+
+uint g1 = 4294967296u; // ERROR, too big
+uint g2 = 4294967295u;
+uint g3 = 4294967294u;
+int g4 = 4294967296; // ERROR, too big
+int g5 = 4294967295;
+int g6 = 4294967294;
diff --git a/chromium/third_party/glslang/src/Test/pointCoord.frag b/chromium/third_party/glslang/src/Test/pointCoord.frag
new file mode 100644
index 00000000000..8dc9e746db4
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/pointCoord.frag
@@ -0,0 +1,15 @@
+precision highp float;
+
+uniform sampler2D sampler;
+
+void main()
+{
+ vec4 color;
+
+ if (length(gl_PointCoord) < 0.3)
+ color = texture2D(sampler, gl_PointCoord);
+ else
+ color = vec4(0.0);
+
+ gl_FragColor = color;
+}
diff --git a/chromium/third_party/glslang/src/Test/precise.tesc b/chromium/third_party/glslang/src/Test/precise.tesc
new file mode 100644
index 00000000000..c541540cbbb
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/precise.tesc
@@ -0,0 +1,109 @@
+#version 450
+#extension GL_EXT_tessellation_shader : require
+#extension GL_EXT_gpu_shader5 : require
+
+float minimal() {
+ precise float result = 5.0;
+ float a = 10.0;
+ float b = 20.0;
+ float c = 30.0;
+ float d = 40.0;
+ result = a * b + c * d; // c * d, a * b and rvalue1 + rvalue2 should be 'noContraction'.
+ return result;
+}
+
+void continuous_assignment() {
+ precise float result = 5.0;
+ float a = 10.0;
+ float b = 20.0;
+ result = a = b + 4; // b + 4 should be 'noContraction'.
+}
+
+void convert() {
+ precise double result;
+ float a = 10.0;
+ float b = 20.0;
+ b = a + b; // a + b should be 'noContraction'.
+ result = double(b); // convert operation should not be 'noContraction'.
+}
+
+float loop_for() {
+ precise float r1 = 5.0;
+ precise float r2 = 10.0;
+ int a = 10;
+ int b = 20;
+ int c = 30;
+ for (int i = 0; i < a; i++) {
+ r1 += 3.12 + b + i; // 'noContration', this make i++ also 'noContraction'
+ c += 1; // 'noContration'
+ }
+ a += 1; // a + 1 should not be 'noContraction'.
+ r2 = c; // The calculation of c should be 'noContration'.
+ return float(r1 + r2); // conversion should not be 'noContration'.
+}
+
+void loop_array(void) {
+ precise float result;
+
+ int x = 22;
+ int y = 33;
+
+ float a0[3];
+ result += float(x) + float(y); // x + y should be 'noContraction' also result + rvalue.
+
+ for (int i = 0; i < 3; ++i) {
+ // a's dereference + 2 should be 'noContraction'.
+ result += a0[i] + 2;
+ // result + 1 and 3 - rvalue should be 'noContraction'.
+ a0[i] = 3 - result++;
+ }
+}
+
+void loop_while() {
+ precise float result = 5.0;
+ int a = 10;
+ int b = 20;
+ while (result < 10) {
+ result += 3.12 + b; // result + 3.12 should be 'noContraction'.
+ }
+ result = a + b + 5; // b + 5 should not be 'noCtraction' because all operands are integers.
+ result = 11.1;
+}
+
+float fma_not_decorated() {
+ precise float result;
+ float a = 1.0;
+ float b = 2.0;
+ float c = 3.0;
+ b = b + c; // b + c should be decorated with 'noContraction'
+ result = fma(a, b, c); // fma() should not be decorated with 'noContradtion'
+ return result;
+}
+
+precise float precise_return_exp_func() {
+ float a = 1.0;
+ float b = 2.0;
+ return a + b; // the ADD operation should be 'noContraction'
+}
+
+precise float precise_return_val_func() {
+ float a = 1.0;
+ float b = 2.0;
+ float result = a + b; // the ADD operation should be 'noContraction'
+ return result;
+}
+
+float precise_func_parameter(float b, precise out float c) {
+ float a = 0.5;
+ c = a + b; // noContration
+ return a - b; // Not noContraction
+}
+
+mat3 matrix (mat2x3 a, mat3x2 b) {
+ mat2x3 c = mat2x3(1.0, 2.0, 3.0, 4.0, 5.0, 6.0);
+ precise mat3 result;
+ result = (a + c) * b; // should be noContraction
+ return result;
+}
+
+void main(){}
diff --git a/chromium/third_party/glslang/src/Test/precise_struct_block.vert b/chromium/third_party/glslang/src/Test/precise_struct_block.vert
new file mode 100644
index 00000000000..279b4b09df5
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/precise_struct_block.vert
@@ -0,0 +1,89 @@
+#version 450
+
+struct T {
+ float f1;
+ float f2;
+};
+
+out B1 {precise T s; float x;} partial_precise_block;
+precise out B2 {T s; float x;} all_precise_block;
+
+float struct_member() {
+ float a = 1.0;
+ float b = 2.0;
+ float c = 3.0;
+ float d = 4.0;
+
+ precise float result;
+
+ T S, S2, S3;
+
+ S2.f1 = a + 0.2; // NoContraction
+ S2.f2 = b + 0.2; // NOT NoContraction
+ S3.f1 = a + b; // NOT NoContraction
+ S = S2; // "precise" propagated through parent object nodes
+ result = S.f1 + 0.1; // the ADD operation should be NoContraction
+
+ return result;
+}
+
+float complex_array_struct() {
+ precise float result;
+ struct T1 {
+ float t1_array[3];
+ float t1_scalar;
+ };
+ struct T2 {
+ T1 t1a[5];
+ T1 t1b[6];
+ T1 t1c[7];
+ };
+ struct T3 {float f; T2 t2; vec4 v; int p;};
+ T3 t3[10];
+ for(int i=0; i<10; i++) {
+ t3[i].f = i / 3.0; // Not NoContraction
+ t3[i].v = vec4(i * 1.5); // NoContraction
+ t3[i].p = i + 1;
+ for(int j=0; j<5; j++) {
+ for(int k = 0; k<3; k++) {
+ t3[i].t2.t1a[j].t1_array[k] = i * j + k; // Not NoContraction
+ }
+ t3[i].t2.t1a[j].t1_scalar = j * 2.0 / i; // Not NoContration
+ }
+
+ for(int j=0; j<6; j++) {
+ for(int k = 0; k<3; k++) {
+ t3[i].t2.t1b[j].t1_array[k] = i * j + k; // Not NoContraction
+ }
+ t3[i].t2.t1b[j].t1_scalar = j * 2.0 / i; // NoContraction
+ }
+
+ for(int j=0; j<6; j++) {
+ for(int k = 0; k<3; k++) {
+ t3[i].t2.t1c[j].t1_array[k] = i * j + k; // Not NoContraction because all operands are integers
+ }
+ t3[i].t2.t1c[j].t1_scalar = j * 2.0 / i; // Not NoContraction
+ }
+ }
+ int i = 2;
+ result = t3[5].t2.t1c[6].t1_array[1]
+ + t3[2].t2.t1b[1].t1_scalar
+ + t3[i - 1].v.xy.x; // NoContraction
+ return result;
+}
+
+float out_block() {
+ float a = 0.1;
+ float b = 0.2;
+ partial_precise_block.s.f1 = a + b; // NoContraction
+ partial_precise_block.s.f2 = a - b; // NoContraction
+ partial_precise_block.x = a * b; // Not NoContraction
+
+ all_precise_block.s.f1 = a + b + 1.0; // NoContraction
+ all_precise_block.s.f2 = a - b - 1.0; // NoContraction
+ all_precise_block.x = a * b * 2.0; // Also NoContraction
+
+ return a + b; // Not NoContraction
+}
+
+void main(){}
diff --git a/chromium/third_party/glslang/src/Test/precision.frag b/chromium/third_party/glslang/src/Test/precision.frag
new file mode 100644
index 00000000000..02bc6ca8986
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/precision.frag
@@ -0,0 +1,76 @@
+#version 100
+
+varying vec3 color; // ERRROR, there is no default qualifier for float
+
+lowp vec2 foo(mediump vec3 mv3)
+{
+ highp vec4 hv4;
+ return hv4.xy;
+}
+
+int global_medium;
+
+uniform lowp sampler2D samplerLow;
+uniform mediump sampler2D samplerMed;
+uniform highp sampler2D samplerHigh;
+
+precision highp int;
+precision highp ivec2; // ERROR
+precision mediump int[2]; // ERROR
+vec4 uint; // okay
+precision mediump vec4; // ERROR
+
+int global_high;
+
+void main()
+{
+ lowp int sum = global_medium + global_high;
+
+ gl_FragColor = vec4(color, 1.0);
+
+ int level1_high;
+ sum += level1_high;
+
+ precision lowp int;
+ int level1_low;
+ sum += level1_low;
+
+ // test maxing precisions of args to get precision of builtin
+ lowp float arg1;
+ mediump float arg2;
+ lowp float d = distance(arg1, arg2);
+
+ {
+ int level2_low;
+ sum += level2_low;
+
+ precision highp int;
+ int level2_high;
+ sum += level2_high;
+ do {
+ if (true) {
+ precision mediump int;
+ int level4_medium;
+ sum += level4_medium;
+ }
+ int level3_high;
+ sum += level3_high;
+ } while (true);
+ int level2_high2;
+ sum += level2_high2;
+ }
+ int level1_low3;
+ sum += level1_low3;
+
+ sum += 4 + ((ivec2(level1_low3) * ivec2(level1_high) + ivec2((/* comma operator */level1_low3, level1_high)))).x;
+
+ texture2D(samplerLow, vec2(0.1, 0.2));
+ texture2D(samplerMed, vec2(0.1, 0.2));
+ texture2D(samplerHigh, vec2(0.1, 0.2));
+}
+
+precision mediump bool; // ERROR
+//precision mediump struct { int a; } s; // ERROR
+struct s {int a;};
+precision mediump s; // ERROR
+mediump bvec2 b2; // ERROR
diff --git a/chromium/third_party/glslang/src/Test/precision.vert b/chromium/third_party/glslang/src/Test/precision.vert
new file mode 100644
index 00000000000..5d073488c90
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/precision.vert
@@ -0,0 +1,25 @@
+#version 300 es
+
+in vec4 pos;
+
+uniform sampler2D s2D;
+uniform samplerCube sCube;
+uniform isampler2DArray is2DAbad; // ERROR, no default precision
+uniform sampler2DArrayShadow s2dASbad; // ERROR, no default precision
+
+precision highp sampler2D;
+precision mediump sampler2DArrayShadow;
+
+uniform sampler2DArrayShadow s2dAS;
+uniform isampler2DArray is2DAbad2; // ERROR, still no default precision
+
+uniform sampler2D s2Dhigh;
+
+void main()
+{
+ vec4 t = texture(s2D, vec2(0.1, 0.2));
+ t += texture(s2Dhigh, vec2(0.1, 0.2));
+ t += texture(s2dAS, vec4(0.5));
+
+ gl_Position = pos;
+}
diff --git a/chromium/third_party/glslang/src/Test/prepost.frag b/chromium/third_party/glslang/src/Test/prepost.frag
new file mode 100644
index 00000000000..9627b7e2d99
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/prepost.frag
@@ -0,0 +1,38 @@
+#version 140
+
+void main()
+{
+ struct s {
+ float y[5];
+ } str;
+
+ float t;
+ int index = 5; // all indexing is 4
+
+ str.y[4] = 2.0; // 2.0
+ t = ++str.y[--index]; // 3.0
+ str.y[4] += t; // 6.0
+ t = str.y[4]--; // 5.0 (t = 6.0)
+ str.y[index++] += t; // 11.0
+ --str.y[--index]; // 10.0
+
+ float x = str.y[4];
+ ++x;
+ --x;
+ x++;
+ x--;
+
+ // x is 10.0
+
+ float y = x * ++x; // 10 * 11
+ float z = y * x--; // 110 * 11
+
+ // x is 10.0
+ // z is 1210.0
+
+ vec4 v = vec4(1.0, 2.0, 3.0, 4.0);
+ v.y = v.z--; // (1,3,2,4)
+ v.x = --v.w; // (3,3,2,3)
+
+ gl_FragColor = z * v;// (3630.0, 3630.0, 2420.0, 3630.0)
+}
diff --git a/chromium/third_party/glslang/src/Test/preprocessor.cpp_style___FILE__.vert b/chromium/third_party/glslang/src/Test/preprocessor.cpp_style___FILE__.vert
new file mode 100644
index 00000000000..6d2bc1d810e
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/preprocessor.cpp_style___FILE__.vert
@@ -0,0 +1,36 @@
+#extension GL_GOOGLE_cpp_style_line_directive : enable
+
+__FILE__
+
+#line 150 "a.h"
+__FILE__
+
+#line 24
+__FILE__
+
+#line 42
+__FILE__
+
+#line 30 "b.cc"
+__FILE__
+
+#line 10 3
+__FILE__
+
+#line 48
+__FILE__
+
+#line 4
+__FILE__
+
+#line 55 100
+__FILE__
+
+#line 1000 "c"
+__FILE__
+
+#line 42 1
+__FILE__
+
+#line 42 "this-is-a-quite-long-name-maybe-i-should-shorten-it"
+__FILE__
diff --git a/chromium/third_party/glslang/src/Test/preprocessor.cpp_style_line_directive.vert b/chromium/third_party/glslang/src/Test/preprocessor.cpp_style_line_directive.vert
new file mode 100644
index 00000000000..90fb2614d5e
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/preprocessor.cpp_style_line_directive.vert
@@ -0,0 +1,36 @@
+#extension GL_GOOGLE_cpp_style_line_directive : enable
+
+#error at "0:3"
+
+#line 150 "a.h"
+#error at "a.h:150"
+
+#line 24
+#error at "a.h:24"
+
+#line 42
+#error at "a.h:42"
+
+#line 30 "b.cc"
+#error at "b.cc:30"
+
+#line 10 3
+#error at "3:10"
+
+#line 48
+#error at "3:48"
+
+#line 4
+#error at "3:4"
+
+#line 55 100
+#error at "100:55"
+
+#line 1000 "c"
+#error at "c:1000"
+
+#line 42 1
+#error at "1:42"
+
+#line 42 "this-is-a-quite-long-name-maybe-i-should-shorten-it"
+#error at "this-is-a-quite-long-name-maybe-i-should-shorten-it:42"
diff --git a/chromium/third_party/glslang/src/Test/preprocessor.defined.vert b/chromium/third_party/glslang/src/Test/preprocessor.defined.vert
new file mode 100644
index 00000000000..375e4d3d7ed
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/preprocessor.defined.vert
@@ -0,0 +1,2 @@
+#define defined_not_really
+#define defined // ERROR: "defined" can't be (un)defined:
diff --git a/chromium/third_party/glslang/src/Test/preprocessor.edge_cases.vert b/chromium/third_party/glslang/src/Test/preprocessor.edge_cases.vert
new file mode 100644
index 00000000000..ebea94f2eaf
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/preprocessor.edge_cases.vert
@@ -0,0 +1,15 @@
+#version 310 es
+#define X(Y) /*
+ */ Y + 2
+
+#define Y(Z) 2 * Z// asdf
+
+#define Z(Y) /*
+ */ \
+ 2 /*
+ */ + 3 \
+ * Y
+
+void main() {
+ gl_Position = vec4(X(3) + Y(4) + Z(2));
+}
diff --git a/chromium/third_party/glslang/src/Test/preprocessor.eof_missing.vert b/chromium/third_party/glslang/src/Test/preprocessor.eof_missing.vert
new file mode 100644
index 00000000000..9177314832a
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/preprocessor.eof_missing.vert
@@ -0,0 +1 @@
+noEOF \ No newline at end of file
diff --git a/chromium/third_party/glslang/src/Test/preprocessor.errors.vert b/chromium/third_party/glslang/src/Test/preprocessor.errors.vert
new file mode 100644
index 00000000000..86b3962429e
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/preprocessor.errors.vert
@@ -0,0 +1,20 @@
+#version 310 es
+
+#define X 1
+
+#if X
+ #ifdef Y
+ #error This should not show up in pp output.
+ #endif
+ #error This should show up in pp output.
+#else
+ #error This should not show up in pp output.
+#endif
+
+#def X
+#if Y
+
+#extension a
+
+int main() {
+}
diff --git a/chromium/third_party/glslang/src/Test/preprocessor.extensions.vert b/chromium/third_party/glslang/src/Test/preprocessor.extensions.vert
new file mode 100644
index 00000000000..89012960cc2
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/preprocessor.extensions.vert
@@ -0,0 +1,12 @@
+#version 310 es
+
+#extension GL_EXT_geometry_shader: enable
+#extension GL_EXT_frag_depth: disable
+#extension GL_EXT_gpu_shader5: require
+#extension GL_EXT_shader_texture_image_samples: warn
+
+#extension unknown_extension: require
+
+int main() {
+}
+
diff --git a/chromium/third_party/glslang/src/Test/preprocessor.function_macro.vert b/chromium/third_party/glslang/src/Test/preprocessor.function_macro.vert
new file mode 100644
index 00000000000..3ae7c62af3b
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/preprocessor.function_macro.vert
@@ -0,0 +1,20 @@
+#version 310 es
+
+
+#define X(n) n + 1
+#define Y(n, z) n + z
+#define Z(f) X(f)
+
+#define REALLY_LONG_MACRO_NAME_WITH_MANY_PARAMETERS(X1, X2, X3, X4, X5, X6, X7,\
+ X8, X9, X10, X11, X12) X1+X2+X3+X4+X5+X6+X7+X8+X9+X10+X11+X12
+
+#define A(\
+ Y\
+ )\
+4 + 3 + Y
+
+int main() {
+ gl_Position = vec4(X(3), Y(3, 4), Z(3));
+ gl_Position = vec4(REALLY_LONG_MACRO_NAME_WITH_MANY_PARAMETERS(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12));
+ gl_Position = vec4(A(3));
+}
diff --git a/chromium/third_party/glslang/src/Test/preprocessor.include.disabled.vert b/chromium/third_party/glslang/src/Test/preprocessor.include.disabled.vert
new file mode 100644
index 00000000000..130d928e52d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/preprocessor.include.disabled.vert
@@ -0,0 +1,7 @@
+#line 8000
+#include
+#include 123
+#include "foo"
+#include "foo" garbage
+#include "no-eol"
+
diff --git a/chromium/third_party/glslang/src/Test/preprocessor.include.enabled.vert b/chromium/third_party/glslang/src/Test/preprocessor.include.enabled.vert
new file mode 100644
index 00000000000..62a7428bfd2
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/preprocessor.include.enabled.vert
@@ -0,0 +1,7 @@
+#extension GL_GOOGLE_include_directive : enable
+#line 8000
+#include
+#include 123
+#include "foo"
+#include "foo" garbage
+#include "no-eol"
diff --git a/chromium/third_party/glslang/src/Test/preprocessor.line.frag b/chromium/third_party/glslang/src/Test/preprocessor.line.frag
new file mode 100644
index 00000000000..0b7ac7663f9
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/preprocessor.line.frag
@@ -0,0 +1,4 @@
+#version 310 es
+#line 1 2
+#pragma something
+void main() {}
diff --git a/chromium/third_party/glslang/src/Test/preprocessor.line.vert b/chromium/third_party/glslang/src/Test/preprocessor.line.vert
new file mode 100644
index 00000000000..22d2907dea8
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/preprocessor.line.vert
@@ -0,0 +1,39 @@
+#line 300
+
+#line 2
+
+
+
+
+
+#line __LINE__ + 3
+
+
+#line __FILE__ + 2
+
+#line __FILE__ * __LINE__
+
+
+#define X 4
+
+#line X
+
+#undef X
+
+#define X(y) y + 3 + 2
+
+#line X(3)
+
+void main() {
+ gl_Position = vec4(__LINE__);
+}
+
+#line X(3) 4
+
+#define Z(y, q) \
+ y*q*2 q
+
+#line Z(2, 3)
+
+#line 1
+
diff --git a/chromium/third_party/glslang/src/Test/preprocessor.many.endif.vert b/chromium/third_party/glslang/src/Test/preprocessor.many.endif.vert
new file mode 100644
index 00000000000..7b049629fd5
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/preprocessor.many.endif.vert
@@ -0,0 +1,10 @@
+#endif
+#endif
+#endif
+#endif
+#endif
+#endif
+#endif
+
+#if
+#else
diff --git a/chromium/third_party/glslang/src/Test/preprocessor.pragma.vert b/chromium/third_party/glslang/src/Test/preprocessor.pragma.vert
new file mode 100644
index 00000000000..17424738756
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/preprocessor.pragma.vert
@@ -0,0 +1,11 @@
+#version 310 es
+
+#pragma optimize(on)
+#pragma optimize(off)
+#pragma debug(on)
+#pragma debug(off)
+
+#pragma undefined_pragma(x, 4)
+
+int main() {
+}
diff --git a/chromium/third_party/glslang/src/Test/preprocessor.simple.vert b/chromium/third_party/glslang/src/Test/preprocessor.simple.vert
new file mode 100644
index 00000000000..d25334ab821
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/preprocessor.simple.vert
@@ -0,0 +1,22 @@
+#version 310 es
+#define X 1
+#define Y clamp
+#define Z X
+
+#define F 1, 2
+
+#define make_function \
+ float fn ( float x ) \
+ {\
+ return x + 4.0; \
+ }
+
+make_function
+
+int main() {
+ gl_Position = vec4(X);
+ gl_Position = Y(1, 2, 3);
+ gl_Position = vec4(Z);
+ gl_Position = vec4(F);
+ gl_Position = vec4(fn(3));
+}
diff --git a/chromium/third_party/glslang/src/Test/preprocessor.success_if_parse_would_fail.vert b/chromium/third_party/glslang/src/Test/preprocessor.success_if_parse_would_fail.vert
new file mode 100644
index 00000000000..ed1ad0c0ee1
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/preprocessor.success_if_parse_would_fail.vert
@@ -0,0 +1,4 @@
+int x() {
+ something that shouldnt compile;
+}
+
diff --git a/chromium/third_party/glslang/src/Test/recurse1.frag b/chromium/third_party/glslang/src/Test/recurse1.frag
new file mode 100644
index 00000000000..447a8827d67
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/recurse1.frag
@@ -0,0 +1,48 @@
+#version 330 core
+
+// cross-unit recursion
+
+void main() {}
+
+// two-level recursion
+
+float cbar(int);
+
+void cfoo(float)
+{
+ cbar(2);
+}
+
+// four-level, out of order
+
+void CB();
+void CD();
+void CA() { CB(); }
+void CC() { CD(); }
+
+// high degree
+
+void CBT();
+void CDT();
+void CAT() { CBT(); CBT(); CBT(); }
+void CCT() { CDT(); CDT(); CBT(); }
+
+// not recursive
+
+void norA() {}
+void norB() { norA(); }
+void norC() { norA(); }
+void norD() { norA(); }
+void norE() { norB(); }
+void norF() { norB(); }
+void norG() { norE(); }
+void norH() { norE(); }
+void norI() { norE(); }
+
+// not recursive, but with a call leading into a cycle if ignoring direction
+
+void norcA() { }
+void norcB() { norcA(); }
+void norcC() { norcB(); }
+void norcD() { norcC(); norcB(); } // head of cycle
+void norcE() { norcD(); } // lead into cycle
diff --git a/chromium/third_party/glslang/src/Test/recurse1.vert b/chromium/third_party/glslang/src/Test/recurse1.vert
new file mode 100644
index 00000000000..bb5b245e8c2
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/recurse1.vert
@@ -0,0 +1,44 @@
+#version 330 core
+
+void main() {}
+
+float bar(int);
+
+// direct recursion
+
+void self()
+{
+ self();
+}
+
+// two-level recursion
+
+void foo(float)
+{
+ bar(2);
+}
+
+float bar(int)
+{
+ foo(4.2);
+
+ return 3.2;
+}
+
+// four-level, out of order
+
+void B();
+void D();
+void A() { B(); }
+void C() { D(); }
+void B() { C(); }
+void D() { A(); }
+
+// high degree
+
+void BT();
+void DT();
+void AT() { BT(); BT(); BT(); }
+void CT() { DT(); AT(); DT(); BT(); }
+void BT() { CT(); CT(); CT(); }
+void DT() { AT(); }
diff --git a/chromium/third_party/glslang/src/Test/recurse2.frag b/chromium/third_party/glslang/src/Test/recurse2.frag
new file mode 100644
index 00000000000..6bd4067f1a8
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/recurse2.frag
@@ -0,0 +1,28 @@
+#version 330 core
+
+// cross-unit recursion
+
+// two-level recursion
+
+void cfoo(float);
+
+float cbar(int)
+{
+ cfoo(4.2);
+
+ return 3.2;
+}
+
+// four-level, out of order
+
+void CA();
+void CC();
+void CB() { CC(); }
+void CD() { CA(); }
+
+// high degree
+
+void CAT();
+void CCT();
+void CBT() { CCT(); CCT(); CCT(); }
+void CDT() { CAT(); }
diff --git a/chromium/third_party/glslang/src/Test/reflection.vert b/chromium/third_party/glslang/src/Test/reflection.vert
new file mode 100644
index 00000000000..a60d045046e
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/reflection.vert
@@ -0,0 +1,182 @@
+#version 440 core
+
+layout(std140, row_major) uniform nameless {
+ vec3 anonMember1;
+ mat3x2 m23;
+ int scalarAfterm23;
+ vec4 anonDeadMember2;
+ vec4 anonMember3;
+ int scalarBeforeArray;
+ float floatArray[5];
+ int scalarAfterArray;
+ mat2x2 m22[9];
+};
+
+layout(std140, column_major) uniform c_nameless {
+ vec3 c_anonMember1;
+ mat3x2 c_m23;
+ int c_scalarAfterm23;
+ vec4 c_anonDeadMember2;
+ vec4 c_anonMember3;
+};
+
+layout(std140) uniform named {
+ vec3 deadMember1;
+ int scalar;
+ vec4 member2;
+ vec4 member3;
+ vec2 memvec2;
+ float memf1;
+ bool memf2;
+ int memf3;
+ vec2 memvec2a;
+ mat2x2 m22[7];
+} ablock;
+
+layout(std140) uniform namelessdead {
+ int a;
+};
+
+layout(std140) uniform namedDead {
+ int b;
+} bblock;
+
+struct N1 {
+ float a;
+};
+
+struct N2 {
+ float b;
+ float c;
+ float d;
+};
+
+struct N3 {
+ N1 n1;
+ N2 n2;
+};
+
+layout(std140) uniform nested {
+ N3 foo;
+} nest;
+
+struct TS {
+ int a;
+ int dead;
+};
+
+uniform TS s;
+
+uniform float uf1;
+uniform float uf2;
+uniform float ufDead3;
+uniform float ufDead4;
+
+uniform writeonly uimage2D image_ui2D;
+uniform sampler2D sampler_2D;
+uniform sampler2DMSArray sampler_2DMSArray;
+
+uniform mat2 dm22[10];
+
+struct deep1 {
+ vec2 va[3];
+ bool b;
+};
+
+struct deep2 {
+ int i;
+ deep1 d1[4];
+};
+
+struct deep3 {
+ vec4 iv4;
+ deep2 d2;
+ ivec3 v3;
+};
+
+in float attributeFloat;
+layout(location = 2) in vec2 attributeFloat2;
+in vec3 attributeFloat3;
+in vec4 attributeFloat4;
+in mat4 attributeMat4;
+
+uniform deep3 deepA[2], deepB[2], deepC[3], deepD[2];
+
+const bool control = true;
+
+void deadFunction()
+{
+ vec3 v3 = ablock.deadMember1;
+ vec4 v = anonDeadMember2;
+ float f = ufDead4;
+}
+
+void liveFunction2()
+{
+ vec3 v = anonMember1;
+ float f = uf1;
+}
+
+void liveFunction1(writeonly uimage2D p_ui2D, sampler2D p_2D, sampler2DMSArray p_2DMSArray)
+
+{
+ liveFunction2();
+ float f = uf2;
+ vec4 v = ablock.member3;
+}
+
+uniform abl {
+ float foo;
+} arrBl[4];
+
+uniform abl2 {
+ float foo;
+} arrBl2[4];
+
+void main()
+{
+ liveFunction1(image_ui2D, sampler_2D, sampler_2DMSArray);
+ liveFunction2();
+
+ if (! control)
+ deadFunction();
+
+ float f;
+ int i;
+ if (control) {
+ liveFunction2();
+ f = anonMember3.z;
+ f = s.a;
+ f = ablock.scalar;
+ f = m23[1].y + scalarAfterm23;
+ f = c_m23[1].y + c_scalarAfterm23;
+ f += scalarBeforeArray;
+ f += floatArray[2];
+ f += floatArray[4];
+ f += scalarAfterArray;
+ f += ablock.memvec2.x;
+ f += ablock.memf1;
+ f += float(ablock.memf2);
+ f += ablock.memf3;
+ f += ablock.memvec2a.y;
+ f += ablock.m22[i][1][0];
+ f += dm22[3][0][1];
+ f += m22[2][1].y;
+ f += nest.foo.n1.a + nest.foo.n2.b + nest.foo.n2.c + nest.foo.n2.d;
+ f += deepA[i].d2.d1[2].va[1].x;
+ f += deepB[1].d2.d1[i].va[1].x;
+ f += deepB[i].d2.d1[i].va[1].x;
+ deep3 d = deepC[1];
+ deep3 da[2] = deepD;
+ } else
+ f = ufDead3;
+
+ f += arrBl[2].foo + arrBl[0].foo;
+ f += arrBl2[i].foo;
+
+ f += attributeFloat;
+ f += attributeFloat2.x;
+ f += attributeFloat3.x;
+ f += attributeFloat4.x;
+ f += attributeMat4[0][1];
+}
diff --git a/chromium/third_party/glslang/src/Test/runtests b/chromium/third_party/glslang/src/Test/runtests
new file mode 100755
index 00000000000..d54fb580e82
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/runtests
@@ -0,0 +1,130 @@
+#!/usr/bin/env bash
+
+TARGETDIR=localResults
+BASEDIR=baseResults
+EXE=../build/install/bin/glslangValidator
+HASERROR=0
+mkdir -p localResults
+
+#
+# configuration file tests
+#
+echo running configuration file test
+$EXE -c > $TARGETDIR/test.conf
+diff -b $BASEDIR/test.conf $TARGETDIR/test.conf || HASERROR=1
+$EXE -i -l $TARGETDIR/test.conf specExamples.vert > $TARGETDIR/specExamples.vert.out
+diff -b $BASEDIR/specExamples.vert.out $TARGETDIR || HASERROR=1
+$EXE -l 100Limits.vert 100.conf > $TARGETDIR/100LimitsConf.vert.out
+diff -b $BASEDIR/100LimitsConf.vert.out $TARGETDIR/100LimitsConf.vert.out || HASERROR=1
+
+#
+# isolated compilation tests
+#
+while read t; do
+ echo Running $t...
+ b=`basename $t`
+ $EXE -i -l $t > $TARGETDIR/$b.out
+ diff -b $BASEDIR/$b.out $TARGETDIR/$b.out || HASERROR=1
+done < testlist
+
+if [ -a localtestlist ]
+ then
+ while read t; do
+ echo Running $t...
+ b=`basename $t`
+ $EXE -i -l $t > $TARGETDIR/$b.out
+ diff -b $BASEDIR/$b.out $TARGETDIR/$b.out || HASERROR=1
+ done < localtestlist
+fi
+
+#
+# SPIR-V code generation tests
+#
+while read t; do
+ case $t in
+ \#*)
+ # Skip comment lines in the test list file.
+ ;;
+ *)
+ echo Running SPIR-V $t...
+ b=`basename $t`
+ $EXE -H $t > $TARGETDIR/$b.out
+ diff -b $BASEDIR/$b.out $TARGETDIR/$b.out || HASERROR=1
+ ;;
+ esac
+done < test-spirv-list
+rm -f comp.spv frag.spv geom.spv tesc.spv tese.spv vert.spv
+
+#
+# HLSL -> SPIR-V code generation tests
+#
+while read t; do
+ case $t in
+ \#*)
+ # Skip comment lines in the test list file.
+ ;;
+ *)
+ echo Running HLSL-to-SPIR-V $t...
+ b=`basename $t`
+ $EXE -D -e PixelShaderFunction -H -i $t > $TARGETDIR/$b.out
+ diff -b $BASEDIR/$b.out $TARGETDIR/$b.out || HASERROR=1
+ ;;
+ esac
+done < test-hlsl-spirv-list
+rm -f comp.spv frag.spv geom.spv tesc.spv tese.spv vert.spv
+
+#
+# Preprocessor tests
+#
+while read t; do
+ echo Running Preprocessor $t...
+ b=`basename $t`
+ $EXE -E $t > $TARGETDIR/$b.out 2> $TARGETDIR/$b.err
+ diff -b $BASEDIR/$b.out $TARGETDIR/$b.out || HASERROR=1
+ diff -b $BASEDIR/$b.err $TARGETDIR/$b.err || HASERROR=1
+done < test-preprocessor-list
+
+#
+# grouped shaders for bulk (faster) tests
+#
+function runBulkTest {
+ echo Running $*...
+ $EXE -i -l -t $* > $TARGETDIR/$1.out
+ diff -b $BASEDIR/$1.out $TARGETDIR/$1.out || HASERROR=1
+}
+
+runBulkTest mains1.frag mains2.frag noMain1.geom noMain2.geom
+runBulkTest noMain.vert mains.frag
+runBulkTest link1.frag link2.frag link3.frag
+runBulkTest es-link1.frag es-link2.frag
+runBulkTest recurse1.vert recurse1.frag recurse2.frag
+runBulkTest 300link.frag
+runBulkTest 300link2.frag
+runBulkTest 300link3.frag
+runBulkTest empty.frag empty2.frag empty3.frag
+runBulkTest 150.tesc 150.tese 400.tesc 400.tese 410.tesc 420.tesc 420.tese
+runBulkTest max_vertices_0.geom
+
+#
+# reflection tests
+#
+echo Running reflection...
+$EXE -l -q reflection.vert > $TARGETDIR/reflection.vert.out
+diff -b $BASEDIR/reflection.vert.out $TARGETDIR/reflection.vert.out || HASERROR=1
+
+#
+# multi-threaded test
+#
+echo Comparing single thread to multithread for all tests in current directory...
+$EXE -i *.vert *.geom *.frag *.tes* *.comp > singleThread.out
+$EXE -i *.vert *.geom *.frag *.tes* *.comp -t > multiThread.out
+diff singleThread.out multiThread.out || HASERROR=1
+
+if [ $HASERROR -eq 0 ]
+then
+ echo Tests Succeeded.
+else
+ echo Tests Failed.
+fi
+
+exit $HASERROR
diff --git a/chromium/third_party/glslang/src/Test/sample.frag b/chromium/third_party/glslang/src/Test/sample.frag
new file mode 100644
index 00000000000..014b54a4091
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/sample.frag
@@ -0,0 +1,41 @@
+//
+//Copyright (C) 2002-2004 3Dlabs Inc. Ltd.
+//All rights reserved.
+//
+//Redistribution and use in source and binary forms, with or without
+//modification, are permitted provided that the following conditions
+//are met:
+//
+// Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided
+// with the distribution.
+//
+// Neither the name of 3Dlabs Inc. Ltd. nor the names of its
+// contributors may be used to endorse or promote products derived
+// from this software without specific prior written permission.
+//
+//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+//"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+//FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+//COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+//INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+//BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+//LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+//CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+//LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+//POSSIBILITY OF SUCH DAMAGE.
+//
+#version 110
+
+varying vec3 color;
+
+void main()
+{
+ gl_FragColor = vec4(color, 1.0);
+}
diff --git a/chromium/third_party/glslang/src/Test/sample.frag.out b/chromium/third_party/glslang/src/Test/sample.frag.out
new file mode 100644
index 00000000000..8885dbac07c
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/sample.frag.out
@@ -0,0 +1,15 @@
+#### BEGIN COMPILER 0 INFO LOG ####
+0:? Sequence
+0:37 Function Definition: main( (void)
+0:37 Function Parameters:
+0:39 Sequence
+0:39 move second child to first child (4-component vector of float)
+0:39 'gl_FragColor' (FragColor 4-component vector of float)
+0:39 Construct vec4 (4-component vector of float)
+0:39 'color' (varying in 3-component vector of float)
+0:39 1.000000 (const float)
+
+#### END COMPILER 0 INFO LOG ####
+#### BEGIN LINKER INFO LOG ####
+
+#### END LINKER INFO LOG ####
diff --git a/chromium/third_party/glslang/src/Test/sample.vert b/chromium/third_party/glslang/src/Test/sample.vert
new file mode 100644
index 00000000000..675bfec117f
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/sample.vert
@@ -0,0 +1,43 @@
+//
+//Copyright (C) 2002-2004 3Dlabs Inc. Ltd.
+//All rights reserved.
+//
+//Redistribution and use in source and binary forms, with or without
+//modification, are permitted provided that the following conditions
+//are met:
+//
+// Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided
+// with the distribution.
+//
+// Neither the name of 3Dlabs Inc. Ltd. nor the names of its
+// contributors may be used to endorse or promote products derived
+// from this software without specific prior written permission.
+//
+//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+//"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+//FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+//COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+//INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+//BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+//LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+//CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+//LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+//POSSIBILITY OF SUCH DAMAGE.
+//
+#version 110
+
+varying vec3 color;
+
+void main()
+{
+ color = vec3(1.0, 1.0, 1.0);
+
+ gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
+}
diff --git a/chromium/third_party/glslang/src/Test/sample.vert.out b/chromium/third_party/glslang/src/Test/sample.vert.out
new file mode 100644
index 00000000000..aef6bb144bd
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/sample.vert.out
@@ -0,0 +1,20 @@
+#### BEGIN COMPILER 0 INFO LOG ####
+0:? Sequence
+0:37 Function Definition: main( (void)
+0:37 Function Parameters:
+0:39 Sequence
+0:39 move second child to first child (3-component vector of float)
+0:39 'color' (varying out 3-component vector of float)
+0:39 1.000000 (const float)
+0:39 1.000000 (const float)
+0:39 1.000000 (const float)
+0:41 move second child to first child (4-component vector of float)
+0:41 'gl_Position' (Position 4-component vector of float)
+0:41 matrix-times-vector (4-component vector of float)
+0:41 'gl_ModelViewProjectionMatrix' (uniform 4X4 matrix of float)
+0:41 'gl_Vertex' (attribute 4-component vector of float)
+
+#### END COMPILER 0 INFO LOG ####
+#### BEGIN LINKER INFO LOG ####
+
+#### END LINKER INFO LOG ####
diff --git a/chromium/third_party/glslang/src/Test/simpleFunctionCall.frag b/chromium/third_party/glslang/src/Test/simpleFunctionCall.frag
new file mode 100644
index 00000000000..1adddd562de
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/simpleFunctionCall.frag
@@ -0,0 +1,15 @@
+#version 150
+
+uniform vec4 bigColor;
+varying vec4 BaseColor;
+uniform float d;
+
+vec4 foo()
+{
+ return BaseColor;
+}
+
+void main()
+{
+ gl_FragColor = foo();
+}
diff --git a/chromium/third_party/glslang/src/Test/specExamples.frag b/chromium/third_party/glslang/src/Test/specExamples.frag
new file mode 100644
index 00000000000..177a0a799e5
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/specExamples.frag
@@ -0,0 +1,237 @@
+#version 430
+
+#extension GL_3DL_array_objects : enable
+
+int a = 0xffffffff; // 32 bits, a gets the value -1
+int b = 0xffffffffU; // ERROR: can't convert uint to int
+uint c = 0xffffffff; // 32 bits, c gets the value 0xFFFFFFFF
+uint d = 0xffffffffU; // 32 bits, d gets the value 0xFFFFFFFF
+int e = -1; // the literal is "1", then negation is performed,
+ // and the resulting non-literal 32-bit signed
+ // bit pattern of 0xFFFFFFFF is assigned, giving e
+ // the value of -1.
+uint f = -1u; // the literal is "1u", then negation is performed,
+ // and the resulting non-literal 32-bit unsigned
+ // bit pattern of 0xFFFFFFFF is assigned, giving f
+ // the value of 0xFFFFFFFF.
+int g = 3000000000; // a signed decimal literal taking 32 bits,
+ // setting the sign bit, g gets -1294967296
+int h = 0xA0000000; // okay, 32-bit signed hexadecimal
+int i = 5000000000; // ERROR: needs more than 32 bits
+int j = 0xFFFFFFFFF; // ERROR: needs more that 32 bits
+int k = 0x80000000; // k gets -2147483648 == 0x80000000
+int l = 2147483648; // l gets -2147483648 (the literal set the sign bit)
+
+float fa, fb = 1.5; // single-precision floating-point
+double fc, fd = 2.0LF; // double-precision floating-point
+
+vec2 texcoord1, texcoord2;
+vec3 position;
+vec4 myRGBA;
+ivec2 textureLookup;
+bvec3 less;
+
+mat2 mat2D;
+mat3 optMatrix;
+mat4 view, projection;
+mat4x4 view; // an alternate way of declaring a mat4
+mat3x2 m; // a matrix with 3 columns and 2 rows
+dmat4 highPrecisionMVP;
+dmat2x4 dm;
+
+struct light {
+ float intensity;
+ vec3 position;
+} lightVar;
+
+struct S { float f; };
+
+struct T {
+ //S; // Error: anonymous structures disallowed
+ //struct { ... }; // Error: embedded structures disallowed
+ S s; // Okay: nested structures with name are allowed
+};
+
+float frequencies[3];
+uniform vec4 lightPosition[4];
+light lights[];
+const int numLights = 2;
+light lights[numLights];
+
+in vec3 normal;
+centroid in vec2 TexCoord;
+invariant centroid in vec4 Color;
+noperspective in float temperature;
+flat in vec3 myColor;
+noperspective centroid in vec2 myTexCoord;
+
+uniform vec4 lightPosition;
+uniform vec3 color = vec3(0.7, 0.7, 0.2); // value assigned at link time
+
+in Material {
+ smooth in vec4 Color1; // legal, input inside in block
+ smooth vec4 Color2; // legal, 'in' inherited from 'in Material'
+ vec2 TexCoordA; // legal, TexCoord is an input
+ uniform float Atten; // illegal, mismatched storage qualifier
+
+};
+
+in Light {
+ vec4 LightPos;
+ vec3 LightColor;
+};
+in ColoredTexture {
+ vec4 Color;
+ vec2 TexCoord;
+} Materiala; // instance name
+vec3 Color; // different Color than Material.Color
+
+in vec4 gl_FragCoord; // redeclaration that changes nothing is allowed
+
+// All the following are allowed redeclaration that change behavior
+layout(origin_upper_left) in vec4 gl_FragCoord;
+layout(pixel_center_integer) in vec4 gl_FragCoord;
+layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord;
+
+layout(early_fragment_tests) in;
+
+// compute shader:
+layout (local_size_x = 32, local_size_y = 32) in;
+layout (local_size_x = 8) in;
+
+layout(location = 3) out vec4 color;
+layout(location = 3, index = 1) out vec4 factor;
+layout(location = 2) out vec4 colors[3];
+
+layout (depth_greater) out float gl_FragDepth;
+
+// redeclaration that changes nothing is allowed
+out float gl_FragDepth;
+
+// assume it may be modified in any way
+layout (depth_any) out float gl_FragDepth;
+
+// assume it may be modified such that its value will only increase
+layout (depth_greater) out float gl_FragDepth;
+
+// assume it may be modified such that its value will only decrease
+layout (depth_less) out float gl_FragDepth;
+
+// assume it will not be modified
+layout (depth_unchanged) out float gl_FragDepth;
+
+in vec4 gl_Color; // predeclared by the fragment language
+flat in vec4 gl_Color; // redeclared by user to be flat
+
+
+float[5] foo(float[5])
+{
+ return float[5](3.4, 4.2, 5.0, 5.2, 1.1);
+}
+
+precision highp float;
+precision highp int;
+precision mediump int;
+precision highp float;
+
+void main()
+{
+ {
+ float a[5] = float[5](3.4, 4.2, 5.0, 5.2, 1.1);
+ }
+ {
+ float a[5] = float[](3.4, 4.2, 5.0, 5.2, 1.1); // same thing
+ }
+ {
+ vec4 a[3][2]; // size-3 array of size-2 array of vec4
+ vec4[2] a1[3]; // size-3 array of size-2 array of vec4
+ vec4[3][2] a2; // size-3 array of size-2 array of vec4
+ vec4 b[2] = vec4[2](vec4(0.0), vec4(0.1));
+ vec4[3][2] a3 = vec4[3][2](b, b, b); // constructor
+ void foo(vec4[3][2]); // prototype with unnamed parameter
+ vec4 a4[3][2] = {vec4[2](vec4(0.0), vec4(1.0)),
+ vec4[2](vec4(0.0), vec4(1.0)),
+ vec4[2](vec4(0.0), vec4(1.0)) };
+ }
+ {
+ float a[5];
+ {
+ float b[] = a; // b is explicitly size 5
+ }
+ {
+ float b[5] = a; // means the same thing
+ }
+ {
+ float b[] = float[](1,2,3,4,5); // also explicitly sizes to 5
+ }
+ a.length(); // returns 5
+ }
+ {
+ vec4 a[3][2];
+ a.length(); // this is 3
+ a[x].length(); // this is 2
+ }
+ // for an array b containing a member array a:
+ b[++x].a.length(); // b is never dereferenced, but “++x” is evaluated
+
+ // for an array s of a shader storage object containing a member array a:
+ s[x].a.length(); // s is dereferenced; x needs to be a valid index
+ //
+ //All of the following declarations result in a compile-time error.
+ //float a[2] = { 3.4, 4.2, 5.0 }; // illegal
+ //vec2 b = { 1.0, 2.0, 3.0 }; // illegal
+ //mat3x3 c = { vec3(0.0), vec3(1.0), vec3(2.0), vec3(3.0) }; // illegal
+ //mat2x2 d = { 1.0, 0.0, 0.0, 1.0 }; // illegal, can't flatten nesting
+ //struct {
+ // float a;
+ // int b;
+ //} e = { 1.2, 2, 3 }; // illegal
+
+ struct {
+ float a;
+ int b;
+ } e = { 1.2, 2 }; // legal, all types match
+
+ struct {
+ float a;
+ int b;
+ } e = { 1, 3 }; // legal, first initializer is converted
+
+ //All of the following declarations result in a compile-time error.
+ //int a = true; // illegal
+ //vec4 b[2] = { vec4(0.0), 1.0 }; // illegal
+ //mat4x2 c = { vec3(0.0), vec3(1.0) }; // illegal
+
+ //struct S1 {
+ // vec4 a;
+ // vec4 b;
+ //};
+
+ //struct {
+ // float s;
+ // float t;
+ //} d[] = { S1(vec4(0.0), vec4(1.1)) }; // illegal
+
+ {
+ float a[] = float[](3.4, 4.2, 5.0, 5.2, 1.1);
+ float b[] = { 3.4, 4.2, 5.0, 5.2, 1.1 };
+ float c[] = a; // c is explicitly size 5
+ float d[5] = b; // means the same thing
+ }
+ {
+ const vec3 zAxis = vec3 (0.0, 0.0, 1.0);
+ const float ceiling = a + b; // a and b not necessarily constants
+ }
+ {
+ in vec4 position;
+ in vec3 normal;
+ in vec2 texCoord[4];
+ }
+ {
+ lowp float color;
+ out mediump vec2 P;
+ lowp ivec2 foo(lowp mat3);
+ highp mat4 m;
+ }
+
+}
diff --git a/chromium/third_party/glslang/src/Test/specExamples.vert b/chromium/third_party/glslang/src/Test/specExamples.vert
new file mode 100644
index 00000000000..30f61042d9d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/specExamples.vert
@@ -0,0 +1,196 @@
+#version 430
+
+#extension GL_3DL_array_objects : enable
+
+out Vertex {
+ vec4 Position; // API transform/feedback will use “Vertex.Position”
+ vec2 Texture;
+} Coords; // shader will use “Coords.Position”
+
+out Vertex2 {
+ vec4 Color; // API will use “Color”
+};
+
+uniform Transform { // API uses “Transform[2]” to refer to instance 2
+ mat4 ModelViewMatrix;
+ mat4 ModelViewProjectionMatrix;
+ vec4 a[]; // array will get implicitly sized
+ float Deformation;
+} transforms[4];
+
+layout(location = 3) in vec4 normal;
+layout(location = 6) in vec4 colors[3];
+layout(location = 9) in mat4 transforms2[2];
+
+layout(location = 3) struct S {
+ vec3 a1;
+ mat2 b;
+ vec4 c[2];
+} s;
+
+layout(triangles, invocations = 6) in;
+
+layout(lines) in; // legal for Color2, input size is 2, matching Color2
+
+layout(triangle_strip, max_vertices = 60) out; // order does not matter
+layout(max_vertices = 60) out; // redeclaration okay
+layout(triangle_strip) out; // redeclaration okay
+//layout(points) out; // error, contradicts triangle_strip
+//layout(max_vertices = 30) out; // error, contradicts 60
+
+layout(stream = 1) out;
+
+layout(stream=1) out; // default is now stream 1
+out vec4 var1; // var1 gets default stream (1)
+layout(stream=2) out Block1 { // "Block1" belongs to stream 2
+ layout(stream=2) vec4 var2; // redundant block member stream decl
+ layout(stream=3) vec2 var3; // ILLEGAL (must match block stream)
+ vec3 var4; // belongs to stream 2
+};
+layout(stream=0) out; // default is now stream 0
+out vec4 var5; // var5 gets default stream (0)
+out Block2 { // "Block2" gets default stream (0)
+ vec4 var6;
+};
+layout(stream=3) out vec4 var7; // var7 belongs to stream 3
+
+layout(shared, column_major) uniform;
+layout(shared, column_major) buffer;
+
+layout(row_major, column_major)
+
+layout(shared, row_major) uniform; // default is now shared and row_major
+
+layout(std140) uniform Transform2 { // layout of this block is std140
+ mat4 M1; // row_major
+ layout(column_major) mat4 M2; // column major
+ mat3 N1; // row_major
+};
+
+layout(column_major) uniform T3 { // shared and column_major
+ mat4 M13; // column_major
+ layout(row_major) mat4 m14; // row major
+ mat3 N12; // column_major
+};
+
+// in one compilation unit...
+layout(binding=3) uniform sampler2D s17; // s bound to unit 3
+
+// in another compilation unit...
+uniform sampler2D s17; // okay, s still bound at 3
+
+// in another compilation unit...
+//layout(binding=4) uniform sampler2D s; // ERROR: contradictory bindings
+
+layout (binding = 2, offset = 4) uniform atomic_uint a2;
+
+layout (binding = 2) uniform atomic_uint bar;
+
+layout (binding = 2, offset = 4) uniform atomic_uint;
+
+layout (binding = 2) uniform atomic_uint bar; // offset is 4
+layout (offset = 8) uniform atomic_uint bar23; // error, no default binding
+
+layout (binding=3, offset=4) uniform atomic_uint a2; // offset = 4
+layout (binding=2) uniform atomic_uint b2; // offset = 0
+layout (binding=3) uniform atomic_uint c2; // offset = 8
+layout (binding=2) uniform atomic_uint d2; // offset = 4
+
+//layout (offset=4) // error, must include binding
+//layout (binding=1, offset=0) a; // okay
+//layout (binding=2, offset=0) b; // okay
+//layout (binding=1, offset=0) c; // error, offsets must not be shared
+// // between a and c
+//layout (binding=1, offset=2) d; // error, overlaps offset 0 of a
+
+flat in vec4 gl_FrontColor; // input to geometry shader, no “gl_in[]”
+flat out vec4 gl_FrontColor; // output from geometry shader
+
+invariant gl_Position; // make existing gl_Position be invariant
+
+out vec3 ColorInv;
+invariant ColorIvn; // make existing Color be invariant
+
+invariant centroid out vec3 Color4;
+precise out vec4 position;
+
+out vec3 Color5;
+precise Color5; // make existing Color be precise
+in vec4 a, b, c, d;
+precise out vec4 v;
+
+coherent buffer Block {
+ readonly vec4 member1;
+ vec4 member2;
+};
+
+buffer Block2a {
+ coherent readonly vec4 member1A;
+ coherent vec4 member2A;
+};
+
+shared vec4 shv;
+
+vec4 funcA(restrict image2D a) { }
+
+vec4 funcB(image2D a) { }
+layout(rgba32f) uniform image2D img1;
+layout(rgba32f) coherent uniform image2D img2;
+
+float func(float e, float f, float g, float h)
+{
+ return (e*f) + (g*h); // no constraint on order or
+ // operator consistency
+}
+
+float func2(float e, float f, float g, float h)
+{
+ precise float result = (e*f) + (g*h); // ensures same precision for
+ // the two multiplies
+ return result;
+}
+
+float func3(float i, float j, precise out float k)
+{
+ k = i * i + j; // precise, due to <k> declaration
+}
+
+void main()
+{
+ vec3 r = vec3(a * b); // precise, used to compute v.xyz
+ vec3 s = vec3(c * d); // precise, used to compute v.xyz
+ v.xyz = r + s; // precise
+ v.w = (a.w * b.w) + (c.w * d.w); // precise
+ v.x = func(a.x, b.x, c.x, d.x); // values computed in func()
+ // are NOT precise
+ v.x = func2(a.x, b.x, c.x, d.x); // precise!
+ func3(a.x * b.x, c.x * d.x, v.x); // precise!
+
+ funcA(img1); // OK, adding "restrict" is allowed
+ funcB(img2); // illegal, stripping "coherent" is not
+
+ {
+ struct light {
+ float intensity;
+ vec3 position;
+ };
+
+ light lightVar = light(3.0, vec3(1.0, 2.0, 3.0));
+ }
+ {
+ const float c[3] = float[3](5.0, 7.2, 1.1);
+ const float d[3] = float[](5.0, 7.2, 1.1);
+
+ float g;
+ float a[5] = float[5](g, 1, g, 2.3, g);
+ float b[3];
+
+ b = float[3](g, g + 1.0, g + 2.0);
+ }
+ {
+ vec4 b[2] = { vec4(1.0), vec4(1.0) };
+ vec4[3][2](b, b, b); // constructor
+ vec4[][2](b, b, b); // constructor, valid, size deduced
+ vec4[3][](b, b, b); // compile-time error, invalid type constructed
+ }
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.100ops.frag b/chromium/third_party/glslang/src/Test/spv.100ops.frag
new file mode 100644
index 00000000000..1265786661d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.100ops.frag
@@ -0,0 +1,27 @@
+#version 310 es
+
+lowp float foo();
+
+in lowp float low, high;
+
+lowp float face1 = 11.0;
+
+out lowp vec4 Color;
+
+void main()
+{
+ int z = 3;
+
+ if (2.0 * low + 1.0 < high)
+ ++z;
+
+ Color = face1 * vec4(z) + foo();
+}
+
+lowp float face2 = -2.0;
+
+lowp float foo()
+{
+ // testing if face2 initializer insert logic is correct in main
+ return face2;
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.130.frag b/chromium/third_party/glslang/src/Test/spv.130.frag
new file mode 100644
index 00000000000..55a165912df
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.130.frag
@@ -0,0 +1,93 @@
+#version 140
+#extension GL_ARB_texture_gather : enable
+
+vec3 a;
+float b;
+
+in vec4 i;
+out vec4 o;
+out ivec3 io;
+out uvec4 uo;
+
+flat in float fflat;
+smooth in float fsmooth;
+noperspective in float fnop;
+
+uniform samplerCube sampC;
+
+#extension GL_ARB_texture_rectangle : enable
+
+uniform sampler2D samp2D;
+uniform sampler2DShadow samp2DS;
+uniform sampler2DRect samp2DR;
+uniform sampler2DArray samp2DA;
+
+void bar3()
+{
+ o += textureGatherOffset(samp2D, vec2(0.3), ivec2(1));
+ o += textureGatherOffset(samp2DA, vec3(0.3), ivec2(1));
+}
+
+#extension GL_ARB_gpu_shader5 : enable
+
+void bar4()
+{
+ o += textureGatherOffset(samp2DR, vec2(0.3), ivec2(1));
+ o += textureGatherOffset(samp2DS, vec2(0.3), 1.3, ivec2(1));
+ o += textureGatherOffset(samp2D, vec2(0.3), ivec2(1), 2);
+}
+
+#extension GL_ARB_texture_cube_map_array : enable
+
+uniform samplerCubeArray Sca;
+uniform isamplerCubeArray Isca;
+uniform usamplerCubeArray Usca;
+uniform samplerCubeArrayShadow Scas;
+
+void bar5()
+{
+ io = textureSize(Sca, 3);
+ o += texture(Sca, i);
+ io += texture(Isca, i, 0.7).xyz;
+ uo = texture(Usca, i);
+
+ o += textureLod(Sca, i, 1.7);
+ a = textureSize(Scas, 3);
+ float f = texture(Scas, i, i.y);
+ ivec4 c = textureGrad(Isca, i, vec3(0.1), vec3(0.2));
+ o += vec4(a, f + c);
+}
+
+#extension GL_ARB_shading_language_420pack : enable
+
+const int ai[3] = { 10, 23, 32 };
+uniform layout(binding=0) sampler2D bounds;
+
+void bar6()
+{
+ mat4x3 m43;
+ float a1 = m43[3].y;
+ //int a2 = m43.length(); // ERROR until shading_language_420pack is fully implemented
+ const float b = 2 * a1;
+ //a.x = gl_MinProgramTexelOffset + gl_MaxProgramTexelOffset; // ERROR until shading_language_420pack is fully implemented
+}
+
+
+#extension GL_ARB_texture_rectangle : enable
+#extension GL_ARB_shader_texture_lod : require
+
+uniform sampler2D s2D;
+uniform sampler2DRect s2DR;
+uniform sampler2DRectShadow s2DRS;
+uniform sampler1D s1D;
+uniform sampler2DShadow s2DS;
+
+void main()
+{
+ o = textureGather(sampC, vec3(0.2));
+ o.y = gl_ClipDistance[3];
+ bar3();
+ bar4();
+ bar5();
+ bar6();
+} \ No newline at end of file
diff --git a/chromium/third_party/glslang/src/Test/spv.140.frag b/chromium/third_party/glslang/src/Test/spv.140.frag
new file mode 100644
index 00000000000..c7e00573227
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.140.frag
@@ -0,0 +1,46 @@
+#version 140
+
+in vec4 k;
+out vec4 o;
+
+in float gl_ClipDistance[5];
+
+layout(row_major) uniform;
+
+uniform sampler2D samp2Da[3];
+
+layout(std140) uniform bn {
+ layout(row_major) mat4 matra[4];
+ layout(column_major) mat4 matca[4];
+ layout(row_major) mat4 matr;
+ layout(column_major) mat4 matc;
+ mat4 matrdef;
+};
+
+uniform sampler2DRect sampR;
+uniform isamplerBuffer sampB;
+
+float foo();
+
+void main()
+{
+ o.y = gl_ClipDistance[2];
+ o.z = gl_ClipDistance[int(k)];
+ o.w = float(textureSize(sampR) + textureSize(sampB)) / 100.0;
+ o.z = foo();
+}
+
+// Test extra-function initializers
+
+float i1 = gl_FrontFacing ? -2.0 : 2.0;
+float i2 = 102;
+
+float foo()
+{
+ return i1 + i2;
+}
+
+// test arrayed block
+layout(std140) uniform bi {
+ vec3 v[2];
+} bname[4];
diff --git a/chromium/third_party/glslang/src/Test/spv.150.geom b/chromium/third_party/glslang/src/Test/spv.150.geom
new file mode 100644
index 00000000000..0c0dfba63cb
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.150.geom
@@ -0,0 +1,39 @@
+#version 150 core
+
+layout(triangles_adjacency) in;
+layout(max_vertices = 30) out;
+layout(stream = 3, triangle_strip) out;
+
+in fromVertex {
+ in vec3 color;
+} fromV[];
+
+out toFragment {
+ out vec3 color;
+} toF;
+
+out fromVertex {
+ vec3 color;
+};
+
+void main()
+{
+ color = fromV[0].color;
+ //?? gl_ClipDistance[3] = gl_in[1].gl_ClipDistance[2];
+ gl_Position = gl_in[0].gl_Position;
+ gl_PointSize = gl_in[3].gl_PointSize;
+ gl_PrimitiveID = gl_PrimitiveIDIn;
+ gl_Layer = 2;
+
+ EmitVertex();
+
+ color = 2 * fromV[0].color;
+ gl_Position = 2.0 * gl_in[0].gl_Position;
+ gl_PointSize = 2.0 * gl_in[3].gl_PointSize;
+ gl_PrimitiveID = gl_PrimitiveIDIn + 1;
+ gl_Layer = 3;
+
+ EmitVertex();
+
+ EndPrimitive();
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.150.vert b/chromium/third_party/glslang/src/Test/spv.150.vert
new file mode 100644
index 00000000000..c5b6fd24658
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.150.vert
@@ -0,0 +1,38 @@
+#version 150 core
+
+in vec4 iv4;
+
+in float ps;
+in int ui;
+uniform sampler2D s2D;
+
+invariant gl_Position;
+
+struct s1 {
+ int a;
+ int a2;
+ vec4 b[3];
+};
+
+struct s2 {
+ int c;
+ s1 d[4];
+};
+
+out s2 s2out;
+
+void main()
+{
+ gl_Position = iv4;
+ gl_PointSize = ps;
+ gl_ClipDistance[2] = iv4.x;
+ int i;
+ s2out.d[i].b[2].w = ps;
+
+ // test non-implicit lod
+ texture(s2D, vec2(0.5));
+ textureProj(s2D, vec3(0.5));
+ textureLod(s2D, vec2(0.5), 3.2);
+}
+
+out float gl_ClipDistance[4];
diff --git a/chromium/third_party/glslang/src/Test/spv.300BuiltIns.vert b/chromium/third_party/glslang/src/Test/spv.300BuiltIns.vert
new file mode 100644
index 00000000000..847448fb66a
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.300BuiltIns.vert
@@ -0,0 +1,14 @@
+#version 310 es
+
+in mediump float ps;
+
+invariant gl_Position;
+
+void main()
+{
+ gl_Position = vec4(ps);
+ gl_Position *= float(4 - gl_VertexIndex);
+
+ gl_PointSize = ps;
+ gl_PointSize *= float(5 - gl_InstanceIndex);
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.300layout.frag b/chromium/third_party/glslang/src/Test/spv.300layout.frag
new file mode 100644
index 00000000000..69687f6db3a
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.300layout.frag
@@ -0,0 +1,22 @@
+#version 310 es
+
+precision mediump float;
+
+in vec4 pos;
+in vec3 color;
+
+layout(location = 7) out vec3 c;
+layout(LocatioN = 3) out vec4 p[2];
+
+struct S {
+ vec3 c;
+ float f;
+};
+
+in S s;
+
+void main()
+{
+ c = color + s.c;
+ p[1] = pos * s.f;
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.300layout.vert b/chromium/third_party/glslang/src/Test/spv.300layout.vert
new file mode 100644
index 00000000000..df154eb8a7a
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.300layout.vert
@@ -0,0 +1,49 @@
+#version 310 es
+
+layout(location = 7) in vec3 c;
+layout(LocatioN = 3) in vec4 p;
+layout(location = 9) in ivec2 aiv2;
+out vec4 pos;
+out vec3 color;
+flat out int iout;
+
+layout(row_major) uniform; // default is now row_major
+
+layout(std140) uniform Transform { // layout of this block is std140
+ mat4 M1; // row_major
+ layout(column_major) mat4 M2; // column major
+ mat3 N1; // row_major
+ int iuin;
+} tblock;
+
+uniform T2 { // layout of this block is shared
+ bool b;
+ mat4 t2m;
+};
+
+layout(column_major) uniform T3 { // shared and column_major
+ mat4 M3; // column_major
+ layout(row_major) mat4 M4; // row major
+ mat2x3 N2; // column_major
+ uvec3 uv3a[4];
+};
+
+in uint uiuin;
+
+struct S {
+ vec3 c;
+ float f;
+};
+
+out S s;
+
+void main()
+{
+ pos = p * (tblock.M1 + tblock.M2 + M4 + M3 + t2m);
+ color = c * tblock.N1;
+ iout = tblock.iuin + int(uiuin) + aiv2.y;
+ s.c = c;
+ s.f = p.x;
+ if (N2[1] != vec3(1.0) || uv3a[2] != uvec3(5))
+ ++s.c;
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.300layoutp.vert b/chromium/third_party/glslang/src/Test/spv.300layoutp.vert
new file mode 100644
index 00000000000..3b2e6b96d50
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.300layoutp.vert
@@ -0,0 +1,49 @@
+#version 310 es
+
+layout(location = 7) in vec3 c;
+layout(LocatioN = 3) in vec4 p;
+layout(location = 9) in ivec2 aiv2;
+out vec4 pos;
+out vec3 color;
+flat out int iout;
+
+layout(row_major) uniform; // default is now row_major
+
+layout(std140) uniform Transform { // layout of this block is std140
+ mat4 M1; // row_major
+ layout(column_major) mat4 M2; // column major
+ mat3 N1; // row_major
+ int iuin;
+} tblock;
+
+uniform T2 { // layout of this block is shared
+ bool b;
+ mat4 t2m;
+};
+
+layout(column_major) uniform T3 { // shared and column_major
+ mat4 M3; // column_major
+ layout(row_major) mat4 M4; // row major
+ mat2x3 N2; // column_major
+ uvec3 uv3a[4];
+};
+
+uint uiuin;
+
+struct S {
+ vec3 c;
+ float f;
+};
+
+out S s;
+
+void main()
+{
+ pos = p * (tblock.M1 * tblock.M2 * M4 * M3 * t2m);
+ color = c * tblock.N1;
+ iout = tblock.iuin + int(uiuin) + aiv2.y;
+ s.c = c;
+ s.f = p.x;
+ if (N2[1] != vec3(1.0) || uv3a[2] != uvec3(5))
+ ++s.c;
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.310.comp b/chromium/third_party/glslang/src/Test/spv.310.comp
new file mode 100644
index 00000000000..bd183e042be
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.310.comp
@@ -0,0 +1,37 @@
+#version 310 es
+
+precision highp float;
+
+layout (local_size_x = 16, local_size_y = 32, local_size_z = 4) in;
+
+shared float s;
+shared int i;
+
+buffer outb {
+ float f;
+ float g;
+ float h;
+ vec3 uns[];
+} outbname;
+
+buffer outbna {
+ int k;
+ vec4 na;
+} outbnamena;
+
+buffer outs {
+ int s;
+ vec4 va[];
+} outnames;
+
+void main()
+{
+ barrier();
+ outbname.f = s;
+ outbnamena.na = vec4(s);
+ s = outbname.uns[18].x;
+ outbname.uns[17] = vec3(3.0);
+ outbname.uns[i] = vec3(s);
+ outnames.va[gl_LocalInvocationID.x] = vec4(s);
+ outnames.s = outbname.uns.length();
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.330.geom b/chromium/third_party/glslang/src/Test/spv.330.geom
new file mode 100644
index 00000000000..b7962657b84
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.330.geom
@@ -0,0 +1,26 @@
+#version 330 core
+#extension GL_ARB_separate_shader_objects : enable
+
+in gl_PerVertex
+{
+ float gl_ClipDistance[1];
+ vec4 gl_Position;
+} gl_in[];
+
+out gl_PerVertex
+{
+ vec4 gl_Position;
+ float gl_ClipDistance[1];
+};
+
+layout( triangles ) in;
+layout( triangle_strip, max_vertices = 3 ) out;
+
+void main()
+{
+ vec4 v;
+ gl_Position = gl_in[1].gl_Position;
+ gl_ClipDistance[0] = gl_in[1].gl_ClipDistance[0];
+ EmitVertex();
+ EndPrimitive();
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.400.frag b/chromium/third_party/glslang/src/Test/spv.400.frag
new file mode 100644
index 00000000000..58036b1e05a
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.400.frag
@@ -0,0 +1,263 @@
+#version 400 core
+
+in vec2 c2D;
+flat in int i;
+flat in uint u;
+out uint uo;
+out vec4 outp;
+out ivec4 ioutp;
+out uvec4 uoutp;
+uniform sampler2D arrayedSampler[5];
+uniform usampler2DRect samp2dr;
+uniform isampler2DArray isamp2DA;
+uniform sampler2DRectShadow u2drs;
+
+#extension GL_ARB_separate_shader_objects : enable
+
+layout(location = 6) in vec4 vl2;
+
+void foo23()
+{
+ const ivec2[3] offsets = ivec2[3](ivec2(1,2), ivec2(3,4), ivec2(15,16));
+
+ outp.x += textureProjGradOffset(u2drs, outp, vec2(0.0), vec2(0.0), offsets[1]);
+}
+
+void doubles()
+{
+ double doublev;
+ dvec2 dvec2v;
+ dvec3 dvec3v;
+ dvec4 dvec4v;
+
+ bool boolv;
+ bvec2 bvec2v;
+ bvec3 bvec3v;
+ bvec4 bvec4v;
+
+ doublev = sqrt(2.9);
+ dvec2v = sqrt(dvec2(2.7));
+ dvec3v = sqrt(dvec3(2.0));
+ dvec4v = sqrt(dvec4(doublev));
+
+ doublev += inversesqrt(doublev);
+ dvec2v += inversesqrt(dvec2v);
+ dvec3v += inversesqrt(dvec3v);
+ dvec4v += inversesqrt(dvec4v);
+
+ doublev += abs(doublev);
+ dvec2v += abs(dvec2v);
+ dvec3v += abs(dvec3v);
+ dvec4v += abs(dvec4v);
+
+ doublev += sign(doublev);
+ dvec2v += sign(dvec2v);
+ dvec3v += sign(dvec3v);
+ dvec4v += sign(dvec4v);
+
+ doublev += floor(doublev);
+ dvec2v += floor(dvec2v);
+ dvec3v += floor(dvec3v);
+ dvec4v += floor(dvec4v);
+
+ doublev += trunc(doublev);
+ dvec2v += trunc(dvec2v);
+ dvec3v += trunc(dvec3v);
+ dvec4v += trunc(dvec4v);
+
+ doublev += round(doublev);
+ dvec2v += round(dvec2v);
+ dvec3v += round(dvec3v);
+ dvec4v += round(dvec4v);
+
+ doublev += roundEven(doublev);
+ dvec2v += roundEven(dvec2v);
+ dvec3v += roundEven(dvec3v);
+ dvec4v += roundEven(dvec4v);
+
+ doublev += ceil(doublev);
+ dvec2v += ceil(dvec2v);
+ dvec3v += ceil(dvec3v);
+ dvec4v += ceil(dvec4v);
+
+ doublev += fract(doublev);
+ dvec2v += fract(dvec2v);
+ dvec3v += fract(dvec3v);
+ dvec4v += fract(dvec4v);
+
+ doublev += mod(doublev, doublev);
+ dvec2v += mod(dvec2v, doublev);
+ dvec3v += mod(dvec3v, doublev);
+ dvec4v += mod(dvec4v, doublev);
+ dvec2v += mod(dvec2v, dvec2v);
+ dvec3v += mod(dvec3v, dvec3v);
+ dvec4v += mod(dvec4v, dvec4v);
+
+ doublev += modf(doublev, doublev);
+ dvec2v += modf(dvec2v, dvec2v);
+ dvec3v += modf(dvec3v, dvec3v);
+ dvec4v += modf(dvec4v, dvec4v);
+
+ doublev += min(doublev, doublev);
+ dvec2v += min(dvec2v, doublev);
+ dvec3v += min(dvec3v, doublev);
+ dvec4v += min(dvec4v, doublev);
+ dvec2v += min(dvec2v, dvec2v);
+ dvec3v += min(dvec3v, dvec3v);
+ dvec4v += min(dvec4v, dvec4v);
+
+ doublev += max(doublev, doublev);
+ dvec2v += max(dvec2v, doublev);
+ dvec3v += max(dvec3v, doublev);
+ dvec4v += max(dvec4v, doublev);
+ dvec2v += max(dvec2v, dvec2v);
+ dvec3v += max(dvec3v, dvec3v);
+ dvec4v += max(dvec4v, dvec4v);
+
+ doublev += clamp(doublev, doublev, doublev);
+ dvec2v += clamp(dvec2v, doublev, doublev);
+ dvec3v += clamp(dvec3v, doublev, doublev);
+ dvec4v += clamp(dvec4v, doublev, doublev);
+ dvec2v += clamp(dvec2v, dvec2v, dvec2v);
+ dvec3v += clamp(dvec3v, dvec3v, dvec3v);
+ dvec4v += clamp(dvec4v, dvec4v, dvec4v);
+
+ doublev += mix(doublev, doublev, doublev);
+ dvec2v += mix(dvec2v, dvec2v, doublev);
+ dvec3v += mix(dvec3v, dvec3v, doublev);
+ dvec4v += mix(dvec4v, dvec4v, doublev);
+ dvec2v += mix(dvec2v, dvec2v, dvec2v);
+ dvec3v += mix(dvec3v, dvec3v, dvec3v);
+ dvec4v += mix(dvec4v, dvec4v, dvec4v);
+ doublev += mix(doublev, doublev, boolv);
+ dvec2v += mix(dvec2v, dvec2v, bvec2v);
+ dvec3v += mix(dvec3v, dvec3v, bvec3v);
+ dvec4v += mix(dvec4v, dvec4v, bvec4v);
+
+ doublev += step(doublev, doublev);
+ dvec2v += step(dvec2v, dvec2v);
+ dvec3v += step(dvec3v, dvec3v);
+ dvec4v += step(dvec4v, dvec4v);
+ dvec2v += step(doublev, dvec2v);
+ dvec3v += step(doublev, dvec3v);
+ dvec4v += step(doublev, dvec4v);
+
+ doublev += smoothstep(doublev, doublev, doublev);
+ dvec2v += smoothstep(dvec2v, dvec2v, dvec2v);
+ dvec3v += smoothstep(dvec3v, dvec3v, dvec3v);
+ dvec4v += smoothstep(dvec4v, dvec4v, dvec4v);
+ dvec2v += smoothstep(doublev, doublev, dvec2v);
+ dvec3v += smoothstep(doublev, doublev, dvec3v);
+ dvec4v += smoothstep(doublev, doublev, dvec4v);
+
+ boolv = isnan(doublev);
+ bvec2v = isnan(dvec2v);
+ bvec3v = isnan(dvec3v);
+ bvec4v = isnan(dvec4v);
+
+ boolv = boolv ? isinf(doublev) : false;
+ bvec2v = boolv ? isinf(dvec2v) : bvec2(false);
+ bvec3v = boolv ? isinf(dvec3v) : bvec3(false);
+ bvec4v = boolv ? isinf(dvec4v) : bvec4(false);
+
+ doublev += length(doublev);
+ doublev += length(dvec2v);
+ doublev += length(dvec3v);
+ doublev += length(dvec4v);
+
+ doublev += distance(doublev, doublev);
+ doublev += distance(dvec2v, dvec2v);
+ doublev += distance(dvec3v, dvec3v);
+ doublev += distance(dvec4v, dvec4v);
+
+ doublev += dot(doublev, doublev);
+ doublev += dot(dvec2v, dvec2v);
+ doublev += dot(dvec3v, dvec3v);
+ doublev += dot(dvec4v, dvec4v);
+
+ dvec3v += cross(dvec3v, dvec3v);
+
+ doublev += normalize(doublev);
+ dvec2v += normalize(dvec2v);
+ dvec3v += normalize(dvec3v);
+ dvec4v += normalize(dvec4v);
+
+ doublev += faceforward(doublev, doublev, doublev);
+ dvec2v += faceforward(dvec2v, dvec2v, dvec2v);
+ dvec3v += faceforward(dvec3v, dvec3v, dvec3v);
+ dvec4v += faceforward(dvec4v, dvec4v, dvec4v);
+
+ doublev += reflect(doublev, doublev);
+ dvec2v += reflect(dvec2v, dvec2v);
+ dvec3v += reflect(dvec3v, dvec3v);
+ dvec4v += reflect(dvec4v, dvec4v);
+
+ doublev += refract(doublev, doublev, doublev);
+ dvec2v += refract(dvec2v, dvec2v, doublev);
+ dvec3v += refract(dvec3v, dvec3v, doublev);
+ dvec4v += refract(dvec4v, dvec4v, doublev);
+
+ dmat2 dmat2v = outerProduct(dvec2v, dvec2v);
+ dmat3 dmat3v = outerProduct(dvec3v, dvec3v);
+ dmat4 dmat4v = outerProduct(dvec4v, dvec4v);
+ dmat2x3 dmat2x3v = outerProduct(dvec3v, dvec2v);
+ dmat3x2 dmat3x2v = outerProduct(dvec2v, dvec3v);
+ dmat2x4 dmat2x4v = outerProduct(dvec4v, dvec2v);
+ dmat4x2 dmat4x2v = outerProduct(dvec2v, dvec4v);
+ dmat3x4 dmat3x4v = outerProduct(dvec4v, dvec3v);
+ dmat4x3 dmat4x3v = outerProduct(dvec3v, dvec4v);
+
+ dmat2v *= matrixCompMult(dmat2v, dmat2v);
+ dmat3v *= matrixCompMult(dmat3v, dmat3v);
+ dmat4v *= matrixCompMult(dmat4v, dmat4v);
+ dmat2x3v = matrixCompMult(dmat2x3v, dmat2x3v); // For now, relying on no dead-code elimination
+ dmat2x4v = matrixCompMult(dmat2x4v, dmat2x4v);
+ dmat3x2v = matrixCompMult(dmat3x2v, dmat3x2v);
+ dmat3x4v = matrixCompMult(dmat3x4v, dmat3x4v);
+ dmat4x2v = matrixCompMult(dmat4x2v, dmat4x2v);
+ dmat4x3v = matrixCompMult(dmat4x3v, dmat4x3v);
+
+ dmat2v *= transpose(dmat2v);
+ dmat3v *= transpose(dmat3v);
+ dmat4v *= transpose(dmat4v);
+ dmat2x3v = transpose(dmat3x2v); // For now, relying on no dead-code elimination
+ dmat3x2v = transpose(dmat2x3v);
+ dmat2x4v = transpose(dmat4x2v);
+ dmat4x2v = transpose(dmat2x4v);
+ dmat3x4v = transpose(dmat4x3v);
+ dmat4x3v = transpose(dmat3x4v);
+
+ doublev += determinant(dmat2v);
+ doublev += determinant(dmat3v);
+ doublev += determinant(dmat4v);
+
+ dmat2v *= inverse(dmat2v);
+ dmat3v *= inverse(dmat3v);
+ dmat4v *= inverse(dmat4v);
+
+ outp *= float(doublev + dvec2v.y + dvec3v.z + dvec4v.w +
+ dmat2v[1][1] + dmat3v[2][2] + dmat4v[3][3] + dmat2x3v[1][1] + dmat3x2v[1][1] + dmat3x4v[2][2] + dmat4x3v[2][2] + dmat2x4v[1][1] + dmat4x2v[1][1] +
+ float(boolv) + float(bvec2v.x) + float(bvec3v.x) + float(bvec4v.x));
+}
+
+void main()
+{
+ vec4 v;
+ v = texture(arrayedSampler[i], c2D);
+ outp.x = gl_ClipDistance[1];
+ outp.yzw = v.yzw;
+
+ ivec2 offsets[4];
+ const ivec2 constOffsets[4] = ivec2[4](ivec2(1,2), ivec2(3,4), ivec2(15,16), ivec2(-2,0));
+ uoutp = textureGatherOffsets(samp2dr, c2D, constOffsets, 2);
+ outp += textureGather(arrayedSampler[0], c2D);
+ ioutp = textureGatherOffset(isamp2DA, vec3(0.1), ivec2(1), 3);
+ ioutp += textureGatherOffset(isamp2DA, vec3(0.1), ivec2(1), 1+2);
+ ioutp += textureGatherOffset(isamp2DA, vec3(0.1), ivec2(i));
+
+ outp += gl_FragCoord + vl2;
+ uo = u % i;
+ foo23();
+ doubles();
+}
+
diff --git a/chromium/third_party/glslang/src/Test/spv.400.tesc b/chromium/third_party/glslang/src/Test/spv.400.tesc
new file mode 100644
index 00000000000..fa08fcdfdf4
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.400.tesc
@@ -0,0 +1,43 @@
+#version 400 core
+
+layout(vertices = 4) out;
+int outa[gl_out.length()];
+
+patch out vec4 patchOut;
+
+void main()
+{
+ barrier();
+
+ int a = gl_MaxTessControlInputComponents +
+ gl_MaxTessControlOutputComponents +
+ gl_MaxTessControlTextureImageUnits +
+ gl_MaxTessControlUniformComponents +
+ gl_MaxTessControlTotalOutputComponents;
+
+ vec4 p = gl_in[1].gl_Position;
+ float ps = gl_in[1].gl_PointSize;
+ float cd = gl_in[1].gl_ClipDistance[2];
+
+ int pvi = gl_PatchVerticesIn;
+ int pid = gl_PrimitiveID;
+ int iid = gl_InvocationID;
+
+ gl_out[gl_InvocationID].gl_Position = p;
+ gl_out[gl_InvocationID].gl_PointSize = ps;
+ gl_out[gl_InvocationID].gl_ClipDistance[1] = cd;
+
+ gl_TessLevelOuter[3] = 3.2;
+ gl_TessLevelInner[1] = 1.3;
+}
+
+in vec2 inb[];
+in vec2 ind[gl_MaxPatchVertices];
+
+#extension GL_ARB_separate_shader_objects : enable
+
+layout(location = 3) in vec4 ivla[];
+layout(location = 4) in vec4 ivlb[];
+
+layout(location = 3) out vec4 ovla[];
+layout(location = 4) out vec4 ovlb[];
diff --git a/chromium/third_party/glslang/src/Test/spv.400.tese b/chromium/third_party/glslang/src/Test/spv.400.tese
new file mode 100644
index 00000000000..6eb1861f81a
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.400.tese
@@ -0,0 +1,52 @@
+#version 400 core
+
+layout(triangles, ccw) in;
+
+layout(fractional_odd_spacing) in;
+
+layout(point_mode) in;
+
+patch in vec4 patchIn;
+
+void main()
+{
+ int a = gl_MaxTessEvaluationInputComponents +
+ gl_MaxTessEvaluationOutputComponents +
+ gl_MaxTessEvaluationTextureImageUnits +
+ gl_MaxTessEvaluationUniformComponents +
+ gl_MaxTessPatchComponents +
+ gl_MaxPatchVertices +
+ gl_MaxTessGenLevel;
+
+ vec4 p = gl_in[1].gl_Position;
+ float ps = gl_in[1].gl_PointSize;
+ float cd = gl_in[1].gl_ClipDistance[2];
+
+ int pvi = gl_PatchVerticesIn;
+ int pid = gl_PrimitiveID;
+ vec3 tc = gl_TessCoord;
+ float tlo = gl_TessLevelOuter[3];
+ float tli = gl_TessLevelInner[1];
+
+ gl_Position = p;
+ gl_PointSize = ps;
+ gl_ClipDistance[2] = cd;
+}
+
+#extension GL_ARB_separate_shader_objects : enable
+
+in vec2 inb[];
+in vec2 ind[gl_MaxPatchVertices];
+
+in testblb {
+ int f;
+} blb[];
+
+in testbld {
+ int f;
+} bld[gl_MaxPatchVertices];
+
+layout(location = 23) in vec4 ivla[];
+layout(location = 24) in vec4 ivlb[];
+
+layout(location = 23) out vec4 ovla[2];
diff --git a/chromium/third_party/glslang/src/Test/spv.420.geom b/chromium/third_party/glslang/src/Test/spv.420.geom
new file mode 100644
index 00000000000..3c0a0512188
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.420.geom
@@ -0,0 +1,43 @@
+#version 420 core
+
+layout(triangles) in;
+
+in gl_PerVertex {
+ float gl_PointSize;
+} gl_in[];
+
+out gl_PerVertex {
+ float gl_PointSize;
+};
+
+layout(line_strip) out;
+layout(max_vertices = 127) out;
+layout(invocations = 4) in;
+
+uniform sampler2D s2D;
+in vec2 coord[];
+
+int i;
+
+void main()
+{
+ float p = gl_in[1].gl_PointSize;
+ gl_PointSize = p;
+ gl_ViewportIndex = 7;
+
+ EmitStreamVertex(1);
+ EndStreamPrimitive(0);
+ EmitVertex();
+ EndPrimitive();
+ int id = gl_InvocationID;
+
+ const ivec2 offsets[5] =
+ {
+ ivec2(0,1),
+ ivec2(1,-2),
+ ivec2(0,3),
+ ivec2(-3,0),
+ ivec2(2,1)
+ };
+ vec4 v = textureGatherOffset(s2D, coord[0], offsets[i].xy);
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.430.vert b/chromium/third_party/glslang/src/Test/spv.430.vert
new file mode 100644
index 00000000000..82a445738a1
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.430.vert
@@ -0,0 +1,37 @@
+#version 450 core
+
+
+
+out gl_PerVertex {
+ float gl_ClipDistance[];
+};
+
+const float cx = 4.20;
+const float dx = 4.20;
+in vec4 bad[10];
+highp in vec4 badorder;
+out invariant vec4 badorder2;
+out flat vec4 badorder3;
+
+in float f;
+
+void main()
+{
+ gl_ClipDistance[2] = 3.7;
+
+ if (bad[0].x == cx.x)
+ badorder3 = bad[0];
+
+ gl_ClipDistance[0] = f.x;
+}
+
+layout(binding = 3) uniform boundblock { int aoeu; } boundInst;
+layout(binding = 7) uniform anonblock { int aoeu; } ;
+layout(binding = 4) uniform sampler2D sampb1;
+layout(binding = 5) uniform sampler2D sampb2[10];
+layout(binding = 31) uniform sampler2D sampb4;
+
+struct S { mediump float a; highp uvec2 b; highp vec3 c; };
+struct SS { vec4 b; S s; vec4 c; };
+layout(location = 0) flat out SS var;
+out MS { layout(location = 17) float f; } outMS;
diff --git a/chromium/third_party/glslang/src/Test/spv.AofA.frag b/chromium/third_party/glslang/src/Test/spv.AofA.frag
new file mode 100644
index 00000000000..562fc98e9a1
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.AofA.frag
@@ -0,0 +1,43 @@
+#version 430
+
+in float infloat;
+out float outfloat;
+
+uniform uAofA {
+ float f[2][4];
+} nameAofA[3][5];
+
+float[4][5][6] many[1][2][3];
+
+float g4[4][7];
+in float g5[5][7];
+
+flat in int i, j, k;
+
+float[4][7] foo(float a[5][7])
+{
+ float r[7];
+ r = a[2];
+
+ return float[4][7](a[0], a[1], r, a[3]);
+}
+
+void main()
+{
+ outfloat = 0.0;
+
+ g4 = foo(g5);
+
+// if (foo(g5) == g4)
+// ++outfloat;
+
+ float u[][7];
+ u[2][2] = 3.0;
+ float u[5][7];
+
+ foo(u);
+
+ many[i][j][k][i][j][k] = infloat;
+ outfloat += many[j][j][j][j][j][j];
+ outfloat += nameAofA[1][2].f[0][3];
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.Operations.frag b/chromium/third_party/glslang/src/Test/spv.Operations.frag
new file mode 100644
index 00000000000..7dfd7ffe166
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.Operations.frag
@@ -0,0 +1,138 @@
+#version 450
+
+flat in ivec4 uiv4;
+in vec4 uv4;
+bool ub;
+bvec4 ub41, ub42;
+in float uf;
+flat in int ui;
+flat in uvec4 uuv4;
+flat in uint uui;
+
+out vec4 FragColor;
+
+void main()
+{
+ vec4 v;
+ float f;
+ bool b;
+ bvec4 bv4;
+ int i;
+ uint u;
+
+ // floating point
+ v = radians(uv4);
+ v += degrees(v);
+ v += (i = ui*ui, sin(v));
+ v += cos(v);
+ v += tan(v);
+ v += asin(v);
+ v += acos(v);
+
+ v += atan(v);
+ v += sinh(v);
+ v += cosh(v);
+ v += tanh(v);
+ v += asinh(v);
+ v += acosh(v);
+ v += atanh(v);
+
+ v += pow(v, v);
+ v += exp(v);
+ v += log(v);
+ v += exp2(v);
+ v += log2(v);
+ v += sqrt(v);
+ v += inversesqrt(v);
+ v += abs(v);
+ v += sign(v);
+ v += floor(v);
+
+ v += trunc(v);
+ v += round(v);
+ v += roundEven(v);
+
+ v += ceil(v);
+ v += fract(v);
+ v += mod(v, v);
+ v += mod(v, v.x);
+
+ v += modf(v, v);
+
+ v += min(v, uv4);
+ v += max(v, uv4);
+ v += clamp(v, uv4, uv4);
+ v += mix(v,v,v);
+
+ 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);
+ v += step(uf,v);
+ v += smoothstep(uf,uf,v);
+ v += normalize(v);
+ v += faceforward(v, v, v);
+ v += reflect(v, v);
+ v += refract(v, v, uf);
+ v += dFdx(v);
+ v += dFdy(v);
+ v += fwidth(v);
+
+ // signed integer
+ i += abs(ui);
+ i += sign(i);
+ i += min(i, ui);
+ i += max(i, ui);
+ i += clamp(i, ui, ui);
+
+ // unsigned integer
+ u += min(u, uui);
+ u += max(u, uui);
+ u += clamp(u, uui, uui);
+
+ //// bool
+ b = isnan(uf);
+ b = isinf(f);
+ b = any(lessThan(v, uv4));
+ b = (b && any(lessThanEqual(v, uv4)));
+ b = (b && any(greaterThan(v, uv4)));
+ b = (b && any(greaterThanEqual(v, uv4)));
+ b = (b && any(equal(ub41, ub42)));
+ b = (b && any(notEqual(ub41, ub42)));
+ b = (b && any(ub41));
+ b = (b && all(ub41));
+ b = (b && any(not(ub41)));
+
+ i = ((i + ui) * i - ui) / i;
+ i = i % ui;
+ if (i == ui || i != ui && i == ui ^^ i != 2)
+ ++i;
+
+ f = ((uf + uf) * uf - uf) / uf;
+
+ f += length(v);
+ f += distance(v, v);
+ f += dot(v, v);
+ f += dot(f, uf);
+ f += cross(v.xyz, v.xyz).x;
+
+ if (f == uf || f != uf && f != 2.0)
+ ++f;
+
+ i &= ui;
+ i |= 0x42;
+ i ^= ui;
+ i %= 17;
+ i >>= 2;
+ i <<= ui;
+ i = ~i;
+ b = !b;
+
+ FragColor = b ? vec4(i) + vec4(f) + v : v;
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.accessChain.frag b/chromium/third_party/glslang/src/Test/spv.accessChain.frag
new file mode 100644
index 00000000000..faf0ddd1284
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.accessChain.frag
@@ -0,0 +1,94 @@
+#version 420
+
+struct S
+{
+ vec3 color;
+};
+
+layout(location = 0) out vec3 OutColor;
+
+flat in int u;
+
+void GetColor1(const S i)
+{
+ OutColor += i.color.x;
+}
+
+void GetColor2(const S i, int comp)
+{
+ OutColor += i.color[comp];
+}
+
+void GetColor3(const S i, int comp)
+{
+ OutColor += i.color[comp].x;
+}
+
+void GetColor4(const S i, int comp)
+{
+ OutColor += i.color[comp].x;
+}
+
+void GetColor5(const S i, int comp)
+{
+ OutColor += i.color;
+}
+
+void GetColor6(const S i, int comp)
+{
+ OutColor += i.color.yx[comp];
+}
+
+void GetColor7(const S i, int comp)
+{
+ OutColor.xy += i.color.yxz.yx;
+}
+
+void GetColor8(const S i, int comp)
+{
+ OutColor += i.color.yzx.yx.x.x;
+}
+
+void GetColor9(const S i, int comp)
+{
+ OutColor.zxy += i.color;
+}
+
+void GetColor10(const S i, int comp)
+{
+ OutColor.zy += i.color.xy;
+}
+
+void GetColor11(const S i, int comp)
+{
+ OutColor.zxy.yx += i.color.xy;
+}
+
+void GetColor12(const S i, int comp)
+{
+ OutColor[comp] += i.color.x;
+}
+
+void GetColor13(const S i, int comp)
+{
+ // OutColor.zy[comp] += i.color.x; // not yet supported
+}
+
+void main()
+{
+ S s;
+ OutColor = vec3(0.0);
+ GetColor1(s);
+ GetColor2(s, u);
+ GetColor3(s, u);
+ GetColor4(s, u);
+ GetColor5(s, u);
+ GetColor6(s, u);
+ GetColor7(s, u);
+ GetColor8(s, u);
+ GetColor9(s, u);
+ GetColor10(s, u);
+ GetColor11(s, u);
+ GetColor12(s, u);
+ GetColor13(s, u);
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.aggOps.frag b/chromium/third_party/glslang/src/Test/spv.aggOps.frag
new file mode 100644
index 00000000000..1a889ffd856
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.aggOps.frag
@@ -0,0 +1,51 @@
+#version 450
+
+uniform sampler2D samp2D;
+in mediump vec2 coord;
+
+in vec4 u, w;
+out vec4 color;
+
+struct s1 {
+ int i;
+ float f;
+};
+
+struct s2 {
+ int i;
+ float f;
+ s1 s1_1;
+};
+
+layout(std140) uniform ub1 { s2 foo2a; } uName1;
+layout(std430) buffer ub2 { s2 foo2b; } uName2;
+
+void main()
+{
+ vec4 v;
+ s1 a[3], b[3];
+ a = s1[3](s1(int(u.x), u.y), s1(int(u.z), u.w), s1(14, 14.0));
+ b = s1[3](s1(17, 17.0), s1(int(w.x), w.y), s1(int(w.z), w.w));
+
+ if (uName1.foo2a == uName2.foo2b)
+ v = texture(samp2D, coord);
+ else
+ v = texture(samp2D, 2.0*coord);
+
+ if (u == v)
+ v *= 3.0;
+
+ if (u != v)
+ v *= 4.0;
+
+ if (coord == v.yw)
+ v *= 5.0;
+
+ if (a == b)
+ v *= 6.0;
+
+ if (a != b)
+ v *= 7.0;
+
+ color = v;
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.always-discard.frag b/chromium/third_party/glslang/src/Test/spv.always-discard.frag
new file mode 100644
index 00000000000..2d7d38950d9
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.always-discard.frag
@@ -0,0 +1,36 @@
+#version 140
+in vec2 tex_coord;
+
+void main (void)
+{
+ vec4 white = vec4(1.0);
+ vec4 black = vec4(0.2);
+ vec4 color = white;
+
+ // First, cut out our circle
+ float x = tex_coord.x*2.0 - 1.0;
+ float y = tex_coord.y*2.0 - 1.0;
+
+ float radius = sqrt(x*x + y*y);
+ if (radius > 1.0) {
+ if (radius > 1.1) {
+ ++color;
+ }
+
+ gl_FragColor = color;
+
+ if (radius > 1.2) {
+ ++color;
+ }
+
+ }
+
+ discard;
+
+ // If we're near an edge, darken us a tiny bit
+ if (radius >= 0.75)
+ color -= abs(pow(radius, 16.0)/2.0);
+
+ gl_FragColor = color;
+
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.always-discard2.frag b/chromium/third_party/glslang/src/Test/spv.always-discard2.frag
new file mode 100644
index 00000000000..3005e48a33b
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.always-discard2.frag
@@ -0,0 +1,19 @@
+#version 140
+in vec2 tex_coord;
+
+void main (void)
+{
+ vec4 white = vec4(1.0);
+ vec4 black = vec4(0.2);
+ vec4 color = white;
+
+ // First, cut out our circle
+ float x = tex_coord.x*2.0 - 1.0;
+ float y = tex_coord.y*2.0 - 1.0;
+
+ discard;
+
+
+ gl_FragColor = color;
+
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.atomic.comp b/chromium/third_party/glslang/src/Test/spv.atomic.comp
new file mode 100644
index 00000000000..827adefe2b2
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.atomic.comp
@@ -0,0 +1,47 @@
+#version 310 es
+
+#extension GL_ARB_gl_spirv : enable
+
+layout(binding = 0) uniform atomic_uint counter;
+
+layout(binding = 0, offset = 4) uniform atomic_uint countArr[4];
+shared uint value;
+
+int arrX[gl_WorkGroupSize.x];
+int arrY[gl_WorkGroupSize.y];
+int arrZ[gl_WorkGroupSize.z];
+
+uint func(atomic_uint c)
+{
+ return atomicCounterIncrement(c);
+}
+
+void main()
+{
+ memoryBarrierAtomicCounter();
+ func(counter);
+ uint val = atomicCounter(countArr[2]);
+ atomicCounterDecrement(counter);
+}
+
+shared int atomi;
+shared uint atomu;
+
+layout (std140, binding = 0) restrict buffer dataSSB
+{
+ float f;
+ ivec4 n_frames_rendered;
+} result;
+
+void atoms()
+{
+ int origi = atomicAdd(atomi, 3);
+ uint origu = atomicAnd(atomu, value);
+ origu = atomicOr(atomu, 7u);
+ origu = atomicXor(atomu, 7u);
+ origu = atomicMin(atomu, value);
+ origi = atomicMax(atomi, 7);
+ origi = atomicExchange(atomi, origi);
+ origu = atomicCompSwap(atomu, 10u, value);
+ atomicAdd(result.n_frames_rendered.z, 1);
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.bitCast.frag b/chromium/third_party/glslang/src/Test/spv.bitCast.frag
new file mode 100644
index 00000000000..8bd1e91e99e
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.bitCast.frag
@@ -0,0 +1,45 @@
+#version 450
+
+flat in int i1;
+flat in ivec2 i2;
+flat in ivec3 i3;
+flat in ivec4 i4;
+
+flat in uint u1;
+flat in uvec2 u2;
+flat in uvec3 u3;
+flat in uvec4 u4;
+
+in float f1;
+in vec2 f2;
+in vec3 f3;
+in vec4 f4;
+
+out vec4 fragColor;
+
+void main()
+{
+ ivec4 idata = ivec4(0);
+ idata.x += floatBitsToInt(f1);
+ idata.xy += floatBitsToInt(f2);
+ idata.xyz += floatBitsToInt(f3);
+ idata += floatBitsToInt(f4);
+
+ uvec4 udata = uvec4(0);
+ udata.x += floatBitsToUint(f1);
+ udata.xy += floatBitsToUint(f2);
+ udata.xyz += floatBitsToUint(f3);
+ udata += floatBitsToUint(f4);
+
+ vec4 fdata = vec4(0.0);
+ fdata.x += intBitsToFloat(i1);
+ fdata.xy += intBitsToFloat(i2);
+ fdata.xyz += intBitsToFloat(i3);
+ fdata += intBitsToFloat(i4);
+ fdata.x += uintBitsToFloat(u1);
+ fdata.xy += uintBitsToFloat(u2);
+ fdata.xyz += uintBitsToFloat(u3);
+ fdata += uintBitsToFloat(u4);
+
+ fragColor = (idata == udata) ? fdata : fdata + vec4(0.2);
+} \ No newline at end of file
diff --git a/chromium/third_party/glslang/src/Test/spv.bool.vert b/chromium/third_party/glslang/src/Test/spv.bool.vert
new file mode 100644
index 00000000000..cc8a1857b90
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.bool.vert
@@ -0,0 +1,17 @@
+#version 450
+
+const bool condition = false;
+
+uniform ubname {
+ bool b;
+} ubinst;
+
+bool foo(bool b)
+{
+ return b != condition;
+}
+
+void main()
+{
+ gl_Position = foo(ubinst.b) ? vec4(0.0) : vec4(1.0);
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.boolInBlock.frag b/chromium/third_party/glslang/src/Test/spv.boolInBlock.frag
new file mode 100644
index 00000000000..71866facfa6
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.boolInBlock.frag
@@ -0,0 +1,31 @@
+#version 450
+
+layout(binding = 0, std140) uniform Uniform
+{
+ bvec4 b4;
+};
+
+layout(binding = 1, std430) buffer Buffer
+{
+ bvec2 b2;
+};
+
+void foo(bvec4 paramb4, out bvec2 paramb2)
+{
+ bool b1 = paramb4.z;
+ paramb2 = bvec2(b1);
+}
+
+layout(location = 0) out vec4 fragColor;
+
+void main()
+{
+ b2 = bvec2(0.0);
+ if (b4.z)
+ b2 = bvec2(b4.x);
+ if (b2.x)
+ foo(b4, b2);
+
+ fragColor = vec4(b4.x && b4.y);
+ fragColor -= vec4(b4.x || b4.y);
+} \ No newline at end of file
diff --git a/chromium/third_party/glslang/src/Test/spv.branch-return.vert b/chromium/third_party/glslang/src/Test/spv.branch-return.vert
new file mode 100644
index 00000000000..4b2f5d447cd
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.branch-return.vert
@@ -0,0 +1,10 @@
+#version 310 es
+void main() {
+ switch (gl_InstanceIndex) {
+ case 0: return;
+ case 1: gl_Position = vec4(0.0); break;
+ case 2: return;
+ case 3: return;
+ }
+ gl_Position.x += 0.123;
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.conditionalDiscard.frag b/chromium/third_party/glslang/src/Test/spv.conditionalDiscard.frag
new file mode 100644
index 00000000000..7e52e436e60
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.conditionalDiscard.frag
@@ -0,0 +1,14 @@
+#version 400
+
+uniform sampler2D tex;
+in vec2 coord;
+
+void main (void)
+{
+ vec4 v = texture(tex, coord);
+
+ if (v == vec4(0.1,0.2,0.3,0.4))
+ discard;
+
+ gl_FragColor = v;
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.conversion.frag b/chromium/third_party/glslang/src/Test/spv.conversion.frag
new file mode 100644
index 00000000000..1a13279763f
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.conversion.frag
@@ -0,0 +1,112 @@
+#version 140
+
+bool u_b;
+bvec2 u_b2;
+bvec3 u_b3;
+bvec4 u_b4;
+
+int u_i;
+ivec2 u_i2;
+ivec3 u_i3;
+ivec4 u_i4;
+
+float u_f;
+vec2 u_f2;
+vec3 u_f3;
+vec4 u_f4;
+
+bool i_b;
+bvec2 i_b2;
+bvec3 i_b3;
+bvec4 i_b4;
+
+flat in int i_i;
+flat in ivec2 i_i2;
+flat in ivec3 i_i3;
+flat in ivec4 i_i4;
+
+in float i_f;
+in vec2 i_f2;
+in vec3 i_f3;
+in vec4 i_f4;
+
+void main()
+{
+ bool b = bool(u_i) ^^ bool(u_f);
+ bvec2 b2 = bvec2(u_i, u_f);
+ bvec3 b3 = bvec3(u_i, u_f, i_i);
+ bvec4 b4 = bvec4(u_i, u_f, i_i, i_f);
+
+ int i = int(u_f) + int(b);
+ ivec2 i2 = ivec2(u_f2) + ivec2(b2);
+ ivec3 i3 = ivec3(u_f3) + ivec3(b3);
+ ivec4 i4 = ivec4(u_f4) + ivec4(b4);
+
+ float f = i;
+ vec2 f2 = i2;
+ vec3 f3 = i3;
+ vec4 f4 = i4;
+
+ f += (float(i) + float(b));
+ f2 -= vec2(i2) + vec2(b2);
+ f3 /= vec3(i3) + vec3(b3);
+ f4 += vec4(i4) + vec4(b4);
+
+ f4 += vec4(bvec4(i_i4));
+ f4 += vec4(bvec4(u_f4));
+
+ f += f - i;
+ f2 += vec2(f, i) + i2;
+ f3 += i3 + vec3(f, i, f);
+ f4 += vec4(b, i, f, i) + i4;
+
+ f2 += vec2(f, i) * i;
+ f3 += vec3(f, i, f) + i;
+ f4 += i - vec4(b, i, f, i);
+
+ i2 += ivec2(f, i);
+ i3 += ivec3(f, i, f);
+ i4 += ivec4(b, i, f, i);
+
+ if (f < i || i < f ||
+ f2 == i2 ||
+ i3 != f3)
+ f = (b ? i : f2.x) + (b2.x ? f3.x : i2.y);
+
+ gl_FragColor =
+ b ||
+ b2.x ||
+ b2.y ||
+ b3.x ||
+ b3.y ||
+ b3.z ||
+ b4.x ||
+ b4.y ||
+ b4.z ||
+ b4.w ? vec4(
+ i +
+ i2.x +
+ i2.y +
+ i3.x +
+ i3.y +
+ i3.z +
+ i4.x +
+ i4.y +
+ i4.z +
+ i4.w +
+ f +
+ f2.x +
+ f2.y +
+ f3.x +
+ f3.y +
+ f3.z +
+ f4.x +
+ f4.y +
+ f4.z +
+ f4.w) : vec4(1.0);
+
+ // with constants...
+ ivec4 cv2 = ivec4(1.0);
+ bvec4 cv5 = bvec4(cv2);
+ gl_FragColor += float(cv5);
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.dataOut.frag b/chromium/third_party/glslang/src/Test/spv.dataOut.frag
new file mode 100644
index 00000000000..7f4208afb39
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.dataOut.frag
@@ -0,0 +1,8 @@
+#version 140
+
+in vec4 Color;
+
+void main()
+{
+ gl_FragData[1] = Color;
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.dataOutIndirect.frag b/chromium/third_party/glslang/src/Test/spv.dataOutIndirect.frag
new file mode 100644
index 00000000000..1d8795f57c0
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.dataOutIndirect.frag
@@ -0,0 +1,12 @@
+#version 140
+
+in vec4 Color;
+
+out vec4 fcolor[4];
+
+uniform b { int i; } bName;
+
+void main()
+{
+ fcolor[bName.i] = Color;
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.dataOutIndirect.vert b/chromium/third_party/glslang/src/Test/spv.dataOutIndirect.vert
new file mode 100644
index 00000000000..8606d9f3d2c
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.dataOutIndirect.vert
@@ -0,0 +1,12 @@
+#version 140
+
+attribute vec4 color;
+out vec4 colorOut[6];
+
+void main()
+{
+ for (int i = 1; i < 5; ++i)
+ colorOut[i] = color;
+
+ gl_Position = colorOut[2];
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.deepRvalue.frag b/chromium/third_party/glslang/src/Test/spv.deepRvalue.frag
new file mode 100644
index 00000000000..49c348ec4e4
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.deepRvalue.frag
@@ -0,0 +1,36 @@
+#version 330
+
+uniform sampler2D samp2D;
+
+vec4 v1 = vec4(2.0, 3.0, 5.0, 7.0);
+vec4 v2 = vec4(11.0, 13.0, 17.0, 19.0);
+vec4 v3 = vec4(23.0, 29.0, 31.0, 37.0);
+vec4 v4 = vec4(41.0, 43.0, 47.0, 53.0);
+
+struct str {
+ int a;
+ vec2 b[3];
+ bool c;
+};
+
+void main()
+{
+ mat4 m = mat4(v1, v2, v3, v4);
+
+ mat4 mm = matrixCompMult(m, m);
+ float f = mm[1].w; // should be 19 * 19 = 361
+
+ // do a deep access to a spontaneous r-value
+ float g = matrixCompMult(m, m)[2].y; // should be 29 * 29 = 841
+
+ float h = str(1, vec2[3](vec2(2.0, 3.0), vec2(4.0, 5.0), vec2(6.0, 7.0)), true).b[1][1]; // should be 5.0
+
+ float i = texture(samp2D, vec2(0.5,0.5)).y;
+
+ i += (i > 0.1 ? v1 : v2)[3];
+
+ str t;
+ i += (t = str(1, vec2[3](vec2(2.0, 3.0), vec2(4.0, 5.0), vec2(6.0, 7.0)), true)).b[2].y; // should be 7.0
+
+ gl_FragColor = vec4(f, g, h, i);
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.depthOut.frag b/chromium/third_party/glslang/src/Test/spv.depthOut.frag
new file mode 100644
index 00000000000..d90fc0f8cd2
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.depthOut.frag
@@ -0,0 +1,11 @@
+#version 450
+
+in vec4 Color;
+in float Depth;
+
+layout(depth_greater) out float gl_FragDepth;
+
+void main()
+{
+ gl_FragDepth = Depth;
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.discard-dce.frag b/chromium/third_party/glslang/src/Test/spv.discard-dce.frag
new file mode 100644
index 00000000000..b4a708d5044
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.discard-dce.frag
@@ -0,0 +1,35 @@
+#version 140
+in vec2 tex_coord;
+
+void main (void)
+{
+ vec4 white = vec4(1.0);
+ vec4 black = vec4(0.2);
+ vec4 color = white;
+
+ // First, cut out our circle
+ float x = tex_coord.x*2.0 - 1.0;
+ float y = tex_coord.y*2.0 - 1.0;
+
+ float radius = sqrt(x*x + y*y);
+ if (radius > 1.0) {
+ if (radius > 1.1) {
+ ++color;
+ }
+
+ gl_FragColor = color;
+
+ if (radius > 1.2) {
+ ++color;
+ }
+
+ discard;
+ }
+
+ // If we're near an edge, darken us a tiny bit
+ if (radius >= 0.75)
+ color -= abs(pow(radius, 16.0)/2.0);
+
+ gl_FragColor = color;
+
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.do-simple.vert b/chromium/third_party/glslang/src/Test/spv.do-simple.vert
new file mode 100644
index 00000000000..77677a6df94
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.do-simple.vert
@@ -0,0 +1,7 @@
+#version 310 es
+void main() {
+ int i = 0;
+ do {
+ i++;
+ } while(i<10);
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.do-while-continue-break.vert b/chromium/third_party/glslang/src/Test/spv.do-while-continue-break.vert
new file mode 100644
index 00000000000..c085551e8b6
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.do-while-continue-break.vert
@@ -0,0 +1,20 @@
+#version 310 es
+void main() {
+ int i = 0;
+ int A, B, C, D, E, F, G;
+ do {
+ A = 0;
+ if (i == 2) {
+ B = 1;
+ continue;
+ C = 2;
+ }
+ if (i == 5) {
+ D = 3;
+ break;
+ E = 42;
+ }
+ F = 99;
+ } while (++i < 19);
+ G = 12;
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.doWhileLoop.frag b/chromium/third_party/glslang/src/Test/spv.doWhileLoop.frag
new file mode 100644
index 00000000000..685fe419cb4
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.doWhileLoop.frag
@@ -0,0 +1,16 @@
+#version 140
+
+in vec4 bigColor;
+in vec4 BaseColor;
+in float d;
+
+void main()
+{
+ vec4 color = BaseColor;
+
+ do {
+ color += bigColor;
+ } while (color.x < d);
+
+ gl_FragColor = color;
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.double.comp b/chromium/third_party/glslang/src/Test/spv.double.comp
new file mode 100644
index 00000000000..51434cab0f3
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.double.comp
@@ -0,0 +1,25 @@
+#version 430
+
+const double d1 = 3.1415926535897932384626433832795LF;
+const double d2 = 3.1415;
+const double d3 = 3.1415926535897932384626433832795LF;
+const double d4 = 3.1415926535897932384626433832795;
+
+buffer bufName {
+ float f;
+ double d;
+} bufInst;
+
+
+uniform writeonly image2D destTex;
+
+void main()
+{
+ bufInst.d = float(d1);
+ bufInst.f = float(d1 + d2 + d3 + d4);
+
+ ivec2 storePos = ivec2(gl_GlobalInvocationID.xy);
+ double localCoef = length(vec2(ivec2(gl_LocalInvocationID.xy)-8)/8.0);
+ dvec4 aa = dvec4(0.4, 0.2, 0.3, 0.4);
+ double globalCoef = 1.0;
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.earlyReturnDiscard.frag b/chromium/third_party/glslang/src/Test/spv.earlyReturnDiscard.frag
new file mode 100644
index 00000000000..43e4666c542
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.earlyReturnDiscard.frag
@@ -0,0 +1,102 @@
+#version 140
+
+in float d;
+in vec4 bigColor, smallColor;
+in vec4 otherColor;
+
+in float c;
+
+in float threshhold;
+in float threshhold2;
+in float threshhold3;
+
+in float minimum;
+
+in vec4 BaseColor;
+
+bool b;
+
+void main()
+{
+ vec4 color = BaseColor;
+ vec4 color2;
+
+ color2 = otherColor;
+
+ if (c > d)
+ color += bigColor;
+ else
+ color += smallColor;
+
+ if (color.z < minimum)
+ return;
+
+ color.z++;
+
+ if (color.z > threshhold)
+ discard;
+
+ color++;
+
+ // Two path, different rest
+ if (color.w > threshhold2) {
+ if (color.z > threshhold2)
+ return;
+ else if (b)
+ color.z++;
+ else {
+ if (color.x < minimum) {
+ discard;
+ } else {
+ color++;
+ }
+ }
+ } else {
+ if (b)
+ discard;
+ else
+ return;
+ }
+
+
+ // // Two path, shared rest
+ // if (color.w > threshhold2) {
+ // if (color.z > threshhold2)
+ // return;
+ // else if (b)
+ // color++;
+ // else {
+ // if (color.x < minimum) {
+ // discard;
+ // } else {
+ // color++;
+ // }
+ // }
+ // } else {
+ // if (b)
+ // discard;
+ // else
+ // return;
+ // }
+
+
+ // // One path
+ // if (color.w > threshhold2) {
+ // if (color.z > threshhold2)
+ // return;
+ // else {
+ // if (color.x < minimum) {
+ // discard;
+ // } else {
+ // color++;
+ // }
+ // }
+ // } else {
+ // if (b)
+ // discard;
+ // else
+ // return;
+ // }
+
+ gl_FragColor = color * color2;
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.flowControl.frag b/chromium/third_party/glslang/src/Test/spv.flowControl.frag
new file mode 100644
index 00000000000..8d343df786f
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.flowControl.frag
@@ -0,0 +1,23 @@
+#version 140
+
+in float d;
+in vec4 bigColor, smallColor;
+in vec4 otherColor;
+
+in float c;
+in vec4 BaseColor;
+
+void main()
+{
+ vec4 color = BaseColor;
+ vec4 color2;
+
+ color2 = otherColor;
+
+ if (c > d)
+ color += bigColor;
+ else
+ color += smallColor;
+
+ gl_FragColor = color * color2;
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.for-complex-condition.vert b/chromium/third_party/glslang/src/Test/spv.for-complex-condition.vert
new file mode 100644
index 00000000000..81dd648974a
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.for-complex-condition.vert
@@ -0,0 +1,7 @@
+#version 450
+layout(location=0) out highp int r;
+layout(location=0) in lowp int flag;
+void main() {
+ int i;
+ for (i=0; i < (flag==1 ? 10 : 15) ; i++) { r = i; }
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.for-continue-break.vert b/chromium/third_party/glslang/src/Test/spv.for-continue-break.vert
new file mode 100644
index 00000000000..afa31f2b3e8
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.for-continue-break.vert
@@ -0,0 +1,20 @@
+#version 310 es
+void main() {
+ int i;
+ int A, B, C, D, E, F, G;
+ for (i=0; i < 10 ; i++) {
+ A = 1;
+ if (i%2 ==0) {
+ B = 1;
+ continue;
+ C = 1;
+ }
+ if (i%3 == 0) {
+ D = 1;
+ break;
+ E = 1;
+ }
+ F = 12;
+ }
+ G = 99;
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.for-nobody.vert b/chromium/third_party/glslang/src/Test/spv.for-nobody.vert
new file mode 100644
index 00000000000..99634761c8c
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.for-nobody.vert
@@ -0,0 +1,7 @@
+#version 450
+layout(location=0) out highp int r;
+void main() {
+ int i;
+ for (i=0; i<10; i++);
+ r = i;
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.for-notest.vert b/chromium/third_party/glslang/src/Test/spv.for-notest.vert
new file mode 100644
index 00000000000..f40e66644c7
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.for-notest.vert
@@ -0,0 +1,6 @@
+#version 450
+layout(location=0) out highp int r;
+void main() {
+ int i;
+ for (i=0; ; i++) { r = i; }
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.for-simple.vert b/chromium/third_party/glslang/src/Test/spv.for-simple.vert
new file mode 100644
index 00000000000..a5be6db2d50
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.for-simple.vert
@@ -0,0 +1,8 @@
+#version 310 es
+void main() {
+ int i;
+ int j;
+ for (i=0; i < 10 ; i++) {
+ j = 12;
+ }
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.forLoop.frag b/chromium/third_party/glslang/src/Test/spv.forLoop.frag
new file mode 100644
index 00000000000..a96f50d5320
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.forLoop.frag
@@ -0,0 +1,41 @@
+#version 140
+
+in vec4 bigColor;
+in vec4 BaseColor;
+in float f;
+
+flat in int Count;
+flat in uvec4 v4;
+
+void main()
+{
+ vec4 color = BaseColor;
+
+ for (int i = 0; i < Count; ++i) {
+ color += bigColor;
+ }
+
+ gl_FragColor = color;
+
+ float sum = 0.0;
+ for (int i = 0; i < 4; ++i)
+ sum += v4[i];
+
+ vec4 tv4;
+
+ for (int i = 0; i < 4; ++i)
+ tv4[i] = v4[i] * 4u;
+
+ gl_FragColor += vec4(sum) + tv4;
+
+ vec4 r;
+ r.xyz = BaseColor.xyz;
+
+ for (int i = 0; i < Count; ++i)
+ r.w = f;
+
+ gl_FragColor.xyz += r.xyz;
+
+ for (int i = 0; i < 16; i += 4)
+ gl_FragColor *= f;
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.forwardFun.frag b/chromium/third_party/glslang/src/Test/spv.forwardFun.frag
new file mode 100644
index 00000000000..c52cefd153a
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.forwardFun.frag
@@ -0,0 +1,39 @@
+#version 140
+
+precision mediump float;
+
+in vec4 bigColor;
+in vec4 BaseColor;
+in float d;
+
+void bar();
+float foo(vec4);
+float unreachableReturn();
+
+void main()
+{
+ vec4 color = vec4(foo(BaseColor));
+
+ bar();
+ float f = unreachableReturn();
+
+ gl_FragColor = color * f;
+}
+
+void bar()
+{
+}
+
+float unreachableReturn()
+{
+ bar();
+ if (d < 4.2)
+ return 1.2;
+ else
+ return 4.5;
+}
+
+float foo(vec4 bar)
+{
+ return bar.x + bar.y;
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.functionCall.frag b/chromium/third_party/glslang/src/Test/spv.functionCall.frag
new file mode 100644
index 00000000000..0c36f4263bd
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.functionCall.frag
@@ -0,0 +1,44 @@
+#version 140
+
+varying vec4 bigColor;
+varying vec4 BaseColor;
+varying float d;
+
+float h = 0.0;
+
+float foo(vec4 bar)
+{
+ return bar.x + bar.y;
+}
+
+void bar()
+{
+}
+
+float unreachableReturn()
+{
+ if (d < 4.2)
+ return 1.2;
+ else
+ return 4.5;
+ // might be another return inserted here by builders, has to be correct type
+}
+
+float missingReturn()
+{
+ if (d < 4.5) {
+ h = d;
+ return 3.9;
+ }
+}
+
+void main()
+{
+ vec4 color = vec4(foo(BaseColor));
+
+ bar();
+ float f = unreachableReturn();
+ float g = missingReturn();
+
+ gl_FragColor = color * f * h;
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.functionSemantics.frag b/chromium/third_party/glslang/src/Test/spv.functionSemantics.frag
new file mode 100644
index 00000000000..9ec236756ef
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.functionSemantics.frag
@@ -0,0 +1,63 @@
+#version 400
+
+in float u;
+
+int foo(int a, const int b, in int c, const in int d, out int e, inout int f)
+{
+ int sum = a + b + c + d + f; // no e, it is out only
+ // sum should be 47 now
+
+ a *= 64;
+ // no b, it is read only
+ c *= 64;
+ // no d, it is read only
+ e = 64 * 16; // e starts undefined
+ f *= 64;
+
+ sum += a + 64 * b + c + 64 * d + e + f; // everything has a value now, totaling of 64(1+2+4+8+16+32) = 64*63 = 4032
+ // sum should be 4032 + 47 = 4079
+
+ return sum;
+}
+
+int foo2(float a, vec3 b, out int r)
+{
+ r = int(3.0 * a);
+ return int(5.0 * b.y);
+}
+
+int foo3()
+{
+ if (u > 3.2) {
+ discard;
+ return 1000000;
+ }
+
+ return 2000000;
+}
+
+void main()
+{
+ int e;
+ int t = 2;
+ struct s {
+ ivec4 t;
+ } f;
+ f.t.y = 32;
+
+ // test the different qualifers
+ int color = foo(1, 2, t+t, 8, e, f.t.y);
+
+ color += 128 * (e + f.t.y); // right side should be 128(64(16 + 32)) = 393216
+ // sum should be 4079 + 393216 = 397295
+
+ // test conversions
+ float arg;
+ float ret;
+ ret = foo2(4, ivec3(1,2,3), arg); // ret = 10, param = 12.0
+ color += int(ret + arg); // adds 22, for total of 397317
+
+ color += foo3(); // theoretically, add 2000000, for total of 2397317
+
+ gl_FragColor = vec4(color);
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.image.frag b/chromium/third_party/glslang/src/Test/spv.image.frag
new file mode 100644
index 00000000000..6ecf0f972b9
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.image.frag
@@ -0,0 +1,93 @@
+#version 450
+
+layout(rgba32f, binding = 0) uniform image1D i1D;
+layout(rgba32f, binding = 1) uniform image2D i2D;
+layout(rgba32f, binding = 2) uniform image3D i3D;
+layout(rgba32f, binding = 3) uniform imageCube iCube;
+layout(rgba32f, binding = 4) uniform imageCubeArray iCubeArray;
+layout(rgba32f, binding = 5) uniform image2DRect i2DRect;
+layout(rgba32f, binding = 6) uniform image1DArray i1DArray;
+layout(rg16, binding = 7) uniform image2DArray i2DArray;
+layout(rgba32f, binding = 8) uniform imageBuffer iBuffer;
+layout(rgba32f, binding = 9) uniform image2DMS i2DMS;
+layout(rgba32f, binding = 10) uniform image2DMSArray i2DMSArray;
+
+layout(r32i, binding = 11) uniform iimage1D ii1D;
+layout(r32ui, binding = 12) uniform uimage2D ui2D;
+
+flat in int ic1D;
+flat in ivec2 ic2D;
+flat in ivec3 ic3D;
+flat in ivec4 ic4D;
+
+writeonly layout(binding = 1) uniform image2D wo2D;
+
+flat in uint value;
+
+out vec4 fragData;
+
+void main()
+{
+ ivec3 iv = ivec3(0);
+ iv.x += imageSize(i1D);
+ iv.xy += imageSize(i2D);
+ iv.xyz += imageSize(i3D);
+ iv.xy += imageSize(iCube);
+ iv.xyz += imageSize(iCubeArray);
+ iv.xy += imageSize(i2DRect);
+ iv.xy += imageSize(i1DArray);
+ iv.xyz += imageSize(i2DArray);
+ iv.x += imageSize(iBuffer);
+ iv.xy += imageSize(i2DMS);
+ iv.xyz += imageSize(i2DMSArray);
+
+ iv.x += imageSamples(i2DMS);
+ iv.x += imageSamples(i2DMSArray);
+
+ vec4 v = vec4(0.0);
+ v += imageLoad(i1D, ic1D);
+ imageStore(i1D, ic1D, v);
+ v += imageLoad(i2D, ic2D);
+ imageStore(i2D, ic2D, v);
+ v += imageLoad(i3D, ic3D);
+ imageStore(i3D, ic3D, v);
+ v += imageLoad(iCube, ic3D);
+ imageStore(iCube, ic3D, v);
+ v += imageLoad(iCubeArray, ic3D);
+ imageStore(iCubeArray, ic3D, v);
+ v += imageLoad(i2DRect, ic2D);
+ imageStore(i2DRect, ic2D, v);
+ v += imageLoad(i1DArray, ic2D);
+ imageStore(i1DArray, ic2D, v);
+ v += imageLoad(i2DArray, ic3D);
+ imageStore(i2DArray, ic3D, v);
+ v += imageLoad(iBuffer, ic1D);
+ imageStore(iBuffer, ic1D, v);
+ v += imageLoad(i2DMS, ic2D, 1);
+ imageStore(i2DMS, ic2D, 2, v);
+ v += imageLoad(i2DMSArray, ic3D, 3);
+ imageStore(i2DMSArray, ic3D, 4, v);
+
+ uint ui = 0;
+ iv.x += imageAtomicAdd(ii1D, ic1D, 10);
+ ui += imageAtomicAdd(ui2D, ic2D, value);
+ iv.x += imageAtomicMin(ii1D, ic1D, 11);
+ ui += imageAtomicMin(ui2D, ic2D, value);
+ iv.x += imageAtomicMax(ii1D, ic1D, 12);
+ ui += imageAtomicMax(ui2D, ic2D, value);
+ iv.x += imageAtomicAnd(ii1D, ic1D, 13);
+ ui += imageAtomicAnd(ui2D, ic2D, value);
+ iv.x += imageAtomicOr(ii1D, ic1D, 14);
+ ui += imageAtomicOr(ui2D, ic2D, value);
+ iv.x += imageAtomicXor(ii1D, ic1D, 15);
+ ui += imageAtomicXor(ui2D, ic2D, value);
+ iv.x += imageAtomicExchange(ii1D, ic1D, 16);
+ ui += imageAtomicExchange(ui2D, ic2D, value);
+ iv.x += imageAtomicCompSwap(ii1D, ic1D, 18, 17);
+ ui += imageAtomicCompSwap(ui2D, ic2D, 19u, value);
+
+ imageStore(wo2D, ic2D, v);
+
+ fragData = ui != iv.y ? v : vec4(0.0);
+}
+
diff --git a/chromium/third_party/glslang/src/Test/spv.int64.frag b/chromium/third_party/glslang/src/Test/spv.int64.frag
new file mode 100644
index 00000000000..ad2213b92ab
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.int64.frag
@@ -0,0 +1,228 @@
+#version 450
+
+#extension GL_ARB_gpu_shader_int64: enable
+
+layout(binding = 0) uniform Uniforms
+{
+ uint index;
+};
+
+layout(std140, binding = 1) uniform Block
+{
+ i64vec3 i64v;
+ uint64_t u64;
+} block;
+
+void main()
+{
+}
+
+void literal()
+{
+ const int64_t i64Const[3] =
+ {
+ -0x1111111111111111l, // Hex
+ -1l, // Dec
+ 040000000000l, // Oct
+ };
+
+ int64_t i64 = i64Const[index];
+
+ const uint64_t u64Const[] =
+ {
+ 0xFFFFFFFFFFFFFFFFul, // Hex
+ 4294967296UL, // Dec
+ 077777777777ul, // Oct
+ };
+
+ uint64_t u64 = u64Const[index];
+}
+
+void typeCast()
+{
+ bvec2 bv;
+ ivec2 iv;
+ uvec2 uv;
+ vec2 fv;
+ dvec2 dv;
+
+ i64vec2 i64v;
+ u64vec2 u64v;
+
+ i64v = i64vec2(bv); // bool -> int64
+ u64v = u64vec2(bv); // bool -> uint64
+
+ i64v = iv; // int -> int64
+ iv = ivec2(i64v); // int64 -> int
+
+ u64v = uv; // uint -> uint64
+ uv = uvec2(u64v); // uint64 -> uint
+
+ fv = vec2(i64v); // int64 -> float
+ dv = i64v; // int64 -> double
+
+ fv = vec2(u64v); // uint64 -> float
+ dv = u64v; // uint64 -> double
+
+ i64v = i64vec2(fv); // float -> int64
+ i64v = i64vec2(dv); // double -> int64
+
+ u64v = u64vec2(fv); // float -> uint64
+ u64v = u64vec2(dv); // double -> uint64
+
+ bv = bvec2(i64v); // int64 -> bool
+ bv = bvec2(u64v); // uint64 -> bool
+
+ u64v = i64v; // int64 -> uint64
+ i64v = i64vec2(u64v); // uint64 -> int64
+
+ uv = uvec2(i64v); // int64 -> uint
+ i64v = i64vec2(uv); // uint -> int64
+ iv = ivec2(u64v); // uint64 -> int
+ u64v = iv; // int -> uint64
+}
+
+void operators()
+{
+ u64vec3 u64v;
+ int64_t i64;
+ uvec3 uv;
+ int i;
+ bool b;
+
+ // Unary
+ u64v++;
+ i64--;
+ ++i64;
+ --u64v;
+
+ u64v = ~u64v;
+
+ i64 = +i64;
+ u64v = -u64v;
+
+ // Arithmetic
+ i64 += i64;
+ u64v -= u64v;
+ i64 *= i;
+ u64v /= uv;
+ u64v %= i;
+
+ u64v = u64v + uv;
+ i64 = i64 - i;
+ u64v = u64v * uv;
+ i64 = i64 * i;
+ i64 = i64 % i;
+
+ // Shift
+ u64v <<= i;
+ i64 >>= uv.y;
+
+ i64 = i64 << u64v.z;
+ u64v = u64v << i64;
+
+ // Relational
+ b = (u64v.x != i64);
+ b = (i64 == u64v.x);
+ b = (u64v.x > uv.y);
+ b = (i64 < i);
+ b = (u64v.y >= uv.x);
+ b = (i64 <= i);
+
+ // Bitwise
+ u64v |= i;
+ i64 = i64 | i;
+ i64 &= i;
+ u64v = u64v & uv;
+ u64v ^= i64;
+ u64v = u64v ^ i64;
+}
+
+void builtinFuncs()
+{
+ i64vec2 i64v;
+ u64vec3 u64v;
+ dvec3 dv;
+ bvec3 bv;
+
+ int64_t i64;
+ uint64_t u64;
+
+ // abs()
+ i64v = abs(i64v);
+
+ // sign()
+ i64 = sign(i64);
+
+ // min()
+ i64v = min(i64v, i64);
+ i64v = min(i64v, i64vec2(-1));
+ u64v = min(u64v, u64);
+ u64v = min(u64v, u64vec3(0));
+
+ // max()
+ i64v = max(i64v, i64);
+ i64v = max(i64v, i64vec2(-1));
+ u64v = max(u64v, u64);
+ u64v = max(u64v, u64vec3(0));
+
+ // clamp()
+ i64v = clamp(i64v, -i64, i64);
+ i64v = clamp(i64v, -i64v, i64v);
+ u64v = clamp(u64v, -u64, u64);
+ u64v = clamp(u64v, -u64v, u64v);
+
+ // mix()
+ i64 = mix(i64v.x, i64v.y, true);
+ i64v = mix(i64vec2(i64), i64vec2(-i64), bvec2(false));
+ u64 = mix(u64v.x, u64v.y, true);
+ u64v = mix(u64vec3(u64), u64vec3(-u64), bvec3(false));
+
+ // doubleBitsToInt64()
+ i64v = doubleBitsToInt64(dv.xy);
+
+ // doubleBitsToUint64()
+ u64v.x = doubleBitsToUint64(dv.z);
+
+ // int64BitsToDouble()
+ dv.xy = int64BitsToDouble(i64v);
+
+ // uint64BitsToDouble()
+ dv = uint64BitsToDouble(u64v);
+
+ // packInt2x32()
+ i64 = packInt2x32(ivec2(1, 2));
+
+ // unpackInt2x32()
+ ivec2 iv = unpackInt2x32(i64);
+
+ // packUint2x32()
+ u64 = packUint2x32(uvec2(2, 3));
+
+ // unpackUint2x32()
+ uvec2 uv = unpackUint2x32(u64);
+
+ // lessThan()
+ bv = lessThan(u64v, u64vec3(u64));
+ bv.xy = lessThan(i64v, i64vec2(i64));
+
+ // lessThanEqual()
+ bv = lessThanEqual(u64v, u64vec3(u64));
+ bv.xy = lessThanEqual(i64v, i64vec2(i64));
+
+ // greaterThan()
+ bv = greaterThan(u64v, u64vec3(u64));
+ bv.xy = greaterThan(i64v, i64vec2(i64));
+
+ // greaterThanEqual()
+ bv = greaterThanEqual(u64v, u64vec3(u64));
+ bv.xy = greaterThanEqual(i64v, i64vec2(i64));
+
+ // equal()
+ bv = equal(u64v, u64vec3(u64));
+ bv.xy = equal(i64v, i64vec2(i64));
+
+ // notEqual()
+ bv = notEqual(u64v, u64vec3(u64));
+ bv.xy = notEqual(i64v, i64vec2(i64));
+} \ No newline at end of file
diff --git a/chromium/third_party/glslang/src/Test/spv.intOps.vert b/chromium/third_party/glslang/src/Test/spv.intOps.vert
new file mode 100644
index 00000000000..30f20f93d73
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.intOps.vert
@@ -0,0 +1,72 @@
+#version 310 es
+
+in uint u1;
+in uvec2 u2;
+in uvec3 u3;
+in uvec4 u4;
+
+in float v1;
+in vec2 v2;
+in vec3 v3;
+in vec4 v4;
+
+in int i1;
+in ivec2 i2;
+in ivec3 i3;
+in ivec4 i4;
+
+out uvec4 uout;
+out ivec4 iout;
+out vec4 fout;
+
+void main()
+{
+ iout = ivec4(0);
+ uout = uvec4(0);
+ fout = vec4(0.0);
+
+ uvec2 u2out;
+ uout.xy += uaddCarry(u2, u2, u2out);
+ uout.xy += u2out;
+
+ uint u1out;
+ uout.x += usubBorrow(u1, u1, u1out);
+ uout.x += u1out;
+
+ uvec4 u4outHi, u4outLow;
+ umulExtended(u4, u4, u4outHi, u4outLow);
+ uout += u4outHi + u4outLow;
+
+ ivec4 i4outHi, i4outLow;
+ imulExtended(i4, i4, i4outHi, i4outLow);
+ iout += i4outLow + i4outHi;
+
+ ivec3 i3out;
+ fout.xyz += frexp(v3, i3out);
+ iout.xyz += i3out;
+ int i1out;
+ fout.x += frexp(v1, i1out);
+ iout.x += i1out;
+
+ fout.xy += ldexp(v2, i2);
+ fout.x += ldexp(v1, i1);
+
+ iout.x += bitfieldExtract(i1, 4, 5);
+ uout.xyz += bitfieldExtract(u3, 4, 5);
+ iout.xyz += bitfieldInsert(i3, i3, 4, 5);
+ uout.x += bitfieldInsert(u1, u1, 4, 5);
+ iout.xy += bitfieldReverse(i2);
+ uout += bitfieldReverse(u4);
+ iout.x += bitCount(i1);
+ iout.xyz += bitCount(u3);
+
+ iout.xy += findLSB(i2);
+ iout += findLSB(u4);
+ iout.x += findMSB(i1);
+ iout.xy += findMSB(u2);
+
+ uout.x += packUnorm4x8(v4);
+ uout.x += packSnorm4x8(v4);
+ fout += unpackUnorm4x8(u1);
+ fout += unpackSnorm4x8(u1);
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.interpOps.frag b/chromium/third_party/glslang/src/Test/spv.interpOps.frag
new file mode 100644
index 00000000000..24c55bf9fc7
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.interpOps.frag
@@ -0,0 +1,32 @@
+#version 450
+
+in float if1;
+in vec2 if2;
+in vec3 if3;
+in vec4 if4;
+
+flat in int samp;
+flat in vec2 offset;
+
+out vec4 fragColor;
+
+void main()
+{
+ vec4 f4 = vec4(0.0);
+ f4.x += interpolateAtCentroid(if1);
+ f4.xy += interpolateAtCentroid(if2);
+ f4.xyz += interpolateAtCentroid(if3);
+ f4 += interpolateAtCentroid(if4);
+
+ f4.x += interpolateAtSample(if1, samp);
+ f4.xy += interpolateAtSample(if2, samp);
+ f4.xyz += interpolateAtSample(if3, samp);
+ f4 += interpolateAtSample(if4, samp);
+
+ f4.x += interpolateAtOffset(if1, offset);
+ f4.xy += interpolateAtOffset(if2, offset);
+ f4.xyz += interpolateAtOffset(if3, offset);
+ f4 += interpolateAtOffset(if4, offset);
+
+ fragColor = f4;
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.layoutNested.vert b/chromium/third_party/glslang/src/Test/spv.layoutNested.vert
new file mode 100644
index 00000000000..0c4f09f1435
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.layoutNested.vert
@@ -0,0 +1,76 @@
+#version 450
+
+// should get 3 SPV types for S: no layout, 140, and 430, plus extras for interpolation or invariant differences
+struct S
+{
+ highp uvec3 a;
+ mediump mat2 b[4];
+ lowp uint c;
+};
+
+layout(set = 0, binding = 0, std140) uniform Block140
+{
+ mediump int u;
+ S s[2][3];
+ mediump vec2 v;
+} inst140;
+
+layout(set = 0, binding = 1, std430) buffer Block430
+{
+ mediump int u;
+ S s[2][3];
+ mediump vec2 v;
+} inst430;
+
+S s;
+
+// should get 5 SPV types for T: no layout, 140/row, 140/col, 430/row, and 430/col
+struct T {
+ mat2 m;
+ int a;
+};
+
+T t;
+
+struct Nestor {
+ T nestorT;
+};
+
+layout(set = 1, binding = 0, std140) uniform Bt1
+{
+ layout(row_major) Nestor nt;
+} Btn1;
+
+layout(set = 1, binding = 0, std140) uniform Bt2
+{
+ layout(column_major) Nestor nt;
+} Btn2;
+
+layout(row_major, set = 1, binding = 0, std140) uniform Bt3
+{
+ layout(column_major) Nestor ntcol;
+ Nestor ntrow; // should be row major decoration version of Nestor
+} Btn3;
+
+layout(set = 1, binding = 0, std430) buffer bBt1
+{
+ layout(row_major) Nestor nt;
+} bBtn1;
+
+layout(set = 1, binding = 0, std430) buffer bBt2
+{
+ layout(column_major) Nestor nt;
+} bBtn2;
+
+layout(set = 1, binding = 0, std430) buffer bBt3
+{
+ layout(row_major) Nestor ntcol;
+ Nestor ntrow; // should be col major decoration version of Nestor
+} bBtn3;
+
+void main()
+{
+}
+
+flat out S sout;
+invariant out S soutinv;
diff --git a/chromium/third_party/glslang/src/Test/spv.length.frag b/chromium/third_party/glslang/src/Test/spv.length.frag
new file mode 100644
index 00000000000..20e74102b3e
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.length.frag
@@ -0,0 +1,14 @@
+#version 140
+
+vec4 u[3];
+
+in vec2 v[2];
+
+void main()
+{
+ int a[5];
+
+ vec2 t = v[0] + v[1];
+
+ gl_FragColor = vec4(u.length() * v.length() * a.length());
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.localAggregates.frag b/chromium/third_party/glslang/src/Test/spv.localAggregates.frag
new file mode 100644
index 00000000000..9c86aba57ba
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.localAggregates.frag
@@ -0,0 +1,72 @@
+#version 400
+
+uniform sampler2D samp2D;
+in vec2 coord;
+in vec4 color;
+
+struct s1 {
+ int i;
+ float f;
+};
+
+struct s2 {
+ int i;
+ float f;
+ s1 s1_1;
+ vec4 bleh;
+};
+
+struct s3 {
+ s2 s2_1;
+ int i;
+ float f;
+ s1 s1_1;
+};
+
+
+flat in s1 foo;
+flat in s2 foo2;
+flat in s3 foo3;
+
+
+flat in int condition;
+
+void main()
+{
+ s2 locals2;
+ s3 locals3;
+ float localFArray[16];
+ int localIArray[8];
+
+ locals2 = foo3.s2_1;
+
+ if (foo3.s2_1.i > 0) {
+ locals2.s1_1.f = 1.0;
+ localFArray[4] = coord.x;
+ localIArray[2] = foo3.s2_1.i;
+ } else {
+ locals2.s1_1.f = coord.x;
+ localFArray[4] = 1.0;
+ localIArray[2] = 0;
+ }
+
+ if (localIArray[2] == 0)
+ ++localFArray[4];
+
+ float localArray[16];
+ int x = 5;
+ localArray[x] = coord.x;
+
+ float[16] a;
+
+ for (int i = 0; i < 16; i++)
+ a[i] = 0.0;
+
+ if (condition == 1)
+ a = localArray;
+
+ locals2.bleh = color;
+ locals2.bleh.z = coord.y;
+
+ gl_FragColor = locals2.bleh * (localFArray[4] + locals2.s1_1.f + localArray[x] + a[x]) * texture(samp2D, coord);
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.loops.frag b/chromium/third_party/glslang/src/Test/spv.loops.frag
new file mode 100644
index 00000000000..c00449cff12
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.loops.frag
@@ -0,0 +1,302 @@
+#version 140
+in vec4 bigColor;
+in vec4 bigColor1_1;
+in vec4 bigColor1_2;
+in vec4 bigColor1_3;
+in vec4 bigColor2;
+in vec4 bigColor3;
+in vec4 bigColor4;
+in vec4 bigColor5;
+in vec4 bigColor6;
+in vec4 bigColor7;
+in vec4 bigColor8;
+
+in vec4 BaseColor;
+
+in float d;
+in float d2;
+in float d3;
+in float d4;
+in float d5;
+in float d6;
+in float d7;
+in float d8;
+in float d9;
+in float d10;
+in float d11;
+in float d12;
+in float d14;
+in float d15;
+in float d16;
+in float d17;
+in float d18;
+flat in int Count;
+
+void main()
+{
+ vec4 color = BaseColor;
+
+ // Not a real loop
+ while (true) {
+ if (color.x < 0.33) {
+ color += vec4(0.33);
+ break;
+ }
+ if (color.x < 0.66) {
+ color += vec4(0.66);
+ break;
+ }
+
+ color += vec4(0.33);
+ break;
+ }
+
+ // While
+ while (color.x < d) {
+ color += bigColor;
+ }
+
+ // While (latchy)
+ while (color.z < d) {
+ color += bigColor1_1;
+ if (color.w < d)
+ continue;
+
+ color += bigColor1_1;
+ }
+
+ // While (constant)
+ while (color.x < 42.0) {
+ ++color;
+ }
+
+ // While (complicated-conditional)
+ while (color.w < d2 && color.y < d3) {
+ color += bigColor1_2;
+ }
+
+ // While (multi-exit)
+ while (color.z < d3) {
+ color += bigColor1_3;
+ if (color.y < d4)
+ break;
+ color += bigColor1_3;
+ }
+
+ // For (dynamic)
+ for (int i = 0; i < Count; ++i) {
+ color += bigColor2;
+ }
+
+ // Do while
+ do {
+ color += bigColor3;
+ } while (color.x < d2);
+
+ // For (static)
+ for (int i = 0; i < 42; ++i) {
+ color.z += d3;
+ }
+
+ // For (static) flow-control
+ for (int i = 0; i < 100; ++i) {
+ if (color.z < 20.0)
+ color.x++;
+ else
+ color.y++;
+ if (color.w < 20.0)
+ if (color.z > color.y)
+ 0; // do nothing
+ }
+
+ // For (static) flow-control with latch merge
+ for (int i = 0; i < 120; ++i) {
+ if (color.z < 20.0)
+ color.x++;
+ else
+ color.y++;
+ }
+
+ // For (static) latchy
+ for (int i = 0; i < 42; ++i) {
+ color.z += d3;
+ if (color.x < d4)
+ continue;
+ ++color.w;
+ }
+
+ // For (static) multi-exit
+ for (int i = 0; i < 42; ++i) {
+ color.z += d3;
+ if (color.x < d4)
+ break;
+ ++color.w;
+ }
+
+ // Latchy
+ do {
+ color += bigColor4;
+ if (color.x < d4)
+ continue;
+ if (color.y < d4)
+ color.y += d4;
+ else
+ color.x += d4;
+ } while (color.z < d4);
+
+ // Do while flow control
+ do {
+ color += bigColor5;
+ if (color.y < d5)
+ color.y += d5;
+ } while (color.x < d5);
+
+ // If then loop
+ if (color.x < d6) {
+ while (color.y < d6)
+ color += bigColor6;
+ } else {
+ while (color.z < d6)
+ color.z += bigColor6.z;
+ }
+
+ // If then multi-exit
+ if (color.x < d6) {
+ while (color.y < d6) {
+ color += bigColor6;
+ if (d7 < 1.0)
+ break;
+ }
+
+ } else {
+ while (color.z < d6)
+ color.z += bigColor6.z;
+ }
+
+
+ // Multi-exit
+ do {
+ if (d7 < 0.0)
+ break;
+
+ color += bigColor7;
+
+ if (d7 < 1.0) {
+ color.z++;
+ break;
+ }
+
+ color += BaseColor;
+
+ } while (true);
+
+
+ // Multi-exit2
+ do {
+ // invariant conditional break at the top of the loop. This could be a
+ // situation where unswitching the loop has no real increases in code
+ // size.
+ if (d8 < 0.0)
+ break;
+
+ color += bigColor7;
+
+ if (d8 < 1.0) {
+ color.z++;
+ if (d8 < 2.0) {
+ color.y++;
+ } else {
+ color.x++;
+ }
+ break;
+ }
+
+ color += BaseColor;
+
+ } while (color.z < d8);
+
+ // Deep exit
+ while (color.w < d9) {
+ if (d9 > d8) {
+ if (color.x <= d7) {
+ if (color.z == 5.0)
+ color.w++;
+ else
+ break;
+ }
+ }
+
+ }
+
+ // No end loop-back.
+ while (color.z < d10) {
+ color.y++;
+ if (color.y < d11) {
+ color.z++;
+ if (color.w < d12)
+ color.w++;
+ else
+ color.x++;
+ continue;
+ }
+
+ color++;
+ break;
+ }
+
+ // Multi-continue
+ while (color.x < 10.0) {
+ color += bigColor8;
+
+ if (color.z < d8)
+ if (color.w < d6)
+ continue;
+
+ color.y += bigColor8.x;
+ }
+
+ color++;
+ gl_FragColor = color;
+
+ // Early Return
+ while (color.x < d14) {
+ if (color.y < d15) {
+ return;
+ }
+ else
+ color++;
+ }
+
+ color++;
+
+ while (color.w < d16) {
+ color.w++;
+ }
+
+
+ // While (complicated-conditional)
+ while (color.w < d2 && color.y < d3) {
+ color += bigColor1_2;
+ if (color.z < d3)
+ return;
+ }
+
+
+ do {
+ if (color.y < d18)
+ return;
+ color++;
+ } while (color.x < d17);
+
+ // Early Discard
+ while (color.y < d16) {
+ if (color.w < d16) {
+ discard;
+ } else
+ color++;
+ }
+
+ color++;
+
+ gl_FragColor = color;
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.loopsArtificial.frag b/chromium/third_party/glslang/src/Test/spv.loopsArtificial.frag
new file mode 100644
index 00000000000..4eb44c2092e
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.loopsArtificial.frag
@@ -0,0 +1,67 @@
+#version 140
+in vec4 bigColor;
+in vec4 bigColor1_1;
+in vec4 bigColor1_2;
+in vec4 bigColor1_3;
+in vec4 bigColor2;
+in vec4 bigColor3;
+in vec4 bigColor4;
+in vec4 bigColor5;
+in vec4 bigColor6;
+in vec4 bigColor7;
+in vec4 bigColor8;
+
+in vec4 BaseColor;
+
+in float d;
+in float d2;
+in float d3;
+in float d4;
+in float d13;
+
+flat in int Count;
+
+void main()
+{
+ vec4 color = BaseColor;
+
+ // Latchy2
+ do {
+ color += bigColor4;
+ if (color.x < d4) {
+ color.z += 2.0;
+ if (color.z < d4) {
+ color.x++;
+ continue;
+ }
+ }
+ if (color.y < d4)
+ color.y += d4;
+ else
+ color.x += d4;
+ } while (color.z < d4);
+
+ // Immediate dominator
+ while (color.w < d13) {
+ if (color.z < d13)
+ color++;
+ else
+ color--;
+ // code from Latchy 2
+ color += bigColor4;
+ if (color.x < d4) {
+ color.z += 2.0;
+ if (color.z < d4) {
+ color.x++;
+ continue;
+ }
+ }
+ if (color.y < d4)
+ color.y += d4;
+ else
+ color.x += d4;
+ }
+
+ color++;
+ gl_FragColor = color;
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.matFun.vert b/chromium/third_party/glslang/src/Test/spv.matFun.vert
new file mode 100644
index 00000000000..70e9f81da5e
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.matFun.vert
@@ -0,0 +1,28 @@
+#version 400
+
+uniform bl {
+ uniform mat4 m4;
+ uniform mat3 m3;
+} bName;
+
+in vec3 v3;
+
+vec3 xf(mat3 m, vec3 v)
+{
+ return v * m;
+}
+
+mat3 Mat3(mat4 m)
+{
+ return mat3(m[0].xyz, m[1].xyz, m[2].xyz);
+}
+
+vec3 mxv(mat4 m4, vec3 v)
+{
+ return v * Mat3(m4);
+}
+
+void main()
+{
+ gl_Position = vec4(mxv(bName.m4, v3) + xf(bName.m3, v3), 1.0);
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.matrix.frag b/chromium/third_party/glslang/src/Test/spv.matrix.frag
new file mode 100644
index 00000000000..9fa564a59c4
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.matrix.frag
@@ -0,0 +1,46 @@
+#version 420
+
+in mat3x4 m1;
+in mat3x4 m2;
+in float f;
+in vec3 v3;
+in vec4 v4;
+
+out vec4 color;
+
+void main()
+{
+ mat3x4 sum34;
+ dmat3x4 dm;
+ vec3 sum3;
+ vec4 sum4;
+
+ sum34 = m1 - m2;
+ sum34 += m1 * f;
+ sum34 += f * m1;
+ sum34 /= matrixCompMult(m1, m2);
+ sum34 += m1 / f;
+ sum34 += f / m1;
+ sum34 += f;
+ sum34 -= f;
+ dm = dmat3x4(sum34);
+ sum34 = mat3x4(dm);
+
+ sum3 = v4 * m2;
+ sum4 = m2 * v3;
+
+ mat4x3 m43 = transpose(sum34);
+ mat4 m4 = m1 * m43;
+
+ sum4 = v4 * m4;
+
+ color = sum4;
+
+ ++sum34;
+ --sum34;
+
+ sum34 += mat3x4(f);
+ sum34 += mat3x4(v3, f, v3, f, v3, f);
+
+ color += sum3 * m43 + sum4;
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.matrix2.frag b/chromium/third_party/glslang/src/Test/spv.matrix2.frag
new file mode 100644
index 00000000000..b14d5b18faf
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.matrix2.frag
@@ -0,0 +1,50 @@
+#version 150
+
+in mat3 colorTransform;
+in vec3 Color;
+in mat4 m, n;
+
+in mat4x3 um43;
+in mat3x4 un34;
+in mat2 um2;
+in mat3 um3;
+in mat4 um4;
+
+in vec4 v;
+
+in vec3 u;
+
+out vec4 FragColor;
+
+void main()
+{
+ mat3x4 m34 = outerProduct(v, u);
+
+ m34 += mat3x4(4.3);
+
+ FragColor = vec4(Color, 1.0);
+ FragColor *= vec4(FragColor * m34, 1.0);
+
+ m34 *= v.x;
+
+ mat4 m44 = mat4(un34);
+
+ m44 += m34 * um43;
+
+ FragColor += (-m44) * v;
+
+ FragColor *= matrixCompMult(m44, m44);
+
+ m34 = transpose(um43);
+ FragColor *= vec4(FragColor * m34, 1.0);
+ FragColor *= vec4(determinant(um4));
+ mat2 inv = inverse(um2);
+ FragColor *= vec4(inv[0][0], inv[1][0], inv[0][1], inv[1][1]);
+ mat3 inv3 = inverse(um3);
+ FragColor *= vec4(inv3[2][1]);
+
+ mat4 inv4 = inverse(um4);
+ FragColor *= inv4;
+
+ FragColor = vec4(FragColor * matrixCompMult(un34, un34), FragColor.w);
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.memoryQualifier.frag b/chromium/third_party/glslang/src/Test/spv.memoryQualifier.frag
new file mode 100644
index 00000000000..889ad9bd582
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.memoryQualifier.frag
@@ -0,0 +1,38 @@
+#version 450
+
+layout(binding = 0, r32f) uniform coherent image1D i1D;
+layout(binding = 1, r32f) uniform volatile image2D i2D;
+layout(binding = 2, r32f) uniform restrict image2DRect i2DRect;
+layout(binding = 3, r32f) uniform readonly image3D i3D;
+layout(binding = 3, r32f) uniform writeonly imageCube iCube;
+
+struct Data
+{
+ float f1;
+ vec2 f2;
+};
+
+coherent buffer Buffer
+{
+ volatile float f1;
+ restrict vec2 f2;
+ readonly vec3 f3;
+ writeonly vec4 f4;
+ int i1;
+ Data data;
+};
+
+void main()
+{
+ vec4 texel = imageLoad(i1D, 1);
+ texel += imageLoad(i2D, ivec2(1));
+ texel += imageLoad(i2DRect, ivec2(1));
+ texel += imageLoad(i3D, ivec3(1));
+ imageStore(iCube, ivec3(1), texel);
+
+ texel[i1] = f1;
+ texel.xy += f2;
+ texel.xyz -= f3;
+ texel.w += data.f1 + data.f2[1];
+ f4 = texel;
+} \ No newline at end of file
diff --git a/chromium/third_party/glslang/src/Test/spv.merge-unreachable.frag b/chromium/third_party/glslang/src/Test/spv.merge-unreachable.frag
new file mode 100644
index 00000000000..aa93e4431c5
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.merge-unreachable.frag
@@ -0,0 +1,7 @@
+#version 450
+layout(location=1) in highp vec4 v;
+void main (void)
+{
+ if (v == vec4(0.1,0.2,0.3,0.4)) discard;
+ else return;
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.newTexture.frag b/chromium/third_party/glslang/src/Test/spv.newTexture.frag
new file mode 100644
index 00000000000..1a2c8e6f2ae
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.newTexture.frag
@@ -0,0 +1,72 @@
+#version 430
+
+uniform sampler2D s2D;
+uniform sampler2DRect sr;
+uniform sampler3D s3D;
+uniform samplerCube sCube;
+uniform samplerCubeShadow sCubeShadow;
+uniform samplerCubeArrayShadow sCubeArrayShadow;
+uniform sampler2DShadow s2DShadow;
+uniform sampler2DArray s2DArray;
+uniform sampler2DArrayShadow s2DArrayShadow;
+
+uniform isampler2D is2D;
+uniform isampler3D is3D;
+uniform isamplerCube isCube;
+uniform isampler2DArray is2DArray;
+uniform isampler2DMS is2Dms;
+
+uniform usampler2D us2D;
+uniform usampler3D us3D;
+uniform usamplerCube usCube;
+uniform usampler2DArray us2DArray;
+
+in float c1D;
+in vec2 c2D;
+in vec3 c3D;
+in vec4 c4D;
+
+flat in int ic1D;
+flat in ivec2 ic2D;
+flat in ivec3 ic3D;
+flat in ivec4 ic4D;
+
+out vec4 FragData;
+
+void main()
+{
+ vec4 v = texture(s2D, c2D);
+ v.y += texture(sCubeArrayShadow, c4D, c1D);
+ v += textureProj(s3D, c4D);
+ v += textureLod(s2DArray, c3D, 1.2);
+ v.y += textureOffset(s2DShadow, c3D, ivec2(3), c1D);
+ v += texelFetch(s3D, ic3D, ic1D);
+ v += texelFetchOffset(s2D, ic2D, 4, ivec2(3));
+ v += texelFetchOffset(sr, ic2D, ivec2(4));
+ v.y += textureLodOffset(s2DShadow, c3D, c1D, ivec2(3));
+ v += textureProjLodOffset(s2D, c3D, c1D, ivec2(3));
+ v += textureGrad(sCube, c3D, c3D, c3D);
+ v.x += textureGradOffset(s2DArrayShadow, c4D, c2D, c2D, ivec2(3));
+ v += textureProjGrad(s3D, c4D, c3D, c3D);
+ v += textureProjGradOffset(s2D, c3D, c2D, c2D, ivec2(3));
+
+ ivec4 iv = texture(is2D, c2D);
+ v += vec4(iv);
+ iv = textureProjOffset(is2D, c4D, ivec2(3));
+ v += vec4(iv);
+ iv = textureProjLod(is2D, c3D, c1D);
+ v += vec4(iv);
+ iv = textureProjGrad(is2D, c3D, c2D, c2D);
+ v += vec4(iv);
+ iv = texture(is3D, c3D, 4.2);
+ v += vec4(iv);
+ iv = textureLod(isCube, c3D, c1D);
+ v += vec4(iv);
+ iv = texelFetch(is2DArray, ic3D, ic1D);
+ v += vec4(iv);
+
+ ivec2 iv2 = textureSize(sCubeShadow, 2);
+ // iv2 += textureSize(is2Dms);
+
+ FragData = v + vec4(iv2, 0.0, 0.0);
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.noDeadDecorations.vert b/chromium/third_party/glslang/src/Test/spv.noDeadDecorations.vert
new file mode 100644
index 00000000000..88984970b53
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.noDeadDecorations.vert
@@ -0,0 +1,13 @@
+#version 310 es
+precision mediump float;
+
+float func(float a)
+{
+ return -a;
+ a = a * -1.0;
+}
+
+void main()
+{
+ gl_Position.x = func(0.0);
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.nonSquare.vert b/chromium/third_party/glslang/src/Test/spv.nonSquare.vert
new file mode 100644
index 00000000000..70682d0134a
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.nonSquare.vert
@@ -0,0 +1,25 @@
+#version 140
+
+in vec3 v3;
+in vec4 v4;
+
+out mat3x2 m32;
+
+const vec2 cv2 = vec2(10.0, 20.0);
+const mat2x4 m24 = mat2x4(3.0);
+const mat4x2 m42 = mat4x2(1.0, 2.0,
+ 3.0, 4.0,
+ 5.0, 6.0,
+ 7.0, 8.0);
+
+void main()
+{
+ mat2x3 m23;
+ vec2 a, b;
+
+ a = v3 * m23;
+ b = m32 * v3;
+
+ gl_Position = vec4(m23 * m32 * v3, m24[1][3]) +
+ (m24 * m42) * v4 + cv2 * m42 + m24 * cv2 + vec4(cv2[1], cv2.x, m42[2][1], m42[2][0]);
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.precise.tesc b/chromium/third_party/glslang/src/Test/spv.precise.tesc
new file mode 100644
index 00000000000..35de26b8fc5
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.precise.tesc
@@ -0,0 +1,24 @@
+#version 310 es
+#extension GL_EXT_tessellation_shader : require
+#extension GL_EXT_gpu_shader5 : require
+
+layout(vertices = 3) out;
+
+layout(location = 0) in highp vec2 in_tc_position[];
+layout(location = 1) in highp float in_tc_tessParam[];
+
+layout(location = 0) out highp vec2 in_te_position[];
+
+precise gl_TessLevelOuter;
+
+void main (void)
+{
+ in_te_position[gl_InvocationID] = in_tc_position[gl_InvocationID];
+
+ gl_TessLevelInner[0] = 5.0;
+ gl_TessLevelInner[1] = 5.0;
+
+ gl_TessLevelOuter[0] = 1.0 + 59.0 * 0.5 * (in_tc_tessParam[1] + in_tc_tessParam[2]);
+ gl_TessLevelOuter[1] = 1.0 + 59.0 * 0.5 * (in_tc_tessParam[2] + in_tc_tessParam[0]);
+ gl_TessLevelOuter[2] = 1.0 + 59.0 * 0.5 * (in_tc_tessParam[0] + in_tc_tessParam[1]);
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.precise.tese b/chromium/third_party/glslang/src/Test/spv.precise.tese
new file mode 100644
index 00000000000..874ea840888
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.precise.tese
@@ -0,0 +1,36 @@
+#version 310 es
+#extension GL_EXT_tessellation_shader : require
+#extension GL_EXT_gpu_shader5 : require
+
+layout(triangles, equal_spacing) in;
+
+layout(location = 0) in highp vec2 in_te_position[];
+
+layout(location = 0) out mediump vec4 in_f_color;
+
+precise gl_Position;
+
+void main(void) {
+ highp vec2 pos = gl_TessCoord.x * in_te_position[0] +
+ gl_TessCoord.y * in_te_position[1] +
+ gl_TessCoord.z * in_te_position[2];
+
+ highp float f =
+ sqrt(3.0 * min(gl_TessCoord.x, min(gl_TessCoord.y, gl_TessCoord.z))) *
+ 0.5 +
+ 0.5;
+ in_f_color = vec4(gl_TessCoord * f, 1.0);
+
+ // Offset the position slightly, based on the parity of the bits in the float
+ // representation.
+ // This is done to detect possible small differences in edge vertex positions
+ // between patches.
+ uvec2 bits = floatBitsToUint(pos);
+ uint numBits = 0u;
+ for (uint i = 0u; i < 32u; i++)
+ numBits +=
+ ((bits[0] << i) & 1u) + ((bits[1] << i) & 1u);
+ pos += float(numBits & 1u) * 0.04;
+
+ gl_Position = vec4(pos, 0.0, 1.0);
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.precision.frag b/chromium/third_party/glslang/src/Test/spv.precision.frag
new file mode 100644
index 00000000000..0d282d740a3
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.precision.frag
@@ -0,0 +1,60 @@
+#version 310 es
+precision mediump float;
+in lowp float lowfin;
+in mediump float mediumfin;
+in highp vec4 highfin;
+
+highp int uniform_high;
+mediump int uniform_medium;
+lowp int uniform_low;
+bvec2 ub2;
+
+out mediump vec4 mediumfout;
+
+highp float global_highp;
+
+lowp vec2 foo(mediump vec3 mv3)
+{
+ return highfin.xy;
+}
+
+bool boolfun(bvec2 bv2)
+{
+ return bv2 == bvec2(false, true);
+}
+
+struct S {
+ highp float a;
+ lowp float b;
+};
+
+in S s;
+
+void main()
+{
+ lowp int sum = uniform_medium + uniform_high;
+
+ sum += uniform_high;
+ sum += uniform_low;
+
+ // test maxing precisions of args to get precision of builtin
+ lowp float arg1 = 3.2;
+ mediump float arg2 = 1023908.2;
+ lowp float d = distance(lowfin, mediumfin);
+
+ global_highp = length(highfin);
+
+ highp vec4 local_highp = vec4(global_highp);
+
+ mediumfout = vec4(sin(d)) + arg2 + local_highp;
+
+ sum += 4 + ((ivec2(uniform_low) * ivec2(uniform_high) + ivec2((/* comma operator */uniform_low, uniform_high)))).x;
+
+ mediumfout += vec4(sum);
+
+ if (boolfun(ub2))
+ ++mediumfout;
+
+ mediumfout *= s.a;
+ mediumfout *= s.b;
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.prepost.frag b/chromium/third_party/glslang/src/Test/spv.prepost.frag
new file mode 100644
index 00000000000..9627b7e2d99
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.prepost.frag
@@ -0,0 +1,38 @@
+#version 140
+
+void main()
+{
+ struct s {
+ float y[5];
+ } str;
+
+ float t;
+ int index = 5; // all indexing is 4
+
+ str.y[4] = 2.0; // 2.0
+ t = ++str.y[--index]; // 3.0
+ str.y[4] += t; // 6.0
+ t = str.y[4]--; // 5.0 (t = 6.0)
+ str.y[index++] += t; // 11.0
+ --str.y[--index]; // 10.0
+
+ float x = str.y[4];
+ ++x;
+ --x;
+ x++;
+ x--;
+
+ // x is 10.0
+
+ float y = x * ++x; // 10 * 11
+ float z = y * x--; // 110 * 11
+
+ // x is 10.0
+ // z is 1210.0
+
+ vec4 v = vec4(1.0, 2.0, 3.0, 4.0);
+ v.y = v.z--; // (1,3,2,4)
+ v.x = --v.w; // (3,3,2,3)
+
+ gl_FragColor = z * v;// (3630.0, 3630.0, 2420.0, 3630.0)
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.pushConstant.vert b/chromium/third_party/glslang/src/Test/spv.pushConstant.vert
new file mode 100644
index 00000000000..5fb64adf704
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.pushConstant.vert
@@ -0,0 +1,17 @@
+#version 400
+
+layout(push_constant) uniform Material {
+ int kind;
+ float fa[3];
+} matInst;
+
+out vec4 color;
+
+void main()
+{
+ switch (matInst.kind) {
+ case 1: color = vec4(0.2); break;
+ case 2: color = vec4(0.5); break;
+ default: color = vec4(0.0); break;
+ }
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.qualifiers.vert b/chromium/third_party/glslang/src/Test/spv.qualifiers.vert
new file mode 100644
index 00000000000..ee3330f4080
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.qualifiers.vert
@@ -0,0 +1,19 @@
+#version 430 core
+
+in vec4 inV;
+
+centroid out vec4 outVc;
+smooth out vec4 outVs;
+flat out vec4 outVf;
+noperspective out vec4 outVn;
+
+centroid noperspective out vec4 outVcn;
+
+void main()
+{
+ outVc = inV;
+ outVs = inV;
+ outVf = inV;
+ outVn = inV;
+ outVcn = inV;
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.queryL.frag b/chromium/third_party/glslang/src/Test/spv.queryL.frag
new file mode 100644
index 00000000000..91df38330ab
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.queryL.frag
@@ -0,0 +1,64 @@
+#version 430 core
+
+uniform sampler1D samp1D;
+uniform isampler2D isamp2D;
+uniform usampler2D usamp2D;
+uniform isampler3D isamp3D;
+uniform usampler3D usamp3D;
+uniform samplerCube sampCube;
+uniform isamplerCube isampCube;
+uniform isampler1DArray isamp1DA;
+uniform sampler2DArray samp2DA;
+uniform usampler2DArray usamp2DA;
+uniform isamplerCubeArray isampCubeA;
+uniform usamplerCubeArray usampCubeA;
+
+uniform sampler1DShadow samp1Ds;
+uniform sampler2DShadow samp2Ds;
+uniform samplerCubeShadow sampCubes;
+uniform sampler1DArrayShadow samp1DAs;
+uniform sampler2DArrayShadow samp2DAs;
+uniform samplerCubeArrayShadow sampCubeAs;
+
+uniform samplerBuffer sampBuf;
+uniform sampler2DRect sampRect;
+
+void main()
+{
+ vec2 lod;
+ float pf;
+ vec2 pf2;
+ vec3 pf3;
+
+ lod = textureQueryLod(samp1D, pf);
+ lod += textureQueryLod(isamp2D, pf2);
+ lod += textureQueryLod(usamp3D, pf3);
+ lod += textureQueryLod(sampCube, pf3);
+ lod += textureQueryLod(isamp1DA, pf);
+ lod += textureQueryLod(usamp2DA, pf2);
+ lod += textureQueryLod(isampCubeA, pf3);
+
+ lod += textureQueryLod(samp1Ds, pf);
+ lod += textureQueryLod(samp2Ds, pf2);
+ lod += textureQueryLod(sampCubes, pf3);
+ lod += textureQueryLod(samp1DAs, pf);
+ lod += textureQueryLod(samp2DAs, pf2);
+ lod += textureQueryLod(sampCubeAs, pf3);
+
+ int levels;
+
+ levels = textureQueryLevels(samp1D);
+ levels += textureQueryLevels(usamp2D);
+ levels += textureQueryLevels(isamp3D);
+ levels += textureQueryLevels(isampCube);
+ levels += textureQueryLevels(isamp1DA);
+ levels += textureQueryLevels(samp2DA);
+ levels += textureQueryLevels(usampCubeA);
+
+ levels = textureQueryLevels(samp1Ds);
+ levels += textureQueryLevels(samp2Ds);
+ levels += textureQueryLevels(sampCubes);
+ levels += textureQueryLevels(samp1DAs);
+ levels += textureQueryLevels(samp2DAs);
+ levels += textureQueryLevels(sampCubeAs);
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.separate.frag b/chromium/third_party/glslang/src/Test/spv.separate.frag
new file mode 100644
index 00000000000..10704509bef
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.separate.frag
@@ -0,0 +1,95 @@
+#version 400
+
+uniform sampler s;
+uniform samplerShadow sShadow;
+uniform sampler sA[4];
+uniform texture2D t2d;
+uniform texture3D t3d[4];
+flat in int i;
+
+out vec4 color;
+
+void main()
+{
+ color = texture(sampler2D(t2d, s), vec2(0.5));
+ color += texture(sampler3D(t3d[i], sA[2]), vec3(0.5));
+ color += texture(sampler2D(t2d, s), vec2(0.5));
+}
+
+uniform texture2D tex2D;
+uniform textureCube texCube;
+uniform textureCubeArray texCubeArray;
+uniform itextureCubeArray itexCubeArray;
+uniform utextureCubeArray utexCubeArray;
+uniform itexture1DArray itex1DArray;
+uniform utexture1D utex1D;
+uniform itexture1D itex1D;
+uniform utexture1DArray utex1DArray;
+uniform textureBuffer texBuffer;
+uniform texture2DArray tex2DArray;
+uniform itexture2D itex2D;
+uniform itexture3D itex3D;
+uniform itextureCube itexCube;
+uniform itexture2DArray itex2DArray;
+uniform utexture2D utex2D;
+uniform utexture3D utex3D;
+uniform utextureCube utexCube;
+uniform utexture2DArray utex2DArray;
+uniform itexture2DRect itex2DRect;
+uniform utexture2DRect utex2DRect;
+uniform itextureBuffer itexBuffer;
+uniform utextureBuffer utexBuffer;
+uniform texture2DMS tex2DMS;
+uniform itexture2DMS itex2DMS;
+uniform utexture2DMS utex2DMS;
+uniform texture2DMSArray tex2DMSArray;
+uniform itexture2DMSArray itex2DMSArray;
+uniform utexture2DMSArray utex2DMSArray;
+uniform texture1D tex1D;
+uniform texture3D tex3D;
+uniform texture2DRect tex2DRect;
+uniform texture1DArray tex1DArray;
+
+void foo()
+{
+ sampler2D (tex2D, s);
+ samplerCube (texCube, s);
+ samplerCubeArray (texCubeArray, s);
+ samplerCubeArrayShadow (texCubeArray, sShadow);
+ isamplerCubeArray (itexCubeArray, s);
+ usamplerCubeArray (utexCubeArray, s);
+ sampler1DArrayShadow (tex1DArray, sShadow);
+ isampler1DArray (itex1DArray, s);
+ usampler1D (utex1D, s);
+ isampler1D (itex1D, s);
+ usampler1DArray (utex1DArray, s);
+ samplerBuffer (texBuffer, s);
+ samplerCubeShadow (texCube, sShadow);
+ sampler2DArray (tex2DArray, s);
+ sampler2DArrayShadow (tex2DArray, sShadow);
+ isampler2D (itex2D, s);
+ isampler3D (itex3D, s);
+ isamplerCube (itexCube, s);
+ isampler2DArray (itex2DArray, s);
+ usampler2D (utex2D, s);
+ usampler3D (utex3D, s);
+ usamplerCube (utexCube, s);
+ usampler2DArray (utex2DArray, s);
+ isampler2DRect (itex2DRect, s);
+ usampler2DRect (utex2DRect, s);
+ isamplerBuffer (itexBuffer, s);
+ usamplerBuffer (utexBuffer, s);
+ sampler2DMS (tex2DMS, s);
+ isampler2DMS (itex2DMS, s);
+ usampler2DMS (utex2DMS, s);
+ sampler2DMSArray (tex2DMSArray, s);
+ isampler2DMSArray (itex2DMSArray, s);
+ usampler2DMSArray (utex2DMSArray, s);
+ sampler1D (tex1D, s);
+ sampler1DShadow (tex1D, sShadow);
+ sampler3D (tex3D, s);
+ sampler2DShadow (tex2D, sShadow);
+ sampler2DRect (tex2DRect, s);
+ sampler2DRectShadow (tex2DRect, sShadow);
+ sampler1DArray (tex1DArray, s);
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.set.vert b/chromium/third_party/glslang/src/Test/spv.set.vert
new file mode 100644
index 00000000000..e116c02bca2
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.set.vert
@@ -0,0 +1,14 @@
+#version 450
+
+layout(set = 4, binding = 7) uniform sampler2D samp2D;
+
+layout(set = 0, binding = 8) buffer setBuf {
+ vec4 color;
+} setBufInst;
+
+out vec4 color;
+
+void main()
+{
+ color = setBufInst.color;
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.shaderBallot.comp b/chromium/third_party/glslang/src/Test/spv.shaderBallot.comp
new file mode 100644
index 00000000000..6b28c67c8d0
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.shaderBallot.comp
@@ -0,0 +1,59 @@
+#version 450
+
+#extension GL_ARB_gpu_shader_int64: enable
+#extension GL_ARB_shader_ballot: enable
+
+layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in;
+
+layout(binding = 0) buffer Buffers
+{
+ vec4 f4;
+ ivec4 i4;
+ uvec4 u4;
+} data[4];
+
+void main()
+{
+ uint invocation = (gl_SubGroupInvocationARB + gl_SubGroupSizeARB) % 4;
+
+ uint64_t relMask = gl_SubGroupEqMaskARB +
+ gl_SubGroupGeMaskARB +
+ gl_SubGroupGtMaskARB +
+ gl_SubGroupLeMaskARB +
+ gl_SubGroupLtMaskARB;
+
+ if (relMask == ballotARB(true))
+ {
+ data[invocation].f4.x = readInvocationARB(data[0].f4.x, invocation);
+ data[invocation].f4.xy = readInvocationARB(data[1].f4.xy, invocation);
+ data[invocation].f4.xyz = readInvocationARB(data[2].f4.xyz, invocation);
+ data[invocation].f4 = readInvocationARB(data[3].f4, invocation);
+
+ data[invocation].i4.x = readInvocationARB(data[0].i4.x, invocation);
+ data[invocation].i4.xy = readInvocationARB(data[1].i4.xy, invocation);
+ data[invocation].i4.xyz = readInvocationARB(data[2].i4.xyz, invocation);
+ data[invocation].i4 = readInvocationARB(data[3].i4, invocation);
+
+ data[invocation].u4.x = readInvocationARB(data[0].u4.x, invocation);
+ data[invocation].u4.xy = readInvocationARB(data[1].u4.xy, invocation);
+ data[invocation].u4.xyz = readInvocationARB(data[2].u4.xyz, invocation);
+ data[invocation].u4 = readInvocationARB(data[3].u4, invocation);
+ }
+ else
+ {
+ data[invocation].f4.x = readFirstInvocationARB(data[0].f4.x);
+ data[invocation].f4.xy = readFirstInvocationARB(data[1].f4.xy);
+ data[invocation].f4.xyz = readFirstInvocationARB(data[2].f4.xyz);
+ data[invocation].f4 = readFirstInvocationARB(data[3].f4);
+
+ data[invocation].i4.x = readFirstInvocationARB(data[0].i4.x);
+ data[invocation].i4.xy = readFirstInvocationARB(data[1].i4.xy);
+ data[invocation].i4.xyz = readFirstInvocationARB(data[2].i4.xyz);
+ data[invocation].i4 = readFirstInvocationARB(data[3].i4);
+
+ data[invocation].u4.x = readFirstInvocationARB(data[0].u4.x);
+ data[invocation].u4.xy = readFirstInvocationARB(data[1].u4.xy);
+ data[invocation].u4.xyz = readFirstInvocationARB(data[2].u4.xyz);
+ data[invocation].u4 = readFirstInvocationARB(data[3].u4);
+ }
+} \ No newline at end of file
diff --git a/chromium/third_party/glslang/src/Test/spv.shaderGroupVote.comp b/chromium/third_party/glslang/src/Test/spv.shaderGroupVote.comp
new file mode 100644
index 00000000000..513d06a633a
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.shaderGroupVote.comp
@@ -0,0 +1,21 @@
+#version 450
+
+#extension GL_ARB_shader_group_vote : enable
+
+layout(local_size_x = 4, local_size_y = 4) in;
+
+layout(std430, binding = 0) buffer Buffers
+{
+ bool b;
+};
+
+void main()
+{
+ bool b1 = b;
+
+ b1 = anyInvocationARB(b1);
+ b1 = allInvocationsARB(b1);
+ b1 = allInvocationsEqualARB(b1);
+
+ b = b1;
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.shiftOps.frag b/chromium/third_party/glslang/src/Test/spv.shiftOps.frag
new file mode 100644
index 00000000000..5049cc84bdc
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.shiftOps.frag
@@ -0,0 +1,18 @@
+#version 450
+
+flat in int i1;
+flat in uint u1;
+flat in ivec3 i3;
+flat in uvec3 u3;
+
+out ivec3 icolor;
+out uvec3 ucolor;
+
+void main()
+{
+ icolor = i3 << u1;
+ icolor <<= 4u;
+
+ ucolor = u3 >> i1;
+ ucolor >>= 5;
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.shortCircuit.frag b/chromium/third_party/glslang/src/Test/spv.shortCircuit.frag
new file mode 100755
index 00000000000..ca031c2d00c
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.shortCircuit.frag
@@ -0,0 +1,50 @@
+#version 400
+
+flat in ivec4 uiv4;
+in vec4 uv4;
+bool ub;
+bool uba;
+bvec4 ub41, ub42;
+in float uf;
+flat in int ui;
+
+out float of1;
+out vec4 of4;
+
+bool foo() { ++of1; return of1 > 10.0; }
+
+void main()
+{
+ of1 = 0.0;
+ of4 = vec4(0.0);
+
+ if (ub || ui > 2) // not worth short circuiting
+ ++of1;
+
+ if (ub && !uba) // not worth short circuiting
+ ++of1;
+
+ if (ub || foo()) // must short circuit
+ ++of1;
+
+ if (ub && foo()) // must short circuit
+ ++of1;
+
+ if (foo() || ub) // not worth short circuiting
+ ++of1;
+
+ if (foo() && ub) // not worth short circuiting
+ ++of1;
+
+ if (ub || ++of1 > 1.0) // must short circuit
+ ++of4;
+
+ if (++of1 > 1.0 || ub) // not worth short circuiting
+ ++of4;
+
+ if (ub || sin(uf) * 4.0 > of1) // worth short circuiting
+ ++of1;
+
+ if (ub && sin(uf) * 4.0 > of1) // worth short circuiting
+ ++of1;
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.simpleFunctionCall.frag b/chromium/third_party/glslang/src/Test/spv.simpleFunctionCall.frag
new file mode 100644
index 00000000000..7513ce317e1
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.simpleFunctionCall.frag
@@ -0,0 +1,13 @@
+#version 150
+
+in vec4 BaseColor;
+
+vec4 foo()
+{
+ return BaseColor;
+}
+
+void main()
+{
+ gl_FragColor = foo();
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.simpleMat.vert b/chromium/third_party/glslang/src/Test/spv.simpleMat.vert
new file mode 100644
index 00000000000..22f5a379162
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.simpleMat.vert
@@ -0,0 +1,19 @@
+#version 330
+
+varying mat4 mvp;
+
+in vec4 v;
+in mat3 am3;
+in mat4 arraym[3];
+
+out float f;
+out vec4 glPos;
+//out mat4 mout[2];
+
+void main()
+{
+ //needs complex output blocks to work: gl_Position = mvp * v;
+ glPos = mvp * v;
+ f = am3[2][1] + arraym[1][2][3];
+ //mout[1] = arraym[2];
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.sparseTexture.frag b/chromium/third_party/glslang/src/Test/spv.sparseTexture.frag
new file mode 100644
index 00000000000..8f8c0cbf065
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.sparseTexture.frag
@@ -0,0 +1,91 @@
+#version 450
+#extension GL_ARB_sparse_texture2: enable
+
+uniform sampler2D s2D;
+uniform sampler3D s3D;
+uniform sampler2DShadow s2DShadow;
+uniform samplerCubeShadow sCubeShadow;
+uniform sampler2DArrayShadow s2DArrayShadow;
+uniform sampler2DRectShadow s2DRectShadow;
+uniform samplerCubeArrayShadow sCubeArrayShadow;
+uniform sampler2DMS s2DMS;
+
+uniform isamplerCube isCube;
+uniform isampler2DArray is2DArray;
+
+uniform usamplerCubeArray usCubeArray;
+uniform usampler2DRect us2DRect;
+
+layout(rgba32f) uniform image2D i2D;
+layout(rgba32i) uniform iimage3D ii3D;
+layout(rgba32f) uniform image2DMS i2DMS;
+
+in vec2 c2;
+in vec3 c3;
+in vec4 c4;
+
+in flat ivec2 ic2;
+in flat ivec3 ic3;
+
+in flat ivec2 offsets[4];
+
+out vec4 outColor;
+
+void main()
+{
+ int resident = 0;
+ vec4 texel = vec4(0.0);
+ ivec4 itexel = ivec4(0);
+ uvec4 utexel = uvec4(0);
+
+ resident |= sparseTextureARB(s2D, c2, texel);
+ resident |= sparseTextureARB(s3D, c3, texel, 2.0);
+ resident |= sparseTextureARB(isCube, c3, itexel);
+ resident |= sparseTextureARB(s2DShadow, c3, texel.x);
+ resident |= sparseTextureARB(sCubeArrayShadow, c4, 1.0, texel.x);
+
+ resident |= sparseTextureLodARB(s2D, c2, 2.0, texel);
+ resident |= sparseTextureLodARB(usCubeArray, c4, 1.0, utexel);
+ resident |= sparseTextureLodARB(s2DShadow, c3, 2.0, texel.y);
+
+ resident |= sparseTextureOffsetARB(s3D, c3, ivec3(2), texel, 2.0);
+ resident |= sparseTextureOffsetARB(us2DRect, c2, ivec2(3), utexel);
+ resident |= sparseTextureOffsetARB(s2DArrayShadow, c4, ivec2(5), texel.z);
+
+ resident |= sparseTexelFetchARB(s2D, ivec2(c2), 2, texel);
+ resident |= sparseTexelFetchARB(us2DRect, ivec2(c2), utexel);
+ resident |= sparseTexelFetchARB(s2DMS, ivec2(c2), 4, texel);
+
+ resident |= sparseTexelFetchOffsetARB(s3D, ivec3(c3), 2, ivec3(4), texel);
+ resident |= sparseTexelFetchOffsetARB(us2DRect, ivec2(c2), ivec2(3), utexel);
+
+ resident |= sparseTextureLodOffsetARB(s2D, c2, 2.0, ivec2(5), texel);
+ resident |= sparseTextureLodOffsetARB(is2DArray, c3, 2.0, ivec2(6), itexel);
+ resident |= sparseTextureLodOffsetARB(s2DShadow, c3, 2.0, ivec2(7), texel.z);
+
+ resident |= sparseTextureGradARB(s3D, c3, c3, c3, texel);
+ resident |= sparseTextureGradARB(sCubeShadow, c4, c3, c3, texel.y);
+ resident |= sparseTextureGradARB(usCubeArray, c4, c3, c3, utexel);
+
+ resident |= sparseTextureGradOffsetARB(s2D, c2, c2, c2, ivec2(5), texel);
+ resident |= sparseTextureGradOffsetARB(s2DRectShadow, c3, c2, c2, ivec2(6), texel.w);
+ resident |= sparseTextureGradOffsetARB(is2DArray, c3, c2, c2, ivec2(2), itexel);
+
+ resident |= sparseTextureGatherARB(s2D, c2, texel);
+ resident |= sparseTextureGatherARB(is2DArray, c3, itexel, 2);
+ resident |= sparseTextureGatherARB(s2DArrayShadow, c3, 2.0, texel);
+
+ resident |= sparseTextureGatherOffsetARB(s2D, c2, ivec2(4), texel);
+ resident |= sparseTextureGatherOffsetARB(is2DArray, c3, ivec2(5), itexel, 2);
+ resident |= sparseTextureGatherOffsetARB(s2DRectShadow, c2, 2.0, ivec2(7), texel);
+
+ resident |= sparseTextureGatherOffsetsARB(s2D, c2, offsets, texel);
+ resident |= sparseTextureGatherOffsetsARB(is2DArray, c3, offsets, itexel, 2);
+ resident |= sparseTextureGatherOffsetsARB(s2DRectShadow, c2, 2.0, offsets, texel);
+
+ resident |= sparseImageLoadARB(i2D, ic2, texel);
+ resident |= sparseImageLoadARB(ii3D, ic3, itexel);
+ resident |= sparseImageLoadARB(i2DMS, ic2, 3, texel);
+
+ outColor = sparseTexelsResidentARB(resident) ? texel : vec4(itexel) + vec4(utexel);
+} \ No newline at end of file
diff --git a/chromium/third_party/glslang/src/Test/spv.sparseTextureClamp.frag b/chromium/third_party/glslang/src/Test/spv.sparseTextureClamp.frag
new file mode 100644
index 00000000000..5040782f227
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.sparseTextureClamp.frag
@@ -0,0 +1,70 @@
+#version 450
+#extension GL_ARB_sparse_texture_clamp: enable
+
+uniform sampler2D s2D;
+uniform sampler3D s3D;
+uniform sampler2DShadow s2DShadow;
+uniform samplerCubeShadow sCubeShadow;
+uniform sampler2DArrayShadow s2DArrayShadow;
+uniform sampler2DRectShadow s2DRectShadow;
+uniform samplerCubeArrayShadow sCubeArrayShadow;
+
+uniform isamplerCube isCube;
+uniform isampler2DArray is2DArray;
+
+uniform usamplerCubeArray usCubeArray;
+uniform usampler2DRect us2DRect;
+
+in vec2 c2;
+in vec3 c3;
+in vec4 c4;
+
+in float lodClamp;
+
+out vec4 outColor;
+
+void main()
+{
+ int resident = 0;
+ vec4 texel = vec4(0.0);
+ ivec4 itexel = ivec4(0);
+ uvec4 utexel = uvec4(0);
+
+ resident |= sparseTextureClampARB(s2D, c2, lodClamp, texel);
+ resident |= sparseTextureClampARB(s3D, c3, lodClamp, texel, 2.0);
+ resident |= sparseTextureClampARB(isCube, c3, lodClamp, itexel);
+ resident |= sparseTextureClampARB(s2DShadow, c3, lodClamp, texel.x);
+ resident |= sparseTextureClampARB(sCubeArrayShadow, c4, 1.0, lodClamp, texel.x);
+
+ texel += textureClampARB(s2D, c2, lodClamp);
+ texel += textureClampARB(s3D, c3, lodClamp, 2.0);
+ itexel += textureClampARB(isCube, c3, lodClamp);
+ texel.x += textureClampARB(s2DShadow, c3, lodClamp);
+ texel.x += textureClampARB(sCubeArrayShadow, c4, 1.0, lodClamp);
+
+ resident |= sparseTextureOffsetClampARB(s3D, c3, ivec3(2), lodClamp, texel, 2.0);
+ resident |= sparseTextureOffsetClampARB(us2DRect, c2, ivec2(3), lodClamp, utexel);
+ resident |= sparseTextureOffsetClampARB(s2DArrayShadow, c4, ivec2(5), lodClamp, texel.z);
+
+ texel += textureOffsetClampARB(s3D, c3, ivec3(2), lodClamp, 2.0);
+ utexel += textureOffsetClampARB(us2DRect, c2, ivec2(3), lodClamp);
+ texel.z += textureOffsetClampARB(s2DArrayShadow, c4, ivec2(5), lodClamp);
+
+ resident |= sparseTextureGradClampARB(s3D, c3, c3, c3, lodClamp, texel);
+ resident |= sparseTextureGradClampARB(sCubeShadow, c4, c3, c3, lodClamp, texel.y);
+ resident |= sparseTextureGradClampARB(usCubeArray, c4, c3, c3, lodClamp, utexel);
+
+ texel += textureGradClampARB(s3D, c3, c3, c3, lodClamp);
+ texel.y += textureGradClampARB(sCubeShadow, c4, c3, c3, lodClamp);
+ utexel += textureGradClampARB(usCubeArray, c4, c3, c3, lodClamp);
+
+ resident |= sparseTextureGradOffsetClampARB(s2D, c2, c2, c2, ivec2(5), lodClamp, texel);
+ resident |= sparseTextureGradOffsetClampARB(s2DRectShadow, c3, c2, c2, ivec2(6), lodClamp, texel.w);
+ resident |= sparseTextureGradOffsetClampARB(is2DArray, c3, c2, c2, ivec2(2), lodClamp, itexel);
+
+ texel += textureGradOffsetClampARB(s2D, c2, c2, c2, ivec2(5), lodClamp);
+ texel.w += textureGradOffsetClampARB(s2DRectShadow, c3, c2, c2, ivec2(6), lodClamp);
+ itexel += textureGradOffsetClampARB(is2DArray, c3, c2, c2, ivec2(2), lodClamp);
+
+ outColor = sparseTexelsResidentARB(resident) ? texel : vec4(itexel) + vec4(utexel);
+} \ No newline at end of file
diff --git a/chromium/third_party/glslang/src/Test/spv.specConstant.comp b/chromium/third_party/glslang/src/Test/spv.specConstant.comp
new file mode 100644
index 00000000000..e50f40d847e
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.specConstant.comp
@@ -0,0 +1,13 @@
+#version 450
+
+layout(local_size_x_id = 18, local_size_z_id = 19) in;
+layout(local_size_x = 32, local_size_y = 32) in;
+
+buffer bn {
+ uint a;
+} bi;
+
+void main()
+{
+ bi.a = gl_WorkGroupSize.x * gl_WorkGroupSize.y * gl_WorkGroupSize.z;
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.specConstant.vert b/chromium/third_party/glslang/src/Test/spv.specConstant.vert
new file mode 100644
index 00000000000..871220a2a18
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.specConstant.vert
@@ -0,0 +1,51 @@
+#version 400
+
+layout(constant_id = 16) const int arraySize = 5;
+in vec4 ucol[arraySize];
+
+layout(constant_id = 17) const bool spBool = true;
+layout(constant_id = 18) const float spFloat = 3.14;
+layout(constant_id = 19) const double spDouble = 3.1415926535897932384626433832795;
+layout(constant_id = 22) const uint scale = 2;
+
+layout(constant_id = 24) gl_MaxImageUnits;
+
+out vec4 color;
+out int size;
+
+// parameter should be considered same type as ucol
+void foo(vec4 p[arraySize]);
+
+void main()
+{
+ color = ucol[2];
+ size = arraySize;
+ if (spBool)
+ color *= scale;
+ color += float(spDouble / spFloat);
+
+ foo(ucol);
+}
+
+layout(constant_id = 116) const int dupArraySize = 12;
+in vec4 dupUcol[dupArraySize];
+
+layout(constant_id = 117) const bool spDupBool = true;
+layout(constant_id = 118) const float spDupFloat = 3.14;
+layout(constant_id = 119) const double spDupDouble = 3.1415926535897932384626433832795;
+layout(constant_id = 122) const uint dupScale = 2;
+
+void foo(vec4 p[arraySize])
+{
+ color += dupUcol[2];
+ size += dupArraySize;
+ if (spDupBool)
+ color *= dupScale;
+ color += float(spDupDouble / spDupFloat);
+}
+
+int builtin_spec_constant()
+{
+ int result = gl_MaxImageUnits;
+ return result;
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.specConstantComposite.vert b/chromium/third_party/glslang/src/Test/spv.specConstantComposite.vert
new file mode 100644
index 00000000000..d9d07a3ed59
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.specConstantComposite.vert
@@ -0,0 +1,98 @@
+#version 450
+
+// constant_id specified scalar spec constants
+layout(constant_id = 200) const int spec_int = 3;
+layout(constant_id = 201) const float spec_float = 3.14;
+layout(constant_id = 202) const
+ double spec_double = 3.1415926535897932384626433832795;
+layout(constant_id = 203) const bool spec_bool = true;
+
+// const float cast_spec_float = float(spec_float);
+
+// Flat struct
+struct flat_struct {
+ int i;
+ float f;
+ double d;
+ bool b;
+};
+
+// Nesting struct
+struct nesting_struct {
+ flat_struct nested;
+ vec4 v;
+ int i;
+};
+
+// Expect OpSpecConstantComposite
+// Flat struct initializer
+//const flat_struct spec_flat_struct_all_spec = {spec_int, spec_float,
+// spec_double, spec_bool};
+//const flat_struct spec_flat_struct_partial_spec = {30, 30.14, spec_double,
+// spec_bool};
+
+// Nesting struct initializer
+//const nesting_struct nesting_struct_ctor = {
+// {spec_int, spec_float, spec_double, false},
+// vec4(0.1, 0.1, 0.1, 0.1),
+// spec_int};
+
+// Vector constructor
+//const vec4 spec_vec4_all_spec =
+// vec4(spec_float, spec_float, spec_float, spec_float);
+//const vec4 spec_vec4_partial_spec =
+// vec4(spec_float, spec_float, 300.14, 300.14);
+//const vec4 spec_vec4_from_one_scalar = vec4(spec_float);
+
+// Matrix constructor
+//const mat2x3 spec_mat2x3 = mat2x3(spec_float, spec_float, spec_float, 1.1, 2.2, 3.3);
+//const mat2x3 spec_mat2x3_from_one_scalar = mat2x3(spec_float);
+
+// Struct nesting constructor
+//const nesting_struct spec_nesting_struct_all_spec = {
+// spec_flat_struct_all_spec, spec_vec4_all_spec, spec_int};
+//const nesting_struct spec_nesting_struct_partial_spec = {
+// spec_flat_struct_partial_spec, spec_vec4_partial_spec, 3000};
+
+//const float spec_float_array[5] = {spec_float, spec_float, 1.0, 2.0, 3.0};
+//const int spec_int_array[5] = {spec_int, spec_int, 1, 2, 30};
+
+// global_vec4_array_with_spec_length is not a spec constant, but its array
+// size is. When calling global_vec4_array_with_spec_length.length(), A
+// TIntermSymbol Node should be returned, instead of a TIntermConstantUnion
+// node which represents a known constant value.
+in vec4 global_vec4_array_with_spec_length[spec_int];
+
+out vec4 color;
+
+void refer_primary_spec_const() {
+ if (spec_bool) color *= spec_int;
+}
+
+void refer_composite_spec_const() {
+ //color += spec_vec4_all_spec;
+ //color -= spec_vec4_partial_spec;
+}
+
+void refer_copmosite_dot_dereference() {
+ //color *= spec_nesting_struct_all_spec.i;
+ //color += spec_vec4_all_spec.x;
+}
+
+void refer_composite_bracket_dereference() {
+ //color -= spec_float_array[1];
+ //color /= spec_int_array[spec_int_array[spec_int]];
+}
+
+int refer_spec_const_array_length() {
+ int len = global_vec4_array_with_spec_length.length();
+ return len;
+}
+
+void declare_spec_const_in_func() {
+ //const nesting_struct spec_const_declared_in_func = {
+ // spec_flat_struct_partial_spec, spec_vec4_partial_spec, 10};
+ //color /= spec_const_declared_in_func.i;
+}
+
+void main() {}
diff --git a/chromium/third_party/glslang/src/Test/spv.specConstantOperations.vert b/chromium/third_party/glslang/src/Test/spv.specConstantOperations.vert
new file mode 100644
index 00000000000..b5e46ad4c01
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.specConstantOperations.vert
@@ -0,0 +1,110 @@
+#version 450
+
+layout(constant_id = 200) const float sp_float = 3.1415926;
+layout(constant_id = 201) const int sp_int = 10;
+layout(constant_id = 202) const uint sp_uint = 100;
+layout(constant_id = 203) const int sp_sint = -10;
+
+
+//
+// Scalars
+//
+
+// uint/int <-> bool conversion
+const bool bool_from_int = bool(sp_int);
+const bool bool_from_uint = bool(sp_uint);
+const int int_from_bool = int(bool_from_int);
+const uint uint_from_bool = uint(bool_from_int);
+
+// uint <-> int
+const uint sp_uint_from_sint = uint(sp_sint);
+const int sp_sint_from_uint = int(sp_uint);
+
+// Negate and Not
+const int negate_int = -sp_int;
+const int not_int = ~sp_int;
+
+// Add and Subtract
+const int sp_int_add_two = sp_int + 2;
+const int sp_int_add_two_sub_three = sp_int + 2 - 3;
+const int sp_int_add_two_sub_four = sp_int_add_two - 4;
+
+// Mul, Div and Rem
+const int sp_sint_mul_two = sp_sint * 2;
+const uint sp_uint_mul_two = sp_uint * 2;
+const int sp_sint_mul_two_div_five = sp_sint_mul_two / 5;
+const uint sp_uint_mul_two_div_five = sp_uint_mul_two / 5;
+const int sp_sint_rem_four = sp_sint % 4;
+const uint sp_uint_rem_four = sp_uint % 4;
+const int sp_sint_mul_three_div_five = sp_sint * 3 / 5;
+
+// Shift
+const int sp_sint_shift_right_arithmetic = sp_sint >> 10;
+const uint sp_uint_shift_right_arithmetic = sp_uint >> 20;
+const int sp_sint_shift_left = sp_sint << 1;
+const uint sp_uint_shift_left = sp_uint << 2;
+
+// Bitwise And, Or, Xor
+const int sp_sint_or_256 = sp_sint | 0x100;
+const uint sp_uint_xor_512 = sp_uint ^ 0x200;
+
+/* // Scalar comparison */
+const bool sp_int_lt_sp_sint = sp_int < sp_sint;
+const bool sp_uint_equal_sp_uint = sp_uint == sp_uint;
+const bool sp_int_gt_sp_sint = sp_int > sp_sint;
+
+//
+// Vectors
+//
+const ivec4 iv = ivec4(20, 30, sp_int, sp_int);
+const uvec4 uv = uvec4(sp_uint, sp_uint, -1, -2);
+//const vec4 fv = vec4(sp_float, 1.25, sp_float, 1.25);
+
+// uint/int <-> bool conversion
+const bvec4 bv_from_iv = bvec4(iv);
+const bvec4 bv_from_uv = bvec4(uv);
+const ivec4 iv_from_bv = ivec4(bv_from_iv);
+const uvec4 uv_from_bv = uvec4(bv_from_iv);
+
+// uint <-> int
+const uvec4 uv_from_iv = uvec4(iv);
+const ivec4 iv_from_uv = ivec4(uv);
+
+// Negate and Not
+const ivec4 not_iv = ~iv;
+const ivec4 negate_iv = -iv;
+
+// Add and Subtract
+const ivec4 iv_add_two = iv + 2;
+const ivec4 iv_add_two_sub_three = iv + 2 - 3;
+const ivec4 iv_add_two_sub_four = iv_add_two_sub_three - 4;
+
+// Mul, Div and Rem
+const ivec4 iv_mul_two = iv * 2;
+const ivec4 iv_mul_two_div_five = iv_mul_two / 5;
+const ivec4 iv_rem_four = iv % 4;
+
+// Shift
+const ivec4 iv_shift_right_arithmetic = iv >> 10;
+const ivec4 iv_shift_left = iv << 2;
+
+// Bitwise And, Or, Xor
+const ivec4 iv_or_1024 = iv | 0x400;
+const uvec4 uv_xor_2048 = uv ^ 0x800;
+
+// Swizzles
+const int iv_x = iv.x;
+const ivec2 iv_yx = iv.yx;
+const ivec3 iv_zyx = iv.zyx;
+const ivec4 iv_yzxw = iv.yzxw;
+
+int non_const_array_size_from_spec_const() {
+ int array[sp_int + 2];
+ for (int i = 0; i < sp_int + 2; i++) {
+ array[i] = 1023;
+ }
+ return array[sp_int + 1];
+}
+
+void main() {}
+
diff --git a/chromium/third_party/glslang/src/Test/spv.structAssignment.frag b/chromium/third_party/glslang/src/Test/spv.structAssignment.frag
new file mode 100644
index 00000000000..3be0e9f1a50
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.structAssignment.frag
@@ -0,0 +1,39 @@
+#version 140
+
+uniform sampler2D samp2D;
+in mediump vec2 coord;
+
+struct lunarStruct1 {
+ int i;
+ float f;
+};
+
+struct lunarStruct2 {
+ int i;
+ float f;
+ lunarStruct1 s1_1;
+};
+
+struct lunarStruct3 {
+ lunarStruct2 s2_1;
+ int i;
+ float f;
+ lunarStruct1 s1_1;
+};
+
+
+lunarStruct1 foo;
+lunarStruct2 foo2;
+lunarStruct3 foo3;
+
+void main()
+{
+ lunarStruct2 locals2;
+
+ if (foo3.s2_1.i > 0)
+ locals2 = foo3.s2_1;
+ else
+ locals2 = foo2;
+
+ gl_FragColor = locals2.s1_1.f * texture(samp2D, coord);
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.structDeref.frag b/chromium/third_party/glslang/src/Test/spv.structDeref.frag
new file mode 100644
index 00000000000..94232ad203e
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.structDeref.frag
@@ -0,0 +1,71 @@
+#version 140
+
+uniform sampler2D samp2D;
+in vec2 coord;
+
+struct s0 {
+ int i;
+};
+
+struct s00 {
+ s0 s0_0;
+};
+
+struct s1 {
+ int i;
+ float f;
+ s0 s0_1;
+};
+
+struct s2 {
+ int i;
+ float f;
+ s1 s1_1;
+};
+
+struct s3 {
+ s2[12] s2_1;
+ int i;
+ float f;
+ s1 s1_1;
+};
+
+
+s0 foo0;
+s1 foo1;
+s2 foo2;
+s3 foo3;
+
+s00 foo00;
+
+void main()
+{
+ s0 locals0;
+ s2 locals2;
+ s00 locals00;
+
+ float[6] fArray;
+
+ s1[10] locals1Array;
+
+ if (foo3.s2_1[9].i > 0) {
+ locals2.f = 1.0;
+ locals2.s1_1 = s1(0, 1.0, s0(0));
+ fArray = float[6]( 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
+ locals1Array[6] = foo1;
+ locals0 = s0(0);
+ locals00 = s00(s0(0));
+ } else {
+ locals2.f = coord.x;
+ locals2.s1_1 = s1(1, coord.y, foo0);
+ fArray = float[6]( 0.0, 1.0, 2.0, 3.0, 4.0, 5.0);
+ locals1Array[6] = locals2.s1_1;
+ locals0 = foo1.s0_1;
+ locals00 = foo00;
+ }
+
+ if (locals0.i > 5)
+ locals0 = locals00.s0_0;
+
+ gl_FragColor = (float(locals0.i) + locals1Array[6].f + fArray[3] + locals2.s1_1.f) * texture(samp2D, coord);
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.structure.frag b/chromium/third_party/glslang/src/Test/spv.structure.frag
new file mode 100644
index 00000000000..76751a7f9c6
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.structure.frag
@@ -0,0 +1,31 @@
+#version 140
+uniform sampler2D samp2D;
+in vec2 coord;
+
+struct lunarStruct1 {
+ int i;
+ float f[4];
+ vec4 color[5];
+};
+
+struct lunarStruct2 {
+ int i[5];
+ float f;
+ lunarStruct1 s1_1[7];
+};
+
+lunarStruct1 foo;
+lunarStruct2 foo2[5];
+
+void main()
+{
+ float scale = 0.0;
+
+ if (foo2[3].i[4] > 0)
+ scale = foo2[3].s1_1[2].color[3].x;
+ else
+ scale = foo2[3].s1_1[2].f[3];
+
+ gl_FragColor = scale * texture(samp2D, coord);
+}
+
diff --git a/chromium/third_party/glslang/src/Test/spv.subpass.frag b/chromium/third_party/glslang/src/Test/spv.subpass.frag
new file mode 100644
index 00000000000..7856c64cdf8
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.subpass.frag
@@ -0,0 +1,29 @@
+#version 400
+
+layout(input_attachment_index = 1) uniform subpassInput sub;
+layout(input_attachment_index = 2) uniform subpassInputMS subMS;
+layout(input_attachment_index = 3) uniform isubpassInput isub;
+layout(input_attachment_index = 4) uniform isubpassInputMS isubMS;
+layout(input_attachment_index = 5) uniform usubpassInput usub;
+layout(input_attachment_index = 6) uniform usubpassInputMS usubMS;
+
+out vec4 color;
+out ivec4 icolor;
+out uvec4 ucolor;
+
+void foo(isubpassInputMS sb)
+{
+ icolor += subpassLoad(sb, 3);
+}
+
+void main()
+{
+ color = subpassLoad(sub);
+ color += subpassLoad(subMS, 3);
+ icolor = subpassLoad(isub);
+ icolor += subpassLoad(isubMS, 3);
+ ucolor = subpassLoad(usub);
+ ucolor += subpassLoad(usubMS, 3);
+
+ foo(isubMS);
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.switch.frag b/chromium/third_party/glslang/src/Test/spv.switch.frag
new file mode 100644
index 00000000000..c01a3ef0d70
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.switch.frag
@@ -0,0 +1,142 @@
+#version 310 es
+precision mediump float;
+flat in int c, d;
+in float x;
+out float color;
+in vec4 v;
+
+vec4 foo1(vec4 v1, vec4 v2, int i1)
+{
+ switch (i1)
+ {
+ case 0:
+ return v1;
+ case 2:
+ case 1:
+ return v2;
+ case 3:
+ return v1 * v2;
+ }
+
+ return vec4(0.0);
+}
+
+vec4 foo2(vec4 v1, vec4 v2, int i1)
+{
+ switch (i1)
+ {
+ case 0:
+ return v1;
+ case 2:
+ return vec4(1.0);
+ case 1:
+ return v2;
+ case 3:
+ return v1 * v2;
+ }
+
+ return vec4(0.0);
+}
+
+void main()
+{
+ float f;
+ int a[2];
+ int local = c;
+
+ switch(++local)
+ {
+ }
+
+ switch (c) {
+ case 1:
+ f = sin(x);
+ break;
+ case 2:
+ f = cos(x);
+ break;
+ default:
+ f = tan(x);
+ }
+
+ switch (c) {
+ case 1:
+ f += sin(x);
+ case 2:
+ f += cos(x);
+ break;
+ default:
+ f += tan(x);
+ }
+
+ switch (c) {
+ case 1:
+ f += sin(x);
+ break;
+ case 2:
+ f += cos(x);
+ break;
+ }
+
+ switch (c) {
+ case 1:
+ f += sin(x);
+ break;
+ case 2:
+ switch (d) {
+ case 1:
+ f += x * x * x;
+ break;
+ case 2:
+ f += x * x;
+ break;
+ }
+ break;
+ default:
+ f += tan(x);
+ }
+
+ for (int i = 0; i < 10; ++i) {
+ switch (c) {
+ case 1:
+ f += sin(x);
+ for (int j = 20; j < 30; ++j) {
+ ++f;
+ if (f < 100.2)
+ break;
+ }
+ break;
+ case 2:
+ f += cos(x);
+ break;
+ break;
+ default:
+ f += tan(x);
+ }
+
+ if (f < 3.43)
+ break;
+ }
+
+ switch (c) {
+ case 1:
+ f += sin(x);
+ break;
+ case 2:
+ // test no statements at end
+ }
+
+ color = f + float(local);
+
+ color += foo1(v,v,c).y;
+ color += foo2(v,v,c).z;
+
+ switch (c) {
+ case 0: break;
+ default:
+ }
+
+ switch (c) {
+ default:
+ }
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.swizzle.frag b/chromium/third_party/glslang/src/Test/spv.swizzle.frag
new file mode 100644
index 00000000000..3f34311235c
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.swizzle.frag
@@ -0,0 +1,52 @@
+#version 140
+
+in float blend;
+in vec4 u;
+bool p;
+
+in vec2 t;
+
+void main()
+{
+ float blendscale = 1.789;
+
+ vec4 w = u;
+ vec4 w_undef; // test undef
+ vec4 w_dep = u; // test dependent swizzles
+ vec4 w_reorder = u; // test reordering
+ vec4 w2 = u;
+ vec4 w_flow = u; // test flowControl
+
+ w_reorder.z = blendscale;
+
+ w.wy = t;
+
+ w_reorder.x = blendscale;
+
+ w2.xyzw = u.zwxy;
+
+ w_reorder.y = blendscale;
+
+ w_dep.xy = w2.xz;
+ w_dep.zw = t;
+
+ w_undef.xy = u.zw;
+
+ if (p)
+ w_flow.x = t.x;
+ else
+ w_flow.x = t.y;
+
+ gl_FragColor = mix(w_reorder, w_undef, w * w2 * w_dep * w_flow);
+
+ vec2 c = t;
+ vec4 rep = vec4(0.0, 0.0, 0.0, 1.0);
+
+ if (c.x < 0.0)
+ c.x *= -1.0;
+
+ if (c.x <= 1.0)
+ rep.x = 3.4;
+
+ gl_FragColor += rep;
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.test.frag b/chromium/third_party/glslang/src/Test/spv.test.frag
new file mode 100644
index 00000000000..68e712824e5
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.test.frag
@@ -0,0 +1,22 @@
+#version 400
+
+uniform sampler2D texSampler2D;
+uniform sampler3D texSampler3D;
+
+in float blend;
+in vec2 scale;
+in vec4 u;
+
+in vec2 t;
+in vec3 coords;
+
+void main()
+{
+ float blendscale = 1.789;
+
+ vec4 v = texture(texSampler2D, (t + scale) / scale ).wzyx;
+
+ vec4 w = texture(texSampler3D, coords) + v;
+
+ gl_FragColor = mix(w, u, blend * blendscale);
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.test.vert b/chromium/third_party/glslang/src/Test/spv.test.vert
new file mode 100644
index 00000000000..e917f6d7969
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.test.vert
@@ -0,0 +1,14 @@
+#version 140
+
+in mat4 transform;
+
+attribute vec4 position;
+in vec2 uv_in;
+
+out vec2 uv;
+
+void main()
+{
+ uv = uv_in;
+ gl_Position = transform * position;
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.texture.frag b/chromium/third_party/glslang/src/Test/spv.texture.frag
new file mode 100644
index 00000000000..883c3124fd1
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.texture.frag
@@ -0,0 +1,73 @@
+#version 140
+
+uniform sampler1D texSampler1D;
+uniform sampler2D texSampler2D;
+uniform sampler3D texSampler3D;
+uniform samplerCube texSamplerCube;
+uniform sampler1DShadow shadowSampler1D;
+uniform sampler2DShadow shadowSampler2D;
+
+varying float blend;
+varying vec2 scale;
+varying vec4 u;
+
+in vec2 t;
+in vec2 coords2D;
+
+void main()
+{
+ float blendscale = 1.789;
+ float bias = 2.0;
+ float lod = 3.0;
+ float proj = 2.0;
+ float coords1D = 1.789;
+ vec3 coords3D = vec3(1.789, 2.718, 3.453);
+ vec4 coords4D = vec4(1.789, 2.718, 3.453, 2.0);
+ vec4 color = vec4(0.0, 0.0, 0.0, 0.0);
+
+ color += texture (texSampler1D, coords1D);
+ color += texture (texSampler1D, coords1D, bias);
+ color += textureProj(texSampler1D, coords2D);
+ color += textureProj(texSampler1D, coords4D);
+ color += textureProj(texSampler1D, coords2D, bias);
+ color += textureProj(texSampler1D, coords4D, bias);
+
+ color += texture (texSampler2D, coords2D);
+ color += texture (texSampler2D, coords2D, bias);
+ color += textureProj (texSampler2D, coords3D);
+ color += textureProj (texSampler2D, coords4D, bias);
+
+ color += texture (texSampler3D, coords3D);
+ color += texture (texSampler3D, coords3D, bias);
+ color += textureProj (texSampler3D, coords4D);
+ color += textureProj (texSampler3D, coords4D, bias);
+
+ color += texture (texSamplerCube, coords3D);
+ color += texture (texSamplerCube, coords3D, bias);
+
+ color += texture (shadowSampler1D, coords3D);
+ color += texture (shadowSampler1D, coords3D, bias);
+ color += texture (shadowSampler2D, coords3D);
+ color += texture (shadowSampler2D, coords3D, bias);
+ color += textureProj (shadowSampler1D, coords4D);
+ color += textureProj (shadowSampler1D, coords4D, bias);
+ color += textureProj (shadowSampler2D, coords4D);
+ color += textureProj (shadowSampler2D, coords4D, bias);
+
+ ivec2 iCoords2D = ivec2(0, 5);
+ int iLod = 1;
+
+ color += texelFetch(texSampler2D, iCoords2D, iLod);
+
+ vec2 gradX = dFdx(coords2D);
+ vec2 gradY = dFdy(coords2D);
+ const ivec2 offset = ivec2(3, -7);
+
+ color += textureGrad(texSampler2D, coords2D, gradX, gradY);
+ color += textureProjGrad(texSampler2D, vec3(coords2D, proj), gradX, gradY);
+ color += textureGradOffset(texSampler2D, coords2D, gradX, gradY, offset);
+ color += textureProjGradOffset(texSampler2D, coords3D, gradX, gradY, offset);
+ color += textureGrad(shadowSampler2D, vec3(coords2D, lod), gradX, gradY);
+
+ gl_FragColor = mix(color, u, blend * blendscale);
+} \ No newline at end of file
diff --git a/chromium/third_party/glslang/src/Test/spv.texture.vert b/chromium/third_party/glslang/src/Test/spv.texture.vert
new file mode 100644
index 00000000000..f571a7cd317
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.texture.vert
@@ -0,0 +1,39 @@
+#version 140
+
+uniform sampler1D texSampler1D;
+uniform sampler2D texSampler2D;
+uniform sampler3D texSampler3D;
+uniform samplerCube texSamplerCube;
+uniform sampler1DShadow shadowSampler1D;
+uniform sampler2DShadow shadowSampler2D;
+
+in vec2 coords2D;
+
+void main()
+{
+ float lod = 3.0;
+ float coords1D = 1.789;
+ vec3 coords3D = vec3(1.789, 2.718, 3.453);
+ vec4 coords4D = vec4(1.789, 2.718, 3.453, 2.0);
+ vec4 color = vec4(0.0, 0.0, 0.0, 0.0);
+
+ color += textureLod(texSampler1D, coords1D, lod);
+ color += textureProjLod(texSampler1D, coords2D, lod);
+ color += textureProjLod(texSampler1D, coords4D, lod);
+
+ color += textureLod (texSampler2D, coords2D, lod);
+ color += textureProjLod (texSampler2D, coords3D, lod);
+ color += textureProjLod (texSampler2D, coords4D, lod);
+
+ color += textureLod (texSampler3D, coords3D, lod);
+ color += textureProjLod (texSampler3D, coords4D, lod);
+
+ color += textureLod (texSamplerCube, coords3D, lod);
+
+ color += textureLod (shadowSampler1D, coords3D, lod);
+ color += textureLod (shadowSampler2D, coords3D, lod);
+ color += textureProjLod(shadowSampler1D, coords4D, lod);
+ color += textureProjLod(shadowSampler2D, coords4D, lod);
+
+ gl_Position = color;
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.types.frag b/chromium/third_party/glslang/src/Test/spv.types.frag
new file mode 100644
index 00000000000..fe0bf4cb6d3
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.types.frag
@@ -0,0 +1,78 @@
+#version 140
+
+bool u_b;
+bvec2 u_b2;
+bvec3 u_b3;
+bvec4 u_b4;
+flat in int u_i;
+flat in ivec2 u_i2;
+flat in ivec3 u_i3;
+flat in ivec4 u_i4;
+ in float u_f;
+ in vec2 u_f2;
+ in vec3 u_f3;
+ in vec4 u_f4;
+bool i_b;
+bvec2 i_b2;
+bvec3 i_b3;
+bvec4 i_b4;
+
+flat in int i_i;
+flat in ivec2 i_i2;
+flat in ivec3 i_i3;
+flat in ivec4 i_i4;
+
+in float i_f;
+in vec2 i_f2;
+in vec3 i_f3;
+in vec4 i_f4;
+
+void main()
+{
+ bool b = u_b && i_b;
+ bvec2 b2 = bvec2(u_b2.x && i_b2.x && u_b2.y && i_b2.y);
+ bvec3 b3 = bvec3(u_b3.x && i_b3.x && u_b3.y && i_b3.y && u_b3.z && i_b3.z);
+ bvec4 b4 = bvec4(u_b4.x && i_b4.x && u_b4.y && i_b4.y && u_b4.z && i_b4.z && u_b4.w && i_b4.w);
+
+ int i = u_i + i_i;
+ ivec2 i2 = u_i2 + i_i2;
+ ivec3 i3 = u_i3 + i_i3;
+ ivec4 i4 = u_i4 + i_i4;
+
+ float f = u_f + i_f;
+ vec2 f2 = u_f2 + i_f2;
+ vec3 f3 = u_f3 + i_f3;
+ vec4 f4 = u_f4 + i_f4;
+
+ gl_FragColor =
+ b ||
+ b2.x ||
+ b2.y ||
+ b3.x ||
+ b3.y ||
+ b3.z ||
+ b4.x ||
+ b4.y ||
+ b4.z ||
+ b4.w ? vec4(
+ i +
+ i2.x +
+ i2.y +
+ i3.x +
+ i3.y +
+ i3.z +
+ i4.x +
+ i4.y +
+ i4.z +
+ i4.w +
+ f +
+ f2.x +
+ f2.y +
+ f3.x +
+ f3.y +
+ f3.z +
+ f4.x +
+ f4.y +
+ f4.z +
+ f4.w) : vec4(1.0);
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.uint.frag b/chromium/third_party/glslang/src/Test/spv.uint.frag
new file mode 100644
index 00000000000..004b85605c9
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.uint.frag
@@ -0,0 +1,99 @@
+#version 310 es
+precision mediump float;
+flat in uvec2 t;
+in float f;
+in vec2 tc;
+
+flat in uvec4 v;
+flat in int i;
+bool b;
+
+out uvec4 c;
+
+uniform mediump usampler2D usampler;
+
+void main()
+{
+ int count = 1;
+
+ uint u = t.y + 3u;
+ const uint cu1 = 0xFFFFFFFFU;
+ const uint cu2 = -1u; // 0xFFFFFFFF
+ const uint cu3 = 1U;
+ const uint cu4 = 1u;
+
+ if (cu1 == cu2)
+ count *= 2; // 2
+ if (cu3 == cu4)
+ count *= 3; // 6
+ if (cu2 == cu3)
+ count *= 5; // not done
+
+ const int cshiftedii = 0xFFFFFFFF >> 10;
+ const uint cushiftedui = 0xFFFFFFFFu >> 10;
+ const int cshiftediu = 0xFFFFFFFF >> 10u;
+ const uint cushifteduu = 0xFFFFFFFFu >> 10u;
+
+ if (cshiftedii == cshiftediu)
+ count *= 7; // 42
+ if (cushiftedui == cushifteduu)
+ count *= 11; // 462
+ if (cshiftedii == int(cushiftedui))
+ count *= 13; // not done
+
+ int shiftedii = 0xFFFFFFFF >> 10;
+ uint shiftedui = 0xFFFFFFFFu >> 10;
+ int shiftediu = 0xFFFFFFFF >> 10u;
+ uint shifteduu = 0xFFFFFFFFu >> 10u;
+
+ if (shiftedii == shiftediu)
+ c = texture(usampler, tc);
+ if (shiftedui == shifteduu)
+ c = texture(usampler, tc + float(1u));
+ if (shiftedii == int(shiftedui))
+ c = texture(usampler, tc - vec2(2u));
+
+ if (t.x > 4u) {
+ float af = float(u);
+ bool ab = bool(u);
+ int ai = int(u);
+
+ c += uvec4(uint(af), uint(ab), uint(ai), count);
+ }
+
+ const uint cmask1 = 0x0A1u;
+ const uint cmask2 = 0xA10u;
+ const uint cmask3 = cmask1 << 4;
+ const uint cmask4 = 0xAB1u;
+
+ if (cmask3 == cmask2)
+ count *= 17; // 7854
+
+ if ((cmask3 & cmask1) != 0u)
+ count *= 19; // not done
+
+ if ((cmask1 | cmask3) == cmask4)
+ count *= 23; // 180642
+
+ if ((cmask1 ^ cmask4) == 0xA10u)
+ count *= 27; // 4877334
+
+ uint mask1 = 0x0A1u;
+ uint mask2 = 0xA10u;
+ uint mask3 = mask1 << 4;
+ uint mask4 = 0xAB1u;
+
+ if (mask3 == mask2)
+ count *= 2; // 9754668
+
+ if ((mask3 & mask1) != 0u)
+ count *= 3; // not done
+
+ if ((mask1 | mask3) == mask4)
+ count *= 5; // 48773340
+
+ if ((mask1 ^ mask4) == 0xA10u)
+ count *= 7; // 341413380
+
+ c += uvec4(count);
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.uniformArray.frag b/chromium/third_party/glslang/src/Test/spv.uniformArray.frag
new file mode 100644
index 00000000000..4f642e6e971
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.uniformArray.frag
@@ -0,0 +1,17 @@
+#version 140
+
+uniform sampler2D texSampler2D;
+in vec3 inColor;
+in vec4 color[6];
+in float alpha[16];
+
+void main()
+{
+ vec4 texColor = color[1] + color[1];
+
+ texColor.xyz += inColor;
+
+ texColor.a += alpha[12];
+
+ gl_FragColor = texColor;
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.variableArrayIndex.frag b/chromium/third_party/glslang/src/Test/spv.variableArrayIndex.frag
new file mode 100644
index 00000000000..ab52f548e8d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.variableArrayIndex.frag
@@ -0,0 +1,49 @@
+#version 400
+
+uniform sampler2D samp2D;
+in vec2 coord;
+
+struct lunarStruct1 {
+ int i;
+ float f;
+};
+
+struct lunarStruct2 {
+ int i;
+ float f;
+ lunarStruct1 s1_1;
+};
+
+struct lunarStruct3 {
+ lunarStruct2 s2_1[3];
+ int i;
+ float f;
+ lunarStruct1 s1_1;
+};
+
+
+flat in lunarStruct1 foo;
+flat in lunarStruct2 foo2[5];
+flat in lunarStruct3 foo3;
+flat in int Count;
+
+void main()
+{
+ float scale;
+ int iLocal = Count;
+
+ if (foo3.s2_1[1].i > 0)
+ scale = foo2[foo3.s2_1[foo.i].i + 2 + ++iLocal].s1_1.f;
+ else
+ scale = foo3.s2_1[0].s1_1.f;
+
+ //for (int i = 0; i < iLocal; ++i) {
+ // scale += foo2[i].f;
+ //}
+
+ gl_FragColor = scale * texture(samp2D, coord);
+
+ vec2[3] constructed = vec2[3](coord, vec2(scale), vec2(1.0, 2.0));
+ gl_FragColor += vec4(constructed[foo.i], constructed[foo.i]);
+}
+
diff --git a/chromium/third_party/glslang/src/Test/spv.varyingArray.frag b/chromium/third_party/glslang/src/Test/spv.varyingArray.frag
new file mode 100644
index 00000000000..9baa3467414
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.varyingArray.frag
@@ -0,0 +1,19 @@
+#version 140
+uniform sampler2D texSampler2D;
+in vec4 color;
+in float alpha;
+
+in vec4 TexCoord[6];
+
+in vec4 foo[3];
+
+void main()
+{
+ vec4 texColor = texture(texSampler2D, vec2(TexCoord[4] + TexCoord[5]));
+
+ texColor += color;
+
+ texColor.a = alpha;
+
+ gl_FragColor = foo[1] + TexCoord[0] + TexCoord[4] + texColor;
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.varyingArrayIndirect.frag b/chromium/third_party/glslang/src/Test/spv.varyingArrayIndirect.frag
new file mode 100644
index 00000000000..34733ed9db7
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.varyingArrayIndirect.frag
@@ -0,0 +1,21 @@
+#version 140
+uniform sampler2D texSampler2D;
+in vec4 color;
+in float alpha;
+
+in vec4 TexCoord[6];
+
+in vec4 userIn[2];
+
+flat in int a, b;
+
+void main()
+{
+ vec4 texColor = texture(texSampler2D, vec2(userIn[b] + TexCoord[a] + TexCoord[5]));
+
+ texColor += color;
+
+ texColor.a = alpha;
+
+ gl_FragColor = TexCoord[0] + TexCoord[b] + texColor + userIn[a];
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.voidFunction.frag b/chromium/third_party/glslang/src/Test/spv.voidFunction.frag
new file mode 100644
index 00000000000..c3bc45c2f7c
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.voidFunction.frag
@@ -0,0 +1,34 @@
+#version 400
+
+in vec4 bigColor;
+in vec4 BaseColor;
+in float d;
+
+float bar = 2.0;
+
+void foo()
+{
+ bar++;
+
+ return;
+}
+
+void foo2()
+{
+ bar++;
+}
+
+void main()
+{
+ vec4 outColor = bigColor;
+
+ foo();
+
+ foo2();
+
+ outColor.x += bar;
+
+ gl_FragColor = outColor;
+
+ return;
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.while-continue-break.vert b/chromium/third_party/glslang/src/Test/spv.while-continue-break.vert
new file mode 100644
index 00000000000..c81e8d28c23
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.while-continue-break.vert
@@ -0,0 +1,20 @@
+#version 310 es
+void main() {
+ int i = 0;
+ int A, B, C, D;
+ while (i<10) {
+ A = 1;
+ if (i%2 == 0) {
+ B = 2;
+ continue;
+ C = 2;
+ }
+ if (i%5 == 0) {
+ B = 2;
+ break;
+ C = 2;
+ }
+ i++;
+ }
+ D = 3;
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.while-simple.vert b/chromium/third_party/glslang/src/Test/spv.while-simple.vert
new file mode 100644
index 00000000000..0f38325d0e0
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.while-simple.vert
@@ -0,0 +1,7 @@
+#version 310 es
+void main() {
+ int i = 0;
+ while (i<10) {
+ i++;
+ }
+}
diff --git a/chromium/third_party/glslang/src/Test/spv.whileLoop.frag b/chromium/third_party/glslang/src/Test/spv.whileLoop.frag
new file mode 100644
index 00000000000..062bff2c5a1
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.whileLoop.frag
@@ -0,0 +1,16 @@
+#version 140
+
+in vec4 bigColor;
+in vec4 BaseColor;
+in float d;
+
+void main()
+{
+ vec4 color = BaseColor;
+
+ while (color.x < d) {
+ color += bigColor;
+ }
+
+ gl_FragColor = color;
+}
diff --git a/chromium/third_party/glslang/src/Test/structAssignment.frag b/chromium/third_party/glslang/src/Test/structAssignment.frag
new file mode 100644
index 00000000000..1f6466683f6
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/structAssignment.frag
@@ -0,0 +1,39 @@
+#version 130
+
+uniform sampler2D sampler;
+varying mediump vec2 coord;
+
+struct lunarStruct1 {
+ int i;
+ float f;
+};
+
+struct lunarStruct2 {
+ int i;
+ float f;
+ lunarStruct1 s1_1;
+};
+
+struct lunarStruct3 {
+ lunarStruct2 s2_1;
+ int i;
+ float f;
+ lunarStruct1 s1_1;
+};
+
+
+uniform lunarStruct1 foo;
+uniform lunarStruct2 foo2;
+uniform lunarStruct3 foo3;
+
+void main()
+{
+ lunarStruct2 locals2;
+
+ if (foo3.s2_1.i > 0)
+ locals2 = foo3.s2_1;
+ else
+ locals2 = foo2;
+
+ gl_FragColor = locals2.s1_1.f * texture2D(sampler, coord);
+}
diff --git a/chromium/third_party/glslang/src/Test/structDeref.frag b/chromium/third_party/glslang/src/Test/structDeref.frag
new file mode 100644
index 00000000000..97fd383b6cc
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/structDeref.frag
@@ -0,0 +1,71 @@
+#version 130
+
+uniform sampler2D sampler;
+varying vec2 coord;
+
+struct s0 {
+ int i;
+};
+
+struct s00 {
+ s0 s0_0;
+};
+
+struct s1 {
+ int i;
+ float f;
+ s0 s0_1;
+};
+
+struct s2 {
+ int i;
+ float f;
+ s1 s1_1;
+};
+
+struct s3 {
+ s2[12] s2_1;
+ int i;
+ float f;
+ s1 s1_1;
+};
+
+
+uniform s0 foo0;
+uniform s1 foo1;
+uniform s2 foo2;
+uniform s3 foo3;
+
+uniform s00 foo00;
+
+void main()
+{
+ s0 locals0;
+ s2 locals2;
+ s00 locals00;
+
+ float[6] fArray;
+
+ s1[10] locals1Array;
+
+ if (foo3.s2_1[9].i > 0) {
+ locals2.f = 1.0;
+ locals2.s1_1 = s1(0, 1.0, s0(0));
+ fArray = float[6]( 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
+ locals1Array[6] = foo1;
+ locals0 = s0(0);
+ locals00 = s00(s0(0));
+ } else {
+ locals2.f = coord.x;
+ locals2.s1_1 = s1(1, coord.y, foo0);
+ fArray = float[6]( 0.0, 1.0, 2.0, 3.0, 4.0, 5.0);
+ locals1Array[6] = locals2.s1_1;
+ locals0 = foo1.s0_1;
+ locals00 = foo00;
+ }
+
+ if (locals0.i > 5)
+ locals0 = locals00.s0_0;
+
+ gl_FragColor = (float(locals0.i) + locals1Array[6].f + fArray[3] + locals2.s1_1.f) * texture2D(sampler, coord);
+}
diff --git a/chromium/third_party/glslang/src/Test/structure.frag b/chromium/third_party/glslang/src/Test/structure.frag
new file mode 100644
index 00000000000..867a0273d8a
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/structure.frag
@@ -0,0 +1,31 @@
+#version 130
+uniform sampler2D sampler;
+varying vec2 coord;
+
+struct lunarStruct1 {
+ int i;
+ float f[4];
+ vec4 color[5];
+};
+
+struct lunarStruct2 {
+ int i[5];
+ float f;
+ lunarStruct1 s1_1[7];
+};
+
+uniform lunarStruct1 foo;
+uniform lunarStruct2 foo2[5];
+
+void main()
+{
+ float scale = 0.0;
+
+ if (foo2[3].i[4] > 0)
+ scale = foo2[3].s1_1[2].color[3].x;
+ else
+ scale = foo2[3].s1_1[2].f[3];
+
+ gl_FragColor = scale * texture2D(sampler, coord);
+}
+
diff --git a/chromium/third_party/glslang/src/Test/switch.frag b/chromium/third_party/glslang/src/Test/switch.frag
new file mode 100644
index 00000000000..f0860fae810
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/switch.frag
@@ -0,0 +1,158 @@
+#version 300 es
+precision highp float;
+uniform int c, d;
+in highp float x;
+
+void main()
+{
+ float f;
+ int a[2];
+
+ switch(f) { // ERROR
+ }
+
+ switch(a) { // ERROR
+ }
+
+ switch(c)
+ {
+ }
+
+ switch(c) // WARNING, not enough stuff after last label
+ {
+ case 2:
+ }
+
+ switch(c)
+ {
+ f = sin(x); // ERRROR
+ case 2:
+ f = cos(x);
+ break;
+ }
+
+ switch (c) {
+ default:
+ break;
+ case 1:
+ f = sin(x);
+ break;
+ case 2:
+ f = cos(x);
+ break;
+ default: // ERROR, 2nd default
+ f = tan(x);
+ }
+
+ switch (c) {
+ case 1:
+ f = sin(x);
+ break;
+ case 2:
+ switch (d) {
+ case 1:
+ f = x * x * x;
+ break;
+ case 2:
+ f = x * x;
+ break;
+ }
+ break;
+ default:
+ f = tan(x);
+ case 1: // ERROR, 2nd 'case 1'
+ break;
+ case 3.8: // ERROR, non-int
+ break;
+ case c: // ERROR, non-constant
+ break;
+ }
+
+ switch (c) { // a no-error normal switch
+ case 1:
+ f = sin(x);
+ break;
+ case 2:
+ switch (d) {
+ case 1:
+ f = x * x * x;
+ break;
+ case 2:
+ f = x * x;
+ break;
+ }
+ break;
+ default:
+ f = tan(x);
+ }
+
+ break; // ERROR
+
+ switch (c) {
+ case 1:
+ f = sin(x);
+ break;
+ case 2:
+ switch (d) {
+ case 1:
+ {
+ case 4: // ERROR
+ break;
+ }
+ f = x * x * x;
+ if (c < d) {
+ case 2: // ERROR
+ f = x * x;
+ }
+ if (d < c)
+ case 3: // ERROR
+ break;
+ }
+ break;
+ case 4:
+ f = tan(x);
+ if (f < 0.0)
+ default: // ERROR
+ break;
+ }
+
+ case 5: // ERROR
+ default: // ERROR
+
+ switch (0) {
+ default:
+ int onlyInSwitch = 0;
+ }
+ onlyInSwitch; // ERROR
+
+ switch (0) {
+ default:
+ int x; // WARNING (was "no statement" ERROR, but spec. changed because unclear what a statement is)
+ }
+
+ switch (c) {
+ case 1:
+ {
+ int nestedX;
+ break;
+ }
+ case 2:
+ nestedX; // ERROR
+ int nestedZ;
+ float a; // okay, hiding outer 'a'
+ break;
+ case 3:
+ int linearZ;
+ break;
+ break;
+ case 4:
+ int linearY = linearZ;
+ break;
+ case 5: // okay that branch bypassed an initializer
+ const int linearC = 4;
+ break;
+ case 6: // okay that branch bypassed an initializer
+ linearC;
+ }
+ nestedZ; // ERROR, no longer in scope
+}
diff --git a/chromium/third_party/glslang/src/Test/swizzle.frag b/chromium/third_party/glslang/src/Test/swizzle.frag
new file mode 100644
index 00000000000..e336b67ebf8
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/swizzle.frag
@@ -0,0 +1,52 @@
+#version 110
+
+uniform float blend;
+uniform vec4 u;
+uniform bool p;
+
+varying vec2 t;
+
+void main()
+{
+ float blendscale = 1.789;
+
+ vec4 w = u;
+ vec4 w_undef; // test undef
+ vec4 w_dep = u; // test dependent swizzles
+ vec4 w_reorder = u; // test reordering
+ vec4 w2 = u;
+ vec4 w_flow = u; // test flowControl
+
+ w_reorder.z = blendscale;
+
+ w.wy = t;
+
+ w_reorder.x = blendscale;
+
+ w2.xyzw = u.zwxy;
+
+ w_reorder.y = blendscale;
+
+ w_dep.xy = w2.xz;
+ w_dep.zw = t;
+
+ w_undef.xy = u.zw;
+
+ if (p)
+ w_flow.x = t.x;
+ else
+ w_flow.x = t.y;
+
+ gl_FragColor = mix(w_reorder, w_undef, w * w2 * w_dep * w_flow);
+
+ vec2 c = t;
+ vec4 rep = vec4(0.0, 0.0, 0.0, 1.0);
+
+ if (c.x < 0.0)
+ c.x *= -1.0;
+
+ if (c.x <= 1.0)
+ rep.x = 3.4;
+
+ gl_FragColor += rep;
+}
diff --git a/chromium/third_party/glslang/src/Test/syntaxError.frag b/chromium/third_party/glslang/src/Test/syntaxError.frag
new file mode 100644
index 00000000000..ac46bf10f25
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/syntaxError.frag
@@ -0,0 +1,16 @@
+#version 120
+
+uniform vec4 bigColor;
+varying vec4 BaseColor;
+uniform float d;
+
+void main()
+{
+ vec5 color = BaseColor;
+
+ do {
+ color += bigColor;
+ } while (color.x < d);
+
+ gl_FragColor = color;
+}
diff --git a/chromium/third_party/glslang/src/Test/test-hlsl-spirv-list b/chromium/third_party/glslang/src/Test/test-hlsl-spirv-list
new file mode 100644
index 00000000000..d98a3cb4f36
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/test-hlsl-spirv-list
@@ -0,0 +1,4 @@
+# Test looping constructs.
+# No tests yet for making sure break and continue from a nested loop
+# goes to the innermost target.
+hlsl.frag
diff --git a/chromium/third_party/glslang/src/Test/test-preprocessor-list b/chromium/third_party/glslang/src/Test/test-preprocessor-list
new file mode 100644
index 00000000000..bd7e963be29
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/test-preprocessor-list
@@ -0,0 +1,16 @@
+preprocessor.cpp_style_line_directive.vert
+preprocessor.cpp_style___FILE__.vert
+preprocessor.edge_cases.vert
+preprocessor.errors.vert
+preprocessor.extensions.vert
+preprocessor.function_macro.vert
+preprocessor.include.enabled.vert
+preprocessor.include.disabled.vert
+preprocessor.line.vert
+preprocessor.line.frag
+preprocessor.pragma.vert
+preprocessor.simple.vert
+preprocessor.success_if_parse_would_fail.vert
+preprocessor.defined.vert
+preprocessor.many.endif.vert
+preprocessor.eof_missing.vert
diff --git a/chromium/third_party/glslang/src/Test/test-spirv-list b/chromium/third_party/glslang/src/Test/test-spirv-list
new file mode 100644
index 00000000000..03f4432e17e
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/test-spirv-list
@@ -0,0 +1,115 @@
+# Test looping constructs.
+# No tests yet for making sure break and continue from a nested loop
+# goes to the innermost target.
+spv.do-simple.vert
+spv.do-while-continue-break.vert
+spv.for-complex-condition.vert
+spv.for-continue-break.vert
+spv.for-simple.vert
+spv.for-notest.vert
+spv.for-nobody.vert
+spv.while-continue-break.vert
+spv.while-simple.vert
+# vulkan-specific tests
+spv.set.vert
+spv.double.comp
+spv.100ops.frag
+spv.130.frag
+spv.140.frag
+spv.150.geom
+spv.150.vert
+spv.300BuiltIns.vert
+spv.300layout.frag
+spv.300layout.vert
+spv.300layoutp.vert
+spv.310.comp
+spv.330.geom
+spv.400.frag
+spv.400.tesc
+spv.400.tese
+spv.420.geom
+spv.430.vert
+spv.accessChain.frag
+spv.aggOps.frag
+spv.always-discard.frag
+spv.always-discard2.frag
+spv.bitCast.frag
+spv.bool.vert
+spv.boolInBlock.frag
+spv.branch-return.vert
+spv.conditionalDiscard.frag
+spv.conversion.frag
+spv.dataOut.frag
+spv.dataOutIndirect.frag
+spv.dataOutIndirect.vert
+spv.deepRvalue.frag
+spv.depthOut.frag
+spv.discard-dce.frag
+spv.doWhileLoop.frag
+spv.earlyReturnDiscard.frag
+spv.flowControl.frag
+spv.forLoop.frag
+spv.forwardFun.frag
+spv.functionCall.frag
+spv.functionSemantics.frag
+spv.interpOps.frag
+spv.int64.frag
+spv.layoutNested.vert
+spv.length.frag
+spv.localAggregates.frag
+spv.loops.frag
+spv.loopsArtificial.frag
+spv.matFun.vert
+spv.matrix.frag
+spv.matrix2.frag
+spv.memoryQualifier.frag
+spv.merge-unreachable.frag
+spv.newTexture.frag
+spv.noDeadDecorations.vert
+spv.nonSquare.vert
+spv.Operations.frag
+spv.intOps.vert
+spv.precision.frag
+spv.prepost.frag
+spv.qualifiers.vert
+spv.shaderBallot.comp
+spv.shaderGroupVote.comp
+spv.shiftOps.frag
+spv.simpleFunctionCall.frag
+spv.simpleMat.vert
+spv.sparseTexture.frag
+spv.sparseTextureClamp.frag
+spv.structAssignment.frag
+spv.structDeref.frag
+spv.structure.frag
+spv.switch.frag
+spv.swizzle.frag
+spv.test.frag
+spv.test.vert
+spv.texture.frag
+spv.texture.vert
+spv.image.frag
+spv.types.frag
+spv.uint.frag
+spv.uniformArray.frag
+spv.variableArrayIndex.frag
+spv.varyingArray.frag
+spv.varyingArrayIndirect.frag
+spv.voidFunction.frag
+spv.whileLoop.frag
+spv.AofA.frag
+spv.queryL.frag
+spv.separate.frag
+spv.shortCircuit.frag
+spv.pushConstant.vert
+spv.subpass.frag
+spv.specConstant.vert
+spv.specConstant.comp
+spv.specConstantComposite.vert
+spv.specConstantOperations.vert
+spv.precise.tese
+spv.precise.tesc
+# GLSL-level semantics
+vulkan.frag
+vulkan.vert
+vulkan.comp
diff --git a/chromium/third_party/glslang/src/Test/test.frag b/chromium/third_party/glslang/src/Test/test.frag
new file mode 100644
index 00000000000..ac9446e1544
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/test.frag
@@ -0,0 +1,22 @@
+#version 110
+
+uniform sampler2D texSampler2D;
+uniform sampler3D texSampler3D;
+
+uniform float blend;
+uniform vec2 scale;
+uniform vec4 u;
+
+varying vec2 t;
+varying vec3 coords;
+
+void main()
+{
+ float blendscale = 1.789;
+
+ vec4 v = texture2D(texSampler2D, (t + scale) / scale ).wzyx;
+
+ vec4 w = texture3D(texSampler3D, coords) + v;
+
+ gl_FragColor = mix(w, u, blend * blendscale);
+}
diff --git a/chromium/third_party/glslang/src/Test/testlist b/chromium/third_party/glslang/src/Test/testlist
new file mode 100644
index 00000000000..dd682b2d0a8
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/testlist
@@ -0,0 +1,134 @@
+sample.frag
+sample.vert
+decls.frag
+specExamples.frag
+specExamples.vert
+versionsClean.frag
+versionsClean.vert
+versionsErrors.frag
+versionsErrors.vert
+100.frag
+120.vert
+120.frag
+130.vert
+130.frag
+140.vert
+140.frag
+150.vert
+150.geom
+150.frag
+precision.frag
+precision.vert
+nonSquare.vert
+matrixError.vert
+cppSimple.vert
+cppIndent.vert
+cppNest.vert
+cppComplexExpr.vert
+badChars.frag
+pointCoord.frag
+array.frag
+array100.frag
+comment.frag
+300.vert
+300.frag
+300BuiltIns.frag
+300layout.vert
+300layout.frag
+300operations.frag
+300block.frag
+310.comp
+310.vert
+310.geom
+310.frag
+310.tesc
+310.tese
+310implicitSizeArrayError.vert
+310AofA.vert
+330.frag
+330comp.frag
+constErrors.frag
+constFold.frag
+errors.frag
+forwardRef.frag
+uint.frag
+switch.frag
+tokenLength.vert
+100Limits.vert
+100scope.vert
+110scope.vert
+300scope.vert
+400.frag
+420.frag
+420.vert
+420.geom
+420_size_gl_in.geom
+430scope.vert
+lineContinuation100.vert
+lineContinuation.vert
+numeral.frag
+400.geom
+400.tesc
+400.tese
+410.tesc
+420.tesc
+420.tese
+410.geom
+430.vert
+430.comp
+430AofA.frag
+440.vert
+440.frag
+450.vert
+450.geom
+450.tesc
+450.tese
+450.frag
+450.comp
+dce.frag
+atomic_uint.frag
+aggOps.frag
+always-discard.frag
+always-discard2.frag
+conditionalDiscard.frag
+conversion.frag
+dataOut.frag
+dataOutIndirect.frag
+deepRvalue.frag
+depthOut.frag
+discard-dce.frag
+doWhileLoop.frag
+earlyReturnDiscard.frag
+flowControl.frag
+forLoop.frag
+functionCall.frag
+functionSemantics.frag
+length.frag
+localAggregates.frag
+loops.frag
+loopsArtificial.frag
+matrix.frag
+matrix2.frag
+newTexture.frag
+Operations.frag
+prepost.frag
+simpleFunctionCall.frag
+structAssignment.frag
+structDeref.frag
+structure.frag
+swizzle.frag
+syntaxError.frag
+test.frag
+texture.frag
+types.frag
+uniformArray.frag
+variableArrayIndex.frag
+varyingArray.frag
+varyingArrayIndirect.frag
+voidFunction.frag
+whileLoop.frag
+nonVulkan.frag
+negativeArraySize.comp
+spv.atomic.comp
+precise.tesc
+precise_struct_block.vert
diff --git a/chromium/third_party/glslang/src/Test/texture.frag b/chromium/third_party/glslang/src/Test/texture.frag
new file mode 100644
index 00000000000..67c48a44069
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/texture.frag
@@ -0,0 +1,73 @@
+#version 130
+
+uniform sampler1D texSampler1D;
+uniform sampler2D texSampler2D;
+uniform sampler3D texSampler3D;
+uniform samplerCube texSamplerCube;
+uniform sampler1DShadow shadowSampler1D;
+uniform sampler2DShadow shadowSampler2D;
+
+uniform float blend;
+uniform vec2 scale;
+uniform vec4 u;
+
+varying vec2 t;
+varying vec2 coords2D;
+
+void main()
+{
+ float blendscale = 1.789;
+ float bias = 2.0;
+ float lod = 3.0;
+ float proj = 2.0;
+ float coords1D = 1.789;
+ vec3 coords3D = vec3(1.789, 2.718, 3.453);
+ vec4 coords4D = vec4(1.789, 2.718, 3.453, 2.0);
+ vec4 color = vec4(0.0, 0.0, 0.0, 0.0);
+
+ color += texture1D (texSampler1D, coords1D);
+ color += texture1D (texSampler1D, coords1D, bias);
+ color += texture1DProj(texSampler1D, coords2D);
+ color += texture1DProj(texSampler1D, coords4D);
+ color += texture1DProj(texSampler1D, coords2D, bias);
+ color += texture1DProj(texSampler1D, coords4D, bias);
+
+ color += texture2D (texSampler2D, coords2D);
+ color += texture2D (texSampler2D, coords2D, bias);
+ color += texture2DProj (texSampler2D, coords3D);
+ color += texture2DProj (texSampler2D, coords4D, bias);
+
+ color += texture3D (texSampler3D, coords3D);
+ color += texture3D (texSampler3D, coords3D, bias);
+ color += texture3DProj (texSampler3D, coords4D);
+ color += texture3DProj (texSampler3D, coords4D, bias);
+
+ color += textureCube (texSamplerCube, coords3D);
+ color += textureCube (texSamplerCube, coords3D, bias);
+
+ color += shadow1D (shadowSampler1D, coords3D);
+ color += shadow1D (shadowSampler1D, coords3D, bias);
+ color += shadow2D (shadowSampler2D, coords3D);
+ color += shadow2D (shadowSampler2D, coords3D, bias);
+ color += shadow1DProj (shadowSampler1D, coords4D);
+ color += shadow1DProj (shadowSampler1D, coords4D, bias);
+ color += shadow2DProj (shadowSampler2D, coords4D);
+ color += shadow2DProj (shadowSampler2D, coords4D, bias);
+
+ ivec2 iCoords2D = ivec2(0, 5);
+ int iLod = 1;
+
+ color += texelFetch(texSampler2D, iCoords2D, iLod);
+
+ vec2 gradX = dFdx(coords2D);
+ vec2 gradY = dFdy(coords2D);
+ const ivec2 offset = ivec2(3, -7);
+
+ color += textureGrad(texSampler2D, coords2D, gradX, gradY);
+ color += textureProjGrad(texSampler2D, vec3(coords2D, proj), gradX, gradY);
+ color += textureGradOffset(texSampler2D, coords2D, gradX, gradY, offset);
+ color += textureProjGradOffset(texSampler2D, coords3D, gradX, gradY, offset);
+ color += textureGrad(shadowSampler2D, vec3(coords2D, lod), gradX, gradY);
+
+ gl_FragColor = mix(color, u, blend * blendscale);
+} \ No newline at end of file
diff --git a/chromium/third_party/glslang/src/Test/tokenLength.vert b/chromium/third_party/glslang/src/Test/tokenLength.vert
new file mode 100644
index 00000000000..691b104234b
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/tokenLength.vert
@@ -0,0 +1,72 @@
+#version 300 es
+
+// 1023 characters
+in float BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789;
+
+// 1024 characters (okay)
+in float ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789;
+
+int E1 = 5000000000; // ERROR
+int E2 = 50000000000; // ERROR
+int B = 4294967295; // okay
+
+int OE = 0777777777777777777777; // ERROR
+int HE = 0x1234567890ABCDEF0; // ERROR
+
+// 1023 character fraction
+float F = 1.0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890;
+
+// 1024 character value
+float G = 1.01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678890;
+
+// 1025 character fraction
+float E3 = 1.012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012;
+
+void main()
+{
+ gl_Position = vec4(ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789,
+ B, F, G);
+}
+
+// super long
+float BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789;
+int superH = 0xBCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789;
+int superO = 0777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777;
+int superI = 429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295;
+float superF = 1.012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890121234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901212345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012;
+
+// Boundary cases
+#extension a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhooooooooooooooooooooooooooooooohhhhhhhhhhhhhhhhh01234 : enable
+#extension a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhooooooooooooooooooooooooooooooohhhhhhhhhhhhhhhhh012345 : enable
+
+// Super long
+#extension A29496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295
+
+// Boundary cases
+#if 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+#error in long non-zero #if
+#endif
+#if 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 == 0
+#error in long zero #if
+#endif
+#if 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 == 0
+#error in too long #if
+#endif
+
+#if A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+#error in long macro #if
+#endif
+#if A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+#error in long macro #if
+#endif
+#if A0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+#error in too long macro #if
+#endif
+
+// Super long
+#if 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+#error in super long #if
+#endif
+#if A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+#error in super long macro #if
+#endif
diff --git a/chromium/third_party/glslang/src/Test/types.frag b/chromium/third_party/glslang/src/Test/types.frag
new file mode 100644
index 00000000000..ee6d9d05e8f
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/types.frag
@@ -0,0 +1,81 @@
+#version 130
+
+uniform bool u_b;
+uniform bvec2 u_b2;
+uniform bvec3 u_b3;
+uniform bvec4 u_b4;
+
+uniform int u_i;
+uniform ivec2 u_i2;
+uniform ivec3 u_i3;
+uniform ivec4 u_i4;
+
+uniform float u_f;
+uniform vec2 u_f2;
+uniform vec3 u_f3;
+uniform vec4 u_f4;
+
+uniform bool i_b;
+uniform bvec2 i_b2;
+uniform bvec3 i_b3;
+uniform bvec4 i_b4;
+
+flat in int i_i;
+flat in ivec2 i_i2;
+flat in ivec3 i_i3;
+flat in ivec4 i_i4;
+
+in float i_f;
+in vec2 i_f2;
+in vec3 i_f3;
+in vec4 i_f4;
+
+void main()
+{
+ bool b = u_b && i_b;
+ bvec2 b2 = bvec2(u_b2.x && i_b2.x && u_b2.y && i_b2.y);
+ bvec3 b3 = bvec3(u_b3.x && i_b3.x && u_b3.y && i_b3.y && u_b3.z && i_b3.z);
+ bvec4 b4 = bvec4(u_b4.x && i_b4.x && u_b4.y && i_b4.y && u_b4.z && i_b4.z && u_b4.w && i_b4.w);
+
+ int i = u_i + i_i;
+ ivec2 i2 = u_i2 + i_i2;
+ ivec3 i3 = u_i3 + i_i3;
+ ivec4 i4 = u_i4 + i_i4;
+
+ float f = u_f + i_f;
+ vec2 f2 = u_f2 + i_f2;
+ vec3 f3 = u_f3 + i_f3;
+ vec4 f4 = u_f4 + i_f4;
+
+ gl_FragColor =
+ b ||
+ b2.x ||
+ b2.y ||
+ b3.x ||
+ b3.y ||
+ b3.z ||
+ b4.x ||
+ b4.y ||
+ b4.z ||
+ b4.w ? vec4(
+ i +
+ i2.x +
+ i2.y +
+ i3.x +
+ i3.y +
+ i3.z +
+ i4.x +
+ i4.y +
+ i4.z +
+ i4.w +
+ f +
+ f2.x +
+ f2.y +
+ f3.x +
+ f3.y +
+ f3.z +
+ f4.x +
+ f4.y +
+ f4.z +
+ f4.w) : vec4(1.0);
+}
diff --git a/chromium/third_party/glslang/src/Test/uint.frag b/chromium/third_party/glslang/src/Test/uint.frag
new file mode 100644
index 00000000000..6dd69ac9fbc
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/uint.frag
@@ -0,0 +1,105 @@
+#version 300 es
+in uvec2 badu; // ERROR
+flat in uvec2 t;
+in highp float f;
+in highp vec2 tc;
+in bool bad; // ERROR
+uniform uvec4 v;
+uniform int i;
+uniform bool b;
+
+out uvec4 c;
+
+uniform lowp usampler2D usampler;
+
+void main()
+{
+ int count = 1;
+
+ uint u = t.y + 3u;
+ const uint cu1error = 0xFFFFFFFF; // ERROR
+ const uint cu1 = 0xFFFFFFFFU;
+ const uint cu2 = -1u; // 0xFFFFFFFF
+ const uint cu3 = 1U;
+ const uint cu4error = 1; // ERROR
+ const uint cu4 = 1u;
+
+ if (cu1 == cu2)
+ count *= 2; // done
+ if (cu3 == cu4)
+ count *= 3; // done
+ if (cu2 == cu3)
+ count *= 5; // not done
+
+ const uint cushiftediierror = 0xFFFFFFFF >> 10; // ERROR
+ const int cshiftedii = 0xFFFFFFFF >> 10;
+ const uint cushiftedui = 0xFFFFFFFFu >> 10;
+ const uint cushiftediuerror = 0xFFFFFFFF >> 10u; // ERROR
+ const int cshiftediu = 0xFFFFFFFF >> 10u;
+ const uint cushifteduu = 0xFFFFFFFFu >> 10u;
+
+ if (cshiftedii == cshiftediu)
+ count *= 7; // done
+ if (cushiftedui == cushifteduu)
+ count *= 11; // done
+ if (cshiftedii == int(cushiftedui))
+ count *= 13; // not done
+
+ uint shiftediierror = 0xFFFFFFFF >> 10; // ERROR
+ int shiftedii = 0xFFFFFFFF >> 10;
+ uint shiftedui = 0xFFFFFFFFu >> 10;
+ uint shiftediuerror = 0xFFFFFFFF >> 10u; // ERROR
+ int shiftediu = 0xFFFFFFFF >> 10u;
+ uint shifteduu = 0xFFFFFFFFu >> 10u;
+
+ if (shiftedii == shiftediu)
+ c = texture(usampler, tc);
+ if (shiftedui == shifteduu)
+ c = texture(usampler, tc + float(1u));
+ if (shiftedii == int(shiftedui))
+ c = texture(usampler, tc - vec2(2u));
+
+ if (t.x > 4u) {
+ float af = float(u);
+ bool ab = bool(u);
+ int ai = int(u);
+
+ c += uvec4(uint(af), uint(ab), uint(ai), count);
+ }
+
+ const uint cmask1 = 0x0A1u;
+ const uint cmask2 = 0xA10u;
+ const uint cmask3 = cmask1 << 4;
+ const uint cmask4 = 0xAB1u;
+
+ if (cmask3 == cmask2)
+ count *= 17; // done
+
+ if ((cmask3 & cmask1) != 0u)
+ count *= 19; // not done
+
+ if ((cmask1 | cmask3) == cmask4)
+ count *= 23; // done
+
+ if ((cmask1 ^ cmask4) == 0xA10u)
+ count *= 27; // done
+
+ uint mask1 = 0x0A1u;
+ uint mask2 = 0xA10u;
+ uint mask3 = mask1 << 4;
+ uint mask4 = 0xAB1u;
+
+ if (mask3 == mask2)
+ count *= 100;
+
+ if ((mask3 & mask1) != 0u)
+ count *= 101;
+
+ if ((mask1 | mask3) == mask4)
+ count *= 102;
+
+ if ((mask1 ^ mask4) == 0xA10u)
+ count *= 103;
+
+ c += uvec4(count);
+}
diff --git a/chromium/third_party/glslang/src/Test/uniformArray.frag b/chromium/third_party/glslang/src/Test/uniformArray.frag
new file mode 100644
index 00000000000..358b54f66d9
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/uniformArray.frag
@@ -0,0 +1,16 @@
+#version 130
+uniform sampler2D texSampler2D;
+uniform vec3 inColor;
+uniform vec4 color[6];
+uniform float alpha[16];
+
+void main()
+{
+ vec4 texColor = color[1] + color[1];
+
+ texColor.xyz += inColor;
+
+ texColor.a += alpha[12];
+
+ gl_FragColor = texColor;
+}
diff --git a/chromium/third_party/glslang/src/Test/variableArrayIndex.frag b/chromium/third_party/glslang/src/Test/variableArrayIndex.frag
new file mode 100644
index 00000000000..18c7e7b7eae
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/variableArrayIndex.frag
@@ -0,0 +1,48 @@
+#version 130
+uniform sampler2D sampler;
+varying vec2 coord;
+
+struct lunarStruct1 {
+ int i;
+ float f;
+};
+
+struct lunarStruct2 {
+ int i;
+ float f;
+ lunarStruct1 s1_1;
+};
+
+struct lunarStruct3 {
+ lunarStruct2 s2_1[3];
+ int i;
+ float f;
+ lunarStruct1 s1_1;
+};
+
+
+uniform lunarStruct1 foo;
+uniform lunarStruct2 foo2[5];
+uniform lunarStruct3 foo3;
+uniform int Count;
+
+void main()
+{
+ float scale;
+ int iLocal = Count;
+
+ if (foo3.s2_1[1].i > 0)
+ scale = foo2[foo3.s2_1[foo.i].i + 2 + ++iLocal].s1_1.f;
+ else
+ scale = foo3.s2_1[0].s1_1.f;
+
+ //for (int i = 0; i < iLocal; ++i) {
+ // scale += foo2[i].f;
+ //}
+
+ gl_FragColor = scale * texture2D(sampler, coord);
+
+ vec2[3] constructed = vec2[3](coord, vec2(scale), vec2(1.0, 2.0));
+ gl_FragColor += vec4(constructed[foo.i], constructed[foo.i]);
+}
+
diff --git a/chromium/third_party/glslang/src/Test/varyingArray.frag b/chromium/third_party/glslang/src/Test/varyingArray.frag
new file mode 100644
index 00000000000..1364cd60d05
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/varyingArray.frag
@@ -0,0 +1,19 @@
+#version 130
+uniform sampler2D texSampler2D;
+varying vec4 color;
+varying float alpha;
+
+varying vec4 gl_TexCoord[6];
+
+varying vec4 foo[3];
+
+void main()
+{
+ vec4 texColor = texture2D(texSampler2D, vec2(gl_TexCoord[4] + gl_TexCoord[5]));
+
+ texColor += color;
+
+ texColor.a = alpha;
+
+ gl_FragColor = foo[1] + gl_TexCoord[0] + gl_TexCoord[4] + texColor;
+}
diff --git a/chromium/third_party/glslang/src/Test/varyingArrayIndirect.frag b/chromium/third_party/glslang/src/Test/varyingArrayIndirect.frag
new file mode 100644
index 00000000000..7463cdce71d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/varyingArrayIndirect.frag
@@ -0,0 +1,21 @@
+#version 130
+uniform sampler2D texSampler2D;
+varying vec4 color;
+varying float alpha;
+
+varying vec4 gl_TexCoord[6];
+
+varying vec4 userIn[2];
+
+uniform int a, b;
+
+void main()
+{
+ vec4 texColor = texture2D(texSampler2D, vec2(userIn[b] + gl_TexCoord[a] + gl_TexCoord[5]));
+
+ texColor += color;
+
+ texColor.a = alpha;
+
+ gl_FragColor = gl_TexCoord[0] + gl_TexCoord[b] + texColor + userIn[a];
+}
diff --git a/chromium/third_party/glslang/src/Test/versionsClean.frag b/chromium/third_party/glslang/src/Test/versionsClean.frag
new file mode 100644
index 00000000000..0790addbf7c
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/versionsClean.frag
@@ -0,0 +1,45 @@
+//
+//Copyright (C) 2012 LunarG, Inc.
+//All rights reserved.
+//
+//Redistribution and use in source and binary forms, with or without
+//modification, are permitted provided that the following conditions
+//are met:
+//
+// Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided
+// with the distribution.
+//
+// Neither the name of LunarG Inc. nor the names of its
+// contributors may be used to endorse or promote products derived
+// from this software without specific prior written permission.
+//
+//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+//"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+//FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+//COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+//INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+//BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+//LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+//CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+//LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+//POSSIBILITY OF SUCH DAMAGE.
+//
+#version 300 es
+
+in highp vec3 color;
+out highp vec4 foo;
+
+uniform highp sampler2DArrayShadow bar;
+
+void main()
+{
+ foo = vec4(color, 142.0f);
+ discard;
+}
diff --git a/chromium/third_party/glslang/src/Test/versionsClean.vert b/chromium/third_party/glslang/src/Test/versionsClean.vert
new file mode 100644
index 00000000000..4d3479ccbcd
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/versionsClean.vert
@@ -0,0 +1,43 @@
+//
+//Copyright (C) 2012 LunarG, Inc.
+//All rights reserved.
+//
+//Redistribution and use in source and binary forms, with or without
+//modification, are permitted provided that the following conditions
+//are met:
+//
+// Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided
+// with the distribution.
+//
+// Neither the name of LunarG Inc. nor the names of its
+// contributors may be used to endorse or promote products derived
+// from this software without specific prior written permission.
+//
+//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+//"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+//FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+//COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+//INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+//BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+//LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+//CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+//LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+//POSSIBILITY OF SUCH DAMAGE.
+//
+#version 420 compatibility
+
+attribute vec3 color;
+
+uniform sampler2DRect foo;
+
+void main()
+{
+ gl_Position = vec4(color, 142.0f);
+}
diff --git a/chromium/third_party/glslang/src/Test/versionsErrors.frag b/chromium/third_party/glslang/src/Test/versionsErrors.frag
new file mode 100644
index 00000000000..ad451e527c0
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/versionsErrors.frag
@@ -0,0 +1,46 @@
+//
+//Copyright (C) 2012 LunarG, Inc.
+//All rights reserved.
+//
+//Redistribution and use in source and binary forms, with or without
+//modification, are permitted provided that the following conditions
+//are met:
+//
+// Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided
+// with the distribution.
+//
+// Neither the name of LunarG Inc. nor the names of its
+// contributors may be used to endorse or promote products derived
+// from this software without specific prior written permission.
+//
+//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+//"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+//FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+//COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+//INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+//BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+//LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+//CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+//LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+//POSSIBILITY OF SUCH DAMAGE.
+//
+#version 110 es
+
+#extension GL_ARB_texture_rectangle : disable
+
+attribute vec3 color;
+
+uniform sampler2DRect foo;
+
+void main()
+{
+ gl_FragColor = vec4(color, 142.0f);
+ discard;
+}
diff --git a/chromium/third_party/glslang/src/Test/versionsErrors.vert b/chromium/third_party/glslang/src/Test/versionsErrors.vert
new file mode 100644
index 00000000000..0b5b011df33
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/versionsErrors.vert
@@ -0,0 +1,46 @@
+//
+//Copyright (C) 2012 LunarG, Inc.
+//All rights reserved.
+//
+//Redistribution and use in source and binary forms, with or without
+//modification, are permitted provided that the following conditions
+//are met:
+//
+// Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided
+// with the distribution.
+//
+// Neither the name of LunarG Inc. nor the names of its
+// contributors may be used to endorse or promote products derived
+// from this software without specific prior written permission.
+//
+//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+//"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+//FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+//COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+//INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+//BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+//LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+//CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+//LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+//POSSIBILITY OF SUCH DAMAGE.
+//
+#version 420 core
+
+#extension GL_ARB_texture_rectangle : enable
+
+attribute vec3 color;
+
+uniform sampler2DRect foo;
+
+void main()
+{
+ gl_Position = vec4(color, 142.0f);
+ discard;
+}
diff --git a/chromium/third_party/glslang/src/Test/voidFunction.frag b/chromium/third_party/glslang/src/Test/voidFunction.frag
new file mode 100644
index 00000000000..573d5f2ce42
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/voidFunction.frag
@@ -0,0 +1,34 @@
+#version 120
+
+uniform vec4 bigColor;
+varying vec4 BaseColor;
+uniform float d;
+
+float bar = 2.0;
+
+void foo()
+{
+ bar++;
+
+ return;
+}
+
+void foo2()
+{
+ bar++;
+}
+
+void main()
+{
+ vec4 outColor = bigColor;
+
+ foo();
+
+ foo2();
+
+ outColor.x += bar;
+
+ gl_FragColor = outColor;
+
+ return;
+}
diff --git a/chromium/third_party/glslang/src/Test/vulkan.ast.vert b/chromium/third_party/glslang/src/Test/vulkan.ast.vert
new file mode 100644
index 00000000000..c5a6a42c7d8
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/vulkan.ast.vert
@@ -0,0 +1,42 @@
+#version 450
+
+layout(constant_id = 200) const float scf1 = 1.0;
+layout(constant_id = 201) const bool scbt = true;
+layout(constant_id = 202) const int sci2 = 2;
+
+void main()
+{
+ bool(scf1); // not a spec-const
+ bool(scbt); // spec-const
+ bool(sci2); // spec-const
+
+ float(scf1); // not a spec-const
+ float(scbt); // not a spec-const
+ float(sci2); // not a spec-const
+
+ int(scf1); // not a spec-const
+ int(scbt); // spec-const
+ int(sci2); // spec-const
+
+ scf1 * scf1; // not a spec-const
+ scbt || scbt; // spec-const
+ sci2 * sci2; // spec-const
+ scf1 + sci2; // implicit conversion not a spec-const
+
+ -scf1; // not a spec-const
+ !scbt; // spec-const
+ -sci2; // spec-const
+
+ scf1 > scf1; // not a spec-const
+ sci2 > sci2; // spec-const
+
+ scf1 != scf1; // not a spec-const
+ scbt != scbt; // spec-const
+ sci2 != sci2; // spec-const
+
+ ivec2(sci2, sci2); // spec-const
+ ivec2[2](ivec2(sci2, sci2), ivec2(sci2, sci2)); // not a spec-const
+
+ vec2(scf1, scf1); // not spec-const
+ vec2[2](vec2(scf1, scf1), vec2(scf1, scf1)); // not a spec-const
+}
diff --git a/chromium/third_party/glslang/src/Test/vulkan.comp b/chromium/third_party/glslang/src/Test/vulkan.comp
new file mode 100644
index 00000000000..fe5637492ca
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/vulkan.comp
@@ -0,0 +1,12 @@
+#version 450
+
+layout(local_size_x_id = 18, local_size_z_id = 19) in;
+layout(local_size_x = 32, local_size_y = 32) in;
+layout(local_size_z_id = 14) in; // ERROR, can't change this
+
+void main()
+{
+ gl_WorkGroupSize;
+}
+
+layout(local_size_y_id = 19) in; // ERROR, already used: TODO not yet reported
diff --git a/chromium/third_party/glslang/src/Test/vulkan.frag b/chromium/third_party/glslang/src/Test/vulkan.frag
new file mode 100644
index 00000000000..8dd7a12dfc0
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/vulkan.frag
@@ -0,0 +1,75 @@
+#version 450
+
+uniform sampler s;
+uniform sampler sA[4];
+uniform texture2D t2d;
+uniform texture3D t3d[4];
+int i;
+uniform samplerShadow sShadow;
+uniform texture3D t3d5[5];
+writeonly uniform image2D i2d;
+
+void badConst()
+{
+ sampler2D(t2d); // ERROR, need 2 args
+ sampler2D(s, s); // ERROR, wrong type
+ sampler2D(i, i); // ERROR, wrong type
+ sampler2D(t2d, i); // ERROR, wrong type
+ sampler2D(t2d, t2d); // ERROR, wrong type
+ sampler2D(t2d, sA); // ERROR, wrong type
+
+ sampler3D[4](t3d5, sA[2]); // ERROR, can't make array
+ sampler2D(i2d, s); // ERROR, image instead of texture
+ sampler2D(t3d[1], s); // ERROR, 3D not 2D
+ sampler2D(t2d, sShadow); // ERROR, shadow mismatch
+ sampler2DShadow(t2d, s); // ERROR, shadow mismatch
+}
+
+sampler2D s2D = sampler2D(t2d, s); // ERROR, no sampler constructor
+sampler3D s3d[4] = sampler3D[4](t3d, sA[2]); // ERROR, no sampler constructor
+
+out vec4 color;
+
+void main()
+{
+ color = texture(s2D, vec2(0.5));
+ color += texture(s3d[i], vec3(0.5));
+}
+
+layout(push_constant) buffer pcb { // ERROR, not on a buffer
+ int a;
+} pcbInst;
+
+layout(push_constant) uniform float pcfloat; // ERROR 2X: not on a non-block, and non-opaque outside block
+
+layout(push_constant) uniform; // ERROR, needs an object
+
+layout(push_constant) uniform pcb2 {
+ int a;
+}; // ERROR, no instance name
+
+layout(input_attachment_index = 2) uniform subpassInput subD;
+layout(input_attachment_index = 3) uniform texture2D subDbad1; // ERROR, not a texture
+layout(input_attachment_index = 4) writeonly uniform image2D subDbad2; // ERROR, not an image
+uniform subpassInput subDbad3; // ERROR, need attachment number
+layout(input_attachment_index = 2) uniform subpassInputMS subDMS;
+
+void foo()
+{
+ vec4 v = subpassLoad(subD);
+ v += subpassLoadMS(subD); // ERROR, no such function
+ v += subpassLoad(subD, 2); // ERROR, no such sig.
+ v += subpassLoad(subDMS, 2);
+ v += subpassLoadMS(subDMS, 2); // ERROR, no such function
+}
+
+subroutine int fooS; // ERROR, not in SPV
+subroutine int fooSub(); // ERROR, not in SPV
+
+uniform vec4 dv4; // ERROR, no default uniforms
+
+void fooTex()
+{
+ texture(t2d, vec2(1.0)); // ERROR, need a sampler, not a pure texture
+ imageStore(t2d, ivec2(4, 5), vec4(1.2)); // ERROR, need an image, not a pure texture
+} \ No newline at end of file
diff --git a/chromium/third_party/glslang/src/Test/vulkan.vert b/chromium/third_party/glslang/src/Test/vulkan.vert
new file mode 100644
index 00000000000..efc9d9d0c39
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/vulkan.vert
@@ -0,0 +1,47 @@
+#version 450
+
+layout(input_attachment_index = 2) uniform subpassInput subD1; // ERROR, not this stage
+layout(input_attachment_index = 2) uniform isubpassInput subD2; // ERROR, not this stage
+layout(input_attachment_index = 2) uniform usubpassInput subD3; // ERROR, not this stage
+layout(input_attachment_index = 2) uniform subpassInputMS subD4; // ERROR, not this stage
+layout(input_attachment_index = 2) uniform isubpassInputMS subD5; // ERROR, not this stage
+layout(input_attachment_index = 2) uniform usubpassInputMS subD6; // ERROR, not this stage
+
+out vec4 color;
+
+layout(constant_id = 17) const ivec2 arraySizes = ivec2(12,13); // ERROR, not a scalar
+layout(constant_id = 17) uniform sampler2D s2D; // ERROR, not the right type or qualifier
+layout(constant_id = 4000) const int c1 = 12; // ERROR, too big
+layout(constant_id = 4) const float c2[2] = float[2](1.0, 2.0); // ERROR, not a scalar
+layout(constant_id = 4) in;
+
+void main()
+{
+ color = subpassLoad(subD1); // ERROR, no such function in this stage
+}
+
+layout(binding = 0) uniform atomic_uint aui; // ERROR, no atomics in Vulkan
+layout(shared) uniform ub1n { int a; } ub1i; // ERROR, no shared
+layout(packed) uniform ub2n { int a; } ub2i; // ERROR, no packed
+
+layout(constant_id=222) const int arraySize = 4;
+
+void foo()
+{
+ int a1[arraySize];
+ int a2[arraySize] = a1; // ERROR, can't use in initializer
+
+ a1 = a2; // ERROR, can't assign, even though the same type
+ if (a1 == a2) // ERROR, can't compare either
+ ++color;
+}
+
+layout(set = 1, push_constant) uniform badpc { int a; } badpcI; // ERROR, no descriptor set with push_constant
+
+#ifndef VULKAN
+#error VULKAN should be defined
+#endif
+
+#if VULKAN != 100
+#error VULKAN should be 100
+#endif
diff --git a/chromium/third_party/glslang/src/Test/whileLoop.frag b/chromium/third_party/glslang/src/Test/whileLoop.frag
new file mode 100644
index 00000000000..126fdb12cf1
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/whileLoop.frag
@@ -0,0 +1,16 @@
+#version 110
+
+uniform vec4 bigColor;
+varying vec4 BaseColor;
+uniform float d;
+
+void main()
+{
+ vec4 color = BaseColor;
+
+ while (color.x < d) {
+ color += bigColor;
+ }
+
+ gl_FragColor = color;
+}