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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main" 15 17 26
                              Source GLSL 450
                              SourceExtension  "GL_EXT_spirv_intrinsics"
                              Name 4  "main"
                              Name 10  "func(f1;"
                              Name 9  "f"
                              Name 15  "vec2Out"
                              Name 17  "floatIn"
                              Name 26  "floatOut"
                              Name 27  "param"
                              Decorate 15(vec2Out) Location 0
                              Decorate 17(floatIn) Location 0
                              Decorate 26(floatOut) Location 1
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypePointer Function 6(float)
               8:             TypeFunction 2 7(ptr)
              12:    6(float) Constant 1056964608
              13:             TypeVector 6(float) 2
              14:             TypePointer Output 13(fvec2)
     15(vec2Out):     14(ptr) Variable Output
              16:             TypePointer Input 6(float)
     17(floatIn):     16(ptr) Variable Input
              19:             TypeInt 32 0
              20:     19(int) Constant 1
              21:             TypePointer Output 6(float)
              24:     19(int) Constant 0
    26(floatOut):     21(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
       27(param):      7(ptr) Variable Function
              18:    6(float) Load 17(floatIn)
              22:     21(ptr) AccessChain 15(vec2Out) 20
              23:    6(float) ExtInst 1(GLSL.std.450) 35(Modf) 18 22
              25:     21(ptr) AccessChain 15(vec2Out) 24
                              Store 25 23
              28:    6(float) Load 26(floatOut)
                              Store 27(param) 28
              29:           2 FunctionCall 10(func(f1;) 27(param)
                              Return
                              FunctionEnd
    10(func(f1;):           2 Function None 8
            9(f):      7(ptr) FunctionParameter
              11:             Label
                              Store 9(f) 12
                              Return
                              FunctionEnd
