spv.float16NoRelaxed.vert
// Module Version 10300
// Generated by (magic number): 8000b
// Id's are bound by 35

                              Capability Shader
                              Capability Float16
                              Capability GroupNonUniform
                              Capability GroupNonUniformVote
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main" 11 30
                              Source GLSL 450
                              SourceExtension  "GL_EXT_shader_explicit_arithmetic_types_float16"
                              SourceExtension  "GL_EXT_shader_subgroup_extended_types_float16"
                              SourceExtension  "GL_KHR_shader_subgroup_basic"
                              SourceExtension  "GL_KHR_shader_subgroup_vote"
                              Name 4  "main"
                              Name 8  "valueNoEqual"
                              Name 11  "gl_SubgroupInvocationID"
                              Name 15  "tempRes"
                              Name 26  "Buffer1"
                              MemberName 26(Buffer1) 0  "result"
                              Name 28  ""
                              Name 30  "gl_VertexIndex"
                              Decorate 11(gl_SubgroupInvocationID) RelaxedPrecision
                              Decorate 11(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId
                              Decorate 12 RelaxedPrecision
                              Decorate 25 ArrayStride 4
                              MemberDecorate 26(Buffer1) 0 Offset 0
                              Decorate 26(Buffer1) Block
                              Decorate 28 DescriptorSet 0
                              Decorate 28 Binding 0
                              Decorate 30(gl_VertexIndex) BuiltIn VertexIndex
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 16
               7:             TypePointer Function 6(float16_t)
               9:             TypeInt 32 0
              10:             TypePointer Input 9(int)
11(gl_SubgroupInvocationID):     10(ptr) Variable Input
              14:             TypePointer Function 9(int)
              17:             TypeBool
              18:      9(int) Constant 3
              20:             TypeInt 32 1
              21:     20(int) Constant 0
              22:     20(int) Constant 16
              25:             TypeRuntimeArray 9(int)
     26(Buffer1):             TypeStruct 25
              27:             TypePointer StorageBuffer 26(Buffer1)
              28:     27(ptr) Variable StorageBuffer
              29:             TypePointer Input 20(int)
30(gl_VertexIndex):     29(ptr) Variable Input
              33:             TypePointer StorageBuffer 9(int)
         4(main):           2 Function None 3
               5:             Label
 8(valueNoEqual):      7(ptr) Variable Function
     15(tempRes):     14(ptr) Variable Function
              12:      9(int) Load 11(gl_SubgroupInvocationID)
              13:6(float16_t) ConvertUToF 12
                              Store 8(valueNoEqual) 13
              16:6(float16_t) Load 8(valueNoEqual)
              19:    17(bool) GroupNonUniformAllEqual 18 16
              23:     20(int) Select 19 21 22
              24:      9(int) Bitcast 23
                              Store 15(tempRes) 24
              31:     20(int) Load 30(gl_VertexIndex)
              32:      9(int) Load 15(tempRes)
              34:     33(ptr) AccessChain 28 21 31
                              Store 34 32
                              Return
                              FunctionEnd
