This is an archive of the discontinued LLVM Phabricator instance.

[mips] Do not use SLL for ANY_EXTEND nodes as the high bits are undefined.
ClosedPublic

Authored by vkalintiris on Dec 10 2015, 7:35 AM.

Diff Detail

Repository
rL LLVM

Event Timeline

vkalintiris retitled this revision from to [mips] Do not use SLL for ANY_EXTEND nodes as the high bits are undefined..
vkalintiris updated this object.
vkalintiris added a reviewer: dsanders.
vkalintiris added a subscriber: llvm-commits.
dsanders accepted this revision.Jan 29 2016, 6:43 AM
dsanders edited edge metadata.

LGTM with the unused CHECKs and the assumption that the result of the fadd is $f0 fixed

test/CodeGen/Mips/fcopysign-f32-f64.ll
11 ↗(On Diff #42431)

This isn't checked anymore. 'CHECK' is only the default prefix when no prefixes are given.

34 ↗(On Diff #42431)

Likewise

36–45 ↗(On Diff #42431)

It's not for this patch but this output doesn't seem very efficient. For example, it could clear the top bit with a dsll+dsrl saving two instructions

42 ↗(On Diff #42431)

This $f0 isn't guaranteed to be $f0.

This revision is now accepted and ready to land.Jan 29 2016, 6:43 AM
This revision was automatically updated to reflect the committed changes.