blob: f083c31cfd04d7a71d3f8f813f55cc0abb7acf65 [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 [ossa] @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 : $()
}