#!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 nested conditional float in clamp

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

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;
# };
# float cross2d(vec2 a, vec2 b)
# {
#     return ((a.x) * (b.y) - (b.x) * (a.y));
# }
# int pointInTriangle(vec2 p, vec2 a, vec2 b, vec2 c)
# {
#     float pab = cross2d(vec2(p.x - a.x, p.y - a.y), vec2(b.x - a.x, b.y - a.y));
#     float pbc = cross2d(vec2(p.x - b.x, p.y - b.y), vec2(c.x - b.x, c.y - b.y));
#     if (!((pab < 0.0 && pbc < 0.0) || (pab >= 0.0 && pbc >= 0.0)))
#     {
#         return 0;
#     }
#     float pca = cross2d(vec2(p.x - c.x, p.y - c.y), vec2(a.x - c.x, a.y - c.y));
#     if (!((pab < 0.0 && pca < 0.0) || (pab >= 0.0 && pca >= 0.0)))
#     {
#         return 0;
#     }
#     return 1;
# }
# void main()
# {
#     vec2 pos = gl_FragCoord.xy / resolution;
#     if (pointInTriangle(pos, vec2(0.7, 0.3), vec2(0.5, 0.9), vec2(0.1, 0.4)) == 1)
#     {
#         _GLF_color = vec4(1.0, 0.0, 0.0, 1.0);
#     }
#     else
#     {
#         _GLF_color = vec4(0.0, 0.0, 0.0, 1.0);
#     }
# }
SHADER fragment reference_fragment_shader SPIRV-ASM TARGET_ENV spv1.0
; SPIR-V
; Version: 1.0
; Generator: Khronos Glslang Reference Front End; 10
; Bound: 196
; Schema: 0
               OpCapability Shader
          %1 = OpExtInstImport "GLSL.std.450"
               OpMemoryModel Logical GLSL450
               OpEntryPoint Fragment %4 "main" %162 %191
               OpExecutionMode %4 OriginUpperLeft
               OpSource ESSL 320
               OpName %4 "main"
               OpName %12 "cross2d(vf2;vf2;"
               OpName %10 "a"
               OpName %11 "b"
               OpName %20 "pointInTriangle(vf2;vf2;vf2;vf2;"
               OpName %16 "p"
               OpName %17 "a"
               OpName %18 "b"
               OpName %19 "c"
               OpName %39 "pab"
               OpName %62 "param"
               OpName %63 "param"
               OpName %65 "pbc"
               OpName %88 "param"
               OpName %89 "param"
               OpName %112 "pca"
               OpName %135 "param"
               OpName %136 "param"
               OpName %159 "pos"
               OpName %162 "gl_FragCoord"
               OpName %165 "buf0"
               OpMemberName %165 0 "resolution"
               OpName %167 ""
               OpName %181 "param"
               OpName %183 "param"
               OpName %184 "param"
               OpName %185 "param"
               OpName %191 "_GLF_color"
               OpDecorate %162 BuiltIn FragCoord
               OpMemberDecorate %165 0 Offset 0
               OpDecorate %165 Block
               OpDecorate %167 DescriptorSet 0
               OpDecorate %167 Binding 0
               OpDecorate %191 Location 0
          %2 = OpTypeVoid
          %3 = OpTypeFunction %2
          %6 = OpTypeFloat 32
          %7 = OpTypeVector %6 2
          %8 = OpTypePointer Function %7
          %9 = OpTypeFunction %6 %8 %8
         %14 = OpTypeInt 32 1
         %15 = OpTypeFunction %14 %8 %8 %8 %8
         %22 = OpTypeInt 32 0
         %23 = OpConstant %22 0
         %24 = OpTypePointer Function %6
         %27 = OpConstant %22 1
         %91 = OpTypeBool
         %93 = OpConstant %6 0
        %110 = OpConstant %14 0
        %156 = OpConstant %14 1
        %160 = OpTypeVector %6 4
        %161 = OpTypePointer Input %160
        %162 = OpVariable %161 Input
        %165 = OpTypeStruct %7
        %166 = OpTypePointer Uniform %165
        %167 = OpVariable %166 Uniform
        %168 = OpTypePointer Uniform %7
        %172 = OpConstant %6 0.699999988
        %173 = OpConstant %6 0.300000012
        %174 = OpConstantComposite %7 %172 %173
        %175 = OpConstant %6 0.5
        %176 = OpConstant %6 0.899999976
        %177 = OpConstantComposite %7 %175 %176
        %178 = OpConstant %6 0.100000001
        %179 = OpConstant %6 0.400000006
        %180 = OpConstantComposite %7 %178 %179
        %190 = OpTypePointer Output %160
        %191 = OpVariable %190 Output
        %192 = OpConstant %6 1
        %193 = OpConstantComposite %160 %192 %93 %93 %192
        %195 = OpConstantComposite %160 %93 %93 %93 %192
          %4 = OpFunction %2 None %3
          %5 = OpLabel
        %159 = OpVariable %8 Function
        %181 = OpVariable %8 Function
        %183 = OpVariable %8 Function
        %184 = OpVariable %8 Function
        %185 = OpVariable %8 Function
        %163 = OpLoad %160 %162
        %164 = OpVectorShuffle %7 %163 %163 0 1
        %169 = OpAccessChain %168 %167 %110
        %170 = OpLoad %7 %169
        %171 = OpFDiv %7 %164 %170
               OpStore %159 %171
        %182 = OpLoad %7 %159
               OpStore %181 %182
               OpStore %183 %174
               OpStore %184 %177
               OpStore %185 %180
        %186 = OpFunctionCall %14 %20 %181 %183 %184 %185
        %187 = OpIEqual %91 %186 %156
               OpSelectionMerge %189 None
               OpBranchConditional %187 %188 %194
        %188 = OpLabel
               OpStore %191 %193
               OpBranch %189
        %194 = OpLabel
               OpStore %191 %195
               OpBranch %189
        %189 = OpLabel
               OpReturn
               OpFunctionEnd
         %12 = OpFunction %6 None %9
         %10 = OpFunctionParameter %8
         %11 = OpFunctionParameter %8
         %13 = OpLabel
         %25 = OpAccessChain %24 %10 %23
         %26 = OpLoad %6 %25
         %28 = OpAccessChain %24 %11 %27
         %29 = OpLoad %6 %28
         %30 = OpFMul %6 %26 %29
         %31 = OpAccessChain %24 %11 %23
         %32 = OpLoad %6 %31
         %33 = OpAccessChain %24 %10 %27
         %34 = OpLoad %6 %33
         %35 = OpFMul %6 %32 %34
         %36 = OpFSub %6 %30 %35
               OpReturnValue %36
               OpFunctionEnd
         %20 = OpFunction %14 None %15
         %16 = OpFunctionParameter %8
         %17 = OpFunctionParameter %8
         %18 = OpFunctionParameter %8
         %19 = OpFunctionParameter %8
         %21 = OpLabel
         %39 = OpVariable %24 Function
         %62 = OpVariable %8 Function
         %63 = OpVariable %8 Function
         %65 = OpVariable %24 Function
         %88 = OpVariable %8 Function
         %89 = OpVariable %8 Function
        %112 = OpVariable %24 Function
        %135 = OpVariable %8 Function
        %136 = OpVariable %8 Function
         %40 = OpAccessChain %24 %16 %23
         %41 = OpLoad %6 %40
         %42 = OpAccessChain %24 %17 %23
         %43 = OpLoad %6 %42
         %44 = OpFSub %6 %41 %43
         %45 = OpAccessChain %24 %16 %27
         %46 = OpLoad %6 %45
         %47 = OpAccessChain %24 %17 %27
         %48 = OpLoad %6 %47
         %49 = OpFSub %6 %46 %48
         %50 = OpCompositeConstruct %7 %44 %49
         %51 = OpAccessChain %24 %18 %23
         %52 = OpLoad %6 %51
         %53 = OpAccessChain %24 %17 %23
         %54 = OpLoad %6 %53
         %55 = OpFSub %6 %52 %54
         %56 = OpAccessChain %24 %18 %27
         %57 = OpLoad %6 %56
         %58 = OpAccessChain %24 %17 %27
         %59 = OpLoad %6 %58
         %60 = OpFSub %6 %57 %59
         %61 = OpCompositeConstruct %7 %55 %60
               OpStore %62 %50
               OpStore %63 %61
         %64 = OpFunctionCall %6 %12 %62 %63
               OpStore %39 %64
         %66 = OpAccessChain %24 %16 %23
         %67 = OpLoad %6 %66
         %68 = OpAccessChain %24 %18 %23
         %69 = OpLoad %6 %68
         %70 = OpFSub %6 %67 %69
         %71 = OpAccessChain %24 %16 %27
         %72 = OpLoad %6 %71
         %73 = OpAccessChain %24 %18 %27
         %74 = OpLoad %6 %73
         %75 = OpFSub %6 %72 %74
         %76 = OpCompositeConstruct %7 %70 %75
         %77 = OpAccessChain %24 %19 %23
         %78 = OpLoad %6 %77
         %79 = OpAccessChain %24 %18 %23
         %80 = OpLoad %6 %79
         %81 = OpFSub %6 %78 %80
         %82 = OpAccessChain %24 %19 %27
         %83 = OpLoad %6 %82
         %84 = OpAccessChain %24 %18 %27
         %85 = OpLoad %6 %84
         %86 = OpFSub %6 %83 %85
         %87 = OpCompositeConstruct %7 %81 %86
               OpStore %88 %76
               OpStore %89 %87
         %90 = OpFunctionCall %6 %12 %88 %89
               OpStore %65 %90
         %92 = OpLoad %6 %39
         %94 = OpFOrdLessThan %91 %92 %93
         %95 = OpLoad %6 %65
         %96 = OpFOrdLessThan %91 %95 %93
         %97 = OpLogicalAnd %91 %94 %96
         %98 = OpLogicalNot %91 %97
               OpSelectionMerge %100 None
               OpBranchConditional %98 %99 %100
         %99 = OpLabel
        %101 = OpLoad %6 %39
        %102 = OpFOrdGreaterThanEqual %91 %101 %93
        %103 = OpLoad %6 %65
        %104 = OpFOrdGreaterThanEqual %91 %103 %93
        %105 = OpLogicalAnd %91 %102 %104
               OpBranch %100
        %100 = OpLabel
        %106 = OpPhi %91 %97 %21 %105 %99
        %107 = OpLogicalNot %91 %106
               OpSelectionMerge %109 None
               OpBranchConditional %107 %108 %109
        %108 = OpLabel
               OpReturnValue %110
        %109 = OpLabel
        %113 = OpAccessChain %24 %16 %23
        %114 = OpLoad %6 %113
        %115 = OpAccessChain %24 %19 %23
        %116 = OpLoad %6 %115
        %117 = OpFSub %6 %114 %116
        %118 = OpAccessChain %24 %16 %27
        %119 = OpLoad %6 %118
        %120 = OpAccessChain %24 %19 %27
        %121 = OpLoad %6 %120
        %122 = OpFSub %6 %119 %121
        %123 = OpCompositeConstruct %7 %117 %122
        %124 = OpAccessChain %24 %17 %23
        %125 = OpLoad %6 %124
        %126 = OpAccessChain %24 %19 %23
        %127 = OpLoad %6 %126
        %128 = OpFSub %6 %125 %127
        %129 = OpAccessChain %24 %17 %27
        %130 = OpLoad %6 %129
        %131 = OpAccessChain %24 %19 %27
        %132 = OpLoad %6 %131
        %133 = OpFSub %6 %130 %132
        %134 = OpCompositeConstruct %7 %128 %133
               OpStore %135 %123
               OpStore %136 %134
        %137 = OpFunctionCall %6 %12 %135 %136
               OpStore %112 %137
        %138 = OpLoad %6 %39
        %139 = OpFOrdLessThan %91 %138 %93
        %140 = OpLoad %6 %112
        %141 = OpFOrdLessThan %91 %140 %93
        %142 = OpLogicalAnd %91 %139 %141
        %143 = OpLogicalNot %91 %142
               OpSelectionMerge %145 None
               OpBranchConditional %143 %144 %145
        %144 = OpLabel
        %146 = OpLoad %6 %39
        %147 = OpFOrdGreaterThanEqual %91 %146 %93
        %148 = OpLoad %6 %112
        %149 = OpFOrdGreaterThanEqual %91 %148 %93
        %150 = OpLogicalAnd %91 %147 %149
               OpBranch %145
        %145 = OpLabel
        %151 = OpPhi %91 %142 %109 %150 %144
        %152 = OpLogicalNot %91 %151
               OpSelectionMerge %154 None
               OpBranchConditional %152 %153 %154
        %153 = OpLabel
               OpReturnValue %110
        %154 = OpLabel
               OpReturnValue %156
               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(push_constant) uniform buf_push
