This is an archive of the discontinued LLVM Phabricator instance.

[AVX512][llvm] Adding missing instructions' variations
AbandonedPublic

Authored by coby on Oct 19 2016, 1:00 AM.

Details

Summary

The following patch introduces the following alternations:

  1. correcting the 'vpmulshiftqb' instruction, along with the respective intrinsics.
  2. Adding AVX512 missing instructions variants.

clang part: https://reviews.llvm.org/D25760

Diff Detail

Repository
rL LLVM

Event Timeline

coby updated this revision to Diff 75114.Oct 19 2016, 1:00 AM
coby retitled this revision from to [AVX512][llvm] Adding missing instructions' variations.
coby updated this object.
coby set the repository for this revision to rL LLVM.
coby added a subscriber: llvm-commits.
coby updated this object.Oct 19 2016, 1:05 AM
craig.topper edited edge metadata.Oct 19 2016, 10:10 PM

I think this patch should really be split up into separate pieces. The multishift part is unrelated to the rest.

Also the Intel docs say zero masking for store instructions is a UD fault and not supported so I'm not sure the rest of this patch is correct.

I wonder if AVX512VBMI should be made to imply AVX512BW so the mask64 and v64i8 would be valid for the multishift instruction. I think VPERMB also suffers from a similar problem where it requires the v64i8 type.

coby added a comment.Oct 25 2016, 12:24 AM

Also the Intel docs say zero masking for store instructions is a UD fault and not supported so I'm not sure the rest of this patch is correct.

Dear Craig, there's indeed a specific exclusion regarding store semantics (and possibly more) when destination is of memory type, one which i've obviously failed to observe.
Will see to the bottom of this, many thanks for pointing that out.

coby abandoned this revision.Nov 2 2016, 1:16 PM

Amending vpmultishiftqb is currently being maintained at the following patches:
https://reviews.llvm.org/D26258
https://reviews.llvm.org/D26257
All other changes are discarded