go source for verification 2026-05-22
This commit is contained in:
40
test/codegen/generics.go
Normal file
40
test/codegen/generics.go
Normal file
@@ -0,0 +1,40 @@
|
||||
// asmcheck
|
||||
|
||||
// Copyright 2025 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.
|
||||
|
||||
package codegen
|
||||
|
||||
import "cmp"
|
||||
|
||||
func isNaN[T cmp.Ordered](x T) bool {
|
||||
return x != x
|
||||
}
|
||||
|
||||
func compare[T cmp.Ordered](x, y T) int {
|
||||
// amd64:-"TESTB"
|
||||
// arm64:-"MOVB"
|
||||
xNaN := isNaN(x)
|
||||
yNaN := isNaN(y)
|
||||
if xNaN {
|
||||
if yNaN {
|
||||
return 0
|
||||
}
|
||||
return -1
|
||||
}
|
||||
if yNaN {
|
||||
return +1
|
||||
}
|
||||
if x < y {
|
||||
return -1
|
||||
}
|
||||
if x > y {
|
||||
return +1
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func usesCompare(a, b int) int {
|
||||
return compare(a, b)
|
||||
}
|
||||
Reference in New Issue
Block a user