Skip to content

Commit d4f2b71

Browse files
authored
[X86] Fix position of immediate argument in AVX512 VPCMP comparisons (#116646)
The 'i' arg was being put between the 'm' and 'b' args instead of afterwards like other avx512 instructions (VCMPPS/D, VPERMILPS/D etc.).
1 parent 738a047 commit d4f2b71

File tree

9 files changed

+106
-106
lines changed

9 files changed

+106
-106
lines changed

llvm/lib/Target/X86/MCTargetDesc/X86ATTInstPrinter.cpp

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -318,18 +318,18 @@ bool X86ATTInstPrinter::printVecCompareInstr(const MCInst *MI,
318318
case X86::VPCMPWZ128rmik: case X86::VPCMPWZ128rrik:
319319
case X86::VPCMPWZ256rmik: case X86::VPCMPWZ256rrik:
320320
case X86::VPCMPWZrmik: case X86::VPCMPWZrrik:
321-
case X86::VPCMPDZ128rmib: case X86::VPCMPDZ128rmibk:
322-
case X86::VPCMPDZ256rmib: case X86::VPCMPDZ256rmibk:
323-
case X86::VPCMPDZrmib: case X86::VPCMPDZrmibk:
324-
case X86::VPCMPQZ128rmib: case X86::VPCMPQZ128rmibk:
325-
case X86::VPCMPQZ256rmib: case X86::VPCMPQZ256rmibk:
326-
case X86::VPCMPQZrmib: case X86::VPCMPQZrmibk:
327-
case X86::VPCMPUDZ128rmib: case X86::VPCMPUDZ128rmibk:
328-
case X86::VPCMPUDZ256rmib: case X86::VPCMPUDZ256rmibk:
329-
case X86::VPCMPUDZrmib: case X86::VPCMPUDZrmibk:
330-
case X86::VPCMPUQZ128rmib: case X86::VPCMPUQZ128rmibk:
331-
case X86::VPCMPUQZ256rmib: case X86::VPCMPUQZ256rmibk:
332-
case X86::VPCMPUQZrmib: case X86::VPCMPUQZrmibk:
321+
case X86::VPCMPDZ128rmbi: case X86::VPCMPDZ128rmbik:
322+
case X86::VPCMPDZ256rmbi: case X86::VPCMPDZ256rmbik:
323+
case X86::VPCMPDZrmbi: case X86::VPCMPDZrmbik:
324+
case X86::VPCMPQZ128rmbi: case X86::VPCMPQZ128rmbik:
325+
case X86::VPCMPQZ256rmbi: case X86::VPCMPQZ256rmbik:
326+
case X86::VPCMPQZrmbi: case X86::VPCMPQZrmbik:
327+
case X86::VPCMPUDZ128rmbi: case X86::VPCMPUDZ128rmbik:
328+
case X86::VPCMPUDZ256rmbi: case X86::VPCMPUDZ256rmbik:
329+
case X86::VPCMPUDZrmbi: case X86::VPCMPUDZrmbik:
330+
case X86::VPCMPUQZ128rmbi: case X86::VPCMPUQZ128rmbik:
331+
case X86::VPCMPUQZ256rmbi: case X86::VPCMPUQZ256rmbik:
332+
case X86::VPCMPUQZrmbi: case X86::VPCMPUQZrmbik:
333333
if ((Imm >= 0 && Imm <= 2) || (Imm >= 4 && Imm <= 6)) {
334334
OS << '\t';
335335
printVPCMPMnemonic(MI, OS);

llvm/lib/Target/X86/MCTargetDesc/X86EncodingOptimization.cpp

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -223,38 +223,38 @@ bool X86::optimizeVPCMPWithImmediateOneOrSix(MCInst &MI) {
223223
FROM_TO(VPCMPBZrri, VPCMPEQBZrr, VPCMPGTBZrr)
224224
FROM_TO(VPCMPBZrrik, VPCMPEQBZrrk, VPCMPGTBZrrk)
225225
FROM_TO(VPCMPDZ128rmi, VPCMPEQDZ128rm, VPCMPGTDZ128rm)
226-
FROM_TO(VPCMPDZ128rmib, VPCMPEQDZ128rmb, VPCMPGTDZ128rmb)
227-
FROM_TO(VPCMPDZ128rmibk, VPCMPEQDZ128rmbk, VPCMPGTDZ128rmbk)
226+
FROM_TO(VPCMPDZ128rmbi, VPCMPEQDZ128rmb, VPCMPGTDZ128rmb)
227+
FROM_TO(VPCMPDZ128rmbik, VPCMPEQDZ128rmbk, VPCMPGTDZ128rmbk)
228228
FROM_TO(VPCMPDZ128rmik, VPCMPEQDZ128rmk, VPCMPGTDZ128rmk)
229229
FROM_TO(VPCMPDZ128rri, VPCMPEQDZ128rr, VPCMPGTDZ128rr)
230230
FROM_TO(VPCMPDZ128rrik, VPCMPEQDZ128rrk, VPCMPGTDZ128rrk)
231231
FROM_TO(VPCMPDZ256rmi, VPCMPEQDZ256rm, VPCMPGTDZ256rm)
232-
FROM_TO(VPCMPDZ256rmib, VPCMPEQDZ256rmb, VPCMPGTDZ256rmb)
233-
FROM_TO(VPCMPDZ256rmibk, VPCMPEQDZ256rmbk, VPCMPGTDZ256rmbk)
232+
FROM_TO(VPCMPDZ256rmbi, VPCMPEQDZ256rmb, VPCMPGTDZ256rmb)
233+
FROM_TO(VPCMPDZ256rmbik, VPCMPEQDZ256rmbk, VPCMPGTDZ256rmbk)
234234
FROM_TO(VPCMPDZ256rmik, VPCMPEQDZ256rmk, VPCMPGTDZ256rmk)
235235
FROM_TO(VPCMPDZ256rri, VPCMPEQDZ256rr, VPCMPGTDZ256rr)
236236
FROM_TO(VPCMPDZ256rrik, VPCMPEQDZ256rrk, VPCMPGTDZ256rrk)
237237
FROM_TO(VPCMPDZrmi, VPCMPEQDZrm, VPCMPGTDZrm)
238-
FROM_TO(VPCMPDZrmib, VPCMPEQDZrmb, VPCMPGTDZrmb)
239-
FROM_TO(VPCMPDZrmibk, VPCMPEQDZrmbk, VPCMPGTDZrmbk)
238+
FROM_TO(VPCMPDZrmbi, VPCMPEQDZrmb, VPCMPGTDZrmb)
239+
FROM_TO(VPCMPDZrmbik, VPCMPEQDZrmbk, VPCMPGTDZrmbk)
240240
FROM_TO(VPCMPDZrmik, VPCMPEQDZrmk, VPCMPGTDZrmk)
241241
FROM_TO(VPCMPDZrri, VPCMPEQDZrr, VPCMPGTDZrr)
242242
FROM_TO(VPCMPDZrrik, VPCMPEQDZrrk, VPCMPGTDZrrk)
243243
FROM_TO(VPCMPQZ128rmi, VPCMPEQQZ128rm, VPCMPGTQZ128rm)
244-
FROM_TO(VPCMPQZ128rmib, VPCMPEQQZ128rmb, VPCMPGTQZ128rmb)
245-
FROM_TO(VPCMPQZ128rmibk, VPCMPEQQZ128rmbk, VPCMPGTQZ128rmbk)
244+
FROM_TO(VPCMPQZ128rmbi, VPCMPEQQZ128rmb, VPCMPGTQZ128rmb)
245+
FROM_TO(VPCMPQZ128rmbik, VPCMPEQQZ128rmbk, VPCMPGTQZ128rmbk)
246246
FROM_TO(VPCMPQZ128rmik, VPCMPEQQZ128rmk, VPCMPGTQZ128rmk)
247247
FROM_TO(VPCMPQZ128rri, VPCMPEQQZ128rr, VPCMPGTQZ128rr)
248248
FROM_TO(VPCMPQZ128rrik, VPCMPEQQZ128rrk, VPCMPGTQZ128rrk)
249249
FROM_TO(VPCMPQZ256rmi, VPCMPEQQZ256rm, VPCMPGTQZ256rm)
250-
FROM_TO(VPCMPQZ256rmib, VPCMPEQQZ256rmb, VPCMPGTQZ256rmb)
251-
FROM_TO(VPCMPQZ256rmibk, VPCMPEQQZ256rmbk, VPCMPGTQZ256rmbk)
250+
FROM_TO(VPCMPQZ256rmbi, VPCMPEQQZ256rmb, VPCMPGTQZ256rmb)
251+
FROM_TO(VPCMPQZ256rmbik, VPCMPEQQZ256rmbk, VPCMPGTQZ256rmbk)
252252
FROM_TO(VPCMPQZ256rmik, VPCMPEQQZ256rmk, VPCMPGTQZ256rmk)
253253
FROM_TO(VPCMPQZ256rri, VPCMPEQQZ256rr, VPCMPGTQZ256rr)
254254
FROM_TO(VPCMPQZ256rrik, VPCMPEQQZ256rrk, VPCMPGTQZ256rrk)
255255
FROM_TO(VPCMPQZrmi, VPCMPEQQZrm, VPCMPGTQZrm)
256-
FROM_TO(VPCMPQZrmib, VPCMPEQQZrmb, VPCMPGTQZrmb)
257-
FROM_TO(VPCMPQZrmibk, VPCMPEQQZrmbk, VPCMPGTQZrmbk)
256+
FROM_TO(VPCMPQZrmbi, VPCMPEQQZrmb, VPCMPGTQZrmb)
257+
FROM_TO(VPCMPQZrmbik, VPCMPEQQZrmbk, VPCMPGTQZrmbk)
258258
FROM_TO(VPCMPQZrmik, VPCMPEQQZrmk, VPCMPGTQZrmk)
259259
FROM_TO(VPCMPQZrri, VPCMPEQQZrr, VPCMPGTQZrr)
260260
FROM_TO(VPCMPQZrrik, VPCMPEQQZrrk, VPCMPGTQZrrk)

llvm/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.cpp

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -168,9 +168,9 @@ void X86InstPrinterCommon::printVPCMPMnemonic(const MCInst *MI,
168168
case X86::VPCMPDZ128rmik: case X86::VPCMPDZ128rrik:
169169
case X86::VPCMPDZ256rmik: case X86::VPCMPDZ256rrik:
170170
case X86::VPCMPDZrmik: case X86::VPCMPDZrrik:
171-
case X86::VPCMPDZ128rmib: case X86::VPCMPDZ128rmibk:
172-
case X86::VPCMPDZ256rmib: case X86::VPCMPDZ256rmibk:
173-
case X86::VPCMPDZrmib: case X86::VPCMPDZrmibk:
171+
case X86::VPCMPDZ128rmbi: case X86::VPCMPDZ128rmbik:
172+
case X86::VPCMPDZ256rmbi: case X86::VPCMPDZ256rmbik:
173+
case X86::VPCMPDZrmbi: case X86::VPCMPDZrmbik:
174174
OS << "d\t";
175175
break;
176176
case X86::VPCMPQZ128rmi: case X86::VPCMPQZ128rri:
@@ -179,9 +179,9 @@ void X86InstPrinterCommon::printVPCMPMnemonic(const MCInst *MI,
179179
case X86::VPCMPQZ128rmik: case X86::VPCMPQZ128rrik:
180180
case X86::VPCMPQZ256rmik: case X86::VPCMPQZ256rrik:
181181
case X86::VPCMPQZrmik: case X86::VPCMPQZrrik:
182-
case X86::VPCMPQZ128rmib: case X86::VPCMPQZ128rmibk:
183-
case X86::VPCMPQZ256rmib: case X86::VPCMPQZ256rmibk:
184-
case X86::VPCMPQZrmib: case X86::VPCMPQZrmibk:
182+
case X86::VPCMPQZ128rmbi: case X86::VPCMPQZ128rmbik:
183+
case X86::VPCMPQZ256rmbi: case X86::VPCMPQZ256rmbik:
184+
case X86::VPCMPQZrmbi: case X86::VPCMPQZrmbik:
185185
OS << "q\t";
186186
break;
187187
case X86::VPCMPUBZ128rmi: case X86::VPCMPUBZ128rri:
@@ -198,9 +198,9 @@ void X86InstPrinterCommon::printVPCMPMnemonic(const MCInst *MI,
198198
case X86::VPCMPUDZ128rmik: case X86::VPCMPUDZ128rrik:
199199
case X86::VPCMPUDZ256rmik: case X86::VPCMPUDZ256rrik:
200200
case X86::VPCMPUDZrmik: case X86::VPCMPUDZrrik:
201-
case X86::VPCMPUDZ128rmib: case X86::VPCMPUDZ128rmibk:
202-
case X86::VPCMPUDZ256rmib: case X86::VPCMPUDZ256rmibk:
203-
case X86::VPCMPUDZrmib: case X86::VPCMPUDZrmibk:
201+
case X86::VPCMPUDZ128rmbi: case X86::VPCMPUDZ128rmbik:
202+
case X86::VPCMPUDZ256rmbi: case X86::VPCMPUDZ256rmbik:
203+
case X86::VPCMPUDZrmbi: case X86::VPCMPUDZrmbik:
204204
OS << "ud\t";
205205
break;
206206
case X86::VPCMPUQZ128rmi: case X86::VPCMPUQZ128rri:
@@ -209,9 +209,9 @@ void X86InstPrinterCommon::printVPCMPMnemonic(const MCInst *MI,
209209
case X86::VPCMPUQZ128rmik: case X86::VPCMPUQZ128rrik:
210210
case X86::VPCMPUQZ256rmik: case X86::VPCMPUQZ256rrik:
211211
case X86::VPCMPUQZrmik: case X86::VPCMPUQZrrik:
212-
case X86::VPCMPUQZ128rmib: case X86::VPCMPUQZ128rmibk:
213-
case X86::VPCMPUQZ256rmib: case X86::VPCMPUQZ256rmibk:
214-
case X86::VPCMPUQZrmib: case X86::VPCMPUQZrmibk:
212+
case X86::VPCMPUQZ128rmbi: case X86::VPCMPUQZ128rmbik:
213+
case X86::VPCMPUQZ256rmbi: case X86::VPCMPUQZ256rmbik:
214+
case X86::VPCMPUQZrmbi: case X86::VPCMPUQZrmbik:
215215
OS << "uq\t";
216216
break;
217217
case X86::VPCMPUWZ128rmi: case X86::VPCMPUWZ128rri:

llvm/lib/Target/X86/MCTargetDesc/X86IntelInstPrinter.cpp

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -295,18 +295,18 @@ bool X86IntelInstPrinter::printVecCompareInstr(const MCInst *MI, raw_ostream &OS
295295
case X86::VPCMPWZ128rmik: case X86::VPCMPWZ128rrik:
296296
case X86::VPCMPWZ256rmik: case X86::VPCMPWZ256rrik:
297297
case X86::VPCMPWZrmik: case X86::VPCMPWZrrik:
298-
case X86::VPCMPDZ128rmib: case X86::VPCMPDZ128rmibk:
299-
case X86::VPCMPDZ256rmib: case X86::VPCMPDZ256rmibk:
300-
case X86::VPCMPDZrmib: case X86::VPCMPDZrmibk:
301-
case X86::VPCMPQZ128rmib: case X86::VPCMPQZ128rmibk:
302-
case X86::VPCMPQZ256rmib: case X86::VPCMPQZ256rmibk:
303-
case X86::VPCMPQZrmib: case X86::VPCMPQZrmibk:
304-
case X86::VPCMPUDZ128rmib: case X86::VPCMPUDZ128rmibk:
305-
case X86::VPCMPUDZ256rmib: case X86::VPCMPUDZ256rmibk:
306-
case X86::VPCMPUDZrmib: case X86::VPCMPUDZrmibk:
307-
case X86::VPCMPUQZ128rmib: case X86::VPCMPUQZ128rmibk:
308-
case X86::VPCMPUQZ256rmib: case X86::VPCMPUQZ256rmibk:
309-
case X86::VPCMPUQZrmib: case X86::VPCMPUQZrmibk:
298+
case X86::VPCMPDZ128rmbi: case X86::VPCMPDZ128rmbik:
299+
case X86::VPCMPDZ256rmbi: case X86::VPCMPDZ256rmbik:
300+
case X86::VPCMPDZrmbi: case X86::VPCMPDZrmbik:
301+
case X86::VPCMPQZ128rmbi: case X86::VPCMPQZ128rmbik:
302+
case X86::VPCMPQZ256rmbi: case X86::VPCMPQZ256rmbik:
303+
case X86::VPCMPQZrmbi: case X86::VPCMPQZrmbik:
304+
case X86::VPCMPUDZ128rmbi: case X86::VPCMPUDZ128rmbik:
305+
case X86::VPCMPUDZ256rmbi: case X86::VPCMPUDZ256rmbik:
306+
case X86::VPCMPUDZrmbi: case X86::VPCMPUDZrmbik:
307+
case X86::VPCMPUQZ128rmbi: case X86::VPCMPUQZ128rmbik:
308+
case X86::VPCMPUQZ256rmbi: case X86::VPCMPUQZ256rmbik:
309+
case X86::VPCMPUQZrmbi: case X86::VPCMPUQZrmbik:
310310
if ((Imm >= 0 && Imm <= 2) || (Imm >= 4 && Imm <= 6)) {
311311
OS << '\t';
312312
printVPCMPMnemonic(MI, OS);

llvm/lib/Target/X86/X86InstrAVX512.td

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2190,7 +2190,7 @@ multiclass avx512_icmp_cc_rmb<bits<8> opc, string Suffix, PatFrag Frag,
21902190
PatFrag Frag_su, X86FoldableSchedWrite sched,
21912191
X86VectorVTInfo _, string Name> :
21922192
avx512_icmp_cc<opc, Suffix, Frag, Frag_su, sched, _, Name> {
2193-
def rmib : AVX512AIi8<opc, MRMSrcMem,
2193+
def rmbi : AVX512AIi8<opc, MRMSrcMem,
21942194
(outs _.KRC:$dst), (ins _.RC:$src1, _.ScalarMemOp:$src2,
21952195
u8imm:$cc),
21962196
!strconcat("vpcmp", Suffix,
@@ -2201,7 +2201,7 @@ multiclass avx512_icmp_cc_rmb<bits<8> opc, string Suffix, PatFrag Frag,
22012201
(_.BroadcastLdFrag addr:$src2),
22022202
cond)))]>,
22032203
EVEX, VVVV, EVEX_B, Sched<[sched.Folded, sched.ReadAfterFold]>;
2204-
def rmibk : AVX512AIi8<opc, MRMSrcMem,
2204+
def rmbik : AVX512AIi8<opc, MRMSrcMem,
22052205
(outs _.KRC:$dst), (ins _.KRCWM:$mask, _.RC:$src1,
22062206
_.ScalarMemOp:$src2, u8imm:$cc),
22072207
!strconcat("vpcmp", Suffix,
@@ -2216,13 +2216,13 @@ multiclass avx512_icmp_cc_rmb<bits<8> opc, string Suffix, PatFrag Frag,
22162216

22172217
def : Pat<(_.KVT (Frag:$cc (_.BroadcastLdFrag addr:$src2),
22182218
(_.VT _.RC:$src1), cond)),
2219-
(!cast<Instruction>(Name#_.ZSuffix#"rmib")
2219+
(!cast<Instruction>(Name#_.ZSuffix#"rmbi")
22202220
_.RC:$src1, addr:$src2, (X86pcmpm_imm_commute $cc))>;
22212221

22222222
def : Pat<(and _.KRCWM:$mask,
22232223
(_.KVT (Frag_su:$cc (_.BroadcastLdFrag addr:$src2),
22242224
(_.VT _.RC:$src1), cond))),
2225-
(!cast<Instruction>(Name#_.ZSuffix#"rmibk")
2225+
(!cast<Instruction>(Name#_.ZSuffix#"rmbik")
22262226
_.KRCWM:$mask, _.RC:$src1, addr:$src2,
22272227
(X86pcmpm_imm_commute $cc))>;
22282228
}
@@ -2992,7 +2992,7 @@ multiclass axv512_icmp_packed_cc_rmb_no_vlx_lowering<PatFrag Frag, PatFrag Frag_
29922992
def : Pat<(Narrow.KVT (Frag:$cc (Narrow.VT Narrow.RC:$src1),
29932993
(Narrow.BroadcastLdFrag addr:$src2), cond)),
29942994
(COPY_TO_REGCLASS
2995-
(!cast<Instruction>(InstStr#"Zrmib")
2995+
(!cast<Instruction>(InstStr#"Zrmbi")
29962996
(Wide.VT (INSERT_SUBREG (IMPLICIT_DEF), Narrow.RC:$src1, Narrow.SubRegIdx)),
29972997
addr:$src2, (X86pcmpm_imm $cc)), Narrow.KRC)>;
29982998

@@ -3001,7 +3001,7 @@ def : Pat<(Narrow.KVT (and Narrow.KRC:$mask,
30013001
(Frag_su:$cc (Narrow.VT Narrow.RC:$src1),
30023002
(Narrow.BroadcastLdFrag addr:$src2),
30033003
cond)))),
3004-
(COPY_TO_REGCLASS (!cast<Instruction>(InstStr#"Zrmibk")
3004+
(COPY_TO_REGCLASS (!cast<Instruction>(InstStr#"Zrmbik")
30053005
(COPY_TO_REGCLASS Narrow.KRC:$mask, Wide.KRC),
30063006
(Wide.VT (INSERT_SUBREG (IMPLICIT_DEF), Narrow.RC:$src1, Narrow.SubRegIdx)),
30073007
addr:$src2, (X86pcmpm_imm $cc)), Narrow.KRC)>;
@@ -3011,7 +3011,7 @@ def : Pat<(Narrow.KVT (Frag:$cc (Narrow.BroadcastLdFrag addr:$src2),
30113011
(Narrow.VT Narrow.RC:$src1),
30123012
cond)),
30133013
(COPY_TO_REGCLASS
3014-
(!cast<Instruction>(InstStr#"Zrmib")
3014+
(!cast<Instruction>(InstStr#"Zrmbi")
30153015
(Wide.VT (INSERT_SUBREG (IMPLICIT_DEF), Narrow.RC:$src1, Narrow.SubRegIdx)),
30163016
addr:$src2, (X86pcmpm_imm_commute $cc)), Narrow.KRC)>;
30173017

@@ -3020,7 +3020,7 @@ def : Pat<(Narrow.KVT (and Narrow.KRC:$mask,
30203020
(Frag_su:$cc (Narrow.BroadcastLdFrag addr:$src2),
30213021
(Narrow.VT Narrow.RC:$src1),
30223022
cond)))),
3023-
(COPY_TO_REGCLASS (!cast<Instruction>(InstStr#"Zrmibk")
3023+
(COPY_TO_REGCLASS (!cast<Instruction>(InstStr#"Zrmbik")
30243024
(COPY_TO_REGCLASS Narrow.KRC:$mask, Wide.KRC),
30253025
(Wide.VT (INSERT_SUBREG (IMPLICIT_DEF), Narrow.RC:$src1, Narrow.SubRegIdx)),
30263026
addr:$src2, (X86pcmpm_imm_commute $cc)), Narrow.KRC)>;

llvm/lib/Target/X86/X86SchedIceLake.td

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1730,13 +1730,13 @@ def: InstRW<[ICXWriteResGroup136_2], (instregex "VCMP(PD|PS)Z128rm(b?)i",
17301730
"VCMP(SD|SS)Zrm",
17311731
"VFPCLASSPDZ128rm(b?)",
17321732
"VFPCLASSPSZ128rm(b?)",
1733-
"VPCMPBZ128rmi(b?)",
1734-
"VPCMPDZ128rmi(b?)",
1733+
"VPCMPBZ128rm(b?)i",
1734+
"VPCMPDZ128rm(b?)i",
17351735
"VPCMPEQ(B|D|Q|W)Z128rm(b?)",
17361736
"VPCMPGT(B|D|Q|W)Z128rm(b?)",
1737-
"VPCMPQZ128rmi(b?)",
1738-
"VPCMPU(B|D|Q|W)Z128rmi(b?)",
1739-
"VPCMPWZ128rmi(b?)",
1737+
"VPCMPQZ128rm(b?)i",
1738+
"VPCMPU(B|D|Q|W)Z128rm(b?)i",
1739+
"VPCMPWZ128rm(b?)i",
17401740
"(V?)PACK(U|S)S(DW|WB)(Z128)?rm",
17411741
"VPTESTMBZ128rm(b?)",
17421742
"VPTESTMDZ128rm(b?)",
@@ -1795,8 +1795,8 @@ def: InstRW<[ICXWriteResGroup148_2], (instregex "VCMPPD(Z|Z256)rm(b?)i",
17951795
"VCMPPS(Z|Z256)rm(b?)i",
17961796
"VFPCLASSPD(Z|Z256)rm(b?)",
17971797
"VFPCLASSPS(Z|Z256)rm(b?)",
1798-
"VPCMPB(Z|Z256)rmi(b?)",
1799-
"VPCMPD(Z|Z256)rmi(b?)",
1798+
"VPCMPB(Z|Z256)rm(b?)i",
1799+
"VPCMPD(Z|Z256)rm(b?)i",
18001800
"VPCMPEQB(Z|Z256)rm(b?)",
18011801
"VPCMPEQD(Z|Z256)rm(b?)",
18021802
"VPCMPEQQ(Z|Z256)rm(b?)",
@@ -1805,10 +1805,10 @@ def: InstRW<[ICXWriteResGroup148_2], (instregex "VCMPPD(Z|Z256)rm(b?)i",
18051805
"VPCMPGTD(Z|Z256)rm(b?)",
18061806
"VPCMPGTQ(Z|Z256)rm(b?)",
18071807
"VPCMPGTW(Z|Z256)rm(b?)",
1808-
"VPCMPQ(Z|Z256)rmi(b?)",
1809-
"VPCMPU(B|D|Q|W)Z256rmi(b?)",
1810-
"VPCMPU(B|D|Q|W)Zrmi(b?)",
1811-
"VPCMPW(Z|Z256)rmi(b?)",
1808+
"VPCMPQ(Z|Z256)rm(b?)i",
1809+
"VPCMPU(B|D|Q|W)Z256rm(b?)i",
1810+
"VPCMPU(B|D|Q|W)Zrm(b?)i",
1811+
"VPCMPW(Z|Z256)rm(b?)i",
18121812
"(V?)PACK(U|S)S(DW|WB)(Y|Z|Z256)rm",
18131813
"VPTESTM(B|D|Q|W)Z256rm(b?)",
18141814
"VPTESTM(B|D|Q|W)Zrm(b?)",

llvm/lib/Target/X86/X86SchedSapphireRapids.td

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2726,22 +2726,22 @@ def : InstRW<[SPRWriteResGroup263, ReadAfterVecXLd], (instregex "^VCMPP(D|H|S)Z1
27262726
"^VCMPP(D|H|S)Z128rm(i|bik)$",
27272727
"^VFPCLASSP(D|H|S)Z128rm(b?)k$",
27282728
"^VPCMP(B|D|Q|W|UD|UQ|UW)Z128rmi(k?)$",
2729-
"^VPCMP(D|Q|UQ)Z128rmib(k?)$",
2729+
"^VPCMP(D|Q|UQ)Z128rmbi(k?)$",
27302730
"^VPCMP(EQ|GT)(B|D|Q|W)Z128rm(k?)$",
27312731
"^VPCMP(EQ|GT)(D|Q)Z128rmb(k?)$",
27322732
"^VPCMPUBZ128rmi(k?)$",
2733-
"^VPCMPUDZ128rmib(k?)$",
2733+
"^VPCMPUDZ128rmbi(k?)$",
27342734
"^VPTEST(N?)M(B|D|Q|W)Z128rm(k?)$",
27352735
"^VPTEST(N?)M(D|Q)Z128rmb(k?)$")>;
27362736
def : InstRW<[SPRWriteResGroup263, ReadAfterVecYLd], (instregex "^VCMPP(D|H|S)Z((256)?)rm(bi|ik)$",
27372737
"^VCMPP(D|H|S)Z((256)?)rm(i|bik)$",
27382738
"^VFPCLASSP(D|H|S)Z((256)?)rm(b?)k$",
27392739
"^VPCMP(B|D|Q|W|UD|UQ|UW)Z((256)?)rmi(k?)$",
2740-
"^VPCMP(D|Q|UQ)Z((256)?)rmib(k?)$",
2740+
"^VPCMP(D|Q|UQ)Z((256)?)rmbi(k?)$",
27412741
"^VPCMP(EQ|GT)(B|D|Q|W)Z((256)?)rm(k?)$",
27422742
"^VPCMP(EQ|GT)(D|Q)Z((256)?)rmb(k?)$",
27432743
"^VPCMPUBZ((256)?)rmi(k?)$",
2744-
"^VPCMPUDZ((256)?)rmib(k?)$",
2744+
"^VPCMPUDZ((256)?)rmbi(k?)$",
27452745
"^VPTEST(N?)M(B|D|Q|W)Z((256)?)rm(k?)$",
27462746
"^VPTEST(N?)M(D|Q)Z((256)?)rmb(k?)$")>;
27472747
def : InstRW<[SPRWriteResGroup263, ReadAfterVecLd], (instregex "^VCMPS(D|H|S)Zrmi$",

0 commit comments

Comments
 (0)