We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
The follow go code should output 1, but wrongly to 100.
package main import "fmt" //go:noinline func ssa(a, b uint64) uint32 { if uint32(a)&uint32(b) == 0 { return 1 } return 100 } func main() { fmt.Println(ssa(0x000000ff00000000, 0x000000aa00000000)) }
only arm64 is affected, other archs are right.
The text was updated successfully, but these errors were encountered:
A "TST" is wrongly generated, which should be"TSTW"
00000 (6) TEXT "".ssa(SB) 00001 (6) FUNCDATA $0, gclocals·33cdeccccebe80329f1fdbee7f5874cb(SB) 00002 (6) FUNCDATA $1, gclocals·33cdeccccebe80329f1fdbee7f5874cb(SB) 00003 (6) FUNCDATA $3, gclocals·33cdeccccebe80329f1fdbee7f5874cb(SB) v19 00004 (7) PCDATA $2, $0 v19 00005 (7) PCDATA $0, $0 v19 00006 (7) MOVD "".a(RSP), R0 v13 00007 (7) MOVD "".b+8(RSP), R1 v15 00008 (7) TST R1, R0 b1 00009 (7) BNE 13 v12 00010 (8) MOVD $1, R0 v17 00011 (8) MOVW R0, "".~r2+16(RSP) b2 00012 (8) RET v9 00013 (10) MOVD $100, R0 v21 00014 (10) MOVW R0, "".~r2+16(RSP) b3 00015 (10) RET 00016 (?) END
Sorry, something went wrong.
Change https://golang.org/cl/124637 mentions this issue: cmd/compile: fix an arm64's comparison bug
cmd/compile: fix an arm64's comparison bug
f6ce1e2
No branches or pull requests
The follow go code should output 1, but wrongly to 100.
only arm64 is affected, other archs are right.
The text was updated successfully, but these errors were encountered: