This is an archive of the discontinued LLVM Phabricator instance.

[X86][SSE] Replace VPMOVSX and (V)PMOVZX integer extension intrinsics with generic IR (clang)
ClosedPublic

Authored by RKSimon on May 26 2016, 9:11 AM.

Details

Summary

The VPMOVSX and (V)PMOVZX sign/zero extension intrinsics can be safely represented as generic __builtin_convertvector calls instead of x86 intrinsics.

This patch removes the clang builtins and their use in the sse2/avx headers - a companion patch will remove/auto-upgrade the llvm intrinsics.

Note: We already did this for SSE41 PMOVSX sometime ago.

Diff Detail

Repository
rL LLVM

Event Timeline

RKSimon updated this revision to Diff 58626.May 26 2016, 9:11 AM
RKSimon retitled this revision from to [X86][SSE] Replace VPMOVSX and (V)PMOVZX integer extension intrinsics with generic IR (clang).
RKSimon updated this object.
RKSimon set the repository for this revision to rL LLVM.
RKSimon added a subscriber: cfe-commits.
ab accepted this revision.May 27 2016, 11:32 AM
ab added a reviewer: ab.
ab added a subscriber: ab.

I'd add the unsigned typedefs with their signed counterparts; no reason not to.
With that, LGTM.

This revision is now accepted and ready to land.May 27 2016, 11:32 AM
In D20684#442514, @ab wrote:

I'd add the unsigned typedefs with their signed counterparts; no reason not to.
With that, LGTM.

Thanks, I'll do that as a follow up commit.

This revision was automatically updated to reflect the committed changes.