]> Cypherpunks repositories - gostls13.git/commitdiff
test/codegen: add initial codegen tests for integer min/max
authorJoel Sing <joel@sing.id.au>
Tue, 20 Aug 2024 13:41:40 +0000 (23:41 +1000)
committerJoel Sing <joel@sing.id.au>
Fri, 23 Aug 2024 15:17:17 +0000 (15:17 +0000)
Change-Id: I006370053748edbec930c7279ee88a805009aa0d
Reviewed-on: https://go-review.googlesource.com/c/go/+/606976
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Meng Zhuo <mengzhuo1203@gmail.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>

test/codegen/arithmetic.go

index e474a10ba2a793360b8ede57e4bf4e9a04c1c9cd..4b47f6c13d86dee03a9c49388a971a52a5350a55 100644 (file)
@@ -629,3 +629,39 @@ func constantFold3(i, j int) int {
        r := (5 * i) * (6 * j)
        return r
 }
+
+// ----------------- //
+//  Integer Min/Max  //
+// ----------------- //
+
+func Int64Min(a, b int64) int64 {
+       // amd64: "CMPQ","CMOVQLT"
+       // arm64: "CMP","CSEL"
+       // riscv64/rva20u64:"BLT\t"
+       // riscv64/rva22u64:"MIN\t"
+       return min(a, b)
+}
+
+func Int64Max(a, b int64) int64 {
+       // amd64: "CMPQ","CMOVQGT"
+       // arm64: "CMP","CSEL"
+       // riscv64/rva20u64:"BLT\t"
+       // riscv64/rva22u64:"MAX\t"
+       return max(a, b)
+}
+
+func Uint64Min(a, b uint64) uint64 {
+       // amd64: "CMPQ","CMOVQCS"
+       // arm64: "CMP","CSEL"
+       // riscv64/rva20u64:"BLTU"
+       // riscv64/rva22u64:"MINU"
+       return min(a, b)
+}
+
+func Uint64Max(a, b uint64) uint64 {
+       // amd64: "CMPQ","CMOVQHI"
+       // arm64: "CMP","CSEL"
+       // riscv64/rva20u64:"BLTU"
+       // riscv64/rva22u64:"MAXU"
+       return max(a, b)
+}