This is an archive of the discontinued LLVM Phabricator instance.

[X86][SSE] Use the general SMAX/SMIN/UMAX/UMIN opcodes and remove the X86 implementation
ClosedPublic

Authored by RKSimon on Jul 5 2015, 4:34 AM.

Details

Summary

With the completion of D9746 there is now a common implementation of integer signed/unsigned min/max nodes, removing the need for the equivalent X86 specific implementations.

This patch removes the old X86ISD nodes, legalizes the relevant SSE2/SSE41/AVX2/AVX512 instructions for the ISD versions and converts the small amount of existing X86 code. A future patch may then move the remaining x86 integer minmax pattern matching into the DAG combiner.

Diff Detail

Repository
rL LLVM

Event Timeline

RKSimon updated this revision to Diff 29054.Jul 5 2015, 4:34 AM
RKSimon retitled this revision from to [X86][SSE] Use the general SMAX/SMIN/UMAX/UMIN opcodes and remove the X86 implementation.
RKSimon updated this object.
RKSimon added reviewers: qcolombet, delena, jmolloy, andreadb.
RKSimon set the repository for this revision to rL LLVM.
RKSimon added a subscriber: llvm-commits.
delena edited edge metadata.Jul 5 2015, 4:54 AM

I like this change. I also looked at these redundant X86ISD nodes and though that they should be just changed to the appropriate ISD nodes.
Thank you for working on this.

I like this change. I also looked at these redundant X86ISD nodes and though that they should be just changed to the appropriate ISD nodes.

Thanks Elena, are you happy for me to commit the patch?

delena added a subscriber: delena.Jul 6 2015, 3:09 AM

yes. Thanks

  • Elena
jmolloy accepted this revision.Jul 6 2015, 3:14 AM
jmolloy edited edge metadata.

LGTM! Sorry for the slow reponse, I've just got back from vacation.

This revision is now accepted and ready to land.Jul 6 2015, 3:14 AM
This revision was automatically updated to reflect the committed changes.