| // asmcheck | |
| // Copyright 2019 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. | |
| // Make sure we reuse large constant loads, if we can. | |
| // See issue 33580. | |
| package codegen | |
| const ( | |
| A = 7777777777777777 | |
| B = 8888888888888888 | |
| ) | |
| func f(x, y uint64) uint64 { | |
| p := x & A | |
| q := y & A | |
| r := x & B | |
| // amd64:-"MOVQ.*8888888888888888" | |
| s := y & B | |
| return p * q * r * s | |
| } |