This is an archive of the discontinued LLVM Phabricator instance.

[X86][SSE] LowerBUILD_VECTORAsVariablePermute - add support for scaling index vectors
ClosedPublic

Authored by RKSimon on Jan 24 2018, 8:39 AM.

Diff Detail

Repository
rL LLVM

Event Timeline

RKSimon created this revision.Jan 24 2018, 8:39 AM
RKSimon updated this revision to Diff 131610.Jan 26 2018, 9:54 AM

Add support for v4i32/v4f32 PSHUFB support now that D42308 has landed

craig.topper added inline comments.Jan 30 2018, 2:15 PM
lib/Target/X86/X86ISelLowering.cpp
7986 ↗(On Diff #131610)

This could maybe use a comment.

These adds are conceptually ORs right? There shouldn't be any carries to the next element.

Can you use Scale in place of 1ull in the loop instead of multiplying afterwards?

test/CodeGen/X86/var-permute-128.ll
47 ↗(On Diff #131610)

Super annoying that padd doesn't print its constant pool. We should finish D37184.

test/CodeGen/X86/var-permute-256.ll
1290 ↗(On Diff #131610)

Add a DQI command line since I think this math would be able to use VMULLQ?

RKSimon updated this revision to Diff 132386.Feb 1 2018, 6:42 AM

Added comment describing the scaling

RKSimon marked an inline comment as done.Feb 1 2018, 6:42 AM
RKSimon updated this revision to Diff 132392.Feb 1 2018, 7:02 AM

With AVX512DQ tests - I've raised PR36191 as the failure to fold the broadcasts into the zmm for 'fake' ymm vpmullq is rather annoying

RKSimon marked an inline comment as done.Feb 1 2018, 7:03 AM
This revision is now accepted and ready to land.Feb 1 2018, 8:51 AM
This revision was automatically updated to reflect the committed changes.