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