kieroxide wrote: @davemgreen Yes, this PR now restricts the range to the source eltsize, this will match GCC and is what the ACLE defines.
A shift range of 0..(2n - 1) would be reasonable for a widening shift. However, vshll_n lowers to either SSHLL or USHLL, whose immediate operands are limited to 0..(source element size - 1), or to SHLL, which always shifts by exactly the source element size. So, GCC's behavior is correct. Before, when the shift was out of range, it lowered to separate widen then a shift instruction. Which is not defined in the ACLE. https://github.com/llvm/llvm-project/pull/212459 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
