This is an archive of the discontinued LLVM Phabricator instance.

WIP: [SelectionDAG] Promote types in widenVectorToPartType.
AbandonedPublic

Authored by sdesmalen on Aug 3 2021, 12:48 PM.

Details

Reviewers
efriedma
Summary

Some types are widened and then promoted, but the 'widenVectorToPartType'
doesn't handle the promotion. Because scalable vectors have no fallback,
the compiler fails an assertion that the type can't be handled.

Diff Detail

Event Timeline

sdesmalen created this revision.Aug 3 2021, 12:48 PM
sdesmalen requested review of this revision.Aug 3 2021, 12:48 PM
Herald added a project: Restricted Project. · View Herald TranscriptAug 3 2021, 12:48 PM
sdesmalen added a reviewer: efriedma.

I played around with D106028 to see if I could remove the vector.insert/extract and instead pass/return the odd types directly.

If we're going to make widenVectorToPartType extend vector elements, we should probably refactor the callers to be more consistent. (D105591 rearranged the caller code for multi-part vectors, but I guess not for single-part vectors.)

llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
634

This check seems a little strange; if the vector element types aren't integer, and aren't equal, we assert in getNode()?

sdesmalen abandoned this revision.Sep 28 2021, 11:41 AM

This patch is superseded by D110646