// Copyright (c) 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

#include "source/fuzz/fuzzer.h"
#include "source/fuzz/replayer.h"

#include "gtest/gtest.h"
#include "source/fuzz/fuzzer_util.h"
#include "source/fuzz/pseudo_random_generator.h"
#include "source/fuzz/uniform_buffer_element_descriptor.h"
#include "test/fuzz/fuzz_test_util.h"

namespace spvtools {
namespace fuzz {
namespace {

const uint32_t kNumFuzzerRuns = 20;

// The SPIR-V came from this GLSL:
//
// #version 310 es
//
// void foo() {
//   int x;
//   x = 2;
//   for (int i = 0; i < 100; i++) {
//     x += i;
//     x = x * 2;
//   }
//   return;
// }
//
// void main() {
//   foo();
//   for (int i = 0; i < 10; i++) {
//     int j = 20;
//     while(j > 0) {
//       foo();
//       j--;
//     }
//     do {
//       i++;
//     } while(i < 4);
//   }
// }

const std::string kTestShader1 = R"(
               OpCapability Shader
          %1 = OpExtInstImport "GLSL.std.450"
               OpMemoryModel Logical GLSL450
               OpEntryPoint Fragment %4 "main"
               OpExecutionMode %4 OriginUpperLeft
               OpSource ESSL 310
               OpName %4 "main"
               OpName %6 "foo("
               OpName %10 "x"
               OpName %12 "i"
               OpName %33 "i"
               OpName %42 "j"
               OpDecorate %10 RelaxedPrecision
               OpDecorate %12 RelaxedPrecision
               OpDecorate %19 RelaxedPrecision
               OpDecorate %23 RelaxedPrecision
               OpDecorate %24 RelaxedPrecision
               OpDecorate %25 RelaxedPrecision
               OpDecorate %26 RelaxedPrecision
               OpDecorate %27 RelaxedPrecision
               OpDecorate %28 RelaxedPrecision
               OpDecorate %30 RelaxedPrecision
               OpDecorate %33 RelaxedPrecision
               OpDecorate %39 RelaxedPrecision
               OpDecorate %42 RelaxedPrecision
               OpDecorate %49 RelaxedPrecision
               OpDecorate %52 RelaxedPrecision
               OpDecorate %53 RelaxedPrecision
               OpDecorate %58 RelaxedPrecision
               OpDecorate %59 RelaxedPrecision
               OpDecorate %60 RelaxedPrecision
               OpDecorate %63 RelaxedPrecision
               OpDecorate %64 RelaxedPrecision
          %2 = OpTypeVoid
          %3 = OpTypeFunction %2
          %8 = OpTypeInt 32 1
          %9 = OpTypePointer Function %8
         %11 = OpConstant %8 2
         %13 = OpConstant %8 0
         %20 = OpConstant %8 100
         %21 = OpTypeBool
         %29 = OpConstant %8 1
         %40 = OpConstant %8 10
         %43 = OpConstant %8 20
         %61 = OpConstant %8 4
          %4 = OpFunction %2 None %3
          %5 = OpLabel
         %33 = OpVariable %9 Function
         %42 = OpVariable %9 Function
         %32 = OpFunctionCall %2 %6
               OpStore %33 %13
               OpBranch %34
         %34 = OpLabel
               OpLoopMerge %36 %37 None
               OpBranch %38
         %38 = OpLabel
         %39 = OpLoad %8 %33
         %41 = OpSLessThan %21 %39 %40
               OpBranchConditional %41 %35 %36
         %35 = OpLabel
               OpStore %42 %43
               OpBranch %44
         %44 = OpLabel
               OpLoopMerge %46 %47 None
               OpBranch %48
         %48 = OpLabel
         %49 = OpLoad %8 %42
         %50 = OpSGreaterThan %21 %49 %13
               OpBranchConditional %50 %45 %46
         %45 = OpLabel
         %51 = OpFunctionCall %2 %6
         %52 = OpLoad %8 %42
         %53 = OpISub %8 %52 %29
               OpStore %42 %53
               OpBranch %47
         %47 = OpLabel
               OpBranch %44
         %46 = OpLabel
               OpBranch %54
         %54 = OpLabel
               OpLoopMerge %56 %57 None
               OpBranch %55
         %55 = OpLabel
         %58 = OpLoad %8 %33
         %59 = OpIAdd %8 %58 %29
               OpStore %33 %59
               OpBranch %57
         %57 = OpLabel
         %60 = OpLoad %8 %33
         %62 = OpSLessThan %21 %60 %61
               OpBranchConditional %62 %54 %56
         %56 = OpLabel
               OpBranch %37
         %37 = OpLabel
         %63 = OpLoad %8 %33
         %64 = OpIAdd %8 %63 %29
               OpStore %33 %64
               OpBranch %34
         %36 = OpLabel
               OpReturn
               OpFunctionEnd
          %6 = OpFunction %2 None %3
          %7 = OpLabel
         %10 = OpVariable %9 Function
         %12 = OpVariable %9 Function
               OpStore %10 %11
               OpStore %12 %13
               OpBranch %14
         %14 = OpLabel
               OpLoopMerge %16 %17 None
               OpBranch %18
         %18 = OpLabel
         %19 = OpLoad %8 %12
         %22 = OpSLessThan %21 %19 %20
               OpBranchConditional %22 %15 %16
         %15 = OpLabel
         %23 = OpLoad %8 %12
         %24 = OpLoad %8 %10
         %25 = OpIAdd %8 %24 %23
               OpStore %10 %25
         %26 = OpLoad %8 %10
         %27 = OpIMul %8 %26 %11
               OpStore %10 %27
               OpBranch %17
         %17 = OpLabel
         %28 = OpLoad %8 %12
         %30 = OpIAdd %8 %28 %29
               OpStore %12 %30
               OpBranch %14
         %16 = OpLabel
               OpReturn
               OpFunctionEnd
  )";

// The SPIR-V came from this GLSL, which was then optimized using spirv-opt
// with the -O argument:
//
// #version 310 es
//
// precision highp float;
//
// layout(location = 0) out vec4 _GLF_color;
//
// layout(set = 0, binding = 0) uniform buf0 {
//  vec2 injectionSwitch;
// };
// layout(set = 0, binding = 1) uniform buf1 {
//  vec2 resolution;
// };
// bool checkSwap(float a, float b)
// {
//  return gl_FragCoord.y < resolution.y / 2.0 ? a > b : a < b;
// }
// void main()
// {
//  float data[10];
//  for(int i = 0; i < 10; i++)
//   {
//    data[i] = float(10 - i) * injectionSwitch.y;
//   }
//  for(int i = 0; i < 9; i++)
//   {
//    for(int j = 0; j < 10; j++)
//     {
//      if(j < i + 1)
//       {
//        continue;
//       }
//      bool doSwap = checkSwap(data[i], data[j]);
//      if(doSwap)
//       {
//        float temp = data[i];
//        data[i] = data[j];
//        data[j] = temp;
//       }
//     }
//   }
//  if(gl_FragCoord.x < resolution.x / 2.0)
//   {
//    _GLF_color = vec4(data[0] / 10.0, data[5] / 10.0, data[9] / 10.0, 1.0);
//   }
//  else
//   {
//    _GLF_color = vec4(data[5] / 10.0, data[9] / 10.0, data[0] / 10.0, 1.0);
//   }
// }

const std::string kTestShader2 = R"(
               OpCapability Shader
          %1 = OpExtInstImport "GLSL.std.450"
               OpMemoryModel Logical GLSL450
               OpEntryPoint Fragment %4 "main" %16 %139 %25 %68
               OpExecutionMode %4 OriginUpperLeft
               OpSource ESSL 310
               OpName %4 "main"
               OpName %16 "gl_FragCoord"
               OpName %23 "buf1"
               OpMemberName %23 0 "resolution"
               OpName %25 ""
               OpName %61 "data"
               OpName %66 "buf0"
               OpMemberName %66 0 "injectionSwitch"
               OpName %68 ""
               OpName %139 "_GLF_color"
               OpDecorate %16 BuiltIn FragCoord
               OpMemberDecorate %23 0 Offset 0
               OpDecorate %23 Block
               OpDecorate %25 DescriptorSet 0
               OpDecorate %25 Binding 1
               OpDecorate %64 RelaxedPrecision
               OpMemberDecorate %66 0 Offset 0
               OpDecorate %66 Block
               OpDecorate %68 DescriptorSet 0
               OpDecorate %68 Binding 0
               OpDecorate %75 RelaxedPrecision
               OpDecorate %95 RelaxedPrecision
               OpDecorate %126 RelaxedPrecision
               OpDecorate %128 RelaxedPrecision
               OpDecorate %139 Location 0
               OpDecorate %182 RelaxedPrecision
               OpDecorate %183 RelaxedPrecision
               OpDecorate %184 RelaxedPrecision
          %2 = OpTypeVoid
          %3 = OpTypeFunction %2
          %6 = OpTypeFloat 32
          %7 = OpTypePointer Function %6
          %8 = OpTypeBool
         %14 = OpTypeVector %6 4
         %15 = OpTypePointer Input %14
         %16 = OpVariable %15 Input
         %17 = OpTypeInt 32 0
         %18 = OpConstant %17 1
         %19 = OpTypePointer Input %6
         %22 = OpTypeVector %6 2
         %23 = OpTypeStruct %22
         %24 = OpTypePointer Uniform %23
         %25 = OpVariable %24 Uniform
         %26 = OpTypeInt 32 1
         %27 = OpConstant %26 0
         %28 = OpTypePointer Uniform %6
         %56 = OpConstant %26 10
         %58 = OpConstant %17 10
         %59 = OpTypeArray %6 %58
         %60 = OpTypePointer Function %59
         %66 = OpTypeStruct %22
         %67 = OpTypePointer Uniform %66
         %68 = OpVariable %67 Uniform
         %74 = OpConstant %26 1
         %83 = OpConstant %26 9
        %129 = OpConstant %17 0
        %138 = OpTypePointer Output %14
        %139 = OpVariable %138 Output
        %144 = OpConstant %26 5
        %151 = OpConstant %6 1
        %194 = OpConstant %6 0.5
        %195 = OpConstant %6 0.100000001
          %4 = OpFunction %2 None %3
          %5 = OpLabel
         %61 = OpVariable %60 Function
               OpBranch %50
         %50 = OpLabel
        %182 = OpPhi %26 %27 %5 %75 %51
         %57 = OpSLessThan %8 %182 %56
               OpLoopMerge %52 %51 None
               OpBranchConditional %57 %51 %52
         %51 = OpLabel
         %64 = OpISub %26 %56 %182
         %65 = OpConvertSToF %6 %64
         %69 = OpAccessChain %28 %68 %27 %18
         %70 = OpLoad %6 %69
         %71 = OpFMul %6 %65 %70
         %72 = OpAccessChain %7 %61 %182
               OpStore %72 %71
         %75 = OpIAdd %26 %182 %74
               OpBranch %50
         %52 = OpLabel
               OpBranch %77
         %77 = OpLabel
        %183 = OpPhi %26 %27 %52 %128 %88
         %84 = OpSLessThan %8 %183 %83
               OpLoopMerge %79 %88 None
               OpBranchConditional %84 %78 %79
         %78 = OpLabel
               OpBranch %86
         %86 = OpLabel
        %184 = OpPhi %26 %27 %78 %126 %89
         %92 = OpSLessThan %8 %184 %56
               OpLoopMerge %1000 %89 None
               OpBranchConditional %92 %87 %1000
         %87 = OpLabel
         %95 = OpIAdd %26 %183 %74
         %96 = OpSLessThan %8 %184 %95
               OpSelectionMerge %98 None
               OpBranchConditional %96 %97 %98
         %97 = OpLabel
               OpBranch %89
         %98 = OpLabel
        %104 = OpAccessChain %7 %61 %183
        %105 = OpLoad %6 %104
        %107 = OpAccessChain %7 %61 %184
        %108 = OpLoad %6 %107
        %166 = OpAccessChain %19 %16 %18
        %167 = OpLoad %6 %166
        %168 = OpAccessChain %28 %25 %27 %18
        %169 = OpLoad %6 %168
        %170 = OpFMul %6 %169 %194
        %171 = OpFOrdLessThan %8 %167 %170
               OpSelectionMerge %172 None
               OpBranchConditional %171 %173 %174
        %173 = OpLabel
        %177 = OpFOrdGreaterThan %8 %105 %108
               OpBranch %172
        %174 = OpLabel
        %180 = OpFOrdLessThan %8 %105 %108
               OpBranch %172
        %172 = OpLabel
        %186 = OpPhi %8 %177 %173 %180 %174
               OpSelectionMerge %112 None
               OpBranchConditional %186 %111 %112
        %111 = OpLabel
        %116 = OpLoad %6 %104
        %120 = OpLoad %6 %107
               OpStore %104 %120
               OpStore %107 %116
               OpBranch %112
        %112 = OpLabel
               OpBranch %89
         %89 = OpLabel
        %126 = OpIAdd %26 %184 %74
               OpBranch %86
       %1000 = OpLabel
               OpBranch %88
         %88 = OpLabel
        %128 = OpIAdd %26 %183 %74
               OpBranch %77
         %79 = OpLabel
        %130 = OpAccessChain %19 %16 %129
        %131 = OpLoad %6 %130
        %132 = OpAccessChain %28 %25 %27 %129
        %133 = OpLoad %6 %132
        %134 = OpFMul %6 %133 %194
        %135 = OpFOrdLessThan %8 %131 %134
               OpSelectionMerge %137 None
               OpBranchConditional %135 %136 %153
        %136 = OpLabel
        %140 = OpAccessChain %7 %61 %27
        %141 = OpLoad %6 %140
        %143 = OpFMul %6 %141 %195
        %145 = OpAccessChain %7 %61 %144
        %146 = OpLoad %6 %145
        %147 = OpFMul %6 %146 %195
        %148 = OpAccessChain %7 %61 %83
        %149 = OpLoad %6 %148
        %150 = OpFMul %6 %149 %195
        %152 = OpCompositeConstruct %14 %143 %147 %150 %151
               OpStore %139 %152
               OpBranch %137
        %153 = OpLabel
        %154 = OpAccessChain %7 %61 %144
        %155 = OpLoad %6 %154
        %156 = OpFMul %6 %155 %195
        %157 = OpAccessChain %7 %61 %83
        %158 = OpLoad %6 %157
        %159 = OpFMul %6 %158 %195
        %160 = OpAccessChain %7 %61 %27
        %161 = OpLoad %6 %160
        %162 = OpFMul %6 %161 %195
        %163 = OpCompositeConstruct %14 %156 %159 %162 %151
               OpStore %139 %163
               OpBranch %137
        %137 = OpLabel
               OpReturn
               OpFunctionEnd
  )";

// The SPIR-V came from this GLSL, which was then optimized using spirv-opt
// with the -O argument:
//
// #version 310 es
//
// precision highp float;
//
// layout(location = 0) out vec4 _GLF_color;
//
// layout(set = 0, binding = 0) uniform buf0 {
//  vec2 resolution;
// };
// void main(void)
// {
//  float A[50];
//  for(
//      int i = 0;
//      i < 200;
//      i ++
//  )
//   {
//    if(i >= int(resolution.x))
//     {
//      break;
//     }
//    if((4 * (i / 4)) == i)
//     {
//      A[i / 4] = float(i);
//     }
//   }
//  for(
//      int i = 0;
//      i < 50;
//      i ++
//  )
//   {
//    if(i < int(gl_FragCoord.x))
//     {
//      break;
//     }
//    if(i > 0)
//     {
//      A[i] += A[i - 1];
//     }
//   }
//  if(int(gl_FragCoord.x) < 20)
//   {
//    _GLF_color = vec4(A[0] / resolution.x, A[4] / resolution.y, 1.0, 1.0);
//   }
//  else
//   if(int(gl_FragCoord.x) < 40)
//    {
//     _GLF_color = vec4(A[5] / resolution.x, A[9] / resolution.y, 1.0, 1.0);
//    }
//   else
//    if(int(gl_FragCoord.x) < 60)
//     {
//      _GLF_color = vec4(A[10] / resolution.x, A[14] / resolution.y,
//      1.0, 1.0);
//     }
//    else
//     if(int(gl_FragCoord.x) < 80)
//      {
//       _GLF_color = vec4(A[15] / resolution.x, A[19] / resolution.y,
//       1.0, 1.0);
//      }
//     else
//      if(int(gl_FragCoord.x) < 100)
//       {
//        _GLF_color = vec4(A[20] / resolution.x, A[24] / resolution.y,
//        1.0, 1.0);
//       }
//      else
//       if(int(gl_FragCoord.x) < 120)
//        {
//         _GLF_color = vec4(A[25] / resolution.x, A[29] / resolution.y,
//         1.0, 1.0);
//        }
//       else
//        if(int(gl_FragCoord.x) < 140)
//         {
//          _GLF_color = vec4(A[30] / resolution.x, A[34] / resolution.y,
//          1.0, 1.0);
//         }
//        else
//         if(int(gl_FragCoord.x) < 160)
//          {
//           _GLF_color = vec4(A[35] / resolution.x, A[39] /
//           resolution.y, 1.0, 1.0);
//          }
//         else
//          if(int(gl_FragCoord.x) < 180)
//           {
//            _GLF_color = vec4(A[40] / resolution.x, A[44] /
//            resolution.y, 1.0, 1.0);
//           }
//          else
//           if(int(gl_FragCoord.x) < 180)
//            {
//             _GLF_color = vec4(A[45] / resolution.x, A[49] /
//             resolution.y, 1.0, 1.0);
//            }
//           else
//            {
//             discard;
//            }
// }

const std::string kTestShader3 = R"(
               OpCapability Shader
          %1 = OpExtInstImport "GLSL.std.450"
               OpMemoryModel Logical GLSL450
               OpEntryPoint Fragment %4 "main" %68 %100 %24
               OpExecutionMode %4 OriginUpperLeft
               OpSource ESSL 310
               OpName %4 "main"
               OpName %22 "buf0"
               OpMemberName %22 0 "resolution"
               OpName %24 ""
               OpName %46 "A"
               OpName %68 "gl_FragCoord"
               OpName %100 "_GLF_color"
               OpMemberDecorate %22 0 Offset 0
               OpDecorate %22 Block
               OpDecorate %24 DescriptorSet 0
               OpDecorate %24 Binding 0
               OpDecorate %37 RelaxedPrecision
               OpDecorate %38 RelaxedPrecision
               OpDecorate %55 RelaxedPrecision
               OpDecorate %68 BuiltIn FragCoord
               OpDecorate %83 RelaxedPrecision
               OpDecorate %91 RelaxedPrecision
               OpDecorate %100 Location 0
               OpDecorate %302 RelaxedPrecision
               OpDecorate %304 RelaxedPrecision
          %2 = OpTypeVoid
          %3 = OpTypeFunction %2
          %6 = OpTypeInt 32 1
          %9 = OpConstant %6 0
         %16 = OpConstant %6 200
         %17 = OpTypeBool
         %20 = OpTypeFloat 32
         %21 = OpTypeVector %20 2
         %22 = OpTypeStruct %21
         %23 = OpTypePointer Uniform %22
         %24 = OpVariable %23 Uniform
         %25 = OpTypeInt 32 0
         %26 = OpConstant %25 0
         %27 = OpTypePointer Uniform %20
         %35 = OpConstant %6 4
         %43 = OpConstant %25 50
         %44 = OpTypeArray %20 %43
         %45 = OpTypePointer Function %44
         %51 = OpTypePointer Function %20
         %54 = OpConstant %6 1
         %63 = OpConstant %6 50
         %66 = OpTypeVector %20 4
         %67 = OpTypePointer Input %66
         %68 = OpVariable %67 Input
         %69 = OpTypePointer Input %20
         %95 = OpConstant %6 20
         %99 = OpTypePointer Output %66
        %100 = OpVariable %99 Output
        %108 = OpConstant %25 1
        %112 = OpConstant %20 1
        %118 = OpConstant %6 40
        %122 = OpConstant %6 5
        %128 = OpConstant %6 9
        %139 = OpConstant %6 60
        %143 = OpConstant %6 10
        %149 = OpConstant %6 14
        %160 = OpConstant %6 80
        %164 = OpConstant %6 15
        %170 = OpConstant %6 19
        %181 = OpConstant %6 100
        %190 = OpConstant %6 24
        %201 = OpConstant %6 120
        %205 = OpConstant %6 25
        %211 = OpConstant %6 29
        %222 = OpConstant %6 140
        %226 = OpConstant %6 30
        %232 = OpConstant %6 34
        %243 = OpConstant %6 160
        %247 = OpConstant %6 35
        %253 = OpConstant %6 39
        %264 = OpConstant %6 180
        %273 = OpConstant %6 44
        %287 = OpConstant %6 45
        %293 = OpConstant %6 49
          %4 = OpFunction %2 None %3
          %5 = OpLabel
         %46 = OpVariable %45 Function
               OpBranch %10
         %10 = OpLabel
        %302 = OpPhi %6 %9 %5 %55 %42
         %18 = OpSLessThan %17 %302 %16
               OpLoopMerge %12 %42 None
               OpBranchConditional %18 %11 %12
         %11 = OpLabel
         %28 = OpAccessChain %27 %24 %9 %26
         %29 = OpLoad %20 %28
         %30 = OpConvertFToS %6 %29
         %31 = OpSGreaterThanEqual %17 %302 %30
               OpSelectionMerge %33 None
               OpBranchConditional %31 %32 %33
         %32 = OpLabel
               OpBranch %12
         %33 = OpLabel
         %37 = OpSDiv %6 %302 %35
         %38 = OpIMul %6 %35 %37
         %40 = OpIEqual %17 %38 %302
               OpBranchConditional %40 %41 %42
         %41 = OpLabel
         %50 = OpConvertSToF %20 %302
         %52 = OpAccessChain %51 %46 %37
               OpStore %52 %50
               OpBranch %42
         %42 = OpLabel
         %55 = OpIAdd %6 %302 %54
               OpBranch %10
         %12 = OpLabel
               OpBranch %57
         %57 = OpLabel
        %304 = OpPhi %6 %9 %12 %91 %80
         %64 = OpSLessThan %17 %304 %63
               OpLoopMerge %59 %80 None
               OpBranchConditional %64 %58 %59
         %58 = OpLabel
         %70 = OpAccessChain %69 %68 %26
         %71 = OpLoad %20 %70
         %72 = OpConvertFToS %6 %71
         %73 = OpSLessThan %17 %304 %72
               OpSelectionMerge %75 None
               OpBranchConditional %73 %74 %75
         %74 = OpLabel
               OpBranch %59
         %75 = OpLabel
         %78 = OpSGreaterThan %17 %304 %9
               OpBranchConditional %78 %79 %80
         %79 = OpLabel
         %83 = OpISub %6 %304 %54
         %84 = OpAccessChain %51 %46 %83
         %85 = OpLoad %20 %84
         %86 = OpAccessChain %51 %46 %304
         %87 = OpLoad %20 %86
         %88 = OpFAdd %20 %87 %85
               OpStore %86 %88
               OpBranch %80
         %80 = OpLabel
         %91 = OpIAdd %6 %304 %54
               OpBranch %57
         %59 = OpLabel
         %92 = OpAccessChain %69 %68 %26
         %93 = OpLoad %20 %92
         %94 = OpConvertFToS %6 %93
         %96 = OpSLessThan %17 %94 %95
               OpSelectionMerge %98 None
               OpBranchConditional %96 %97 %114
         %97 = OpLabel
        %101 = OpAccessChain %51 %46 %9
        %102 = OpLoad %20 %101
        %103 = OpAccessChain %27 %24 %9 %26
        %104 = OpLoad %20 %103
        %105 = OpFDiv %20 %102 %104
        %106 = OpAccessChain %51 %46 %35
        %107 = OpLoad %20 %106
        %109 = OpAccessChain %27 %24 %9 %108
        %110 = OpLoad %20 %109
        %111 = OpFDiv %20 %107 %110
        %113 = OpCompositeConstruct %66 %105 %111 %112 %112
               OpStore %100 %113
               OpBranch %98
        %114 = OpLabel
        %119 = OpSLessThan %17 %94 %118
               OpSelectionMerge %121 None
               OpBranchConditional %119 %120 %135
        %120 = OpLabel
        %123 = OpAccessChain %51 %46 %122
        %124 = OpLoad %20 %123
        %125 = OpAccessChain %27 %24 %9 %26
        %126 = OpLoad %20 %125
        %127 = OpFDiv %20 %124 %126
        %129 = OpAccessChain %51 %46 %128
        %130 = OpLoad %20 %129
        %131 = OpAccessChain %27 %24 %9 %108
        %132 = OpLoad %20 %131
        %133 = OpFDiv %20 %130 %132
        %134 = OpCompositeConstruct %66 %127 %133 %112 %112
               OpStore %100 %134
               OpBranch %121
        %135 = OpLabel
        %140 = OpSLessThan %17 %94 %139
               OpSelectionMerge %142 None
               OpBranchConditional %140 %141 %156
        %141 = OpLabel
        %144 = OpAccessChain %51 %46 %143
        %145 = OpLoad %20 %144
        %146 = OpAccessChain %27 %24 %9 %26
        %147 = OpLoad %20 %146
        %148 = OpFDiv %20 %145 %147
        %150 = OpAccessChain %51 %46 %149
        %151 = OpLoad %20 %150
        %152 = OpAccessChain %27 %24 %9 %108
        %153 = OpLoad %20 %152
        %154 = OpFDiv %20 %151 %153
        %155 = OpCompositeConstruct %66 %148 %154 %112 %112
               OpStore %100 %155
               OpBranch %142
        %156 = OpLabel
        %161 = OpSLessThan %17 %94 %160
               OpSelectionMerge %163 None
               OpBranchConditional %161 %162 %177
        %162 = OpLabel
        %165 = OpAccessChain %51 %46 %164
        %166 = OpLoad %20 %165
        %167 = OpAccessChain %27 %24 %9 %26
        %168 = OpLoad %20 %167
        %169 = OpFDiv %20 %166 %168
        %171 = OpAccessChain %51 %46 %170
        %172 = OpLoad %20 %171
        %173 = OpAccessChain %27 %24 %9 %108
        %174 = OpLoad %20 %173
        %175 = OpFDiv %20 %172 %174
        %176 = OpCompositeConstruct %66 %169 %175 %112 %112
               OpStore %100 %176
               OpBranch %163
        %177 = OpLabel
        %182 = OpSLessThan %17 %94 %181
               OpSelectionMerge %184 None
               OpBranchConditional %182 %183 %197
        %183 = OpLabel
        %185 = OpAccessChain %51 %46 %95
        %186 = OpLoad %20 %185
        %187 = OpAccessChain %27 %24 %9 %26
        %188 = OpLoad %20 %187
        %189 = OpFDiv %20 %186 %188
        %191 = OpAccessChain %51 %46 %190
        %192 = OpLoad %20 %191
        %193 = OpAccessChain %27 %24 %9 %108
        %194 = OpLoad %20 %193
        %195 = OpFDiv %20 %192 %194
        %196 = OpCompositeConstruct %66 %189 %195 %112 %112
               OpStore %100 %196
               OpBranch %184
        %197 = OpLabel
        %202 = OpSLessThan %17 %94 %201
               OpSelectionMerge %204 None
               OpBranchConditional %202 %203 %218
        %203 = OpLabel
        %206 = OpAccessChain %51 %46 %205
        %207 = OpLoad %20 %206
        %208 = OpAccessChain %27 %24 %9 %26
        %209 = OpLoad %20 %208
        %210 = OpFDiv %20 %207 %209
        %212 = OpAccessChain %51 %46 %211
        %213 = OpLoad %20 %212
        %214 = OpAccessChain %27 %24 %9 %108
        %215 = OpLoad %20 %214
        %216 = OpFDiv %20 %213 %215
        %217 = OpCompositeConstruct %66 %210 %216 %112 %112
               OpStore %100 %217
               OpBranch %204
        %218 = OpLabel
        %223 = OpSLessThan %17 %94 %222
               OpSelectionMerge %225 None
               OpBranchConditional %223 %224 %239
        %224 = OpLabel
        %227 = OpAccessChain %51 %46 %226
        %228 = OpLoad %20 %227
        %229 = OpAccessChain %27 %24 %9 %26
        %230 = OpLoad %20 %229
        %231 = OpFDiv %20 %228 %230
        %233 = OpAccessChain %51 %46 %232
        %234 = OpLoad %20 %233
        %235 = OpAccessChain %27 %24 %9 %108
        %236 = OpLoad %20 %235
        %237 = OpFDiv %20 %234 %236
        %238 = OpCompositeConstruct %66 %231 %237 %112 %112
               OpStore %100 %238
               OpBranch %225
        %239 = OpLabel
        %244 = OpSLessThan %17 %94 %243
               OpSelectionMerge %246 None
               OpBranchConditional %244 %245 %260
        %245 = OpLabel
        %248 = OpAccessChain %51 %46 %247
        %249 = OpLoad %20 %248
        %250 = OpAccessChain %27 %24 %9 %26
        %251 = OpLoad %20 %250
        %252 = OpFDiv %20 %249 %251
        %254 = OpAccessChain %51 %46 %253
        %255 = OpLoad %20 %254
        %256 = OpAccessChain %27 %24 %9 %108
        %257 = OpLoad %20 %256
        %258 = OpFDiv %20 %255 %257
        %259 = OpCompositeConstruct %66 %252 %258 %112 %112
               OpStore %100 %259
               OpBranch %246
        %260 = OpLabel
        %265 = OpSLessThan %17 %94 %264
               OpSelectionMerge %267 None
               OpBranchConditional %265 %266 %280
        %266 = OpLabel
        %268 = OpAccessChain %51 %46 %118
        %269 = OpLoad %20 %268
        %270 = OpAccessChain %27 %24 %9 %26
        %271 = OpLoad %20 %270
        %272 = OpFDiv %20 %269 %271
        %274 = OpAccessChain %51 %46 %273
        %275 = OpLoad %20 %274
        %276 = OpAccessChain %27 %24 %9 %108
        %277 = OpLoad %20 %276
        %278 = OpFDiv %20 %275 %277
        %279 = OpCompositeConstruct %66 %272 %278 %112 %112
               OpStore %100 %279
               OpBranch %267
        %280 = OpLabel
               OpSelectionMerge %285 None
               OpBranchConditional %265 %285 %300
        %285 = OpLabel
        %288 = OpAccessChain %51 %46 %287
        %289 = OpLoad %20 %288
        %290 = OpAccessChain %27 %24 %9 %26
        %291 = OpLoad %20 %290
        %292 = OpFDiv %20 %289 %291
        %294 = OpAccessChain %51 %46 %293
        %295 = OpLoad %20 %294
        %296 = OpAccessChain %27 %24 %9 %108
        %297 = OpLoad %20 %296
        %298 = OpFDiv %20 %295 %297
        %299 = OpCompositeConstruct %66 %292 %298 %112 %112
               OpStore %100 %299
               OpBranch %267
        %300 = OpLabel
               OpKill
        %267 = OpLabel
               OpBranch %246
        %246 = OpLabel
               OpBranch %225
        %225 = OpLabel
               OpBranch %204
        %204 = OpLabel
               OpBranch %184
        %184 = OpLabel
               OpBranch %163
        %163 = OpLabel
               OpBranch %142
        %142 = OpLabel
               OpBranch %121
        %121 = OpLabel
               OpBranch %98
         %98 = OpLabel
               OpReturn
               OpFunctionEnd
  )";

