blob: 610693d58b3ff81d088f5a709ffc436c18420a90 [file] [log] [blame]
Reed Kotler5bde5c32013-12-11 03:32:44 +00001; RUN: llc -mtriple=mipsel-linux-gnu -march=mipsel -mcpu=mips16 -relocation-model=static < %s | FileCheck %s
2
Reed Kotler5c29d632013-12-15 20:49:30 +00003; RUN: llc -mtriple=mipsel-linux-gnu -march=mipsel -mcpu=mips16 -relocation-model=static < %s | FileCheck %s -check-prefix=NEG
4
Reed Kotler5bde5c32013-12-11 03:32:44 +00005@f = common global float 0.000000e+00, align 4
6
7; Function Attrs: nounwind
8define void @foo1() #0 {
9entry:
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
Reed Kotler5c29d632013-12-15 20:49:30 +000017; CHECK: save $16, $17, $ra, [[FS:[0-9]+]] # 16 bit inst
18; CHECK: restore $16, $17, $ra, [[FS]] # 16 bit inst
Reed Kotler5bde5c32013-12-11 03:32:44 +000019; CHECK: .end foo1
20}
21
22declare void @x(i8*) #1
23
24; Function Attrs: nounwind
25define void @foo2() #0 {
26entry:
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
Reed Kotler5c29d632013-12-15 20:49:30 +000034; CHECK: save $16, $17, $ra, [[FS:[0-9]+]]
35; CHECK: restore $16, $17, $ra, [[FS]]
Reed Kotler5bde5c32013-12-11 03:32:44 +000036; CHECK: .end foo2
Reed Kotler5bde5c32013-12-11 03:32:44 +000037}
38
39; Function Attrs: nounwind
40define void @foo3() #0 {
41entry:
42 %call = call float @xf()
43 store float %call, float* @f, align 4
44 ret void
45; CHECK: .ent foo3
Reed Kotler5c29d632013-12-15 20:49:30 +000046; CHECK: save $16, $17, $ra, $18, [[FS:[0-9]+]]
47; CHECK: restore $16, $17, $ra, $18, [[FS]]
Reed Kotler5bde5c32013-12-11 03:32:44 +000048; CHECK: .end foo3
49; NEG: .ent foo3
Reed Kotler5c29d632013-12-15 20:49:30 +000050; 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
Reed Kotler5bde5c32013-12-11 03:32:44 +000052; NEG: .end foo3
53}
54
55declare float @xf() #1
56
57attributes #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" }
58attributes #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