llvm-mirror/test/CodeGen/Mips/s2rem.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

93 lines
2.5 KiB
LLVM

; RUN: llc -mtriple=mipsel-linux-gnu -march=mipsel -mattr=mips16 -relocation-model=pic < %s | FileCheck %s -check-prefix=PIC
; RUN: llc -mtriple=mipsel-linux-gnu -march=mipsel -mattr=mips16 -relocation-model=static < %s | FileCheck %s -check-prefix=STATIC
@xi = common global i32 0, align 4
@x = common global float 0.000000e+00, align 4
@xd = common global double 0.000000e+00, align 8
; Function Attrs: nounwind
define void @it() #0 {
entry:
%call = call i32 @i(i32 1)
store i32 %call, i32* @xi, align 4
ret void
; PIC: .ent it
; STATIC: .ent it
; PIC: save $16, $17, $ra, [[FS:[0-9]+]]
; STATIC: save $16, $ra, [[FS:[0-9]+]]
; PIC: restore $16, $17, $ra, [[FS]]
; STATIC: restore $16, $ra, [[FS]]
; PIC: .end it
; STATIC: .end it
}
declare i32 @i(i32) #1
; Function Attrs: nounwind
define void @ft() #0 {
entry:
%call = call float @f()
store float %call, float* @x, align 4
ret void
; PIC: .ent ft
; PIC: save $16, $17, $ra, $18, [[FS:[0-9]+]]
; PIC: restore $16, $17, $ra, $18, [[FS]]
; PIC: .end ft
}
declare float @f() #1
; Function Attrs: nounwind
define void @dt() #0 {
entry:
%call = call double @d()
store double %call, double* @xd, align 8
ret void
; PIC: .ent dt
; PIC: save $16, $17, $ra, $18, [[FS:[0-9]+]]
; PIC: restore $16, $17, $ra, $18, [[FS]]
; PIC: .end dt
}
declare double @d() #1
; Function Attrs: nounwind
define void @fft() #0 {
entry:
%0 = load float, float* @x, align 4
%call = call float @ff(float %0)
store float %call, float* @x, align 4
ret void
; PIC: .ent fft
; PIC: save $16, $17, $ra, $18, [[FS:[0-9]+]]
; PIC: restore $16, $17, $ra, $18, [[FS]]
; PIC: .end fft
}
declare float @ff(float) #1
; Function Attrs: nounwind
define void @vft() #0 {
entry:
%0 = load float, float* @x, align 4
call void @vf(float %0)
ret void
; PIC: .ent vft
; STATIC: .ent vft
; PIC: save $16, $ra, [[FS:[0-9]+]]
; STATIC: save $16, $ra, [[FS:[0-9]+]]
; PIC: restore $16, $ra, [[FS]]
; STATIC: restore $16, $ra, [[FS]]
; PIC: .end vft
; STATIC: .end vft
}
declare void @vf(float) #1
attributes #0 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }