[llvm] Reapply "[X86] EltsFromConsecutiveLoads - handle trunc(wideload()) patterns" (#199371) (PR #208999)

Phoebe Wang via llvm-commits llvm-commits at lists.llvm.org
Sun Jul 12 18:11:05 PDT 2026


================
@@ -107,12 +107,36 @@ define <16 x i8> @buildvec_v16i8_stride4(ptr %p) {
 ; AVX2-NEXT:    vpinsrb $15, 60(%rdi), %xmm0, %xmm0
 ; AVX2-NEXT:    retq
 ;
-; AVX512-LABEL: buildvec_v16i8_stride4:
-; AVX512:       # %bb.0:
-; AVX512-NEXT:    vmovdqu64 (%rdi), %zmm0
-; AVX512-NEXT:    vpmovdb %zmm0, %xmm0
-; AVX512-NEXT:    vzeroupper
-; AVX512-NEXT:    retq
+; AVX512F-LABEL: buildvec_v16i8_stride4:
+; AVX512F:       # %bb.0:
+; AVX512F-NEXT:    movzbl (%rdi), %eax
+; AVX512F-NEXT:    vmovd %eax, %xmm0
+; AVX512F-NEXT:    vpinsrb $1, 4(%rdi), %xmm0, %xmm0
----------------
phoebewang wrote:

There's no AVX512 instruction in the AVX512VL case. Why can't apply it to AVX2 and AVX512F?

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


More information about the llvm-commits mailing list