This is an archive of the discontinued LLVM Phabricator instance.

[X86][AVX512] Lower broadcast inrtrinsics
ClosedPublic

Authored by AsafBadouh on Dec 27 2015, 3:24 AM.

Details

Summary

lower broadcast<type>x<vector> to shuffles.
there are two cases:

  1. src is 128 bits and dest is 512 bits: in this case we will lower it to shuffle with imm = 0.
  2. src is 256 bit and dest is 512 bits: in this case we will lower it to shuffle with imm = 01000100b (0x44) that way we will broadcast the 256bit source: ymm[0,1,2,3] => zmm[0,1,2,3,0,1,2,3] then it will mask it with the pass thru value (in case it's mask op).

Diff Detail

Repository
rL LLVM

Event Timeline

AsafBadouh updated this revision to Diff 43657.Dec 27 2015, 3:24 AM
AsafBadouh retitled this revision from to [X86][AVX512] Lower broadcast inrtrinsics.
AsafBadouh updated this object.
AsafBadouh added reviewers: delena, igorb, m_zuckerman.
AsafBadouh set the repository for this revision to rL LLVM.
AsafBadouh added a subscriber: llvm-commits.
delena accepted this revision.Dec 27 2015, 9:02 AM
delena edited edge metadata.

LGTM

../llvm/lib/Target/X86/X86ISelLowering.cpp
16741

Could you, please, change name to BRCST_SUBVEC_TO_VEC.

This revision is now accepted and ready to land.Dec 27 2015, 9:02 AM
AsafBadouh closed this revision.Feb 7 2016, 7:13 AM
AsafBadouh marked an inline comment as done.