llvm-mirror/test/CodeGen/Mips/mips16_32_4.ll
Daniel Sanders c168815f4b [mips][mips16] MIPS16 is not a CPU/Architecture but is an ASE.
Summary:
The -mcpu=mips16 option caused the Integrated Assembler to crash because
it couldn't figure out the architecture revision number to write to the
.MIPS.abiflags section. This CPU definition has been removed because, like
microMIPS, MIPS16 is an ASE to a base architecture.

Reviewers: vkalintiris

Subscribers: rkotler, llvm-commits, dsanders

Differential Revision: http://reviews.llvm.org/D13656

llvm-svn: 250407
2015-10-15 14:34:23 +00:00

62 lines
1.7 KiB
LLVM

; RUN: llc -march=mipsel -mattr=mips16 -relocation-model=static -O3 < %s -mips-mixed-16-32 | FileCheck %s -check-prefix=16
; RUN: llc -march=mipsel -mcpu=mips32 -relocation-model=static -O3 < %s -mips-mixed-16-32 | FileCheck %s -check-prefix=32
define void @foo() #0 {
entry:
ret void
}
; 16: .set mips16
; 16: .ent foo
; 16: jrc $ra
; 16: .end foo
; 32: .set mips16
; 32: .ent foo
; 32: jrc $ra
; 32: .end foo
define void @nofoo() #1 {
entry:
ret void
}
; 16: .set nomips16
; 16: .ent nofoo
; 16: .set noreorder
; 16: .set nomacro
; 16: .set noat
; 16: jr $ra
; 16: nop
; 16: .set at
; 16: .set macro
; 16: .set reorder
; 16: .end nofoo
; 32: .set nomips16
; 32: .ent nofoo
; 32: .set noreorder
; 32: .set nomacro
; 32: .set noat
; 32: jr $ra
; 32: nop
; 32: .set at
; 32: .set macro
; 32: .set reorder
; 32: .end nofoo
define i32 @main() #2 {
entry:
ret i32 0
}
; 16: .set mips16
; 16: .ent main
; 16: jrc $ra
; 16: .end main
; 32: .set mips16
; 32: .ent main
; 32: jrc $ra
; 32: .end main
attributes #0 = { nounwind "less-precise-fpmad"="false" "mips16" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "nomips16" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #2 = { nounwind "less-precise-fpmad"="false" "mips16" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" }