#!amber

# Copyright 2020 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.


# A test for a bug found by GraphicsFuzz.

# Short description: A fragment shader with min-mix in always false conditional

# The test passes because both shaders render the same image.

SHADER vertex reference_vertex_shader PASSTHROUGH

# reference_fragment_shader is derived from the following GLSL:
# #version 320 es
# precision highp float;
#
# precision highp int;
#
# layout(location = 0) out vec4 _GLF_color;
#
# layout(set = 0, binding = 0) uniform buf0 {
#  vec2 resolution;
# };
# const vec4 pal[16] = vec4[16](vec4(0.0, 0.0, 0.0, 1.0), vec4(0.5, 0.0, 0.0, 1.0), vec4(0.0, 0.5, 0.0, 1.0), vec4(0.5, 0.5, 0.0, 1.0), vec4(0.0, 0.0, 0.5, 1.0), vec4(0.5, 0.0, 0.5, 1.0), vec4(0.0, 0.5, 0.5, 1.0), vec4(0.5, 0.5, 0.5, 1.0), vec4(0.0, 0.0, 0.0, 1.0), vec4(1.0, 0.0, 0.0, 1.0), vec4(0.0, 1.0, 0.0, 1.0), vec4(1.0, 1.0, 0.0, 1.0), vec4(0.0, 0.0, 1.0, 1.0), vec4(1.0, 0.0, 1.0, 1.0), vec4(0.0, 1.0, 1.0, 1.0), vec4(1.0, 1.0, 1.0, 1.0));
#
# const vec4 picdata[8] = vec4[8](vec4(4, 4, 20, 4), vec4(4, 4, 4, 20), vec4(4, 20, 20, 4), vec4(20, 4, 4, 8), vec4(8, 6, 4, 2), vec4(2, 12, 2, 4), vec4(16, 2, 4, 4), vec4(12, 22, 4, 4));
#
# int index;
#
# int state[16];
#
# bool collision(vec2 pos, vec4 quad)
# {
#  if(pos.x < quad.x)
#   {
#    return false;
#   }
#  if(pos.y < quad.y)
#   {
#    return false;
#   }
#  if(pos.x > quad.x + quad.z)
#   {
#    return false;
#   }
#  if(pos.y > quad.y + quad.w)
#   {
#    return false;
#   }
#  return true;
# }
# vec4 match(vec2 pos)
# {
#  int i;
#  vec4 res = vec4(0.5, 0.5, 1.0, 1.0);
#  for( i = 0;
#  i < 8; i ++)
#   {
#    if(collision(pos, picdata[i]))
#     {
#      res = pal[(int(picdata[i].x) * int(picdata[i].y) + i * 9 + 11) % 16];
#     }
#   }
#  return res;
# }
# void main()
# {
#  vec2 lin = gl_FragCoord.xy / resolution;
#  lin = floor(lin * 32.0);
#  _GLF_color = match(lin.xy);
# }
SHADER fragment reference_fragment_shader SPIRV-ASM TARGET_ENV spv1.0
; SPIR-V
; Version: 1.0
; Generator: Khronos Glslang Reference Front End; 10
; Bound: 189
; Schema: 0
               OpCapability Shader
          %1 = OpExtInstImport "GLSL.std.450"
               OpMemoryModel Logical GLSL450
               OpEntryPoint Fragment %4 "main" %165 %180
               OpExecutionMode %4 OriginUpperLeft
               OpSource ESSL 320
               OpName %4 "main"
               OpName %15 "collision(vf2;vf4;"
               OpName %13 "pos"
               OpName %14 "quad"
               OpName %19 "match(vf2;"
               OpName %18 "pos"
               OpName %69 "res"
               OpName %75 "i"
               OpName %105 "param"
               OpName %107 "param"
               OpName %109 "indexable"
               OpName %135 "indexable"
               OpName %140 "indexable"
               OpName %154 "indexable"
               OpName %163 "lin"
               OpName %165 "gl_FragCoord"
               OpName %168 "buf0"
               OpMemberName %168 0 "resolution"
               OpName %170 ""
               OpName %180 "_GLF_color"
               OpName %181 "param"
               OpName %185 "index"
               OpName %188 "state"
               OpDecorate %165 BuiltIn FragCoord
               OpMemberDecorate %168 0 Offset 0
               OpDecorate %168 Block
               OpDecorate %170 DescriptorSet 0
               OpDecorate %170 Binding 0
               OpDecorate %180 Location 0
          %2 = OpTypeVoid
          %3 = OpTypeFunction %2
          %6 = OpTypeFloat 32
          %7 = OpTypeVector %6 2
          %8 = OpTypePointer Function %7
          %9 = OpTypeVector %6 4
         %10 = OpTypePointer Function %9
         %11 = OpTypeBool
         %12 = OpTypeFunction %11 %8 %10
         %17 = OpTypeFunction %9 %8
         %21 = OpTypeInt 32 0
         %22 = OpConstant %21 0
         %23 = OpTypePointer Function %6
         %31 = OpConstantFalse %11
         %33 = OpConstant %21 1
         %46 = OpConstant %21 2
         %58 = OpConstant %21 3
         %66 = OpConstantTrue %11
         %70 = OpConstant %6 0.5
         %71 = OpConstant %6 1
         %72 = OpConstantComposite %9 %70 %70 %71 %71
         %73 = OpTypeInt 32 1
         %74 = OpTypePointer Function %73
         %76 = OpConstant %73 0
         %83 = OpConstant %73 8
         %85 = OpConstant %21 8
         %86 = OpTypeArray %9 %85
         %87 = OpConstant %6 4
         %88 = OpConstant %6 20
         %89 = OpConstantComposite %9 %87 %87 %88 %87
         %90 = OpConstantComposite %9 %87 %87 %87 %88
         %91 = OpConstantComposite %9 %87 %88 %88 %87
         %92 = OpConstant %6 8
         %93 = OpConstantComposite %9 %88 %87 %87 %92
         %94 = OpConstant %6 6
         %95 = OpConstant %6 2
         %96 = OpConstantComposite %9 %92 %94 %87 %95
         %97 = OpConstant %6 12
         %98 = OpConstantComposite %9 %95 %97 %95 %87
         %99 = OpConstant %6 16
        %100 = OpConstantComposite %9 %99 %95 %87 %87
        %101 = OpConstant %6 22
        %102 = OpConstantComposite %9 %97 %101 %87 %87
        %103 = OpConstantComposite %86 %89 %90 %91 %93 %96 %98 %100 %102
        %108 = OpTypePointer Function %86
        %115 = OpConstant %21 16
        %116 = OpTypeArray %9 %115
        %117 = OpConstant %6 0
        %118 = OpConstantComposite %9 %117 %117 %117 %71
        %119 = OpConstantComposite %9 %70 %117 %117 %71
        %120 = OpConstantComposite %9 %117 %70 %117 %71
        %121 = OpConstantComposite %9 %70 %70 %117 %71
        %122 = OpConstantComposite %9 %117 %117 %70 %71
        %123 = OpConstantComposite %9 %70 %117 %70 %71
        %124 = OpConstantComposite %9 %117 %70 %70 %71
        %125 = OpConstantComposite %9 %70 %70 %70 %71
        %126 = OpConstantComposite %9 %71 %117 %117 %71
        %127 = OpConstantComposite %9 %117 %71 %117 %71
        %128 = OpConstantComposite %9 %71 %71 %117 %71
        %129 = OpConstantComposite %9 %117 %117 %71 %71
        %130 = OpConstantComposite %9 %71 %117 %71 %71
        %131 = OpConstantComposite %9 %117 %71 %71 %71
        %132 = OpConstantComposite %9 %71 %71 %71 %71
        %133 = OpConstantComposite %116 %118 %119 %120 %121 %122 %123 %124 %125 %118 %126 %127 %128 %129 %130 %131 %132
        %146 = OpConstant %73 9
        %149 = OpConstant %73 11
        %151 = OpConstant %73 16
        %153 = OpTypePointer Function %116
        %158 = OpConstant %73 1
        %164 = OpTypePointer Input %9
        %165 = OpVariable %164 Input
        %168 = OpTypeStruct %7
        %169 = OpTypePointer Uniform %168
        %170 = OpVariable %169 Uniform
        %171 = OpTypePointer Uniform %7
        %176 = OpConstant %6 32
        %179 = OpTypePointer Output %9
        %180 = OpVariable %179 Output
        %184 = OpTypePointer Private %73
        %185 = OpVariable %184 Private
        %186 = OpTypeArray %73 %115
        %187 = OpTypePointer Private %186
        %188 = OpVariable %187 Private
          %4 = OpFunction %2 None %3
          %5 = OpLabel
        %163 = OpVariable %8 Function
        %181 = OpVariable %8 Function
        %166 = OpLoad %9 %165
        %167 = OpVectorShuffle %7 %166 %166 0 1
        %172 = OpAccessChain %171 %170 %76
        %173 = OpLoad %7 %172
        %174 = OpFDiv %7 %167 %173
               OpStore %163 %174
        %175 = OpLoad %7 %163
        %177 = OpVectorTimesScalar %7 %175 %176
        %178 = OpExtInst %7 %1 Floor %177
               OpStore %163 %178
        %182 = OpLoad %7 %163
               OpStore %181 %182
        %183 = OpFunctionCall %9 %19 %181
               OpStore %180 %183
               OpReturn
               OpFunctionEnd
         %15 = OpFunction %11 None %12
         %13 = OpFunctionParameter %8
         %14 = OpFunctionParameter %10
         %16 = OpLabel
         %24 = OpAccessChain %23 %13 %22
         %25 = OpLoad %6 %24
         %26 = OpAccessChain %23 %14 %22
         %27 = OpLoad %6 %26
         %28 = OpFOrdLessThan %11 %25 %27
               OpSelectionMerge %30 None
               OpBranchConditional %28 %29 %30
         %29 = OpLabel
               OpReturnValue %31
         %30 = OpLabel
         %34 = OpAccessChain %23 %13 %33
         %35 = OpLoad %6 %34
         %36 = OpAccessChain %23 %14 %33
         %37 = OpLoad %6 %36
         %38 = OpFOrdLessThan %11 %35 %37
               OpSelectionMerge %40 None
               OpBranchConditional %38 %39 %40
         %39 = OpLabel
               OpReturnValue %31
         %40 = OpLabel
         %42 = OpAccessChain %23 %13 %22
         %43 = OpLoad %6 %42
         %44 = OpAccessChain %23 %14 %22
         %45 = OpLoad %6 %44
         %47 = OpAccessChain %23 %14 %46
         %48 = OpLoad %6 %47
         %49 = OpFAdd %6 %45 %48
         %50 = OpFOrdGreaterThan %11 %43 %49
               OpSelectionMerge %52 None
               OpBranchConditional %50 %51 %52
         %51 = OpLabel
               OpReturnValue %31
         %52 = OpLabel
         %54 = OpAccessChain %23 %13 %33
         %55 = OpLoad %6 %54
         %56 = OpAccessChain %23 %14 %33
         %57 = OpLoad %6 %56
         %59 = OpAccessChain %23 %14 %58
         %60 = OpLoad %6 %59
         %61 = OpFAdd %6 %57 %60
         %62 = OpFOrdGreaterThan %11 %55 %61
               OpSelectionMerge %64 None
               OpBranchConditional %62 %63 %64
         %63 = OpLabel
               OpReturnValue %31
         %64 = OpLabel
               OpReturnValue %66
               OpFunctionEnd
         %19 = OpFunction %9 None %17
         %18 = OpFunctionParameter %8
         %20 = OpLabel
         %69 = OpVariable %10 Function
         %75 = OpVariable %74 Function
        %105 = OpVariable %8 Function
        %107 = OpVariable %10 Function
        %109 = OpVariable %108 Function
        %135 = OpVariable %108 Function
        %140 = OpVariable %108 Function
        %154 = OpVariable %153 Function
               OpStore %69 %72
               OpStore %75 %76
               OpBranch %77
         %77 = OpLabel
               OpLoopMerge %79 %80 None
               OpBranch %81
         %81 = OpLabel
         %82 = OpLoad %73 %75
         %84 = OpSLessThan %11 %82 %83
               OpBranchConditional %84 %78 %79
         %78 = OpLabel
        %104 = OpLoad %73 %75
        %106 = OpLoad %7 %18
               OpStore %105 %106
               OpStore %109 %103
        %110 = OpAccessChain %10 %109 %104
        %111 = OpLoad %9 %110
               OpStore %107 %111
        %112 = OpFunctionCall %11 %15 %105 %107
               OpSelectionMerge %114 None
               OpBranchConditional %112 %113 %114
        %113 = OpLabel
        %134 = OpLoad %73 %75
               OpStore %135 %103
        %136 = OpAccessChain %23 %135 %134 %22
        %137 = OpLoad %6 %136
        %138 = OpConvertFToS %73 %137
        %139 = OpLoad %73 %75
               OpStore %140 %103
        %141 = OpAccessChain %23 %140 %139 %33
        %142 = OpLoad %6 %141
        %143 = OpConvertFToS %73 %142
        %144 = OpIMul %73 %138 %143
        %145 = OpLoad %73 %75
        %147 = OpIMul %73 %145 %146
        %148 = OpIAdd %73 %144 %147
        %150 = OpIAdd %73 %148 %149
        %152 = OpSMod %73 %150 %151
               OpStore %154 %133
        %155 = OpAccessChain %10 %154 %152
        %156 = OpLoad %9 %155
               OpStore %69 %156
               OpBranch %114
        %114 = OpLabel
               OpBranch %80
         %80 = OpLabel
        %157 = OpLoad %73 %75
        %159 = OpIAdd %73 %157 %158
               OpStore %75 %159
               OpBranch %77
         %79 = OpLabel
        %160 = OpLoad %9 %69
               OpReturnValue %160
               OpFunctionEnd
