Skip to content

Commit aefb9a9

Browse files
committed
tests: adapt align-offset.rs for InstCombine improvements in LLVM 23
Upstream has improved InstCombine so that it can shrink added constants using known zeroes, which caused a little bit of change in this test. As far as I can tell either output is fine, so we just accept both.
1 parent 71dc761 commit aefb9a9

2 files changed

Lines changed: 7 additions & 7 deletions

File tree

tests/assembly-llvm/align_offset.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
#![crate_type = "rlib"]
55

66
// CHECK-LABEL: align_offset_byte_ptr
7-
// CHECK: leaq 31
7+
// CHECK: leaq {{31|28}}
88
// CHECK: andq $-32
99
// CHECK: subq
1010
#[no_mangle]
@@ -13,7 +13,7 @@ pub fn align_offset_byte_ptr(ptr: *const u8) -> usize {
1313
}
1414

1515
// CHECK-LABEL: align_offset_byte_slice
16-
// CHECK: leaq 31
16+
// CHECK: leaq {{31|28}}
1717
// CHECK: andq $-32
1818
// CHECK: subq
1919
#[no_mangle]
@@ -22,7 +22,7 @@ pub fn align_offset_byte_slice(slice: &[u8]) -> usize {
2222
}
2323

2424
// CHECK-LABEL: align_offset_word_ptr
25-
// CHECK: leaq 31
25+
// CHECK: leaq {{31|28}}
2626
// CHECK: andq $-32
2727
// CHECK: subq
2828
// CHECK: shrq
@@ -35,7 +35,7 @@ pub fn align_offset_word_ptr(ptr: *const u32) -> usize {
3535
}
3636

3737
// CHECK-LABEL: align_offset_word_slice
38-
// CHECK: leaq 31
38+
// CHECK: leaq {{31|28}}
3939
// CHECK: andq $-32
4040
// CHECK: subq
4141
// CHECK: shrq

tests/codegen-llvm/align-offset.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ pub fn align_to4(x: &[u8]) -> bool {
2424
#[no_mangle]
2525
pub fn align_offset_byte_ptr(ptr: *const u8) -> usize {
2626
// CHECK: %[[ADDR:.+]] = ptrtoint ptr %ptr to [[USIZE:i[0-9]+]]
27-
// CHECK: %[[UP:.+]] = add [[USIZE]] %[[ADDR]], 31
27+
// CHECK: %[[UP:.+]] = add [[USIZE]] %[[ADDR]], {{31|28}}
2828
// CHECK: %[[ALIGNED:.+]] = and [[USIZE]] %[[UP]], -32
2929
// CHECK: %[[OFFSET:.+]] = sub [[USIZE]] %[[ALIGNED]], %[[ADDR]]
3030

@@ -41,7 +41,7 @@ pub fn align_offset_byte_ptr(ptr: *const u8) -> usize {
4141
#[no_mangle]
4242
pub fn align_offset_word_slice(slice: &[Align4]) -> usize {
4343
// CHECK: %[[ADDR:.+]] = ptrtoint ptr %slice.0 to [[USIZE]]
44-
// CHECK: %[[UP:.+]] = add [[USIZE]] %[[ADDR]], 31
44+
// CHECK: %[[UP:.+]] = add [[USIZE]] %[[ADDR]], {{31|28}}
4545
// CHECK: %[[ALIGNED:.+]] = and [[USIZE]] %[[UP]], -32
4646
// CHECK: %[[BOFFSET:.+]] = sub [[USIZE]] %[[ALIGNED]], %[[ADDR]]
4747
// CHECK: %[[OFFSET:.+]] = lshr exact [[USIZE]] %[[BOFFSET]], 2
@@ -57,7 +57,7 @@ pub fn align_offset_word_slice(slice: &[Align4]) -> usize {
5757
#[no_mangle]
5858
pub fn align_offset_word_ptr(ptr: *const Align4) -> usize {
5959
// CHECK: %[[ADDR:.+]] = ptrtoint ptr %ptr to [[USIZE]]
60-
// CHECK: %[[UP:.+]] = add [[USIZE]] %[[ADDR]], 31
60+
// CHECK: %[[UP:.+]] = add [[USIZE]] %[[ADDR]], {{31|28}}
6161
// CHECK: %[[ALIGNED:.+]] = and [[USIZE]] %[[UP]], -32
6262
// CHECK: %[[BOFFSET:.+]] = sub [[USIZE]] %[[ALIGNED]], %[[ADDR]]
6363

0 commit comments

Comments
 (0)