// run

// Copyright 2013 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 main

func F(xi, yi interface{}) uint64 {
	x, y := xi.(uint64), yi.(uint64)
	return x &^ y
}

func G(xi, yi interface{}) uint64 {
	return xi.(uint64) &^ yi.(uint64) // generates incorrect code
}

func main() {
	var x, y uint64 = 0, 1 << 63
	f := F(x, y)
	g := G(x, y)
	if f != 0 || g != 0 {
		println("F", f, "G", g)
		panic("bad")
	}
}
