Added fp regtest
 - needed some hackery to get around VEX's loss of accuracy.

------------------------------
Added test for fsqrt (fp square root)

Enabled stfs(u)(x) (fp single-precision stores)
 - VEX implementation not great: ends up rounding twice, losing
accuracy, but is good enough for this test's small fp argument array.

Changed fp arg setup
 - no denormals (for VEX inaccuracy)

All fp tests
 - don't print CR, XER flags, as VEX doesn't set them.

3 arg fp arith tests (fp 'multiply and add' etc)
 - no 'special' fp vals (for VEX inaccuracy)
 - zap lo byte (for VEX inaccuracy)

fctiw, fctiwz (fp convert to int)
 - zap high 32bits of result (is undefined)




git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5344 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/none/tests/ppc32/Makefile.am b/none/tests/ppc32/Makefile.am
index 19adbe7..23314d9 100644
--- a/none/tests/ppc32/Makefile.am
+++ b/none/tests/ppc32/Makefile.am
@@ -4,6 +4,7 @@
 EXTRA_DIST = $(noinst_SCRIPTS) \
 	lsw.stderr.exp lsw.stdout.exp lsw.vgtest \
 	jm-int.stderr.exp jm-int.stdout.exp jm-int.vgtest \
+	jm-fp.stderr.exp jm-fp.stdout.exp jm-fp.vgtest \
 	jm-vmx.stderr.exp   jm-vmx.stdout.exp   jm-vmx.vgtest \
 	testVMX.stderr.exp  testVMX.stdout.exp  testVMX.vgtest
 
