blob: dcdebb92e40e2c9e006dd6d614a665b3fedd5977 [file] [log] [blame]
Reed Kotler74adad62013-04-10 16:58:04 +00001; RUN: llc -march=mipsel -mcpu=mips32 -relocation-model=static -O3 < %s -mips-os16 | FileCheck %s -check-prefix=32
2
3@x = global float 1.000000e+00, align 4
4@y = global float 2.000000e+00, align 4
5@zz = common global float 0.000000e+00, align 4
6@z = common global float 0.000000e+00, align 4
7
8define float @fv() #0 {
9entry:
10 ret float 1.000000e+00
11}
12
13; 32: .set nomips16 # @fv
14; 32: .ent fv
15; 32: .set noreorder
16; 32: .set nomacro
17; 32: .set noat
18; 32: jr $ra
19; 32: .set at
20; 32: .set macro
21; 32: .set reorder
22; 32: .end fv
23
24define double @dv() #0 {
25entry:
26 ret double 2.000000e+00
27}
28
29; 32: .set nomips16 # @dv
30; 32: .ent dv
31; 32: .set noreorder
32; 32: .set nomacro
33; 32: .set noat
34; 32: jr $ra
35; 32: .set at
36; 32: .set macro
37; 32: .set reorder
38; 32: .end dv
39
40define void @vf(float %x) #0 {
41entry:
42 %x.addr = alloca float, align 4
43 store float %x, float* %x.addr, align 4
44 ret void
45}
46
47; 32: .set nomips16 # @vf
48; 32: .ent vf
49; 32: .set noreorder
50; 32: .set nomacro
51; 32: .set noat
52; 32: jr $ra
53; 32: .set at
54; 32: .set macro
55; 32: .set reorder
56; 32: .end vf
57
58define void @vd(double %x) #0 {
59entry:
60 %x.addr = alloca double, align 8
61 store double %x, double* %x.addr, align 8
62 ret void
63}
64
65; 32: .set nomips16 # @vd
66; 32: .ent vd
67; 32: .set noreorder
68; 32: .set nomacro
69; 32: .set noat
70; 32: jr $ra
71; 32: .set at
72; 32: .set macro
73; 32: .set reorder
74; 32: .end vd
75
76define void @foo1() #0 {
77entry:
78 store float 1.000000e+00, float* @zz, align 4
79 %0 = load float* @y, align 4
80 %1 = load float* @x, align 4
81 %add = fadd float %0, %1
82 store float %add, float* @z, align 4
83 ret void
84}
85
86; 32: .set nomips16 # @foo1
87; 32: .ent foo1
88; 32: .set noreorder
89; 32: .set nomacro
90; 32: .set noat
91; 32: jr $ra
92; 32: .set at
93; 32: .set macro
94; 32: .set reorder
95; 32: .end foo1
96
97define void @foo2() #0 {
98entry:
99 %0 = load float* @x, align 4
100 call void @vf(float %0)
101 ret void
102}
103
104
105; 32: .set nomips16 # @foo2
106; 32: .ent foo2
107; 32: .set noreorder
108; 32: .set nomacro
109; 32: .set noat
110; 32: jr $ra
111; 32: .set at
112; 32: .set macro
113; 32: .set reorder
114; 32: .end foo2
115
116define void @foo3() #0 {
117entry:
118 %call = call float @fv()
119 store float %call, float* @x, align 4
120 ret void
121}
122
123; 32: .set nomips16 # @foo3
124; 32: .ent foo3
125; 32: .set noreorder
126; 32: .set nomacro
127; 32: .set noat
128; 32: jr $ra
129; 32: .set at
130; 32: .set macro
131; 32: .set reorder
132; 32: .end foo3
133
Bill Wendling80075c42013-08-22 21:28:54 +0000134attributes #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" }
Reed Kotler74adad62013-04-10 16:58:04 +0000135
136define void @vv() #0 {
137entry:
138 ret void
139}
140
141; 32: .set mips16 # @vv
142; 32: .ent vv
143
144; 32: save {{.+}}
145; 32: restore {{.+}}
146; 32: .end vv
147
148
149