// The SPIR-V comes from the 'matrices_smart_loops' GLSL shader that ships
// with GraphicsFuzz.

const std::string kTestShader4 = R"(
               OpCapability Shader
          %1 = OpExtInstImport "GLSL.std.450"
               OpMemoryModel Logical GLSL450
               OpEntryPoint Fragment %4 "main" %327 %363 %65 %70 %80 %90 %99 %108 %117 %126 %135 %144 %333
               OpExecutionMode %4 OriginUpperLeft
               OpSource ESSL 310
               OpName %4 "main"
               OpName %8 "matrix_number"
               OpName %12 "cols"
               OpName %23 "rows"
               OpName %31 "c"
               OpName %41 "r"
               OpName %65 "m22"
               OpName %68 "buf0"
               OpMemberName %68 0 "one"
               OpName %70 ""
               OpName %80 "m23"
               OpName %90 "m24"
               OpName %99 "m32"
               OpName %108 "m33"
               OpName %117 "m34"
               OpName %126 "m42"
               OpName %135 "m43"
               OpName %144 "m44"
               OpName %164 "sum_index"
               OpName %165 "cols"
               OpName %173 "rows"
               OpName %184 "sums"
               OpName %189 "c"
               OpName %198 "r"
               OpName %325 "region_x"
               OpName %327 "gl_FragCoord"
               OpName %331 "buf1"
               OpMemberName %331 0 "resolution"
               OpName %333 ""
               OpName %340 "region_y"
               OpName %348 "overall_region"
               OpName %363 "_GLF_color"
               OpDecorate %8 RelaxedPrecision
               OpDecorate %12 RelaxedPrecision
               OpDecorate %19 RelaxedPrecision
               OpDecorate %23 RelaxedPrecision
               OpDecorate %29 RelaxedPrecision
               OpDecorate %31 RelaxedPrecision
               OpDecorate %38 RelaxedPrecision
               OpDecorate %39 RelaxedPrecision
               OpDecorate %41 RelaxedPrecision
               OpDecorate %47 RelaxedPrecision
               OpDecorate %48 RelaxedPrecision
               OpDecorate %50 RelaxedPrecision
               OpDecorate %66 RelaxedPrecision
               OpDecorate %67 RelaxedPrecision
               OpMemberDecorate %68 0 Offset 0
               OpDecorate %68 Block
               OpDecorate %70 DescriptorSet 0
               OpDecorate %70 Binding 0
               OpDecorate %81 RelaxedPrecision
               OpDecorate %82 RelaxedPrecision
               OpDecorate %91 RelaxedPrecision
               OpDecorate %92 RelaxedPrecision
               OpDecorate %100 RelaxedPrecision
               OpDecorate %101 RelaxedPrecision
               OpDecorate %109 RelaxedPrecision
               OpDecorate %110 RelaxedPrecision
               OpDecorate %118 RelaxedPrecision
               OpDecorate %119 RelaxedPrecision
               OpDecorate %127 RelaxedPrecision
               OpDecorate %128 RelaxedPrecision
               OpDecorate %136 RelaxedPrecision
               OpDecorate %137 RelaxedPrecision
               OpDecorate %145 RelaxedPrecision
               OpDecorate %146 RelaxedPrecision
               OpDecorate %152 RelaxedPrecision
               OpDecorate %154 RelaxedPrecision
               OpDecorate %155 RelaxedPrecision
               OpDecorate %156 RelaxedPrecision
               OpDecorate %157 RelaxedPrecision
               OpDecorate %159 RelaxedPrecision
               OpDecorate %160 RelaxedPrecision
               OpDecorate %161 RelaxedPrecision
               OpDecorate %162 RelaxedPrecision
               OpDecorate %163 RelaxedPrecision
               OpDecorate %164 RelaxedPrecision
               OpDecorate %165 RelaxedPrecision
               OpDecorate %171 RelaxedPrecision
               OpDecorate %173 RelaxedPrecision
               OpDecorate %179 RelaxedPrecision
               OpDecorate %185 RelaxedPrecision
               OpDecorate %189 RelaxedPrecision
               OpDecorate %195 RelaxedPrecision
               OpDecorate %196 RelaxedPrecision
               OpDecorate %198 RelaxedPrecision
               OpDecorate %204 RelaxedPrecision
               OpDecorate %205 RelaxedPrecision
               OpDecorate %207 RelaxedPrecision
               OpDecorate %218 RelaxedPrecision
               OpDecorate %219 RelaxedPrecision
               OpDecorate %220 RelaxedPrecision
               OpDecorate %228 RelaxedPrecision
               OpDecorate %229 RelaxedPrecision
               OpDecorate %230 RelaxedPrecision
               OpDecorate %238 RelaxedPrecision
               OpDecorate %239 RelaxedPrecision
               OpDecorate %240 RelaxedPrecision
               OpDecorate %248 RelaxedPrecision
               OpDecorate %249 RelaxedPrecision
               OpDecorate %250 RelaxedPrecision
               OpDecorate %258 RelaxedPrecision
               OpDecorate %259 RelaxedPrecision
               OpDecorate %260 RelaxedPrecision
               OpDecorate %268 RelaxedPrecision
               OpDecorate %269 RelaxedPrecision
               OpDecorate %270 RelaxedPrecision
               OpDecorate %278 RelaxedPrecision
               OpDecorate %279 RelaxedPrecision
               OpDecorate %280 RelaxedPrecision
               OpDecorate %288 RelaxedPrecision
               OpDecorate %289 RelaxedPrecision
               OpDecorate %290 RelaxedPrecision
               OpDecorate %298 RelaxedPrecision
               OpDecorate %299 RelaxedPrecision
               OpDecorate %300 RelaxedPrecision
               OpDecorate %309 RelaxedPrecision
               OpDecorate %310 RelaxedPrecision
               OpDecorate %311 RelaxedPrecision
               OpDecorate %312 RelaxedPrecision
               OpDecorate %313 RelaxedPrecision
               OpDecorate %319 RelaxedPrecision
               OpDecorate %320 RelaxedPrecision
               OpDecorate %321 RelaxedPrecision
               OpDecorate %322 RelaxedPrecision
               OpDecorate %323 RelaxedPrecision
               OpDecorate %324 RelaxedPrecision
               OpDecorate %325 RelaxedPrecision
               OpDecorate %327 BuiltIn FragCoord
               OpMemberDecorate %331 0 Offset 0
               OpDecorate %331 Block
               OpDecorate %333 DescriptorSet 0
               OpDecorate %333 Binding 1
               OpDecorate %339 RelaxedPrecision
               OpDecorate %340 RelaxedPrecision
               OpDecorate %347 RelaxedPrecision
               OpDecorate %348 RelaxedPrecision
               OpDecorate %349 RelaxedPrecision
               OpDecorate %351 RelaxedPrecision
               OpDecorate %352 RelaxedPrecision
               OpDecorate %353 RelaxedPrecision
               OpDecorate %354 RelaxedPrecision
               OpDecorate %356 RelaxedPrecision
               OpDecorate %363 Location 0
               OpDecorate %364 RelaxedPrecision
          %2 = OpTypeVoid
          %3 = OpTypeFunction %2
          %6 = OpTypeInt 32 0
          %7 = OpTypePointer Function %6
          %9 = OpConstant %6 0
         %10 = OpTypeInt 32 1
         %11 = OpTypePointer Function %10
         %13 = OpConstant %10 2
         %20 = OpConstant %10 4
         %21 = OpTypeBool
         %32 = OpConstant %10 0
         %61 = OpTypeFloat 32
         %62 = OpTypeVector %61 2
         %63 = OpTypeMatrix %62 2
         %64 = OpTypePointer Private %63
         %65 = OpVariable %64 Private
         %68 = OpTypeStruct %61
         %69 = OpTypePointer Uniform %68
         %70 = OpVariable %69 Uniform
         %71 = OpTypePointer Uniform %61
         %74 = OpTypePointer Private %61
         %77 = OpTypeVector %61 3
         %78 = OpTypeMatrix %77 2
         %79 = OpTypePointer Private %78
         %80 = OpVariable %79 Private
         %87 = OpTypeVector %61 4
         %88 = OpTypeMatrix %87 2
         %89 = OpTypePointer Private %88
         %90 = OpVariable %89 Private
         %97 = OpTypeMatrix %62 3
         %98 = OpTypePointer Private %97
         %99 = OpVariable %98 Private
        %106 = OpTypeMatrix %77 3
        %107 = OpTypePointer Private %106
        %108 = OpVariable %107 Private
        %115 = OpTypeMatrix %87 3
        %116 = OpTypePointer Private %115
        %117 = OpVariable %116 Private
        %124 = OpTypeMatrix %62 4
        %125 = OpTypePointer Private %124
        %126 = OpVariable %125 Private
        %133 = OpTypeMatrix %77 4
        %134 = OpTypePointer Private %133
        %135 = OpVariable %134 Private
        %142 = OpTypeMatrix %87 4
        %143 = OpTypePointer Private %142
        %144 = OpVariable %143 Private
        %153 = OpConstant %10 1
        %158 = OpConstant %6 1
        %181 = OpConstant %6 9
        %182 = OpTypeArray %61 %181
        %183 = OpTypePointer Function %182
        %186 = OpConstant %61 0
        %187 = OpTypePointer Function %61
        %314 = OpConstant %61 16
        %326 = OpTypePointer Input %87
        %327 = OpVariable %326 Input
        %328 = OpTypePointer Input %61
        %331 = OpTypeStruct %62
        %332 = OpTypePointer Uniform %331
        %333 = OpVariable %332 Uniform
        %336 = OpConstant %61 3
        %350 = OpConstant %10 3
        %357 = OpConstant %10 9
        %362 = OpTypePointer Output %87
        %363 = OpVariable %362 Output
        %368 = OpConstant %61 1
        %374 = OpConstantComposite %87 %186 %186 %186 %368
          %4 = OpFunction %2 None %3
          %5 = OpLabel
          %8 = OpVariable %7 Function
         %12 = OpVariable %11 Function
         %23 = OpVariable %11 Function
         %31 = OpVariable %11 Function
         %41 = OpVariable %11 Function
        %164 = OpVariable %11 Function
        %165 = OpVariable %11 Function
        %173 = OpVariable %11 Function
        %184 = OpVariable %183 Function
        %189 = OpVariable %11 Function
        %198 = OpVariable %11 Function
        %325 = OpVariable %11 Function
        %340 = OpVariable %11 Function
        %348 = OpVariable %11 Function
               OpStore %8 %9
               OpStore %12 %13
               OpBranch %14
         %14 = OpLabel
               OpLoopMerge %16 %17 None
               OpBranch %18
         %18 = OpLabel
         %19 = OpLoad %10 %12
         %22 = OpSLessThanEqual %21 %19 %20
               OpBranchConditional %22 %15 %16
         %15 = OpLabel
               OpStore %23 %13
               OpBranch %24
         %24 = OpLabel
               OpLoopMerge %26 %27 None
               OpBranch %28
         %28 = OpLabel
         %29 = OpLoad %10 %23
         %30 = OpSLessThanEqual %21 %29 %20
               OpBranchConditional %30 %25 %26
         %25 = OpLabel
               OpStore %31 %32
               OpBranch %33
         %33 = OpLabel
               OpLoopMerge %35 %36 None
               OpBranch %37
         %37 = OpLabel
         %38 = OpLoad %10 %31
         %39 = OpLoad %10 %12
         %40 = OpSLessThan %21 %38 %39
               OpBranchConditional %40 %34 %35
         %34 = OpLabel
               OpStore %41 %32
               OpBranch %42
         %42 = OpLabel
               OpLoopMerge %44 %45 None
               OpBranch %46
         %46 = OpLabel
         %47 = OpLoad %10 %41
         %48 = OpLoad %10 %23
         %49 = OpSLessThan %21 %47 %48
               OpBranchConditional %49 %43 %44
         %43 = OpLabel
         %50 = OpLoad %6 %8
               OpSelectionMerge %60 None
               OpSwitch %50 %60 0 %51 1 %52 2 %53 3 %54 4 %55 5 %56 6 %57 7 %58 8 %59
         %51 = OpLabel
         %66 = OpLoad %10 %31
         %67 = OpLoad %10 %41
         %72 = OpAccessChain %71 %70 %32
         %73 = OpLoad %61 %72
         %75 = OpAccessChain %74 %65 %66 %67
               OpStore %75 %73
               OpBranch %60
         %52 = OpLabel
         %81 = OpLoad %10 %31
         %82 = OpLoad %10 %41
         %83 = OpAccessChain %71 %70 %32
         %84 = OpLoad %61 %83
         %85 = OpAccessChain %74 %80 %81 %82
               OpStore %85 %84
               OpBranch %60
         %53 = OpLabel
         %91 = OpLoad %10 %31
         %92 = OpLoad %10 %41
         %93 = OpAccessChain %71 %70 %32
         %94 = OpLoad %61 %93
         %95 = OpAccessChain %74 %90 %91 %92
               OpStore %95 %94
               OpBranch %60
         %54 = OpLabel
        %100 = OpLoad %10 %31
        %101 = OpLoad %10 %41
        %102 = OpAccessChain %71 %70 %32
        %103 = OpLoad %61 %102
        %104 = OpAccessChain %74 %99 %100 %101
               OpStore %104 %103
               OpBranch %60
         %55 = OpLabel
        %109 = OpLoad %10 %31
        %110 = OpLoad %10 %41
        %111 = OpAccessChain %71 %70 %32
        %112 = OpLoad %61 %111
        %113 = OpAccessChain %74 %108 %109 %110
               OpStore %113 %112
               OpBranch %60
         %56 = OpLabel
        %118 = OpLoad %10 %31
        %119 = OpLoad %10 %41
        %120 = OpAccessChain %71 %70 %32
        %121 = OpLoad %61 %120
        %122 = OpAccessChain %74 %117 %118 %119
               OpStore %122 %121
               OpBranch %60
         %57 = OpLabel
        %127 = OpLoad %10 %31
        %128 = OpLoad %10 %41
        %129 = OpAccessChain %71 %70 %32
        %130 = OpLoad %61 %129
        %131 = OpAccessChain %74 %126 %127 %128
               OpStore %131 %130
               OpBranch %60
         %58 = OpLabel
        %136 = OpLoad %10 %31
        %137 = OpLoad %10 %41
        %138 = OpAccessChain %71 %70 %32
        %139 = OpLoad %61 %138
        %140 = OpAccessChain %74 %135 %136 %137
               OpStore %140 %139
               OpBranch %60
         %59 = OpLabel
        %145 = OpLoad %10 %31
        %146 = OpLoad %10 %41
        %147 = OpAccessChain %71 %70 %32
        %148 = OpLoad %61 %147
        %149 = OpAccessChain %74 %144 %145 %146
               OpStore %149 %148
               OpBranch %60
         %60 = OpLabel
               OpBranch %45
         %45 = OpLabel
        %152 = OpLoad %10 %41
        %154 = OpIAdd %10 %152 %153
               OpStore %41 %154
               OpBranch %42
         %44 = OpLabel
               OpBranch %36
         %36 = OpLabel
        %155 = OpLoad %10 %31
        %156 = OpIAdd %10 %155 %153
               OpStore %31 %156
               OpBranch %33
         %35 = OpLabel
        %157 = OpLoad %6 %8
        %159 = OpIAdd %6 %157 %158
               OpStore %8 %159
               OpBranch %27
         %27 = OpLabel
        %160 = OpLoad %10 %23
        %161 = OpIAdd %10 %160 %153
               OpStore %23 %161
               OpBranch %24
         %26 = OpLabel
               OpBranch %17
         %17 = OpLabel
        %162 = OpLoad %10 %12
        %163 = OpIAdd %10 %162 %153
               OpStore %12 %163
               OpBranch %14
         %16 = OpLabel
               OpStore %164 %32
               OpStore %165 %13
               OpBranch %166
        %166 = OpLabel
               OpLoopMerge %168 %169 None
               OpBranch %170
        %170 = OpLabel
        %171 = OpLoad %10 %165
        %172 = OpSLessThanEqual %21 %171 %20
               OpBranchConditional %172 %167 %168
        %167 = OpLabel
               OpStore %173 %13
               OpBranch %174
        %174 = OpLabel
               OpLoopMerge %176 %177 None
               OpBranch %178
        %178 = OpLabel
        %179 = OpLoad %10 %173
        %180 = OpSLessThanEqual %21 %179 %20
               OpBranchConditional %180 %175 %176
        %175 = OpLabel
        %185 = OpLoad %10 %164
        %188 = OpAccessChain %187 %184 %185
               OpStore %188 %186
               OpStore %189 %32
               OpBranch %190
        %190 = OpLabel
               OpLoopMerge %192 %193 None
               OpBranch %194
        %194 = OpLabel
        %195 = OpLoad %10 %189
        %196 = OpLoad %10 %165
        %197 = OpSLessThan %21 %195 %196
               OpBranchConditional %197 %191 %192
        %191 = OpLabel
               OpStore %198 %32
               OpBranch %199
        %199 = OpLabel
               OpLoopMerge %201 %202 None
               OpBranch %203
        %203 = OpLabel
        %204 = OpLoad %10 %198
        %205 = OpLoad %10 %173
        %206 = OpSLessThan %21 %204 %205
               OpBranchConditional %206 %200 %201
        %200 = OpLabel
        %207 = OpLoad %10 %164
               OpSelectionMerge %217 None
               OpSwitch %207 %217 0 %208 1 %209 2 %210 3 %211 4 %212 5 %213 6 %214 7 %215 8 %216
        %208 = OpLabel
        %218 = OpLoad %10 %164
        %219 = OpLoad %10 %189
        %220 = OpLoad %10 %198
        %221 = OpAccessChain %74 %65 %219 %220
        %222 = OpLoad %61 %221
        %223 = OpAccessChain %187 %184 %218
        %224 = OpLoad %61 %223
        %225 = OpFAdd %61 %224 %222
        %226 = OpAccessChain %187 %184 %218
               OpStore %226 %225
               OpBranch %217
        %209 = OpLabel
        %228 = OpLoad %10 %164
        %229 = OpLoad %10 %189
        %230 = OpLoad %10 %198
        %231 = OpAccessChain %74 %80 %229 %230
        %232 = OpLoad %61 %231
        %233 = OpAccessChain %187 %184 %228
        %234 = OpLoad %61 %233
        %235 = OpFAdd %61 %234 %232
        %236 = OpAccessChain %187 %184 %228
               OpStore %236 %235
               OpBranch %217
        %210 = OpLabel
        %238 = OpLoad %10 %164
        %239 = OpLoad %10 %189
        %240 = OpLoad %10 %198
        %241 = OpAccessChain %74 %90 %239 %240
        %242 = OpLoad %61 %241
        %243 = OpAccessChain %187 %184 %238
        %244 = OpLoad %61 %243
        %245 = OpFAdd %61 %244 %242
        %246 = OpAccessChain %187 %184 %238
               OpStore %246 %245
               OpBranch %217
        %211 = OpLabel
        %248 = OpLoad %10 %164
        %249 = OpLoad %10 %189
        %250 = OpLoad %10 %198
        %251 = OpAccessChain %74 %99 %249 %250
        %252 = OpLoad %61 %251
        %253 = OpAccessChain %187 %184 %248
        %254 = OpLoad %61 %253
        %255 = OpFAdd %61 %254 %252
        %256 = OpAccessChain %187 %184 %248
               OpStore %256 %255
               OpBranch %217
        %212 = OpLabel
        %258 = OpLoad %10 %164
        %259 = OpLoad %10 %189
        %260 = OpLoad %10 %198
        %261 = OpAccessChain %74 %108 %259 %260
        %262 = OpLoad %61 %261
        %263 = OpAccessChain %187 %184 %258
        %264 = OpLoad %61 %263
        %265 = OpFAdd %61 %264 %262
        %266 = OpAccessChain %187 %184 %258
               OpStore %266 %265
               OpBranch %217
        %213 = OpLabel
        %268 = OpLoad %10 %164
        %269 = OpLoad %10 %189
        %270 = OpLoad %10 %198
        %271 = OpAccessChain %74 %117 %269 %270
        %272 = OpLoad %61 %271
        %273 = OpAccessChain %187 %184 %268
        %274 = OpLoad %61 %273
        %275 = OpFAdd %61 %274 %272
        %276 = OpAccessChain %187 %184 %268
               OpStore %276 %275
               OpBranch %217
        %214 = OpLabel
        %278 = OpLoad %10 %164
        %279 = OpLoad %10 %189
        %280 = OpLoad %10 %198
        %281 = OpAccessChain %74 %126 %279 %280
        %282 = OpLoad %61 %281
        %283 = OpAccessChain %187 %184 %278
        %284 = OpLoad %61 %283
        %285 = OpFAdd %61 %284 %282
        %286 = OpAccessChain %187 %184 %278
               OpStore %286 %285
               OpBranch %217
        %215 = OpLabel
        %288 = OpLoad %10 %164
        %289 = OpLoad %10 %189
        %290 = OpLoad %10 %198
        %291 = OpAccessChain %74 %135 %289 %290
        %292 = OpLoad %61 %291
        %293 = OpAccessChain %187 %184 %288
        %294 = OpLoad %61 %293
        %295 = OpFAdd %61 %294 %292
        %296 = OpAccessChain %187 %184 %288
               OpStore %296 %295
               OpBranch %217
        %216 = OpLabel
        %298 = OpLoad %10 %164
        %299 = OpLoad %10 %189
        %300 = OpLoad %10 %198
        %301 = OpAccessChain %74 %144 %299 %300
        %302 = OpLoad %61 %301
        %303 = OpAccessChain %187 %184 %298
        %304 = OpLoad %61 %303
        %305 = OpFAdd %61 %304 %302
        %306 = OpAccessChain %187 %184 %298
               OpStore %306 %305
               OpBranch %217
        %217 = OpLabel
               OpBranch %202
        %202 = OpLabel
        %309 = OpLoad %10 %198
        %310 = OpIAdd %10 %309 %153
               OpStore %198 %310
               OpBranch %199
        %201 = OpLabel
               OpBranch %193
        %193 = OpLabel
        %311 = OpLoad %10 %189
        %312 = OpIAdd %10 %311 %153
               OpStore %189 %312
               OpBranch %190
        %192 = OpLabel
        %313 = OpLoad %10 %164
        %315 = OpAccessChain %187 %184 %313
        %316 = OpLoad %61 %315
        %317 = OpFDiv %61 %316 %314
        %318 = OpAccessChain %187 %184 %313
               OpStore %318 %317
        %319 = OpLoad %10 %164
        %320 = OpIAdd %10 %319 %153
               OpStore %164 %320
               OpBranch %177
        %177 = OpLabel
        %321 = OpLoad %10 %173
        %322 = OpIAdd %10 %321 %153
               OpStore %173 %322
               OpBranch %174
        %176 = OpLabel
               OpBranch %169
        %169 = OpLabel
        %323 = OpLoad %10 %165
        %324 = OpIAdd %10 %323 %153
               OpStore %165 %324
               OpBranch %166
        %168 = OpLabel
        %329 = OpAccessChain %328 %327 %9
        %330 = OpLoad %61 %329
        %334 = OpAccessChain %71 %333 %32 %9
        %335 = OpLoad %61 %334
        %337 = OpFDiv %61 %335 %336
        %338 = OpFDiv %61 %330 %337
        %339 = OpConvertFToS %10 %338
               OpStore %325 %339
        %341 = OpAccessChain %328 %327 %158
        %342 = OpLoad %61 %341
        %343 = OpAccessChain %71 %333 %32 %9
        %344 = OpLoad %61 %343
        %345 = OpFDiv %61 %344 %336
        %346 = OpFDiv %61 %342 %345
        %347 = OpConvertFToS %10 %346
               OpStore %340 %347
        %349 = OpLoad %10 %340
        %351 = OpIMul %10 %349 %350
        %352 = OpLoad %10 %325
        %353 = OpIAdd %10 %351 %352
               OpStore %348 %353
        %354 = OpLoad %10 %348
        %355 = OpSGreaterThan %21 %354 %32
        %356 = OpLoad %10 %348
        %358 = OpSLessThan %21 %356 %357
        %359 = OpLogicalAnd %21 %355 %358
               OpSelectionMerge %361 None
               OpBranchConditional %359 %360 %373
        %360 = OpLabel
        %364 = OpLoad %10 %348
        %365 = OpAccessChain %187 %184 %364
        %366 = OpLoad %61 %365
        %367 = OpCompositeConstruct %77 %366 %366 %366
        %369 = OpCompositeExtract %61 %367 0
        %370 = OpCompositeExtract %61 %367 1
        %371 = OpCompositeExtract %61 %367 2
        %372 = OpCompositeConstruct %87 %369 %370 %371 %368
               OpStore %363 %372
               OpBranch %361
        %373 = OpLabel
               OpStore %363 %374
               OpBranch %361
        %361 = OpLabel
               OpReturn
               OpFunctionEnd
  )";

