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// Issue 12133.  The CX register was getting clobbered
8// because we did not keep track of its allocation correctly.
9
10package main
11
12import "fmt"
13
14func main() {
15	want := uint(48)
16	got := f1(48)
17	if got != want {
18		fmt.Println("got", got, ", wanted", want)
19		panic("bad")
20	}
21}
22
23//go:noinline
24func f1(v1 uint) uint {
25	return v1 >> ((1 >> v1) + (1 >> v1))
26}
27