This is an archive of the discontinued LLVM Phabricator instance.

[X86][AVX2] Fix SIGN_EXTEND vector handling on AVX2 targets.
ClosedPublic

Authored by RKSimon on Feb 8 2016, 10:14 AM.

Details

Summary

On AVX2 target we are poorly legalizing SIGN_EXTEND ops for which the input's legalized type doesn't have the same number of elements as the destination, resulting in an ANY_EXTEND followed by a SIGN_EXTEND_INREG.

This patch uses the existing SIGN_EXTEND -> SIGN_EXTEND_VECTOR_INREG combine to extend the input to the size of the result and using SIGN_EXTEND_VECTOR_INREG instead.

Diff Detail

Repository
rL LLVM

Event Timeline

RKSimon updated this revision to Diff 47219.Feb 8 2016, 10:14 AM
RKSimon retitled this revision from to [X86][AVX2] Fix SIGN_EXTEND vector handling on AVX2 targets..
RKSimon updated this object.
RKSimon added reviewers: ab, qcolombet, mkuper.
RKSimon set the repository for this revision to rL LLVM.
RKSimon added a subscriber: llvm-commits.
ab accepted this revision.Feb 8 2016, 11:33 AM
ab edited edge metadata.

Nice, LGTM.

This revision is now accepted and ready to land.Feb 8 2016, 11:33 AM
This revision was automatically updated to reflect the committed changes.