blob: 6d4766aa6a28c75ffe1c45746dcfb88437e948ba [file] [log] [blame]
// RUN: %target-swift-frontend -emit-ir %s | %FileCheck %s
sil_stage canonical
import Builtin
struct X {
var y: Builtin.Int32
var z: Builtin.Int32
}
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @invariant_load
sil @invariant_load : $@convention(thin) (Builtin.RawPointer) -> () {
entry(%p : $Builtin.RawPointer):
%a = pointer_to_address %p : $Builtin.RawPointer to [invariant] $*X
// CHECK: load i32, {{.*}} !invariant.load
// CHECK: load i32, {{.*}} !invariant.load
%x = load [trivial] %a : $*X
%yp = struct_element_addr %a : $*X, #X.y
// CHECK: load i32, {{.*}} !invariant.load
%y = load [trivial] %yp : $*Builtin.Int32
%zp = struct_element_addr %a : $*X, #X.z
// CHECK: load i32, {{.*}} !invariant.load
%z = load [trivial] %zp : $*Builtin.Int32
return undef : $()
}