// run | |
// Copyright 2018 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. | |
// Issue 26438: arm64 backend may use 64-bit TST for | |
// "if uint32(a)&uint32(b) == 0", which should be | |
// 32-bit TSTW | |
package main | |
//go:noinline | |
func tstw(a, b uint64) uint64 { | |
if uint32(a)&uint32(b) == 0 { | |
return 100 | |
} else { | |
return 200 | |
} | |
} | |
func main() { | |
if tstw(0xff00000000, 0xaa00000000) == 200 { | |
panic("impossible") | |
} | |
} |