; SPIR-V
; Version: 1.0
; Generator: Khronos Glslang Reference Front End; 6
; Bound: 51
; Schema: 0
               OpCapability Shader
               OpCapability Sampled1D
          %1 = OpExtInstImport "GLSL.std.450"
               OpMemoryModel Logical GLSL450
               OpEntryPoint Fragment %main "main" %out_color %vtx_color %vtx_uv
               OpExecutionMode %main OriginUpperLeft
               OpSource GLSL 450
               OpName %main "main"
               OpName %out_color "out_color"
               OpName %vtx_color "vtx_color"
               OpName %PushConstants "PushConstants"
               OpMemberName %PushConstants 0 "restrict_texture_samples"
               OpName %push_constants "push_constants"
               OpName %vtx_uv "vtx_uv"
               OpName %texture_sampler "texture_sampler"
               OpDecorate %out_color Location 0
               OpDecorate %vtx_color Location 1
               OpMemberDecorate %PushConstants 0 Offset 64
               OpDecorate %PushConstants Block
               OpDecorate %vtx_uv Location 0
               OpDecorate %texture_sampler DescriptorSet 0
               OpDecorate %texture_sampler Binding 0
       %void = OpTypeVoid
          %3 = OpTypeFunction %void
      %float = OpTypeFloat 32
    %v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
  %out_color = OpVariable %_ptr_Output_v4float Output
%_ptr_Input_v4float = OpTypePointer Input %v4float
  %vtx_color = OpVariable %_ptr_Input_v4float Input
       %bool = OpTypeBool
        %int = OpTypeInt 32 1
%PushConstants = OpTypeStruct %int
%_ptr_PushConstant_PushConstants = OpTypePointer PushConstant %PushConstants
%push_constants = OpVariable %_ptr_PushConstant_PushConstants PushConstant
      %int_0 = OpConstant %int 0
%_ptr_PushConstant_int = OpTypePointer PushConstant %int
    %v2float = OpTypeVector %float 2
%_ptr_Input_v2float = OpTypePointer Input %v2float
     %vtx_uv = OpVariable %_ptr_Input_v2float Input
       %uint = OpTypeInt 32 0
     %uint_0 = OpConstant %uint 0
%_ptr_Input_float = OpTypePointer Input %float
    %float_1 = OpConstant %float 1
         %41 = OpTypeImage %float 2D 0 0 0 1 Unknown
         %42 = OpTypeSampledImage %41
%_ptr_UniformConstant_42 = OpTypePointer UniformConstant %42
%texture_sampler = OpVariable %_ptr_UniformConstant_42 UniformConstant
       %main = OpFunction %void None %3
          %5 = OpLabel
         %12 = OpLoad %v4float %vtx_color
               OpStore %out_color %12
         %20 = OpAccessChain %_ptr_PushConstant_int %push_constants %int_0
         %21 = OpLoad %int %20
         %22 = OpIEqual %bool %21 %int_0
         %23 = OpLogicalNot %bool %22
               OpSelectionMerge %25 None
               OpBranchConditional %23 %24 %25
         %24 = OpLabel
         %32 = OpAccessChain %_ptr_Input_float %vtx_uv %uint_0
         %33 = OpLoad %float %32
         %35 = OpFOrdLessThanEqual %bool %33 %float_1
               OpBranch %25
         %25 = OpLabel
         %36 = OpPhi %bool %22 %5 %35 %24
               OpSelectionMerge %38 None
               OpBranchConditional %36 %37 %38
         %37 = OpLabel
         %45 = OpLoad %42 %texture_sampler
         %46 = OpLoad %v2float %vtx_uv
         %47 = OpImageSampleImplicitLod %v4float %45 %46
         %49 = OpLoad %v4float %out_color
         %50 = OpFMul %v4float %49 %47
               OpStore %out_color %50
               OpBranch %38
         %38 = OpLabel
               OpReturn
               OpFunctionEnd
