// RUN: %target-swift-frontend -emit-ir %s | FileCheck %s

sil_stage canonical

import Builtin

class Outer {
  struct Inner {
  }
}

sil_vtable Outer {}

sil @test0 : $@convention(thin) (@thick Outer.Inner.Type) -> (@thick Outer.Type) {
bb0(%0 : $@thick Outer.Inner.Type):
  %1 = metatype $@thick Outer.Type
  return %1 : $@thick Outer.Type
}
// CHECK-LABEL: define{{ | protected }}%swift.type* @test0(%swift.type*)
//   TODO: it would be more efficient to get this type from the parent metadata field
// CHECK:      [[T0:%.*]] = call %swift.type* @_TMaC12nested_types5Outer()
// CHECK-NEXT: ret %swift.type* [[T0]]

// CHECK-LABEL: define hidden %swift.type* @_TMaVC12nested_types5Outer5Inner()
// CHECK:      [[T0:%.*]] = load %swift.type*, %swift.type** @_TMLVC12nested_types5Outer5Inner
// CHECK-NEXT: [[T1:%.*]] = icmp eq %swift.type* [[T0]], null
// CHECK-NEXT: br i1 [[T1]]
// CHECK:      call void @swift_once({{.*}}* @_TMaVC12nested_types5Outer5Inner.once_token, i8* bitcast (void (i8*)* @initialize_metadata_Inner to i8*))
// CHECK-NEXT: [[T2:%.*]] = load %swift.type*, %swift.type** @_TMLVC12nested_types5Outer5Inner
// CHECK-NEXT: br label
// CHECK:      [[T4:%.*]] = phi %swift.type* [ [[T0]], {{.*}} ], [ [[T2]], {{.*}} ]
// CHECK-NEXT: ret %swift.type* [[T4]]

// CHECK-LABEL: define private void @initialize_metadata_Inner
// CHECK:      [[T0:%.*]] = call %swift.type* @_TMaC12nested_types5Outer()
// CHECK-NEXT: store %swift.type* [[T0]], %swift.type** getelementptr inbounds (%swift.type*, %swift.type** bitcast ({{.*}} @_TMfVC12nested_types5Outer5Inner{{.*}}, [[INT:i[0-9]+]] 2), align
// CHECK-NEXT: store atomic %swift.type* bitcast ({{.*}} @_TMfVC12nested_types5Outer5Inner{{.*}} to %swift.type*), %swift.type** @_TMLVC12nested_types5Outer5Inner release, align
// CHECK-NEXT: ret void
