This is an archive of the discontinued LLVM Phabricator instance.

[X86][SSE] Legal XMM Register Class ordering for SSE1
ClosedPublic

Authored by RKSimon on Nov 18 2015, 2:10 PM.

Details

Summary

It turns out we have a number of places that just grab the first type attached to a register class for various reasons. This is fine unless for some reason that type isn't legal on the current target, such as for SSE1 which doesn't support v16i8/v8i16/v4i32/v2i64 - all of which were included before 4f32 in the class.

Given that this is such a rare situation I've just re-ordered the types and placed v4f32 first.

Fix for PR16133

Diff Detail

Repository
rL LLVM

Event Timeline

RKSimon updated this revision to Diff 40558.Nov 18 2015, 2:10 PM
RKSimon retitled this revision from to [X86][SSE] Legal XMM Register Class ordering for SSE1.
RKSimon updated this object.
RKSimon added reviewers: echristo, craig.topper.
RKSimon set the repository for this revision to rL LLVM.
RKSimon added a subscriber: llvm-commits.
echristo accepted this revision.Nov 19 2015, 5:19 PM
echristo edited edge metadata.

Sure, I guess? Might want to add a comment on the ordering as well.

-eric

This revision is now accepted and ready to land.Nov 19 2015, 5:19 PM
This revision was automatically updated to reflect the committed changes.