# {
#     vec2 injectionSwitch;   // x == 0.0, y == 1.0
# };
# layout(location = 0) out vec4 _GLF_color;
#
# layout(set = 0, binding = 0) uniform buf0
# {
#     vec2 resolution;
# };
# float cross2d(vec2 a, vec2 b)
# {
#     return ((a.x) * (b.y) - (b.x) * (a.y));
# }
# int pointInTriangle(vec2 p, vec2 a, vec2 b, vec2 c)
# {
#     float pab = cross2d(vec2(p.x - a.x, p.y - a.y), vec2(b.x - a.x, b.y - a.y));
#     float pbc = cross2d(vec2(p.x - b.x, p.y - b.y), vec2(c.x - b.x, c.y - b.y));
#     if (!((pab < 0.0 && pbc < 0.0) || (pab >= 0.0 && pbc >= 0.0)))
#     {
#         return 0;
#     }
#     float pca = cross2d(vec2(p.x - c.x, p.y - c.y), vec2(a.x - c.x, a.y - c.y));
#     if (!((pab < 0.0 && pca < 0.0) || (pab >= 0.0 && pca >= 0.0)))
#     {
#         return 0;
#     }
#     return 1;
# }
# void main()
# {
#     // float_b == 0.4
#     float float_b = ((gl_FragCoord.x >= 0.0) ? (true ? 0.4 : (float(injectionSwitch.y))) : (-1.0));
#     // float_a == 0.4
#     float float_a = (float(clamp(0.4, 0.4, float_b)));
#     vec2 pos = gl_FragCoord.xy / resolution;
#     if ((pointInTriangle(pos, vec2(0.7, 0.3), vec2(0.5, 0.9), vec2(0.1, float_a))) == 1)
#     {
#         _GLF_color = vec4(1.0, 0.0, 0.0, 1.0);
#     }
#     else
#     {
#         _GLF_color = vec4(0.0, 0.0, 0.0, 1.0);
#     }
# }
SHADER fragment variant_fragment_shader SPIRV-ASM TARGET_ENV spv1.0
; SPIR-V
; Version: 1.0
; Generator: Khronos Glslang Reference Front End; 10
; Bound: 223
; Schema: 0
               OpCapability Shader
          %1 = OpExtInstImport "GLSL.std.450"
               OpMemoryModel Logical GLSL450
               OpEntryPoint Fragment %4 "main" %162 %218
               OpExecutionMode %4 OriginUpperLeft
               OpSource ESSL 320
               OpName %4 "main"
               OpName %12 "cross2d(vf2;vf2;"
               OpName %10 "a"
               OpName %11 "b"
               OpName %20 "pointInTriangle(vf2;vf2;vf2;vf2;"
               OpName %16 "p"
               OpName %17 "a"
               OpName %18 "b"
               OpName %19 "c"
               OpName %39 "pab"
               OpName %62 "param"
               OpName %63 "param"
               OpName %65 "pbc"
               OpName %88 "param"
               OpName %89 "param"
               OpName %112 "pca"
               OpName %135 "param"
               OpName %136 "param"
               OpName %159 "float_b"
               OpName %162 "gl_FragCoord"
               OpName %176 "buf_push"
               OpMemberName %176 0 "injectionSwitch"
               OpName %178 ""
               OpName %186 "float_a"
               OpName %189 "pos"
               OpName %192 "buf0"
               OpMemberName %192 0 "resolution"
               OpName %194 ""
               OpName %208 "param"
               OpName %210 "param"
               OpName %211 "param"
               OpName %212 "param"
               OpName %218 "_GLF_color"
               OpDecorate %162 BuiltIn FragCoord
               OpMemberDecorate %176 0 Offset 0
               OpDecorate %176 Block
               OpMemberDecorate %192 0 Offset 0
               OpDecorate %192 Block
               OpDecorate %194 DescriptorSet 0
               OpDecorate %194 Binding 0
               OpDecorate %218 Location 0
          %2 = OpTypeVoid
          %3 = OpTypeFunction %2
          %6 = OpTypeFloat 32
          %7 = OpTypeVector %6 2
          %8 = OpTypePointer Function %7
          %9 = OpTypeFunction %6 %8 %8
         %14 = OpTypeInt 32 1
         %15 = OpTypeFunction %14 %8 %8 %8 %8
         %22 = OpTypeInt 32 0
         %23 = OpConstant %22 0
         %24 = OpTypePointer Function %6
         %27 = OpConstant %22 1
         %91 = OpTypeBool
         %93 = OpConstant %6 0
        %110 = OpConstant %14 0
        %156 = OpConstant %14 1
        %160 = OpTypeVector %6 4
        %161 = OpTypePointer Input %160
        %162 = OpVariable %161 Input
        %163 = OpTypePointer Input %6
        %170 = OpConstantTrue %91
        %174 = OpConstant %6 0.400000006
        %176 = OpTypeStruct %7
        %177 = OpTypePointer PushConstant %176
        %178 = OpVariable %177 PushConstant
        %179 = OpTypePointer PushConstant %6
        %184 = OpConstant %6 -1
        %192 = OpTypeStruct %7
        %193 = OpTypePointer Uniform %192
        %194 = OpVariable %193 Uniform
        %195 = OpTypePointer Uniform %7
        %199 = OpConstant %6 0.699999988
        %200 = OpConstant %6 0.300000012
        %201 = OpConstantComposite %7 %199 %200
        %202 = OpConstant %6 0.5
        %203 = OpConstant %6 0.899999976
        %204 = OpConstantComposite %7 %202 %203
        %205 = OpConstant %6 0.100000001
        %217 = OpTypePointer Output %160
        %218 = OpVariable %217 Output
        %219 = OpConstant %6 1
        %220 = OpConstantComposite %160 %219 %93 %93 %219
        %222 = OpConstantComposite %160 %93 %93 %93 %219
          %4 = OpFunction %2 None %3
          %5 = OpLabel
        %159 = OpVariable %24 Function
        %167 = OpVariable %24 Function
        %171 = OpVariable %24 Function
        %186 = OpVariable %24 Function
        %189 = OpVariable %8 Function
        %208 = OpVariable %8 Function
        %210 = OpVariable %8 Function
        %211 = OpVariable %8 Function
        %212 = OpVariable %8 Function
        %164 = OpAccessChain %163 %162 %23
        %165 = OpLoad %6 %164
        %166 = OpFOrdGreaterThanEqual %91 %165 %93
               OpSelectionMerge %169 None
               OpBranchConditional %166 %168 %183
        %168 = OpLabel
               OpSelectionMerge %173 None
               OpBranchConditional %170 %172 %175
        %172 = OpLabel
               OpStore %171 %174
               OpBranch %173
        %175 = OpLabel
        %180 = OpAccessChain %179 %178 %110 %27
        %181 = OpLoad %6 %180
               OpStore %171 %181
               OpBranch %173
        %173 = OpLabel
        %182 = OpLoad %6 %171
               OpStore %167 %182
               OpBranch %169
        %183 = OpLabel
               OpStore %167 %184
               OpBranch %169
        %169 = OpLabel
        %185 = OpLoad %6 %167
               OpStore %159 %185
        %187 = OpLoad %6 %159
        %188 = OpExtInst %6 %1 FClamp %174 %174 %187
               OpStore %186 %188
        %190 = OpLoad %160 %162
        %191 = OpVectorShuffle %7 %190 %190 0 1
        %196 = OpAccessChain %195 %194 %110
        %197 = OpLoad %7 %196
        %198 = OpFDiv %7 %191 %197
               OpStore %189 %198
        %206 = OpLoad %6 %186
        %207 = OpCompositeConstruct %7 %205 %206
        %209 = OpLoad %7 %189
               OpStore %208 %209
               OpStore %210 %201
               OpStore %211 %204
               OpStore %212 %207
        %213 = OpFunctionCall %14 %20 %208 %210 %211 %212
        %214 = OpIEqual %91 %213 %156
               OpSelectionMerge %216 None
               OpBranchConditional %214 %215 %221
        %215 = OpLabel
               OpStore %218 %220
               OpBranch %216
        %221 = OpLabel
               OpStore %218 %222
               OpBranch %216
        %216 = OpLabel
               OpReturn
               OpFunctionEnd
         %12 = OpFunction %6 None %9
         %10 = OpFunctionParameter %8
         %11 = OpFunctionParameter %8
         %13 = OpLabel
         %25 = OpAccessChain %24 %10 %23
         %26 = OpLoad %6 %25
         %28 = OpAccessChain %24 %11 %27
         %29 = OpLoad %6 %28
         %30 = OpFMul %6 %26 %29
         %31 = OpAccessChain %24 %11 %23
         %32 = OpLoad %6 %31
         %33 = OpAccessChain %24 %10 %27
         %34 = OpLoad %6 %33
         %35 = OpFMul %6 %32 %34
         %36 = OpFSub %6 %30 %35
               OpReturnValue %36
               OpFunctionEnd
         %20 = OpFunction %14 None %15
         %16 = OpFunctionParameter %8
         %17 = OpFunctionParameter %8
         %18 = OpFunctionParameter %8
         %19 = OpFunctionParameter %8
         %21 = OpLabel
         %39 = OpVariable %24 Function
         %62 = OpVariable %8 Function
         %63 = OpVariable %8 Function
         %65 = OpVariable %24 Function
         %88 = OpVariable %8 Function
         %89 = OpVariable %8 Function
        %112 = OpVariable %24 Function
        %135 = OpVariable %8 Function
        %136 = OpVariable %8 Function
         %40 = OpAccessChain %24 %16 %23
         %41 = OpLoad %6 %40
         %42 = OpAccessChain %24 %17 %23
         %43 = OpLoad %6 %42
         %44 = OpFSub %6 %41 %43
         %45 = OpAccessChain %24 %16 %27
         %46 = OpLoad %6 %45
         %47 = OpAccessChain %24 %17 %27
         %48 = OpLoad %6 %47
         %49 = OpFSub %6 %46 %48
         %50 = OpCompositeConstruct %7 %44 %49
         %51 = OpAccessChain %24 %18 %23
         %52 = OpLoad %6 %51
         %53 = OpAccessChain %24 %17 %23
         %54 = OpLoad %6 %53
         %55 = OpFSub %6 %52 %54
         %56 = OpAccessChain %24 %18 %27
         %57 = OpLoad %6 %56
         %58 = OpAccessChain %24 %17 %27
         %59 = OpLoad %6 %58
         %60 = OpFSub %6 %57 %59
         %61 = OpCompositeConstruct %7 %55 %60
               OpStore %62 %50
               OpStore %63 %61
         %64 = OpFunctionCall %6 %12 %62 %63
               OpStore %39 %64
         %66 = OpAccessChain %24 %16 %23
         %67 = OpLoad %6 %66
         %68 = OpAccessChain %24 %18 %23
         %69 = OpLoad %6 %68
         %70 = OpFSub %6 %67 %69
         %71 = OpAccessChain %24 %16 %27
         %72 = OpLoad %6 %71
         %73 = OpAccessChain %24 %18 %27
         %74 = OpLoad %6 %73
         %75 = OpFSub %6 %72 %74
         %76 = OpCompositeConstruct %7 %70 %75
         %77 = OpAccessChain %24 %19 %23
         %78 = OpLoad %6 %77
         %79 = OpAccessChain %24 %18 %23
         %80 = OpLoad %6 %79
         %81 = OpFSub %6 %78 %80
         %82 = OpAccessChain %24 %19 %27
         %83 = OpLoad %6 %82
         %84 = OpAccessChain %24 %18 %27
         %85 = OpLoad %6 %84
         %86 = OpFSub %6 %83 %85
         %87 = OpCompositeConstruct %7 %81 %86
               OpStore %88 %76
               OpStore %89 %87
         %90 = OpFunctionCall %6 %12 %88 %89
               OpStore %65 %90
         %92 = OpLoad %6 %39
         %94 = OpFOrdLessThan %91 %92 %93
         %95 = OpLoad %6 %65
         %96 = OpFOrdLessThan %91 %95 %93
         %97 = OpLogicalAnd %91 %94 %96
         %98 = OpLogicalNot %91 %97
               OpSelectionMerge %100 None
               OpBranchConditional %98 %99 %100
         %99 = OpLabel
        %101 = OpLoad %6 %39
        %102 = OpFOrdGreaterThanEqual %91 %101 %93
        %103 = OpLoad %6 %65
        %104 = OpFOrdGreaterThanEqual %91 %103 %93
        %105 = OpLogicalAnd %91 %102 %104
               OpBranch %100
        %100 = OpLabel
        %106 = OpPhi %91 %97 %21 %105 %99
        %107 = OpLogicalNot %91 %106
               OpSelectionMerge %109 None
               OpBranchConditional %107 %108 %109
        %108 = OpLabel
               OpReturnValue %110
        %109 = OpLabel
        %113 = OpAccessChain %24 %16 %23
        %114 = OpLoad %6 %113
        %115 = OpAccessChain %24 %19 %23
        %116 = OpLoad %6 %115
        %117 = OpFSub %6 %114 %116
        %118 = OpAccessChain %24 %16 %27
        %119 = OpLoad %6 %118
        %120 = OpAccessChain %24 %19 %27
        %121 = OpLoad %6 %120
        %122 = OpFSub %6 %119 %121
        %123 = OpCompositeConstruct %7 %117 %122
        %124 = OpAccessChain %24 %17 %23
        %125 = OpLoad %6 %124
        %126 = OpAccessChain %24 %19 %23
        %127 = OpLoad %6 %126
        %128 = OpFSub %6 %125 %127
        %129 = OpAccessChain %24 %17 %27
        %130 = OpLoad %6 %129
        %131 = OpAccessChain %24 %19 %27
        %132 = OpLoad %6 %131
        %133 = OpFSub %6 %130 %132
        %134 = OpCompositeConstruct %7 %128 %133
               OpStore %135 %123
               OpStore %136 %134
        %137 = OpFunctionCall %6 %12 %135 %136
               OpStore %112 %137
        %138 = OpLoad %6 %39
        %139 = OpFOrdLessThan %91 %138 %93
        %140 = OpLoad %6 %112
        %141 = OpFOrdLessThan %91 %140 %93
        %142 = OpLogicalAnd %91 %139 %141
        %143 = OpLogicalNot %91 %142
               OpSelectionMerge %145 None
               OpBranchConditional %143 %144 %145
        %144 = OpLabel
        %146 = OpLoad %6 %39
        %147 = OpFOrdGreaterThanEqual %91 %146 %93
        %148 = OpLoad %6 %112
        %149 = OpFOrdGreaterThanEqual %91 %148 %93
        %150 = OpLogicalAnd %91 %147 %149
               OpBranch %145
        %145 = OpLabel
        %151 = OpPhi %91 %142 %109 %150 %144
        %152 = OpLogicalNot %91 %151
               OpSelectionMerge %154 None
               OpBranchConditional %152 %153 %154
        %153 = OpLabel
               OpReturnValue %110
        %154 = OpLabel
               OpReturnValue %156
               OpFunctionEnd
END

# uniforms for variant

# resolution
BUFFER variant_resolution DATA_TYPE vec2<float> DATA
 256.0 256.0
END
# injectionSwitch
BUFFER variant_injectionSwitch DATA_TYPE vec2<float> DATA
 0.0 1.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
  BIND BUFFER variant_injectionSwitch AS push_constant
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
