Home | History | Annotate | Download | only in Mips
      1 ; RUN: llc  -mtriple=mipsel-linux-gnu -march=mipsel -mcpu=mips16 -relocation-model=static  < %s | FileCheck %s 
      2 
      3 ; RUN: llc  -mtriple=mipsel-linux-gnu -march=mipsel -mcpu=mips16 -relocation-model=static  < %s | FileCheck %s -check-prefix=NEG
      4 
      5 @f = common global float 0.000000e+00, align 4
      6 
      7 ; Function Attrs: nounwind
      8 define void @foo1() #0 {
      9 entry:
     10   %c = alloca [10 x i8], align 1
     11   %arraydecay = getelementptr inbounds [10 x i8]* %c, i32 0, i32 0
     12   call void @x(i8* %arraydecay)
     13   %arraydecay1 = getelementptr inbounds [10 x i8]* %c, i32 0, i32 0
     14   call void @x(i8* %arraydecay1)
     15   ret void
     16 ; CHECK: 	.ent	foo1
     17 ; CHECK: 	save	$16, $17, $ra, [[FS:[0-9]+]]  # 16 bit inst
     18 ; CHECK: 	restore	$16, $17, $ra, [[FS]] # 16 bit inst
     19 ; CHECK: 	.end	foo1
     20 }
     21 
     22 declare void @x(i8*) #1
     23 
     24 ; Function Attrs: nounwind
     25 define void @foo2() #0 {
     26 entry:
     27   %c = alloca [150 x i8], align 1
     28   %arraydecay = getelementptr inbounds [150 x i8]* %c, i32 0, i32 0
     29   call void @x(i8* %arraydecay)
     30   %arraydecay1 = getelementptr inbounds [150 x i8]* %c, i32 0, i32 0
     31   call void @x(i8* %arraydecay1)
     32   ret void
     33 ; CHECK: 	.ent	foo2
     34 ; CHECK: 	save	$16, $17, $ra, [[FS:[0-9]+]] 
     35 ; CHECK: 	restore	$16, $17, $ra, [[FS]] 
     36 ; CHECK: 	.end	foo2
     37 }
     38 
     39 ; Function Attrs: nounwind
     40 define void @foo3() #0 {
     41 entry:
     42   %call = call float @xf()
     43   store float %call, float* @f, align 4
     44   ret void
     45 ; CHECK: 	.ent	foo3
     46 ; CHECK: 	save	$16, $17, $ra, $18, [[FS:[0-9]+]]
     47 ; CHECK: 	restore	$16, $17, $ra, $18, [[FS]]
     48 ; CHECK: 	.end	foo3
     49 ; NEG: 	.ent	foo3
     50 ; NEG-NOT: 	save	$16, $17, $ra, $18, [[FS:[0-9]+]] # 16 bit inst
     51 ; NEG-NOT: 	restore	$16, $17, $ra, $18, [[FS]] # 16 bit inst
     52 ; NEG: 	.end	foo3
     53 }
     54 
     55 declare float @xf() #1
     56 
     57 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" }
     58 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" }
     59 
     60 
     61