blob: ec731ab118a42858123e012a2cc2db0ebbd6029e [file] [log] [blame]
// RUN: %target-sil-opt -enable-sil-verify-all %s -cse | %FileCheck %s
sil_stage canonical
import Builtin
import Swift
class X {
var x : Int64
init()
}
//CHECK: _RefElementAddr
//CHECK: ref_element_addr
//CHECK-NEXT: store
//CHECK-NOT: ref_element_addr
//CHECK: return
sil @_RefElementAddr : $@convention(thin) () -> Int64 {
bb0:
%0 = alloc_ref $X // users: %5, %7, %3
%1 = integer_literal $Builtin.Int64, 0 // user: %2
%2 = struct $Int64 (%1 : $Builtin.Int64) // user: %4
%3 = ref_element_addr %0 : $X, #X.x // user: %4
store %2 to %3 : $*Int64 // id: %4
%5 = ref_element_addr %0 : $X, #X.x // user: %6
%6 = load %5 : $*Int64 // user: %8
strong_release %0 : $X // id: %7
return %6 : $Int64 // id: %8
}
sil_vtable X {
}