END

# uniforms for reference

# resolution
BUFFER reference_resolution DATA_TYPE vec2<float> DATA
 256.0 256.0
END

BUFFER reference_framebuffer FORMAT B8G8R8A8_UNORM

PIPELINE graphics reference_pipeline
  ATTACH reference_vertex_shader
  ATTACH reference_fragment_shader
  FRAMEBUFFER_SIZE 256 256
  BIND BUFFER reference_framebuffer AS color LOCATION 0
  BIND BUFFER reference_resolution AS uniform DESCRIPTOR_SET 0 BINDING 0
END
CLEAR_COLOR reference_pipeline 0 0 0 255

CLEAR reference_pipeline
RUN reference_pipeline DRAW_RECT POS 0 0 SIZE 256 256


SHADER vertex variant_vertex_shader PASSTHROUGH

# variant_fragment_shader is derived from the following GLSL:
# #version 320 es
# precision highp float;
#
# precision highp int;
#
# layout(location = 0) out vec4 _GLF_color;
#
# layout(set = 0, binding = 0) uniform buf0 {
#  vec2 resolution;
# };
# const vec4 pal[16] = vec4[16](vec4(0.0, 0.0, 0.0, 1.0), vec4(0.5, 0.0, 0.0, 1.0), vec4(0.0, 0.5, 0.0, 1.0), vec4(0.5, 0.5, 0.0, 1.0), vec4(0.0, 0.0, 0.5, 1.0), vec4(0.5, 0.0, 0.5, 1.0), vec4(0.0, 0.5, 0.5, 1.0), vec4(0.5, 0.5, 0.5, 1.0), vec4(0.0, 0.0, 0.0, 1.0), vec4(1.0, 0.0, 0.0, 1.0), vec4(0.0, 1.0, 0.0, 1.0), vec4(1.0, 1.0, 0.0, 1.0), vec4(0.0, 0.0, 1.0, 1.0), vec4(1.0, 0.0, 1.0, 1.0), vec4(0.0, 1.0, 1.0, 1.0), vec4(1.0, 1.0, 1.0, 1.0));
#
# const vec4 picdata[8] = vec4[8](vec4(4, 4, 20, 4), vec4(4, 4, 4, 20), vec4(4, 20, 20, 4), vec4(20, 4, 4, 8), vec4(8, 6, 4, 2), vec4(2, 12, 2, 4), vec4(16, 2, 4, 4), vec4(12, 22, 4, 4));
#
# bool collision(vec2 pos, vec4 quad)
# {
#  if(pos.x < quad.x)
#   {
#    return false;
#   }
#  if(pos.y < quad.y)
#   {
#    return false;
#   }
#  if(pos.x > quad.x + quad.z)
#   {
#    return false;
#   }
#  if(pos.y > quad.y + quad.w)
#   {
#    return false;
#   }
#  return true;
# }
# vec4 match(vec2 pos)
# {
#  int i;
#  // res == vec4 ( x, 0.5, 1.0, 1.0) where x is the result of the calculation, x == 0.5.
#  // The end result should be the same as in reference.
#  vec4 res = vec4(clamp(0.5, 0.5, (gl_FragCoord.x < 0.0) ? -1.0 : (min(gl_FragCoord.x >= 0.0 ? (mix(1.0, 0.5, (gl_FragCoord.x >= 0.0))) : 1.0, 0.5))), 0.5, 1.0, 1.0);
#  for( i = 0;
#  i < 8; i ++)
#   {
#    if(collision(pos, picdata[i]))
#     {
#      res = pal[(int(picdata[i].x) * int(picdata[i].y) + i * 9 + 11) % 16];
#     }
#   }
#  return res;
# }
# void main()
# {
#  vec2 lin = gl_FragCoord.xy / resolution;
#  lin = floor(lin * 32.0);
#  _GLF_color = match(lin.xy);
# }
SHADER fragment variant_fragment_shader SPIRV-ASM TARGET_ENV spv1.0
; SPIR-V
; Version: 1.0
; Generator: Khronos Glslang Reference Front End; 10
; Bound: 208
; Schema: 0
               OpCapability Shader
          %1 = OpExtInstImport "GLSL.std.450"
               OpMemoryModel Logical GLSL450
               OpEntryPoint Fragment %4 "main" %72 %204
               OpExecutionMode %4 OriginUpperLeft
               OpSource ESSL 320
               OpName %4 "main"
               OpName %15 "collision(vf2;vf4;"
               OpName %13 "pos"
               OpName %14 "quad"
               OpName %19 "match(vf2;"
               OpName %18 "pos"
               OpName %69 "res"
               OpName %72 "gl_FragCoord"
               OpName %102 "i"
               OpName %132 "param"
               OpName %134 "param"
               OpName %136 "indexable"
               OpName %161 "indexable"
               OpName %166 "indexable"
               OpName %180 "indexable"
               OpName %189 "lin"
               OpName %192 "buf0"
               OpMemberName %192 0 "resolution"
               OpName %194 ""
               OpName %204 "_GLF_color"
               OpName %205 "param"
               OpDecorate %72 BuiltIn FragCoord
               OpMemberDecorate %192 0 Offset 0
               OpDecorate %192 Block
               OpDecorate %194 DescriptorSet 0
               OpDecorate %194 Binding 0
               OpDecorate %204 Location 0
          %2 = OpTypeVoid
          %3 = OpTypeFunction %2
          %6 = OpTypeFloat 32
          %7 = OpTypeVector %6 2
          %8 = OpTypePointer Function %7
          %9 = OpTypeVector %6 4
         %10 = OpTypePointer Function %9
         %11 = OpTypeBool
         %12 = OpTypeFunction %11 %8 %10
         %17 = OpTypeFunction %9 %8
         %21 = OpTypeInt 32 0
         %22 = OpConstant %21 0
         %23 = OpTypePointer Function %6
         %31 = OpConstantFalse %11
         %33 = OpConstant %21 1
         %46 = OpConstant %21 2
         %58 = OpConstant %21 3
         %66 = OpConstantTrue %11
         %70 = OpConstant %6 0.5
         %71 = OpTypePointer Input %9
         %72 = OpVariable %71 Input
         %73 = OpTypePointer Input %6
         %76 = OpConstant %6 0
         %81 = OpConstant %6 -1
         %89 = OpConstant %6 1
        %100 = OpTypeInt 32 1
        %101 = OpTypePointer Function %100
        %103 = OpConstant %100 0
        %110 = OpConstant %100 8
        %112 = OpConstant %21 8
        %113 = OpTypeArray %9 %112
        %114 = OpConstant %6 4
        %115 = OpConstant %6 20
        %116 = OpConstantComposite %9 %114 %114 %115 %114
        %117 = OpConstantComposite %9 %114 %114 %114 %115
        %118 = OpConstantComposite %9 %114 %115 %115 %114
        %119 = OpConstant %6 8
        %120 = OpConstantComposite %9 %115 %114 %114 %119
        %121 = OpConstant %6 6
        %122 = OpConstant %6 2
        %123 = OpConstantComposite %9 %119 %121 %114 %122
        %124 = OpConstant %6 12
        %125 = OpConstantComposite %9 %122 %124 %122 %114
        %126 = OpConstant %6 16
        %127 = OpConstantComposite %9 %126 %122 %114 %114
        %128 = OpConstant %6 22
        %129 = OpConstantComposite %9 %124 %128 %114 %114
        %130 = OpConstantComposite %113 %116 %117 %118 %120 %123 %125 %127 %129
        %135 = OpTypePointer Function %113
        %142 = OpConstant %21 16
        %143 = OpTypeArray %9 %142
        %144 = OpConstantComposite %9 %76 %76 %76 %89
        %145 = OpConstantComposite %9 %70 %76 %76 %89
        %146 = OpConstantComposite %9 %76 %70 %76 %89
        %147 = OpConstantComposite %9 %70 %70 %76 %89
        %148 = OpConstantComposite %9 %76 %76 %70 %89
        %149 = OpConstantComposite %9 %70 %76 %70 %89
        %150 = OpConstantComposite %9 %76 %70 %70 %89
        %151 = OpConstantComposite %9 %70 %70 %70 %89
        %152 = OpConstantComposite %9 %89 %76 %76 %89
        %153 = OpConstantComposite %9 %76 %89 %76 %89
        %154 = OpConstantComposite %9 %89 %89 %76 %89
        %155 = OpConstantComposite %9 %76 %76 %89 %89
        %156 = OpConstantComposite %9 %89 %76 %89 %89
        %157 = OpConstantComposite %9 %76 %89 %89 %89
        %158 = OpConstantComposite %9 %89 %89 %89 %89
        %159 = OpConstantComposite %143 %144 %145 %146 %147 %148 %149 %150 %151 %144 %152 %153 %154 %155 %156 %157 %158
        %172 = OpConstant %100 9
        %175 = OpConstant %100 11
        %177 = OpConstant %100 16
        %179 = OpTypePointer Function %143
        %184 = OpConstant %100 1
        %192 = OpTypeStruct %7
        %193 = OpTypePointer Uniform %192
        %194 = OpVariable %193 Uniform
        %195 = OpTypePointer Uniform %7
        %200 = OpConstant %6 32
        %203 = OpTypePointer Output %9
        %204 = OpVariable %203 Output
          %4 = OpFunction %2 None %3
          %5 = OpLabel
        %189 = OpVariable %8 Function
        %205 = OpVariable %8 Function
        %190 = OpLoad %9 %72
        %191 = OpVectorShuffle %7 %190 %190 0 1
        %196 = OpAccessChain %195 %194 %103
        %197 = OpLoad %7 %196
        %198 = OpFDiv %7 %191 %197
               OpStore %189 %198
        %199 = OpLoad %7 %189
        %201 = OpVectorTimesScalar %7 %199 %200
        %202 = OpExtInst %7 %1 Floor %201
               OpStore %189 %202
        %206 = OpLoad %7 %189
               OpStore %205 %206
        %207 = OpFunctionCall %9 %19 %205
               OpStore %204 %207
               OpReturn
               OpFunctionEnd
         %15 = OpFunction %11 None %12
         %13 = OpFunctionParameter %8
         %14 = OpFunctionParameter %10
         %16 = OpLabel
         %24 = OpAccessChain %23 %13 %22
         %25 = OpLoad %6 %24
         %26 = OpAccessChain %23 %14 %22
         %27 = OpLoad %6 %26
         %28 = OpFOrdLessThan %11 %25 %27
               OpSelectionMerge %30 None
               OpBranchConditional %28 %29 %30
         %29 = OpLabel
               OpReturnValue %31
         %30 = OpLabel
         %34 = OpAccessChain %23 %13 %33
         %35 = OpLoad %6 %34
         %36 = OpAccessChain %23 %14 %33
         %37 = OpLoad %6 %36
         %38 = OpFOrdLessThan %11 %35 %37
               OpSelectionMerge %40 None
               OpBranchConditional %38 %39 %40
         %39 = OpLabel
               OpReturnValue %31
         %40 = OpLabel
         %42 = OpAccessChain %23 %13 %22
         %43 = OpLoad %6 %42
         %44 = OpAccessChain %23 %14 %22
         %45 = OpLoad %6 %44
         %47 = OpAccessChain %23 %14 %46
         %48 = OpLoad %6 %47
         %49 = OpFAdd %6 %45 %48
         %50 = OpFOrdGreaterThan %11 %43 %49
               OpSelectionMerge %52 None
               OpBranchConditional %50 %51 %52
         %51 = OpLabel
               OpReturnValue %31
         %52 = OpLabel
         %54 = OpAccessChain %23 %13 %33
         %55 = OpLoad %6 %54
         %56 = OpAccessChain %23 %14 %33
         %57 = OpLoad %6 %56
         %59 = OpAccessChain %23 %14 %58
         %60 = OpLoad %6 %59
         %61 = OpFAdd %6 %57 %60
         %62 = OpFOrdGreaterThan %11 %55 %61
               OpSelectionMerge %64 None
               OpBranchConditional %62 %63 %64
         %63 = OpLabel
               OpReturnValue %31
         %64 = OpLabel
               OpReturnValue %66
               OpFunctionEnd
         %19 = OpFunction %9 None %17
         %18 = OpFunctionParameter %8
         %20 = OpLabel
         %69 = OpVariable %10 Function
         %78 = OpVariable %23 Function
         %86 = OpVariable %23 Function
        %102 = OpVariable %101 Function
        %132 = OpVariable %8 Function
        %134 = OpVariable %10 Function
        %136 = OpVariable %135 Function
        %161 = OpVariable %135 Function
        %166 = OpVariable %135 Function
        %180 = OpVariable %179 Function
         %74 = OpAccessChain %73 %72 %22
         %75 = OpLoad %6 %74
         %77 = OpFOrdLessThan %11 %75 %76
               OpSelectionMerge %80 None
               OpBranchConditional %77 %79 %82
         %79 = OpLabel
               OpStore %78 %81
               OpBranch %80
         %82 = OpLabel
         %83 = OpAccessChain %73 %72 %22
         %84 = OpLoad %6 %83
         %85 = OpFOrdGreaterThanEqual %11 %84 %76
               OpSelectionMerge %88 None
               OpBranchConditional %85 %87 %94
         %87 = OpLabel
         %90 = OpAccessChain %73 %72 %22
         %91 = OpLoad %6 %90
         %92 = OpFOrdGreaterThanEqual %11 %91 %76
         %93 = OpSelect %6 %92 %70 %89
               OpStore %86 %93
               OpBranch %88
         %94 = OpLabel
               OpStore %86 %89
               OpBranch %88
         %88 = OpLabel
         %95 = OpLoad %6 %86
         %96 = OpExtInst %6 %1 FMin %95 %70
               OpStore %78 %96
               OpBranch %80
         %80 = OpLabel
         %97 = OpLoad %6 %78
         %98 = OpExtInst %6 %1 FClamp %70 %70 %97
         %99 = OpCompositeConstruct %9 %98 %70 %89 %89
               OpStore %69 %99
               OpStore %102 %103
               OpBranch %104
        %104 = OpLabel
               OpLoopMerge %106 %107 None
               OpBranch %108
        %108 = OpLabel
        %109 = OpLoad %100 %102
        %111 = OpSLessThan %11 %109 %110
               OpBranchConditional %111 %105 %106
        %105 = OpLabel
        %131 = OpLoad %100 %102
        %133 = OpLoad %7 %18
               OpStore %132 %133
               OpStore %136 %130
        %137 = OpAccessChain %10 %136 %131
        %138 = OpLoad %9 %137
               OpStore %134 %138
        %139 = OpFunctionCall %11 %15 %132 %134
               OpSelectionMerge %141 None
               OpBranchConditional %139 %140 %141
        %140 = OpLabel
        %160 = OpLoad %100 %102
               OpStore %161 %130
        %162 = OpAccessChain %23 %161 %160 %22
        %163 = OpLoad %6 %162
        %164 = OpConvertFToS %100 %163
        %165 = OpLoad %100 %102
               OpStore %166 %130
        %167 = OpAccessChain %23 %166 %165 %33
        %168 = OpLoad %6 %167
        %169 = OpConvertFToS %100 %168
        %170 = OpIMul %100 %164 %169
        %171 = OpLoad %100 %102
        %173 = OpIMul %100 %171 %172
        %174 = OpIAdd %100 %170 %173
        %176 = OpIAdd %100 %174 %175
        %178 = OpSMod %100 %176 %177
               OpStore %180 %159
        %181 = OpAccessChain %10 %180 %178
        %182 = OpLoad %9 %181
               OpStore %69 %182
               OpBranch %141
        %141 = OpLabel
               OpBranch %107
        %107 = OpLabel
        %183 = OpLoad %100 %102
        %185 = OpIAdd %100 %183 %184
               OpStore %102 %185
               OpBranch %104
        %106 = OpLabel
        %186 = OpLoad %9 %69
               OpReturnValue %186
               OpFunctionEnd
END

# uniforms for variant

# resolution
BUFFER variant_resolution DATA_TYPE vec2<float> DATA
 256.0 256.0
END

BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM

PIPELINE graphics variant_pipeline
  ATTACH variant_vertex_shader
  ATTACH variant_fragment_shader
  FRAMEBUFFER_SIZE 256 256
  BIND BUFFER variant_framebuffer AS color LOCATION 0
  BIND BUFFER variant_resolution AS uniform DESCRIPTOR_SET 0 BINDING 0
END
CLEAR_COLOR variant_pipeline 0 0 0 255

CLEAR variant_pipeline
RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256

EXPECT reference_framebuffer EQ_HISTOGRAM_EMD_BUFFER variant_framebuffer TOLERANCE 0.005
