// run

// Copyright 2010 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.

// Test case for issue 789. The bug only appeared for GOARCH=386.

package main

func main() {
	i := 0
	x := 0

	a := (x & 1) << uint(1-i)
	
	s := uint(1-i)
	b := (x & 1) << s
	
	if a != b {
		panic(0)
	}
}