#!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 the GraphicsFuzz project.

# Short description: Equivalent shaders, one that uses null for 0 and an Unroll annotation

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

SHADER vertex reference_vertex_shader PASSTHROUGH

SHADER fragment reference_fragment_shader SPIRV-ASM TARGET_ENV spv1.0
; SPIR-V
; Version: 1.0
; Generator: Khronos Glslang Reference Front End; 7
; Bound: 295
; 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 %165 "gl_FragCoord"
               OpName %168 "buf0"
               OpMemberName %168 0 "resolution"
               OpName %170 ""
               OpName %180 "_GLF_color"
               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
          %9 = OpTypeVector %6 4
         %10 = OpTypePointer Function %9
         %11 = OpTypeBool
         %21 = OpTypeInt 32 0
         %22 = OpConstant %21 0
         %23 = OpTypePointer Function %6
         %31 = OpConstantFalse %11
         %33 = OpConstant %21 1
         %66 = OpConstantTrue %11
         %70 = OpConstant %6 0.5
         %71 = OpConstant %6 1
         %72 = OpConstantComposite %9 %70 %70 %71 %71
         %73 = OpTypeInt 32 1
         %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
          %4 = OpFunction %2 None %3
          %5 = OpLabel
        %199 = OpVariable %108 Function
        %200 = OpVariable %108 Function
        %201 = OpVariable %108 Function
        %202 = OpVariable %153 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
        %177 = OpVectorTimesScalar %7 %174 %176
        %178 = OpExtInst %7 %1 Floor %177
               OpBranch %205
        %205 = OpLabel
        %290 = OpPhi %9 %72 %5 %294 %233
        %289 = OpPhi %73 %76 %5 %235 %233
        %208 = OpSLessThan %11 %289 %83
               OpLoopMerge %236 %233 None
               OpBranchConditional %208 %209 %236
        %209 = OpLabel
               OpStore %199 %103
        %212 = OpAccessChain %10 %199 %289
        %213 = OpLoad %9 %212
               OpSelectionMerge %277 None
               OpSwitch %22 %242
        %242 = OpLabel
        %244 = OpCompositeExtract %6 %178 0
        %246 = OpCompositeExtract %6 %213 0
        %247 = OpFOrdLessThan %11 %244 %246
               OpSelectionMerge %249 None
               OpBranchConditional %247 %248 %249
        %248 = OpLabel
               OpBranch %277
        %249 = OpLabel
        %251 = OpCompositeExtract %6 %178 1
        %253 = OpCompositeExtract %6 %213 1
        %254 = OpFOrdLessThan %11 %251 %253
               OpSelectionMerge %256 None
               OpBranchConditional %254 %255 %256
        %255 = OpLabel
               OpBranch %277
        %256 = OpLabel
        %262 = OpCompositeExtract %6 %213 2
        %263 = OpFAdd %6 %246 %262
        %264 = OpFOrdGreaterThan %11 %244 %263
               OpSelectionMerge %266 None
               OpBranchConditional %264 %265 %266
        %265 = OpLabel
               OpBranch %277
        %266 = OpLabel
        %272 = OpCompositeExtract %6 %213 3
        %273 = OpFAdd %6 %253 %272
        %274 = OpFOrdGreaterThan %11 %251 %273
               OpSelectionMerge %276 None
               OpBranchConditional %274 %275 %276
        %275 = OpLabel
               OpBranch %277
        %276 = OpLabel
               OpBranch %277
        %277 = OpLabel
        %291 = OpPhi %11 %31 %248 %31 %255 %31 %265 %31 %275 %66 %276
               OpSelectionMerge %232 None
               OpBranchConditional %291 %215 %232
        %215 = OpLabel
               OpStore %200 %103
        %217 = OpAccessChain %23 %200 %289 %22
        %218 = OpLoad %6 %217
        %219 = OpConvertFToS %73 %218
               OpStore %201 %103
        %221 = OpAccessChain %23 %201 %289 %33
        %222 = OpLoad %6 %221
        %223 = OpConvertFToS %73 %222
        %224 = OpIMul %73 %219 %223
        %226 = OpIMul %73 %289 %146
        %227 = OpIAdd %73 %224 %226
        %228 = OpIAdd %73 %227 %149
        %229 = OpSMod %73 %228 %151
               OpStore %202 %133
        %230 = OpAccessChain %10 %202 %229
        %231 = OpLoad %9 %230
               OpBranch %232
        %232 = OpLabel
        %294 = OpPhi %9 %290 %277 %231 %215
               OpBranch %233
        %233 = OpLabel
        %235 = OpIAdd %73 %289 %158
               OpBranch %205
        %236 = OpLabel
               OpStore %180 %290
               OpReturn
               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

