This is an archive of the discontinued LLVM Phabricator instance.

[mips] Add tests for bitwise binary and integer arithmetic operators.
ClosedPublic

Authored by vkalintiris on Jan 22 2015, 5:06 AM.

Diff Detail

Repository
rL LLVM

Event Timeline

vkalintiris retitled this revision from to [mips] Add tests for bitwise binary and integer arithmetic operators..
vkalintiris updated this object.
vkalintiris edited the test plan for this revision. (Show Details)
vkalintiris added a reviewer: dsanders.
vkalintiris added a subscriber: Unknown Object (MLST).
dsanders accepted this revision.Jan 24 2015, 5:21 AM
dsanders edited edge metadata.

Thanks for doing this. It seems that we have a lot of optimization deficiencies on basic operations that we need to sort out. In particular, we emit a lot of unnecessary sign/zero extends. I pointed out a few but stopped after I realized how often it occurred.

LGTM with the nits below fixed. If you can also annotate the redundant instructions with FIXME's that would be appreciated but there's a lot so I'm not going to make that a requirement.

test/CodeGen/Mips/llvm-ir/ashr.ll
31 ↗(On Diff #18609)

all-label should be ALL-LABEL. Likewise below

43 ↗(On Diff #18609)

The andi's are redundant in this file. Please add a FIXME about this

120 ↗(On Diff #18609)

This should be redundant too. Please add a FIXME

test/CodeGen/Mips/llvm-ir/lshr.ll
43–52 ↗(On Diff #18609)

It would be good to eliminate the excess instructions by changing the signext's to zeroext.
We'll have other tests for sign/zero extension.

Likewise below

test/CodeGen/Mips/llvm-ir/or.ll
57 ↗(On Diff #18609)

This is redundant.

test/CodeGen/Mips/llvm-ir/sdiv.ll
27–28 ↗(On Diff #18609)

These should be redundant since div is signed.
Likewise below

test/CodeGen/Mips/llvm-ir/udiv.ll
20 ↗(On Diff #18609)

It would be good to eliminate the sign extends by switching to zeroext.

This revision is now accepted and ready to land.Jan 24 2015, 5:21 AM
This revision was automatically updated to reflect the committed changes.