[llvm-commits] VECTOR_SUFFLE in avx - fixed - Please review

Rotem, Nadav nadav.rotem at intel.com
Wed Jan 11 14:32:59 PST 2012


It looks like some node (scalar_to_vector in our case) is legalized into an UNDEF and the result is replaced using "DAG.ReplaceAllUsesWith".  I don't think that we can do much about it. Let's do what Duncan said.


From: llvm-commits-bounces at cs.uiuc.edu [mailto:llvm-commits-bounces at cs.uiuc.edu] On Behalf Of Craig Topper
Sent: Wednesday, January 11, 2012 19:58
To: Duncan Sands
Cc: llvm-commits at cs.uiuc.edu
Subject: Re: [llvm-commits] VECTOR_SUFFLE in avx - fixed - Please review

r147525 added canonicalizing to DAGCombiner that should make shuffles of two undefs turn into an undef. Is that code not working correctly for this case?

On Wed, Jan 11, 2012 at 3:55 AM, Duncan Sands <baldrick at free.fr<mailto:baldrick at free.fr>> wrote:
Hi Elena,

> Fixed a bug in VECTOR_SHUFFLE
> lc: X86ISelLowering.cpp:6480: llvm::SDValue llvm::X86TargetLowering::LowerVECTOR_SHUFFLE(llvm::SDValue, llvm::SelectionDAG&) const: Assertion `V1.getOpcode() != ISD::UNDEF&&  "Op 1 of shuffle should not be undef"' failed.

if V1 is undef but V2IsUndef is false then you can now fall through to the
following code.  How about at restoring the assertion, but putting it after
your test.  While there, maybe introduce V1IsUndef for neatness.

Ciao, Duncan.
llvm-commits mailing list
llvm-commits at cs.uiuc.edu<mailto:llvm-commits at cs.uiuc.edu>

Intel Israel (74) Limited

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120111/63cb7b40/attachment.html>

More information about the llvm-commits mailing list