Created a predicate pattern for Thumb2 and HasT2ExtractPack and used it to redefine the patterns for sxta{b|h} and uxta{b|h}. Also used the similar patterns to fill in isel pattern gaps for the corresponding instructions in the ARM backend. The patch is mainly changes to tests since most of this functionality appears not to have been tested.
Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
lib/Target/ARM/ARMInstrThumb2.td | ||
---|---|---|
1993 ↗ | (On Diff #67185) | Shouldn't rot_imm be imm8_or_16 since we're producing an SXTAH? Specifically, we're only matching an srl not a rol so an shifting by 24 will give the wrong answer. |
test/CodeGen/Thumb2/thumb2-sxt-uxt.ll | ||
32 ↗ | (On Diff #67185) | None of these tests are hitting the non-zero rotation cases. |
Comment Actions
Hi Tim,
The ARM target also looks like it could do with some changes too. Would you mind those patches being attached here as well?
cheers,
Comment Actions
Added pattern matching for ARM as well, and updated the tests to include the instructions with a rotate operand - including new tests for ARM.