diff --git a/none/tests/ppc32/jm-fp.stderr.exp b/none/tests/ppc32/jm-fp.stderr.exp
new file mode 100644
index 0000000..139597f
--- /dev/null
+++ b/none/tests/ppc32/jm-fp.stderr.exp
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/ppc32/jm-fp.stdout.exp b/none/tests/ppc32/jm-fp.stdout.exp
new file mode 100644
index 0000000..144370d
--- /dev/null
+++ b/none/tests/ppc32/jm-fp.stdout.exp
@@ -0,0 +1,1363 @@
+PPC floating point arith insns with three args:
+        fsel 0010000000000001, 0010000000000001, 0010000000000001 => 0010000000000000
+        fsel 0010000000000001, 0010000000000001, bfe00094e0000359 => 0010000000000000
+        fsel 0010000000000001, 80100094e0000359, 0010000000000001 => 80100094e0000300
+        fsel 0010000000000001, 80100094e0000359, bfe00094e0000359 => 80100094e0000300
+        fsel 3fe00094e0000359, 0010000000000001, 0010000000000001 => 0010000000000000
+        fsel 3fe00094e0000359, 0010000000000001, bfe00094e0000359 => 0010000000000000
+        fsel 3fe00094e0000359, 80100094e0000359, 0010000000000001 => 80100094e0000300
+        fsel 3fe00094e0000359, 80100094e0000359, bfe00094e0000359 => 80100094e0000300
+        fsel bfe0000000000001, 0010000000000001, 0010000000000001 => 0010000000000000
+        fsel bfe0000000000001, 0010000000000001, bfe00094e0000359 => bfe00094e0000300
+        fsel bfe0000000000001, 80100094e0000359, 0010000000000001 => 0010000000000000
+        fsel bfe0000000000001, 80100094e0000359, bfe00094e0000359 => bfe00094e0000300
+
+       fmadd 0010000000000001, 0010000000000001, 0010000000000001 => 0010000000000000
+       fmadd 0010000000000001, 0010000000000001, bfe00094e0000359 => bfe00094e0000300
+       fmadd 0010000000000001, 80100094e0000359, 0010000000000001 => 0010000000000000
+       fmadd 0010000000000001, 80100094e0000359, bfe00094e0000359 => bfe00094e0000300
+       fmadd 3fe00094e0000359, 0010000000000001, 0010000000000001 => 0018004a70000100
+       fmadd 3fe00094e0000359, 0010000000000001, bfe00094e0000359 => bfe00094e0000300
+       fmadd 3fe00094e0000359, 80100094e0000359, 0010000000000001 => 0007ff6b1d4b5e00
+       fmadd 3fe00094e0000359, 80100094e0000359, bfe00094e0000359 => bfe00094e0000300
+       fmadd bfe0000000000001, 0010000000000001, 0010000000000001 => 0008000000000000
+       fmadd bfe0000000000001, 0010000000000001, bfe00094e0000359 => bfe00094e0000300
+       fmadd bfe0000000000001, 80100094e0000359, 0010000000000001 => 0018004a70000100
+       fmadd bfe0000000000001, 80100094e0000359, bfe00094e0000359 => bfe00094e0000300
+
+      fmadds 0010000000000001, 0010000000000001, 0010000000000001 => 0000000000000000
+      fmadds 0010000000000001, 0010000000000001, bfe00094e0000359 => bfe00094e0000000
+      fmadds 0010000000000001, 80100094e0000359, 0010000000000001 => 0000000000000000
+      fmadds 0010000000000001, 80100094e0000359, bfe00094e0000359 => bfe00094e0000000
+      fmadds 3fe00094e0000359, 0010000000000001, 0010000000000001 => 0000000000000000
+      fmadds 3fe00094e0000359, 0010000000000001, bfe00094e0000359 => bfe00094e0000000
+      fmadds 3fe00094e0000359, 80100094e0000359, 0010000000000001 => 0000000000000000
+      fmadds 3fe00094e0000359, 80100094e0000359, bfe00094e0000359 => bfe00094e0000000
+      fmadds bfe0000000000001, 0010000000000001, 0010000000000001 => 0000000000000000
+      fmadds bfe0000000000001, 0010000000000001, bfe00094e0000359 => bfe00094e0000000
+      fmadds bfe0000000000001, 80100094e0000359, 0010000000000001 => 0000000000000000
+      fmadds bfe0000000000001, 80100094e0000359, bfe00094e0000359 => bfe00094e0000000
+
+       fmsub 0010000000000001, 0010000000000001, 0010000000000001 => 8010000000000000
+       fmsub 0010000000000001, 0010000000000001, bfe00094e0000359 => 3fe00094e0000300
+       fmsub 0010000000000001, 80100094e0000359, 0010000000000001 => 8010000000000000
+       fmsub 0010000000000001, 80100094e0000359, bfe00094e0000359 => 3fe00094e0000300
+       fmsub 3fe00094e0000359, 0010000000000001, 0010000000000001 => 8007ffb58ffffe00
+       fmsub 3fe00094e0000359, 0010000000000001, bfe00094e0000359 => 3fe00094e0000300
+       fmsub 3fe00094e0000359, 80100094e0000359, 0010000000000001 => 80180094e2b4a100
+       fmsub 3fe00094e0000359, 80100094e0000359, bfe00094e0000359 => 3fe00094e0000300
+       fmsub bfe0000000000001, 0010000000000001, 0010000000000001 => 8018000000000000
+       fmsub bfe0000000000001, 0010000000000001, bfe00094e0000359 => 3fe00094e0000300
+       fmsub bfe0000000000001, 80100094e0000359, 0010000000000001 => 8007ffb58ffffe00
+       fmsub bfe0000000000001, 80100094e0000359, bfe00094e0000359 => 3fe00094e0000300
+
+      fmsubs 0010000000000001, 0010000000000001, 0010000000000001 => 8000000000000000
+      fmsubs 0010000000000001, 0010000000000001, bfe00094e0000359 => 3fe00094e0000000
+      fmsubs 0010000000000001, 80100094e0000359, 0010000000000001 => 8000000000000000
+      fmsubs 0010000000000001, 80100094e0000359, bfe00094e0000359 => 3fe00094e0000000
+      fmsubs 3fe00094e0000359, 0010000000000001, 0010000000000001 => 8000000000000000
+      fmsubs 3fe00094e0000359, 0010000000000001, bfe00094e0000359 => 3fe00094e0000000
+      fmsubs 3fe00094e0000359, 80100094e0000359, 0010000000000001 => 8000000000000000
+      fmsubs 3fe00094e0000359, 80100094e0000359, bfe00094e0000359 => 3fe00094e0000000
+      fmsubs bfe0000000000001, 0010000000000001, 0010000000000001 => 8000000000000000
+      fmsubs bfe0000000000001, 0010000000000001, bfe00094e0000359 => 3fe00094e0000000
+      fmsubs bfe0000000000001, 80100094e0000359, 0010000000000001 => 8000000000000000
+      fmsubs bfe0000000000001, 80100094e0000359, bfe00094e0000359 => 3fe00094e0000000
+
+      fnmadd 0010000000000001, 0010000000000001, 0010000000000001 => 8010000000000000
+      fnmadd 0010000000000001, 0010000000000001, bfe00094e0000359 => 3fe00094e0000300
+      fnmadd 0010000000000001, 80100094e0000359, 0010000000000001 => 8010000000000000
+      fnmadd 0010000000000001, 80100094e0000359, bfe00094e0000359 => 3fe00094e0000300
+      fnmadd 3fe00094e0000359, 0010000000000001, 0010000000000001 => 8018004a70000100
+      fnmadd 3fe00094e0000359, 0010000000000001, bfe00094e0000359 => 3fe00094e0000300
+      fnmadd 3fe00094e0000359, 80100094e0000359, 0010000000000001 => 8007ff6b1d4b5e00
+      fnmadd 3fe00094e0000359, 80100094e0000359, bfe00094e0000359 => 3fe00094e0000300
+      fnmadd bfe0000000000001, 0010000000000001, 0010000000000001 => 8008000000000000
+      fnmadd bfe0000000000001, 0010000000000001, bfe00094e0000359 => 3fe00094e0000300
+      fnmadd bfe0000000000001, 80100094e0000359, 0010000000000001 => 8018004a70000100
+      fnmadd bfe0000000000001, 80100094e0000359, bfe00094e0000359 => 3fe00094e0000300
+
+     fnmadds 0010000000000001, 0010000000000001, 0010000000000001 => 8000000000000000
+     fnmadds 0010000000000001, 0010000000000001, bfe00094e0000359 => 3fe00094e0000000
+     fnmadds 0010000000000001, 80100094e0000359, 0010000000000001 => 8000000000000000
+     fnmadds 0010000000000001, 80100094e0000359, bfe00094e0000359 => 3fe00094e0000000
+     fnmadds 3fe00094e0000359, 0010000000000001, 0010000000000001 => 8000000000000000
+     fnmadds 3fe00094e0000359, 0010000000000001, bfe00094e0000359 => 3fe00094e0000000
+     fnmadds 3fe00094e0000359, 80100094e0000359, 0010000000000001 => 8000000000000000
+     fnmadds 3fe00094e0000359, 80100094e0000359, bfe00094e0000359 => 3fe00094e0000000
+     fnmadds bfe0000000000001, 0010000000000001, 0010000000000001 => 8000000000000000
+     fnmadds bfe0000000000001, 0010000000000001, bfe00094e0000359 => 3fe00094e0000000
+     fnmadds bfe0000000000001, 80100094e0000359, 0010000000000001 => 8000000000000000
+     fnmadds bfe0000000000001, 80100094e0000359, bfe00094e0000359 => 3fe00094e0000000
+
+      fnmsub 0010000000000001, 0010000000000001, 0010000000000001 => 0010000000000000
+      fnmsub 0010000000000001, 0010000000000001, bfe00094e0000359 => bfe00094e0000300
+      fnmsub 0010000000000001, 80100094e0000359, 0010000000000001 => 0010000000000000
+      fnmsub 0010000000000001, 80100094e0000359, bfe00094e0000359 => bfe00094e0000300
+      fnmsub 3fe00094e0000359, 0010000000000001, 0010000000000001 => 0007ffb58ffffe00
+      fnmsub 3fe00094e0000359, 0010000000000001, bfe00094e0000359 => bfe00094e0000300
+      fnmsub 3fe00094e0000359, 80100094e0000359, 0010000000000001 => 00180094e2b4a100
+      fnmsub 3fe00094e0000359, 80100094e0000359, bfe00094e0000359 => bfe00094e0000300
+      fnmsub bfe0000000000001, 0010000000000001, 0010000000000001 => 0018000000000000
+      fnmsub bfe0000000000001, 0010000000000001, bfe00094e0000359 => bfe00094e0000300
+      fnmsub bfe0000000000001, 80100094e0000359, 0010000000000001 => 0007ffb58ffffe00
+      fnmsub bfe0000000000001, 80100094e0000359, bfe00094e0000359 => bfe00094e0000300
+
+     fnmsubs 0010000000000001, 0010000000000001, 0010000000000001 => 0000000000000000
+     fnmsubs 0010000000000001, 0010000000000001, bfe00094e0000359 => bfe00094e0000000
+     fnmsubs 0010000000000001, 80100094e0000359, 0010000000000001 => 0000000000000000
+     fnmsubs 0010000000000001, 80100094e0000359, bfe00094e0000359 => bfe00094e0000000
+     fnmsubs 3fe00094e0000359, 0010000000000001, 0010000000000001 => 0000000000000000
+     fnmsubs 3fe00094e0000359, 0010000000000001, bfe00094e0000359 => bfe00094e0000000
+     fnmsubs 3fe00094e0000359, 80100094e0000359, 0010000000000001 => 0000000000000000
+     fnmsubs 3fe00094e0000359, 80100094e0000359, bfe00094e0000359 => bfe00094e0000000
+     fnmsubs bfe0000000000001, 0010000000000001, 0010000000000001 => 0000000000000000
+     fnmsubs bfe0000000000001, 0010000000000001, bfe00094e0000359 => bfe00094e0000000
+     fnmsubs bfe0000000000001, 80100094e0000359, 0010000000000001 => 0000000000000000
+     fnmsubs bfe0000000000001, 80100094e0000359, bfe00094e0000359 => bfe00094e0000000
+
+PPC floating point arith insns
+    with three args with flags update:
+       fsel. 0010000000000001, 0010000000000001, 0010000000000001 => 0010000000000000
+       fsel. 0010000000000001, 0010000000000001, bfe00094e0000359 => 0010000000000000
+       fsel. 0010000000000001, 80100094e0000359, 0010000000000001 => 80100094e0000300
+       fsel. 0010000000000001, 80100094e0000359, bfe00094e0000359 => 80100094e0000300
+       fsel. 3fe00094e0000359, 0010000000000001, 0010000000000001 => 0010000000000000
+       fsel. 3fe00094e0000359, 0010000000000001, bfe00094e0000359 => 0010000000000000
+       fsel. 3fe00094e0000359, 80100094e0000359, 0010000000000001 => 80100094e0000300
+       fsel. 3fe00094e0000359, 80100094e0000359, bfe00094e0000359 => 80100094e0000300
+       fsel. bfe0000000000001, 0010000000000001, 0010000000000001 => 0010000000000000
+       fsel. bfe0000000000001, 0010000000000001, bfe00094e0000359 => bfe00094e0000300
+       fsel. bfe0000000000001, 80100094e0000359, 0010000000000001 => 0010000000000000
+       fsel. bfe0000000000001, 80100094e0000359, bfe00094e0000359 => bfe00094e0000300
+
+      fmadd. 0010000000000001, 0010000000000001, 0010000000000001 => 0010000000000000
+      fmadd. 0010000000000001, 0010000000000001, bfe00094e0000359 => bfe00094e0000300
+      fmadd. 0010000000000001, 80100094e0000359, 0010000000000001 => 0010000000000000
+      fmadd. 0010000000000001, 80100094e0000359, bfe00094e0000359 => bfe00094e0000300
+      fmadd. 3fe00094e0000359, 0010000000000001, 0010000000000001 => 0018004a70000100
+      fmadd. 3fe00094e0000359, 0010000000000001, bfe00094e0000359 => bfe00094e0000300
+      fmadd. 3fe00094e0000359, 80100094e0000359, 0010000000000001 => 0007ff6b1d4b5e00
+      fmadd. 3fe00094e0000359, 80100094e0000359, bfe00094e0000359 => bfe00094e0000300
+      fmadd. bfe0000000000001, 0010000000000001, 0010000000000001 => 0008000000000000
+      fmadd. bfe0000000000001, 0010000000000001, bfe00094e0000359 => bfe00094e0000300
+      fmadd. bfe0000000000001, 80100094e0000359, 0010000000000001 => 0018004a70000100
+      fmadd. bfe0000000000001, 80100094e0000359, bfe00094e0000359 => bfe00094e0000300
+
+     fmadds. 0010000000000001, 0010000000000001, 0010000000000001 => 0000000000000000
+     fmadds. 0010000000000001, 0010000000000001, bfe00094e0000359 => bfe00094e0000000
+     fmadds. 0010000000000001, 80100094e0000359, 0010000000000001 => 0000000000000000
+     fmadds. 0010000000000001, 80100094e0000359, bfe00094e0000359 => bfe00094e0000000
+     fmadds. 3fe00094e0000359, 0010000000000001, 0010000000000001 => 0000000000000000
+     fmadds. 3fe00094e0000359, 0010000000000001, bfe00094e0000359 => bfe00094e0000000
+     fmadds. 3fe00094e0000359, 80100094e0000359, 0010000000000001 => 0000000000000000
+     fmadds. 3fe00094e0000359, 80100094e0000359, bfe00094e0000359 => bfe00094e0000000
+     fmadds. bfe0000000000001, 0010000000000001, 0010000000000001 => 0000000000000000
+     fmadds. bfe0000000000001, 0010000000000001, bfe00094e0000359 => bfe00094e0000000
+     fmadds. bfe0000000000001, 80100094e0000359, 0010000000000001 => 0000000000000000
+     fmadds. bfe0000000000001, 80100094e0000359, bfe00094e0000359 => bfe00094e0000000
+
+      fmsub. 0010000000000001, 0010000000000001, 0010000000000001 => 8010000000000000
+      fmsub. 0010000000000001, 0010000000000001, bfe00094e0000359 => 3fe00094e0000300
+      fmsub. 0010000000000001, 80100094e0000359, 0010000000000001 => 8010000000000000
+      fmsub. 0010000000000001, 80100094e0000359, bfe00094e0000359 => 3fe00094e0000300
+      fmsub. 3fe00094e0000359, 0010000000000001, 0010000000000001 => 8007ffb58ffffe00
+      fmsub. 3fe00094e0000359, 0010000000000001, bfe00094e0000359 => 3fe00094e0000300
+      fmsub. 3fe00094e0000359, 80100094e0000359, 0010000000000001 => 80180094e2b4a100
+      fmsub. 3fe00094e0000359, 80100094e0000359, bfe00094e0000359 => 3fe00094e0000300
+      fmsub. bfe0000000000001, 0010000000000001, 0010000000000001 => 8018000000000000
+      fmsub. bfe0000000000001, 0010000000000001, bfe00094e0000359 => 3fe00094e0000300
+      fmsub. bfe0000000000001, 80100094e0000359, 0010000000000001 => 8007ffb58ffffe00
+      fmsub. bfe0000000000001, 80100094e0000359, bfe00094e0000359 => 3fe00094e0000300
+
+     fmsubs. 0010000000000001, 0010000000000001, 0010000000000001 => 8000000000000000
+     fmsubs. 0010000000000001, 0010000000000001, bfe00094e0000359 => 3fe00094e0000000
+     fmsubs. 0010000000000001, 80100094e0000359, 0010000000000001 => 8000000000000000
+     fmsubs. 0010000000000001, 80100094e0000359, bfe00094e0000359 => 3fe00094e0000000
+     fmsubs. 3fe00094e0000359, 0010000000000001, 0010000000000001 => 8000000000000000
+     fmsubs. 3fe00094e0000359, 0010000000000001, bfe00094e0000359 => 3fe00094e0000000
+     fmsubs. 3fe00094e0000359, 80100094e0000359, 0010000000000001 => 8000000000000000
+     fmsubs. 3fe00094e0000359, 80100094e0000359, bfe00094e0000359 => 3fe00094e0000000
+     fmsubs. bfe0000000000001, 0010000000000001, 0010000000000001 => 8000000000000000
+     fmsubs. bfe0000000000001, 0010000000000001, bfe00094e0000359 => 3fe00094e0000000
+     fmsubs. bfe0000000000001, 80100094e0000359, 0010000000000001 => 8000000000000000
+     fmsubs. bfe0000000000001, 80100094e0000359, bfe00094e0000359 => 3fe00094e0000000
+
+     fnmadd. 0010000000000001, 0010000000000001, 0010000000000001 => 8010000000000000
+     fnmadd. 0010000000000001, 0010000000000001, bfe00094e0000359 => 3fe00094e0000300
+     fnmadd. 0010000000000001, 80100094e0000359, 0010000000000001 => 8010000000000000
+     fnmadd. 0010000000000001, 80100094e0000359, bfe00094e0000359 => 3fe00094e0000300
+     fnmadd. 3fe00094e0000359, 0010000000000001, 0010000000000001 => 8018004a70000100
+     fnmadd. 3fe00094e0000359, 0010000000000001, bfe00094e0000359 => 3fe00094e0000300
+     fnmadd. 3fe00094e0000359, 80100094e0000359, 0010000000000001 => 8007ff6b1d4b5e00
+     fnmadd. 3fe00094e0000359, 80100094e0000359, bfe00094e0000359 => 3fe00094e0000300
+     fnmadd. bfe0000000000001, 0010000000000001, 0010000000000001 => 8008000000000000
+     fnmadd. bfe0000000000001, 0010000000000001, bfe00094e0000359 => 3fe00094e0000300
+     fnmadd. bfe0000000000001, 80100094e0000359, 0010000000000001 => 8018004a70000100
+     fnmadd. bfe0000000000001, 80100094e0000359, bfe00094e0000359 => 3fe00094e0000300
+
+    fnmadds. 0010000000000001, 0010000000000001, 0010000000000001 => 8000000000000000
+    fnmadds. 0010000000000001, 0010000000000001, bfe00094e0000359 => 3fe00094e0000000
+    fnmadds. 0010000000000001, 80100094e0000359, 0010000000000001 => 8000000000000000
+    fnmadds. 0010000000000001, 80100094e0000359, bfe00094e0000359 => 3fe00094e0000000
+    fnmadds. 3fe00094e0000359, 0010000000000001, 0010000000000001 => 8000000000000000
+    fnmadds. 3fe00094e0000359, 0010000000000001, bfe00094e0000359 => 3fe00094e0000000
+    fnmadds. 3fe00094e0000359, 80100094e0000359, 0010000000000001 => 8000000000000000
+    fnmadds. 3fe00094e0000359, 80100094e0000359, bfe00094e0000359 => 3fe00094e0000000
+    fnmadds. bfe0000000000001, 0010000000000001, 0010000000000001 => 8000000000000000
+    fnmadds. bfe0000000000001, 0010000000000001, bfe00094e0000359 => 3fe00094e0000000
+    fnmadds. bfe0000000000001, 80100094e0000359, 0010000000000001 => 8000000000000000
+    fnmadds. bfe0000000000001, 80100094e0000359, bfe00094e0000359 => 3fe00094e0000000
+
+     fnmsub. 0010000000000001, 0010000000000001, 0010000000000001 => 0010000000000000
+     fnmsub. 0010000000000001, 0010000000000001, bfe00094e0000359 => bfe00094e0000300
+     fnmsub. 0010000000000001, 80100094e0000359, 0010000000000001 => 0010000000000000
+     fnmsub. 0010000000000001, 80100094e0000359, bfe00094e0000359 => bfe00094e0000300
+     fnmsub. 3fe00094e0000359, 0010000000000001, 0010000000000001 => 0007ffb58ffffe00
+     fnmsub. 3fe00094e0000359, 0010000000000001, bfe00094e0000359 => bfe00094e0000300
+     fnmsub. 3fe00094e0000359, 80100094e0000359, 0010000000000001 => 00180094e2b4a100
+     fnmsub. 3fe00094e0000359, 80100094e0000359, bfe00094e0000359 => bfe00094e0000300
+     fnmsub. bfe0000000000001, 0010000000000001, 0010000000000001 => 0018000000000000
+     fnmsub. bfe0000000000001, 0010000000000001, bfe00094e0000359 => bfe00094e0000300
+     fnmsub. bfe0000000000001, 80100094e0000359, 0010000000000001 => 0007ffb58ffffe00
+     fnmsub. bfe0000000000001, 80100094e0000359, bfe00094e0000359 => bfe00094e0000300
+
+    fnmsubs. 0010000000000001, 0010000000000001, 0010000000000001 => 0000000000000000
+    fnmsubs. 0010000000000001, 0010000000000001, bfe00094e0000359 => bfe00094e0000000
+    fnmsubs. 0010000000000001, 80100094e0000359, 0010000000000001 => 0000000000000000
+    fnmsubs. 0010000000000001, 80100094e0000359, bfe00094e0000359 => bfe00094e0000000
+    fnmsubs. 3fe00094e0000359, 0010000000000001, 0010000000000001 => 0000000000000000
+    fnmsubs. 3fe00094e0000359, 0010000000000001, bfe00094e0000359 => bfe00094e0000000
+    fnmsubs. 3fe00094e0000359, 80100094e0000359, 0010000000000001 => 0000000000000000
+    fnmsubs. 3fe00094e0000359, 80100094e0000359, bfe00094e0000359 => bfe00094e0000000
+    fnmsubs. bfe0000000000001, 0010000000000001, 0010000000000001 => 0000000000000000
+    fnmsubs. bfe0000000000001, 0010000000000001, bfe00094e0000359 => bfe00094e0000000
+    fnmsubs. bfe0000000000001, 80100094e0000359, 0010000000000001 => 0000000000000000
+    fnmsubs. bfe0000000000001, 80100094e0000359, bfe00094e0000359 => bfe00094e0000000
+
+PPC floating point arith insns with two args:
+        fadd 0010000000000001, 0010000000000001 => 0020000000000001
+        fadd 0010000000000001, 80100094e0000359 => 80000094e0000358
+        fadd 0010000000000001, 7ff0000000000000 => 7ff0000000000000
+        fadd 0010000000000001, fff8000000000000 => fff8000000000000
+        fadd 3fe00094e0000359, 0010000000000001 => 3fe00094e0000359
+        fadd 3fe00094e0000359, 80100094e0000359 => 3fe00094e0000359
+        fadd 3fe00094e0000359, 7ff0000000000000 => 7ff0000000000000
+        fadd 3fe00094e0000359, fff8000000000000 => fff8000000000000
+        fadd bfe0000000000001, 0010000000000001 => bfe0000000000001
+        fadd bfe0000000000001, 80100094e0000359 => bfe0000000000001
+        fadd bfe0000000000001, 7ff0000000000000 => 7ff0000000000000
+        fadd bfe0000000000001, fff8000000000000 => fff8000000000000
+        fadd 8000000000000000, 0010000000000001 => 0010000000000001
+        fadd 8000000000000000, 80100094e0000359 => 80100094e0000359
+        fadd 8000000000000000, 7ff0000000000000 => 7ff0000000000000
+        fadd 8000000000000000, fff8000000000000 => fff8000000000000
+        fadd 7ff7ffffffffffff, 0010000000000001 => 7fffffffffffffff
+        fadd 7ff7ffffffffffff, 80100094e0000359 => 7fffffffffffffff
+        fadd 7ff7ffffffffffff, 7ff0000000000000 => 7fffffffffffffff
+        fadd 7ff7ffffffffffff, fff8000000000000 => 7fffffffffffffff
+        fadd fff8000000000000, 0010000000000001 => fff8000000000000
+        fadd fff8000000000000, 80100094e0000359 => fff8000000000000
+        fadd fff8000000000000, 7ff0000000000000 => fff8000000000000
+        fadd fff8000000000000, fff8000000000000 => fff8000000000000
+
+       fadds 0010000000000001, 0010000000000001 => 0000000000000000
+       fadds 0010000000000001, 80100094e0000359 => 8000000000000000
+       fadds 0010000000000001, 7ff0000000000000 => 7ff0000000000000
+       fadds 0010000000000001, fff8000000000000 => fff8000000000000
+       fadds 3fe00094e0000359, 0010000000000001 => 3fe00094e0000000
+       fadds 3fe00094e0000359, 80100094e0000359 => 3fe00094e0000000
+       fadds 3fe00094e0000359, 7ff0000000000000 => 7ff0000000000000
+       fadds 3fe00094e0000359, fff8000000000000 => fff8000000000000
+       fadds bfe0000000000001, 0010000000000001 => bfe0000000000000
+       fadds bfe0000000000001, 80100094e0000359 => bfe0000000000000
+       fadds bfe0000000000001, 7ff0000000000000 => 7ff0000000000000
+       fadds bfe0000000000001, fff8000000000000 => fff8000000000000
+       fadds 8000000000000000, 0010000000000001 => 0000000000000000
+       fadds 8000000000000000, 80100094e0000359 => 8000000000000000
+       fadds 8000000000000000, 7ff0000000000000 => 7ff0000000000000
+       fadds 8000000000000000, fff8000000000000 => fff8000000000000
+       fadds 7ff7ffffffffffff, 0010000000000001 => 7fffffffe0000000
+       fadds 7ff7ffffffffffff, 80100094e0000359 => 7fffffffe0000000
+       fadds 7ff7ffffffffffff, 7ff0000000000000 => 7fffffffe0000000
+       fadds 7ff7ffffffffffff, fff8000000000000 => 7fffffffe0000000
+       fadds fff8000000000000, 0010000000000001 => fff8000000000000
+       fadds fff8000000000000, 80100094e0000359 => fff8000000000000
+       fadds fff8000000000000, 7ff0000000000000 => fff8000000000000
+       fadds fff8000000000000, fff8000000000000 => fff8000000000000
+
+        fsub 0010000000000001, 0010000000000001 => 0000000000000000
+        fsub 0010000000000001, 80100094e0000359 => 0020004a700001ad
+        fsub 0010000000000001, 7ff0000000000000 => fff0000000000000
+        fsub 0010000000000001, fff8000000000000 => fff8000000000000
+        fsub 3fe00094e0000359, 0010000000000001 => 3fe00094e0000359
+        fsub 3fe00094e0000359, 80100094e0000359 => 3fe00094e0000359
+        fsub 3fe00094e0000359, 7ff0000000000000 => fff0000000000000
+        fsub 3fe00094e0000359, fff8000000000000 => fff8000000000000
+        fsub bfe0000000000001, 0010000000000001 => bfe0000000000001
+        fsub bfe0000000000001, 80100094e0000359 => bfe0000000000001
+        fsub bfe0000000000001, 7ff0000000000000 => fff0000000000000
+        fsub bfe0000000000001, fff8000000000000 => fff8000000000000
+        fsub 8000000000000000, 0010000000000001 => 8010000000000001
+        fsub 8000000000000000, 80100094e0000359 => 00100094e0000359
+        fsub 8000000000000000, 7ff0000000000000 => fff0000000000000
+        fsub 8000000000000000, fff8000000000000 => fff8000000000000
+        fsub 7ff7ffffffffffff, 0010000000000001 => 7fffffffffffffff
+        fsub 7ff7ffffffffffff, 80100094e0000359 => 7fffffffffffffff
+        fsub 7ff7ffffffffffff, 7ff0000000000000 => 7fffffffffffffff
+        fsub 7ff7ffffffffffff, fff8000000000000 => 7fffffffffffffff
+        fsub fff8000000000000, 0010000000000001 => fff8000000000000
+        fsub fff8000000000000, 80100094e0000359 => fff8000000000000
+        fsub fff8000000000000, 7ff0000000000000 => fff8000000000000
+        fsub fff8000000000000, fff8000000000000 => fff8000000000000
+
+       fsubs 0010000000000001, 0010000000000001 => 0000000000000000
+       fsubs 0010000000000001, 80100094e0000359 => 0000000000000000
+       fsubs 0010000000000001, 7ff0000000000000 => fff0000000000000
+       fsubs 0010000000000001, fff8000000000000 => fff8000000000000
+       fsubs 3fe00094e0000359, 0010000000000001 => 3fe00094e0000000
+       fsubs 3fe00094e0000359, 80100094e0000359 => 3fe00094e0000000
+       fsubs 3fe00094e0000359, 7ff0000000000000 => fff0000000000000
+       fsubs 3fe00094e0000359, fff8000000000000 => fff8000000000000
+       fsubs bfe0000000000001, 0010000000000001 => bfe0000000000000
+       fsubs bfe0000000000001, 80100094e0000359 => bfe0000000000000
+       fsubs bfe0000000000001, 7ff0000000000000 => fff0000000000000
+       fsubs bfe0000000000001, fff8000000000000 => fff8000000000000
+       fsubs 8000000000000000, 0010000000000001 => 8000000000000000
+       fsubs 8000000000000000, 80100094e0000359 => 0000000000000000
+       fsubs 8000000000000000, 7ff0000000000000 => fff0000000000000
+       fsubs 8000000000000000, fff8000000000000 => fff8000000000000
+       fsubs 7ff7ffffffffffff, 0010000000000001 => 7fffffffe0000000
+       fsubs 7ff7ffffffffffff, 80100094e0000359 => 7fffffffe0000000
+       fsubs 7ff7ffffffffffff, 7ff0000000000000 => 7fffffffe0000000
+       fsubs 7ff7ffffffffffff, fff8000000000000 => 7fffffffe0000000
+       fsubs fff8000000000000, 0010000000000001 => fff8000000000000
+       fsubs fff8000000000000, 80100094e0000359 => fff8000000000000
+       fsubs fff8000000000000, 7ff0000000000000 => fff8000000000000
+       fsubs fff8000000000000, fff8000000000000 => fff8000000000000
+
+        fmul 0010000000000001, 0010000000000001 => 0000000000000000
+        fmul 0010000000000001, 80100094e0000359 => 8000000000000000
+        fmul 0010000000000001, 7ff0000000000000 => 7ff0000000000000
+        fmul 0010000000000001, fff8000000000000 => fff8000000000000
+        fmul 3fe00094e0000359, 0010000000000001 => 0008004a700001ad
+        fmul 3fe00094e0000359, 80100094e0000359 => 80080094e2b4a179
+        fmul 3fe00094e0000359, 7ff0000000000000 => 7ff0000000000000
+        fmul 3fe00094e0000359, fff8000000000000 => fff8000000000000
+        fmul bfe0000000000001, 0010000000000001 => 8008000000000001
+        fmul bfe0000000000001, 80100094e0000359 => 0008004a700001ad
+        fmul bfe0000000000001, 7ff0000000000000 => fff0000000000000
+        fmul bfe0000000000001, fff8000000000000 => fff8000000000000
+        fmul 8000000000000000, 0010000000000001 => 8000000000000000
+        fmul 8000000000000000, 80100094e0000359 => 0000000000000000
+        fmul 8000000000000000, 7ff0000000000000 => 7ff8000000000000
+        fmul 8000000000000000, fff8000000000000 => fff8000000000000
+        fmul 7ff7ffffffffffff, 0010000000000001 => 7fffffffffffffff
+        fmul 7ff7ffffffffffff, 80100094e0000359 => 7fffffffffffffff
+        fmul 7ff7ffffffffffff, 7ff0000000000000 => 7fffffffffffffff
+        fmul 7ff7ffffffffffff, fff8000000000000 => 7fffffffffffffff
+        fmul fff8000000000000, 0010000000000001 => fff8000000000000
+        fmul fff8000000000000, 80100094e0000359 => fff8000000000000
+        fmul fff8000000000000, 7ff0000000000000 => fff8000000000000
+        fmul fff8000000000000, fff8000000000000 => fff8000000000000
+
+       fmuls 0010000000000001, 0010000000000001 => 0000000000000000
+       fmuls 0010000000000001, 80100094e0000359 => 8000000000000000
+       fmuls 0010000000000001, 7ff0000000000000 => 7ff0000000000000
+       fmuls 0010000000000001, fff8000000000000 => fff8000000000000
+       fmuls 3fe00094e0000359, 0010000000000001 => 0000000000000000
+       fmuls 3fe00094e0000359, 80100094e0000359 => 8000000000000000
+       fmuls 3fe00094e0000359, 7ff0000000000000 => 7ff0000000000000
+       fmuls 3fe00094e0000359, fff8000000000000 => fff8000000000000
+       fmuls bfe0000000000001, 0010000000000001 => 8000000000000000
+       fmuls bfe0000000000001, 80100094e0000359 => 0000000000000000
+       fmuls bfe0000000000001, 7ff0000000000000 => fff0000000000000
+       fmuls bfe0000000000001, fff8000000000000 => fff8000000000000
+       fmuls 8000000000000000, 0010000000000001 => 8000000000000000
+       fmuls 8000000000000000, 80100094e0000359 => 0000000000000000
+       fmuls 8000000000000000, 7ff0000000000000 => 7ff8000000000000
+       fmuls 8000000000000000, fff8000000000000 => fff8000000000000
+       fmuls 7ff7ffffffffffff, 0010000000000001 => 7fffffffe0000000
+       fmuls 7ff7ffffffffffff, 80100094e0000359 => 7fffffffe0000000
+       fmuls 7ff7ffffffffffff, 7ff0000000000000 => 7fffffffe0000000
+       fmuls 7ff7ffffffffffff, fff8000000000000 => 7fffffffe0000000
+       fmuls fff8000000000000, 0010000000000001 => fff8000000000000
+       fmuls fff8000000000000, 80100094e0000359 => fff8000000000000
+       fmuls fff8000000000000, 7ff0000000000000 => fff8000000000000
+       fmuls fff8000000000000, fff8000000000000 => fff8000000000000
+
+        fdiv 0010000000000001, 0010000000000001 => 3ff0000000000000
+        fdiv 0010000000000001, 80100094e0000359 => bfeffed64ad20d22
+        fdiv 0010000000000001, 7ff0000000000000 => 0000000000000000
+        fdiv 0010000000000001, fff8000000000000 => fff8000000000000
+        fdiv 3fe00094e0000359, 0010000000000001 => 7fc00094e0000358
+        fdiv 3fe00094e0000359, 80100094e0000359 => ffc0000000000000
+        fdiv 3fe00094e0000359, 7ff0000000000000 => 0000000000000000
+        fdiv 3fe00094e0000359, fff8000000000000 => fff8000000000000
+        fdiv bfe0000000000001, 0010000000000001 => ffc0000000000000
+        fdiv bfe0000000000001, 80100094e0000359 => 7fbffed64ad20d22
+        fdiv bfe0000000000001, 7ff0000000000000 => 8000000000000000
+        fdiv bfe0000000000001, fff8000000000000 => fff8000000000000
+        fdiv 8000000000000000, 0010000000000001 => 8000000000000000
+        fdiv 8000000000000000, 80100094e0000359 => 0000000000000000
+        fdiv 8000000000000000, 7ff0000000000000 => 8000000000000000
+        fdiv 8000000000000000, fff8000000000000 => fff8000000000000
+        fdiv 7ff7ffffffffffff, 0010000000000001 => 7fffffffffffffff
+        fdiv 7ff7ffffffffffff, 80100094e0000359 => 7fffffffffffffff
+        fdiv 7ff7ffffffffffff, 7ff0000000000000 => 7fffffffffffffff
+        fdiv 7ff7ffffffffffff, fff8000000000000 => 7fffffffffffffff
+        fdiv fff8000000000000, 0010000000000001 => fff8000000000000
+        fdiv fff8000000000000, 80100094e0000359 => fff8000000000000
+        fdiv fff8000000000000, 7ff0000000000000 => fff8000000000000
+        fdiv fff8000000000000, fff8000000000000 => fff8000000000000
+
+       fdivs 0010000000000001, 0010000000000001 => 3ff0000000000000
+       fdivs 0010000000000001, 80100094e0000359 => bfeffed640000000
+       fdivs 0010000000000001, 7ff0000000000000 => 0000000000000000
+       fdivs 0010000000000001, fff8000000000000 => fff8000000000000
+       fdivs 3fe00094e0000359, 0010000000000001 => 7ff0000000000000
+       fdivs 3fe00094e0000359, 80100094e0000359 => fff0000000000000
+       fdivs 3fe00094e0000359, 7ff0000000000000 => 0000000000000000
+       fdivs 3fe00094e0000359, fff8000000000000 => fff8000000000000
+       fdivs bfe0000000000001, 0010000000000001 => fff0000000000000
+       fdivs bfe0000000000001, 80100094e0000359 => 7ff0000000000000
+       fdivs bfe0000000000001, 7ff0000000000000 => 8000000000000000
+       fdivs bfe0000000000001, fff8000000000000 => fff8000000000000
+       fdivs 8000000000000000, 0010000000000001 => 8000000000000000
+       fdivs 8000000000000000, 80100094e0000359 => 0000000000000000
+       fdivs 8000000000000000, 7ff0000000000000 => 8000000000000000
+       fdivs 8000000000000000, fff8000000000000 => fff8000000000000
+       fdivs 7ff7ffffffffffff, 0010000000000001 => 7fffffffe0000000
+       fdivs 7ff7ffffffffffff, 80100094e0000359 => 7fffffffe0000000
+       fdivs 7ff7ffffffffffff, 7ff0000000000000 => 7fffffffe0000000
+       fdivs 7ff7ffffffffffff, fff8000000000000 => 7fffffffe0000000
+       fdivs fff8000000000000, 0010000000000001 => fff8000000000000
+       fdivs fff8000000000000, 80100094e0000359 => fff8000000000000
+       fdivs fff8000000000000, 7ff0000000000000 => fff8000000000000
+       fdivs fff8000000000000, fff8000000000000 => fff8000000000000
+
+PPC floating point arith insns
+    with two args with flags update:
+       fadd. 0010000000000001, 0010000000000001 => 0020000000000001
+       fadd. 0010000000000001, 80100094e0000359 => 80000094e0000358
+       fadd. 0010000000000001, 7ff0000000000000 => 7ff0000000000000
+       fadd. 0010000000000001, fff8000000000000 => fff8000000000000
+       fadd. 3fe00094e0000359, 0010000000000001 => 3fe00094e0000359
+       fadd. 3fe00094e0000359, 80100094e0000359 => 3fe00094e0000359
+       fadd. 3fe00094e0000359, 7ff0000000000000 => 7ff0000000000000
+       fadd. 3fe00094e0000359, fff8000000000000 => fff8000000000000
+       fadd. bfe0000000000001, 0010000000000001 => bfe0000000000001
+       fadd. bfe0000000000001, 80100094e0000359 => bfe0000000000001
+       fadd. bfe0000000000001, 7ff0000000000000 => 7ff0000000000000
+       fadd. bfe0000000000001, fff8000000000000 => fff8000000000000
+       fadd. 8000000000000000, 0010000000000001 => 0010000000000001
+       fadd. 8000000000000000, 80100094e0000359 => 80100094e0000359
+       fadd. 8000000000000000, 7ff0000000000000 => 7ff0000000000000
+       fadd. 8000000000000000, fff8000000000000 => fff8000000000000
+       fadd. 7ff7ffffffffffff, 0010000000000001 => 7fffffffffffffff
+       fadd. 7ff7ffffffffffff, 80100094e0000359 => 7fffffffffffffff
+       fadd. 7ff7ffffffffffff, 7ff0000000000000 => 7fffffffffffffff
+       fadd. 7ff7ffffffffffff, fff8000000000000 => 7fffffffffffffff
+       fadd. fff8000000000000, 0010000000000001 => fff8000000000000
+       fadd. fff8000000000000, 80100094e0000359 => fff8000000000000
+       fadd. fff8000000000000, 7ff0000000000000 => fff8000000000000
+       fadd. fff8000000000000, fff8000000000000 => fff8000000000000
+
+      fadds. 0010000000000001, 0010000000000001 => 0000000000000000
+      fadds. 0010000000000001, 80100094e0000359 => 8000000000000000
+      fadds. 0010000000000001, 7ff0000000000000 => 7ff0000000000000
+      fadds. 0010000000000001, fff8000000000000 => fff8000000000000
+      fadds. 3fe00094e0000359, 0010000000000001 => 3fe00094e0000000
+      fadds. 3fe00094e0000359, 80100094e0000359 => 3fe00094e0000000
+      fadds. 3fe00094e0000359, 7ff0000000000000 => 7ff0000000000000
+      fadds. 3fe00094e0000359, fff8000000000000 => fff8000000000000
+      fadds. bfe0000000000001, 0010000000000001 => bfe0000000000000
+      fadds. bfe0000000000001, 80100094e0000359 => bfe0000000000000
+      fadds. bfe0000000000001, 7ff0000000000000 => 7ff0000000000000
+      fadds. bfe0000000000001, fff8000000000000 => fff8000000000000
+      fadds. 8000000000000000, 0010000000000001 => 0000000000000000
+      fadds. 8000000000000000, 80100094e0000359 => 8000000000000000
+      fadds. 8000000000000000, 7ff0000000000000 => 7ff0000000000000
+      fadds. 8000000000000000, fff8000000000000 => fff8000000000000
+      fadds. 7ff7ffffffffffff, 0010000000000001 => 7fffffffe0000000
+      fadds. 7ff7ffffffffffff, 80100094e0000359 => 7fffffffe0000000
+      fadds. 7ff7ffffffffffff, 7ff0000000000000 => 7fffffffe0000000
+      fadds. 7ff7ffffffffffff, fff8000000000000 => 7fffffffe0000000
+      fadds. fff8000000000000, 0010000000000001 => fff8000000000000
+      fadds. fff8000000000000, 80100094e0000359 => fff8000000000000
+      fadds. fff8000000000000, 7ff0000000000000 => fff8000000000000
+      fadds. fff8000000000000, fff8000000000000 => fff8000000000000
+
+       fsub. 0010000000000001, 0010000000000001 => 0000000000000000
+       fsub. 0010000000000001, 80100094e0000359 => 0020004a700001ad
+       fsub. 0010000000000001, 7ff0000000000000 => fff0000000000000
+       fsub. 0010000000000001, fff8000000000000 => fff8000000000000
+       fsub. 3fe00094e0000359, 0010000000000001 => 3fe00094e0000359
+       fsub. 3fe00094e0000359, 80100094e0000359 => 3fe00094e0000359
+       fsub. 3fe00094e0000359, 7ff0000000000000 => fff0000000000000
+       fsub. 3fe00094e0000359, fff8000000000000 => fff8000000000000
+       fsub. bfe0000000000001, 0010000000000001 => bfe0000000000001
+       fsub. bfe0000000000001, 80100094e0000359 => bfe0000000000001
+       fsub. bfe0000000000001, 7ff0000000000000 => fff0000000000000
+       fsub. bfe0000000000001, fff8000000000000 => fff8000000000000
+       fsub. 8000000000000000, 0010000000000001 => 8010000000000001
+       fsub. 8000000000000000, 80100094e0000359 => 00100094e0000359
+       fsub. 8000000000000000, 7ff0000000000000 => fff0000000000000
+       fsub. 8000000000000000, fff8000000000000 => fff8000000000000
+       fsub. 7ff7ffffffffffff, 0010000000000001 => 7fffffffffffffff
+       fsub. 7ff7ffffffffffff, 80100094e0000359 => 7fffffffffffffff
+       fsub. 7ff7ffffffffffff, 7ff0000000000000 => 7fffffffffffffff
+       fsub. 7ff7ffffffffffff, fff8000000000000 => 7fffffffffffffff
+       fsub. fff8000000000000, 0010000000000001 => fff8000000000000
+       fsub. fff8000000000000, 80100094e0000359 => fff8000000000000
+       fsub. fff8000000000000, 7ff0000000000000 => fff8000000000000
+       fsub. fff8000000000000, fff8000000000000 => fff8000000000000
+
+      fsubs. 0010000000000001, 0010000000000001 => 0000000000000000
+      fsubs. 0010000000000001, 80100094e0000359 => 0000000000000000
+      fsubs. 0010000000000001, 7ff0000000000000 => fff0000000000000
+      fsubs. 0010000000000001, fff8000000000000 => fff8000000000000
+      fsubs. 3fe00094e0000359, 0010000000000001 => 3fe00094e0000000
+      fsubs. 3fe00094e0000359, 80100094e0000359 => 3fe00094e0000000
+      fsubs. 3fe00094e0000359, 7ff0000000000000 => fff0000000000000
+      fsubs. 3fe00094e0000359, fff8000000000000 => fff8000000000000
+      fsubs. bfe0000000000001, 0010000000000001 => bfe0000000000000
+      fsubs. bfe0000000000001, 80100094e0000359 => bfe0000000000000
+      fsubs. bfe0000000000001, 7ff0000000000000 => fff0000000000000
+      fsubs. bfe0000000000001, fff8000000000000 => fff8000000000000
+      fsubs. 8000000000000000, 0010000000000001 => 8000000000000000
+      fsubs. 8000000000000000, 80100094e0000359 => 0000000000000000
+      fsubs. 8000000000000000, 7ff0000000000000 => fff0000000000000
+      fsubs. 8000000000000000, fff8000000000000 => fff8000000000000
+      fsubs. 7ff7ffffffffffff, 0010000000000001 => 7fffffffe0000000
+      fsubs. 7ff7ffffffffffff, 80100094e0000359 => 7fffffffe0000000
+      fsubs. 7ff7ffffffffffff, 7ff0000000000000 => 7fffffffe0000000
+      fsubs. 7ff7ffffffffffff, fff8000000000000 => 7fffffffe0000000
+      fsubs. fff8000000000000, 0010000000000001 => fff8000000000000
+      fsubs. fff8000000000000, 80100094e0000359 => fff8000000000000
+      fsubs. fff8000000000000, 7ff0000000000000 => fff8000000000000
+      fsubs. fff8000000000000, fff8000000000000 => fff8000000000000
+
+       fmul. 0010000000000001, 0010000000000001 => 0000000000000000
+       fmul. 0010000000000001, 80100094e0000359 => 8000000000000000
+       fmul. 0010000000000001, 7ff0000000000000 => 7ff0000000000000
+       fmul. 0010000000000001, fff8000000000000 => fff8000000000000
+       fmul. 3fe00094e0000359, 0010000000000001 => 0008004a700001ad
+       fmul. 3fe00094e0000359, 80100094e0000359 => 80080094e2b4a179
+       fmul. 3fe00094e0000359, 7ff0000000000000 => 7ff0000000000000
+       fmul. 3fe00094e0000359, fff8000000000000 => fff8000000000000
+       fmul. bfe0000000000001, 0010000000000001 => 8008000000000001
+       fmul. bfe0000000000001, 80100094e0000359 => 0008004a700001ad
+       fmul. bfe0000000000001, 7ff0000000000000 => fff0000000000000
+       fmul. bfe0000000000001, fff8000000000000 => fff8000000000000
+       fmul. 8000000000000000, 0010000000000001 => 8000000000000000
+       fmul. 8000000000000000, 80100094e0000359 => 0000000000000000
+       fmul. 8000000000000000, 7ff0000000000000 => 7ff8000000000000
+       fmul. 8000000000000000, fff8000000000000 => fff8000000000000
+       fmul. 7ff7ffffffffffff, 0010000000000001 => 7fffffffffffffff
+       fmul. 7ff7ffffffffffff, 80100094e0000359 => 7fffffffffffffff
+       fmul. 7ff7ffffffffffff, 7ff0000000000000 => 7fffffffffffffff
+       fmul. 7ff7ffffffffffff, fff8000000000000 => 7fffffffffffffff
+       fmul. fff8000000000000, 0010000000000001 => fff8000000000000
+       fmul. fff8000000000000, 80100094e0000359 => fff8000000000000
+       fmul. fff8000000000000, 7ff0000000000000 => fff8000000000000
+       fmul. fff8000000000000, fff8000000000000 => fff8000000000000
+
+      fmuls. 0010000000000001, 0010000000000001 => 0000000000000000
+      fmuls. 0010000000000001, 80100094e0000359 => 8000000000000000
+      fmuls. 0010000000000001, 7ff0000000000000 => 7ff0000000000000
+      fmuls. 0010000000000001, fff8000000000000 => fff8000000000000
+      fmuls. 3fe00094e0000359, 0010000000000001 => 0000000000000000
+      fmuls. 3fe00094e0000359, 80100094e0000359 => 8000000000000000
+      fmuls. 3fe00094e0000359, 7ff0000000000000 => 7ff0000000000000
+      fmuls. 3fe00094e0000359, fff8000000000000 => fff8000000000000
+      fmuls. bfe0000000000001, 0010000000000001 => 8000000000000000
+      fmuls. bfe0000000000001, 80100094e0000359 => 0000000000000000
+      fmuls. bfe0000000000001, 7ff0000000000000 => fff0000000000000
+      fmuls. bfe0000000000001, fff8000000000000 => fff8000000000000
+      fmuls. 8000000000000000, 0010000000000001 => 8000000000000000
+      fmuls. 8000000000000000, 80100094e0000359 => 0000000000000000
+      fmuls. 8000000000000000, 7ff0000000000000 => 7ff8000000000000
+      fmuls. 8000000000000000, fff8000000000000 => fff8000000000000
+      fmuls. 7ff7ffffffffffff, 0010000000000001 => 7fffffffe0000000
+      fmuls. 7ff7ffffffffffff, 80100094e0000359 => 7fffffffe0000000
+      fmuls. 7ff7ffffffffffff, 7ff0000000000000 => 7fffffffe0000000
+      fmuls. 7ff7ffffffffffff, fff8000000000000 => 7fffffffe0000000
+      fmuls. fff8000000000000, 0010000000000001 => fff8000000000000
+      fmuls. fff8000000000000, 80100094e0000359 => fff8000000000000
+      fmuls. fff8000000000000, 7ff0000000000000 => fff8000000000000
+      fmuls. fff8000000000000, fff8000000000000 => fff8000000000000
+
+       fdiv. 0010000000000001, 0010000000000001 => 3ff0000000000000
+       fdiv. 0010000000000001, 80100094e0000359 => bfeffed64ad20d22
+       fdiv. 0010000000000001, 7ff0000000000000 => 0000000000000000
+       fdiv. 0010000000000001, fff8000000000000 => fff8000000000000
+       fdiv. 3fe00094e0000359, 0010000000000001 => 7fc00094e0000358
+       fdiv. 3fe00094e0000359, 80100094e0000359 => ffc0000000000000
+       fdiv. 3fe00094e0000359, 7ff0000000000000 => 0000000000000000
+       fdiv. 3fe00094e0000359, fff8000000000000 => fff8000000000000
+       fdiv. bfe0000000000001, 0010000000000001 => ffc0000000000000
+       fdiv. bfe0000000000001, 80100094e0000359 => 7fbffed64ad20d22
+       fdiv. bfe0000000000001, 7ff0000000000000 => 8000000000000000
+       fdiv. bfe0000000000001, fff8000000000000 => fff8000000000000
+       fdiv. 8000000000000000, 0010000000000001 => 8000000000000000
+       fdiv. 8000000000000000, 80100094e0000359 => 0000000000000000
+       fdiv. 8000000000000000, 7ff0000000000000 => 8000000000000000
+       fdiv. 8000000000000000, fff8000000000000 => fff8000000000000
+       fdiv. 7ff7ffffffffffff, 0010000000000001 => 7fffffffffffffff
+       fdiv. 7ff7ffffffffffff, 80100094e0000359 => 7fffffffffffffff
+       fdiv. 7ff7ffffffffffff, 7ff0000000000000 => 7fffffffffffffff
+       fdiv. 7ff7ffffffffffff, fff8000000000000 => 7fffffffffffffff
+       fdiv. fff8000000000000, 0010000000000001 => fff8000000000000
+       fdiv. fff8000000000000, 80100094e0000359 => fff8000000000000
+       fdiv. fff8000000000000, 7ff0000000000000 => fff8000000000000
+       fdiv. fff8000000000000, fff8000000000000 => fff8000000000000
+
+      fdivs. 0010000000000001, 0010000000000001 => 3ff0000000000000
+      fdivs. 0010000000000001, 80100094e0000359 => bfeffed640000000
+      fdivs. 0010000000000001, 7ff0000000000000 => 0000000000000000
+      fdivs. 0010000000000001, fff8000000000000 => fff8000000000000
+      fdivs. 3fe00094e0000359, 0010000000000001 => 7ff0000000000000
+      fdivs. 3fe00094e0000359, 80100094e0000359 => fff0000000000000
+      fdivs. 3fe00094e0000359, 7ff0000000000000 => 0000000000000000
+      fdivs. 3fe00094e0000359, fff8000000000000 => fff8000000000000
+      fdivs. bfe0000000000001, 0010000000000001 => fff0000000000000
+      fdivs. bfe0000000000001, 80100094e0000359 => 7ff0000000000000
+      fdivs. bfe0000000000001, 7ff0000000000000 => 8000000000000000
+      fdivs. bfe0000000000001, fff8000000000000 => fff8000000000000
+      fdivs. 8000000000000000, 0010000000000001 => 8000000000000000
+      fdivs. 8000000000000000, 80100094e0000359 => 0000000000000000
+      fdivs. 8000000000000000, 7ff0000000000000 => 8000000000000000
+      fdivs. 8000000000000000, fff8000000000000 => fff8000000000000
+      fdivs. 7ff7ffffffffffff, 0010000000000001 => 7fffffffe0000000
+      fdivs. 7ff7ffffffffffff, 80100094e0000359 => 7fffffffe0000000
+      fdivs. 7ff7ffffffffffff, 7ff0000000000000 => 7fffffffe0000000
+      fdivs. 7ff7ffffffffffff, fff8000000000000 => 7fffffffe0000000
+      fdivs. fff8000000000000, 0010000000000001 => fff8000000000000
+      fdivs. fff8000000000000, 80100094e0000359 => fff8000000000000
+      fdivs. fff8000000000000, 7ff0000000000000 => fff8000000000000
+      fdivs. fff8000000000000, fff8000000000000 => fff8000000000000
+
+PPC floating point compare insns (two args):
+       fcmpo 0010000000000001, 0010000000000001 => fff8000000000000
+       fcmpo 0010000000000001, 80100094e0000359 => fff8000000000000
+       fcmpo 0010000000000001, 7ff0000000000000 => fff8000000000000
+       fcmpo 0010000000000001, fff8000000000000 => fff8000000000000
+       fcmpo 3fe00094e0000359, 0010000000000001 => fff8000000000000
+       fcmpo 3fe00094e0000359, 80100094e0000359 => fff8000000000000
+       fcmpo 3fe00094e0000359, 7ff0000000000000 => fff8000000000000
+       fcmpo 3fe00094e0000359, fff8000000000000 => fff8000000000000
+       fcmpo bfe0000000000001, 0010000000000001 => fff8000000000000
+       fcmpo bfe0000000000001, 80100094e0000359 => fff8000000000000
+       fcmpo bfe0000000000001, 7ff0000000000000 => fff8000000000000
+       fcmpo bfe0000000000001, fff8000000000000 => fff8000000000000
+       fcmpo 8000000000000000, 0010000000000001 => fff8000000000000
+       fcmpo 8000000000000000, 80100094e0000359 => fff8000000000000
+       fcmpo 8000000000000000, 7ff0000000000000 => fff8000000000000
+       fcmpo 8000000000000000, fff8000000000000 => fff8000000000000
+       fcmpo 7ff7ffffffffffff, 0010000000000001 => fff8000000000000
+       fcmpo 7ff7ffffffffffff, 80100094e0000359 => fff8000000000000
+       fcmpo 7ff7ffffffffffff, 7ff0000000000000 => fff8000000000000
+       fcmpo 7ff7ffffffffffff, fff8000000000000 => fff8000000000000
+       fcmpo fff8000000000000, 0010000000000001 => fff8000000000000
+       fcmpo fff8000000000000, 80100094e0000359 => fff8000000000000
+       fcmpo fff8000000000000, 7ff0000000000000 => fff8000000000000
+       fcmpo fff8000000000000, fff8000000000000 => fff8000000000000
+
+       fcmpu 0010000000000001, 0010000000000001 => fff8000000000000
+       fcmpu 0010000000000001, 80100094e0000359 => fff8000000000000
+       fcmpu 0010000000000001, 7ff0000000000000 => fff8000000000000
+       fcmpu 0010000000000001, fff8000000000000 => fff8000000000000
+       fcmpu 3fe00094e0000359, 0010000000000001 => fff8000000000000
+       fcmpu 3fe00094e0000359, 80100094e0000359 => fff8000000000000
+       fcmpu 3fe00094e0000359, 7ff0000000000000 => fff8000000000000
+       fcmpu 3fe00094e0000359, fff8000000000000 => fff8000000000000
+       fcmpu bfe0000000000001, 0010000000000001 => fff8000000000000
+       fcmpu bfe0000000000001, 80100094e0000359 => fff8000000000000
+       fcmpu bfe0000000000001, 7ff0000000000000 => fff8000000000000
+       fcmpu bfe0000000000001, fff8000000000000 => fff8000000000000
+       fcmpu 8000000000000000, 0010000000000001 => fff8000000000000
+       fcmpu 8000000000000000, 80100094e0000359 => fff8000000000000
+       fcmpu 8000000000000000, 7ff0000000000000 => fff8000000000000
+       fcmpu 8000000000000000, fff8000000000000 => fff8000000000000
+       fcmpu 7ff7ffffffffffff, 0010000000000001 => fff8000000000000
+       fcmpu 7ff7ffffffffffff, 80100094e0000359 => fff8000000000000
+       fcmpu 7ff7ffffffffffff, 7ff0000000000000 => fff8000000000000
+       fcmpu 7ff7ffffffffffff, fff8000000000000 => fff8000000000000
+       fcmpu fff8000000000000, 0010000000000001 => fff8000000000000
+       fcmpu fff8000000000000, 80100094e0000359 => fff8000000000000
+       fcmpu fff8000000000000, 7ff0000000000000 => fff8000000000000
+       fcmpu fff8000000000000, fff8000000000000 => fff8000000000000
+
+PPC floating point arith insns with one arg:
+        frsp 0010000000000001 => 0000000000000000
+        frsp 00100094e0000359 => 0000000000000000
+        frsp 3fe0000000000001 => 3fe0000000000000
+        frsp 3fe00094e0000359 => 3fe00094e0000000
+        frsp 8010000000000001 => 8000000000000000
+        frsp 80100094e0000359 => 8000000000000000
+        frsp bfe0000000000001 => bfe0000000000000
+        frsp bfe00094e0000359 => bfe00094e0000000
+        frsp 0000000000000000 => 0000000000000000
+        frsp 8000000000000000 => 8000000000000000
+        frsp 7ff0000000000000 => 7ff0000000000000
+        frsp fff0000000000000 => fff0000000000000
+        frsp 7ff7ffffffffffff => 7fffffffe0000000
+        frsp fff7ffffffffffff => ffffffffe0000000
+        frsp 7ff8000000000000 => 7ff8000000000000
+        frsp fff8000000000000 => fff8000000000000
+
+       fctiw 0010000000000001 => 0000000000000000
+       fctiw 00100094e0000359 => 0000000000000000
+       fctiw 3fe0000000000001 => 0000000000000001
+       fctiw 3fe00094e0000359 => 0000000000000001
+       fctiw 8010000000000001 => 0000000000000000
+       fctiw 80100094e0000359 => 0000000000000000
+       fctiw bfe0000000000001 => 00000000ffffffff
+       fctiw bfe00094e0000359 => 00000000ffffffff
+       fctiw 0000000000000000 => 0000000000000000
+       fctiw 8000000000000000 => 0000000000000000
+       fctiw 7ff0000000000000 => 000000007fffffff
+       fctiw fff0000000000000 => 0000000080000000
+       fctiw 7ff7ffffffffffff => 0000000080000000
+       fctiw fff7ffffffffffff => 0000000080000000
+       fctiw 7ff8000000000000 => 0000000080000000
+       fctiw fff8000000000000 => 0000000080000000
+
+      fctiwz 0010000000000001 => 0000000000000000
+      fctiwz 00100094e0000359 => 0000000000000000
+      fctiwz 3fe0000000000001 => 0000000000000000
+      fctiwz 3fe00094e0000359 => 0000000000000000
+      fctiwz 8010000000000001 => 0000000000000000
+      fctiwz 80100094e0000359 => 0000000000000000
+      fctiwz bfe0000000000001 => 0000000000000000
+      fctiwz bfe00094e0000359 => 0000000000000000
+      fctiwz 0000000000000000 => 0000000000000000
+      fctiwz 8000000000000000 => 0000000000000000
+      fctiwz 7ff0000000000000 => 000000007fffffff
+      fctiwz fff0000000000000 => 0000000080000000
+      fctiwz 7ff7ffffffffffff => 0000000080000000
+      fctiwz fff7ffffffffffff => 0000000080000000
+      fctiwz 7ff8000000000000 => 0000000080000000
+      fctiwz fff8000000000000 => 0000000080000000
+
+         fmr 0010000000000001 => 0010000000000001
+         fmr 00100094e0000359 => 00100094e0000359
+         fmr 3fe0000000000001 => 3fe0000000000001
+         fmr 3fe00094e0000359 => 3fe00094e0000359
+         fmr 8010000000000001 => 8010000000000001
+         fmr 80100094e0000359 => 80100094e0000359
+         fmr bfe0000000000001 => bfe0000000000001
+         fmr bfe00094e0000359 => bfe00094e0000359
+         fmr 0000000000000000 => 0000000000000000
+         fmr 8000000000000000 => 8000000000000000
+         fmr 7ff0000000000000 => 7ff0000000000000
+         fmr fff0000000000000 => fff0000000000000
+         fmr 7ff7ffffffffffff => 7ff7ffffffffffff
+         fmr fff7ffffffffffff => fff7ffffffffffff
+         fmr 7ff8000000000000 => 7ff8000000000000
+         fmr fff8000000000000 => fff8000000000000
+
+        fneg 0010000000000001 => 8010000000000001
+        fneg 00100094e0000359 => 80100094e0000359
+        fneg 3fe0000000000001 => bfe0000000000001
+        fneg 3fe00094e0000359 => bfe00094e0000359
+        fneg 8010000000000001 => 0010000000000001
+        fneg 80100094e0000359 => 00100094e0000359
+        fneg bfe0000000000001 => 3fe0000000000001
+        fneg bfe00094e0000359 => 3fe00094e0000359
+        fneg 0000000000000000 => 8000000000000000
+        fneg 8000000000000000 => 0000000000000000
+        fneg 7ff0000000000000 => fff0000000000000
+        fneg fff0000000000000 => 7ff0000000000000
+        fneg 7ff7ffffffffffff => fff7ffffffffffff
+        fneg fff7ffffffffffff => 7ff7ffffffffffff
+        fneg 7ff8000000000000 => fff8000000000000
+        fneg fff8000000000000 => 7ff8000000000000
+
+        fabs 0010000000000001 => 0010000000000001
+        fabs 00100094e0000359 => 00100094e0000359
+        fabs 3fe0000000000001 => 3fe0000000000001
+        fabs 3fe00094e0000359 => 3fe00094e0000359
+        fabs 8010000000000001 => 0010000000000001
+        fabs 80100094e0000359 => 00100094e0000359
+        fabs bfe0000000000001 => 3fe0000000000001
+        fabs bfe00094e0000359 => 3fe00094e0000359
+        fabs 0000000000000000 => 0000000000000000
+        fabs 8000000000000000 => 0000000000000000
+        fabs 7ff0000000000000 => 7ff0000000000000
+        fabs fff0000000000000 => 7ff0000000000000
+        fabs 7ff7ffffffffffff => 7ff7ffffffffffff
+        fabs fff7ffffffffffff => 7ff7ffffffffffff
+        fabs 7ff8000000000000 => 7ff8000000000000
+        fabs fff8000000000000 => 7ff8000000000000
+
+       fnabs 0010000000000001 => 8010000000000001
+       fnabs 00100094e0000359 => 80100094e0000359
+       fnabs 3fe0000000000001 => bfe0000000000001
+       fnabs 3fe00094e0000359 => bfe00094e0000359
+       fnabs 8010000000000001 => 8010000000000001
+       fnabs 80100094e0000359 => 80100094e0000359
+       fnabs bfe0000000000001 => bfe0000000000001
+       fnabs bfe00094e0000359 => bfe00094e0000359
+       fnabs 0000000000000000 => 8000000000000000
+       fnabs 8000000000000000 => 8000000000000000
+       fnabs 7ff0000000000000 => fff0000000000000
+       fnabs fff0000000000000 => fff0000000000000
+       fnabs 7ff7ffffffffffff => fff7ffffffffffff
+       fnabs fff7ffffffffffff => fff7ffffffffffff
+       fnabs 7ff8000000000000 => fff8000000000000
+       fnabs fff8000000000000 => fff8000000000000
+
+       fsqrt 0010000000000001 => 2000000000000000
+       fsqrt 00100094e0000359 => 2000004a6f52dd4a
+       fsqrt 3fe0000000000001 => 3fe6a09e667f3bcd
+       fsqrt 3fe00094e0000359 => 3fe6a107aacb50df
+       fsqrt 8010000000000001 => 7ff8000000000000
+       fsqrt 80100094e0000359 => 7ff8000000000000
+       fsqrt bfe0000000000001 => 7ff8000000000000
+       fsqrt bfe00094e0000359 => 7ff8000000000000
+       fsqrt 0000000000000000 => 0000000000000000
+       fsqrt 8000000000000000 => 8000000000000000
+       fsqrt 7ff0000000000000 => 7ff0000000000000
+       fsqrt fff0000000000000 => 7ff8000000000000
+       fsqrt 7ff7ffffffffffff => 7fffffffffffffff
+       fsqrt fff7ffffffffffff => ffffffffffffffff
+       fsqrt 7ff8000000000000 => 7ff8000000000000
+       fsqrt fff8000000000000 => fff8000000000000
+
+PPC floating point arith insns
+    with one arg with flags update:
+       frsp. 0010000000000001 => 0000000000000000
+       frsp. 00100094e0000359 => 0000000000000000
+       frsp. 3fe0000000000001 => 3fe0000000000000
+       frsp. 3fe00094e0000359 => 3fe00094e0000000
+       frsp. 8010000000000001 => 8000000000000000
+       frsp. 80100094e0000359 => 8000000000000000
+       frsp. bfe0000000000001 => bfe0000000000000
+       frsp. bfe00094e0000359 => bfe00094e0000000
+       frsp. 0000000000000000 => 0000000000000000
+       frsp. 8000000000000000 => 8000000000000000
+       frsp. 7ff0000000000000 => 7ff0000000000000
+       frsp. fff0000000000000 => fff0000000000000
+       frsp. 7ff7ffffffffffff => 7fffffffe0000000
+       frsp. fff7ffffffffffff => ffffffffe0000000
+       frsp. 7ff8000000000000 => 7ff8000000000000
+       frsp. fff8000000000000 => fff8000000000000
+
+      fctiw. 0010000000000001 => 0000000000000000
+      fctiw. 00100094e0000359 => 0000000000000000
+      fctiw. 3fe0000000000001 => 0000000000000001
+      fctiw. 3fe00094e0000359 => 0000000000000001
+      fctiw. 8010000000000001 => 0000000000000000
+      fctiw. 80100094e0000359 => 0000000000000000
+      fctiw. bfe0000000000001 => 00000000ffffffff
+      fctiw. bfe00094e0000359 => 00000000ffffffff
+      fctiw. 0000000000000000 => 0000000000000000
+      fctiw. 8000000000000000 => 0000000000000000
+      fctiw. 7ff0000000000000 => 000000007fffffff
+      fctiw. fff0000000000000 => 0000000080000000
+      fctiw. 7ff7ffffffffffff => 0000000080000000
+      fctiw. fff7ffffffffffff => 0000000080000000
+      fctiw. 7ff8000000000000 => 0000000080000000
+      fctiw. fff8000000000000 => 0000000080000000
+
+     fctiwz. 0010000000000001 => 0000000000000000
+     fctiwz. 00100094e0000359 => 0000000000000000
+     fctiwz. 3fe0000000000001 => 0000000000000000
+     fctiwz. 3fe00094e0000359 => 0000000000000000
+     fctiwz. 8010000000000001 => 0000000000000000
+     fctiwz. 80100094e0000359 => 0000000000000000
+     fctiwz. bfe0000000000001 => 0000000000000000
+     fctiwz. bfe00094e0000359 => 0000000000000000
+     fctiwz. 0000000000000000 => 0000000000000000
+     fctiwz. 8000000000000000 => 0000000000000000
+     fctiwz. 7ff0000000000000 => 000000007fffffff
+     fctiwz. fff0000000000000 => 0000000080000000
+     fctiwz. 7ff7ffffffffffff => 0000000080000000
+     fctiwz. fff7ffffffffffff => 0000000080000000
+     fctiwz. 7ff8000000000000 => 0000000080000000
+     fctiwz. fff8000000000000 => 0000000080000000
+
+        fmr. 0010000000000001 => 0010000000000001
+        fmr. 00100094e0000359 => 00100094e0000359
+        fmr. 3fe0000000000001 => 3fe0000000000001
+        fmr. 3fe00094e0000359 => 3fe00094e0000359
+        fmr. 8010000000000001 => 8010000000000001
+        fmr. 80100094e0000359 => 80100094e0000359
+        fmr. bfe0000000000001 => bfe0000000000001
+        fmr. bfe00094e0000359 => bfe00094e0000359
+        fmr. 0000000000000000 => 0000000000000000
+        fmr. 8000000000000000 => 8000000000000000
+        fmr. 7ff0000000000000 => 7ff0000000000000
+        fmr. fff0000000000000 => fff0000000000000
+        fmr. 7ff7ffffffffffff => 7ff7ffffffffffff
+        fmr. fff7ffffffffffff => fff7ffffffffffff
+        fmr. 7ff8000000000000 => 7ff8000000000000
+        fmr. fff8000000000000 => fff8000000000000
+
+       fneg. 0010000000000001 => 8010000000000001
+       fneg. 00100094e0000359 => 80100094e0000359
+       fneg. 3fe0000000000001 => bfe0000000000001
+       fneg. 3fe00094e0000359 => bfe00094e0000359
+       fneg. 8010000000000001 => 0010000000000001
+       fneg. 80100094e0000359 => 00100094e0000359
+       fneg. bfe0000000000001 => 3fe0000000000001
+       fneg. bfe00094e0000359 => 3fe00094e0000359
+       fneg. 0000000000000000 => 8000000000000000
+       fneg. 8000000000000000 => 0000000000000000
+       fneg. 7ff0000000000000 => fff0000000000000
+       fneg. fff0000000000000 => 7ff0000000000000
+       fneg. 7ff7ffffffffffff => fff7ffffffffffff
+       fneg. fff7ffffffffffff => 7ff7ffffffffffff
+       fneg. 7ff8000000000000 => fff8000000000000
+       fneg. fff8000000000000 => 7ff8000000000000
+
+       fabs. 0010000000000001 => 0010000000000001
+       fabs. 00100094e0000359 => 00100094e0000359
+       fabs. 3fe0000000000001 => 3fe0000000000001
+       fabs. 3fe00094e0000359 => 3fe00094e0000359
+       fabs. 8010000000000001 => 0010000000000001
+       fabs. 80100094e0000359 => 00100094e0000359
+       fabs. bfe0000000000001 => 3fe0000000000001
+       fabs. bfe00094e0000359 => 3fe00094e0000359
+       fabs. 0000000000000000 => 0000000000000000
+       fabs. 8000000000000000 => 0000000000000000
+       fabs. 7ff0000000000000 => 7ff0000000000000
+       fabs. fff0000000000000 => 7ff0000000000000
+       fabs. 7ff7ffffffffffff => 7ff7ffffffffffff
+       fabs. fff7ffffffffffff => 7ff7ffffffffffff
+       fabs. 7ff8000000000000 => 7ff8000000000000
+       fabs. fff8000000000000 => 7ff8000000000000
+
+      fnabs. 0010000000000001 => 8010000000000001
+      fnabs. 00100094e0000359 => 80100094e0000359
+      fnabs. 3fe0000000000001 => bfe0000000000001
+      fnabs. 3fe00094e0000359 => bfe00094e0000359
+      fnabs. 8010000000000001 => 8010000000000001
+      fnabs. 80100094e0000359 => 80100094e0000359
+      fnabs. bfe0000000000001 => bfe0000000000001
+      fnabs. bfe00094e0000359 => bfe00094e0000359
+      fnabs. 0000000000000000 => 8000000000000000
+      fnabs. 8000000000000000 => 8000000000000000
+      fnabs. 7ff0000000000000 => fff0000000000000
+      fnabs. fff0000000000000 => fff0000000000000
+      fnabs. 7ff7ffffffffffff => fff7ffffffffffff
+      fnabs. fff7ffffffffffff => fff7ffffffffffff
+      fnabs. 7ff8000000000000 => fff8000000000000
+      fnabs. fff8000000000000 => fff8000000000000
+
+PPC floating point status register manipulation insns:
+PPC floating point status register manipulation insns
+  with flags update:
+PPC float load insns
+    with one register + one 16 bits immediate args with flags update:
+         lfs 0010000000000001, -120 => 37e0000000000000, 1001c0b0
+         lfs 00100094e0000359, -112 => 37e0009400000000, 1001c0b0
+         lfs 3fe0000000000001, -104 => 3ffc000000000000, 1001c0b0
+         lfs 3fe00094e0000359,  -96 => 3ffc001280000000, 1001c0b0
+         lfs 8010000000000001,  -88 => b7e0000000000000, 1001c0b0
+         lfs 80100094e0000359,  -80 => b7e0009400000000, 1001c0b0
+         lfs bfe0000000000001,  -72 => bffc000000000000, 1001c0b0
+         lfs bfe00094e0000359,  -64 => bffc001280000000, 1001c0b0
+         lfs 0000000000000000,  -56 => 0000000000000000, 1001c0b0
+         lfs 8000000000000000,  -48 => 8000000000000000, 1001c0b0
+         lfs 7ff0000000000000,  -40 => 7ffe000000000000, 1001c0b0
+         lfs fff0000000000000,  -32 => fffe000000000000, 1001c0b0
+         lfs 7ff7ffffffffffff,  -24 => 7ffeffffe0000000, 1001c0b0
+         lfs fff7ffffffffffff,  -16 => fffeffffe0000000, 1001c0b0
+         lfs 7ff8000000000000,   -8 => 7fff000000000000, 1001c0b0
+         lfs 0010000000000001,    0 => 37e0000000000000, 1001c038
+         lfs 00100094e0000359,    8 => 37e0009400000000, 1001c038
+         lfs 3fe0000000000001,   16 => 3ffc000000000000, 1001c038
+         lfs 3fe00094e0000359,   24 => 3ffc001280000000, 1001c038
+         lfs 8010000000000001,   32 => b7e0000000000000, 1001c038
+         lfs 80100094e0000359,   40 => b7e0009400000000, 1001c038
+         lfs bfe0000000000001,   48 => bffc000000000000, 1001c038
+         lfs bfe00094e0000359,   56 => bffc001280000000, 1001c038
+         lfs 0000000000000000,   64 => 0000000000000000, 1001c038
+         lfs 8000000000000000,   72 => 8000000000000000, 1001c038
+         lfs 7ff0000000000000,   80 => 7ffe000000000000, 1001c038
+         lfs fff0000000000000,   88 => fffe000000000000, 1001c038
+         lfs 7ff7ffffffffffff,   96 => 7ffeffffe0000000, 1001c038
+         lfs fff7ffffffffffff,  104 => fffeffffe0000000, 1001c038
+         lfs 7ff8000000000000,  112 => 7fff000000000000, 1001c038
+         lfs fff8000000000000,  120 => ffff000000000000, 1001c038
+
+        lfsu 0010000000000001, -120 => 37e0000000000000, 1001c038
+        lfsu 00100094e0000359, -112 => 37e0009400000000, 1001c040
+        lfsu 3fe0000000000001, -104 => 3ffc000000000000, 1001c048
+        lfsu 3fe00094e0000359,  -96 => 3ffc001280000000, 1001c050
+        lfsu 8010000000000001,  -88 => b7e0000000000000, 1001c058
+        lfsu 80100094e0000359,  -80 => b7e0009400000000, 1001c060
+        lfsu bfe0000000000001,  -72 => bffc000000000000, 1001c068
+        lfsu bfe00094e0000359,  -64 => bffc001280000000, 1001c070
+        lfsu 0000000000000000,  -56 => 0000000000000000, 1001c078
+        lfsu 8000000000000000,  -48 => 8000000000000000, 1001c080
+        lfsu 7ff0000000000000,  -40 => 7ffe000000000000, 1001c088
+        lfsu fff0000000000000,  -32 => fffe000000000000, 1001c090
+        lfsu 7ff7ffffffffffff,  -24 => 7ffeffffe0000000, 1001c098
+        lfsu fff7ffffffffffff,  -16 => fffeffffe0000000, 1001c0a0
+        lfsu 7ff8000000000000,   -8 => 7fff000000000000, 1001c0a8
+        lfsu 0010000000000001,    0 => 37e0000000000000, 1001c038
+        lfsu 00100094e0000359,    8 => 37e0009400000000, 1001c040
+        lfsu 3fe0000000000001,   16 => 3ffc000000000000, 1001c048
+        lfsu 3fe00094e0000359,   24 => 3ffc001280000000, 1001c050
+        lfsu 8010000000000001,   32 => b7e0000000000000, 1001c058
+        lfsu 80100094e0000359,   40 => b7e0009400000000, 1001c060
+        lfsu bfe0000000000001,   48 => bffc000000000000, 1001c068
+        lfsu bfe00094e0000359,   56 => bffc001280000000, 1001c070
+        lfsu 0000000000000000,   64 => 0000000000000000, 1001c078
+        lfsu 8000000000000000,   72 => 8000000000000000, 1001c080
+        lfsu 7ff0000000000000,   80 => 7ffe000000000000, 1001c088
+        lfsu fff0000000000000,   88 => fffe000000000000, 1001c090
+        lfsu 7ff7ffffffffffff,   96 => 7ffeffffe0000000, 1001c098
+        lfsu fff7ffffffffffff,  104 => fffeffffe0000000, 1001c0a0
+        lfsu 7ff8000000000000,  112 => 7fff000000000000, 1001c0a8
+        lfsu fff8000000000000,  120 => ffff000000000000, 1001c0b0
+
+         lfd 0010000000000001, -120 => 0010000000000001, 1001c0b0
+         lfd 00100094e0000359, -112 => 00100094e0000359, 1001c0b0
+         lfd 3fe0000000000001, -104 => 3fe0000000000001, 1001c0b0
+         lfd 3fe00094e0000359,  -96 => 3fe00094e0000359, 1001c0b0
+         lfd 8010000000000001,  -88 => 8010000000000001, 1001c0b0
+         lfd 80100094e0000359,  -80 => 80100094e0000359, 1001c0b0
+         lfd bfe0000000000001,  -72 => bfe0000000000001, 1001c0b0
+         lfd bfe00094e0000359,  -64 => bfe00094e0000359, 1001c0b0
+         lfd 0000000000000000,  -56 => 0000000000000000, 1001c0b0
+         lfd 8000000000000000,  -48 => 8000000000000000, 1001c0b0
+         lfd 7ff0000000000000,  -40 => 7ff0000000000000, 1001c0b0
+         lfd fff0000000000000,  -32 => fff0000000000000, 1001c0b0
+         lfd 7ff7ffffffffffff,  -24 => 7ff7ffffffffffff, 1001c0b0
+         lfd fff7ffffffffffff,  -16 => fff7ffffffffffff, 1001c0b0
+         lfd 7ff8000000000000,   -8 => 7ff8000000000000, 1001c0b0
+         lfd 0010000000000001,    0 => 0010000000000001, 1001c038
+         lfd 00100094e0000359,    8 => 00100094e0000359, 1001c038
+         lfd 3fe0000000000001,   16 => 3fe0000000000001, 1001c038
+         lfd 3fe00094e0000359,   24 => 3fe00094e0000359, 1001c038
+         lfd 8010000000000001,   32 => 8010000000000001, 1001c038
+         lfd 80100094e0000359,   40 => 80100094e0000359, 1001c038
+         lfd bfe0000000000001,   48 => bfe0000000000001, 1001c038
+         lfd bfe00094e0000359,   56 => bfe00094e0000359, 1001c038
+         lfd 0000000000000000,   64 => 0000000000000000, 1001c038
+         lfd 8000000000000000,   72 => 8000000000000000, 1001c038
+         lfd 7ff0000000000000,   80 => 7ff0000000000000, 1001c038
+         lfd fff0000000000000,   88 => fff0000000000000, 1001c038
+         lfd 7ff7ffffffffffff,   96 => 7ff7ffffffffffff, 1001c038
+         lfd fff7ffffffffffff,  104 => fff7ffffffffffff, 1001c038
+         lfd 7ff8000000000000,  112 => 7ff8000000000000, 1001c038
+         lfd fff8000000000000,  120 => fff8000000000000, 1001c038
+
+        lfdu 0010000000000001, -120 => 0010000000000001, 1001c038
+        lfdu 00100094e0000359, -112 => 00100094e0000359, 1001c040
+        lfdu 3fe0000000000001, -104 => 3fe0000000000001, 1001c048
+        lfdu 3fe00094e0000359,  -96 => 3fe00094e0000359, 1001c050
+        lfdu 8010000000000001,  -88 => 8010000000000001, 1001c058
+        lfdu 80100094e0000359,  -80 => 80100094e0000359, 1001c060
+        lfdu bfe0000000000001,  -72 => bfe0000000000001, 1001c068
+        lfdu bfe00094e0000359,  -64 => bfe00094e0000359, 1001c070
+        lfdu 0000000000000000,  -56 => 0000000000000000, 1001c078
+        lfdu 8000000000000000,  -48 => 8000000000000000, 1001c080
+        lfdu 7ff0000000000000,  -40 => 7ff0000000000000, 1001c088
+        lfdu fff0000000000000,  -32 => fff0000000000000, 1001c090
+        lfdu 7ff7ffffffffffff,  -24 => 7ff7ffffffffffff, 1001c098
+        lfdu fff7ffffffffffff,  -16 => fff7ffffffffffff, 1001c0a0
+        lfdu 7ff8000000000000,   -8 => 7ff8000000000000, 1001c0a8
+        lfdu 0010000000000001,    0 => 0010000000000001, 1001c038
+        lfdu 00100094e0000359,    8 => 00100094e0000359, 1001c040
+        lfdu 3fe0000000000001,   16 => 3fe0000000000001, 1001c048
+        lfdu 3fe00094e0000359,   24 => 3fe00094e0000359, 1001c050
+        lfdu 8010000000000001,   32 => 8010000000000001, 1001c058
+        lfdu 80100094e0000359,   40 => 80100094e0000359, 1001c060
+        lfdu bfe0000000000001,   48 => bfe0000000000001, 1001c068
+        lfdu bfe00094e0000359,   56 => bfe00094e0000359, 1001c070
+        lfdu 0000000000000000,   64 => 0000000000000000, 1001c078
+        lfdu 8000000000000000,   72 => 8000000000000000, 1001c080
+        lfdu 7ff0000000000000,   80 => 7ff0000000000000, 1001c088
+        lfdu fff0000000000000,   88 => fff0000000000000, 1001c090
+        lfdu 7ff7ffffffffffff,   96 => 7ff7ffffffffffff, 1001c098
+        lfdu fff7ffffffffffff,  104 => fff7ffffffffffff, 1001c0a0
+        lfdu 7ff8000000000000,  112 => 7ff8000000000000, 1001c0a8
+        lfdu fff8000000000000,  120 => fff8000000000000, 1001c0b0
+
+PPC float load insns with two register args:
+        lfsx 0010000000000001, -120 => 37e0000000000000, 1001c0b0
+        lfsx 00100094e0000359, -112 => 37e0009400000000, 1001c0b0
+        lfsx 3fe0000000000001, -104 => 3ffc000000000000, 1001c0b0
+        lfsx 3fe00094e0000359,  -96 => 3ffc001280000000, 1001c0b0
+        lfsx 8010000000000001,  -88 => b7e0000000000000, 1001c0b0
+        lfsx 80100094e0000359,  -80 => b7e0009400000000, 1001c0b0
+        lfsx bfe0000000000001,  -72 => bffc000000000000, 1001c0b0
+        lfsx bfe00094e0000359,  -64 => bffc001280000000, 1001c0b0
+        lfsx 0000000000000000,  -56 => 0000000000000000, 1001c0b0
+        lfsx 8000000000000000,  -48 => 8000000000000000, 1001c0b0
+        lfsx 7ff0000000000000,  -40 => 7ffe000000000000, 1001c0b0
+        lfsx fff0000000000000,  -32 => fffe000000000000, 1001c0b0
+        lfsx 7ff7ffffffffffff,  -24 => 7ffeffffe0000000, 1001c0b0
+        lfsx fff7ffffffffffff,  -16 => fffeffffe0000000, 1001c0b0
+        lfsx 7ff8000000000000,   -8 => 7fff000000000000, 1001c0b0
+        lfsx 0010000000000001,    0 => 37e0000000000000, 1001c038
+        lfsx 00100094e0000359,    8 => 37e0009400000000, 1001c038
+        lfsx 3fe0000000000001,   16 => 3ffc000000000000, 1001c038
+        lfsx 3fe00094e0000359,   24 => 3ffc001280000000, 1001c038
+        lfsx 8010000000000001,   32 => b7e0000000000000, 1001c038
+        lfsx 80100094e0000359,   40 => b7e0009400000000, 1001c038
+        lfsx bfe0000000000001,   48 => bffc000000000000, 1001c038
+        lfsx bfe00094e0000359,   56 => bffc001280000000, 1001c038
+        lfsx 0000000000000000,   64 => 0000000000000000, 1001c038
+        lfsx 8000000000000000,   72 => 8000000000000000, 1001c038
+        lfsx 7ff0000000000000,   80 => 7ffe000000000000, 1001c038
+        lfsx fff0000000000000,   88 => fffe000000000000, 1001c038
+        lfsx 7ff7ffffffffffff,   96 => 7ffeffffe0000000, 1001c038
+        lfsx fff7ffffffffffff,  104 => fffeffffe0000000, 1001c038
+        lfsx 7ff8000000000000,  112 => 7fff000000000000, 1001c038
+        lfsx fff8000000000000,  120 => ffff000000000000, 1001c038
+
+       lfsux 0010000000000001, -120 => 37e0000000000000, 1001c038
+       lfsux 00100094e0000359, -112 => 37e0009400000000, 1001c040
+       lfsux 3fe0000000000001, -104 => 3ffc000000000000, 1001c048
+       lfsux 3fe00094e0000359,  -96 => 3ffc001280000000, 1001c050
+       lfsux 8010000000000001,  -88 => b7e0000000000000, 1001c058
+       lfsux 80100094e0000359,  -80 => b7e0009400000000, 1001c060
+       lfsux bfe0000000000001,  -72 => bffc000000000000, 1001c068
+       lfsux bfe00094e0000359,  -64 => bffc001280000000, 1001c070
+       lfsux 0000000000000000,  -56 => 0000000000000000, 1001c078
+       lfsux 8000000000000000,  -48 => 8000000000000000, 1001c080
+       lfsux 7ff0000000000000,  -40 => 7ffe000000000000, 1001c088
+       lfsux fff0000000000000,  -32 => fffe000000000000, 1001c090
+       lfsux 7ff7ffffffffffff,  -24 => 7ffeffffe0000000, 1001c098
+       lfsux fff7ffffffffffff,  -16 => fffeffffe0000000, 1001c0a0
+       lfsux 7ff8000000000000,   -8 => 7fff000000000000, 1001c0a8
+       lfsux 0010000000000001,    0 => 37e0000000000000, 1001c038
+       lfsux 00100094e0000359,    8 => 37e0009400000000, 1001c040
+       lfsux 3fe0000000000001,   16 => 3ffc000000000000, 1001c048
+       lfsux 3fe00094e0000359,   24 => 3ffc001280000000, 1001c050
+       lfsux 8010000000000001,   32 => b7e0000000000000, 1001c058
+       lfsux 80100094e0000359,   40 => b7e0009400000000, 1001c060
+       lfsux bfe0000000000001,   48 => bffc000000000000, 1001c068
+       lfsux bfe00094e0000359,   56 => bffc001280000000, 1001c070
+       lfsux 0000000000000000,   64 => 0000000000000000, 1001c078
+       lfsux 8000000000000000,   72 => 8000000000000000, 1001c080
+       lfsux 7ff0000000000000,   80 => 7ffe000000000000, 1001c088
+       lfsux fff0000000000000,   88 => fffe000000000000, 1001c090
+       lfsux 7ff7ffffffffffff,   96 => 7ffeffffe0000000, 1001c098
+       lfsux fff7ffffffffffff,  104 => fffeffffe0000000, 1001c0a0
+       lfsux 7ff8000000000000,  112 => 7fff000000000000, 1001c0a8
+       lfsux fff8000000000000,  120 => ffff000000000000, 1001c0b0
+
+        lfdx 0010000000000001, -120 => 0010000000000001, 1001c0b0
+        lfdx 00100094e0000359, -112 => 00100094e0000359, 1001c0b0
+        lfdx 3fe0000000000001, -104 => 3fe0000000000001, 1001c0b0
+        lfdx 3fe00094e0000359,  -96 => 3fe00094e0000359, 1001c0b0
+        lfdx 8010000000000001,  -88 => 8010000000000001, 1001c0b0
+        lfdx 80100094e0000359,  -80 => 80100094e0000359, 1001c0b0
+        lfdx bfe0000000000001,  -72 => bfe0000000000001, 1001c0b0
+        lfdx bfe00094e0000359,  -64 => bfe00094e0000359, 1001c0b0
+        lfdx 0000000000000000,  -56 => 0000000000000000, 1001c0b0
+        lfdx 8000000000000000,  -48 => 8000000000000000, 1001c0b0
+        lfdx 7ff0000000000000,  -40 => 7ff0000000000000, 1001c0b0
+        lfdx fff0000000000000,  -32 => fff0000000000000, 1001c0b0
+        lfdx 7ff7ffffffffffff,  -24 => 7ff7ffffffffffff, 1001c0b0
+        lfdx fff7ffffffffffff,  -16 => fff7ffffffffffff, 1001c0b0
+        lfdx 7ff8000000000000,   -8 => 7ff8000000000000, 1001c0b0
+        lfdx 0010000000000001,    0 => 0010000000000001, 1001c038
+        lfdx 00100094e0000359,    8 => 00100094e0000359, 1001c038
+        lfdx 3fe0000000000001,   16 => 3fe0000000000001, 1001c038
+        lfdx 3fe00094e0000359,   24 => 3fe00094e0000359, 1001c038
+        lfdx 8010000000000001,   32 => 8010000000000001, 1001c038
+        lfdx 80100094e0000359,   40 => 80100094e0000359, 1001c038
+        lfdx bfe0000000000001,   48 => bfe0000000000001, 1001c038
+        lfdx bfe00094e0000359,   56 => bfe00094e0000359, 1001c038
+        lfdx 0000000000000000,   64 => 0000000000000000, 1001c038
+        lfdx 8000000000000000,   72 => 8000000000000000, 1001c038
+        lfdx 7ff0000000000000,   80 => 7ff0000000000000, 1001c038
+        lfdx fff0000000000000,   88 => fff0000000000000, 1001c038
+        lfdx 7ff7ffffffffffff,   96 => 7ff7ffffffffffff, 1001c038
+        lfdx fff7ffffffffffff,  104 => fff7ffffffffffff, 1001c038
+        lfdx 7ff8000000000000,  112 => 7ff8000000000000, 1001c038
+        lfdx fff8000000000000,  120 => fff8000000000000, 1001c038
+
+       lfdux 0010000000000001, -120 => 0010000000000001, 1001c038
+       lfdux 00100094e0000359, -112 => 00100094e0000359, 1001c040
+       lfdux 3fe0000000000001, -104 => 3fe0000000000001, 1001c048
+       lfdux 3fe00094e0000359,  -96 => 3fe00094e0000359, 1001c050
+       lfdux 8010000000000001,  -88 => 8010000000000001, 1001c058
+       lfdux 80100094e0000359,  -80 => 80100094e0000359, 1001c060
+       lfdux bfe0000000000001,  -72 => bfe0000000000001, 1001c068
+       lfdux bfe00094e0000359,  -64 => bfe00094e0000359, 1001c070
+       lfdux 0000000000000000,  -56 => 0000000000000000, 1001c078
+       lfdux 8000000000000000,  -48 => 8000000000000000, 1001c080
+       lfdux 7ff0000000000000,  -40 => 7ff0000000000000, 1001c088
+       lfdux fff0000000000000,  -32 => fff0000000000000, 1001c090
+       lfdux 7ff7ffffffffffff,  -24 => 7ff7ffffffffffff, 1001c098
+       lfdux fff7ffffffffffff,  -16 => fff7ffffffffffff, 1001c0a0
+       lfdux 7ff8000000000000,   -8 => 7ff8000000000000, 1001c0a8
+       lfdux 0010000000000001,    0 => 0010000000000001, 1001c038
+       lfdux 00100094e0000359,    8 => 00100094e0000359, 1001c040
+       lfdux 3fe0000000000001,   16 => 3fe0000000000001, 1001c048
+       lfdux 3fe00094e0000359,   24 => 3fe00094e0000359, 1001c050
+       lfdux 8010000000000001,   32 => 8010000000000001, 1001c058
+       lfdux 80100094e0000359,   40 => 80100094e0000359, 1001c060
+       lfdux bfe0000000000001,   48 => bfe0000000000001, 1001c068
+       lfdux bfe00094e0000359,   56 => bfe00094e0000359, 1001c070
+       lfdux 0000000000000000,   64 => 0000000000000000, 1001c078
+       lfdux 8000000000000000,   72 => 8000000000000000, 1001c080
+       lfdux 7ff0000000000000,   80 => 7ff0000000000000, 1001c088
+       lfdux fff0000000000000,   88 => fff0000000000000, 1001c090
+       lfdux 7ff7ffffffffffff,   96 => 7ff7ffffffffffff, 1001c098
+       lfdux fff7ffffffffffff,  104 => fff7ffffffffffff, 1001c0a0
+       lfdux 7ff8000000000000,  112 => 7ff8000000000000, 1001c0a8
+       lfdux fff8000000000000,  120 => fff8000000000000, 1001c0b0
+
+PPC float store insns
+    with one register + one 16 bits immediate args with flags update:
+         stfs 0010000000000001,  -56 => 0000000000000000, 1001c268
+         stfs 00100094e0000359,  -48 => 0000000000000000, 1001c268
+         stfs 3fe0000000000001,  -40 => 3f00000000000000, 1001c268
+         stfs 3fe00094e0000359,  -32 => 3f0004a700000000, 1001c268
+         stfs 8010000000000001,  -24 => 8000000000000000, 1001c268
+         stfs 80100094e0000359,  -16 => 8000000000000000, 1001c268
+         stfs bfe0000000000001,   -8 => bf00000000000000, 1001c268
+         stfs 0010000000000001,    0 => 0000000000000000, 1001c230
+         stfs 00100094e0000359,    8 => 0000000000000000, 1001c230
+         stfs 3fe0000000000001,   16 => 3f00000000000000, 1001c230
+         stfs 3fe00094e0000359,   24 => 3f0004a700000000, 1001c230
+         stfs 8010000000000001,   32 => 8000000000000000, 1001c230
+         stfs 80100094e0000359,   40 => 8000000000000000, 1001c230
+         stfs bfe0000000000001,   48 => bf00000000000000, 1001c230
+         stfs bfe00094e0000359,   56 => bf0004a700000000, 1001c230
+
+        stfsu 0010000000000001,  -56 => 0000000000000000, 1001c230
+        stfsu 00100094e0000359,  -48 => 0000000000000000, 1001c238
+        stfsu 3fe0000000000001,  -40 => 3f00000000000000, 1001c240
+        stfsu 3fe00094e0000359,  -32 => 3f0004a700000000, 1001c248
+        stfsu 8010000000000001,  -24 => 8000000000000000, 1001c250
+        stfsu 80100094e0000359,  -16 => 8000000000000000, 1001c258
+        stfsu bfe0000000000001,   -8 => bf00000000000000, 1001c260
+        stfsu 0010000000000001,    0 => 0000000000000000, 1001c230
+        stfsu 00100094e0000359,    8 => 0000000000000000, 1001c238
+        stfsu 3fe0000000000001,   16 => 3f00000000000000, 1001c240
+        stfsu 3fe00094e0000359,   24 => 3f0004a700000000, 1001c248
+        stfsu 8010000000000001,   32 => 8000000000000000, 1001c250
+        stfsu 80100094e0000359,   40 => 8000000000000000, 1001c258
+        stfsu bfe0000000000001,   48 => bf00000000000000, 1001c260
+        stfsu bfe00094e0000359,   56 => bf0004a700000000, 1001c268
+
+         stfd 0010000000000001, -120 => 0010000000000001, 1001c2f0
+         stfd 00100094e0000359, -112 => 00100094e0000359, 1001c2f0
+         stfd 3fe0000000000001, -104 => 3fe0000000000001, 1001c2f0
+         stfd 3fe00094e0000359,  -96 => 3fe00094e0000359, 1001c2f0
+         stfd 8010000000000001,  -88 => 8010000000000001, 1001c2f0
+         stfd 80100094e0000359,  -80 => 80100094e0000359, 1001c2f0
+         stfd bfe0000000000001,  -72 => bfe0000000000001, 1001c2f0
+         stfd bfe00094e0000359,  -64 => bfe00094e0000359, 1001c2f0
+         stfd 0000000000000000,  -56 => 0000000000000000, 1001c2f0
+         stfd 8000000000000000,  -48 => 8000000000000000, 1001c2f0
+         stfd 7ff0000000000000,  -40 => 7ff0000000000000, 1001c2f0
+         stfd fff0000000000000,  -32 => fff0000000000000, 1001c2f0
+         stfd 7ff7ffffffffffff,  -24 => 7ff7ffffffffffff, 1001c2f0
+         stfd fff7ffffffffffff,  -16 => fff7ffffffffffff, 1001c2f0
+         stfd 7ff8000000000000,   -8 => 7ff8000000000000, 1001c2f0
+         stfd 0010000000000001,    0 => 0010000000000001, 1001c278
+         stfd 00100094e0000359,    8 => 00100094e0000359, 1001c278
+         stfd 3fe0000000000001,   16 => 3fe0000000000001, 1001c278
+         stfd 3fe00094e0000359,   24 => 3fe00094e0000359, 1001c278
+         stfd 8010000000000001,   32 => 8010000000000001, 1001c278
+         stfd 80100094e0000359,   40 => 80100094e0000359, 1001c278
+         stfd bfe0000000000001,   48 => bfe0000000000001, 1001c278
+         stfd bfe00094e0000359,   56 => bfe00094e0000359, 1001c278
+         stfd 0000000000000000,   64 => 0000000000000000, 1001c278
+         stfd 8000000000000000,   72 => 8000000000000000, 1001c278
+         stfd 7ff0000000000000,   80 => 7ff0000000000000, 1001c278
+         stfd fff0000000000000,   88 => fff0000000000000, 1001c278
+         stfd 7ff7ffffffffffff,   96 => 7ff7ffffffffffff, 1001c278
+         stfd fff7ffffffffffff,  104 => fff7ffffffffffff, 1001c278
+         stfd 7ff8000000000000,  112 => 7ff8000000000000, 1001c278
+         stfd fff8000000000000,  120 => fff8000000000000, 1001c278
+
+        stfdu 0010000000000001, -120 => 0010000000000001, 1001c208
+        stfdu 00100094e0000359, -112 => 00100094e0000359, 1001c210
+        stfdu 3fe0000000000001, -104 => 3fe0000000000001, 1001c218
+        stfdu 3fe00094e0000359,  -96 => 3fe00094e0000359, 1001c220
+        stfdu 8010000000000001,  -88 => 8010000000000001, 1001c228
+        stfdu 80100094e0000359,  -80 => 80100094e0000359, 1001c230
+        stfdu bfe0000000000001,  -72 => bfe0000000000001, 1001c238
+        stfdu bfe00094e0000359,  -64 => bfe00094e0000359, 1001c240
+        stfdu 0000000000000000,  -56 => 0000000000000000, 1001c248
+        stfdu 8000000000000000,  -48 => 8000000000000000, 1001c250
+        stfdu 7ff0000000000000,  -40 => 7ff0000000000000, 1001c258
+        stfdu fff0000000000000,  -32 => fff0000000000000, 1001c260
+        stfdu 7ff7ffffffffffff,  -24 => 7ff7ffffffffffff, 1001c268
+        stfdu fff7ffffffffffff,  -16 => fff7ffffffffffff, 1001c270
+        stfdu 7ff8000000000000,   -8 => 7ff8000000000000, 1001c278
+        stfdu 0010000000000001,    0 => 0010000000000001, 1001c208
+        stfdu 00100094e0000359,    8 => 00100094e0000359, 1001c210
+        stfdu 3fe0000000000001,   16 => 3fe0000000000001, 1001c218
+        stfdu 3fe00094e0000359,   24 => 3fe00094e0000359, 1001c220
+        stfdu 8010000000000001,   32 => 8010000000000001, 1001c228
+        stfdu 80100094e0000359,   40 => 80100094e0000359, 1001c230
+        stfdu bfe0000000000001,   48 => bfe0000000000001, 1001c238
+        stfdu bfe00094e0000359,   56 => bfe00094e0000359, 1001c240
+        stfdu 0000000000000000,   64 => 0000000000000000, 1001c248
+        stfdu 8000000000000000,   72 => 8000000000000000, 1001c250
+        stfdu 7ff0000000000000,   80 => 7ff0000000000000, 1001c258
+        stfdu fff0000000000000,   88 => fff0000000000000, 1001c260
+        stfdu 7ff7ffffffffffff,   96 => 7ff7ffffffffffff, 1001c268
+        stfdu fff7ffffffffffff,  104 => fff7ffffffffffff, 1001c270
+        stfdu 7ff8000000000000,  112 => 7ff8000000000000, 1001c278
+        stfdu fff8000000000000,  120 => fff8000000000000, 1001c280
+
+PPC float store insns with three register args:
+        stfsx 0010000000000001,    0 => 0000000000000000, 1001c208
+        stfsx 00100094e0000359,    8 => 0000000000000000, 1001c208
+        stfsx 3fe0000000000001,   16 => 3f00000000000000, 1001c208
+        stfsx 3fe00094e0000359,   24 => 3f0004a700000000, 1001c208
+        stfsx 8010000000000001,   32 => 8000000000000000, 1001c208
+        stfsx 80100094e0000359,   40 => 8000000000000000, 1001c208
+        stfsx bfe0000000000001,   48 => bf00000000000000, 1001c208
+        stfsx bfe00094e0000359,   56 => bf0004a700000000, 1001c208
+
+       stfsux 0010000000000001,    0 => 0000000000000000, 1001c208
+       stfsux 00100094e0000359,    8 => 0000000000000000, 1001c210
+       stfsux 3fe0000000000001,   16 => 3f00000000000000, 1001c218
+       stfsux 3fe00094e0000359,   24 => 3f0004a700000000, 1001c220
+       stfsux 8010000000000001,   32 => 8000000000000000, 1001c228
+       stfsux 80100094e0000359,   40 => 8000000000000000, 1001c230
+       stfsux bfe0000000000001,   48 => bf00000000000000, 1001c238
+       stfsux bfe00094e0000359,   56 => bf0004a700000000, 1001c240
+
+        stfdx 0010000000000001,    0 => 0010000000000001, 1001c250
+        stfdx 00100094e0000359,    8 => 00100094e0000359, 1001c250
+        stfdx 3fe0000000000001,   16 => 3fe0000000000001, 1001c250
+        stfdx 3fe00094e0000359,   24 => 3fe00094e0000359, 1001c250
+        stfdx 8010000000000001,   32 => 8010000000000001, 1001c250
+        stfdx 80100094e0000359,   40 => 80100094e0000359, 1001c250
+        stfdx bfe0000000000001,   48 => bfe0000000000001, 1001c250
+        stfdx bfe00094e0000359,   56 => bfe00094e0000359, 1001c250
+        stfdx 0000000000000000,   64 => 0000000000000000, 1001c250
+        stfdx 8000000000000000,   72 => 8000000000000000, 1001c250
+        stfdx 7ff0000000000000,   80 => 7ff0000000000000, 1001c250
+        stfdx fff0000000000000,   88 => fff0000000000000, 1001c250
+        stfdx 7ff7ffffffffffff,   96 => 7ff7ffffffffffff, 1001c250
+        stfdx fff7ffffffffffff,  104 => fff7ffffffffffff, 1001c250
+        stfdx 7ff8000000000000,  112 => 7ff8000000000000, 1001c250
+        stfdx fff8000000000000,  120 => fff8000000000000, 1001c250
+
+       stfdux 0010000000000001,    0 => 0010000000000001, 1001c208
+       stfdux 00100094e0000359,    8 => 00100094e0000359, 1001c210
+       stfdux 3fe0000000000001,   16 => 3fe0000000000001, 1001c218
+       stfdux 3fe00094e0000359,   24 => 3fe00094e0000359, 1001c220
+       stfdux 8010000000000001,   32 => 8010000000000001, 1001c228
+       stfdux 80100094e0000359,   40 => 80100094e0000359, 1001c230
+       stfdux bfe0000000000001,   48 => bfe0000000000001, 1001c238
+       stfdux bfe00094e0000359,   56 => bfe00094e0000359, 1001c240
+       stfdux 0000000000000000,   64 => 0000000000000000, 1001c248
+       stfdux 8000000000000000,   72 => 8000000000000000, 1001c250
+       stfdux 7ff0000000000000,   80 => 7ff0000000000000, 1001c258
+       stfdux fff0000000000000,   88 => fff0000000000000, 1001c260
+       stfdux 7ff7ffffffffffff,   96 => 7ff7ffffffffffff, 1001c268
+       stfdux fff7ffffffffffff,  104 => fff7ffffffffffff, 1001c270
+       stfdux 7ff8000000000000,  112 => 7ff8000000000000, 1001c278
+       stfdux fff8000000000000,  120 => fff8000000000000, 1001c280
+
+All done. Tested 67 different instructions
diff --git a/none/tests/ppc32/jm-fp.vgtest b/none/tests/ppc32/jm-fp.vgtest
new file mode 100644
index 0000000..8586bfc
--- /dev/null
+++ b/none/tests/ppc32/jm-fp.vgtest
@@ -0,0 +1 @@
+prog: jm-insns -f
diff --git a/none/tests/ppc32/jm-insns.c b/none/tests/ppc32/jm-insns.c
index 792bce8..4f8d0fd 100644
--- a/none/tests/ppc32/jm-insns.c
+++ b/none/tests/ppc32/jm-insns.c
@@ -137,6 +137,28 @@
  *   0x3A2E0009   => addi 17, 14, 9
 */
 
