Skip to content

Commit 7497b0c

Browse files
committed
fix fails and cleanup
1 parent 71ec8c6 commit 7497b0c

File tree

4 files changed

+26
-20
lines changed

4 files changed

+26
-20
lines changed

llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -135,10 +135,6 @@ MCRegister PPC::getRegNumForOperand(const MCInstrDesc &Desc, MCRegister Reg,
135135
if (PPC::isVRRegister(Reg))
136136
return PPC::VSX32 + (Reg - PPC::V0);
137137
break;
138-
case PPC::DMRROWpRCRegClassID: {
139-
// Reference to dmr reg. There are four dmrrow pairs per dmr.
140-
return PPC::DMR0 + ((Reg - PPC::DMRROWp0) / 4);
141-
}
142138
// Other RegClass doesn't need mapping
143139
default:
144140
break;

llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,10 @@ static inline bool isVFRegister(unsigned Reg) {
294294
static inline bool isVRRegister(unsigned Reg) {
295295
return Reg >= PPC::V0 && Reg <= PPC::V31;
296296
}
297+
298+
static inline bool isDMRROWpRegister(unsigned Reg) {
299+
return Reg >= PPC::DMRROWp0 && Reg <= PPC::DMRROWp31;
300+
}
297301
} // namespace PPC
298302
} // namespace llvm
299303

