diff options
Diffstat (limited to 'test/codegen')
| -rw-r--r-- | test/codegen/math.go | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/test/codegen/math.go b/test/codegen/math.go index 4272e4ef88..5b3e727254 100644 --- a/test/codegen/math.go +++ b/test/codegen/math.go @@ -154,6 +154,66 @@ func fnma(x, y, z float64) float64 { return math.FMA(x, -y, -z) } +func isPosInf(x float64) bool { + // riscv64:"FCLASSD" + return math.IsInf(x, 1) +} + +func isPosInfEq(x float64) bool { + // riscv64:"FCLASSD" + return x == math.Inf(1) +} + +func isPosInfCmp(x float64) bool { + // riscv64:"FCLASSD" + return x > math.MaxFloat64 +} + +func isNotPosInf(x float64) bool { + // riscv64:"FCLASSD" + return !math.IsInf(x, 1) +} + +func isNotPosInfEq(x float64) bool { + // riscv64:"FCLASSD" + return x != math.Inf(1) +} + +func isNotPosInfCmp(x float64) bool { + // riscv64:"FCLASSD" + return x <= math.MaxFloat64 +} + +func isNegInf(x float64) bool { + // riscv64:"FCLASSD" + return math.IsInf(x, -1) +} + +func isNegInfEq(x float64) bool { + // riscv64:"FCLASSD" + return x == math.Inf(-1) +} + +func isNegInfCmp(x float64) bool { + // riscv64:"FCLASSD" + return x < -math.MaxFloat64 +} + +func isNotNegInf(x float64) bool { + // riscv64:"FCLASSD" + return !math.IsInf(x, -1) +} + +func isNotNegInfEq(x float64) bool { + // riscv64:"FCLASSD" + return x != math.Inf(-1) +} + +func isNotNegInfCmp(x float64) bool { + // riscv64:"FCLASSD" + return x >= -math.MaxFloat64 +} + func fromFloat64(f64 float64) uint64 { // amd64:"MOVQ\tX.*, [^X].*" // arm64:"FMOVD\tF.*, R.*" |
