blob: 2961f1b35e0d846745615189397e2f87a3a7e262 [file] [log] [blame]
// RUN: %target-swift-frontend -emit-ir %s | %FileCheck %s
sil_stage lowered
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 : @trivial $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 : $()
}