This is an archive of the discontinued LLVM Phabricator instance.

AVX512: vpmovzxbw lowering patterns.
ClosedPublic

Authored by igorb on Feb 22 2016, 6:03 AM.

Details

Summary

AVX512: Add vpmovzxbw/d/q ,vpmovzxw/d/q ,vpmovzxbdq lowering patterns that support 256bit inputs like AVX patterns ( that are disable in case HasVLX , see SS41I_pmovx_avx2_patterns). Bug Bug-26661

Diff Detail

Repository
rL LLVM

Event Timeline

igorb updated this revision to Diff 48671.Feb 22 2016, 6:03 AM
igorb retitled this revision from to AVX512: vpmovzxbw lowering patterns..
igorb updated this object.
igorb added reviewers: delena, RKSimon.
igorb added a subscriber: llvm-commits.
RKSimon edited edge metadata.Feb 22 2016, 10:37 AM

Please can you add test cases for xmm -> ymm as well? These fail in a similar manner with -mcpu=skx

define <16 x i16> @zext_16x8_to_16x16(<16 x i8> %a) nounwind readnone {
  %1 = shufflevector <16 x i8> %a, <16 x i8> zeroinitializer, <32 x i32> <i32 0, i32 16, i32 1, i32 16, i32 2, i32 16, i32 3, i32 16, i32 4, i32 16, i32 5, i32 16, i32 6, i32 16, i32 7, i32 16, i32 8, i32 16, i32 9, i32 16, i32 10, i32 16, i32 11, i32 16, i32 12, i32 16, i32 13, i32 16, i32 14, i32 16, i32 15, i32 16>
  %2 = bitcast <32 x i8> %1 to <16 x i16>
  ret <16 x i16> %2
}
igorb updated this revision to Diff 48787.Feb 23 2016, 12:37 AM
igorb edited edge metadata.
igorb set the repository for this revision to rL LLVM.

add test case (shuffle_zext_16x8_to_16x16)

RKSimon accepted this revision.Feb 23 2016, 6:47 AM
RKSimon edited edge metadata.

LGTM - thanks.

This revision is now accepted and ready to land.Feb 23 2016, 6:47 AM

Thanks for the review!

This revision was automatically updated to reflect the committed changes.