Clear upper parts of register in scalar [su]cvtf simulation
Scalar SIMD operations that write b, h, s or d registers should set the upper
parts of the destination register to zero. Fix the scvtf and ucvtf instructions
and add tests for all SISD instructions.
diff --git a/test/test-trace-reference/log-state b/test/test-trace-reference/log-state
index b495bfe..adad051 100644
--- a/test/test-trace-reference/log-state
+++ b/test/test-trace-reference/log-state
@@ -861,8 +861,8 @@
# d5: 0x3f90000000000000
# d16: 0x0000000000000000
# d15: 0x0000000000000000
-# v7: 0x00000000000000007ff000004e81442e
-# v8: 0x0000000000000000c004000000000000
+# v7: 0x0000000000000000000000004e81442e
+# v8: 0x00000000000000000000000000000000
# s29: 0x00000000
# s15: 0x49800000
# s27: 0x00000000
@@ -873,14 +873,14 @@
# d3: 0x0000000000000000
# d28: 0x41dfffffffc00000
# d27: 0x0000000000000000
-# v11: 0x0000000000000000400000004f7fe000
-# v0: 0x000000000000000043d21c00480a8294
+# v11: 0x0000000000000000000000004f7fe000
+# v0: 0x000000000000000000000000480a8294
# s20: 0x00000000
# s21: 0x00000000
# s6: 0x5f000000
# s7: 0x38ff0000
-# v19: 0x000000000000000043d21c00480a8294
-# v16: 0x0000000000000000400000004f7f2000
+# v19: 0x000000000000000000000000480a8294
+# v16: 0x0000000000000000000000004f7f2000
# v0: 0x00000000000000000000000000000000
# v27: 0x00000000000000000000000000000000
# v21: 0x00000000000000000000000000000000
@@ -890,59 +890,59 @@
# v10: 0x00000000000000003f0000007f600000
# v31: 0x495000018a83940149500000d3029400
# v10: 0x495000018a83940168a6954c14cfd693
-# v15: 0x00000000000000006328b14b89d7c527
+# v15: 0x00000000000000001f56954b89d7c527
# v27: 0x0000000000000000495000000a029400
# v25: 0x000000000000000041efffffffc00000
# v13: 0x00000000000000000000000037feffff
# v4: 0x00000000000000000000000000000000
-# v10: 0x000000000000000000000000827f4696
+# v10: 0x0000000000000000000000003ead2a96
# v10: 0x00000000000000000000000000003c7f
# v31: 0x0000000000000000000000000000ffff
# v16: 0x00000000000000000000000000000000
# v0: 0x00000000000000000000000000000000
# v31: 0x000000000000b87f000000000000ffff
-# v14: 0x000000000000000043d21c00480a8294
-# v3: 0x0000000020febf0000000000c4000000
+# v14: 0x000000000000000000000000480a8294
+# v3: 0x0000000020febf000000000000000000
# v8: 0x000000007f8000003effffffffe00000
# v22: 0x00000000000000003c7fffff00000000
-# v29: 0x00000000000000005fd2ca9e00000000
+# v29: 0x00000000000000000000ca9e00000000
# v30: 0x0000000000000000000000003c7fffff
# v12: 0x0000000000000000000037000000bbfe
# v17: 0x000000003700bbfe00007f803efeffe0
# v27: 0x00000000000000000000000000000075
# v12: 0x00000000000000000000000000000000
# v27: 0x00000000000000000000000000003c7e
-# v19: 0x00000000000000000000000000002a70
+# v19: 0x0000000000000000000000000000ca9e
# v14: 0x00000000000000000000000000003c7e
# v10: 0x00000000000000000000000000000000
# v5: 0x00000000000000000000000000000000
-# v26: 0x0000000020febf0000000000c4000000
+# v26: 0x0000000020febf000000000000000000
# v7: 0x000000000000000000000000381b0000
# v28: 0x000000000000000040dfdcffdcc00000
-# v29: 0x00000000000000005fd2ca1200000000
+# v29: 0x00000000000000000000ca1200000000
# v12: 0x0000000000000000000000000000ffff
# v18: 0x000000000000000000000000ff67ff67
# v12: 0x00000000007ebf000000000000000000
# v2: 0x0000000000000000495000008a828000
-# v8: 0x000000007f8000003effffffcc000000
+# v8: 0x000000007f8000003effffffc8000000
# v5: 0x00000000000000000000000000000000
# v9: 0x0100000008009801010000000800dc00
-# v14: 0x000000000000000000000000c4000000
+# v14: 0x00000000000000000000000000000000
# v29: 0x07070707070707070707070707070707
# v21: 0x00000000000000000000001f0000001f
# v1: 0x0000000000000000000f000f000f000f
# v27: 0x0000001f0000001f0000001f0000001f
# v19: 0x00000000000000000707070707070707
-# v15: 0x000f000f000f000f000f000f0001000f
+# v15: 0x000f000f000f000f000f000f000f000f
# v1: 0x08080808080808080808080808080808
# v27: 0x00000000000000000000001100000002
# v9: 0x00000000000000000007001000040000
-# v31: 0x0000000c0000000c0000000c0000000f
+# v31: 0x0000000c0000000c0000000c0000000c
# v14: 0x00000000000000000505050505050505
-# v6: 0x00100010001000100001001000010000
+# v6: 0x00100010001000100010001000010000
# v18: 0x00000000000000000000000000000000
# v14: 0x00000000000000000000000000000000
-# v19: 0xffffffff000000ff0000000000ffffff
+# v19: 0xffffffff000000ff00000000ffffffff
# v15: 0xffffffffffffffffff00ff00ff00ffff
# v12: 0xffffffffffffffffffffffffffffffff
# v8: 0xffffffffffffffff0000000000000000
@@ -962,11 +962,11 @@
# v22: 0xffffffffffffffffffffffffffff0000
# v28: 0x0000000000000000ffffffffffffffff
# v6: 0xffffffffffffffffffffffffffffffff
-# v25: 0x000000000000000000000000ffffffff
+# v25: 0x00000000000000000000000000000000
# v21: 0x0000000000000000ffffffffffffffff
-# v16: 0x0000000000000000ffffffff0000ffff
+# v16: 0x0000000000000000ffffffffffffffff
# v23: 0x0000000000000000ffffffffffffffff
-# v7: 0xffffffffffffffff0000000000000000
+# v7: 0xffffffffffffffffffffffff00000000
# v0: 0x00000000000000000000000000000000
# v10: 0x0000000000000000ff00ff00ffff0000
# v21: 0x0000000000000000ffffffffffffffff
@@ -982,9 +982,9 @@
# v12: 0x00000000000000000000000000000000
# v28: 0x0000000000000000000000000000ffff
# v22: 0x00000000000000000000000000000000
-# v5: 0x0000000000000000ffffffffffffffff
+# v5: 0x000000000000000000000000ffffffff
# v13: 0x00000000000000000000000000000000
-# v27: 0x0000000000000000000000ff000000ff
+# v27: 0x0000000000000000ffffffff000000ff
# v5: 0x00000000000000000000000000000000
# v22: 0x00000000000000000000000000000000
# v6: 0x00000000000000000000000000000000
@@ -995,7 +995,7 @@
# v31: 0x00000000000000000000000000000000
# v9: 0x00000000000000000000000000000000
# v7: 0x00000000000000000000000000000000
-# v11: 0x0000000000000000ffffffff00000000
+# v11: 0x0000000000000000ffffffffffff0000
# v1: 0x00000000000000000000000000000000
# v21: 0xffffffffffffffffffffffffffffffff
# v8: 0xffffffffffffffffffffffffffffffff
@@ -1016,9 +1016,9 @@
# v7: 0x0000000000000000ffffffffffffffff
# v7: 0x0000000000000000ffffffffffffffff
# v25: 0x00000000000000000000000000000000
-# v0: 0x0000000000000000ffffffff00000000
+# v0: 0x0000000000000000ffffffffffff0000
# v24: 0x00000000000000000000000000000000
-# v26: 0x0000000000000000ffffffff00000000
+# v26: 0x0000000000000000ffffffffffff0000
# v1: 0x0000000000000000ffffffffffffffff
# v28: 0x0000000000000000ffffffffffffffff
# v26: 0x00000000000000000000000000000000
@@ -5244,7 +5244,7 @@
# v9: 0x43dfe000001fe0000000000000000000
# v26: 0x000000000000000040fff00000200000
# v11: 0x00000000000000000000000000000000
-# v29: 0x7fc000007fc000000000000000000000
+# v29: 0x00000000000000000000000000000000
# v22: 0x4effe000000000004e001a4000000000
# v18: 0x4207bfc03d7f00000000000000000000
# p8<15:0>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 <- 0x~~~~~~~~~~~~~~~~