// The SPIR-V comes from the following GLSL:
//
// #version 310 es
// precision highp float;
//
// layout(location = 0) out vec4 color;
//
// void main()
// {
//   color = vec4(1.0, 0.0, 0.0, 1.0);
// }

const std::string kTestShader5 = R"(
               OpCapability Shader
          %1 = OpExtInstImport "GLSL.std.450"
               OpMemoryModel Logical GLSL450
               OpEntryPoint Fragment %4 "main" %9
               OpExecutionMode %4 OriginUpperLeft
               OpSource ESSL 310
               OpName %4 "main"
               OpName %9 "color"
               OpDecorate %9 Location 0
          %2 = OpTypeVoid
          %3 = OpTypeFunction %2
          %6 = OpTypeFloat 32
          %7 = OpTypeVector %6 4
          %8 = OpTypePointer Output %7
          %9 = OpVariable %8 Output
         %10 = OpConstant %6 1
         %11 = OpConstant %6 0
         %12 = OpConstantComposite %7 %10 %11 %11 %10
          %4 = OpFunction %2 None %3
          %5 = OpLabel
               OpStore %9 %12
               OpReturn
               OpFunctionEnd
  )";

// Some miscellaneous SPIR-V.

const std::string kTestShader6 = R"(
               OpCapability Shader
               OpCapability SampledBuffer
               OpCapability ImageBuffer
          %1 = OpExtInstImport "GLSL.std.450"
               OpMemoryModel Logical GLSL450
               OpEntryPoint Fragment %2 "main" %40 %41
               OpExecutionMode %2 OriginUpperLeft
               OpSource GLSL 450
               OpDecorate %40 DescriptorSet 0
               OpDecorate %40 Binding 69
               OpDecorate %41 DescriptorSet 0
               OpDecorate %41 Binding 1
         %54 = OpTypeFloat 32
         %76 = OpTypeVector %54 4
         %55 = OpConstant %54 0
         %56 = OpTypeVector %54 3
         %94 = OpTypeVector %54 2
        %112 = OpConstantComposite %94 %55 %55
         %57 = OpConstantComposite %56 %55 %55 %55
         %15 = OpTypeImage %54 2D 2 0 0 1 Unknown
        %114 = OpTypePointer UniformConstant %15
         %38 = OpTypeSampler
        %125 = OpTypePointer UniformConstant %38
        %132 = OpTypeVoid
        %133 = OpTypeFunction %132
         %45 = OpTypeSampledImage %15
         %40 = OpVariable %114 UniformConstant
         %41 = OpVariable %125 UniformConstant
          %2 = OpFunction %132 None %133
        %164 = OpLabel
        %184 = OpLoad %15 %40
        %213 = OpLoad %38 %41
        %216 = OpSampledImage %45 %184 %213
        %217 = OpImageSampleImplicitLod %76 %216 %112 Bias %55
               OpReturn
               OpFunctionEnd
  )";

