HomePhabricator

[AVR] Expand 16-bit rotations during the legalization stage

Authored by dylanmckay on Jun 6 2019, 11:55 PM.

Description

[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

Details

Committed
dylanmckayJun 6 2019, 11:55 PM
Parents
rG65d1ff8e7e2d: [NFC] Delete trailing whitespace character.
Branches
Unknown
Tags
Unknown