src/cmd/compile/internal/ssagen/ssa.go | 4 +++- test/codegen/floats.go | 12 ++++++++---- diff --git a/src/cmd/compile/internal/ssagen/ssa.go b/src/cmd/compile/internal/ssagen/ssa.go index 7d523e56928d79975980d9588f17543b36ce70ca..6b215a833df011b2396ebf20698e5e4c97dec06f 100644 --- a/src/cmd/compile/internal/ssagen/ssa.go +++ b/src/cmd/compile/internal/ssagen/ssa.go @@ -4275,10 +4275,12 @@ if typ.IsFloat() { hasIntrinsic := false switch Arch.LinkArch.Family { - case sys.AMD64, sys.ARM64, sys.Loong64, sys.RISCV64, sys.S390X: + case sys.AMD64, sys.ARM64, sys.Loong64, sys.RISCV64: hasIntrinsic = true case sys.PPC64: hasIntrinsic = buildcfg.GOPPC64 >= 9 + case sys.S390X: + // FIXME: add check once GOS390X exists } if hasIntrinsic { diff --git a/test/codegen/floats.go b/test/codegen/floats.go index 09ef4276ab07e43bfcbafc094d77138dd1864afe..08eccf848f077a061ab9ce44db4c22f742b4fac6 100644 --- a/test/codegen/floats.go +++ b/test/codegen/floats.go @@ -172,46 +172,50 @@ // Float Min/Max // // ---------------- // func Float64Min(a, b float64) float64 { + // FIXME: add WFMINDB on s390x/z14 when GOS390X is added. + // amd64:"MINSD" // arm64:"FMIND" // loong64:"FMIND" // riscv64:"FMIN" // ppc64/power9:"XSMINJDP" // ppc64/power10:"XSMINJDP" - // s390x: "WFMINDB" return min(a, b) } func Float64Max(a, b float64) float64 { + // FIXME: add WFMAXDB on s390x/z14 when GOS390X is added. + // amd64:"MINSD" // arm64:"FMAXD" // loong64:"FMAXD" // riscv64:"FMAX" // ppc64/power9:"XSMAXJDP" // ppc64/power10:"XSMAXJDP" - // s390x: "WFMAXDB" return max(a, b) } func Float32Min(a, b float32) float32 { + // FIXME: add WFMINSB on s390x/z14 when GOS390X is added. + // amd64:"MINSS" // arm64:"FMINS" // loong64:"FMINF" // riscv64:"FMINS" // ppc64/power9:"XSMINJDP" // ppc64/power10:"XSMINJDP" - // s390x: "WFMINSB" return min(a, b) } func Float32Max(a, b float32) float32 { + // FIXME: add WFMAXSB on s390x/z14 when GOS390X is added. + // amd64:"MINSS" // arm64:"FMAXS" // loong64:"FMAXF" // riscv64:"FMAXS" // ppc64/power9:"XSMAXJDP" // ppc64/power10:"XSMAXJDP" - // s390x: "WFMAXSB" return max(a, b) }