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

Demikhovsky, Elena elena.demikhovsky at intel.com
Thu Jan 12 05:33:17 PST 2012


So, can I commit with Duncan changes or you prefer to find another solution?

- Elena
From: Craig Topper [mailto:craig.topper at gmail.com]
Sent: Thursday, January 12, 2012 00:46
To: Rotem, Nadav
Cc: Duncan Sands; llvm-commits at cs.uiuc.edu; Demikhovsky, Elena
Subject: Re: [llvm-commits] VECTOR_SUFFLE in avx - fixed - Please review

If that's true, we probably need to recanonicalize the shuffle if its the LHS went to UNDEF, but there's still something in RHS. We should move the RHS to LHS.
On Wed, Jan 11, 2012 at 2:32 PM, Rotem, Nadav <nadav.rotem at intel.com<mailto:nadav.rotem at intel.com>> wrote:
Craig,

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.

Nadav

From: llvm-commits-bounces at cs.uiuc.edu<mailto:llvm-commits-bounces at cs.uiuc.edu> [mailto: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<mailto: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>
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits



--
~Craig
---------------------------------------------------------------------

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.



--
~Craig
---------------------------------------------------------------------
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/20120112/4dfff108/attachment.html>


More information about the llvm-commits mailing list