xref: /netbsd-src/external/gpl3/gcc/dist/gcc/config/s390/3931.md (revision b1e838363e3c6fc78a55519254d99869742dd33c)
1;; Scheduling description for z16.
2;;   Copyright (C) 2022 Free Software Foundation, Inc.
3;;   Contributed by Robin Dapp (rdapp@linux.ibm.com)
4
5;; This file is part of GCC.
6
7;; GCC is free software; you can redistribute it and/or modify it under
8;; the terms of the GNU General Public License as published by the Free
9;; Software Foundation; either version 3, or (at your option) any later
10;; version.
11
12;; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
13;; WARRANTY; without even the implied warranty of MERCHANTABILITY or
14;; FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
15;; for more details.
16
17;; You should have received a copy of the GNU General Public License
18;; along with GCC; see the file COPYING3.  If not see
19;; <http://www.gnu.org/licenses/>.
20
21(define_attr "z16_unit_fpd" ""
22(cond [(eq_attr "mnemonic"
23"ddb,
24ddbr,
25deb,
26debr,
27dxbr,
28sqdb,
29sqdbr,
30sqeb,
31sqebr,
32sqxbr,
33vfddb,
34vfdsb,
35vfsqdb,
36vfsqsb,
37wfddb,
38wfdsb,
39wfdxb,
40wfsqdb,
41wfsqxb"
42)
43 (const_int 1)] (const_int 0)))
44
45(define_attr "z16_unit_fxa" ""
46(cond [(eq_attr "mnemonic"
47"a,
48afi,
49ag,
50agf,
51agfi,
52agfr,
53agh,
54aghi,
55aghik,
56agr,
57agrk,
58ah,
59ahi,
60ahik,
61ahy,
62al,
63alc,
64alcg,
65alcgr,
66alcr,
67alfi,
68alg,
69algf,
70algfi,
71algfr,
72alghsik,
73algr,
74algrk,
75alhsik,
76alr,
77alrk,
78aly,
79ar,
80ark,
81ay,
82bras,
83brasl,
84etnd,
85exrl,
86flogr,
87ic,
88icm,
89icmh,
90icmy,
91icy,
92iihf,
93iilf,
94ipm,
95la,
96larl,
97lay,
98lb,
99lbr,
100lcgr,
101lcr,
102lgb,
103lgbr,
104lgf,
105lgfi,
106lgfr,
107lgfrl,
108lgh,
109lghi,
110lghr,
111lghrl,
112lgr,
113lh,
114lhi,
115lhr,
116lhrl,
117lhy,
118llcr,
119llgcr,
120llgfr,
121llghr,
122llgtr,
123llhr,
124llihf,
125llihh,
126llihl,
127llilf,
128llilh,
129llill,
130lngr,
131lnr,
132loc,
133locg,
134locghi,
135locgr,
136lochi,
137locr,
138lpgr,
139lpr,
140lr,
141lrv,
142lrvg,
143lrvgr,
144lrvh,
145lrvr,
146lt,
147ltg,
148ltgf,
149ltgfr,
150ltgr,
151ltr,
152m,
153mfy,
154mg,
155mgh,
156mghi,
157mgrk,
158mh,
159mhi,
160mhy,
161ml,
162mlg,
163mlgr,
164mlr,
165mr,
166ms,
167msc,
168msfi,
169msg,
170msgc,
171msgf,
172msgfi,
173msgfr,
174msgr,
175msgrkc,
176msr,
177msrkc,
178msy,
179n,
180ncgrk,
181ncrk,
182ng,
183ngr,
184ngrk,
185nihf,
186nihh,
187nihl,
188nilf,
189nilh,
190nill,
191nngrk,
192nnrk,
193nogrk,
194nork,
195nr,
196nrk,
197nxgrk,
198nxrk,
199ny,
200o,
201ocgrk,
202ocrk,
203og,
204ogr,
205ogrk,
206oihf,
207oihh,
208oihl,
209oilf,
210oilh,
211oill,
212or,
213ork,
214oy,
215pfpo,
216popcnt,
217risbg,
218risbgn,
219rll,
220rllg,
221s,
222selgr,
223selr,
224sg,
225sgf,
226sgfr,
227sgh,
228sgr,
229sgrk,
230sh,
231shy,
232sl,
233slb,
234slbg,
235slbgr,
236slbr,
237slfi,
238slg,
239slgf,
240slgfi,
241slgfr,
242slgr,
243slgrk,
244sll,
245sllg,
246sllk,
247slr,
248slrk,
249sly,
250sr,
251sra,
252srag,
253srak,
254srk,
255srl,
256srlg,
257srlk,
258sy,
259x,
260xg,
261xgr,
262xgrk,
263xihf,
264xilf,
265xr,
266xrk,
267xy"
268)
269 (const_int 1)] (const_int 0)))
270
271(define_attr "z16_unit_fxb" ""
272(cond [(eq_attr "mnemonic"
273"agsi,
274algsi,
275alsi,
276asi,
277b,
278bc,
279bcr,
280bi,
281br,
282brcl,
283c,
284cfi,
285cg,
286cgf,
287cgfi,
288cgfr,
289cgfrl,
290cgh,
291cghi,
292cghrl,
293cghsi,
294cgit,
295cgr,
296cgrl,
297cgrt,
298ch,
299chi,
300chrl,
301chsi,
302chy,
303cit,
304cl,
305clfhsi,
306clfi,
307clfit,
308clg,
309clgf,
310clgfi,
311clgfr,
312clgfrl,
313clghrl,
314clghsi,
315clgit,
316clgr,
317clgrl,
318clgrt,
319clgt,
320clhhsi,
321clhrl,
322cli,
323cliy,
324clm,
325clmy,
326clr,
327clrl,
328clrt,
329clt,
330cly,
331cr,
332crl,
333crt,
334cy,
335j,
336jg,
337laa,
338laag,
339lan,
340lang,
341lao,
342laog,
343lat,
344lax,
345laxg,
346lcdfr,
347ldgr,
348ldr,
349lgat,
350lgdr,
351lndfr,
352lpdfr,
353lzdr,
354lzer,
355mvghi,
356mvhhi,
357mvhi,
358mvi,
359mviy,
360ni,
361niy,
362nop,
363nopr,
364ntstg,
365oi,
366oiy,
367ppa,
368st,
369stc,
370stcy,
371std,
372stdy,
373ste,
374stey,
375stg,
376stgrl,
377sth,
378sthrl,
379sthy,
380stoc,
381stocg,
382strl,
383strv,
384strvg,
385strvh,
386sty,
387tend,
388tm,
389tmh,
390tmhh,
391tmhl,
392tml,
393tmlh,
394tmll,
395tmy,
396vlgvb,
397vlgvf,
398vlgvg,
399vlgvh,
400vlr,
401vlvgb,
402vlvgf,
403vlvgg,
404vlvgh,
405vlvgp,
406vst,
407vstbr,
408vstbrf,
409vstbrg,
410vstbrh,
411vstbrq,
412vstebrf,
413vstebrg,
414vstef,
415vsteg,
416vsterf,
417vsterg,
418vsterh,
419vstl,
420vstrl,
421vstrlr,
422xi,
423xiy"
424)
425 (const_int 1)] (const_int 0)))
426
427(define_attr "z16_unit_fxd" ""
428(cond [(eq_attr "mnemonic"
429"dlgr,
430dlr,
431dr,
432dsgfr,
433dsgr"
434)
435 (const_int 1)] (const_int 0)))
436
437(define_attr "z16_unit_lsu" ""
438(cond [(eq_attr "mnemonic"
439"a,
440adb,
441aeb,
442ag,
443agf,
444agh,
445agsi,
446ah,
447ahy,
448al,
449alc,
450alcg,
451alg,
452algf,
453algsi,
454alsi,
455aly,
456asi,
457ay,
458c,
459cdb,
460ceb,
461cg,
462cgf,
463cgfrl,
464cgh,
465cghrl,
466cghsi,
467cgrl,
468ch,
469chrl,
470chsi,
471chy,
472cl,
473clc,
474clfhsi,
475clg,
476clgf,
477clgfrl,
478clghrl,
479clghsi,
480clgrl,
481clgt,
482clhhsi,
483clhrl,
484cli,
485cliy,
486clm,
487clmy,
488clrl,
489clt,
490cly,
491crl,
492cy,
493ddb,
494deb,
495ear,
496ic,
497icm,
498icmh,
499icmy,
500icy,
501kdb,
502keb,
503l,
504laa,
505laag,
506lan,
507lang,
508lao,
509laog,
510lat,
511lax,
512laxg,
513lb,
514lcbb,
515ld,
516lde,
517ldeb,
518ldy,
519le,
520ley,
521lg,
522lgat,
523lgb,
524lgf,
525lgfrl,
526lgh,
527lghrl,
528lgrl,
529lh,
530lhrl,
531lhy,
532llc,
533llgc,
534llgf,
535llgfrl,
536llgh,
537llghrl,
538llgt,
539llh,
540llhrl,
541loc,
542locg,
543lrl,
544lrv,
545lrvg,
546lrvh,
547lt,
548ltg,
549ltgf,
550ly,
551m,
552madb,
553maeb,
554mdb,
555meeb,
556mfy,
557mg,
558mgh,
559mh,
560mhy,
561ml,
562mlg,
563ms,
564msc,
565msdb,
566mseb,
567msg,
568msgc,
569msgf,
570msy,
571mvghi,
572mvhhi,
573mvhi,
574mvi,
575mviy,
576n,
577ng,
578ni,
579niy,
580ntstg,
581ny,
582o,
583og,
584oi,
585oiy,
586oy,
587s,
588sar,
589sdb,
590seb,
591sfpc,
592sg,
593sgf,
594sgh,
595sh,
596shy,
597sl,
598slb,
599slbg,
600slg,
601slgf,
602sly,
603sqdb,
604sqeb,
605st,
606stc,
607stcy,
608std,
609stdy,
610ste,
611stey,
612stg,
613stgrl,
614sth,
615sthrl,
616sthy,
617stoc,
618stocg,
619strl,
620strv,
621strvg,
622strvh,
623sty,
624sy,
625tabort,
626tm,
627tmy,
628vl,
629vlbb,
630vlbr,
631vlbrf,
632vlbrg,
633vlbrh,
634vlbrq,
635vlbrrepf,
636vlbrrepg,
637vlbrreph,
638vleb,
639vlebrf,
640vlebrg,
641vlebrh,
642vlef,
643vleg,
644vleh,
645vlerf,
646vlerg,
647vlerh,
648vll,
649vllebrzf,
650vllebrzg,
651vllebrzh,
652vllezb,
653vllezf,
654vllezg,
655vllezh,
656vllezlf,
657vlrepb,
658vlrepf,
659vlrepg,
660vlreph,
661vlrl,
662vlrlr,
663vst,
664vstbr,
665vstbrf,
666vstbrg,
667vstbrh,
668vstbrq,
669vstebrf,
670vstebrg,
671vstef,
672vsteg,
673vsterf,
674vsterg,
675vsterh,
676vstl,
677vstrl,
678vstrlr,
679x,
680xg,
681xi,
682xiy,
683xy"
684)
685 (const_int 1)] (const_int 0)))
686
687(define_attr "z16_unit_vfu" ""
688(cond [(eq_attr "mnemonic"
689"adb,
690adbr,
691adtr,
692aeb,
693aebr,
694axbr,
695axtr,
696cdb,
697cdbr,
698cdtr,
699ceb,
700cebr,
701cpsdr,
702cxbr,
703cxtr,
704ddtr,
705dxtr,
706fidbr,
707fidbra,
708fidtr,
709fiebr,
710fiebra,
711fixbr,
712fixbra,
713fixtr,
714kdb,
715kdbr,
716kdtr,
717keb,
718kebr,
719kxbr,
720kxtr,
721lcdbr,
722lcebr,
723lcxbr,
724ldeb,
725ldebr,
726ldetr,
727le,
728ledbr,
729ledtr,
730ler,
731ley,
732lndbr,
733lnebr,
734lnxbr,
735lpdbr,
736lpebr,
737lpxbr,
738ltdbr,
739ltdtr,
740ltebr,
741ltxbr,
742ltxtr,
743lxdb,
744lxdbr,
745lxdtr,
746lxeb,
747lxebr,
748madb,
749madbr,
750maeb,
751maebr,
752mdb,
753mdbr,
754mdtr,
755meeb,
756meebr,
757msdb,
758msdbr,
759mseb,
760msebr,
761mxbr,
762mxtr,
763sdb,
764sdbr,
765sdtr,
766seb,
767sebr,
768sxbr,
769sxtr,
770tcdb,
771tceb,
772tcxb,
773tdcdt,
774tdcet,
775tdcxt,
776vab,
777vaccb,
778vacccq,
779vaccf,
780vaccg,
781vacch,
782vaccq,
783vacq,
784vaf,
785vag,
786vah,
787vaq,
788vavgb,
789vavgf,
790vavgg,
791vavgh,
792vavglb,
793vavglf,
794vavglg,
795vavglh,
796vbperm,
797vcdgb,
798vcdlgb,
799vcefb,
800vcelfb,
801vceqb,
802vceqbs,
803vceqf,
804vceqfs,
805vceqg,
806vceqgs,
807vceqh,
808vceqhs,
809vcfeb,
810vcfn,
811vcgdb,
812vchb,
813vchbs,
814vchf,
815vchfs,
816vchg,
817vchgs,
818vchh,
819vchhs,
820vchlb,
821vchlbs,
822vchlf,
823vchlfs,
824vchlg,
825vchlgs,
826vchlh,
827vchlhs,
828vcksm,
829vclfeb,
830vclfnh,
831vclfnl,
832vclgdb,
833vclzb,
834vclzf,
835vclzg,
836vclzh,
837vcnf,
838vcrnf,
839vctzb,
840vctzf,
841vctzg,
842vctzh,
843verimb,
844verimf,
845verimg,
846verimh,
847verllb,
848verllf,
849verllg,
850verllh,
851verllvb,
852verllvf,
853verllvg,
854verllvh,
855veslb,
856veslf,
857veslg,
858veslh,
859veslvb,
860veslvf,
861veslvg,
862veslvh,
863vesrab,
864vesraf,
865vesrag,
866vesrah,
867vesravb,
868vesravf,
869vesravg,
870vesravh,
871vesrlb,
872vesrlf,
873vesrlg,
874vesrlh,
875vesrlvb,
876vesrlvf,
877vesrlvg,
878vesrlvh,
879vfadb,
880vfasb,
881vfcedb,
882vfcedbs,
883vfcesb,
884vfcesbs,
885vfchdb,
886vfchdbs,
887vfchedb,
888vfchedbs,
889vfchesb,
890vfchesbs,
891vfchsb,
892vfchsbs,
893vfeeb,
894vfeef,
895vfeeh,
896vfeezbs,
897vfeezfs,
898vfeezhs,
899vfeneb,
900vfenef,
901vfeneh,
902vfenezb,
903vfenezf,
904vfenezh,
905vfidb,
906vfisb,
907vfkedb,
908vfkesb,
909vfkhdb,
910vfkhedb,
911vfkhesb,
912vfkhsb,
913vflcdb,
914vflcsb,
915vflndb,
916vflnsb,
917vflpdb,
918vflpsb,
919vfmadb,
920vfmasb,
921vfmaxdb,
922vfmaxsb,
923vfmdb,
924vfmindb,
925vfminsb,
926vfmsb,
927vfmsdb,
928vfmssb,
929vfnmadb,
930vfnmasb,
931vfnmsdb,
932vfnmssb,
933vfsdb,
934vfssb,
935vftcidb,
936vftcisb,
937vgbm,
938vgfmab,
939vgfmaf,
940vgfmag,
941vgfmah,
942vgfmb,
943vgfmf,
944vgfmg,
945vgfmh,
946vgm,
947vgmb,
948vgmf,
949vgmg,
950vgmh,
951vistrb,
952vistrbs,
953vistrf,
954vistrfs,
955vistrh,
956vistrhs,
957vlcb,
958vlcf,
959vlcg,
960vlch,
961vldeb,
962vleb,
963vlebrf,
964vlebrg,
965vlebrh,
966vledb,
967vlef,
968vleg,
969vleh,
970vleib,
971vleif,
972vleig,
973vleih,
974vlpb,
975vlpf,
976vlpg,
977vlph,
978vmaeb,
979vmaef,
980vmaeh,
981vmahb,
982vmahf,
983vmahh,
984vmalb,
985vmaleb,
986vmalef,
987vmaleh,
988vmalf,
989vmalhb,
990vmalhf,
991vmalhh,
992vmalhw,
993vmalob,
994vmalof,
995vmaloh,
996vmaob,
997vmaof,
998vmaoh,
999vmeb,
1000vmef,
1001vmeh,
1002vmhb,
1003vmhf,
1004vmhh,
1005vmlb,
1006vmleb,
1007vmlef,
1008vmleh,
1009vmlf,
1010vmlhb,
1011vmlhf,
1012vmlhh,
1013vmlhw,
1014vmlob,
1015vmlof,
1016vmloh,
1017vmnb,
1018vmnf,
1019vmng,
1020vmnh,
1021vmnlb,
1022vmnlf,
1023vmnlg,
1024vmnlh,
1025vmob,
1026vmof,
1027vmoh,
1028vmrhb,
1029vmrhf,
1030vmrhg,
1031vmrhh,
1032vmrlb,
1033vmrlf,
1034vmrlg,
1035vmrlh,
1036vmslg,
1037vmxb,
1038vmxf,
1039vmxg,
1040vmxh,
1041vmxlb,
1042vmxlf,
1043vmxlg,
1044vmxlh,
1045vn,
1046vnc,
1047vnn,
1048vno,
1049vnot,
1050vnx,
1051vo,
1052voc,
1053vone,
1054vpdi,
1055vperm,
1056vpkf,
1057vpkg,
1058vpkh,
1059vpklsf,
1060vpklsfs,
1061vpklsg,
1062vpklsgs,
1063vpklsh,
1064vpklshs,
1065vpksf,
1066vpksfs,
1067vpksg,
1068vpksgs,
1069vpksh,
1070vpkshs,
1071vpopct,
1072vpopctb,
1073vpopctf,
1074vpopctg,
1075vpopcth,
1076vrepb,
1077vrepf,
1078vrepg,
1079vreph,
1080vrepi,
1081vrepib,
1082vrepif,
1083vrepig,
1084vrepih,
1085vsb,
1086vsbcbiq,
1087vsbiq,
1088vscbib,
1089vscbif,
1090vscbig,
1091vscbih,
1092vscbiq,
1093vsegb,
1094vsegf,
1095vsegh,
1096vsel,
1097vsf,
1098vsg,
1099vsh,
1100vsl,
1101vslb,
1102vsld,
1103vsldb,
1104vsq,
1105vsra,
1106vsrab,
1107vsrd,
1108vsrl,
1109vsrlb,
1110vsumb,
1111vsumgf,
1112vsumgh,
1113vsumh,
1114vsumqf,
1115vsumqg,
1116vtm,
1117vuphb,
1118vuphf,
1119vuphh,
1120vuplb,
1121vuplf,
1122vuplhb,
1123vuplhf,
1124vuplhh,
1125vuplhw,
1126vupllb,
1127vupllf,
1128vupllh,
1129vx,
1130vzero,
1131wcdgb,
1132wcdlgb,
1133wcefb,
1134wcelfb,
1135wcfeb,
1136wcgdb,
1137wclfeb,
1138wclgdb,
1139wfadb,
1140wfasb,
1141wfaxb,
1142wfcdb,
1143wfcedb,
1144wfcesb,
1145wfcexb,
1146wfcexbs,
1147wfchdb,
1148wfchedb,
1149wfchesb,
1150wfchexb,
1151wfchexbs,
1152wfchsb,
1153wfchxb,
1154wfchxbs,
1155wfcsb,
1156wfcxb,
1157wfidb,
1158wfisb,
1159wfixb,
1160wfkdb,
1161wfkedb,
1162wfkesb,
1163wfkexb,
1164wfkhdb,
1165wfkhedb,
1166wfkhesb,
1167wfkhexb,
1168wfkhsb,
1169wfkhxb,
1170wfksb,
1171wfkxb,
1172wflcdb,
1173wflcsb,
1174wflcxb,
1175wflld,
1176wflndb,
1177wflnsb,
1178wflnxb,
1179wflpdb,
1180wflpsb,
1181wflpxb,
1182wflrx,
1183wfmadb,
1184wfmasb,
1185wfmaxb,
1186wfmaxxb,
1187wfmdb,
1188wfminxb,
1189wfmsb,
1190wfmsdb,
1191wfmssb,
1192wfmsxb,
1193wfmxb,
1194wfnmaxb,
1195wfnmsxb,
1196wfsdb,
1197wfssb,
1198wfsxb,
1199wftcixb,
1200wldeb,
1201wledb"
1202)
1203 (const_int 1)] (const_int 0)))
1204
1205(define_attr "z16_cracked" ""
1206(cond [(eq_attr "mnemonic"
1207"bas,
1208basr,
1209cdfbr,
1210cdftr,
1211cdgbr,
1212cdgtr,
1213cdlfbr,
1214cdlftr,
1215cdlgbr,
1216cdlgtr,
1217cefbr,
1218cegbr,
1219celfbr,
1220celgbr,
1221cfdbr,
1222cfebr,
1223cfxbr,
1224cgdbr,
1225cgdtr,
1226cgebr,
1227cgxbr,
1228cgxtr,
1229chhsi,
1230clfdbr,
1231clfdtr,
1232clfebr,
1233clfxbr,
1234clfxtr,
1235clgdbr,
1236clgdtr,
1237clgebr,
1238clgxbr,
1239clgxtr,
1240cs,
1241csg,
1242csy,
1243d,
1244efpc,
1245ex,
1246lcgfr,
1247lngfr,
1248lpgfr,
1249lpq,
1250lxr,
1251lzxr,
1252rxsbg,
1253stpq,
1254vgef,
1255vgeg,
1256vscef,
1257vsceg,
1258vsteb,
1259vstebrh,
1260vsteh"
1261)
1262 (const_int 1)] (const_int 0)))
1263
1264(define_attr "z16_expanded" ""
1265(cond [(eq_attr "mnemonic"
1266"cds,
1267cdsg,
1268cdsy,
1269cxfbr,
1270cxftr,
1271cxgbr,
1272cxgtr,
1273cxlfbr,
1274cxlftr,
1275cxlgbr,
1276cxlgtr,
1277dl,
1278dlg,
1279dsg,
1280dsgf,
1281lam,
1282lm,
1283lmg,
1284lmy,
1285sldl,
1286srda,
1287srdl,
1288stam,
1289stm,
1290stmg,
1291stmy,
1292tbegin,
1293tbeginc"
1294)
1295 (const_int 1)] (const_int 0)))
1296
1297(define_attr "z16_groupalone" ""
1298(cond [(eq_attr "mnemonic"
1299"alc,
1300alcg,
1301alcgr,
1302alcr,
1303axbr,
1304axtr,
1305clc,
1306cxbr,
1307cxtr,
1308dlgr,
1309dlr,
1310dr,
1311dsgfr,
1312dsgr,
1313dxbr,
1314dxtr,
1315fixbr,
1316fixbra,
1317fixtr,
1318flogr,
1319kxbr,
1320kxtr,
1321lcxbr,
1322lnxbr,
1323lpxbr,
1324ltxbr,
1325ltxtr,
1326lxdb,
1327lxdbr,
1328lxdtr,
1329lxeb,
1330lxebr,
1331m,
1332madb,
1333maeb,
1334maebr,
1335mfy,
1336mg,
1337mgrk,
1338ml,
1339mlg,
1340mlgr,
1341mlr,
1342mr,
1343msdb,
1344mseb,
1345msebr,
1346mvc,
1347mxbr,
1348mxtr,
1349nc,
1350oc,
1351ppa,
1352sfpc,
1353slb,
1354slbg,
1355slbgr,
1356slbr,
1357sqxbr,
1358sxbr,
1359sxtr,
1360tabort,
1361tcxb,
1362tdcxt,
1363tend,
1364xc"
1365)
1366 (const_int 1)] (const_int 0)))
1367
1368(define_attr "z16_endgroup" ""
1369(cond [(eq_attr "mnemonic"
1370"bras,
1371brasl,
1372exrl,
1373ipm"
1374)
1375 (const_int 1)] (const_int 0)))
1376
1377(define_attr "z16_groupoftwo" ""
1378(cond [(eq_attr "mnemonic"
1379"vacccq,
1380vacq,
1381vfmadb,
1382vfmasb,
1383vfmsdb,
1384vfmssb,
1385vfnmadb,
1386vfnmasb,
1387vfnmsdb,
1388vfnmssb,
1389vgfmab,
1390vgfmaf,
1391vgfmag,
1392vgfmah,
1393vmaeb,
1394vmaef,
1395vmaeh,
1396vmahb,
1397vmahf,
1398vmahh,
1399vmalb,
1400vmaleb,
1401vmalef,
1402vmaleh,
1403vmalf,
1404vmalhb,
1405vmalhf,
1406vmalhh,
1407vmalhw,
1408vmalob,
1409vmalof,
1410vmaloh,
1411vmaob,
1412vmaof,
1413vmaoh,
1414vmslg,
1415vperm,
1416vsbcbiq,
1417vsbiq,
1418vsel,
1419wfmadb,
1420wfmasb,
1421wfmaxb,
1422wfmsdb,
1423wfmssb,
1424wfmsxb,
1425wfnmaxb,
1426wfnmsxb"
1427)
1428 (const_int 1)] (const_int 0)))
1429
1430(define_insn_reservation "z16_0" 0
1431  (and (eq_attr "cpu" "z16")
1432(eq_attr "mnemonic"
1433"a,
1434afi,
1435ag,
1436agfi,
1437aghi,
1438aghik,
1439agr,
1440agrk,
1441ahi,
1442ahik,
1443al,
1444alfi,
1445alg,
1446algf,
1447algfi,
1448algfr,
1449alghsik,
1450algr,
1451algrk,
1452alhsik,
1453alr,
1454alrk,
1455aly,
1456ar,
1457ark,
1458ay,
1459b,
1460bc,
1461bcr,
1462bi,
1463br,
1464bras,
1465brasl,
1466brcl,
1467c,
1468cfi,
1469cg,
1470cgfi,
1471cghi,
1472cghsi,
1473cgit,
1474cgr,
1475cgrl,
1476cgrt,
1477chi,
1478chsi,
1479cit,
1480cl,
1481clfhsi,
1482clfi,
1483clfit,
1484clg,
1485clgf,
1486clgfi,
1487clgfr,
1488clgfrl,
1489clghrl,
1490clghsi,
1491clgit,
1492clgr,
1493clgrl,
1494clgrt,
1495clgt,
1496clhhsi,
1497clhrl,
1498cli,
1499cliy,
1500clr,
1501clrl,
1502clrt,
1503clt,
1504cly,
1505cr,
1506crl,
1507crt,
1508cy,
1509etnd,
1510exrl,
1511ic,
1512icm,
1513icmh,
1514icmy,
1515icy,
1516iihf,
1517iilf,
1518j,
1519jg,
1520la,
1521larl,
1522lat,
1523lay,
1524lb,
1525lbr,
1526lcdfr,
1527lcgr,
1528lcr,
1529ldgr,
1530ldr,
1531lgat,
1532lgb,
1533lgbr,
1534lgf,
1535lgfi,
1536lgfr,
1537lgfrl,
1538lgh,
1539lghi,
1540lghr,
1541lghrl,
1542lgr,
1543lh,
1544lhi,
1545lhr,
1546lhrl,
1547lhy,
1548llcr,
1549llgcr,
1550llgfr,
1551llghr,
1552llgtr,
1553llhr,
1554llihf,
1555llihh,
1556llihl,
1557llilf,
1558llilh,
1559llill,
1560lndfr,
1561lngr,
1562lnr,
1563lpdfr,
1564lpgr,
1565lpr,
1566lr,
1567lrv,
1568lrvg,
1569lrvgr,
1570lrvh,
1571lrvr,
1572lt,
1573ltg,
1574ltgf,
1575ltgfr,
1576ltgr,
1577ltr,
1578lzdr,
1579lzer,
1580n,
1581ncgrk,
1582ncrk,
1583ng,
1584ngr,
1585ngrk,
1586nihf,
1587nihh,
1588nihl,
1589nilf,
1590nilh,
1591nill,
1592nngrk,
1593nnrk,
1594nogrk,
1595nop,
1596nopr,
1597nork,
1598nr,
1599nrk,
1600nxgrk,
1601nxrk,
1602ny,
1603o,
1604ocgrk,
1605ocrk,
1606og,
1607ogr,
1608ogrk,
1609oihf,
1610oihh,
1611oihl,
1612oilf,
1613oilh,
1614oill,
1615or,
1616ork,
1617oy,
1618pfpo,
1619risbg,
1620risbgn,
1621rll,
1622rllg,
1623rnsbg,
1624rosbg,
1625s,
1626sg,
1627sgr,
1628sgrk,
1629sl,
1630sldl,
1631slfi,
1632slg,
1633slgf,
1634slgfi,
1635slgfr,
1636slgr,
1637slgrk,
1638sll,
1639sllg,
1640sllk,
1641slr,
1642slrk,
1643sly,
1644sr,
1645sra,
1646srag,
1647srak,
1648srda,
1649srdl,
1650srk,
1651srl,
1652srlg,
1653srlk,
1654sy,
1655tm,
1656tmh,
1657tmhh,
1658tmhl,
1659tml,
1660tmlh,
1661tmll,
1662tmy,
1663vlr,
1664vlvgb,
1665vlvgf,
1666vlvgg,
1667vlvgh,
1668x,
1669xg,
1670xgr,
1671xgrk,
1672xihf,
1673xilf,
1674xr,
1675xrk,
1676xy"
1677)) "nothing")
1678
1679(define_insn_reservation "z16_1" 1
1680  (and (eq_attr "cpu" "z16")
1681(eq_attr "mnemonic"
1682"agf,
1683agfr,
1684agh,
1685agsi,
1686ah,
1687ahy,
1688algsi,
1689alsi,
1690asi,
1691cgf,
1692cgfr,
1693cgfrl,
1694cgh,
1695cghrl,
1696ch,
1697chrl,
1698chy,
1699clm,
1700clmy,
1701cpsdr,
1702laa,
1703laag,
1704lan,
1705lang,
1706lao,
1707laog,
1708lax,
1709laxg,
1710le,
1711ler,
1712ley,
1713loc,
1714locg,
1715locghi,
1716locgr,
1717lochi,
1718locr,
1719mvghi,
1720mvhhi,
1721mvhi,
1722mvi,
1723mviy,
1724ni,
1725niy,
1726ntstg,
1727oi,
1728oiy,
1729selgr,
1730selr,
1731sgf,
1732sgfr,
1733sgh,
1734sh,
1735shy,
1736st,
1737stc,
1738stcy,
1739stg,
1740stgrl,
1741sth,
1742sthrl,
1743sthy,
1744stoc,
1745stocg,
1746strl,
1747strv,
1748strvg,
1749strvh,
1750sty,
1751vab,
1752vaccb,
1753vacccq,
1754vaccf,
1755vaccg,
1756vacch,
1757vaccq,
1758vacq,
1759vaf,
1760vag,
1761vah,
1762vaq,
1763vavgb,
1764vavgf,
1765vavgg,
1766vavgh,
1767vavglb,
1768vavglf,
1769vavglg,
1770vavglh,
1771vbperm,
1772vceqb,
1773vceqf,
1774vceqg,
1775vceqh,
1776vcfn,
1777vchb,
1778vchf,
1779vchg,
1780vchh,
1781vchlb,
1782vchlf,
1783vchlg,
1784vchlh,
1785vclfnh,
1786vclfnl,
1787vclzb,
1788vclzf,
1789vclzg,
1790vclzh,
1791vcnf,
1792vcrnf,
1793vctzb,
1794vctzf,
1795vctzg,
1796vctzh,
1797verimb,
1798verimf,
1799verimg,
1800verimh,
1801verllb,
1802verllf,
1803verllg,
1804verllh,
1805verllvb,
1806verllvf,
1807verllvg,
1808verllvh,
1809veslb,
1810veslf,
1811veslg,
1812veslh,
1813veslvb,
1814veslvf,
1815veslvg,
1816veslvh,
1817vesrab,
1818vesraf,
1819vesrag,
1820vesrah,
1821vesravb,
1822vesravf,
1823vesravg,
1824vesravh,
1825vesrlb,
1826vesrlf,
1827vesrlg,
1828vesrlh,
1829vesrlvb,
1830vesrlvf,
1831vesrlvg,
1832vesrlvh,
1833vfcedb,
1834vfcesb,
1835vfchdb,
1836vfchedb,
1837vfchesb,
1838vfchsb,
1839vfkedb,
1840vfkesb,
1841vfkhdb,
1842vfkhedb,
1843vfkhesb,
1844vfkhsb,
1845vflcdb,
1846vflcsb,
1847vflndb,
1848vflnsb,
1849vflpdb,
1850vflpsb,
1851vfmaxdb,
1852vfmaxsb,
1853vfmindb,
1854vfminsb,
1855vgbm,
1856vgm,
1857vgmb,
1858vgmf,
1859vgmg,
1860vgmh,
1861vlcb,
1862vlcf,
1863vlcg,
1864vlch,
1865vleb,
1866vlebrf,
1867vlebrg,
1868vlebrh,
1869vlef,
1870vleg,
1871vleh,
1872vleib,
1873vleif,
1874vleig,
1875vleih,
1876vlpb,
1877vlpf,
1878vlpg,
1879vlph,
1880vmnb,
1881vmnf,
1882vmng,
1883vmnh,
1884vmnlb,
1885vmnlf,
1886vmnlg,
1887vmnlh,
1888vmrhb,
1889vmrhf,
1890vmrhg,
1891vmrhh,
1892vmrlb,
1893vmrlf,
1894vmrlg,
1895vmrlh,
1896vmxb,
1897vmxf,
1898vmxg,
1899vmxh,
1900vmxlb,
1901vmxlf,
1902vmxlg,
1903vmxlh,
1904vn,
1905vnc,
1906vnn,
1907vno,
1908vnot,
1909vnx,
1910vo,
1911voc,
1912vone,
1913vpdi,
1914vperm,
1915vpkf,
1916vpkg,
1917vpkh,
1918vpklsf,
1919vpklsg,
1920vpklsh,
1921vpksf,
1922vpksg,
1923vpksh,
1924vpopct,
1925vpopctb,
1926vpopctf,
1927vpopctg,
1928vpopcth,
1929vrepb,
1930vrepf,
1931vrepg,
1932vreph,
1933vrepi,
1934vrepib,
1935vrepif,
1936vrepig,
1937vrepih,
1938vsb,
1939vsbcbiq,
1940vsbiq,
1941vscbib,
1942vscbif,
1943vscbig,
1944vscbih,
1945vscbiq,
1946vsegb,
1947vsegf,
1948vsegh,
1949vsel,
1950vsf,
1951vsg,
1952vsh,
1953vsl,
1954vslb,
1955vsld,
1956vsldb,
1957vsq,
1958vsra,
1959vsrab,
1960vsrd,
1961vsrl,
1962vsrlb,
1963vuphb,
1964vuphf,
1965vuphh,
1966vuplb,
1967vuplf,
1968vuplhb,
1969vuplhf,
1970vuplhh,
1971vuplhw,
1972vupllb,
1973vupllf,
1974vupllh,
1975vx,
1976vzero,
1977wfcedb,
1978wfcesb,
1979wfcexb,
1980wfchdb,
1981wfchedb,
1982wfchesb,
1983wfchexb,
1984wfchsb,
1985wfchxb,
1986wfkedb,
1987wfkesb,
1988wfkexb,
1989wfkhdb,
1990wfkhedb,
1991wfkhesb,
1992wfkhexb,
1993wfkhsb,
1994wfkhxb,
1995wflcdb,
1996wflcsb,
1997wflcxb,
1998wflndb,
1999wflnsb,
2000wflnxb,
2001wflpdb,
2002wflpsb,
2003wflpxb,
2004wfmaxxb,
2005wfminxb,
2006xi,
2007xiy"
2008)) "nothing")
2009
2010(define_insn_reservation "z16_2" 2
2011  (and (eq_attr "cpu" "z16")
2012(eq_attr "mnemonic"
2013"cdb,
2014cdbr,
2015ceb,
2016cebr,
2017ear,
2018ipm,
2019kdb,
2020kdbr,
2021keb,
2022kebr,
2023l,
2024lcbb,
2025lcdbr,
2026lcebr,
2027ld,
2028lde,
2029ldy,
2030lg,
2031lgdr,
2032lgrl,
2033llc,
2034llgc,
2035llgf,
2036llgfrl,
2037llgh,
2038llghrl,
2039llgt,
2040llh,
2041llhrl,
2042lm,
2043lmg,
2044lmy,
2045lndbr,
2046lnebr,
2047lpdbr,
2048lpebr,
2049lrl,
2050ltdbr,
2051ltebr,
2052ly,
2053popcnt,
2054sar,
2055tcdb,
2056tceb,
2057vceqbs,
2058vceqfs,
2059vceqgs,
2060vceqhs,
2061vchbs,
2062vchfs,
2063vchgs,
2064vchhs,
2065vchlbs,
2066vchlfs,
2067vchlgs,
2068vchlhs,
2069vfcedbs,
2070vfcesbs,
2071vfchdbs,
2072vfchedbs,
2073vfchesbs,
2074vfchsbs,
2075vfeeb,
2076vfeef,
2077vfeeh,
2078vfeneb,
2079vfenef,
2080vfeneh,
2081vfenezb,
2082vfenezf,
2083vfenezh,
2084vftcidb,
2085vftcisb,
2086vistrb,
2087vistrf,
2088vistrh,
2089vlbrrepf,
2090vlbrrepg,
2091vlbrreph,
2092vlgvb,
2093vlgvf,
2094vlgvg,
2095vlgvh,
2096vllebrzf,
2097vllebrzg,
2098vllebrzh,
2099vllezb,
2100vllezf,
2101vllezg,
2102vllezh,
2103vllezlf,
2104vlrepb,
2105vlrepf,
2106vlrepg,
2107vlreph,
2108vlrl,
2109vlvgp,
2110vpklsfs,
2111vpklsgs,
2112vpklshs,
2113vpksfs,
2114vpksgs,
2115vpkshs,
2116wfcdb,
2117wfcexbs,
2118wfchexbs,
2119wfchxbs,
2120wfcsb,
2121wfcxb,
2122wfkdb,
2123wfksb,
2124wfkxb,
2125wftcixb"
2126)) "nothing")
2127
2128(define_insn_reservation "z16_3" 3
2129  (and (eq_attr "cpu" "z16")
2130(eq_attr "mnemonic"
2131"cds,
2132cdsy,
2133mgh,
2134mghi,
2135mh,
2136mhi,
2137mhy,
2138std,
2139stdy,
2140ste,
2141stey,
2142vcksm,
2143vfeezbs,
2144vfeezfs,
2145vfeezhs,
2146vgfmab,
2147vgfmaf,
2148vgfmag,
2149vgfmah,
2150vgfmb,
2151vgfmf,
2152vgfmg,
2153vgfmh,
2154vistrbs,
2155vistrfs,
2156vistrhs,
2157vl,
2158vlbb,
2159vlbr,
2160vlbrf,
2161vlbrg,
2162vlbrh,
2163vlbrq,
2164vlerf,
2165vlerg,
2166vlerh,
2167vll,
2168vlrlr,
2169vmaeb,
2170vmaef,
2171vmaeh,
2172vmahb,
2173vmahf,
2174vmahh,
2175vmalb,
2176vmaleb,
2177vmalef,
2178vmaleh,
2179vmalf,
2180vmalhb,
2181vmalhf,
2182vmalhh,
2183vmalhw,
2184vmalob,
2185vmalof,
2186vmaloh,
2187vmaob,
2188vmaof,
2189vmaoh,
2190vmeb,
2191vmef,
2192vmeh,
2193vmhb,
2194vmhf,
2195vmhh,
2196vmlb,
2197vmleb,
2198vmlef,
2199vmleh,
2200vmlf,
2201vmlhb,
2202vmlhf,
2203vmlhh,
2204vmlhw,
2205vmlob,
2206vmlof,
2207vmloh,
2208vmob,
2209vmof,
2210vmoh,
2211vsumb,
2212vsumgf,
2213vsumgh,
2214vsumh,
2215vsumqf,
2216vsumqg,
2217vtm"
2218)) "nothing")
2219
2220(define_insn_reservation "z16_4" 4
2221  (and (eq_attr "cpu" "z16")
2222(eq_attr "mnemonic"
2223"bas,
2224basr,
2225chhsi,
2226clc,
2227ex,
2228lam,
2229lcgfr,
2230lngfr,
2231lpgfr,
2232lxr,
2233lzxr,
2234ms,
2235msfi,
2236msgf,
2237msgfi,
2238msgfr,
2239msr,
2240msy,
2241mvc,
2242nc,
2243oc,
2244ppa,
2245rxsbg,
2246tabort,
2247tbegin,
2248tbeginc,
2249tend,
2250vst,
2251vstbr,
2252vstbrf,
2253vstbrg,
2254vstbrh,
2255vstbrq,
2256vstebrf,
2257vstebrg,
2258vstef,
2259vsteg,
2260vsterf,
2261vsterg,
2262vsterh,
2263vstl,
2264vstrl,
2265vstrlr,
2266xc"
2267)) "nothing")
2268
2269(define_insn_reservation "z16_5" 5
2270  (and (eq_attr "cpu" "z16")
2271(eq_attr "mnemonic"
2272"adb,
2273adbr,
2274aeb,
2275aebr,
2276alc,
2277alcg,
2278alcgr,
2279alcr,
2280cs,
2281csg,
2282csy,
2283fidbr,
2284fidbra,
2285fiebr,
2286fiebra,
2287ldeb,
2288ldebr,
2289ledbr,
2290madbr,
2291mdb,
2292mdbr,
2293meeb,
2294meebr,
2295msc,
2296msdbr,
2297msrkc,
2298sdb,
2299sdbr,
2300seb,
2301sebr,
2302slb,
2303slbg,
2304slbgr,
2305slbr,
2306stm,
2307stmg,
2308stmy,
2309vcdgb,
2310vcdlgb,
2311vcefb,
2312vcelfb,
2313vcfeb,
2314vcgdb,
2315vclfeb,
2316vclgdb,
2317vfadb,
2318vfasb,
2319vfidb,
2320vfisb,
2321vfmadb,
2322vfmasb,
2323vfmdb,
2324vfmsb,
2325vfmsdb,
2326vfmssb,
2327vfnmadb,
2328vfnmasb,
2329vfnmsdb,
2330vfnmssb,
2331vfsdb,
2332vfssb,
2333vldeb,
2334vledb,
2335vmslg,
2336wcdgb,
2337wcdlgb,
2338wcefb,
2339wcelfb,
2340wcfeb,
2341wcgdb,
2342wclfeb,
2343wclgdb,
2344wfadb,
2345wfasb,
2346wfidb,
2347wfisb,
2348wflld,
2349wfmadb,
2350wfmasb,
2351wfmdb,
2352wfmsb,
2353wfmsdb,
2354wfmssb,
2355wfsdb,
2356wfssb,
2357wldeb,
2358wledb"
2359)) "nothing")
2360
2361(define_insn_reservation "z16_6" 6
2362  (and (eq_attr "cpu" "z16")
2363(eq_attr "mnemonic"
2364"msg,
2365msgr,
2366sfpc"
2367)) "nothing")
2368
2369(define_insn_reservation "z16_7" 7
2370  (and (eq_attr "cpu" "z16")
2371(eq_attr "mnemonic"
2372"adtr,
2373cdtr,
2374fidtr,
2375kdtr,
2376ldetr,
2377ltdtr,
2378msgc,
2379msgrkc,
2380sdtr,
2381tdcdt,
2382tdcet,
2383vgef,
2384vgeg"
2385)) "nothing")
2386
2387(define_insn_reservation "z16_8" 8
2388  (and (eq_attr "cpu" "z16")
2389(eq_attr "mnemonic"
2390"cdsg,
2391flogr,
2392lpq,
2393stpq,
2394vsteb,
2395vstebrh,
2396vsteh"
2397)) "nothing")
2398
2399(define_insn_reservation "z16_9" 9
2400  (and (eq_attr "cpu" "z16")
2401(eq_attr "mnemonic"
2402"cdfbr,
2403cdgbr,
2404cdlfbr,
2405cdlgbr,
2406cefbr,
2407cegbr,
2408celfbr,
2409celgbr,
2410cxfbr,
2411cxgbr,
2412cxlfbr,
2413cxlgbr,
2414m,
2415madb,
2416maeb,
2417maebr,
2418mfy,
2419ml,
2420mlr,
2421mr,
2422msdb,
2423mseb,
2424msebr,
2425stam,
2426wfaxb,
2427wfixb,
2428wflrx,
2429wfsxb"
2430)) "nothing")
2431
2432(define_insn_reservation "z16_10" 10
2433  (and (eq_attr "cpu" "z16")
2434(eq_attr "mnemonic"
2435"lxdb,
2436lxdbr,
2437lxeb,
2438lxebr,
2439vscef,
2440vsceg"
2441)) "nothing")
2442
2443(define_insn_reservation "z16_11" 11
2444  (and (eq_attr "cpu" "z16")
2445(eq_attr "mnemonic"
2446"cfdbr,
2447cfebr,
2448cgdbr,
2449cgebr,
2450clfdbr,
2451clfebr,
2452clgdbr,
2453clgebr,
2454mg,
2455mgrk,
2456mlg,
2457mlgr"
2458)) "nothing")
2459
2460(define_insn_reservation "z16_12" 12
2461  (and (eq_attr "cpu" "z16")
2462(eq_attr "mnemonic"
2463"cxbr,
2464cxftr,
2465cxlftr,
2466cxtr,
2467kxbr,
2468kxtr,
2469tcxb,
2470tdcxt"
2471)) "nothing")
2472
2473(define_insn_reservation "z16_13" 13
2474  (and (eq_attr "cpu" "z16")
2475(eq_attr "mnemonic"
2476"axbr,
2477axtr,
2478fixbr,
2479fixbra,
2480fixtr,
2481lcxbr,
2482lnxbr,
2483lpxbr,
2484ltxbr,
2485ltxtr,
2486lxdtr,
2487sxbr,
2488sxtr"
2489)) "nothing")
2490
2491(define_insn_reservation "z16_14" 14
2492  (and (eq_attr "cpu" "z16")
2493(eq_attr "mnemonic"
2494"cfxbr,
2495cgxbr,
2496clfxbr,
2497clgxbr,
2498ledtr"
2499)) "nothing")
2500
2501(define_insn_reservation "z16_16" 16
2502  (and (eq_attr "cpu" "z16")
2503(eq_attr "mnemonic"
2504"cdftr,
2505cdlftr"
2506)) "nothing")
2507
2508(define_insn_reservation "z16_20" 20
2509  (and (eq_attr "cpu" "z16")
2510(eq_attr "mnemonic"
2511"cdgtr,
2512cdlgtr,
2513cgdtr,
2514cgxtr,
2515clfdtr,
2516clfxtr,
2517clgdtr,
2518clgxtr,
2519cxgtr,
2520cxlgtr,
2521d,
2522ddb,
2523ddbr,
2524ddtr,
2525deb,
2526debr,
2527dl,
2528dlg,
2529dlgr,
2530dlr,
2531dr,
2532dsg,
2533dsgf,
2534dsgfr,
2535dsgr,
2536dxbr,
2537dxtr,
2538efpc,
2539mdtr,
2540mxbr,
2541mxtr,
2542sqdb,
2543sqdbr,
2544sqeb,
2545sqebr,
2546sqxbr,
2547vfddb,
2548vfdsb,
2549vfsqdb,
2550vfsqsb,
2551wfddb,
2552wfdsb,
2553wfdxb,
2554wfmaxb,
2555wfmsxb,
2556wfmxb,
2557wfnmaxb,
2558wfnmsxb,
2559wfsqdb,
2560wfsqxb"
2561)) "nothing")
2562
2563