This is an archive of the discontinued LLVM Phabricator instance.

[mips] MIPS-IV is broadly the same as MIPS64 so duplicate all -mcpu=mips64 tests with -mcpu=mips4 as a starting point
ClosedPublic

Authored by dsanders on Apr 10 2014, 8:02 AM.

Details

Summary

Two exceptions to this:

test/CodeGen/Mips/octeon.ll
test/CodeGen/Mips/octeon_popcnt.ll

these test extensions to MIPS64

One test is altered for MIPS-IV:

test/CodeGen/Mips/mips64countleading.ll
  Tests dclo/dclz which were added in MIPS64. The MIPS-IV version tests
  that dclo/dclz are not emitted.

Four tests fail and are not in this patch:

test/CodeGen/Mips/abicalls.ll
test/CodeGen/Mips/fcopysign-f32-f64.ll
test/CodeGen/Mips/fcopysign.ll
test/CodeGen/Mips/stack-alignment.ll

Depends on D3343

Diff Detail

Event Timeline

vmedic accepted this revision.Apr 14 2014, 5:42 AM

LGTM

dsanders closed this revision.Apr 14 2014, 9:07 AM

Just one comment.

test/CodeGen/Mips/elf_eflags.ll
26–28

FYI: This is OK for the time being because we don't emit .set arch=arch or similar assembly directive. The reason I'm commenting on this is that I expect the ELF eflags to be different between Mips4 and Mips64 because there's a bit in the ELF header that identifies the architecture. There are tests for this in test/MC/Mips like 'elf_eflags.s'.

dsanders added inline comments.Apr 16 2014, 3:29 AM
test/CodeGen/Mips/elf_eflags.ll
26–28

In terms of assembly text, there is no difference in output between MIPS-IV and MIPS64 because the ISA level is passed in via an option (the .set directives don't change the ELF header)

(the .set directives don't change the ELF header).

You mean the '.set arch/isa', right? '
.set mips16/micromips/...' do change the ELF header.

Yes, I meant the .set directives that select between mips4 and mips64