Page MenuHomePhabricator

[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

Repository
rL LLVM

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 ↗(On Diff #76332)

please change indentation

3335 ↗(On Diff #76332)

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
3383 ↗(On Diff #77355)

please remove empty line

3401 ↗(On Diff #77355)

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.