[PATCH] D53268: [X86] Stop promoting and/or/xor/andn to vXi64.

Simon Pilgrim via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Oct 26 02:59:42 PDT 2018


RKSimon accepted this revision.
RKSimon added a comment.
This revision is now accepted and ready to land.

LGTM - thanks



================
Comment at: test/CodeGen/X86/broadcast-elm-cross-splat-vec.ll:435
+; AVX-NEXT:    vmovsd {{.*#+}} xmm3 = mem[0],zero
+; AVX-NEXT:    vmovddup {{.*#+}} xmm3 = xmm3[0,0]
 ; AVX-NEXT:    vpaddb %xmm3, %xmm2, %xmm2
----------------
craig.topper wrote:
> Here we have a 128-bit and a 256-bit broadcast going into isel. They both use the same load. But we don't have a broadcast f64->v4f64 instruction in AVX1 so isel emits a VMOVDDUP and an insert.  This CSEs with the VMOVDDUP emitted for the f64->v2f64 broadcast. But it was too late  to satisfy the one use check for the load folding. We probably need to split f64->v4f64 broadcasts during lowering/DAG combine instead of isel so it will CSE earlier.
I can't find the PR covering this - please raise a bug if it doesn't already exist and add a TODO comment here referencing the PR.


https://reviews.llvm.org/D53268





More information about the llvm-commits mailing list