[PATCH] D28747: [X86] Don't create VBROADCAST nodes with 256-bit or 512-bit input types

Simon Pilgrim via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Jan 15 12:16:30 PST 2017


RKSimon added a comment.

I think we've spoken in the past of splitting broadcast (and subvector broadcast) into memory and register opcode variants.



================
Comment at: lib/Target/X86/X86ISelLowering.cpp:5488
     // We only decode broadcasts of same-sized vectors at the moment.
-    if (N->getOperand(0).getValueType() == VT) {
+    if (N->getOperand(0).getValueType() == VT || FromExtract) {
       DecodeVectorBroadcast(VT, Mask);
----------------
I've got the horrid feeling this will cause problems for combineX86ShufflesRecursively which decodes shuffles but at the moment asserts if the inputs are not the same size as the shuffle result itself.


================
Comment at: test/CodeGen/X86/widened-broadcast.ll:128
 ; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
 ; AVX1-NEXT:    retq
 ;
----------------
Any idea why AVX1 fails?


https://reviews.llvm.org/D28747





More information about the llvm-commits mailing list