This is an archive of the discontinued LLVM Phabricator instance.

[X86][AVX1] Enable *_EXTEND_VECTOR_INREG lowering of 256-bit vectors
ClosedPublic

Authored by RKSimon on Oct 8 2018, 4:12 AM.

Details

Summary

As discussed on D52964, this adds 256-bit *_EXTEND_VECTOR_INREG lowering support for AVX1 targets to help improve SimplifyDemandedBits handling.

This is an extension to D52970 - it includes those diffs here, but I'd like to get D52970 dealt with first.

Diff Detail

Repository
rL LLVM

Event Timeline

RKSimon created this revision.Oct 8 2018, 4:12 AM
craig.topper added inline comments.Oct 8 2018, 12:07 PM
test/CodeGen/X86/avg.ll
2399 ↗(On Diff #168696)

Is this an increase in code?

RKSimon added inline comments.Oct 8 2018, 2:38 PM
test/CodeGen/X86/avg.ll
2399 ↗(On Diff #168696)

Yes, I enabled AVX1 reuse of SIGN_EXTEND/ZERO_EXTEND 128->256 extensions the same as AVX2 but the codegen falls over more than would be good. I'll remove it for now but this does mean we miss some of the improvements.

RKSimon updated this revision to Diff 168711.Oct 8 2018, 2:40 PM

Don't ignore 128->256 SIGN/ZERO_EXTENDS like we do for AVX2 - avoid regressions.

This revision is now accepted and ready to land.Oct 8 2018, 9:05 PM
This revision was automatically updated to reflect the committed changes.