SHADER fragment variant_fragment_shader SPIRV-ASM TARGET_ENV spv1.0
; SPIR-V
; Version: 1.0
; Generator: Khronos Glslang Reference Front End; 7
; Bound: 426
; 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 %165 "gl_FragCoord"
               OpName %168 "buf0"
               OpMemberName %168 0 "resolution"
               OpName %170 ""
               OpName %180 "_GLF_color"
               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
          %9 = OpTypeVector %6 4
         %10 = OpTypePointer Function %9
         %11 = OpTypeBool
         %21 = OpTypeInt 32 0
         %22 = OpConstant %21 0
         %23 = OpTypePointer Function %6
         %31 = OpConstantFalse %11
         %33 = OpConstant %21 1
         %66 = OpConstantTrue %11
         %70 = OpConstant %6 0.5
         %71 = OpConstant %6 1
         %72 = OpConstantComposite %9 %70 %70 %71 %71
         %73 = OpTypeInt 32 1
         %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
        %425 = OpConstantNull %73
          %4 = OpFunction %2 None %3
          %5 = OpLabel
        %199 = OpVariable %108 Function
        %200 = OpVariable %108 Function
        %201 = OpVariable %108 Function
        %202 = OpVariable %153 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
        %177 = OpVectorTimesScalar %7 %174 %176
        %178 = OpExtInst %7 %1 Floor %177
               OpBranch %205
        %205 = OpLabel
        %290 = OpPhi %9 %72 %5 %294 %233
        %289 = OpPhi %73 %425 %5 %235 %233
        %208 = OpSLessThan %11 %289 %83
               OpLoopMerge %236 %233 Unroll
               OpBranchConditional %208 %209 %236
        %209 = OpLabel
               OpStore %199 %103
        %212 = OpAccessChain %10 %199 %289
        %213 = OpLoad %9 %212
               OpSelectionMerge %277 None
               OpSwitch %22 %242
        %242 = OpLabel
        %244 = OpCompositeExtract %6 %178 0
        %246 = OpCompositeExtract %6 %213 0
        %247 = OpFOrdLessThan %11 %244 %246
               OpSelectionMerge %249 None
               OpBranchConditional %247 %248 %249
        %248 = OpLabel
               OpBranch %277
        %249 = OpLabel
        %251 = OpCompositeExtract %6 %178 1
        %253 = OpCompositeExtract %6 %213 1
        %254 = OpFOrdLessThan %11 %251 %253
               OpSelectionMerge %256 None
               OpBranchConditional %254 %255 %256
        %255 = OpLabel
               OpBranch %277
        %256 = OpLabel
        %262 = OpCompositeExtract %6 %213 2
        %263 = OpFAdd %6 %246 %262
        %264 = OpFOrdGreaterThan %11 %244 %263
               OpSelectionMerge %266 None
               OpBranchConditional %264 %265 %266
        %265 = OpLabel
               OpBranch %277
        %266 = OpLabel
        %272 = OpCompositeExtract %6 %213 3
        %273 = OpFAdd %6 %253 %272
        %274 = OpFOrdGreaterThan %11 %251 %273
               OpSelectionMerge %276 None
               OpBranchConditional %274 %275 %276
        %275 = OpLabel
               OpBranch %277
        %276 = OpLabel
               OpBranch %277
        %277 = OpLabel
        %291 = OpPhi %11 %31 %248 %31 %255 %31 %265 %31 %275 %66 %276
               OpSelectionMerge %232 None
               OpBranchConditional %291 %215 %232
        %215 = OpLabel
               OpStore %200 %103
        %217 = OpAccessChain %23 %200 %289 %22
        %218 = OpLoad %6 %217
        %219 = OpConvertFToS %73 %218
               OpStore %201 %103
        %221 = OpAccessChain %23 %201 %289 %33
        %222 = OpLoad %6 %221
        %223 = OpConvertFToS %73 %222
        %224 = OpIMul %73 %219 %223
        %226 = OpIMul %73 %289 %146
        %227 = OpIAdd %73 %224 %226
        %228 = OpIAdd %73 %227 %149
        %229 = OpSMod %73 %228 %151
               OpStore %202 %133
        %230 = OpAccessChain %10 %202 %229
        %231 = OpLoad %9 %230
               OpBranch %232
        %232 = OpLabel
        %294 = OpPhi %9 %290 %277 %231 %215
               OpBranch %233
        %233 = OpLabel
        %235 = OpIAdd %73 %289 %158
               OpBranch %205
        %236 = OpLabel
               OpStore %180 %290
               OpReturn
               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