+
+/**********************************************************************/
+/* Uncomment to enable many arguments for altivec insns */
+#define USAGE_SIMPLE
+
+/* Uncomment to enable many arguments for altivec insns */
+//#define ALTIVEC_ARGS_LARGE
+
+/* Uncomment to enable output of CR flags for float tests */
+//#define TEST_FLOAT_FLAGS
+
+/* Uncomment to enable debug output */
+//#define DEBUG_ARGS_BUILD
+//#define DEBUG_FILTER
+
+/* These should be set at build time */
+//#define NO_FLOAT
+//#define HAS_ALTIVEC
+//#define IS_PPC405
+/**********************************************************************/
+
+
 #include <stdint.h>
 
 register double f14 __asm__ ("f14");
@@ -245,18 +267,14 @@
 /* -------------- END #include "test-ppc.h" -------------- */
 
 
-#define USAGE_SIMPLE
-//#define ALTIVEC_ARGS_LARGE
 
 
-//#define DEBUG_ARGS_BUILD
 #if defined (DEBUG_ARGS_BUILD)
 #define AB_DPRINTF(fmt, args...) do { fprintf(stderr, fmt , ##args); } while (0)
 #else
 #define AB_DPRINTF(fmt, args...) do { } while (0)
 #endif
 
-//#define DEBUG_FILTER
 #if defined (DEBUG_FILTER)
 #define FDPRINTF(fmt, args...) do { fprintf(stderr, fmt , ##args); } while (0)
 #else
