// RUN: %empty-directory(%t)
// RUN: %target-swift-frontend %S/Inputs/shared_function_serialization_input.swift -o %t/Swift.swiftmodule -emit-module -parse-as-library -parse-stdlib -module-link-name swiftCore -module-name Swift -O
// RUN: %target-sil-opt -enable-sil-verify-all -I %t -performance-linker -inline %s -o - | %FileCheck %s

// CHECK: sil private @top_level_code
// CHECK: sil public_external [serialized] @$ss1XVABycfC{{.*}}
// CHECK: sil public_external [serialized] @$ss17the_thing_it_does1xys1XV_tF{{.*}}
// CHECK: sil shared_external [serializable] [noinline] @$ss9the_thing1tyx_tlFs1XV_Tgq5{{.*}}

sil_stage canonical

import Builtin
import Swift

sil_global @x : $X

// top_level_code
sil private @top_level_code : $@convention(thin) () -> () {
bb0:
  %0 = global_addr @x : $*X                       // users: %4, %6
  // function_ref Swift.X.init (Swift.X.Type)() -> Swift.X
  %1 = function_ref @$ss1XVABycfC : $@convention(method) (@thin X.Type) -> X // user: %3
  %2 = metatype $@thin X.Type                     // user: %3
  %3 = apply %1(%2) : $@convention(method) (@thin X.Type) -> X  // user: %4
  store %3 to %0 : $*X                            // id: %4
  // function_ref Swift.the_thing_it_does (x : Swift.X) -> ()
  %5 = function_ref @$ss17the_thing_it_does1xys1XV_tF : $@convention(thin) (X) -> () // user: %7
  %6 = load %0 : $*X                              // user: %7
  %7 = apply %5(%6) : $@convention(thin) (X) -> ()
  %8 = tuple ()                                   // user: %9
  return %8 : $()                                 // id: %9
}

// Swift.X.init (Swift.X.Type)() -> Swift.X
sil @$ss1XVABycfC : $@convention(method) (@thin X.Type) -> X

// Swift.the_thing_it_does (x : Swift.X) -> ()
sil @$ss17the_thing_it_does1xys1XV_tF : $@convention(thin) (X) -> ()


