The code responsible for shl folding in the DAGCombiner was assuming incorrectly that all constants are less than 64 bits. This patch simply changes the way values are compared.
The change looks good to me.
You can simplify the test case (see comment below).
|4–8 ↗||(On Diff #28109)|
if you define @test as a function returning a <2 x i256> vector value, then you can get rid of basic block 'Loop' and simply return %B.