[PATCH] D38836: Use X86ISD::VBROADCAST in place of v2f64 X86ISD::MOVDDUP when AVX2 is available

Craig Topper via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 11 23:21:17 PDT 2017


craig.topper created this revision.

This is particularly important for AVX512VL where we are better able to recognize the VBROADCAST loads to fold with other operations.

For AVX512VL we now use X86ISD::VBROADCAST for all of the patterns and remove the 128-bit X86ISD::VMOVDDUP.

We may be able to use this for AVX1 as well which would allow us to remove more isel patterns.

I also had to add X86ISD::VBROADCAST as a node to call combineShuffle for so that we treat it similar to X86ISD::MOVDDUP.


https://reviews.llvm.org/D38836

Files:
  lib/Target/X86/X86ISelLowering.cpp
  lib/Target/X86/X86InstrAVX512.td
  lib/Target/X86/X86InstrSSE.td
  test/CodeGen/X86/avx512vl-vbroadcast.ll
  test/CodeGen/X86/sse3-schedule.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D38836.118742.patch
Type: text/x-patch
Size: 10323 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20171012/fe055c3a/attachment.bin>


More information about the llvm-commits mailing list