119734787 65536 393230 16 0 
2 Capability Addresses 
2 Capability Linkage 
2 Capability Kernel 
5 ExtInstImport 1 "OpenCL.std"
3 MemoryModel 2 2 
3 Source 3 200000 
3 Name 4 "foo"
4 Name 5 "entry"
4 Name 11 "agg1"
3 Name 12 "bar"
4 Name 13 "entry"
4 Name 14 "agg2"
5 Decorate 4 LinkageAttributes "foo" Export 
5 Decorate 12 LinkageAttributes "bar" Export 
4 TypeInt 7 32 0 
4 Constant 7 10 1 
2 TypeVoid 2 
3 TypeFloat 8 32 
4 TypeStruct 6 7 8 
3 TypeFunction 3 6

5 Function 6 4 0 3

2 Label 5 
3 Undef 6 9 
6 CompositeInsert 6 11 10 9 0 
2 ReturnValue 11

1 FunctionEnd 

5 Function 6 12 0 3

2 Label 13 
3 Undef 6 15 
6 CompositeInsert 6 14 10 15 0 
2 ReturnValue 14

1 FunctionEnd 

; RUN: llvm-spirv %s -to-binary -o %t.spv
; RUN: spirv-val %t.spv
; RUN: llvm-spirv -r -emit-opaque-pointers %t.spv -o %t.bc
; RUN: llvm-dis < %t.bc | FileCheck %s

; CHECK: define spir_func %structtype @foo() #0 {
; CHECK-NEXT: entry:
; CHECK-NEXT: ret %structtype { i32 1, float undef }
; CHECK-NEXT: }
; CHECK: define spir_func %structtype @bar() #0 {
; CHECK-NEXT: entry:
; CHECK-NEXT: ret %structtype { i32 1, float undef }
; CHECK-NEXT: }

