This is very much like D8088 (checked in here: http://llvm.org/viewvc/llvm-project?rev=231794&view=rev ).
Now that we've replaced the vinsertf128 intrinsics, do the same for their extract twins.
Paths
| Differential D8275
[X86] replace vextractf128 intrinsics with generic shuffles ClosedPublic Authored by spatel on Mar 11 2015, 4:34 PM.
Details Summary This is very much like D8088 (checked in here: http://llvm.org/viewvc/llvm-project?rev=231794&view=rev ). Now that we've replaced the vinsertf128 intrinsics, do the same for their extract twins.
Diff Detail Event Timelinespatel updated this object. This revision is now accepted and ready to land.Mar 12 2015, 8:50 AM Closed by commit rL232052: [X86, AVX] replace vextractf128 intrinsics with generic shuffles (authored by spatel). · Explain WhyMar 12 2015, 8:53 AM This revision was automatically updated to reflect the committed changes. Comment Actions Thanks, Andrea. I checked in the LLVM side of this patch at r232047 without realizing there was a dependency on this patch. Sorry about the build-bot breakage! Comment Actions
Got my patches mixed up. That should have been r232045:
Revision Contents
Diff 21787 include/clang/Basic/BuiltinsX86.def
lib/Headers/avxintrin.h
lib/Sema/SemaChecking.cpp
test/CodeGen/avx-shuffle-builtins.c
test/CodeGen/builtins-x86.c
|
Not sure if its safe to access V twice. It could be a function call that we maybe shouldn't invoke twice. May need a temporary here even though it might fail Wshadow
Or maybe just feed an appropriate zero vector to the second shuffle argument?