| // run |
| |
| // Copyright 2012 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. |
| |
| // Issue 4138: bug in floating-point registers numbering. |
| // Makes 6g unable to use more than 11 registers. |
| |
| package main |
| |
| func formula() float32 { |
| mA := [1]float32{1.0} |
| det1 := mA[0] |
| det2 := mA[0] |
| det3 := mA[0] |
| det4 := mA[0] |
| det5 := mA[0] |
| det6 := mA[0] |
| det7 := mA[0] |
| det8 := mA[0] |
| det9 := mA[0] |
| det10 := mA[0] |
| det11 := mA[0] |
| det12 := mA[0] |
| |
| return det1 + det2*det3 + |
| det4*det5 + det6*det7 + |
| det8*det9 + det10*det11 + |
| det12 |
| } |
| |
| func main() { |
| x := formula() |
| if x != 7.0 { |
| println(x, 7.0) |
| panic("x != 7.0") |
| } |
| } |