llvm/lib/Target/PowerPC/PPCMCInstLower.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,12 @@ bool llvm::LowerPPCMachineOperandToMCOperand(const MachineOperand &MO,
196196
assert(MO.getReg() > PPC::NoRegister &&
197197
MO.getReg() < PPC::NUM_TARGET_REGS &&
198198
"Invalid register for this target!");
199+
// ISA instructions refer to the containing dmr reg.
200+
if (PPC::isDMRROWpRegister(MO.getReg())) {
201+
OutMO =
202+
MCOperand::createReg(PPC::DMR0 + (MO.getReg() - PPC::DMRROWp0) / 4);
203+
return true;
204+
}
199205
// Ignore all implicit register operands.
200206
if (MO.isImplicit())
201207
return false;

llvm/test/CodeGen/PowerPC/dmr-enable.ll

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -166,33 +166,33 @@ define void @text256(ptr %vp1, ptr %rp1, ptr %rp2, ptr %rp3, ptr %rp4) {
166166
; CHECK-LABEL: text256:
167167
; CHECK: # %bb.0: # %entry
168168
; CHECK-NEXT: dmsetdmrz dmr0
169-
; CHECK-NEXT: dmxxextfdmr256 vsp34, dmrrowp0, 0
169+
; CHECK-NEXT: dmxxextfdmr256 vsp34, dmr0, 0
170170
; CHECK-NEXT: stxv v2, 16(r4)
171171
; CHECK-NEXT: stxv v3, 0(r4)
172-
; CHECK-NEXT: dmxxextfdmr256 vsp34, dmrrowp1, 1
172+
; CHECK-NEXT: dmxxextfdmr256 vsp34, dmr0, 1
173173
; CHECK-NEXT: stxv v2, 16(r5)
174174
; CHECK-NEXT: stxv v3, 0(r5)
175-
; CHECK-NEXT: dmxxextfdmr256 vsp34, dmrrowp2, 2
175+
; CHECK-NEXT: dmxxextfdmr256 vsp34, dmr0, 2
176176
; CHECK-NEXT: stxv v2, 16(r6)
177177
; CHECK-NEXT: stxv v3, 0(r6)
178-
; CHECK-NEXT: dmxxextfdmr256 vsp34, dmrrowp3, 3
178+
; CHECK-NEXT: dmxxextfdmr256 vsp34, dmr0, 3
179179
; CHECK-NEXT: stxv v2, 16(r7)
180180
; CHECK-NEXT: stxv v3, 0(r7)
181181
; CHECK-NEXT: blr
182182
;
183183
; CHECK-BE-LABEL: text256:
184184
; CHECK-BE: # %bb.0: # %entry
185185
; CHECK-BE-NEXT: dmsetdmrz dmr0
186-
; CHECK-BE-NEXT: dmxxextfdmr256 vsp34, dmrrowp0, 0
186+
; CHECK-BE-NEXT: dmxxextfdmr256 vsp34, dmr0, 0
187187
; CHECK-BE-NEXT: stxv v3, 16(r4)
188188
; CHECK-BE-NEXT: stxv v2, 0(r4)
189-
; CHECK-BE-NEXT: dmxxextfdmr256 vsp34, dmrrowp1, 1
189+
; CHECK-BE-NEXT: dmxxextfdmr256 vsp34, dmr0, 1
190190
; CHECK-BE-NEXT: stxv v3, 16(r5)
191191
; CHECK-BE-NEXT: stxv v2, 0(r5)
192-
; CHECK-BE-NEXT: dmxxextfdmr256 vsp34, dmrrowp2, 2
192+
; CHECK-BE-NEXT: dmxxextfdmr256 vsp34, dmr0, 2
193193
; CHECK-BE-NEXT: stxv v3, 16(r6)
194194
; CHECK-BE-NEXT: stxv v2, 0(r6)
195-
; CHECK-BE-NEXT: dmxxextfdmr256 vsp34, dmrrowp3, 3
195+
; CHECK-BE-NEXT: dmxxextfdmr256 vsp34, dmr0, 3
196196
; CHECK-BE-NEXT: stxv v3, 16(r7)
197197
; CHECK-BE-NEXT: stxv v2, 0(r7)
198198
; CHECK-BE-NEXT: blr
@@ -282,7 +282,7 @@ define void @tins256(ptr %vp1, ptr %vp2, ptr %vp3, ptr %vp4, ptr %rp1, ptr %rp2,
282282
; CHECK-NEXT: lxv v2, 16(r3)
283283
; CHECK-NEXT: lxv v3, 0(r3)
284284
; CHECK-NEXT: dmsetdmrz dmr0
285-
; CHECK-NEXT: dmxxinstdmr256 dmrrowp0, vsp34, 0
285+
; CHECK-NEXT: dmxxinstdmr256 dmr0, vsp34, 0
286286
; CHECK-NEXT: dmxxextfdmr512 vsp34, vsp36, wacc0, 0
287287
; CHECK-NEXT: stxvp vsp34, 96(r7)
288288
; CHECK-NEXT: stxvp vsp36, 64(r7)
@@ -291,21 +291,21 @@ define void @tins256(ptr %vp1, ptr %vp2, ptr %vp3, ptr %vp4, ptr %rp1, ptr %rp2,
291291
; CHECK-NEXT: stxvp vsp36, 0(r7)
292292
; CHECK-NEXT: lxv v2, 16(r4)
293293
; CHECK-NEXT: lxv v3, 0(r4)
294-
; CHECK-NEXT: dmxxinstdmr256 dmrrowp1, vsp34, 1
294+
; CHECK-NEXT: dmxxinstdmr256 dmr0, vsp34, 1
295295
; CHECK-NEXT: dmxxextfdmr512 vsp36, vsp32, wacc0, 0
296296
; CHECK-NEXT: stxvp vsp36, 96(r8)
297297
; CHECK-NEXT: stxvp vsp32, 64(r8)
298298
; CHECK-NEXT: dmxxextfdmr512 vsp36, vsp32, wacc_hi0, 1
299299
; CHECK-NEXT: stxvp vsp36, 32(r8)
300300
; CHECK-NEXT: stxvp vsp32, 0(r8)
301-
; CHECK-NEXT: dmxxinstdmr256 dmrrowp2, vsp34, 2
301+
; CHECK-NEXT: dmxxinstdmr256 dmr0, vsp34, 2
302302
; CHECK-NEXT: dmxxextfdmr512 vsp36, vsp32, wacc0, 0
303303
; CHECK-NEXT: stxvp vsp36, 96(r9)
304304
; CHECK-NEXT: stxvp vsp32, 64(r9)
305305
; CHECK-NEXT: dmxxextfdmr512 vsp36, vsp32, wacc_hi0, 1
306306
; CHECK-NEXT: stxvp vsp36, 32(r9)
307307
; CHECK-NEXT: stxvp vsp32, 0(r9)
308-
; CHECK-NEXT: dmxxinstdmr256 dmrrowp3, vsp34, 3
308+
; CHECK-NEXT: dmxxinstdmr256 dmr0, vsp34, 3
309309
; CHECK-NEXT: dmxxextfdmr512 vsp34, vsp36, wacc0, 0
310310
; CHECK-NEXT: stxvp vsp34, 96(r10)
311311
; CHECK-NEXT: stxvp vsp36, 64(r10)
@@ -319,7 +319,7 @@ define void @tins256(ptr %vp1, ptr %vp2, ptr %vp3, ptr %vp4, ptr %rp1, ptr %rp2,
319319
; CHECK-BE-NEXT: lxv v2, 0(r3)
320320
; CHECK-BE-NEXT: lxv v3, 16(r3)
321321
; CHECK-BE-NEXT: dmsetdmrz dmr0
322-
; CHECK-BE-NEXT: dmxxinstdmr256 dmrrowp0, vsp34, 0
322+
; CHECK-BE-NEXT: dmxxinstdmr256 dmr0, vsp34, 0
323323
; CHECK-BE-NEXT: dmxxextfdmr512 vsp34, vsp36, wacc_hi0, 1
324324
; CHECK-BE-NEXT: stxvp vsp36, 96(r7)
325325
; CHECK-BE-NEXT: stxvp vsp34, 64(r7)
@@ -328,21 +328,21 @@ define void @tins256(ptr %vp1, ptr %vp2, ptr %vp3, ptr %vp4, ptr %rp1, ptr %rp2,
328328
; CHECK-BE-NEXT: stxvp vsp34, 0(r7)
329329
; CHECK-BE-NEXT: lxv v2, 0(r4)
330330
; CHECK-BE-NEXT: lxv v3, 16(r4)
331-
; CHECK-BE-NEXT: dmxxinstdmr256 dmrrowp1, vsp34, 1
331+
; CHECK-BE-NEXT: dmxxinstdmr256 dmr0, vsp34, 1
332332
; CHECK-BE-NEXT: dmxxextfdmr512 vsp36, vsp32, wacc_hi0, 1
333333
; CHECK-BE-NEXT: stxvp vsp32, 96(r8)
334334
; CHECK-BE-NEXT: stxvp vsp36, 64(r8)
335335
; CHECK-BE-NEXT: dmxxextfdmr512 vsp36, vsp32, wacc0, 0
336336
; CHECK-BE-NEXT: stxvp vsp32, 32(r8)
337337
; CHECK-BE-NEXT: stxvp vsp36, 0(r8)
338-
; CHECK-BE-NEXT: dmxxinstdmr256 dmrrowp2, vsp34, 2
338+
; CHECK-BE-NEXT: dmxxinstdmr256 dmr0, vsp34, 2
339339
; CHECK-BE-NEXT: dmxxextfdmr512 vsp36, vsp32, wacc_hi0, 1
340340
; CHECK-BE-NEXT: stxvp vsp32, 96(r9)
341341
; CHECK-BE-NEXT: stxvp vsp36, 64(r9)
342342
; CHECK-BE-NEXT: dmxxextfdmr512 vsp36, vsp32, wacc0, 0
343343
; CHECK-BE-NEXT: stxvp vsp32, 32(r9)
344344
; CHECK-BE-NEXT: stxvp vsp36, 0(r9)
345-
; CHECK-BE-NEXT: dmxxinstdmr256 dmrrowp3, vsp34, 3
345+
; CHECK-BE-NEXT: dmxxinstdmr256 dmr0, vsp34, 3
346346
; CHECK-BE-NEXT: dmxxextfdmr512 vsp34, vsp36, wacc_hi0, 1
347347
; CHECK-BE-NEXT: stxvp vsp36, 96(r10)
348348
; CHECK-BE-NEXT: stxvp vsp34, 64(r10)

0 commit comments

Comments
 (0)