Fix simulation of fcvtn
The logic for fcvtn was failing to clear the top half of the vector register, so
add the missing ClearForWrite(), plus a regression test.
Reported by Yury Delendik, from https://bugzilla.mozilla.org/show_bug.cgi?id=1697846
diff --git a/test/test-trace-reference/log-state b/test/test-trace-reference/log-state
index 8113a01..b495bfe 100644
--- a/test/test-trace-reference/log-state
+++ b/test/test-trace-reference/log-state
@@ -5088,7 +5088,7 @@
# v26: 0x00000000000000000000000000000000
# v21: 0x00000000000000000000000000000000
# v11: 0x00000000000000000000000000000000
-# v8: 0x37a00000000000000000000000000000
+# v8: 0x00000000000000000000000000000000
# v24: 0x0000000000000000377f0000377f0000
# v4: 0x0000000000000000ffffffffffffffff
# v25: 0x00000000000000000000000000000000
@@ -5117,24 +5117,24 @@
# v9: 0x00000000000000000000000000000000
# v30: 0x00000000000000000000000000000000
# v19: 0x00000000000000000000000000000000
-# v15: 0x7ff00000000000007ff8000000000000
+# v15: 0x7ff80000000000007ff8000000000000
# v12: 0x00000000000000007fc000007fc00000
# v19: 0xffffffffffffffffffffffffffffffff
-# v19: 0x37a00000000000000000000000000000
+# v19: 0x00000000000000000000000000000000
# v25: 0x00000000000000007fc000007fc00000
-# v6: 0x7ff00000000000007ff8000000000000
-# v16: 0x37a0000000000000000000000180fe00
+# v6: 0x7ff80000000000007ff8000000000000
+# v16: 0x0000000000000000000000000180fe00
# v15: 0x00000000000000000000000000000000
-# v23: 0x37a0000000000000000000000180fe00
-# v6: 0x000000000000000037a0000000000000
+# v23: 0x0000000000000000000000000180fe00
+# v6: 0x00000000000000000000000000000000
# v27: 0x00000000000000000000000000000000
-# v8: 0x37a00000000000007fc000007fc00000
+# v8: 0x000000000180fe007fc000007fc00000
# v13: 0x0000000000000000ffffffff7fc00000
# v15: 0xffffffff000000000000000000000000
-# v27: 0x00000000000000000000000037a00000
+# v27: 0x00000000000000000000000000000000
# v20: 0x0000000000000000ffffffff00000000
# v18: 0x00000000000000000000000000000000
-# v9: 0x00000000ffffffff37a0000000000000
+# v9: 0x00000000ffffffff000000000180fe00
# v7: 0x0000000000000000ffffffffffffffff
# v18: 0x000000000000000000000000ffffffff
# v31: 0x00000000000000000000000000000000
@@ -5163,14 +5163,14 @@
# v19: 0x00000000000000007fc000007fc00000
# v24: 0x00000000000000000000000000000000
# v16: 0x00000000000000000000000000000000
-# v27: 0x00000000000000000000000037a00000
-# v27: 0x00000000000000000000000037a00000
+# v27: 0x00000000000000000000000000000000
+# v27: 0x00000000000000000000000000000000
# v21: 0x00000000000000000000000000000000
# v5: 0x00000000000000000000000000000000
# v18: 0x000000000000000000000000ffffffff
# v5: 0x00000000000000000000000000000000
# v3: 0x0000000000000000000000007fffffff
-# v27: 0x00000000000000000000000037a00000
+# v27: 0x00000000000000000000000000000000
# v26: 0x00000000000000007fffffff00000000
# v14: 0xbfd6000000000000bfd6000000000000
# v26: 0x00000000000000003f6800003f680000
@@ -5198,7 +5198,7 @@
# v5: 0x80000000800000008000000080000000
# v18: 0x7ff00000000000007ff0000000000000
# v10: 0x00000000000000007f8000007f800000
-# v5: 0x7f8000007f800000474c80007f800000
+# v5: 0x7f8000007f8000007f8000007f800000
# v22: 0x40000000000000004000000000000000
# v31: 0x00000000000000004000000040000000
# v18: 0x40000000400000004000000040000000
@@ -5795,9 +5795,9 @@
# z24<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
# ║ ╙─ 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
# ╙───────────────── 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
-# z24<127:0>: 0x0000000000000000000000ff00000000
-# z25<127:0>: 0xa000000000000000000000ffc0000000
-# z26<127:0>: 0x3700000000000000000000007f000000
+# z24<127:0>: 0x00000000fe000000000000ff00000000
+# z25<127:0>: 0x0000000080000000000000ffc0000000
+# z26<127:0>: 0x0000000001000000000000007f000000
# ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
# ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
# ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
@@ -5808,10 +5808,10 @@
# ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
# ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
# ║ ║ ║ ║ ╙───────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
-# ║ ║ ║ ╙─────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+# ║ ║ ║ ╙─────────────────────── 0x01'80'fe <- 0x~~~~~~~~~~~~~~~~
# ║ ║ ╙───────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
# ║ ╙───────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
-# ╙─────────────────────────────── 0x37'a0'00 <- 0x~~~~~~~~~~~~~~~~
+# ╙─────────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
# z24<255:128>: 0x00000000000000000000000000000000
# z25<255:128>: 0x00000000000000000000000000000000
# z26<255:128>: 0x00000000000000000000000000000000
@@ -5936,11 +5936,11 @@
# ╙───────────────────────────── 0xedec'ebea'e9e8 <- 0x~~~~~~~~~~~~~~~~
# z26<127:0>: 0x00000000000000000000ffff00000000 (0.000, 0.000, 9.183e-41, 0.000)
# z27<127:0>: 0x00000000000000007fff000000000000 (0.000, 0.000, 9.183e-41, 0.000)
-# z28<127:0>: 0x37a0000000000000000000007fc00000 (0.000, 0.000, 9.183e-41, 0.000)
+# z28<127:0>: 0x000000000180fe00000000007fc00000 (0.000, 0.000, 9.183e-41, 0.000)
# ║ ║ ║ ╙─ 0x7fc00000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
# ║ ║ ╙───────── 0x00000000'7fff0000'0000ffff <- 0x~~~~~~~~~~~~~~~~
-# ║ ╙───────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
-# ╙───────────────────────── 0x37a00000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+# ║ ╙───────────────── 0x0180fe00'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+# ╙───────────────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
# z26<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
# z27<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
# z28<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
@@ -5970,10 +5970,10 @@
# ║ ╙───────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
# ╙───────────────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
# z27<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
-# z28<127:0>: 0x00000000000000000000ffff7fc00000 (0.000, 0.000)
-# z29<127:0>: 0x37a0000000000000000000007fff0000 (0.000, 0.000)
+# z28<127:0>: 0x000000000180fe000000ffff7fc00000 (0.000, 0.000)
+# z29<127:0>: 0x0000000000000000000000007fff0000 (0.000, 0.000)
# ║ ╙─ 0x000000007fff0000'0000ffff7fc00000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
-# ╙───────────────── 0x37a0000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+# ╙───────────────── 0x0000000000000000'000000000180fe00'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
# z27<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
# z28<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
# z29<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)