Regres: Add pending deqp change to fix bad graphicsfuzz tests

Change-Id: Ida07aa22365990b23dbddf59025506c75e880c22
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/38768
Presubmit-Ready: Alexis Hétu <sugoi@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Tested-by: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
diff --git a/tests/regres/deqp-patches/graphicsfuzz-pending-test-fix.patch b/tests/regres/deqp-patches/graphicsfuzz-pending-test-fix.patch
new file mode 100644
index 0000000..e266743
--- /dev/null
+++ b/tests/regres/deqp-patches/graphicsfuzz-pending-test-fix.patch
@@ -0,0 +1,472 @@
+From a5bd5004f721a52b7b274b2bbe2a727723093636 Mon Sep 17 00:00:00 2001
+From: Alastair Donaldson <afdx@google.com>
+Date: Tue, 26 Nov 2019 14:17:11 +0000
+Subject: [PATCH] Fix invalid SPIR-V in GraphicsFuzz tests
+
+Components: Vulkan
+
+VK-GL-CTS Issue: 2122
+
+Affected tests:
+
+dEQP-VK.graphicsfuzz.continue-and-merge
+dEQP-VK.graphicsfuzz.control-flow-switch
+dEQP-VK.graphicsfuzz.discard-continue-return
+dEQP-VK.graphicsfuzz.fragcoord-control-flow-2
+dEQP-VK.graphicsfuzz.fragcoord-control-flow
+dEQP-VK.graphicsfuzz.loop-call-discard
+dEQP-VK.graphicsfuzz.mat-array-deep-control-flow
+dEQP-VK.graphicsfuzz.mat-array-distance
+dEQP-VK.graphicsfuzz.return-in-loop-in-function
+dEQP-VK.graphicsfuzz.unreachable-continue-statement
+
+Change-Id: Iaa7448ee4a815d9e3a1c8a5582214ecd599ac143
+---
+ .../graphicsfuzz/continue-and-merge.amber     | 16 +++++++-----
+ .../graphicsfuzz/control-flow-switch.amber    |  8 +++---
+ .../discard-continue-return.amber             |  6 +++--
+ .../fragcoord-control-flow-2.amber            | 14 ++++++----
+ .../graphicsfuzz/fragcoord-control-flow.amber | 26 +++++++++++++------
+ .../graphicsfuzz/loop-call-discard.amber      | 16 ++++++++----
+ .../mat-array-deep-control-flow.amber         | 12 ++++++---
+ .../graphicsfuzz/mat-array-distance.amber     | 14 ++++++----
+ .../return-in-loop-in-function.amber          |  6 +++--
+ .../unreachable-continue-statement.amber      |  6 +++--
+ 10 files changed, 81 insertions(+), 43 deletions(-)
+
+diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/continue-and-merge.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/continue-and-merge.amber
+index 8e49dd8d0..4eae6504e 100644
+--- a/external/vulkancts/data/vulkan/amber/graphicsfuzz/continue-and-merge.amber
++++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/continue-and-merge.amber
+@@ -49,13 +49,15 @@
+          %42 = OpLabel
+                OpLoopMerge %47 %45 None
+                OpBranchConditional %false %49 %47
+-            %49 = OpLabel
+-                  OpLoopMerge %45 %52 None
+-                  OpBranchConditional %false %45 %45
+-                %52 = OpLabel
+-                      OpBranch %49
+-            %45 = OpLabel
+-                  OpBranch %42
++         %49 = OpLabel
++               OpLoopMerge %50 %52 None
++               OpBranchConditional %false %50 %50
++         %52 = OpLabel
++               OpBranch %49
++         %50 = OpLabel
++               OpBranch %45
++         %45 = OpLabel
++               OpBranch %42
+          %47 = OpLabel
+                OpStore %_GLF_color %red
+                OpReturn
+diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/control-flow-switch.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/control-flow-switch.amber
+index efc9bb1de..113ac09de 100644
+--- a/external/vulkancts/data/vulkan/amber/graphicsfuzz/control-flow-switch.amber
++++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/control-flow-switch.amber
+@@ -86,7 +86,7 @@
+ ; SPIR-V
+ ; Version: 1.0
+ ; Generator: Khronos Glslang Reference Front End; 7
+-; Bound: 195
++; Bound: 196
+ ; Schema: 0
+                OpCapability Shader
+           %1 = OpExtInstImport "GLSL.std.450"
+@@ -157,10 +157,12 @@
+                OpBranchConditional %150 %151 %146
+         %151 = OpLabel
+         %154 = OpConvertFToS %int %124
+-               OpSelectionMerge %156 None
++               OpSelectionMerge %195 None
+                OpSwitch %154 %156 9 %157 42 %158
++        %195 = OpLabel
++               OpBranch %156
+         %156 = OpLabel
+-        %194 = OpPhi %bool %179 %151 %178 %166
++        %194 = OpPhi %bool %179 %151 %178 %166 %false %195
+         %169 = OpIAdd %int %177 %int_1
+                OpBranch %145
+         %157 = OpLabel
+diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/discard-continue-return.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/discard-continue-return.amber
+index 5890c9908..bc71ac499 100644
+--- a/external/vulkancts/data/vulkan/amber/graphicsfuzz/discard-continue-return.amber
++++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/discard-continue-return.amber
+@@ -65,7 +65,7 @@ SHADER fragment variant_fragment_shader SPIRV-ASM
+ ; SPIR-V
+ ; Version: 1.0
+ ; Generator: Khronos Glslang Reference Front End; 7
+-; Bound: 95
++; Bound: 96
+ ; Schema: 0
+                OpCapability Shader
+           %1 = OpExtInstImport "GLSL.std.450"
+@@ -129,10 +129,12 @@ SHADER fragment variant_fragment_shader SPIRV-ASM
+          %84 = OpAccessChain %36 %32 %34 %35
+          %85 = OpLoad %6 %84
+          %86 = OpFOrdGreaterThan %24 %28 %85
+-               OpSelectionMerge %87 None
++               OpSelectionMerge %95 None
+                OpBranchConditional %86 %88 %87
+          %88 = OpLabel
+                OpKill
++         %95 = OpLabel
++	       OpBranch %87
+          %87 = OpLabel
+                OpBranchConditional %46 %75 %76
+          %82 = OpLabel
+diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/fragcoord-control-flow-2.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/fragcoord-control-flow-2.amber
+index cfcb9fb32..baa82c96d 100644
+--- a/external/vulkancts/data/vulkan/amber/graphicsfuzz/fragcoord-control-flow-2.amber
++++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/fragcoord-control-flow-2.amber
+@@ -57,7 +57,7 @@
+ ; SPIR-V
+ ; Version: 1.0
+ ; Generator: Khronos Glslang Reference Front End; 7
+-; Bound: 96
++; Bound: 98
+ ; Schema: 0
+                OpCapability Shader
+           %1 = OpExtInstImport "GLSL.std.450"
+@@ -105,7 +105,7 @@
+          %32 = OpLoad %float %31
+          %33 = OpConvertFToS %int %32
+          %35 = OpSLessThan %bool %33 %int_10000000
+-               OpSelectionMerge %37 None
++               OpSelectionMerge %96 None
+                OpBranchConditional %35 %36 %38
+          %36 = OpLabel
+                OpBranch %37
+@@ -124,12 +124,14 @@
+          %54 = OpLabel
+          %89 = OpPhi %int %int_0 %47 %62 %55
+          %60 = OpSLessThan %bool %89 %int_1
+-               OpLoopMerge %56 %55 None
+-               OpBranchConditional %60 %55 %56
++               OpLoopMerge %97 %55 None
++               OpBranchConditional %60 %55 %97
+          %55 = OpLabel
+                OpStore %_GLF_color %12
+          %62 = OpIAdd %int %89 %int_1
+                OpBranch %54
++         %97 = OpLabel
++               OpBranch %56
+          %56 = OpLabel
+          %64 = OpIAdd %int %83 %int_1
+                OpBranch %46
+@@ -151,8 +153,10 @@
+                OpKill
+          %44 = OpLabel
+                OpBranch %37
++         %96 = OpLabel
++               OpBranch %37
+          %37 = OpLabel
+-         %95 = OpPhi %v4float %87 %36 %85 %44
++         %95 = OpPhi %v4float %87 %36 %85 %44 %88 %96
+          %81 = OpIAdd %int %82 %int_1
+                OpBranch %17
+          %19 = OpLabel
+diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/fragcoord-control-flow.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/fragcoord-control-flow.amber
+index b7fb85cdf..453944028 100644
+--- a/external/vulkancts/data/vulkan/amber/graphicsfuzz/fragcoord-control-flow.amber
++++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/fragcoord-control-flow.amber
+@@ -85,7 +85,7 @@
+ ; SPIR-V
+ ; Version: 1.0
+ ; Generator: Khronos Glslang Reference Front End; 7
+-; Bound: 201
++; Bound: 206
+ ; Schema: 0
+                OpCapability Shader
+           %1 = OpExtInstImport "GLSL.std.450"
+@@ -146,10 +146,12 @@
+                OpBranch %19
+          %35 = OpLabel
+          %39 = OpFOrdLessThan %bool %32 %float_0
+-               OpSelectionMerge %41 None
++               OpSelectionMerge %201 None
+                OpBranchConditional %39 %40 %41
+          %40 = OpLabel
+                OpBranch %19
++        %201 = OpLabel
++               OpBranch %41
+          %41 = OpLabel
+          %44 = OpIAdd %int %167 %int_1
+                OpBranch %17
+@@ -166,8 +168,10 @@
+          %49 = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_0
+          %50 = OpLoad %float %49
+          %52 = OpFOrdLessThan %bool %50 %float_40
+-               OpSelectionMerge %53 None
++               OpSelectionMerge %202 None
+                OpBranchConditional %52 %53 %55
++        %202 = OpLabel
++               OpBranch %53
+          %53 = OpLabel
+                OpStore %_GLF_color %12
+                OpBranchConditional %false %45 %47
+@@ -187,7 +191,7 @@
+                OpBranchConditional %70 %65 %66
+          %65 = OpLabel
+          %74 = OpFOrdLessThan %bool %50 %float_160
+-               OpSelectionMerge %76 None
++               OpSelectionMerge %203 None
+                OpBranchConditional %74 %75 %94
+          %75 = OpLabel
+                OpBranch %78
+@@ -200,13 +204,15 @@
+          %86 = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_1
+          %87 = OpLoad %float %86
+          %88 = OpFOrdLessThan %bool %87 %float_0
+-               OpSelectionMerge %90 None
++               OpSelectionMerge %204 None
+                OpBranchConditional %88 %89 %91
+          %89 = OpLabel
+                OpBranch %90
+          %91 = OpLabel
+                OpStore %_GLF_color %12
+                OpBranch %90
++        %204 = OpLabel
++               OpBranch %90
+          %90 = OpLabel
+          %93 = OpISub %int %185 %int_1
+                OpBranch %78
+@@ -244,12 +250,14 @@
+         %126 = OpLabel
+         %182 = OpPhi %int %int_0 %119 %134 %127
+         %132 = OpSLessThan %bool %182 %int_1
+-               OpLoopMerge %128 %127 None
+-               OpBranchConditional %132 %127 %128
++               OpLoopMerge %205 %127 None
++               OpBranchConditional %132 %127 %205
+         %127 = OpLabel
+                OpStore %_GLF_color %12
+         %134 = OpIAdd %int %182 %int_1
+                OpBranch %126
++        %205 = OpLabel
++               OpBranch %128
+         %128 = OpLabel
+         %136 = OpIAdd %int %172 %int_1
+                OpBranch %118
+@@ -274,8 +282,10 @@
+         %100 = OpLabel
+         %200 = OpPhi %v4float %176 %104 %174 %116
+                OpBranch %76
++        %203 = OpLabel
++               OpBranch %76
+          %76 = OpLabel
+-        %197 = OpPhi %v4float %176 %80 %200 %100
++        %197 = OpPhi %v4float %176 %80 %200 %100 %181 %203
+         %153 = OpISub %int %171 %int_1
+                OpBranch %64
+          %66 = OpLabel
+diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/loop-call-discard.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/loop-call-discard.amber
+index fc164a570..59f78503c 100644
+--- a/external/vulkancts/data/vulkan/amber/graphicsfuzz/loop-call-discard.amber
++++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/loop-call-discard.amber
+@@ -113,7 +113,7 @@ SHADER fragment variant_fragment_shader SPIRV-ASM
+ ; SPIR-V
+ ; Version: 1.0
+ ; Generator: Khronos Glslang Reference Front End; 7
+-; Bound: 267
++; Bound: 270
+ ; Schema: 0
+                OpCapability Shader
+           %1 = OpExtInstImport "GLSL.std.450"
+@@ -209,8 +209,8 @@ SHADER fragment variant_fragment_shader SPIRV-ASM
+         %246 = OpPhi %6 %247 %117 %264 %139
+         %241 = OpPhi %11 %14 %117 %142 %139
+         %126 = OpSLessThan %24 %241 %111
+-               OpLoopMerge %122 %139 None
+-               OpBranchConditional %126 %121 %122
++               OpLoopMerge %267 %139 None
++               OpBranchConditional %126 %121 %267
+         %121 = OpLabel
+         %128 = OpIMul %11 %111 %241
+         %130 = OpIAdd %11 %128 %240
+@@ -258,10 +258,12 @@ SHADER fragment variant_fragment_shader SPIRV-ASM
+         %217 = OpAccessChain %20 %17 %58
+         %218 = OpLoad %6 %217
+         %219 = OpFOrdLessThan %24 %218 %23
+-               OpSelectionMerge %220 None
++               OpSelectionMerge %269 None
+                OpBranchConditional %219 %221 %220
+         %221 = OpLabel
+                OpKill
++        %269 = OpLabel
++               OpBranch %220
+         %220 = OpLabel
+         %224 = OpFMul %6 %78 %249
+         %225 = OpFAdd %6 %224 %28
+@@ -283,13 +285,17 @@ SHADER fragment variant_fragment_shader SPIRV-ASM
+         %135 = OpAccessChain %59 %57 %14 %19
+         %136 = OpLoad %6 %135
+         %137 = OpFOrdGreaterThan %24 %114 %136
+-               OpSelectionMerge %139 None
++               OpSelectionMerge %268 None
+                OpBranchConditional %137 %138 %139
+         %138 = OpLabel
+                OpKill
++        %268 = OpLabel
++               OpBranch %139
+         %139 = OpLabel
+         %142 = OpIAdd %11 %241 %84
+                OpBranch %120
++        %267 = OpLabel
++               OpBranch %122
+         %122 = OpLabel
+         %144 = OpIAdd %11 %240 %84
+                OpBranch %105
+diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/mat-array-deep-control-flow.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/mat-array-deep-control-flow.amber
+index a5d60e5b2..ef6c7d45c 100644
+--- a/external/vulkancts/data/vulkan/amber/graphicsfuzz/mat-array-deep-control-flow.amber
++++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/mat-array-deep-control-flow.amber
+@@ -60,7 +60,7 @@
+ ; SPIR-V
+ ; Version: 1.0
+ ; Generator: Khronos Glslang Reference Front End; 7
+-; Bound: 104
++; Bound: 106
+ ; Schema: 0
+                OpCapability Shader
+           %1 = OpExtInstImport "GLSL.std.450"
+@@ -134,8 +134,8 @@
+          %60 = OpLabel
+          %99 = OpPhi %int %int_0 %52 %88 %86
+          %66 = OpSLessThan %bool %99 %int_4
+-               OpLoopMerge %62 %86 None
+-               OpBranchConditional %66 %61 %62
++               OpLoopMerge %104 %86 None
++               OpBranchConditional %66 %61 %104
+          %61 = OpLabel
+          %74 = OpSelect %int %66 %int_1 %int_0
+          %78 = OpAccessChain %_ptr_Function_float %m %74 %98 %uint_3
+@@ -144,14 +144,18 @@
+          %81 = OpFDiv %v2float %70 %80
+          %83 = OpExtInst %float %1 Distance %70 %81
+          %84 = OpFOrdLessThan %bool %83 %float_1
+-               OpSelectionMerge %86 None
++               OpSelectionMerge %105 None
+                OpBranchConditional %84 %85 %86
+          %85 = OpLabel
+                OpStore %_GLF_color %36
+                OpBranch %86
++        %105 = OpLabel
++               OpBranch %86
+          %86 = OpLabel
+          %88 = OpIAdd %int %99 %int_1
+                OpBranch %60
++        %104 = OpLabel
++               OpBranch %62
+          %62 = OpLabel
+          %90 = OpIAdd %int %98 %int_1
+                OpBranch %51
+diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/mat-array-distance.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/mat-array-distance.amber
+index 58e415945..a5658efb8 100644
+--- a/external/vulkancts/data/vulkan/amber/graphicsfuzz/mat-array-distance.amber
++++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/mat-array-distance.amber
+@@ -55,7 +55,7 @@
+ ; SPIR-V
+ ; Version: 1.0
+ ; Generator: Khronos Glslang Reference Front End; 7
+-; Bound: 98
++; Bound: 100
+ ; Schema: 0
+                OpCapability Shader
+           %1 = OpExtInstImport "GLSL.std.450"
+@@ -134,14 +134,14 @@
+          %97 = OpPhi %int %int_0 %42 %66 %81
+          %96 = OpPhi %int %int_0 %42 %84 %81
+          %57 = OpSLessThan %bool %96 %int_4
+-               OpLoopMerge %53 %81 None
+-               OpBranchConditional %57 %52 %53
++               OpLoopMerge %98 %81 None
++               OpBranchConditional %57 %52 %98
+          %52 = OpLabel
+          %60 = OpSGreaterThanEqual %bool %97 %int_2
+                OpSelectionMerge %62 None
+                OpBranchConditional %60 %61 %62
+          %61 = OpLabel
+-               OpBranch %53
++               OpBranch %98
+          %62 = OpLabel
+          %66 = OpIAdd %int %97 %int_1
+          %73 = OpAccessChain %_ptr_Function_v4float %m %96 %95
+@@ -149,14 +149,18 @@
+          %75 = OpVectorShuffle %v2float %74 %74 0 1
+          %78 = OpExtInst %float %1 Distance %76 %75
+          %79 = OpFOrdLessThan %bool %78 %float_1
+-               OpSelectionMerge %81 None
++               OpSelectionMerge %99 None
+                OpBranchConditional %79 %80 %81
+          %80 = OpLabel
+                OpStore %_GLF_color %82
+                OpBranch %81
++         %99 = OpLabel
++               OpBranch %81
+          %81 = OpLabel
+          %84 = OpIAdd %int %96 %int_1
+                OpBranch %51
++         %98 = OpLabel
++               OpBranch %53
+          %53 = OpLabel
+          %86 = OpIAdd %int %95 %int_1
+                OpBranch %41
+diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/return-in-loop-in-function.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/return-in-loop-in-function.amber
+index 40cd66caa..dfd656972 100644
+--- a/external/vulkancts/data/vulkan/amber/graphicsfuzz/return-in-loop-in-function.amber
++++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/return-in-loop-in-function.amber
+@@ -71,7 +71,7 @@ fbsize 256 256
+ ; SPIR-V
+ ; Version: 1.0
+ ; Generator: Khronos Glslang Reference Front End; 7
+-; Bound: 58
++; Bound: 59
+ ; Schema: 0
+                OpCapability Shader
+           %1 = OpExtInstImport "GLSL.std.450"
+@@ -154,10 +154,12 @@ fbsize 256 256
+          %23 = OpLoad %10 %12
+          %24 = OpConvertSToF %6 %23
+          %26 = OpFOrdGreaterThanEqual %21 %24 %25
+-               OpSelectionMerge %28 None
++               OpSelectionMerge %58 None
+                OpBranchConditional %26 %27 %28
+          %27 = OpLabel
+                OpReturnValue %25
++         %58 = OpLabel
++               OpBranch %28
+          %28 = OpLabel
+          %30 = OpLoad %10 %12
+          %31 = OpIAdd %10 %30 %13
+diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/unreachable-continue-statement.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/unreachable-continue-statement.amber
+index bda5d738f..8eb52cb55 100644
+--- a/external/vulkancts/data/vulkan/amber/graphicsfuzz/unreachable-continue-statement.amber
++++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/unreachable-continue-statement.amber
+@@ -73,7 +73,7 @@ SHADER fragment variant_fragment_shader SPIRV-ASM
+ ; SPIR-V
+ ; Version: 1.0
+ ; Generator: Khronos Glslang Reference Front End; 7
+-; Bound: 52
++; Bound: 53
+ ; Schema: 0
+                OpCapability Shader
+           %1 = OpExtInstImport "GLSL.std.450"
+@@ -143,10 +143,12 @@ SHADER fragment variant_fragment_shader SPIRV-ASM
+          %41 = OpAccessChain %35 %31 %32 %34
+          %42 = OpLoad %6 %41
+          %43 = OpFOrdGreaterThan %26 %42 %14
+-               OpSelectionMerge %45 None
++               OpSelectionMerge %52 None
+                OpBranchConditional %43 %44 %45
+          %44 = OpLabel
+                OpBranch %45
++         %52 = OpLabel
++               OpBranch %45
+          %45 = OpLabel
+                OpBranch %21
+          %40 = OpLabel
+-- 
+2.24.0.432.g9d3f5f5b63-goog
+
diff --git a/tests/regres/deqp.json b/tests/regres/deqp.json
index 84b205c..0b713a6 100644
--- a/tests/regres/deqp.json
+++ b/tests/regres/deqp.json
@@ -2,6 +2,7 @@
     "remote": "https://android.googlesource.com/platform/external/deqp",
     "sha": "3ca6f6fe2e4e023cb9d4ea763990336d762b49e2",
     "patches": [
-        "tests/regres/deqp-patches/deqp-x11.patch"
+        "tests/regres/deqp-patches/deqp-x11.patch",
+        "tests/regres/deqp-patches/graphicsfuzz-pending-test-fix.patch"
     ]
 }