// run // Test for 6g register move bug. The optimizer gets confused // about 32- vs 64-bit moves during splitContractIndex. // Issue 3918. package main func main() { const c = 0x123400005678 index, offset := splitContractIndex(c) if index != (c&0xffffffff)>>5 || offset != c+1 { println("BUG", index, offset) } } func splitContractIndex(ce uint64) (index uint32, offset uint64) { h := uint32(ce) return h >> 5, ce + 1 }