@@ -1720,6 +1738,11 @@
     __asm__ __volatile__ ("fnabs        17, 14");
 }
 
+static void test_fsqrt (void)
+{
+    __asm__ __volatile__ ("fsqrt        17, 14");
+}
+
 static test_t tests_fa_ops_one[] = {
    //    { &test_fres            , "        fres", },   // TODO: Not yet supported
    //    { &test_frsqrte         , "     frsqrte", },   // TODO: Not yet supported
@@ -1730,6 +1753,7 @@
     { &test_fneg            , "        fneg", },
     { &test_fabs            , "        fabs", },
     { &test_fnabs           , "       fnabs", },
+    { &test_fsqrt           , "       fsqrt", },
     { NULL,                   NULL,           },
 };
 #endif /* !defined (NO_FLOAT) */
@@ -1916,9 +1940,8 @@
 );
 
 static test_t tests_fst_ops_three_i16[] = {
-// TODO: Fix VEX to stop rounding these twice...
-//    { &test_stfs             , "         stfs", },
-//    { &test_stfsu            , "        stfsu", },
+    { &test_stfs             , "         stfs", },
+    { &test_stfsu            , "        stfsu", },
     { &test_stfd             , "         stfd", },
     { &test_stfdu            , "        stfdu", },
     { NULL,                   NULL,           },
@@ -1947,9 +1970,8 @@
 }
 
 static test_t tests_fst_ops_three[] = {
-// TODO: Fix VEX to stop rounding these twice...
-//    { &test_stfsx            , "        stfsx", },
-//    { &test_stfsux           , "       stfsux", },
+    { &test_stfsx            , "        stfsx", },
+    { &test_stfsux           , "       stfsux", },
     { &test_stfdx            , "        stfdx", },
     { &test_stfdux           , "       stfdux", },
     { NULL,                   NULL,           },
@@ -3939,6 +3961,7 @@
 
 static double *fargs;
 static int nb_fargs;
+static int nb_normal_fargs;
 static uint32_t *iargs;
 static int nb_iargs;
 static uint16_t *ii16;
@@ -3999,11 +4022,15 @@
    int s;
    int i=0;
    
+   /* Note: VEX isn't so hot with denormals, so don't bother
+      testing them: set exp > 0
+   */
+
    if ( arg_list_size == 1 ) {   // Large
       fargs = malloc(200 * sizeof(double));
       for (s=0; s<2; s++) {
          for (e0=0; e0<2; e0++) {
-            for (e1=0x000; ; e1 = ((e1 + 1) << 2) + 6) {
+            for (e1=0x001; ; e1 = ((e1 + 1) << 2) + 6) {
                if (e1 >= 0x400)
                   e1 = 0x3fe;
                exp = (e0 << 10) | e1;
@@ -4022,7 +4049,7 @@
       for (s=0; s<2; s++) {                                // x2
 //       for (e0=0; e0<2; e0++) {
             for (e1=0x001; ; e1 = ((e1 + 1) << 13) + 7) {  // x2
-//          for (e1=0x000; ; e1 = ((e1 + 1) << 5) + 7) {   // x3
+//          for (e1=0x001; ; e1 = ((e1 + 1) << 5) + 7) {   // x3
                if (e1 >= 0x400)
                   e1 = 0x3fe;
 //             exp = (e0 << 10) | e1;
@@ -4039,6 +4066,10 @@
       }
    }
 
+   /* To iterate over non-special values only */
+   nb_normal_fargs = i;
+
+
    /* Special values */
    /* +0.0      : 0 0x000 0x0000000000000 */
    s = 0;
@@ -5666,9 +5697,13 @@
    volatile uint32_t flags, tmpcr, tmpxer;
    int i, j, k;
 
-   for (i=0; i<nb_fargs; i+=3) {
-      for (j=0; j<nb_fargs; j+=5) {
-         for (k=0; k<nb_fargs; k+=7) {
+   /* Note: using nb_normal_fargs:
+      - not testing special values for these insns
+   */
+
+   for (i=0; i<nb_normal_fargs; i+=3) {
+      for (j=0; j<nb_normal_fargs; j+=5) {
+         for (k=0; k<nb_normal_fargs; k+=7) {
             u0 = *(uint64_t *)(&fargs[i]);
             u1 = *(uint64_t *)(&fargs[j]);
             u2 = *(uint64_t *)(&fargs[k]);
@@ -5697,8 +5732,18 @@
             __asm__ __volatile__ ("mtcr 18");
             r18 = tmpxer;
             __asm__ __volatile__ ("mtxer 18");
+
+            /* Note: zapping the bottom byte of the result, 
+               as vex's accuracy isn't perfect */
+            ur &= 0xFFFFFFFFFFFFFF00ULL;
+
+#if defined TEST_FLOAT_FLAGS
             printf("%s %016llx, %016llx, %016llx => %016llx (%08x)\n",
                    name, u0, u1, u2, ur, flags);
+#else
+            printf("%s %016llx, %016llx, %016llx => %016llx\n",
+                   name, u0, u1, u2, ur);
+#endif
          }
          if (verbose) printf("\n");
       }
@@ -5740,8 +5785,13 @@
          __asm__ __volatile__ ("mtcr 18");
          r18 = tmpxer;
          __asm__ __volatile__ ("mtxer 18");
+#if defined TEST_FLOAT_FLAGS
          printf("%s %016llx, %016llx => %016llx (%08x)\n",
                 name, u0, u1, ur, flags);
+#else
+         printf("%s %016llx, %016llx => %016llx\n",
+                name, u0, u1, ur);
+#endif
       }
       if (verbose) printf("\n");
    }
@@ -5754,7 +5804,11 @@
    uint64_t u0, ur;
    volatile uint32_t flags, tmpcr, tmpxer;
    int i;
-   
+
+   /* if we're testing fctiw or fctiwz, zap the hi 32bits,
+      as they're undefined */
+   unsigned char zap_hi_32bits = strstr(name,"fctiw") ? 1 : 0;
+
    for (i=0; i<nb_fargs; i++) {
       u0 = *(uint64_t *)(&fargs[i]);
       f14 = fargs[i];
@@ -5779,7 +5833,15 @@
       __asm__ __volatile__ ("mtcr 18");
       r18 = tmpxer;
       __asm__ __volatile__ ("mtxer 18");
+
+      if (zap_hi_32bits != 0)
+         ur &= 0xFFFFFFFFULL;
+
+#if defined TEST_FLOAT_FLAGS
       printf("%s %016llx => %016llx (%08x)\n", name, u0, ur, flags);
+#else
+      printf("%s %016llx => %016llx\n", name, u0, ur);
+#endif
     }
 }
 
@@ -5895,9 +5957,15 @@
       r18 = tmpxer;
       __asm__ __volatile__ ("mtxer 18");
 
+#if defined TEST_FLOAT_FLAGS
       printf("%s %016llx, %4d => %016llx, %08x (%08x %08x)\n",
              name, double_to_bits(src), offs,
              double_to_bits(res), r14, flags, xer);
+#else
+      printf("%s %016llx, %4d => %016llx, %08x\n",
+             name, double_to_bits(src), offs,
+             double_to_bits(res), r14);
+#endif
    }
    if (verbose) printf("\n");
 }
@@ -5946,9 +6014,15 @@
       r18 = tmpxer;
       __asm__ __volatile__ ("mtxer 18");
 
+#if defined TEST_FLOAT_FLAGS
       printf("%s %016llx, %4d => %016llx, %08x (%08x %08x)\n",
              name, double_to_bits(src), r15,
              double_to_bits(res), r14, flags, xer);
+#else
+      printf("%s %016llx, %4d => %016llx, %08x\n",
+             name, double_to_bits(src), r15,
+             double_to_bits(res), r14);
+#endif
    }
 }
 
@@ -5961,17 +6035,28 @@
    double src, *p_dst;
    int i, offs;
    double *fargs_priv;
-   
+   int nb_tmp_fargs = nb_fargs;
+
+   /* if we're storing an fp single-precision, don't want nans
+      - the vex implementation doesn't like them (yet)
+      Note: This is actually a bigger problem: the vex implementation
+      rounds these insns twice.  This leads to many rounding errors.
+      For the small fargs set, however, this doesn't show up.
+   */
+   if (strstr(name, "stfs"))
+      nb_tmp_fargs = nb_normal_fargs;
+
+
    // private fargs table to store to
-   fargs_priv = malloc(nb_fargs * sizeof(double));
+   fargs_priv = malloc(nb_tmp_fargs * sizeof(double));
    
-   /* offset within [1-nb_fargs:nb_fargs] */
-   for (i=1-nb_fargs; i<nb_fargs; i++) {
+   /* offset within [1-nb_tmp_fargs:nb_tmp_fargs] */
+   for (i=1-nb_tmp_fargs; i<nb_tmp_fargs; i++) {
       offs = i * 8;    // offset = i * sizeof(double)
       if (i < 0) {
-         src   =  fargs     [nb_fargs-1 + i];
-         p_dst = &fargs_priv[nb_fargs-1 + i];
-         base  = (uint32_t)&fargs_priv[nb_fargs-1];
+         src   =  fargs     [nb_tmp_fargs-1 + i];
+         p_dst = &fargs_priv[nb_tmp_fargs-1 + i];
+         base  = (uint32_t)&fargs_priv[nb_tmp_fargs-1];
       } else {
          src   =  fargs     [i];
          p_dst = &fargs_priv[i];
@@ -6011,9 +6096,15 @@
       r18 = tmpxer;
       __asm__ __volatile__ ("mtxer 18");
 
+#if defined TEST_FLOAT_FLAGS
       printf("%s %016llx, %4d => %016llx, %08x (%08x %08x)\n",
              name, double_to_bits(src), offs,
              double_to_bits(*p_dst), r15, flags, xer);
+#else
+      printf("%s %016llx, %4d => %016llx, %08x\n",
+             name, double_to_bits(src), offs,
+             double_to_bits(*p_dst), r15);
+#endif
    }
    free(fargs_priv);
 }
@@ -6026,18 +6117,29 @@
    double src, *p_dst;
    int i, offs;
    double *fargs_priv;
+   int nb_tmp_fargs = nb_fargs;
+
+   /* if we're storing an fp single-precision, don't want nans
+      - the vex implementation doesn't like them (yet)
+      Note: This is actually a bigger problem: the vex implementation
+      rounds these insns twice.  This leads to many rounding errors.
+      For the small fargs set, however, this doesn't show up.
+   */
+   if (strstr(name, "stfs"))  // stfs(u)(x)
+      nb_tmp_fargs = nb_normal_fargs;
+
 
    // private fargs table to store to
-   fargs_priv = malloc(nb_fargs * sizeof(double));
+   fargs_priv = malloc(nb_tmp_fargs * sizeof(double));
    
-   //   /* offset within [1-nb_fargs:nb_fargs] */
-   //   for (i=1-nb_fargs; i<nb_fargs; i++) {
-   for (i=0; i<nb_fargs; i++) {
+   //   /* offset within [1-nb_tmp_fargs:nb_tmp_fargs] */
+   //   for (i=1-nb_tmp_fargs; i<nb_tmp_fargs; i++) {
+   for (i=0; i<nb_tmp_fargs; i++) {
       offs = i * 8;    // offset = i * sizeof(double)
       if (i < 0) {
-         src   =  fargs     [nb_fargs-1 + i];
-         p_dst = &fargs_priv[nb_fargs-1 + i];
-         base  = (uint32_t)&fargs_priv[nb_fargs-1];
+         src   =  fargs     [nb_tmp_fargs-1 + i];
+         p_dst = &fargs_priv[nb_tmp_fargs-1 + i];
+         base  = (uint32_t)&fargs_priv[nb_tmp_fargs-1];
       } else {
          src   =  fargs     [i];
          p_dst = &fargs_priv[i];
@@ -6071,11 +6173,23 @@
       r18 = tmpxer;
       __asm__ __volatile__ ("mtxer 18");
 
-#if 1
+#if defined TEST_FLOAT_FLAGS
+      printf("%s %016llx, %4d => %016llx, %08x (%08x %08x)\n",
+             name, double_to_bits(src), offs,
+             double_to_bits(*p_dst), r15, flags, xer);
+#else
+      printf("%s %016llx, %4d => %016llx, %08x\n",
+             name, double_to_bits(src), offs,
+             double_to_bits(*p_dst), r15);
+#endif
+
+
+#if 0
+      // print double precision result
       printf("%s %016llx (%014e), %4d => %016llx (%014e), %08x (%08x %08x)\n",
              name, double_to_bits(src), src, offs,
              double_to_bits(*p_dst), *p_dst, r15, flags, xer);
-#else
+
       // print single precision result
       printf("%s %016llx (%014e), %4d => %08x (%f), %08x (%08x %08x)\n",
              name, double_to_bits(src), src, offs,