This is an archive of the discontinued LLVM Phabricator instance.

[X86][AVX512] Add patterns for all variants of VMOVSS/VMOVSD instructions
ClosedPublic

Authored by aymanmus on Oct 27 2016, 12:57 AM.

Details

Summary

Added patterns to catch the llvm IR produced by Clang for the AVX512 masked move/store/load {ss|sd} intrinsics.

Diff Detail

Event Timeline

aymanmus updated this revision to Diff 75987.Oct 27 2016, 12:57 AM
aymanmus retitled this revision from to [X86][AVX512] Add patterns for all variants of VMOVSS/VMOVSD instructions.
aymanmus updated this object.
aymanmus added reviewers: igorb, zvi, delena, m_zuckerman.
aymanmus added a subscriber: llvm-commits.
aymanmus updated this revision to Diff 76332.Oct 30 2016, 5:11 AM
aymanmus updated this object.

Dividing the patch into two smaller patches.
A new patch will include the removing of the move_{ss|sd} intrinsics and updating the AutoUpdate pass accordingly.

igorb added inline comments.Nov 8 2016, 1:12 PM
lib/Target/X86/X86InstrAVX512.td
3324

please change indentation

3335

The patterns for SS/SD is very similar, would you consider to implement it as multiclass ?

aymanmus updated this revision to Diff 77355.Nov 9 2016, 8:46 AM

Refactored the patterns by adding multiclasses.

igorb accepted this revision.Nov 13 2016, 5:48 AM
igorb edited edge metadata.

LGTM.
Please see two minor comments.

lib/Target/X86/X86InstrAVX512.td
3392

please remove empty line

3410

please remove empty line

This revision is now accepted and ready to land.Nov 13 2016, 5:48 AM
This revision was automatically updated to reflect the committed changes.