Skip to content

Commit 517a38c

Browse files
quentinmitaclements
authored andcommitted
[release-branch.go1.8] test/fixedbugs: add test for #19403
Change-Id: Ie52dac8eb4daed95e049ad74d5ae101e8a5cb854 Reviewed-on: https://go-review.googlesource.com/39599 Run-TryBot: Austin Clements <[email protected]> TryBot-Result: Gobot Gobot <[email protected]> Reviewed-by: Brad Fitzpatrick <[email protected]>
1 parent dc70a5e commit 517a38c

File tree

1 file changed

+134
-0
lines changed

1 file changed

+134
-0
lines changed

test/fixedbugs/bug19403.go

+134
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
// run
2+
3+
// Copyright 2017 The Go Authors. All rights reserved.
4+
// Use of this source code is governed by a BSD-style
5+
// license that can be found in the LICENSE file.
6+
7+
// Test for golang.org/issue/19403.
8+
// F15 should not be clobbered by float-to-int conversion on ARM.
9+
// This test requires enough locals that can be put in registers that the compiler can choose to use F15.
10+
package main
11+
12+
var count float32 = 16
13+
var i0 int
14+
var i1 int
15+
var i2 int
16+
var i3 int
17+
var i4 int
18+
var i5 int
19+
var i6 int
20+
var i7 int
21+
var i8 int
22+
var i9 int
23+
var i10 int
24+
var i11 int
25+
var i12 int
26+
var i13 int
27+
var i14 int
28+
var i15 int
29+
var i16 int
30+
31+
func main() {
32+
var f0 float32 = 0.0
33+
var f1 float32 = 1.0
34+
var f2 float32 = 2.0
35+
var f3 float32 = 3.0
36+
var f4 float32 = 4.0
37+
var f5 float32 = 5.0
38+
var f6 float32 = 6.0
39+
var f7 float32 = 7.0
40+
var f8 float32 = 8.0
41+
var f9 float32 = 9.0
42+
var f10 float32 = 10.0
43+
var f11 float32 = 11.0
44+
var f12 float32 = 12.0
45+
var f13 float32 = 13.0
46+
var f14 float32 = 14.0
47+
var f15 float32 = 15.0
48+
var f16 float32 = 16.0
49+
i0 = int(f0)
50+
i1 = int(f1)
51+
i2 = int(f2)
52+
i3 = int(f3)
53+
i4 = int(f4)
54+
i5 = int(f5)
55+
i6 = int(f6)
56+
i7 = int(f7)
57+
i8 = int(f8)
58+
i9 = int(f9)
59+
i10 = int(f10)
60+
i11 = int(f11)
61+
i12 = int(f12)
62+
i13 = int(f13)
63+
i14 = int(f14)
64+
i15 = int(f15)
65+
i16 = int(f16)
66+
if f16 != count {
67+
panic("fail")
68+
}
69+
count -= 1
70+
if f15 != count {
71+
panic("fail")
72+
}
73+
count -= 1
74+
if f14 != count {
75+
panic("fail")
76+
}
77+
count -= 1
78+
if f13 != count {
79+
panic("fail")
80+
}
81+
count -= 1
82+
if f12 != count {
83+
panic("fail")
84+
}
85+
count -= 1
86+
if f11 != count {
87+
panic("fail")
88+
}
89+
count -= 1
90+
if f10 != count {
91+
panic("fail")
92+
}
93+
count -= 1
94+
if f9 != count {
95+
panic("fail")
96+
}
97+
count -= 1
98+
if f8 != count {
99+
panic("fail")
100+
}
101+
count -= 1
102+
if f7 != count {
103+
panic("fail")
104+
}
105+
count -= 1
106+
if f6 != count {
107+
panic("fail")
108+
}
109+
count -= 1
110+
if f5 != count {
111+
panic("fail")
112+
}
113+
count -= 1
114+
if f4 != count {
115+
panic("fail")
116+
}
117+
count -= 1
118+
if f3 != count {
119+
panic("fail")
120+
}
121+
count -= 1
122+
if f2 != count {
123+
panic("fail")
124+
}
125+
count -= 1
126+
if f1 != count {
127+
panic("fail")
128+
}
129+
count -= 1
130+
if f0 != count {
131+
panic("fail")
132+
}
133+
count -= 1
134+
}

0 commit comments

Comments
 (0)