As discussed on llvm-dev and:
https://bugs.llvm.org/show_bug.cgi?id=43542
...we have transforms that assume shift operations are legal and transforms to use them are profitable, but that may not hold for simple targets.
In this case, the MSP430 target custom lowers shifts by repeating (many) simpler/fixed ops. That can be avoided by keeping this code as setcc/select.
Details
Details
Diff Detail
Diff Detail
Event Timeline
Comment Actions
I've always wondered why in DAGCombine we create nodes rarely consulting with TLI.isOperation*().
This patch explains it :/ Looks ok to me..