package main
func f(x *int8) bool {
return *x <= 43
}
Compiling this program with -S for arm64 has the line:
It should be
Note that 184683593771 = 43<<32 + 43.
Go 1.16 is ok, this started in Go 1.17. Bisect points to https://go-review.googlesource.com/c/go/+/289649 . It looks maybe intentional? Not sure, but definitely weird.
The actual machine code looks correct. Builders are passing, and go tool objdump shows the right disassembly. It's just the -S output that appears broken.
@cherrymui @erifan
Compiling this program with
-Sforarm64has the line:It should be
Note that
184683593771 = 43<<32 + 43.Go 1.16 is ok, this started in Go 1.17. Bisect points to https://go-review.googlesource.com/c/go/+/289649 . It looks maybe intentional? Not sure, but definitely weird.
The actual machine code looks correct. Builders are passing, and
go tool objdumpshows the right disassembly. It's just the-Soutput that appears broken.@cherrymui @erifan