This is an archive of the discontinued LLVM Phabricator instance.

[X86] Replace any_extend* vector extensions with zero_extend* equivalents
ClosedPublic

Authored by RKSimon on Jun 14 2019, 3:45 AM.

Details

Summary

First step toward addressing the vector-reduce-mul-widen.ll regression in D63281 - we should replace ANY_EXTEND/ANY_EXTEND_VECTOR_INREG in X86ISelDAGToDAG to avoid having to add duplicate patterns when treating any extensions as legal.

In future patches this will also allow us to keep any extension nodes around a lot longer in the DAG, which should mean that we can keep better track of undef elements that otherwise become zeros that we think we have to keep......

Diff Detail

Repository
rL LLVM

Event Timeline

RKSimon created this revision.Jun 14 2019, 3:45 AM
Herald added a project: Restricted Project. · View Herald TranscriptJun 14 2019, 3:46 AM

I don't have a problem with merging the classes in this patch. I think I only separated so I could handle aext in the first place.

RKSimon updated this revision to Diff 205014.Jun 17 2019, 3:48 AM

Merged SS41I_pmovx_avx2_patterns_base into SS41I_pmovx_avx2_patterns

RKSimon edited the summary of this revision. (Show Details)Jun 17 2019, 3:48 AM
craig.topper added inline comments.Jun 17 2019, 11:30 AM
lib/Target/X86/X86InstrSSE.td
4979–4984

What happened here?

RKSimon marked an inline comment as done.Jun 17 2019, 11:38 AM
RKSimon added inline comments.
lib/Target/X86/X86InstrSSE.td
4979–4984

cut+pasta

RKSimon updated this revision to Diff 205145.Jun 17 2019, 12:00 PM

fix cut+paste typo

This revision is now accepted and ready to land.Jun 17 2019, 12:40 PM
This revision was automatically updated to reflect the committed changes.