1; RUN: llc  -march=mipsel -mcpu=mips32 -relocation-model=static -O3 < %s -mips-os16  | FileCheck %s -check-prefix=32
2
3@i = global i32 1, align 4
4@f = global float 1.000000e+00, align 4
5
6define void @vv() #0 {
7entry:
8  ret void
9}
10
11; 32: 	.set	mips16                  # @vv
12; 32: 	.ent	vv
13
14; 32:	save	{{.+}}
15; 32:	restore	{{.+}}
16; 32:	.end	vv
17
18define i32 @iv() #0 {
19entry:
20  %0 = load i32* @i, align 4
21  ret i32 %0
22}
23
24; 32: 	.set	mips16                  # @iv
25; 32: 	.ent	iv
26
27; 32:	save	{{.+}}
28; 32:	restore	{{.+}}
29; 32:	.end	iv
30
31define void @vif(i32 %i, float %f) #0 {
32entry:
33  %i.addr = alloca i32, align 4
34  %f.addr = alloca float, align 4
35  store i32 %i, i32* %i.addr, align 4
36  store float %f, float* %f.addr, align 4
37  ret void
38}
39
40; 32: 	.set	mips16                  # @vif
41; 32: 	.ent	vif
42
43; 32:	save	{{.+}}
44; 32:	restore	{{.+}}
45; 32:	.end	vif
46
47define void @foo() #0 {
48entry:
49  store float 2.000000e+00, float* @f, align 4
50  ret void
51}
52
53; 32: 	.set	mips16                  # @foo
54; 32: 	.ent	foo
55
56; 32:	save	{{.+}}
57; 32:	restore	{{.+}}
58; 32:	.end	foo
59
60attributes #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" "unsafe-fp-math"="false" "use-soft-float"="false" }
61
62
63define float @fv() #0 {
64entry:
65  ret float 1.000000e+00
66}
67
68; 32: 	.set	nomips16                  # @fv
69; 32: 	.ent	fv
70; 32:	.set	noreorder
71; 32:	.set	nomacro
72; 32:	.set	noat
73; 32:	jr	$ra
74; 32:	.set	at
75; 32:	.set	macro
76; 32:	.set	reorder
77; 32:	.end	fv
78