Home | History | Annotate | Download | only in testdata
      1 // run
      2 
      3 // Copyright 2015 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 // Tests phi implementation
      8 
      9 package main
     10 
     11 func phiOverwrite_ssa() int {
     12 	var n int
     13 	for i := 0; i < 10; i++ {
     14 		if i == 6 {
     15 			break
     16 		}
     17 		n = i
     18 	}
     19 	return n
     20 }
     21 
     22 func phiOverwrite() {
     23 	want := 5
     24 	got := phiOverwrite_ssa()
     25 	if got != want {
     26 		println("phiOverwrite_ssa()=", want, ", got", got)
     27 		failed = true
     28 	}
     29 }
     30 
     31 func phiOverwriteBig_ssa() int {
     32 	var a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z int
     33 	a = 1
     34 	for idx := 0; idx < 26; idx++ {
     35 		a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z = b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, a
     36 	}
     37 	return a*1 + b*2 + c*3 + d*4 + e*5 + f*6 + g*7 + h*8 + i*9 + j*10 + k*11 + l*12 + m*13 + n*14 + o*15 + p*16 + q*17 + r*18 + s*19 + t*20 + u*21 + v*22 + w*23 + x*24 + y*25 + z*26
     38 }
     39 
     40 func phiOverwriteBig() {
     41 	want := 1
     42 	got := phiOverwriteBig_ssa()
     43 	if got != want {
     44 		println("phiOverwriteBig_ssa()=", want, ", got", got)
     45 		failed = true
     46 	}
     47 }
     48 
     49 var failed = false
     50 
     51 func main() {
     52 	phiOverwrite()
     53 	phiOverwriteBig()
     54 	if failed {
     55 		panic("failed")
     56 	}
     57 }
     58