Before this patch (and the refactor D135843)
- isBitfieldPositioningOp requires 'SHL' node to have one use for non bigger pattern (code link)
After this patch
- A DAG node of (shl val, N) doesn't have the one use requirement.
The rationale is that, 'val' could be used as bit extraction source as long as N (the left shift amount) fits BiggerPattern requirement (that no extra shift node are created around this line). This would at least reduces one use of SHL if BFI instruction is used.
One existing test case is improved without regressing others. And there is no correctness issues, since BiggerPattern doesn't look at the number of uses before this patch)