spv.intrinsicsSpirvInstruction.vert
// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 32

                              Capability Shader
                              Capability Int64
                              Capability ShaderClockKHR
                              Extension  "SPV_AMD_shader_trinary_minmax"
                              Extension  "SPV_KHR_shader_clock"
               1:             ExtInstImport  "GLSL.std.450"
              30:             ExtInstImport  "SPV_AMD_shader_trinary_minmax"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main" 9 15 20 23
                              Source GLSL 450
                              SourceExtension  "GL_ARB_gpu_shader_int64"
                              SourceExtension  "GL_EXT_spirv_intrinsics"
                              Name 4  "main"
                              Name 9  "uvec2Out"
                              Name 15  "u64Out"
                              Name 20  "vec2Out"
                              Name 23  "vec3In"
                              Decorate 9(uvec2Out) Location 0
                              Decorate 15(u64Out) Location 1
                              Decorate 20(vec2Out) Location 2
                              Decorate 23(vec3In) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 0
               7:             TypeVector 6(int) 2
               8:             TypePointer Output 7(ivec2)
     9(uvec2Out):      8(ptr) Variable Output
              10:             TypeInt 32 1
              11:     10(int) Constant 1
              13:             TypeInt 64 0
              14:             TypePointer Output 13(int64_t)
      15(u64Out):     14(ptr) Variable Output
              17:             TypeFloat 32
              18:             TypeVector 17(float) 2
              19:             TypePointer Output 18(fvec2)
     20(vec2Out):     19(ptr) Variable Output
              21:             TypeVector 17(float) 3
              22:             TypePointer Input 21(fvec3)
      23(vec3In):     22(ptr) Variable Input
         4(main):           2 Function None 3
               5:             Label
              12:    7(ivec2) ReadClockKHR 11
                              Store 9(uvec2Out) 12
              16: 13(int64_t) ReadClockKHR 11
                              Store 15(u64Out) 16
              24:   21(fvec3) Load 23(vec3In)
              25:   18(fvec2) VectorShuffle 24 24 0 1
              26:   21(fvec3) Load 23(vec3In)
              27:   18(fvec2) VectorShuffle 26 26 1 2
              28:   21(fvec3) Load 23(vec3In)
              29:   18(fvec2) VectorShuffle 28 28 2 0
              31:   18(fvec2) ExtInst 30(SPV_AMD_shader_trinary_minmax) 1(FMin3AMD) 25 27 29
                              Store 20(vec2Out) 31
                              Return
                              FunctionEnd
