diff options
author | Dylan McKay <me@dylanmckay.io> | 2019-06-07 06:55:00 +0000 |
---|---|---|
committer | Dylan McKay <me@dylanmckay.io> | 2019-06-07 06:55:00 +0000 |
commit | 04b418f2460153969ccf7e72a2ee90aad6c8fd35 (patch) | |
tree | b6ae872a92091bbd3549bc1889b26fb4a734a367 /llvm/lib/Support/Host.cpp | |
parent | 65d1ff8e7e2d9e67b0defb5d4af880eb808a0d27 (diff) | |
download | bcm5719-llvm-04b418f2460153969ccf7e72a2ee90aad6c8fd35.tar.gz bcm5719-llvm-04b418f2460153969ccf7e72a2ee90aad6c8fd35.zip |
[AVR] Expand 16-bit rotations during the legalization stage
In r356860, the legalization logic for BSWAP was modified to ISD::ROTL,
rather than the old ISD::{SHL, SRL, OR} nodes.
This works fine on AVR for 8-bit rotations, but 16-bit rotations are
currently unimplemented - they always trigger an assertion error in the
AVRExpandPseudoInsts pass ("RORW unimplemented").
This patch instructions the legalizer to expand 16-bit rotations into
the previous SHL, SRL, OR pattern it did previously.
This fixes the 'issue-cannot-select-bswap.ll' test. Interestingly, this
test failure seems flaky - it passes successfully on the avr-build-01
buildbot, but fails locally on my Arch Linux install.
llvm-svn: 362773
Diffstat (limited to 'llvm/lib/Support/Host.cpp')
0 files changed, 0 insertions, 0 deletions