| // run |
| |
| // Copyright 2017 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| // Test for golang.org/issue/19403. |
| // F15 should not be clobbered by float-to-int conversion on ARM. |
| // This test requires enough locals that can be put in registers that the compiler can choose to use F15. |
| package main |
| |
| var count float32 = 16 |
| var i0 int |
| var i1 int |
| var i2 int |
| var i3 int |
| var i4 int |
| var i5 int |
| var i6 int |
| var i7 int |
| var i8 int |
| var i9 int |
| var i10 int |
| var i11 int |
| var i12 int |
| var i13 int |
| var i14 int |
| var i15 int |
| var i16 int |
| |
| func main() { |
| var f0 float32 = 0.0 |
| var f1 float32 = 1.0 |
| var f2 float32 = 2.0 |
| var f3 float32 = 3.0 |
| var f4 float32 = 4.0 |
| var f5 float32 = 5.0 |
| var f6 float32 = 6.0 |
| var f7 float32 = 7.0 |
| var f8 float32 = 8.0 |
| var f9 float32 = 9.0 |
| var f10 float32 = 10.0 |
| var f11 float32 = 11.0 |
| var f12 float32 = 12.0 |
| var f13 float32 = 13.0 |
| var f14 float32 = 14.0 |
| var f15 float32 = 15.0 |
| var f16 float32 = 16.0 |
| i0 = int(f0) |
| i1 = int(f1) |
| i2 = int(f2) |
| i3 = int(f3) |
| i4 = int(f4) |
| i5 = int(f5) |
| i6 = int(f6) |
| i7 = int(f7) |
| i8 = int(f8) |
| i9 = int(f9) |
| i10 = int(f10) |
| i11 = int(f11) |
| i12 = int(f12) |
| i13 = int(f13) |
| i14 = int(f14) |
| i15 = int(f15) |
| i16 = int(f16) |
| if f16 != count { |
| panic("fail") |
| } |
| count -= 1 |
| if f15 != count { |
| panic("fail") |
| } |
| count -= 1 |
| if f14 != count { |
| panic("fail") |
| } |
| count -= 1 |
| if f13 != count { |
| panic("fail") |
| } |
| count -= 1 |
| if f12 != count { |
| panic("fail") |
| } |
| count -= 1 |
| if f11 != count { |
| panic("fail") |
| } |
| count -= 1 |
| if f10 != count { |
| panic("fail") |
| } |
| count -= 1 |
| if f9 != count { |
| panic("fail") |
| } |
| count -= 1 |
| if f8 != count { |
| panic("fail") |
| } |
| count -= 1 |
| if f7 != count { |
| panic("fail") |
| } |
| count -= 1 |
| if f6 != count { |
| panic("fail") |
| } |
| count -= 1 |
| if f5 != count { |
| panic("fail") |
| } |
| count -= 1 |
| if f4 != count { |
| panic("fail") |
| } |
| count -= 1 |
| if f3 != count { |
| panic("fail") |
| } |
| count -= 1 |
| if f2 != count { |
| panic("fail") |
| } |
| count -= 1 |
| if f1 != count { |
| panic("fail") |
| } |
| count -= 1 |
| if f0 != count { |
| panic("fail") |
| } |
| count -= 1 |
| } |