Skip to content

Commit bbbf9dd

Browse files
committed
[X86][AMX] Fix missing stride register for tileloadd
Fixes: #110190
1 parent 8dd817b commit bbbf9dd

File tree

2 files changed

+7
-5
lines changed

2 files changed

+7
-5
lines changed

llvm/lib/Target/X86/X86LowerTileCopy.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -140,14 +140,16 @@ bool X86LowerTileCopy::runOnMachineFunction(MachineFunction &MF) {
140140
MachineInstr *NewMI =
141141
addFrameReference(BuildMI(MBB, MI, DL, TII->get(Opc)), TileSS)
142142
.addReg(SrcReg, getKillRegState(SrcMO.isKill()));
143-
MachineOperand &MO = NewMI->getOperand(2);
144-
MO.setReg(GR64Cand ? GR64Cand : X86::RAX);
145-
MO.setIsKill(true);
143+
MachineOperand *MO = &NewMI->getOperand(2);
144+
MO->setReg(GR64Cand ? GR64Cand : X86::RAX);
146145
// tileloadd (%sp, %idx), %tmm
147146
Opc = GET_EGPR_IF_ENABLED(X86::TILELOADD);
148147
#undef GET_EGPR_IF_ENABLED
149148
NewMI = addFrameReference(BuildMI(MBB, MI, DL, TII->get(Opc), DstReg),
150149
TileSS);
150+
MO = &NewMI->getOperand(3);
151+
MO->setReg(GR64Cand ? GR64Cand : X86::RAX);
152+
MO->setIsKill(true);
151153
if (!GR64Cand) {
152154
// restore %rax
153155
// mov (%sp) %rax

llvm/test/CodeGen/X86/AMX/amx-tile-basic.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ define void @PR90954(ptr %0, ptr %1, i32 %2) nounwind {
148148
; CHECK-NEXT: movq %rax, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill
149149
; CHECK-NEXT: movabsq $64, %rax
150150
; CHECK-NEXT: tilestored %tmm0, 3072(%rsp,%rax) # 1024-byte Folded Spill
151-
; CHECK-NEXT: tileloadd {{[-0-9]+}}(%r{{[sb]}}p), %tmm1 # 1024-byte Folded Reload
151+
; CHECK-NEXT: tileloadd 3072(%rsp,%rax), %tmm1 # 1024-byte Folded Reload
152152
; CHECK-NEXT: movq {{[-0-9]+}}(%r{{[sb]}}p), %rax # 8-byte Reload
153153
; CHECK-NEXT: jmp .LBB1_4
154154
%4 = shl i32 %2, 4
@@ -212,7 +212,7 @@ define void @multi_use() nounwind {
212212
; CHECK-NEXT: tilezero %tmm0
213213
; CHECK-NEXT: movabsq $64, %rbp
214214
; CHECK-NEXT: tilestored %tmm0, 896(%rsp,%rbp) # 1024-byte Folded Spill
215-
; CHECK-NEXT: tileloadd {{[-0-9]+}}(%r{{[sb]}}p), %tmm1 # 1024-byte Folded Reload
215+
; CHECK-NEXT: tileloadd 896(%rsp,%rbp), %tmm1 # 1024-byte Folded Reload
216216
; CHECK-NEXT: tdpbf16ps %tmm0, %tmm0, %tmm1
217217
; CHECK-NEXT: tdpbf16ps %tmm0, %tmm0, %tmm0
218218
; CHECK-NEXT: addq $2928, %rsp # imm = 0xB70

0 commit comments

Comments
 (0)