Home | History | Annotate | Download | only in Mips
      1 ; RUN: llc  -mtriple=mipsel-linux-gnu -march=mipsel -mattr=mips16 -relocation-model=pic  < %s | FileCheck %s -check-prefix=PIC
      2 
      3 ; RUN: llc  -mtriple=mipsel-linux-gnu -march=mipsel -mattr=mips16 -relocation-model=static  < %s | FileCheck %s -check-prefix=STATIC
      4 
      5 
      6 @xi = common global i32 0, align 4
      7 @x = common global float 0.000000e+00, align 4
      8 @xd = common global double 0.000000e+00, align 8
      9 
     10 ; Function Attrs: nounwind
     11 define void @it() #0 {
     12 entry:
     13   %call = call i32 @i(i32 1)
     14   store i32 %call, i32* @xi, align 4
     15   ret void
     16 ; PIC: 	.ent	it
     17 ; STATIC: 	.ent	it
     18 ; PIC: 	save	$16, $17, $ra, [[FS:[0-9]+]]
     19 ; STATIC:      save	$16, $ra, [[FS:[0-9]+]]
     20 ; PIC: 	restore	$16, $17, $ra, [[FS]]
     21 ; STATIC:      restore	$16, $ra, [[FS]]
     22 ; PIC: 	.end	it
     23 ; STATIC: 	.end	it
     24 }
     25 
     26 declare i32 @i(i32) #1
     27 
     28 ; Function Attrs: nounwind
     29 define void @ft() #0 {
     30 entry:
     31   %call = call float @f()
     32   store float %call, float* @x, align 4
     33   ret void
     34 ; PIC: 	.ent	ft
     35 ; PIC: 	save	$16, $17, $ra, $18, [[FS:[0-9]+]]
     36 ; PIC: 	restore	$16, $17, $ra, $18, [[FS]]
     37 ; PIC: 	.end	ft
     38 }
     39 
     40 declare float @f() #1
     41 
     42 ; Function Attrs: nounwind
     43 define void @dt() #0 {
     44 entry:
     45   %call = call double @d()
     46   store double %call, double* @xd, align 8
     47   ret void
     48 ; PIC: 	.ent	dt
     49 ; PIC: 	save	$16, $17, $ra, $18, [[FS:[0-9]+]]
     50 ; PIC: 	restore	$16, $17, $ra, $18, [[FS]]
     51 ; PIC: 	.end	dt
     52 }
     53 
     54 declare double @d() #1
     55 
     56 ; Function Attrs: nounwind
     57 define void @fft() #0 {
     58 entry:
     59   %0 = load float, float* @x, align 4
     60   %call = call float @ff(float %0)
     61   store float %call, float* @x, align 4
     62   ret void
     63 ; PIC: 	.ent	fft
     64 ; PIC: 	save	$16, $17, $ra, $18, [[FS:[0-9]+]]
     65 ; PIC: 	restore	$16, $17, $ra, $18, [[FS]]
     66 ; PIC: 	.end	fft
     67 }
     68 
     69 declare float @ff(float) #1
     70 
     71 ; Function Attrs: nounwind
     72 define void @vft() #0 {
     73 entry:
     74   %0 = load float, float* @x, align 4
     75   call void @vf(float %0)
     76   ret void
     77 ; PIC: 	.ent	vft
     78 ; STATIC: 	.ent	vft
     79 ; PIC: 	save	$16, $ra, [[FS:[0-9]+]]
     80 ; STATIC:      save	$16, $ra, [[FS:[0-9]+]]
     81 ; PIC: 	restore	$16, $ra, [[FS]]
     82 ; STATIC:      restore	$16, $ra, [[FS]]
     83 ; PIC: 	.end	vft
     84 ; STATIC: 	.end	vft
     85 }
     86 
     87 declare void @vf(float) #1
     88 
     89 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" }
     90 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" }
     91 
     92 
     93