diff options
author | Sanjay Patel <spatel@rotateright.com> | 2022-03-30 09:29:32 -0400 |
---|---|---|
committer | Sanjay Patel <spatel@rotateright.com> | 2022-03-30 09:29:32 -0400 |
commit | e18cc5277fd8f29da6ba5273a2f4c8359754ccb6 (patch) | |
tree | 83f0802ed0f35c238217c3ef9ce3ade25a4a2ad6 /llvm/lib/Support/VirtualFileSystem.cpp | |
parent | 849d577e564225d498a35dac920fb0899c299b12 (diff) | |
download | llvm-e18cc5277fd8f29da6ba5273a2f4c8359754ccb6.zip llvm-e18cc5277fd8f29da6ba5273a2f4c8359754ccb6.tar.gz llvm-e18cc5277fd8f29da6ba5273a2f4c8359754ccb6.tar.bz2 |
[SDAG] try to canonicalize logical shift after bswap
When shifting by a byte-multiple:
bswap (shl X, C) --> lshr (bswap X), C
bswap (lshr X, C) --> shl (bswap X), C
This is the backend version of D122010 and an alternative
suggested in D120648.
There's an extra check to make sure the shift amount is
valid that was not in the rough draft.
I'm not sure if there is a larger motivating case for RISCV (bug report?),
but the ARM diffs show a benefit from having a late version of the
transform (because we do not combine the loads in IR).
Differential Revision: https://reviews.llvm.org/D122655
Diffstat (limited to 'llvm/lib/Support/VirtualFileSystem.cpp')
0 files changed, 0 insertions, 0 deletions