mirror of
https://github.com/rust-lang/rust.git
synced 2026-04-28 11:17:26 +03:00
Rollup merge of #94496 - durin42:llvm-15-moar-intrinsic, r=nikic
tests: accept llvm intrinsic in align-checking test This changed in upstream change https://reviews.llvm.org/D98152 (aka https://github.com/llvm/llvm-project/commit/a266af721153fab6452094207b09ed265ab0be7b) wherein LLVM got smarter about using intrinsics. As best I can tell the change I've made here preserves the intent of the test on LLVM 14 and before while also passing on LLVM 15 and later.
This commit is contained in:
@@ -24,6 +24,7 @@ pub fn eliminates_runtime_check_when_align_1(
|
||||
x: &Struct<WrapperWithAlign1<dyn Trait>>
|
||||
) -> &WrapperWithAlign1<dyn Trait> {
|
||||
// CHECK: load [[USIZE:i[0-9]+]], {{.+}} !range [[RANGE_META:![0-9]+]]
|
||||
// CHECK-NOT: llvm.umax
|
||||
// CHECK-NOT: icmp
|
||||
// CHECK-NOT: select
|
||||
// CHECK: ret
|
||||
@@ -36,8 +37,7 @@ pub fn does_not_eliminate_runtime_check_when_align_2(
|
||||
x: &Struct<WrapperWithAlign2<dyn Trait>>
|
||||
) -> &WrapperWithAlign2<dyn Trait> {
|
||||
// CHECK: [[X0:%[0-9]+]] = load [[USIZE]], {{.+}} !range [[RANGE_META]]
|
||||
// CHECK: [[X1:%[0-9]+]] = icmp {{.+}} [[X0]]
|
||||
// CHECK: [[X2:%[0-9]+]] = select {{.+}} [[X1]]
|
||||
// CHECK: {{icmp|llvm.umax}}
|
||||
// CHECK: ret
|
||||
&x.dst
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user