69655f7b842cf7058c1ae6742a2bfd874e03f178
[oota-llvm.git] / test / CodeGen / Mips / sr1.ll
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], [10 x i8]* %c, i32 0, i32 0
12   call void @x(i8* %arraydecay)
13   %arraydecay1 = getelementptr inbounds [10 x i8], [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], [150 x i8]* %c, i32 0, i32 0
29   call void @x(i8* %arraydecay)
30   %arraydecay1 = getelementptr inbounds [150 x i8], [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