; SPIR-V
; Version: 1.0
; Generator: Khronos Glslang Reference Front End; 7
; Bound: 132
; Schema: 0
               OpCapability Shader
          %1 = OpExtInstImport "GLSL.std.450"
               OpMemoryModel Logical GLSL450
               OpEntryPoint Fragment %main "main" %A %B %FragColor
               OpExecutionMode %main OriginUpperLeft
               OpSource GLSL 450
               OpName %main "main"
               OpName %test_vector_ "test_vector("
               OpName %test_scalar_ "test_scalar("
               OpName %le "le"
               OpName %A "A"
               OpName %B "B"
               OpName %leq "leq"
               OpName %ge "ge"
               OpName %geq "geq"
               OpName %eq "eq"
               OpName %neq "neq"
               OpName %le_0 "le"
               OpName %leq_0 "leq"
               OpName %ge_0 "ge"
               OpName %geq_0 "geq"
               OpName %eq_0 "eq"
               OpName %neq_0 "neq"
               OpName %FragColor "FragColor"
               OpDecorate %A Location 0
               OpDecorate %B Location 1
               OpDecorate %FragColor Location 0
       %void = OpTypeVoid
          %3 = OpTypeFunction %void
      %float = OpTypeFloat 32
    %v4float = OpTypeVector %float 4
          %8 = OpTypeFunction %v4float
         %11 = OpTypeFunction %float
       %bool = OpTypeBool
     %v4bool = OpTypeVector %bool 4
%_ptr_Function_v4bool = OpTypePointer Function %v4bool
%_ptr_Input_v4float = OpTypePointer Input %v4float
          %A = OpVariable %_ptr_Input_v4float Input
          %B = OpVariable %_ptr_Input_v4float Input
    %float_0 = OpConstant %float 0
    %float_1 = OpConstant %float 1
         %47 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
         %48 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
%_ptr_Function_bool = OpTypePointer Function %bool
       %uint = OpTypeInt 32 0
     %uint_0 = OpConstant %uint 0
%_ptr_Input_float = OpTypePointer Input %float
%_ptr_Output_v4float = OpTypePointer Output %v4float
  %FragColor = OpVariable %_ptr_Output_v4float Output
       %main = OpFunction %void None %3
          %5 = OpLabel
        %128 = OpFunctionCall %v4float %test_vector_
        %129 = OpFunctionCall %float %test_scalar_
        %130 = OpCompositeConstruct %v4float %129 %129 %129 %129
        %131 = OpFAdd %v4float %128 %130
               OpStore %FragColor %131
               OpReturn
               OpFunctionEnd
%test_vector_ = OpFunction %v4float None %8
         %10 = OpLabel
         %le = OpVariable %_ptr_Function_v4bool Function
        %leq = OpVariable %_ptr_Function_v4bool Function
         %ge = OpVariable %_ptr_Function_v4bool Function
        %geq = OpVariable %_ptr_Function_v4bool Function
         %eq = OpVariable %_ptr_Function_v4bool Function
        %neq = OpVariable %_ptr_Function_v4bool Function
         %20 = OpLoad %v4float %A
         %22 = OpLoad %v4float %B
         %23 = OpFUnordLessThan %v4bool %20 %22
               OpStore %le %23
         %25 = OpLoad %v4float %A
         %26 = OpLoad %v4float %B
         %27 = OpFUnordLessThanEqual %v4bool %25 %26
               OpStore %leq %27
         %29 = OpLoad %v4float %A
         %30 = OpLoad %v4float %B
         %31 = OpFUnordGreaterThan %v4bool %29 %30
               OpStore %ge %31
         %33 = OpLoad %v4float %A
         %34 = OpLoad %v4float %B
         %35 = OpFUnordGreaterThanEqual %v4bool %33 %34
               OpStore %geq %35
         %37 = OpLoad %v4float %A
         %38 = OpLoad %v4float %B
         %39 = OpFUnordEqual %v4bool %37 %38
               OpStore %eq %39
         %41 = OpLoad %v4float %A
         %42 = OpLoad %v4float %B
         %43 = OpFUnordNotEqual %v4bool %41 %42
               OpStore %neq %43
         %ordered = OpFOrdNotEqual %v4bool %41 %42
               OpStore %neq %ordered
         %44 = OpLoad %v4bool %le
         %49 = OpSelect %v4float %44 %48 %47
         %50 = OpLoad %v4bool %leq
         %51 = OpSelect %v4float %50 %48 %47
         %52 = OpFAdd %v4float %49 %51
         %53 = OpLoad %v4bool %ge
         %54 = OpSelect %v4float %53 %48 %47
         %55 = OpFAdd %v4float %52 %54
         %56 = OpLoad %v4bool %geq
         %57 = OpSelect %v4float %56 %48 %47
         %58 = OpFAdd %v4float %55 %57
         %59 = OpLoad %v4bool %eq
         %60 = OpSelect %v4float %59 %48 %47
         %61 = OpFAdd %v4float %58 %60
         %62 = OpLoad %v4bool %neq
         %63 = OpSelect %v4float %62 %48 %47
         %64 = OpFAdd %v4float %61 %63
               OpReturnValue %64
               OpFunctionEnd
