; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 1
; Bound: 106
; Schema: 0
               OpCapability Shader
               OpMemoryModel Logical GLSL450
               OpEntryPoint Fragment %fragment_main "fragment_main"
               OpEntryPoint GLCompute %compute_main "compute_main"
               OpEntryPoint Vertex %vertex_main "vertex_main" %vertex_main_position_Output %vertex_main_loc0_Output %vertex_main___point_size_Output
               OpExecutionMode %fragment_main OriginUpperLeft
               OpExecutionMode %compute_main LocalSize 1 1 1
               OpMemberName %prevent_dce_block 0 "inner"
               OpName %prevent_dce_block "prevent_dce_block"
               OpName %vertex_main_position_Output "vertex_main_position_Output"
               OpName %vertex_main_loc0_Output "vertex_main_loc0_Output"
               OpName %vertex_main___point_size_Output "vertex_main___point_size_Output"
               OpName %countTrailingZeros_acfacb "countTrailingZeros_acfacb"
               OpName %arg_0 "arg_0"
               OpName %res "res"
               OpName %fragment_main "fragment_main"
               OpName %compute_main "compute_main"
               OpName %vertex_main_inner "vertex_main_inner"
               OpMemberName %VertexOutput 0 "pos"
               OpMemberName %VertexOutput 1 "prevent_dce"
               OpName %VertexOutput "VertexOutput"
               OpName %out "out"
               OpName %vertex_main "vertex_main"
               OpMemberDecorate %prevent_dce_block 0 Offset 0
               OpDecorate %prevent_dce_block Block
               OpDecorate %1 DescriptorSet 0
               OpDecorate %1 Binding 0
               OpDecorate %1 Coherent
               OpDecorate %vertex_main_position_Output BuiltIn Position
               OpDecorate %vertex_main_loc0_Output Location 0
               OpDecorate %vertex_main_loc0_Output Flat
               OpDecorate %vertex_main___point_size_Output BuiltIn PointSize
               OpMemberDecorate %VertexOutput 0 Offset 0
               OpMemberDecorate %VertexOutput 1 Offset 16
        %int = OpTypeInt 32 1
      %v3int = OpTypeVector %int 3
%prevent_dce_block = OpTypeStruct %v3int
%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
      %float = OpTypeFloat 32
    %v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%vertex_main_position_Output = OpVariable %_ptr_Output_v4float Output
%_ptr_Output_v3int = OpTypePointer Output %v3int
%vertex_main_loc0_Output = OpVariable %_ptr_Output_v3int Output
%_ptr_Output_float = OpTypePointer Output %float
%vertex_main___point_size_Output = OpVariable %_ptr_Output_float Output
         %15 = OpTypeFunction %v3int
%_ptr_Function_v3int = OpTypePointer Function %v3int
      %int_1 = OpConstant %int 1
         %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
       %uint = OpTypeInt 32 0
     %v3uint = OpTypeVector %uint 3
 %uint_65535 = OpConstant %uint 65535
         %26 = OpConstantComposite %v3uint %uint_65535 %uint_65535 %uint_65535
         %29 = OpConstantNull %v3uint
       %bool = OpTypeBool
     %v3bool = OpTypeVector %bool 3
    %uint_16 = OpConstant %uint 16
         %33 = OpConstantComposite %v3uint %uint_16 %uint_16 %uint_16
   %uint_255 = OpConstant %uint 255
         %37 = OpConstantComposite %v3uint %uint_255 %uint_255 %uint_255
     %uint_8 = OpConstant %uint 8
         %41 = OpConstantComposite %v3uint %uint_8 %uint_8 %uint_8
    %uint_15 = OpConstant %uint 15
         %45 = OpConstantComposite %v3uint %uint_15 %uint_15 %uint_15
     %uint_4 = OpConstant %uint 4
         %49 = OpConstantComposite %v3uint %uint_4 %uint_4 %uint_4
     %uint_3 = OpConstant %uint 3
         %53 = OpConstantComposite %v3uint %uint_3 %uint_3 %uint_3
     %uint_2 = OpConstant %uint 2
         %57 = OpConstantComposite %v3uint %uint_2 %uint_2 %uint_2
     %uint_1 = OpConstant %uint 1
         %61 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
       %void = OpTypeVoid
         %77 = OpTypeFunction %void
