Comment 23 for bug 2011832

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Build test workload:
$ git clone https://github.com/VectorChief/UniSIMD-assembler.git
$ cd UniSIMD-assembler/test
$ sudo apt install g++-mipsisa64r6el-linux-gnuabi64 g++-mipsisa64r6-linux-gnuabi64
# (replace mips-mti-linux-gnu with mipsisa64r6el-linux-gnuabi64 for LE)
# (replace mips-mti-linux-gnu with mipsisa64r6-linux-gnuabi64 for BE)
$ make -f simd_make_m64.mk

$ apt install qemu-user
$ qemu-mips64el -cpu I6400 simd_test.m64f32Lr6 -c 1 | tee qemu64

Versions compared:

Kinetic:
 Version table:
 *** 1:7.0+dfsg-7ubuntu2.3 500
        500 http://archive.ubuntu.com/ubuntu kinetic-proposed/universe amd64 Packages
        100 /var/lib/dpkg/status
     1:7.0+dfsg-7ubuntu2.2 500
        500 http://archive.ubuntu.com/ubuntu kinetic-updates/universe amd64 Packages
     1:7.0+dfsg-7ubuntu2.1 500

Jammy:
  Version table:
     1:6.2+dfsg-2ubuntu6.8 500
        500 http://archive.ubuntu.com/ubuntu jammy-proposed/universe amd64 Packages
 *** 1:6.2+dfsg-2ubuntu6.7 500
        500 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 Packages
        100 /var/lib/dpkg/status

Indeed without the fix both releases spew out errors in the self check like

# diff -Naur qemu64.old qemu64.new
--- qemu64.old 2023-04-18 12:20:26.176053632 +0000
+++ qemu64.new 2023-04-18 12:17:35.263217743 +0000
@@ -9,8 +9,8 @@
 --------------------------------------------------------
 Test-redundant overridden: 1
 -------------------- SUB TEST = 1 - ptr/fp = 64f32 --
-Time C = 1
-Time S = 0
+Time C = 0
+Time S = 1
 -------------------------------------- simd = 128x2v1 -
 -------------------- SUB TEST = 2 - ptr/fp = 64f32 --
 Time C = 0
@@ -18,7 +18,7 @@
 -------------------------------------- simd = 128x2v1 -
 -------------------- SUB TEST = 3 - ptr/fp = 64f32 --
 Time C = 0
-Time S = 1
+Time S = 0
 -------------------------------------- simd = 128x2v1 -
 -------------------- SUB TEST = 4 - ptr/fp = 64f32 --
 Time C = 0
@@ -37,486 +37,72 @@
 Time S = 0
 -------------------------------------- simd = 128x2v1 -
 -------------------- SUB TEST = 8 - ptr/fp = 64f32 --
-Time C = 1
+Time C = 0
 Time S = 0
-iarr[23] = 318773
-C iarr[23]+((rt_uelm)+iarr[23]<<1) = 2666648, iarr[23]-((rt_uelm)-iarr[23]>>2) = 637546
-S iarr[23]+((rt_uelm)+iarr[23]<<1) = 637546, iarr[23]-((rt_uelm)-iarr[23]>>2) = 637546
-iarr[22] = 7665
-C iarr[22]+((rt_uelm)+iarr[22]<<1) = 87655196, iarr[22]-((rt_uelm)-iarr[22]>>2) = 15330
-S iarr[22]+((rt_uelm)+iarr[22]<<1) = 15330, iarr[22]-((rt_uelm)-iarr[22]>>2) = 15330
-iarr[21] = 87647531

Those are from the self-tests and detect issues.
With the new version they are gone and fixed.
With ppc and mips issues verified I'm marking the bug as that.