%test_scalar_ = OpFunction %float None %11
         %13 = OpLabel
       %le_0 = OpVariable %_ptr_Function_bool Function
      %leq_0 = OpVariable %_ptr_Function_bool Function
       %ge_0 = OpVariable %_ptr_Function_bool Function
      %geq_0 = OpVariable %_ptr_Function_bool Function
       %eq_0 = OpVariable %_ptr_Function_bool Function
      %neq_0 = OpVariable %_ptr_Function_bool Function
         %72 = OpAccessChain %_ptr_Input_float %A %uint_0
         %73 = OpLoad %float %72
         %74 = OpAccessChain %_ptr_Input_float %B %uint_0
         %75 = OpLoad %float %74
         %76 = OpFUnordLessThan %bool %73 %75
               OpStore %le_0 %76
         %78 = OpAccessChain %_ptr_Input_float %A %uint_0
         %79 = OpLoad %float %78
         %80 = OpAccessChain %_ptr_Input_float %B %uint_0
         %81 = OpLoad %float %80
         %82 = OpFUnordLessThanEqual %bool %79 %81
               OpStore %leq_0 %82
         %84 = OpAccessChain %_ptr_Input_float %A %uint_0
         %85 = OpLoad %float %84
         %86 = OpAccessChain %_ptr_Input_float %B %uint_0
         %87 = OpLoad %float %86
         %88 = OpFUnordGreaterThan %bool %85 %87
               OpStore %ge_0 %88
         %90 = OpAccessChain %_ptr_Input_float %A %uint_0
         %91 = OpLoad %float %90
         %92 = OpAccessChain %_ptr_Input_float %B %uint_0
         %93 = OpLoad %float %92
         %94 = OpFUnordGreaterThanEqual %bool %91 %93
               OpStore %geq_0 %94
         %96 = OpAccessChain %_ptr_Input_float %A %uint_0
         %97 = OpLoad %float %96
         %98 = OpAccessChain %_ptr_Input_float %B %uint_0
         %99 = OpLoad %float %98
        %100 = OpFUnordEqual %bool %97 %99
               OpStore %eq_0 %100
        %102 = OpAccessChain %_ptr_Input_float %A %uint_0
        %103 = OpLoad %float %102
        %104 = OpAccessChain %_ptr_Input_float %B %uint_0
        %105 = OpLoad %float %104
        %106 = OpFUnordNotEqual %bool %103 %105
               OpStore %neq_0 %106
        %107 = OpLoad %bool %le_0
        %108 = OpSelect %float %107 %float_1 %float_0
        %109 = OpLoad %bool %leq_0
        %110 = OpSelect %float %109 %float_1 %float_0
        %111 = OpFAdd %float %108 %110
        %112 = OpLoad %bool %ge_0
        %113 = OpSelect %float %112 %float_1 %float_0
        %114 = OpFAdd %float %111 %113
        %115 = OpLoad %bool %geq_0
        %116 = OpSelect %float %115 %float_1 %float_0
        %117 = OpFAdd %float %114 %116
        %118 = OpLoad %bool %eq_0
        %119 = OpSelect %float %118 %float_1 %float_0
        %120 = OpFAdd %float %117 %119
        %121 = OpLoad %bool %neq_0
        %122 = OpSelect %float %121 %float_1 %float_0
        %123 = OpFAdd %float %120 %122
               OpReturnValue %123
               OpFunctionEnd