%_ptr_StorageBuffer_v3int = OpTypePointer StorageBuffer %v3int
     %uint_0 = OpConstant %uint 0
%VertexOutput = OpTypeStruct %v4float %v3int
         %89 = OpTypeFunction %VertexOutput
%_ptr_Function_VertexOutput = OpTypePointer Function %VertexOutput
         %93 = OpConstantNull %VertexOutput
%_ptr_Function_v4float = OpTypePointer Function %v4float
         %96 = OpConstantNull %v4float
    %float_1 = OpConstant %float 1
%countTrailingZeros_acfacb = OpFunction %v3int None %15
         %16 = OpLabel
      %arg_0 = OpVariable %_ptr_Function_v3int Function
        %res = OpVariable %_ptr_Function_v3int Function
               OpStore %arg_0 %19
         %21 = OpLoad %v3int %arg_0 None
         %24 = OpBitcast %v3uint %21
         %25 = OpBitwiseAnd %v3uint %24 %26
         %28 = OpIEqual %v3bool %25 %29
         %32 = OpSelect %v3uint %28 %33 %29
         %35 = OpShiftRightLogical %v3uint %24 %32
         %36 = OpBitwiseAnd %v3uint %35 %37
         %39 = OpIEqual %v3bool %36 %29
         %40 = OpSelect %v3uint %39 %41 %29
         %43 = OpShiftRightLogical %v3uint %35 %40
         %44 = OpBitwiseAnd %v3uint %43 %45
         %47 = OpIEqual %v3bool %44 %29
         %48 = OpSelect %v3uint %47 %49 %29
         %51 = OpShiftRightLogical %v3uint %43 %48
         %52 = OpBitwiseAnd %v3uint %51 %53
         %55 = OpIEqual %v3bool %52 %29
         %56 = OpSelect %v3uint %55 %57 %29
         %59 = OpShiftRightLogical %v3uint %51 %56
         %60 = OpBitwiseAnd %v3uint %59 %61
         %63 = OpIEqual %v3bool %60 %29
         %64 = OpSelect %v3uint %63 %61 %29
         %65 = OpIEqual %v3bool %59 %29
         %66 = OpSelect %v3uint %65 %61 %29
         %67 = OpBitwiseOr %v3uint %56 %64
         %68 = OpBitwiseOr %v3uint %48 %67
         %69 = OpBitwiseOr %v3uint %40 %68
         %70 = OpBitwiseOr %v3uint %32 %69
         %71 = OpIAdd %v3uint %70 %66
         %72 = OpBitcast %v3int %71
               OpStore %res %72
         %74 = OpLoad %v3int %res None
               OpReturnValue %74
               OpFunctionEnd
%fragment_main = OpFunction %void None %77
         %78 = OpLabel
         %79 = OpFunctionCall %v3int %countTrailingZeros_acfacb
         %80 = OpAccessChain %_ptr_StorageBuffer_v3int %1 %uint_0
               OpStore %80 %79 None
               OpReturn
               OpFunctionEnd
%compute_main = OpFunction %void None %77
         %84 = OpLabel
         %85 = OpFunctionCall %v3int %countTrailingZeros_acfacb
         %86 = OpAccessChain %_ptr_StorageBuffer_v3int %1 %uint_0
               OpStore %86 %85 None
               OpReturn
               OpFunctionEnd
%vertex_main_inner = OpFunction %VertexOutput None %89
         %90 = OpLabel
        %out = OpVariable %_ptr_Function_VertexOutput Function %93
         %94 = OpAccessChain %_ptr_Function_v4float %out %uint_0
               OpStore %94 %96 None
         %97 = OpAccessChain %_ptr_Function_v3int %out %uint_1
         %98 = OpFunctionCall %v3int %countTrailingZeros_acfacb
               OpStore %97 %98 None
         %99 = OpLoad %VertexOutput %out None
               OpReturnValue %99
               OpFunctionEnd
%vertex_main = OpFunction %void None %77
        %101 = OpLabel
        %102 = OpFunctionCall %VertexOutput %vertex_main_inner
        %103 = OpCompositeExtract %v4float %102 0
               OpStore %vertex_main_position_Output %103 None
        %104 = OpCompositeExtract %v3int %102 1
               OpStore %vertex_main_loc0_Output %104 None
               OpStore %vertex_main___point_size_Output %float_1 None
               OpReturn
               OpFunctionEnd
