diff options
author | Richard Sandiford <rsandifo@linux.vnet.ibm.com> | 2014-01-09 10:56:42 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@linux.vnet.ibm.com> | 2014-01-09 10:56:42 +0000 |
commit | acb31a245ceef3510f37163e31c0097b0d63cb8f (patch) | |
tree | 697f6ad55b0ab7c3562eb364d7857e3af5d7e956 /docs/HowToSubmitABug.rst | |
parent | 2984497cc1feb475d8ec97c9924dcc9bd02e0de0 (diff) | |
download | llvm-acb31a245ceef3510f37163e31c0097b0d63cb8f.tar.gz llvm-acb31a245ceef3510f37163e31c0097b0d63cb8f.tar.bz2 llvm-acb31a245ceef3510f37163e31c0097b0d63cb8f.tar.xz |
Handle masked rotate amounts
At the moment we expect rotates to have the form:
(or (shl X, Y), (shr X, Z))
where Y == bitsize(X) - Z or Z == bitsize(X) - Y. This form means that
the (or ...) is undefined for Y == 0 or Z == 0. This undefinedness can
be avoided by using Y == (C * bitsize(X) - Z) & (bitsize(X) - 1) or
Z == (C * bitsize(X) - Y) & (bitsize(X) - 1) for any integer C
(including 0, the most natural choice).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198861 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs/HowToSubmitABug.rst')
0 files changed, 0 insertions, 0 deletions