This is an archive of the discontinued LLVM Phabricator instance.

[X86][AVX2] Broadcast subvectors
ClosedPublic

Authored by RKSimon on Jan 11 2016, 1:31 AM.

Details

Summary

AVX2 can only broadcast from the zero'th element of a vector, but if the broadcastable element is the zero'th element of a 128-bit subvector its advantageous to extract the subvector and broadcast from that and often avoids the loading of shuffle mask data that would be needed for VPERMPS/VPERMD. The only exception being when the source type is 4f64 or 4i64 which can directly use the immediate shuffle VPERMPD/VPERMQ directly.

Diff Detail

Repository
rL LLVM

Event Timeline

RKSimon updated this revision to Diff 44439.Jan 11 2016, 1:31 AM
RKSimon retitled this revision from to [X86][AVX2] Broadcast subvectors.
RKSimon updated this object.
RKSimon added reviewers: delena, qcolombet, spatel.
RKSimon set the repository for this revision to rL LLVM.
RKSimon added a subscriber: llvm-commits.
delena accepted this revision.Jan 17 2016, 10:56 PM
delena edited edge metadata.

LGTM

This revision is now accepted and ready to land.Jan 17 2016, 10:56 PM
This revision was automatically updated to reflect the committed changes.