[PATCH] D18962: [SystemZ] README: remove an implemented idea, add some new ones.

Ulrich Weigand via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 11 06:51:17 PDT 2016


uweigand added a comment.

Agreed on the trap instruction.

As to overflow, there is already this text in README.txt:

> ADD LOGICAL WITH SIGNED IMMEDIATE could be useful when we need to

>  produce a carry.  SUBTRACT LOGICAL IMMEDIATE could be useful when we

>  need to produce a borrow.  (Note that there are no memory forms of

>  ADD LOGICAL WITH CARRY and SUBTRACT LOGICAL WITH BORROW, so the high

>  part of 128-bit memory operations would probably need to be done

>  via a register.)


Does this cover what you're refering to?   In any case, this should probably be merged there.

As to SRDL etc., I think you're refering to 128-bit shifts?  These are just one instance of a more general problem: the back-end currently does not handle i128 *at all*, it is marked as illegal type.  At some point, we should probably make i128 legal, and add optimal code gen for all the operations on that type, including shifts, but also the rest of them.  (In particular, on z13 we should also use vector instructions e.g. for 128-bit add, subtract, shift.)  This would also be a pre-req for implementing the 16-byte atomics that are mentioned a couple of lines earlier in README.txt.


Repository:
  rL LLVM

http://reviews.llvm.org/D18962





More information about the llvm-commits mailing list