Skip to content

Commit 8b58ad2

Browse files
[SVE] Fix incorrect offset calculation when rewriting an instruction's frame index.
1 parent cc819b2 commit 8b58ad2

File tree

2 files changed

+2
-2
lines changed

2 files changed

+2
-2
lines changed

llvm/lib/Target/AArch64/AArch64InstrInfo.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5657,7 +5657,7 @@ int llvm::isAArch64FrameOffsetLegal(const MachineInstr &MI,
56575657
Offset = Remainder;
56585658
else {
56595659
NewOffset = NewOffset < 0 ? MinOff : MaxOff;
5660-
Offset = Offset - NewOffset * Scale + Remainder;
5660+
Offset = Offset - NewOffset * Scale;
56615661
}
56625662

56635663
if (EmittableOffset)

llvm/test/CodeGen/AArch64/framelayout-sve.mir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1295,7 +1295,7 @@ body: |
12951295
# CHECK: - { id: 1, name: '', type: variable-sized, offset: -32, alignment: 1,
12961296
# CHECK-NEXT: stack-id: default
12971297

1298-
# CHECK: $x8 = ADDPL_XXI $fp, -20
1298+
# CHECK: $x8 = ADDPL_XXI $fp, -14
12991299
# CHECK-NEXT: $z0 = LD1W_IMM killed renamable $p0, killed $x8, -8
13001300

13011301
name: fp_relative_that_is_not_a_multiple_of_VLx16

0 commit comments

Comments
 (0)