<div dir="ltr">Hi All, <div><br></div><div>I had some questions regarding the SystemZ implementation and missing instructions. </div><div><br></div><div>I've been comparing the IBM z/Architecture Reference Summary (SA22-7871-08) to the output of </div><div>"llvm-tblgen SystemZ.td -print-enums -class=Instruction" and noticed that there's 525 missing instructions. <br></div><div><br></div><div>For example, if I look at instruction "M" (page 16) with opcode 0x5c (M Multiply (64 <- 32)) this instruction isn't listed in the output. Digging further I confirmed this instruction isn't implemented within SystemZInstrInfo.td (or any file in the llvm/lib/Target/SystemZ folder).</div><div><br></div><div>Am I missing something or could this instruction be implemented elsewhere within llvm?</div><div><br></div><div>I've also done cursory searching, here's a random selection of 12 (out of 525) more instructions that I've confirmed aren't implemented:</div><div><br></div><div>- ALSI Add Logical with Signed Immediate<br></div><div><div>- BAKR Branch and Stack</div><div>- BAL Branch and Link</div><div>- BALR Branch and Link</div></div><div>- CEGR Convert from Fixed (SH <- 64)<br></div><div>- LFPC Load FPC<br></div><div>- MDR Multiply (LH)<br></div><div>- STCMY Store Characters under Mask (low)<br></div><div>- STMY Store Multiple (32)<br></div><div>- TAR Test Access<br></div><div>- VACCC Vector Add With Carry Compute Carry (NEW!)<br></div><div>- VFENE Vector Find Element Not Equal  (NEW!)<br></div><div><br></div><div><br></div><div><br></div><div><br></div><div>-- <br><div class="gmail_signature"><div dir="ltr"><font color="#cccccc">Soldier of Fortran</font><div><font color="#cccccc">@mainframed767</font></div></div></div>
</div></div>