void AddConstantUniformFact(protobufs::FactSequence* facts,
                            uint32_t descriptor_set, uint32_t binding,
                            std::vector<uint32_t>&& indices, uint32_t value) {
  protobufs::FactConstantUniform fact;
  *fact.mutable_uniform_buffer_element_descriptor() =
      MakeUniformBufferElementDescriptor(descriptor_set, binding,
                                         std::move(indices));
  *fact.mutable_constant_word()->Add() = value;
  protobufs::Fact temp;
  *temp.mutable_constant_uniform_fact() = fact;
  *facts->mutable_fact()->Add() = temp;
}

// Reinterpret the bits of |value| as a 32-bit unsigned int
uint32_t FloatBitsAsUint(float value) {
  uint32_t result;
  memcpy(&result, &value, sizeof(float));
  return result;
}

// Assembles the given |shader| text, and then runs the fuzzer |num_runs|
// times, using successive seeds starting from |initial_seed|.  Checks that
// the binary produced after each fuzzer run is valid, and that replaying
// the transformations that were applied during fuzzing leads to an
// identical binary.
void RunFuzzerAndReplayer(const std::string& shader,
                          const protobufs::FactSequence& initial_facts,
                          uint32_t initial_seed, uint32_t num_runs) {
  const auto env = SPV_ENV_UNIVERSAL_1_5;

  std::vector<uint32_t> binary_in;
  SpirvTools t(env);
  t.SetMessageConsumer(kConsoleMessageConsumer);
  ASSERT_TRUE(t.Assemble(shader, &binary_in, kFuzzAssembleOption));
  ASSERT_TRUE(t.Validate(binary_in));

  std::vector<fuzzerutil::ModuleSupplier> donor_suppliers;
  for (auto donor : {&kTestShader1, &kTestShader2, &kTestShader3, &kTestShader4,
                     &kTestShader5, &kTestShader6}) {
    donor_suppliers.emplace_back([donor]() {
      return BuildModule(env, kConsoleMessageConsumer, *donor,
                         kFuzzAssembleOption);
    });
  }

  std::vector<Fuzzer::RepeatedPassStrategy> strategies{
      Fuzzer::RepeatedPassStrategy::kSimple,
      Fuzzer::RepeatedPassStrategy::kLoopedWithRecommendations,
      Fuzzer::RepeatedPassStrategy::kRandomWithRecommendations};
  uint32_t strategy_index = 0;
  for (uint32_t seed = initial_seed; seed < initial_seed + num_runs; seed++) {
    spvtools::ValidatorOptions validator_options;
    // Every 4th time we run the fuzzer, enable all fuzzer passes.
    bool enable_all_passes = (seed % 4) == 0;
    auto fuzzer_result =
        Fuzzer(env, kConsoleMessageConsumer, binary_in, initial_facts,
               donor_suppliers, MakeUnique<PseudoRandomGenerator>(seed),
               enable_all_passes, strategies[strategy_index], true,
               validator_options)
            .Run();

    // Cycle the repeated pass strategy so that we try a different one next time
    // we run the fuzzer.
    strategy_index =
        (strategy_index + 1) % static_cast<uint32_t>(strategies.size());

    ASSERT_EQ(Fuzzer::FuzzerResultStatus::kComplete, fuzzer_result.status);
    ASSERT_TRUE(t.Validate(fuzzer_result.transformed_binary));

    auto replayer_result =
        Replayer(
            env, kConsoleMessageConsumer, binary_in, initial_facts,
            fuzzer_result.applied_transformations,
            static_cast<uint32_t>(
                fuzzer_result.applied_transformations.transformation_size()),
            false, validator_options)
            .Run();
    ASSERT_EQ(Replayer::ReplayerResultStatus::kComplete,
              replayer_result.status);

    // After replaying the transformations applied by the fuzzer, exactly those
    // transformations should have been applied, and the binary resulting from
    // replay should be identical to that which resulted from fuzzing.
    std::string fuzzer_transformations_string;
    std::string replayer_transformations_string;
    fuzzer_result.applied_transformations.SerializeToString(
        &fuzzer_transformations_string);
    replayer_result.applied_transformations.SerializeToString(
        &replayer_transformations_string);
    ASSERT_EQ(fuzzer_transformations_string, replayer_transformations_string);
    ASSERT_TRUE(IsEqual(env, fuzzer_result.transformed_binary,
                        replayer_result.transformed_module.get()));
  }
}

