arm64/arm64asm: fix argument order in FMADD/FMSUB/FNMADD/FNMSUB

The addends in FMADD/FMSUB/FNMADD/FNMSUB should come second, in
accordance with MADD/MSUB. This CL fixes that issue.

fixes golang/go#23775

Change-Id: I139397f38ba02901cf840ed34bb0d1180e9bba36
Reviewed-on: https://go-review.googlesource.com/93336
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
diff --git a/arm64/arm64asm/plan9x.go b/arm64/arm64asm/plan9x.go
index e597276..f824883 100644
--- a/arm64/arm64asm/plan9x.go
+++ b/arm64/arm64asm/plan9x.go
@@ -189,7 +189,7 @@
 	case TBNZ, TBZ:
 		args[0], args[1], args[2] = args[2], args[0], args[1]
 
-	case MADD, MSUB, SMADDL, SMSUBL, UMADDL, UMSUBL:
+	case MADD, MSUB, SMADDL, SMSUBL, UMADDL, UMSUBL, FMADD, FMSUB, FNMADD, FNMSUB:
 		if r, ok := inst.Args[0].(Reg); ok {
 			rno := uint16(r)
 			if rno <= uint16(WZR) {
diff --git a/arm64/arm64asm/testdata/cases.txt b/arm64/arm64asm/testdata/cases.txt
index 57795dd..6070575 100644
--- a/arm64/arm64asm/testdata/cases.txt
+++ b/arm64/arm64asm/testdata/cases.txt
@@ -5146,8 +5146,8 @@
 ebfe346e|	plan9	FDIV V20.S4, V23.S4, V11.S4
 c918371e|	plan9	FDIVS F23, F6, F9
 911a7f1e|	plan9	FDIVD F31, F20, F17
-a81f0c1f|	plan9	FMADD F7, F12, F29, F8
-d0404a1f|	plan9	FMADD F16, F10, F6, F16
+a81f0c1f|	plan9	FMADD F12, F7, F29, F8
+d0404a1f|	plan9	FMADD F10, F16, F6, F16
 7ff6324e|	plan9	FMAX V18.S4, V19.S4, V31.S4
 b84b351e|	plan9	FMAXS F21, F29, F24
 d64b621e|	plan9	FMAXD F2, F30, F22
@@ -5182,8 +5182,8 @@
 7101ae9e|	plan9	FMOV V11.D[1], R17
 0e103d1e|	plan9	FMOVS $-0.75, F14
 1e50761e|	plan9	FMOVD $-18., F30
-d2b4121f|	plan9	FMSUB F13, F18, F6, F18
-0a9c4c1f|	plan9	FMSUB F7, F12, F0, F10
+d2b4121f|	plan9	FMSUB F18, F13, F6, F18
+0a9c4c1f|	plan9	FMSUB F12, F7, F0, F10
 0d99b35f|	plan9	FMULS V19.S[3], F8, F13
 a89b9b0f|	plan9	FMUL V27.S[2], V29.S2, V8.S2
 75dc376e|	plan9	FMUL V23.S4, V3.S4, V21.S4
@@ -5194,10 +5194,10 @@
 c8dc284e|	plan9	VFMULX V8.S4, V6.S4, V8.S4
 c043211e|	plan9	FNEGS F30, F0
 4742611e|	plan9	FNEGD F18, F7
-9c51251f|	plan9	FNMADD F20, F5, F12, F28
-e407771f|	plan9	FNMADD F1, F23, F31, F4
-fbfa3a1f|	plan9	FNMSUB F30, F26, F23, F27
-bbb0691f|	plan9	FNMSUB F12, F9, F5, F27
+9c51251f|	plan9	FNMADD F5, F20, F12, F28
+e407771f|	plan9	FNMADD F23, F1, F31, F4
+fbfa3a1f|	plan9	FNMSUB F26, F30, F23, F27
+bbb0691f|	plan9	FNMSUB F9, F12, F5, F27
 6a8b3f1e|	plan9	FNMULS F31, F27, F10
 1a8b751e|	plan9	FNMULD F21, F24, F26
 57d8e15e|	plan9	FRECPE F2, F23
@@ -6136,8 +6136,8 @@
 06fe3c6e|	plan9	FDIV V28.S4, V16.S4, V6.S4
 c41b201e|	plan9	FDIVS F0, F30, F4
 1618781e|	plan9	FDIVD F24, F0, F22
-507b0d1f|	plan9	FMADD F30, F13, F26, F16
-8803491f|	plan9	FMADD F0, F9, F28, F8
+507b0d1f|	plan9	FMADD F13, F30, F26, F16
+8803491f|	plan9	FMADD F9, F0, F28, F8
 75f7394e|	plan9	FMAX V25.S4, V27.S4, V21.S4
 804b3c1e|	plan9	FMAXS F28, F28, F0
 c1496c1e|	plan9	FMAXD F12, F14, F1
@@ -6172,8 +6172,8 @@
 1103ae9e|	plan9	FMOV V24.D[1], R17
 0230321e|	plan9	FMOVS $-4.25, F2
 18b0751e|	plan9	FMOVD $-14.5, F24
-92bc1b1f|	plan9	FMSUB F15, F27, F4, F18
-f8e14a1f|	plan9	FMSUB F24, F10, F15, F24
+92bc1b1f|	plan9	FMSUB F27, F15, F4, F18
+f8e14a1f|	plan9	FMSUB F10, F24, F15, F24
 ef91d35f|	plan9	FMULD V19.D[0], F15, F15
 d293c24f|	plan9	FMUL V2.D[0], V30.D2, V18.D2
 18dd2b2e|	plan9	FMUL V11.S2, V8.S2, V24.S2
@@ -6185,10 +6185,10 @@
 c8f9e06e|	plan9	FNEG V14.D2, V8.D2
 9c41211e|	plan9	FNEGS F12, F28
 c443611e|	plan9	FNEGD F30, F4
-e77f301f|	plan9	FNMADD F31, F16, F31, F7
+e77f301f|	plan9	FNMADD F16, F31, F31, F7
 9f326c1f|	plan9	FNMADD F12, F12, F20, F31
-d9e92f1f|	plan9	FNMSUB F26, F15, F14, F25
-00ad711f|	plan9	FNMSUB F11, F17, F8, F0
+d9e92f1f|	plan9	FNMSUB F15, F26, F14, F25
+00ad711f|	plan9	FNMSUB F17, F11, F8, F0
 c889211e|	plan9	FNMULS F1, F14, F8
 528b761e|	plan9	FNMULD F22, F26, F18
 01d8e15e|	plan9	FRECPE F0, F1
@@ -7136,8 +7136,8 @@
 1aff2b6e|	plan9	FDIV V11.S4, V24.S4, V26.S4
 171a391e|	plan9	FDIVS F25, F16, F23
 7d196b1e|	plan9	FDIVD F11, F11, F29
-f9721f1f|	plan9	FMADD F28, F31, F23, F25
-7070551f|	plan9	FMADD F28, F21, F3, F16
+f9721f1f|	plan9	FMADD F31, F28, F23, F25
+7070551f|	plan9	FMADD F21, F28, F3, F16
 05f7624e|	plan9	FMAX V2.D2, V24.D2, V5.D2
 88493d1e|	plan9	FMAXS F29, F12, F8
 4a496d1e|	plan9	FMAXD F13, F10, F10
@@ -7173,8 +7173,8 @@
 8300ae9e|	plan9	FMOV V4.D[1], R3
 1870331e|	plan9	FMOVS $-6.75, F24
 08507d1e|	plan9	FMOVD $-0.8125, F8
-5cbf0c1f|	plan9	FMSUB F15, F12, F26, F28
-89e3501f|	plan9	FMSUB F24, F16, F28, F9
+5cbf0c1f|	plan9	FMSUB F12, F15, F26, F28
+89e3501f|	plan9	FMSUB F16, F24, F28, F9
 3a93c95f|	plan9	FMULD V9.D[0], F25, F26
 5a90ae4f|	plan9	FMUL V14.S[1], V2.S4, V26.S4
 ba0a2f1e|	plan9	FMULS F15, F21, F26
@@ -7185,10 +7185,10 @@
 d4de7f4e|	plan9	VFMULX V31.D2, V22.D2, V20.D2
 8e41211e|	plan9	FNEGS F12, F14
 dc42611e|	plan9	FNEGD F22, F28
-cb362e1f|	plan9	FNMADD F13, F14, F22, F11
-6441791f|	plan9	FNMADD F16, F25, F11, F4
-36ed291f|	plan9	FNMSUB F27, F9, F9, F22
-35b27a1f|	plan9	FNMSUB F12, F26, F17, F21
+cb362e1f|	plan9	FNMADD F14, F13, F22, F11
+6441791f|	plan9	FNMADD F25, F16, F11, F4
+36ed291f|	plan9	FNMSUB F9, F27, F9, F22
+35b27a1f|	plan9	FNMSUB F26, F12, F17, F21
 9388301e|	plan9	FNMULS F16, F4, F19
 c088711e|	plan9	FNMULD F17, F6, F0
 e8daa15e|	plan9	FRECPE F23, F8
@@ -8130,8 +8130,8 @@
 56fd3f2e|	plan9	FDIV V31.S2, V10.S2, V22.S2
 1f182e1e|	plan9	FDIVS F14, F0, F31
 ce1b741e|	plan9	FDIVD F20, F30, F14
-0d61021f|	plan9	FMADD F24, F2, F8, F13
-03205e1f|	plan9	FMADD F8, F30, F0, F3
+0d61021f|	plan9	FMADD F2, F24, F8, F13
+03205e1f|	plan9	FMADD F30, F8, F0, F3
 72f6654e|	plan9	FMAX V5.D2, V19.D2, V18.D2
 1849281e|	plan9	FMAXS F8, F8, F24
 8e4a6e1e|	plan9	FMAXD F14, F20, F14
@@ -8164,8 +8164,8 @@
 ee02ae9e|	plan9	FMOV V23.D[1], R14
 0ff0251e|	plan9	FMOVS $15.5, F15
 16506a1e|	plan9	FMOVD $0.28125, F22
-d1c20e1f|	plan9	FMSUB F16, F14, F22, F17
-fdae491f|	plan9	FMSUB F11, F9, F23, F29
+d1c20e1f|	plan9	FMSUB F14, F16, F22, F17
+fdae491f|	plan9	FMSUB F9, F11, F23, F29
 a4989d4f|	plan9	FMUL V29.S[2], V5.S4, V4.S4
 efde706e|	plan9	FMUL V16.D2, V23.D2, V15.D2
 190a291e|	plan9	FMULS F9, F16, F25
@@ -8176,10 +8176,10 @@
 a2fba06e|	plan9	FNEG V29.S4, V2.S4
 7a40211e|	plan9	FNEGS F3, F26
 f843611e|	plan9	FNEGD F31, F24
-326b381f|	plan9	FNMADD F26, F24, F25, F18
-4b636a1f|	plan9	FNMADD F24, F10, F26, F11
-48fa201f|	plan9	FNMSUB F30, F0, F18, F8
-04d87f1f|	plan9	FNMSUB F22, F31, F0, F4
+326b381f|	plan9	FNMADD F24, F26, F25, F18
+4b636a1f|	plan9	FNMADD F10, F24, F26, F11
+48fa201f|	plan9	FNMSUB F0, F30, F18, F8
+04d87f1f|	plan9	FNMSUB F31, F22, F0, F4
 0289371e|	plan9	FNMULS F23, F8, F2
 0e8a691e|	plan9	FNMULD F9, F16, F14
 05dba15e|	plan9	FRECPE F24, F5