Skip to content

Commit 7502a85

Browse files
author
git apple-llvm automerger
committed
Merge commit '9fa517208fbf' from llvm.org/main into next
2 parents 9b45e8f + 9fa5172 commit 7502a85

File tree

5 files changed

+88
-80
lines changed

5 files changed

+88
-80
lines changed

llvm/lib/Target/RISCV/RISCVSchedRocket.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ defm : UnsupportedSchedZbs;
259259
defm : UnsupportedSchedZbkb;
260260
defm : UnsupportedSchedZbkx;
261261
defm : UnsupportedSchedZfa;
262-
defm : UnsupportedSchedZfh;
262+
defm : UnsupportedSchedZfhmin;
263263
defm : UnsupportedSchedSFB;
264264
defm : UnsupportedSchedXsfvcp;
265265
defm : UnsupportedSchedZvk;

llvm/lib/Target/RISCV/RISCVSchedSyntacoreSCR345.td

Lines changed: 26 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -179,27 +179,27 @@ multiclass SCR_Other {
179179
}
180180

181181
// Unsupported scheduling classes for SCR3-5.
182-
multiclass SCR_Unsupported {
183-
defm : UnsupportedSchedSFB;
184-
defm : UnsupportedSchedV;
185-
defm : UnsupportedSchedXsfvcp;
186-
defm : UnsupportedSchedZabha;
187-
defm : UnsupportedSchedZba;
188-
defm : UnsupportedSchedZbb;
189-
defm : UnsupportedSchedZbc;
190-
defm : UnsupportedSchedZbs;
191-
defm : UnsupportedSchedZbkb;
192-
defm : UnsupportedSchedZbkx;
193-
defm : UnsupportedSchedZfa;
194-
defm : UnsupportedSchedZfh;
195-
defm : UnsupportedSchedZvk;
196-
}
197-
198-
multiclass SCR3_Unsupported {
199-
defm : SCR_Unsupported;
200-
defm : UnsupportedSchedD;
201-
defm : UnsupportedSchedF;
202-
}
182+
multiclass SCR_Unsupported :
183+
UnsupportedSchedSFB,
184+
UnsupportedSchedV,
185+
UnsupportedSchedXsfvcp,
186+
UnsupportedSchedZabha,
187+
UnsupportedSchedZba,
188+
UnsupportedSchedZbb,
189+
UnsupportedSchedZbc,
190+
UnsupportedSchedZbs,
191+
UnsupportedSchedZbkb,
192+
UnsupportedSchedZbkx,
193+
UnsupportedSchedZfa,
194+
UnsupportedSchedZvk;
195+
196+
multiclass SCR3_Unsupported :
197+
SCR_Unsupported,
198+
UnsupportedSchedF;
199+
200+
multiclass SCR4_SCR5_Unsupported :
201+
SCR_Unsupported,
202+
UnsupportedSchedZfhmin;
203203

