From 02a9f51011eb7b6150828aab623eede497eb1e09 Mon Sep 17 00:00:00 2001 From: Joel Sing <joel@sing.id.au> Date: Tue, 20 Aug 2024 23:41:40 +1000 Subject: [PATCH] test/codegen: add initial codegen tests for integer min/max 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 | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/test/codegen/arithmetic.go b/test/codegen/arithmetic.go index e474a10ba2a..4b47f6c13d8 100644 --- a/test/codegen/arithmetic.go +++ b/test/codegen/arithmetic.go @@ -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) +} -- GitLab