Lines Matching +full:mux +full:- +full:locked

1 //-- SystemZScheduleZ13.td - SystemZ Scheduling Definitions ----*- tblgen -*-=//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
14 //===----------------------------------------------------------------------===//
71 foreach L = 1-30 in
95 foreach Num = 2-5 in { let ReleaseAtCycles = [Num] in {
116 // -------------------------- INSTRUCTIONS ---------------------------------- //
124 //===----------------------------------------------------------------------===//
126 //===----------------------------------------------------------------------===//
128 // Pseudo -> LA / LAY
131 //===----------------------------------------------------------------------===//
133 //===----------------------------------------------------------------------===//
151 //===----------------------------------------------------------------------===//
153 //===----------------------------------------------------------------------===//
164 //===----------------------------------------------------------------------===//
166 //===----------------------------------------------------------------------===//
178 //===----------------------------------------------------------------------===//
180 //===----------------------------------------------------------------------===//
190 // Pseudo -> reg move
197 def : InstRW<[LSULatency, LSU, NormalGr], (instregex "L(Y|FH|RL|Mux)?$")>;
206 def : InstRW<[WLat1, FXa, NormalGr], (instregex "LHI(Mux)?$")>;
222 def : InstRW<[WLat1, FXb, LSU, NormalGr], (instregex "ST(Y|FH|RL|Mux)?$")>;
227 //===----------------------------------------------------------------------===//
229 //===----------------------------------------------------------------------===//
233 def : InstRW<[WLat2, FXa, NormalGr], (instregex "LOC(G|H)?HI(Mux|(Asm.*))?$")>;
235 (instregex "LOC(G|FH|Mux)?(Asm.*)?$")>;
237 (instregex "STOC(G|FH|Mux)?(Asm.*)?$")>;
239 //===----------------------------------------------------------------------===//
241 //===----------------------------------------------------------------------===//
249 def : InstRW<[WLat1LSU, FXa, LSU, NormalGr], (instregex "LB(H|Mux)?$")>;
251 def : InstRW<[WLat1LSU, FXa, LSU, NormalGr], (instregex "LH(H|Mux|RL)$")>;
255 //===----------------------------------------------------------------------===//
257 //===----------------------------------------------------------------------===//
259 def : InstRW<[WLat1, FXa, NormalGr], (instregex "LLCR(Mux)?$")>;
260 def : InstRW<[WLat1, FXa, NormalGr], (instregex "LLHR(Mux)?$")>;
262 def : InstRW<[LSULatency, LSU, NormalGr], (instregex "LLC(Mux)?$")>;
263 def : InstRW<[LSULatency, LSU, NormalGr], (instregex "LLH(Mux)?$")>;
274 //===----------------------------------------------------------------------===//
276 //===----------------------------------------------------------------------===//
278 def : InstRW<[WLat1, FXb, LSU, NormalGr], (instregex "STC(H|Y|Mux)?$")>;
279 def : InstRW<[WLat1, FXb, LSU, NormalGr], (instregex "STH(H|Y|RL|Mux)?$")>;
282 //===----------------------------------------------------------------------===//
283 // Multi-register moves
284 //===----------------------------------------------------------------------===//
295 //===----------------------------------------------------------------------===//
297 //===----------------------------------------------------------------------===//
304 //===----------------------------------------------------------------------===//
306 //===----------------------------------------------------------------------===//
310 // Load the Global Offset Table address ( -> larl )
313 //===----------------------------------------------------------------------===//
315 //===----------------------------------------------------------------------===//
323 //===----------------------------------------------------------------------===//
325 //===----------------------------------------------------------------------===//
332 def : InstRW<[WLat1, FXa, NormalGr], (instregex "II(F|H|L)Mux$")>;
340 //===----------------------------------------------------------------------===//
342 //===----------------------------------------------------------------------===//
349 def : InstRW<[WLat1, FXa, NormalGr], (instregex "AFI(Mux)?$")>;
377 // Add with sign extension (32 -> 64)
382 //===----------------------------------------------------------------------===//
384 //===----------------------------------------------------------------------===//
406 // Subtraction with sign extension (32 -> 64)
411 //===----------------------------------------------------------------------===//
413 //===----------------------------------------------------------------------===//
429 //===----------------------------------------------------------------------===//
431 //===----------------------------------------------------------------------===//
447 //===----------------------------------------------------------------------===//
449 //===----------------------------------------------------------------------===//
461 //===----------------------------------------------------------------------===//
463 //===----------------------------------------------------------------------===//
481 //===----------------------------------------------------------------------===//
483 //===----------------------------------------------------------------------===//
494 //===----------------------------------------------------------------------===//
496 //===----------------------------------------------------------------------===//
517 //===----------------------------------------------------------------------===//
519 //===----------------------------------------------------------------------===//
522 (instregex "C(G|Y|Mux)?$")>;
524 def : InstRW<[WLat1, FXb, NormalGr], (instregex "C(F|H)I(Mux)?$")>;
532 (instregex "CL(Y|Mux)?$")>;
534 def : InstRW<[WLat1, FXb, NormalGr], (instregex "CLFI(Mux)?$")>;
558 // Compare with sign extension (32 -> 64)
570 def : InstRW<[WLat1, FXb, NormalGr], (instregex "TM(H|L)Mux$")>;
580 //===----------------------------------------------------------------------===//
582 //===----------------------------------------------------------------------===//
589 //===----------------------------------------------------------------------===//
591 //===----------------------------------------------------------------------===//
617 // Perform locked operation
627 //===----------------------------------------------------------------------===//
629 //===----------------------------------------------------------------------===//
642 //===----------------------------------------------------------------------===//
643 // Message-security assist
644 //===----------------------------------------------------------------------===//
651 //===----------------------------------------------------------------------===//
653 //===----------------------------------------------------------------------===//
674 //===----------------------------------------------------------------------===//
676 //===----------------------------------------------------------------------===//
688 //===----------------------------------------------------------------------===//
690 //===----------------------------------------------------------------------===//
711 //===----------------------------------------------------------------------===//
713 //===----------------------------------------------------------------------===//
730 //===----------------------------------------------------------------------===//
732 //===----------------------------------------------------------------------===//
736 //===----------------------------------------------------------------------===//
738 //===----------------------------------------------------------------------===//
760 //===----------------------------------------------------------------------===//
762 //===----------------------------------------------------------------------===//
764 // An "empty" sched-class will be assigned instead of the "invalid sched-class".
769 // ----------------------------- Floating point ----------------------------- //
771 //===----------------------------------------------------------------------===//
773 //===----------------------------------------------------------------------===//
792 //===----------------------------------------------------------------------===//
794 //===----------------------------------------------------------------------===//
800 //===----------------------------------------------------------------------===//
802 //===----------------------------------------------------------------------===//
807 //===----------------------------------------------------------------------===//
809 //===----------------------------------------------------------------------===//
837 //===----------------------------------------------------------------------===//
839 //===----------------------------------------------------------------------===//
855 //===----------------------------------------------------------------------===//
857 //===----------------------------------------------------------------------===//
897 //===----------------------------------------------------------------------===//
899 //===----------------------------------------------------------------------===//
911 //===----------------------------------------------------------------------===//
912 // FP: Floating-point control register instructions
913 //===----------------------------------------------------------------------===//
924 // --------------------- Hexadecimal floating point ------------------------- //
926 //===----------------------------------------------------------------------===//
928 //===----------------------------------------------------------------------===//
934 //===----------------------------------------------------------------------===//
936 //===----------------------------------------------------------------------===//
961 //===----------------------------------------------------------------------===//
963 //===----------------------------------------------------------------------===//
981 //===----------------------------------------------------------------------===//
983 //===----------------------------------------------------------------------===//
1029 //===----------------------------------------------------------------------===//
1031 //===----------------------------------------------------------------------===//
1040 // ------------------------ Decimal floating point -------------------------- //
1042 //===----------------------------------------------------------------------===//
1044 //===----------------------------------------------------------------------===//
1050 //===----------------------------------------------------------------------===//
1052 //===----------------------------------------------------------------------===//
1094 // Perform floating-point operation
1097 //===----------------------------------------------------------------------===//
1099 //===----------------------------------------------------------------------===//
1113 //===----------------------------------------------------------------------===//
1115 //===----------------------------------------------------------------------===//
1149 //===----------------------------------------------------------------------===//
1151 //===----------------------------------------------------------------------===//
1166 // --------------------------------- Vector --------------------------------- //
1168 //===----------------------------------------------------------------------===//
1170 //===----------------------------------------------------------------------===//
1177 //===----------------------------------------------------------------------===//
1179 //===----------------------------------------------------------------------===//
1188 //===----------------------------------------------------------------------===//
1190 //===----------------------------------------------------------------------===//
1204 //===----------------------------------------------------------------------===//
1206 //===----------------------------------------------------------------------===//
1214 //===----------------------------------------------------------------------===//
1216 //===----------------------------------------------------------------------===//
1225 //===----------------------------------------------------------------------===//
1227 //===----------------------------------------------------------------------===//
1240 //===----------------------------------------------------------------------===//
1242 //===----------------------------------------------------------------------===//
1303 //===----------------------------------------------------------------------===//
1305 //===----------------------------------------------------------------------===//
1317 //===----------------------------------------------------------------------===//
1318 // Vector: Floating-point arithmetic
1319 //===----------------------------------------------------------------------===//
1349 // Multiply / multiply-and-add/subtract
1363 //===----------------------------------------------------------------------===//
1364 // Vector: Floating-point comparison
1365 //===----------------------------------------------------------------------===//
1375 //===----------------------------------------------------------------------===//
1376 // Vector: Floating-point insertion and extraction
1377 //===----------------------------------------------------------------------===//
1382 //===----------------------------------------------------------------------===//
1384 //===----------------------------------------------------------------------===//
1405 // -------------------------------- System ---------------------------------- //
1407 //===----------------------------------------------------------------------===//
1408 // System: Program-Status Word Instructions
1409 //===----------------------------------------------------------------------===//
1420 //===----------------------------------------------------------------------===//
1422 //===----------------------------------------------------------------------===//
1430 //===----------------------------------------------------------------------===//
1431 // System: Prefix-Register Instructions
1432 //===----------------------------------------------------------------------===//
1436 //===----------------------------------------------------------------------===//
1437 // System: Storage-Key and Real Memory Instructions
1438 //===----------------------------------------------------------------------===//
1449 //===----------------------------------------------------------------------===//
1450 // System: Dynamic-Address-Translation Instructions
1451 //===----------------------------------------------------------------------===//
1465 //===----------------------------------------------------------------------===//
1466 // System: Memory-move Instructions
1467 //===----------------------------------------------------------------------===//
1474 //===----------------------------------------------------------------------===//
1475 // System: Address-Space Instructions
1476 //===----------------------------------------------------------------------===//
1487 //===----------------------------------------------------------------------===//
1488 // System: Linkage-Stack Instructions
1489 //===----------------------------------------------------------------------===//
1495 //===----------------------------------------------------------------------===//
1496 // System: Time-Related Instructions
1497 //===----------------------------------------------------------------------===//
1507 //===----------------------------------------------------------------------===//
1508 // System: CPU-Related Instructions
1509 //===----------------------------------------------------------------------===//
1520 //===----------------------------------------------------------------------===//
1522 //===----------------------------------------------------------------------===//
1532 //===----------------------------------------------------------------------===//
1533 // System: CPU-Measurement Facility Instructions
1534 //===----------------------------------------------------------------------===//
1544 //===----------------------------------------------------------------------===//
1546 //===----------------------------------------------------------------------===//
1556 //===----------------------------------------------------------------------===//
1558 //===----------------------------------------------------------------------===//