[X86] LowerRotate - manually expand rotate by splat constant patterns.
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Sat, 22 Jul 2023 16:54:48 +0000 (17:54 +0100)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Sat, 22 Jul 2023 16:54:57 +0000 (17:54 +0100)
commitaf32e51a43fb4343f4c407bf1ee051ff78a57494
treeeb239222792d8c8e0a06cad39e03d682e42c0f5e
parent8bba3f0edbd0e0af03836a2da1cca9f0138e7e01
[X86] LowerRotate - manually expand rotate by splat constant patterns.

Fixes issue identified on #63980 where the undef rotate amounts (during widening from v2i32 -> v4i32) were being constant folded to 0 when the shift amounts are created during expansion, losing the splat'd shift amounts.
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/test/CodeGen/X86/vector-fshl-rot-sub128.ll
llvm/test/CodeGen/X86/vector-fshr-rot-sub128.ll