This is an archive of the discontinued LLVM Phabricator instance.

[DAGCombiner] Masked merge: don't touch "not" xor's.
ClosedPublic

Authored by lebedev.ri on May 5 2018, 3:54 AM.

Details

Summary

Split off form D46031.

It seems we don't want to transform the pattern if the xor's are actually not's.
In vector case, this breaks andnpd / vandnps patterns.

That being said, we may want to re-visit this not handling, maybe in D46073.

Diff Detail

Repository
rL LLVM

Event Timeline

lebedev.ri created this revision.May 5 2018, 3:54 AM
spatel accepted this revision.May 5 2018, 8:07 AM

LGTM.

lib/CodeGen/SelectionDAG/DAGCombiner.cpp
5378 ↗(On Diff #145360)

Explain the 'why' of this logic in the comment here. Something like:
We don't expect 'not' patterns to occur here because those are simplified in IR and shouldn't be created in the DAG.

This revision is now accepted and ready to land.May 5 2018, 8:07 AM

LGTM.

Thank you for the review!

This revision was automatically updated to reflect the committed changes.