This is an archive of the discontinued LLVM Phabricator instance.

[mips][msa] Test basic operations for the N32 ABI too.
ClosedPublic

Authored by dsanders on Apr 29 2015, 5:28 AM.

Details

Summary

This required adding instruction aliases for dneg.

N64 will be enabled shortly but requires additional bugfixes.

Depends on D9340

Diff Detail

Event Timeline

dsanders updated this revision to Diff 24617.Apr 29 2015, 5:28 AM
dsanders retitled this revision from to [mips][msa] Test basic operations for the N32 ABI too..
dsanders updated this object.
dsanders edited the test plan for this revision. (Show Details)
dsanders added a reviewer: vkalintiris.
dsanders added a subscriber: Unknown Object (MLST).
vkalintiris accepted this revision.Apr 29 2015, 8:42 AM
vkalintiris edited edge metadata.

LGTM, with the typo fix and with the aliases marked appropriately.

lib/Target/Mips/Mips64InstrInfo.td
570–575
  • I believe that we should mark these aliases as ISA_MIPS3.
  • I can't find the second form of the dneg alias anywhere in binutils.
  • dnegu isn't used in this patch.

Also, we should add some tests in test/MC for these aliases in a future patch.

test/CodeGen/Mips/msa/basic_operations.ll
5–6

Small typo: R1N -> RUN

This revision is now accepted and ready to land.Apr 29 2015, 8:42 AM

Thanks.

lib/Target/Mips/Mips64InstrInfo.td
570–575

I believe that we should mark these aliases as ISA_MIPS3.

Makes sense to me.

I can't find the second form of the dneg alias anywhere in binutils.

I mostly included this because the 1-operand form of neg is accepted by IAS. GAS accepts it as well with 'dneg $1' being equivalent to 'dneg $1, $1'.

dnegu isn't used in this patch.

I'll add some assembler/disassembler tests for it (and the others).

test/CodeGen/Mips/msa/basic_operations.ll
5–6

This isn't actually a typo. It's a placeholder that keeps the currently broken N64 disabled until the next patch. It shouldn't have been left in the patch though so I'll drop these two lines and merge them with the s/R!N/RUN/ from D9342 instead.

dsanders updated this revision to Diff 24698.Apr 30 2015, 5:00 AM
dsanders edited edge metadata.

dneg/dnegu are now available to MIPS-III and later 64-bit ISA's. They also
have assembly/disassembly tests.

Dropped 'R!N' lines.

Made basic_operations_float.ll test N32 too.

dsanders closed this revision.May 5 2015, 1:51 AM