// 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")
}
}