This is an archive of the discontinued LLVM Phabricator instance.

[X86] replace vextractf128 intrinsics with generic shuffles (LLVM)
ClosedPublic

Authored by spatel on Mar 11 2015, 4:47 PM.

Details

Summary

This is very much like D8086 (checked in here: http://llvm.org/viewvc/llvm-project?rev=231794&view=rev ).
This is also the LLVM sibling to the cfe D8275 patch.

Now that we've replaced the vinsertf128 intrinsics, do the same for their extract twins.

There are several existing regression tests of the memory folding versions of these intrinsics in 'avx-vextractf128.ll'.
I'm not sure if it's better to leave those as-is or consolidate them into the 'avx-intrinsics-x86-upgrade.ll' file.
If anyone has a suggestion about that, please let me know.

Diff Detail

Event Timeline

spatel updated this revision to Diff 21789.Mar 11 2015, 4:47 PM
spatel retitled this revision from to [X86] replace vextractf128 intrinsics with generic shuffles (LLVM).
spatel updated this object.
spatel edited the test plan for this revision. (Show Details)
spatel added a subscriber: Unknown Object (MLST).
craig.topper accepted this revision.EditedMar 11 2015, 6:52 PM
craig.topper edited edge metadata.

LGTM

Are you going to do the AVX2 version of these too?

This revision is now accepted and ready to land.Mar 11 2015, 6:52 PM

LGTM

Are you going to do the AVX2 version of these too?

Yes, I'm planning to fix up as many of these as possible. Simon may have some similar patches to commit as well.

This revision was automatically updated to reflect the committed changes.

Are you going to do the AVX2 version of these too?

Those appear to be pure copy / paste / delete, so I went ahead and checked them in here:

http://reviews.llvm.org/rL232109
http://reviews.llvm.org/rL232120