This is an archive of the discontinued LLVM Phabricator instance.

[X86][AVX512] Drop unused avx512_mask_move_sd/avx512_mask_move_ss intrinsics
AbandonedPublic

Authored by RKSimon on Sep 16 2016, 3:26 AM.

Details

Summary

The avx512_mask_move_sd/avx512_mask_move_ss intrinsics have never been used by anything and can be safely removed.

I don't think there is a need to provide an upgrade path but can do so if people really need it.

The c intrinsics _mm_mask(z)_load_sd/_mm_mask(z)_move_sd/_mm_mask_store_sd have never been implemented and if they were could be easily achieved with a generic implementation without the builtins.

Diff Detail

Repository
rL LLVM

Event Timeline

RKSimon updated this revision to Diff 71607.Sep 16 2016, 3:26 AM
RKSimon retitled this revision from to [X86][AVX512] Drop unused avx512_mask_move_sd/avx512_mask_move_ss intrinsics.
RKSimon updated this object.
RKSimon added reviewers: craig.topper, igorb.
RKSimon set the repository for this revision to rL LLVM.
RKSimon added a subscriber: llvm-commits.
igorb edited edge metadata.EditedSep 16 2016, 12:03 PM

Hello,
Scalar masked store/load generic implementation generate complicated IR, it can be challenging task to lower it to single masked instruction .
Could you please wait for Michael response , he currently works on clang implementation for this intrinsic
https://reviews.llvm.org/D21021
Thanks.

m_zuckerman edited edge metadata.Sep 18 2016, 7:03 AM

Hey ,
We will be glad if this code will stay as it is.
We plan to apply the move{ss|sd} intrinsics via this code (D21021).
Further work needs to be done for the generic approach, since it doesn't end with correct instruction(conditional move instead of mask move).

Thanks,
Michael Zuckerman

RKSimon abandoned this revision.Sep 19 2016, 10:27 AM

OK, thanks for the update. Abandoning.