; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 37
; Schema: 0
               OpCapability Shader
               OpCapability StorageImageExtendedFormats
               OpMemoryModel Logical GLSL450
               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
               OpEntryPoint Fragment %fragment_main "fragment_main"
               OpEntryPoint GLCompute %compute_main "compute_main"
               OpExecutionMode %fragment_main OriginUpperLeft
               OpExecutionMode %compute_main LocalSize 1 1 1
               OpName %value "value"
               OpName %vertex_point_size "vertex_point_size"
               OpName %arg_0 "arg_0"
               OpName %textureStore_1a264d "textureStore_1a264d"
               OpName %vertex_main_inner "vertex_main_inner"
               OpName %vertex_main "vertex_main"
               OpName %fragment_main "fragment_main"
               OpName %compute_main "compute_main"
               OpDecorate %value BuiltIn Position
               OpDecorate %vertex_point_size BuiltIn PointSize
               OpDecorate %arg_0 NonReadable
               OpDecorate %arg_0 DescriptorSet 1
               OpDecorate %arg_0 Binding 0
      %float = OpTypeFloat 32
    %v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
          %5 = OpConstantNull %v4float
      %value = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
          %8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %11 = OpTypeImage %float 3D 0 0 0 2 R8
%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
       %void = OpTypeVoid
         %12 = OpTypeFunction %void
        %int = OpTypeInt 32 1
      %v3int = OpTypeVector %int 3
      %int_1 = OpConstant %int 1
         %21 = OpConstantComposite %v3int %int_1 %int_1 %int_1
    %float_1 = OpConstant %float 1
         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
         %24 = OpTypeFunction %v4float
%textureStore_1a264d = OpFunction %void None %12
         %15 = OpLabel
         %17 = OpLoad %11 %arg_0
               OpImageWrite %17 %21 %23
               OpReturn
               OpFunctionEnd
%vertex_main_inner = OpFunction %v4float None %24
         %26 = OpLabel
         %27 = OpFunctionCall %void %textureStore_1a264d
               OpReturnValue %5
               OpFunctionEnd
%vertex_main = OpFunction %void None %12
         %29 = OpLabel
         %30 = OpFunctionCall %v4float %vertex_main_inner
               OpStore %value %30
               OpStore %vertex_point_size %float_1
               OpReturn
               OpFunctionEnd
%fragment_main = OpFunction %void None %12
         %32 = OpLabel
         %33 = OpFunctionCall %void %textureStore_1a264d
               OpReturn
               OpFunctionEnd
%compute_main = OpFunction %void None %12
         %35 = OpLabel
         %36 = OpFunctionCall %void %textureStore_1a264d
               OpReturn
               OpFunctionEnd
