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

1 //=- SystemZScheduleZ196.td - SystemZ Scheduling Definitions ---*- tblgen -*-=//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
14 //===----------------------------------------------------------------------===//
67 foreach L = 1-30 in {
85 foreach Num = 2-6 in { let ReleaseAtCycles = [Num] in {
97 // -------------------------- INSTRUCTIONS ---------------------------------- //
105 //===----------------------------------------------------------------------===//
107 //===----------------------------------------------------------------------===//
109 def : InstRW<[WLat1, FXU, NormalGr], (instregex "ADJDYNALLOC$")>; // Pseudo -> LA / LAY
111 //===----------------------------------------------------------------------===//
113 //===----------------------------------------------------------------------===//
131 //===----------------------------------------------------------------------===//
133 //===----------------------------------------------------------------------===//
143 //===----------------------------------------------------------------------===//
145 //===----------------------------------------------------------------------===//
157 //===----------------------------------------------------------------------===//
159 //===----------------------------------------------------------------------===//
169 // Pseudo -> reg move
176 def : InstRW<[LSULatency, LSU, NormalGr], (instregex "L(Y|FH|RL|Mux)?$")>;
184 def : InstRW<[WLat1, FXU, NormalGr], (instregex "LHI(Mux)?$")>;
194 def : InstRW<[WLat1, FXU, LSU, NormalGr], (instregex "ST(Y|FH|RL|Mux)?$")>;
199 //===----------------------------------------------------------------------===//
201 //===----------------------------------------------------------------------===//
208 //===----------------------------------------------------------------------===//
210 //===----------------------------------------------------------------------===//
218 def : InstRW<[WLat1LSU, FXU, LSU, NormalGr], (instregex "LB(H|Mux)?$")>;
220 def : InstRW<[WLat1LSU, FXU, LSU, NormalGr], (instregex "LH(H|Mux|RL)$")>;
224 //===----------------------------------------------------------------------===//
226 //===----------------------------------------------------------------------===//
228 def : InstRW<[WLat1, FXU, NormalGr], (instregex "LLCR(Mux)?$")>;
229 def : InstRW<[WLat1, FXU, NormalGr], (instregex "LLHR(Mux)?$")>;
231 def : InstRW<[LSULatency, LSU, NormalGr], (instregex "LLC(Mux)?$")>;
232 def : InstRW<[LSULatency, LSU, NormalGr], (instregex "LLH(Mux)?$")>;
237 //===----------------------------------------------------------------------===//
239 //===----------------------------------------------------------------------===//
241 def : InstRW<[WLat1, FXU, LSU, NormalGr], (instregex "STC(H|Y|Mux)?$")>;
242 def : InstRW<[WLat1, FXU, LSU, NormalGr], (instregex "STH(H|Y|RL|Mux)?$")>;
245 //===----------------------------------------------------------------------===//
246 // Multi-register moves
247 //===----------------------------------------------------------------------===//
258 //===----------------------------------------------------------------------===//
260 //===----------------------------------------------------------------------===//
267 //===----------------------------------------------------------------------===//
269 //===----------------------------------------------------------------------===//
276 //===----------------------------------------------------------------------===//
278 //===----------------------------------------------------------------------===//
286 //===----------------------------------------------------------------------===//
288 //===----------------------------------------------------------------------===//
295 def : InstRW<[WLat1, FXU, NormalGr], (instregex "II(F|H|L)Mux$")>;
303 //===----------------------------------------------------------------------===//
305 //===----------------------------------------------------------------------===//
313 def : InstRW<[WLat1, FXU, NormalGr], (instregex "AFI(Mux)?$")>;
339 // Add with sign extension (32 -> 64)
344 //===----------------------------------------------------------------------===//
346 //===----------------------------------------------------------------------===//
368 // Subtraction with sign extension (32 -> 64)
373 //===----------------------------------------------------------------------===//
375 //===----------------------------------------------------------------------===//
391 //===----------------------------------------------------------------------===//
393 //===----------------------------------------------------------------------===//
409 //===----------------------------------------------------------------------===//
411 //===----------------------------------------------------------------------===//
423 //===----------------------------------------------------------------------===//
425 //===----------------------------------------------------------------------===//
443 //===----------------------------------------------------------------------===//
445 //===----------------------------------------------------------------------===//
457 //===----------------------------------------------------------------------===//
459 //===----------------------------------------------------------------------===//
480 //===----------------------------------------------------------------------===//
482 //===----------------------------------------------------------------------===//
484 def : InstRW<[WLat1LSU, RegReadAdv, FXU, LSU, NormalGr], (instregex "C(G|Y|Mux|RL)?$")>;
485 def : InstRW<[WLat1, FXU, NormalGr], (instregex "C(F|H)I(Mux)?$")>;
493 (instregex "CL(Y|Mux)?$")>;
495 def : InstRW<[WLat1, FXU, NormalGr], (instregex "CLFI(Mux)?$")>;
520 // Compare with sign extension (32 -> 64)
532 def : InstRW<[WLat1, FXU, NormalGr], (instregex "TM(H|L)Mux$")>;
542 //===----------------------------------------------------------------------===//
544 //===----------------------------------------------------------------------===//
548 //===----------------------------------------------------------------------===//
550 //===----------------------------------------------------------------------===//
576 // Perform locked operation
586 //===----------------------------------------------------------------------===//
588 //===----------------------------------------------------------------------===//
600 //===----------------------------------------------------------------------===//
601 // Message-security assist
602 //===----------------------------------------------------------------------===//
608 //===----------------------------------------------------------------------===//
610 //===----------------------------------------------------------------------===//
631 //===----------------------------------------------------------------------===//
633 //===----------------------------------------------------------------------===//
645 //===----------------------------------------------------------------------===//
647 //===----------------------------------------------------------------------===//
668 //===----------------------------------------------------------------------===//
670 //===----------------------------------------------------------------------===//
692 //===----------------------------------------------------------------------===//
694 //===----------------------------------------------------------------------===//
696 // An "empty" sched-class will be assigned instead of the "invalid sched-class".
701 // ----------------------------- Floating point ----------------------------- //
703 //===----------------------------------------------------------------------===//
705 //===----------------------------------------------------------------------===//
724 //===----------------------------------------------------------------------===//
726 //===----------------------------------------------------------------------===//
731 //===----------------------------------------------------------------------===//
733 //===----------------------------------------------------------------------===//
738 //===----------------------------------------------------------------------===//
740 //===----------------------------------------------------------------------===//
768 //===----------------------------------------------------------------------===//
770 //===----------------------------------------------------------------------===//
786 //===----------------------------------------------------------------------===//
788 //===----------------------------------------------------------------------===//
827 //===----------------------------------------------------------------------===//
829 //===----------------------------------------------------------------------===//
841 //===----------------------------------------------------------------------===//
842 // FP: Floating-point control register instructions
843 //===----------------------------------------------------------------------===//
854 // --------------------- Hexadecimal floating point ------------------------- //
856 //===----------------------------------------------------------------------===//
858 //===----------------------------------------------------------------------===//
864 //===----------------------------------------------------------------------===//
866 //===----------------------------------------------------------------------===//
892 //===----------------------------------------------------------------------===//
894 //===----------------------------------------------------------------------===//
912 //===----------------------------------------------------------------------===//
914 //===----------------------------------------------------------------------===//
958 //===----------------------------------------------------------------------===//
960 //===----------------------------------------------------------------------===//
968 // ------------------------ Decimal floating point -------------------------- //
970 //===----------------------------------------------------------------------===//
972 //===----------------------------------------------------------------------===//
978 //===----------------------------------------------------------------------===//
980 //===----------------------------------------------------------------------===//
1013 // Perform floating-point operation
1016 //===----------------------------------------------------------------------===//
1018 //===----------------------------------------------------------------------===//
1032 //===----------------------------------------------------------------------===//
1034 //===----------------------------------------------------------------------===//
1068 //===----------------------------------------------------------------------===//
1070 //===----------------------------------------------------------------------===//
1086 // -------------------------------- System ---------------------------------- //
1088 //===----------------------------------------------------------------------===//
1089 // System: Program-Status Word Instructions
1090 //===----------------------------------------------------------------------===//
1101 //===----------------------------------------------------------------------===//
1103 //===----------------------------------------------------------------------===//
1111 //===----------------------------------------------------------------------===//
1112 // System: Prefix-Register Instructions
1113 //===----------------------------------------------------------------------===//
1117 //===----------------------------------------------------------------------===//
1118 // System: Storage-Key and Real Memory Instructions
1119 //===----------------------------------------------------------------------===//
1130 //===----------------------------------------------------------------------===//
1131 // System: Dynamic-Address-Translation Instructions
1132 //===----------------------------------------------------------------------===//
1145 //===----------------------------------------------------------------------===//
1146 // System: Memory-move Instructions
1147 //===----------------------------------------------------------------------===//
1154 //===----------------------------------------------------------------------===//
1155 // System: Address-Space Instructions
1156 //===----------------------------------------------------------------------===//
1167 //===----------------------------------------------------------------------===//
1168 // System: Linkage-Stack Instructions
1169 //===----------------------------------------------------------------------===//
1175 //===----------------------------------------------------------------------===//
1176 // System: Time-Related Instructions
1177 //===----------------------------------------------------------------------===//
1189 //===----------------------------------------------------------------------===//
1190 // System: CPU-Related Instructions
1191 //===----------------------------------------------------------------------===//
1202 //===----------------------------------------------------------------------===//
1204 //===----------------------------------------------------------------------===//
1214 //===----------------------------------------------------------------------===//
1215 // System: CPU-Measurement Facility Instructions
1216 //===----------------------------------------------------------------------===//
1226 //===----------------------------------------------------------------------===//
1228 //===----------------------------------------------------------------------===//
1238 //===----------------------------------------------------------------------===//
1240 //===----------------------------------------------------------------------===//