// RUN: %target-swift-frontend -emit-sil %s -assume-single-threaded | %FileCheck %s
// RUN: %target-swift-frontend -emit-sil %s -O -assume-single-threaded | %FileCheck %s

// Check that all reference counting instructions are converted to [nonatomic]
// if -assume-single-threaded is used.

sil_stage canonical

import Builtin
import Swift
import SwiftShims

public class C {
  deinit
  init()
}


// CHECK-LABEL: sil{{.*}}@test_atomic_to_nonatomic_retain
// CHECK: strong_retain [nonatomic]
// CHECK: return
sil @test_atomic_to_nonatomic_retain: $@convention(thin) () -> @owned C {
bb0:
  %1 = alloc_ref $C
  strong_retain %1 : $C
  return %1 : $C
}

// CHECK-LABEL: sil{{.*}}@test_atomic_to_nonatomic_release
// CHECK: strong_release [nonatomic]
// CHECK: return
sil @test_atomic_to_nonatomic_release: $@convention(thin) (C) -> C {
bb0(%0 : $C):
  strong_release %0 : $C
  return %0 : $C
}



// C.__deallocating_deinit
sil @_TFC28nonatomic_reference_counting1CD : $@convention(method) (@owned C) -> () {
bb0(%0 : $C):
  dealloc_ref %0 : $C
  %4 = tuple ()
  return %4 : $()
}

sil_vtable C {
  #C.deinit!deallocator.1: @_TFC28nonatomic_reference_counting1CD  // C.__deallocating_deinit
}