204204
// Bypasses (none)
205205
multiclass SCR_NoReadAdvances {
@@ -231,8 +231,7 @@ multiclass SCR_NoReadAdvances {
231231
}
232232

233233
// Floating-point bypasses (none)
234-
multiclass SCR4_SCR5_NoReadAdvances {
235-
defm : SCR_NoReadAdvances;
234+
multiclass SCR4_SCR5_NoReadAdvances : SCR_NoReadAdvances {
236235
def : ReadAdvance<ReadFStoreData, 0>;
237236
def : ReadAdvance<ReadFMemBase, 0>;
238237
def : ReadAdvance<ReadFAdd32, 0>;
@@ -353,7 +352,7 @@ let SchedModel = SyntacoreSCR4RV32Model in {
353352
defm : SCR_FDU<SCR4RV32_FDU>;
354353
defm : SCR_Other;
355354

356-
defm : SCR_Unsupported;
355+
defm : SCR4_SCR5_Unsupported;
357356
defm : SCR4_SCR5_NoReadAdvances;
358357
}
359358

@@ -383,7 +382,7 @@ let SchedModel = SyntacoreSCR4RV64Model in {
383382
defm : SCR_FDU<SCR4RV64_FDU>;
384383
defm : SCR_Other;
385384

386-
defm : SCR_Unsupported;
385+
defm : SCR4_SCR5_Unsupported;
387386
defm : SCR4_SCR5_NoReadAdvances;
388387
}
389388

@@ -416,7 +415,7 @@ let SchedModel = SyntacoreSCR5RV32Model in {
416415
defm : SCR_FDU<SCR5RV32_FDU>;
417416
defm : SCR_Other;
418417

419-
defm : SCR_Unsupported;
418+
defm : SCR4_SCR5_Unsupported;
420419
defm : SCR4_SCR5_NoReadAdvances;
421420
}
422421

@@ -446,6 +445,6 @@ let SchedModel = SyntacoreSCR5RV64Model in {
446445
defm : SCR_FDU<SCR5RV64_FDU>;
447446
defm : SCR_Other;
448447

449-
defm : SCR_Unsupported;
448+
defm : SCR4_SCR5_Unsupported;
450449
defm : SCR4_SCR5_NoReadAdvances;
451450
}

llvm/lib/Target/RISCV/RISCVSchedSyntacoreSCR7.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ multiclass SCR7_Unsupported {
246246
defm : UnsupportedSchedXsfvcp;
247247
defm : UnsupportedSchedZabha;
248248
defm : UnsupportedSchedZfa;
249-
defm : UnsupportedSchedZfh;
249+
defm : UnsupportedSchedZfhmin;
250250
defm : UnsupportedSchedZvk;
251251
}
252252

llvm/lib/Target/RISCV/RISCVSchedXiangShanNanHu.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,7 @@ def : ReadAdvance<ReadXPERM, 0>;
308308
// Unsupported extensions
309309
defm : UnsupportedSchedV;
310310
defm : UnsupportedSchedZfa;
311-
defm : UnsupportedSchedZfh;
311+
defm : UnsupportedSchedZfhmin;
312312
defm : UnsupportedSchedSFB;
313313
defm : UnsupportedSchedZabha;
314314
defm : UnsupportedSchedXsfvcp;

llvm/lib/Target/RISCV/RISCVSchedule.td

Lines changed: 59 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -211,90 +211,57 @@ def ReadFClass16 : SchedRead;
211211
def ReadFClass32 : SchedRead;
212212
def ReadFClass64 : SchedRead;
213213

214+
// For CPUs that support Zfhmin, but not Zfh.
214215
multiclass UnsupportedSchedZfh {
215216
let Unsupported = true in {
216217
def : WriteRes<WriteFAdd16, []>;
217218
def : WriteRes<WriteFClass16, []>;
218-
def : WriteRes<WriteFCvtF16ToF64, []>;
219-
def : WriteRes<WriteFCvtF64ToF16, []>;
220219
def : WriteRes<WriteFCvtI64ToF16, []>;
221-
def : WriteRes<WriteFCvtF32ToF16, []>;
222220
def : WriteRes<WriteFCvtI32ToF16, []>;
223221
def : WriteRes<WriteFCvtF16ToI64, []>;
224-
def : WriteRes<WriteFCvtF16ToF32, []>;
225222
def : WriteRes<WriteFCvtF16ToI32, []>;
226223
def : WriteRes<WriteFDiv16, []>;
227224
def : WriteRes<WriteFCmp16, []>;
228-
def : WriteRes<WriteFLD16, []>;
229225
def : WriteRes<WriteFMA16, []>;
230226
def : WriteRes<WriteFMinMax16, []>;
231227
def : WriteRes<WriteFMul16, []>;
232-
def : WriteRes<WriteFMovI16ToF16, []>;
233-
def : WriteRes<WriteFMovF16ToI16, []>;
234228
def : WriteRes<WriteFSGNJ16, []>;
235-
def : WriteRes<WriteFST16, []>;
236229
def : WriteRes<WriteFSqrt16, []>;
237230

238231
def : ReadAdvance<ReadFAdd16, 0>;
239232
def : ReadAdvance<ReadFClass16, 0>;
240-
def : ReadAdvance<ReadFCvtF16ToF64, 0>;
241-
def : ReadAdvance<ReadFCvtF64ToF16, 0>;
242233
def : ReadAdvance<ReadFCvtI64ToF16, 0>;
243-
def : ReadAdvance<ReadFCvtF32ToF16, 0>;
244234
def : ReadAdvance<ReadFCvtI32ToF16, 0>;
245235
def : ReadAdvance<ReadFCvtF16ToI64, 0>;
246-
def : ReadAdvance<ReadFCvtF16ToF32, 0>;
247236
def : ReadAdvance<ReadFCvtF16ToI32, 0>;
248237
def : ReadAdvance<ReadFDiv16, 0>;
249238
def : ReadAdvance<ReadFCmp16, 0>;
250239
def : ReadAdvance<ReadFMA16, 0>;
251240
def : ReadAdvance<ReadFMinMax16, 0>;
252241
def : ReadAdvance<ReadFMul16, 0>;
253-
def : ReadAdvance<ReadFMovI16ToF16, 0>;
254-
def : ReadAdvance<ReadFMovF16ToI16, 0>;
255242
def : ReadAdvance<ReadFSGNJ16, 0>;
256243
def : ReadAdvance<ReadFSqrt16, 0>;
257244
} // Unsupported = true
258245
}
259246

260-
multiclass UnsupportedSchedF {
247+
// For CPUs that support neither Zfhmin or Zfh.
248+
multiclass UnsupportedSchedZfhmin : UnsupportedSchedZfh {
261249
let Unsupported = true in {
262-
def : WriteRes<WriteFST32, []>;
263-
def : WriteRes<WriteFLD32, []>;
264-
def : WriteRes<WriteFAdd32, []>;
265-
def : WriteRes<WriteFSGNJ32, []>;
266-
def : WriteRes<WriteFMinMax32, []>;
267-
def : WriteRes<WriteFCvtI32ToF32, []>;
268-
def : WriteRes<WriteFCvtI64ToF32, []>;
269-
def : WriteRes<WriteFCvtF32ToI32, []>;
270-
def : WriteRes<WriteFCvtF32ToI64, []>;
271-
def : WriteRes<WriteFClass32, []>;
272-
def : WriteRes<WriteFCmp32, []>;
273-
def : WriteRes<WriteFMovF32ToI32, []>;
274-
def : WriteRes<WriteFMovI32ToF32, []>;
275-
def : WriteRes<WriteFMul32, []>;
276-
def : WriteRes<WriteFMA32, []>;
277-
def : WriteRes<WriteFDiv32, []>;
278-
def : WriteRes<WriteFSqrt32, []>;
250+
def : WriteRes<WriteFCvtF16ToF64, []>;
251+
def : WriteRes<WriteFCvtF64ToF16, []>;
252+
def : WriteRes<WriteFCvtF16ToF32, []>;
253+
def : WriteRes<WriteFCvtF32ToF16, []>;
254+
def : WriteRes<WriteFLD16, []>;
255+
def : WriteRes<WriteFMovI16ToF16, []>;
256+
def : WriteRes<WriteFMovF16ToI16, []>;
257+
def : WriteRes<WriteFST16, []>;
279258

280-
def : ReadAdvance<ReadFAdd32, 0>;
281-
def : ReadAdvance<ReadFMul32, 0>;
282-
def : ReadAdvance<ReadFMA32, 0>;
283-
def : ReadAdvance<ReadFMA32Addend, 0>;
284-
def : ReadAdvance<ReadFDiv32, 0>;
285-
def : ReadAdvance<ReadFSqrt32, 0>;
286-
def : ReadAdvance<ReadFCmp32, 0>;
287-
def : ReadAdvance<ReadFSGNJ32, 0>;
288-
def : ReadAdvance<ReadFMinMax32, 0>;
289-
def : ReadAdvance<ReadFCvtF32ToI32, 0>;
290-
def : ReadAdvance<ReadFCvtF32ToI64, 0>;
291-
def : ReadAdvance<ReadFCvtI32ToF32, 0>;
292-
def : ReadAdvance<ReadFCvtI64ToF32, 0>;
293-
def : ReadAdvance<ReadFMovF32ToI32, 0>;
294-
def : ReadAdvance<ReadFMovI32ToF32, 0>;
295-
def : ReadAdvance<ReadFClass32, 0>;
296-
def : ReadAdvance<ReadFStoreData, 0>;
297-
def : ReadAdvance<ReadFMemBase, 0>;
259+
def : ReadAdvance<ReadFCvtF16ToF64, 0>;
260+
def : ReadAdvance<ReadFCvtF64ToF16, 0>;
261+
def : ReadAdvance<ReadFCvtF16ToF32, 0>;
262+
def : ReadAdvance<ReadFCvtF32ToF16, 0>;
263+
def : ReadAdvance<ReadFMovI16ToF16, 0>;
264+
def : ReadAdvance<ReadFMovF16ToI16, 0>;
298265
} // Unsupported = true
299266
}
300267

@@ -341,6 +308,48 @@ def : ReadAdvance<ReadFClass64, 0>;
341308
} // Unsupported = true
342309
}
343310

311+
// For CPUs with no floating point.
312+
multiclass UnsupportedSchedF : UnsupportedSchedD, UnsupportedSchedZfhmin {
313+
let Unsupported = true in {
314+
def : WriteRes<WriteFST32, []>;
315+
def : WriteRes<WriteFLD32, []>;
316+
def : WriteRes<WriteFAdd32, []>;
317+
def : WriteRes<WriteFSGNJ32, []>;
318+
def : WriteRes<WriteFMinMax32, []>;
319+
def : WriteRes<WriteFCvtI32ToF32, []>;
320+
def : WriteRes<WriteFCvtI64ToF32, []>;
321+
def : WriteRes<WriteFCvtF32ToI32, []>;
322+
def : WriteRes<WriteFCvtF32ToI64, []>;
323+
def : WriteRes<WriteFClass32, []>;
324+
def : WriteRes<WriteFCmp32, []>;
325+
def : WriteRes<WriteFMovF32ToI32, []>;
326+
def : WriteRes<WriteFMovI32ToF32, []>;
327+
def : WriteRes<WriteFMul32, []>;
328+
def : WriteRes<WriteFMA32, []>;
329+
def : WriteRes<WriteFDiv32, []>;
330+
def : WriteRes<WriteFSqrt32, []>;
331+
332+
def : ReadAdvance<ReadFAdd32, 0>;
333+
def : ReadAdvance<ReadFMul32, 0>;
334+
def : ReadAdvance<ReadFMA32, 0>;
335+
def : ReadAdvance<ReadFMA32Addend, 0>;
336+
def : ReadAdvance<ReadFDiv32, 0>;
337+
def : ReadAdvance<ReadFSqrt32, 0>;
338+
def : ReadAdvance<ReadFCmp32, 0>;
339+
def : ReadAdvance<ReadFSGNJ32, 0>;
340+
def : ReadAdvance<ReadFMinMax32, 0>;
341+
def : ReadAdvance<ReadFCvtF32ToI32, 0>;
342+
def : ReadAdvance<ReadFCvtF32ToI64, 0>;
343+
def : ReadAdvance<ReadFCvtI32ToF32, 0>;
344+
def : ReadAdvance<ReadFCvtI64ToF32, 0>;
345+
def : ReadAdvance<ReadFMovF32ToI32, 0>;
346+
def : ReadAdvance<ReadFMovI32ToF32, 0>;
347+
def : ReadAdvance<ReadFClass32, 0>;
348+
def : ReadAdvance<ReadFStoreData, 0>;
349+
def : ReadAdvance<ReadFMemBase, 0>;
350+
} // Unsupported = true
351+
}
352+
344353
multiclass UnsupportedSchedSFB {
345354
let Unsupported = true in {
346355
def : WriteRes<WriteSFB, []>;

0 commit comments

Comments
 (0)