[llvm] [X86] LowerShiftByScalarImmediate - vXi8 shl(X,2) - prefer PADDB+PADDB pair over PSLLW+PAND (PR #186095)

Phoebe Wang via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 2 02:05:39 PDT 2026


================
@@ -149,11 +149,12 @@ define <32 x i8> @vshift11(<32 x i8> %a) {
 define <32 x i8> @vshift12(<32 x i8> %a) {
 ; CHECK-LABEL: vshift12:
 ; CHECK:       # %bb.0:
-; CHECK-NEXT:    vpsllw $2, %xmm0, %xmm1
+; CHECK-NEXT:    vpaddb %xmm0, %xmm0, %xmm1
+; CHECK-NEXT:    vpaddb %xmm1, %xmm1, %xmm1
 ; CHECK-NEXT:    vextractf128 $1, %ymm0, %xmm0
-; CHECK-NEXT:    vpsllw $2, %xmm0, %xmm0
+; CHECK-NEXT:    vpaddb %xmm0, %xmm0, %xmm0
+; CHECK-NEXT:    vpaddb %xmm0, %xmm0, %xmm0
 ; CHECK-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
-; CHECK-NEXT:    vandps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm0, %ymm0
----------------
phoebewang wrote:

Similarly, this saves one `vandps`. Maybe we don't care much about AVX1?

https://github.com/llvm/llvm-project/pull/186095


More information about the llvm-commits mailing list