[PATCH] D140811: [DAGCombiner][X86] `visitVECTOR_SHUFFLE()`: splats with a single non-undef element are not splats
Roman Lebedev via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Jan 3 17:29:47 PST 2023
lebedev.ri added a comment.
FYI, these are the regressions i was aware of.
================
Comment at: llvm/test/CodeGen/X86/vector-narrow-binop.ll:112
+; SSE-NEXT: punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]
+; SSE-NEXT: pand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm2
+; SSE-NEXT: psrlq $16, %xmm2
----------------
This is all-ones mask
================
Comment at: llvm/test/CodeGen/X86/vector-narrow-binop.ll:170
+; AVX1-NEXT: vpermilpd {{.*#+}} xmm1 = xmm1[1,0]
+; AVX1-NEXT: vaddpd %xmm0, %xmm1, %xmm0
; AVX1-NEXT: retq
----------------
Failure to pull identical shuffle out of binop
================
Comment at: llvm/test/CodeGen/X86/vector-shuffle-128-v4.ll:1540-1549
+; SSE41-NEXT: pshufd {{.*#+}} xmm2 = xmm0[2,3,2,3]
+; SSE41-NEXT: pshufd {{.*#+}} xmm0 = xmm1[0,0,1,2]
+; SSE41-NEXT: pblendw {{.*#+}} xmm0 = xmm2[0,1],xmm0[2,3,4,5,6,7]
; SSE41-NEXT: retq
;
; AVX1OR2-LABEL: shuffle_v4i32_2456:
; AVX1OR2: # %bb.0:
----------------
Missing lowering strategy?
================
Comment at: llvm/test/CodeGen/X86/vector-shuffle-combining-avx2.ll:843
; AVX512-NEXT: # kill: def $ymm1 killed $ymm1 def $zmm1
-; AVX512-NEXT: vpermpd {{.*#+}} ymm0 = ymm0[1,1,1,1]
+; AVX512-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm0
; AVX512-NEXT: vxorps %xmm2, %xmm2, %xmm2
----------------
We intentionally lower it this way,
but given that we end with an extra shuffle, it may be a regression?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D140811/new/
https://reviews.llvm.org/D140811
More information about the llvm-commits
mailing list