TEST(FuzzerReplayerTest, Miscellaneous1) {
  // Do some fuzzer runs, starting from an initial seed of 0 (seed value chosen
  // arbitrarily).
  RunFuzzerAndReplayer(kTestShader1, protobufs::FactSequence(), 0,
                       kNumFuzzerRuns);
}

TEST(FuzzerReplayerTest, Miscellaneous2) {
  // Do some fuzzer runs, starting from an initial seed of 10 (seed value chosen
  // arbitrarily).
  RunFuzzerAndReplayer(kTestShader2, protobufs::FactSequence(), 10,
                       kNumFuzzerRuns);
}

TEST(FuzzerReplayerTest, Miscellaneous3) {
  // Add the facts "resolution.x == 250" and "resolution.y == 100".
  protobufs::FactSequence facts;
  AddConstantUniformFact(&facts, 0, 0, {0, 0}, 250);
  AddConstantUniformFact(&facts, 0, 0, {0, 1}, 100);

  // Do some fuzzer runs, starting from an initial seed of 94 (seed value chosen
  // arbitrarily).
  RunFuzzerAndReplayer(kTestShader3, facts, 94, kNumFuzzerRuns);
}

TEST(FuzzerReplayerTest, Miscellaneous4) {
  // Add the facts:
  //  - "one == 1.0"
  //  - "resolution.y == 256.0",
  protobufs::FactSequence facts;
  AddConstantUniformFact(&facts, 0, 0, {0}, FloatBitsAsUint(1.0));
  AddConstantUniformFact(&facts, 0, 1, {0, 0}, FloatBitsAsUint(256.0));
  AddConstantUniformFact(&facts, 0, 1, {0, 1}, FloatBitsAsUint(256.0));

  // Do some fuzzer runs, starting from an initial seed of 14 (seed value chosen
  // arbitrarily).
  RunFuzzerAndReplayer(kTestShader4, facts, 14, kNumFuzzerRuns);
}

TEST(FuzzerReplayerTest, Miscellaneous5) {
  // Do some fuzzer runs, starting from an initial seed of 29 (seed value chosen
  // arbitrarily).
  RunFuzzerAndReplayer(kTestShader5, protobufs::FactSequence(), 29,
                       kNumFuzzerRuns);
}

TEST(FuzzerReplayerTest, Miscellaneous6) {
  // Do some fuzzer runs, starting from an initial seed of 57 (seed value chosen
  // arbitrarily).
  RunFuzzerAndReplayer(kTestShader6, protobufs::FactSequence(), 57,
                       kNumFuzzerRuns);
}

}  // namespace
}  // namespace fuzz
}  // namespace spvtools
