This is an archive of the discontinued LLVM Phabricator instance.

[Clang][AVX512][BuiltIn]Adding intrinsics move_{sd|ss} to clang
ClosedPublic

Authored by m_zuckerman on Jun 6 2016, 7:35 AM.

Diff Detail

Repository
rL LLVM

Event Timeline

m_zuckerman updated this revision to Diff 59720.Jun 6 2016, 7:35 AM
m_zuckerman retitled this revision from to [Clang][AVX512][BuiltIn]Adding intrinsics move_{sd|ss} to clang.
m_zuckerman updated this object.
m_zuckerman added reviewers: AsafBadouh, igorb, delena.
m_zuckerman added a subscriber: cfe-commits.
delena added inline comments.Jun 7 2016, 2:15 AM
lib/Headers/avx512fintrin.h
9124 ↗(On Diff #59720)

please try the following:
if (__U)

return __builtin_shuffle(A, B, (0, 5, 6, 7)); // may be you need to swap A and B

return W;

I know that the immediate code will be less optimal, but we can optimize it later.

delena accepted this revision.Jun 19 2016, 12:44 AM
delena edited edge metadata.
This revision is now accepted and ready to land.Jun 19 2016, 12:44 AM
RKSimon added inline comments.
lib/Headers/avx512fintrin.h
9124 ↗(On Diff #59720)

Any update on this? I currently have a patch (D24653) looking at removing the movss/movsd mask intrinsics as we should be able to do this with purely generic shuffles. I can help with the optimization if necessary.

This revision was automatically updated to reflect the committed changes.