cmd/compile: intrinsify math.RoundToEven on s390x

The new RoundToEven function can be implemented as a single FIDBR
instruction on s390x.

name         old time/op  new time/op  delta
RoundToEven  5.32ns ± 1%  0.86ns ± 1%  -83.86%  (p=0.000 n=10+10)

Change-Id: Iaf597e57a0d1085961701e3c75ff4f6f6dcebb5f
Reviewed-on: https://go-review.googlesource.com/74350
Run-TryBot: Michael Munday <mike.munday@ibm.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
diff --git a/src/cmd/compile/internal/ssa/gen/genericOps.go b/src/cmd/compile/internal/ssa/gen/genericOps.go
index 0ad582b..d36910e 100644
--- a/src/cmd/compile/internal/ssa/gen/genericOps.go
+++ b/src/cmd/compile/internal/ssa/gen/genericOps.go
@@ -268,10 +268,11 @@
 	//   ±∞  → ±∞ (sign preserved)
 	//   ±0  → ±0 (sign preserved)
 	//   NaN → NaN
-	{name: "Floor", argLength: 1}, // round arg0 toward -∞
-	{name: "Ceil", argLength: 1},  // round arg0 toward +∞
-	{name: "Trunc", argLength: 1}, // round arg0 toward 0
-	{name: "Round", argLength: 1}, // round arg0 to nearest, ties away from 0
+	{name: "Floor", argLength: 1},       // round arg0 toward -∞
+	{name: "Ceil", argLength: 1},        // round arg0 toward +∞
+	{name: "Trunc", argLength: 1},       // round arg0 toward 0
+	{name: "Round", argLength: 1},       // round arg0 to nearest, ties away from 0
+	{name: "RoundToEven", argLength: 1}, // round arg0 to nearest, ties to even
 
 	// Modify the sign bit
 	{name: "Abs", argLength: 1},      // absolute value arg0