| // Copyright 2015 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. |
| |
| package ssa |
| |
| import "testing" |
| |
| func TestLiveControlOps(t *testing.T) { |
| c := testConfig(t) |
| f := Fun(c, "entry", |
| Bloc("entry", |
| Valu("mem", OpInitMem, TypeMem, 0, nil), |
| Valu("x", OpAMD64MOVLconst, TypeInt8, 1, nil), |
| Valu("y", OpAMD64MOVLconst, TypeInt8, 2, nil), |
| Valu("a", OpAMD64TESTB, TypeFlags, 0, nil, "x", "y"), |
| Valu("b", OpAMD64TESTB, TypeFlags, 0, nil, "y", "x"), |
| Eq("a", "if", "exit"), |
| ), |
| Bloc("if", |
| Eq("b", "plain", "exit"), |
| ), |
| Bloc("plain", |
| Goto("exit"), |
| ), |
| Bloc("exit", |
| Exit("mem"), |
| ), |
| ) |
| flagalloc(f.f) |
| regalloc(f.f) |
| checkFunc(f.f) |
| } |