[PATCH] D123221: [X86] `lowerBuildVectorAsBroadcast()`: with AVX512, allow i64 broadcasts from constant pool

Roman Lebedev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 6 07:40:29 PDT 2022


lebedev.ri added a comment.

There is a number of failures to fold the broadcast load into a folded load.
Is that a blocker? I'm not really sure what is going on with that.



================
Comment at: llvm/test/CodeGen/X86/avx512-ext.ll:3048-3049
 ; KNL-NEXT:    vpmovzxbq {{.*#+}} xmm0 = xmm0[0],zero,zero,zero,zero,zero,zero,zero,xmm0[1],zero,zero,zero,zero,zero,zero,zero
-; KNL-NEXT:    vpand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm0
+; KNL-NEXT:    vpbroadcastq {{.*#+}} xmm1 = [1,1]
+; KNL-NEXT:    vpand %xmm1, %xmm0, %xmm0
 ; KNL-NEXT:    retq
----------------
Folded load folding failure.



================
Comment at: llvm/test/CodeGen/X86/fma-fneg-combine.ll:238-240
+; KNL-NEXT:    vmovddup {{.*#+}} xmm1 = [-0.0E+0,-0.0E+0]
+; KNL-NEXT:    # xmm1 = mem[0,0]
+; KNL-NEXT:    vxorpd %xmm1, %xmm0, %xmm0
----------------
Folded load folding failure.



================
Comment at: llvm/test/CodeGen/X86/sadd_sat_vec.ll:1222-1224
+; AVX512F-NEXT:    vmovddup {{.*#+}} xmm4 = [9223372036854775808,9223372036854775808]
+; AVX512F-NEXT:    # xmm4 = mem[0,0]
+; AVX512F-NEXT:    vblendvpd %xmm2, %xmm3, %xmm4, %xmm3
----------------
Folded load folding failure.



================
Comment at: llvm/test/CodeGen/X86/vec_int_to_fp.ll:5695-5696
 ; AVX512F:       # %bb.0:
-; AVX512F-NEXT:    vpaddq {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm1
+; AVX512F-NEXT:    vpbroadcastq {{.*#+}} xmm1 = [2,2]
+; AVX512F-NEXT:    vpaddq %xmm1, %xmm0, %xmm1
 ; AVX512F-NEXT:    vpxor %xmm2, %xmm2, %xmm2
----------------
Folded load folding failure.



Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D123221/new/

https://reviews.llvm.org/D123221



More information about the llvm-commits mailing list