simd-everywhere / simde

Implementations of SIMD instruction sets for systems which don't natively support them.
https://simd-everywhere.github.io/blog/
MIT License
2.35k stars 244 forks source link

ia64 -02 SSE: mm_storeh_pi / mm_storel_pi tests fail #193

Open mr-c opened 4 years ago

mr-c commented 4 years ago
[ 41%] Building C object CMakeFiles/simde-test-emul.dir/x86/sse.c.o
/usr/bin/gcc -DSIMDE_BUILD_CPP_TESTS -DSIMDE_NO_NATIVE -I/<<PKGBUILDDIR>>/test/..  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -specs=/usr/share/dpkg/pie-compile.specs -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -DSIMDE_ENABLE_OPENMP -fopenmp-simd   -std=gnu99 -o CMakeFiles/simde-test-emul.dir/x86/sse.c.o   -c /<<PKGBUILDDIR>>/test/x86/sse.c
[...]
[ 72%] Building CXX object CMakeFiles/simde-test-emul.dir/x86/sse.cpp.o
/usr/bin/g++  -DSIMDE_BUILD_CPP_TESTS -DSIMDE_NO_NATIVE -I/<<PKGBUILDDIR>>/test/..  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -specs=/usr/share/dpkg/pie-compile.specs -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2   -o CMakeFiles/simde-test-emul.dir/x86/sse.cpp.o -c /<<PKGBUILDDIR>>/gcc_test/x86/sse.cpp
[...]
/x86/sse/mm_storeh_pi/emul/c         [ ERROR ]
Error: /<<PKGBUILDDIR>>/test/x86/sse.c:4286: assertion failed: r.u32f[0] (440fe28f435c07ae) != test_vec[i].r.u32f[0] (0)
Error: child killed by signal 6 (Aborted)
/x86/sse/mm_storel_pi/emul/c         [ ERROR ]
Error: /<<PKGBUILDDIR>>/test/x86/sse.c:4322: assertion failed: r.u32f[0] (43fa185244460000) != test_vec[i].r.u32f[0] (0)
Error: child killed by signal 6 (Aborted)
[...]
/x86/sse/mm_storeh_pi/emul/cpp       [ ERROR ]
Error: /<<PKGBUILDDIR>>/gcc_test/x86/sse.cpp:4286: assertion failed: r.u32f[0] (440fe28f435c07ae) != test_vec[i].r.u32f[0] (0)
Error: child killed by signal 6 (Aborted)
/x86/sse/mm_storel_pi/emul/cpp       [ ERROR ]
Error: /<<PKGBUILDDIR>>/gcc_test/x86/sse.cpp:4322: assertion failed: r.u32f[0] (43fa185244460000) != test_vec[i].r.u32f[0] (0)
Error: child killed by signal 6 (Aborted)

Full log https://buildd.debian.org/status/fetch.php?pkg=simde&arch=ia64&ver=0.0.0.git.20200414-1&stamp=1586876334&raw=0

nemequ commented 4 years ago

I'm not sure how to debug this; I don't have access to any IA-64 hardware, and unless I'm missing something QEMU doesn't seem to have an IA-64 emulator. Do you have any idea how other people are debugging IA-64 issues for Debian?

mr-c commented 4 years ago

This is another unofficial architecture for Debian, and on its way out, so I wouldn't worry about it. It is no longer sold either: https://en.wikipedia.org/wiki/IA-64#End_of_life:_2021

mr-c commented 3 years ago

FYI Still failing in SIMDe 0.7.0-rc.1

https://buildd.debian.org/status/fetch.php?pkg=simde&arch=ia64&ver=0.7.0%7Erc-1-1&stamp=1606013416&raw=0

Also, some of the new NEON functions also fail in this newer release. Perhaps we should make an official note that IA-64 is not supported?

mr-c commented 3 years ago

The size of the error is getting better, however :-)

not ok 126 sse/mm_storeh_pi
not ok 127 sse/mm_storel_pi
../test/x86/sse.c:4929: assertion failed: r[0] ~= test_vec[i].r[0] (220.029999 ~= 0.000000)
../test/x86/sse.c:4962: assertion failed: r[0] ~= test_vec[i].r[0] (792.000000 ~= 0.000000)
mr-c commented 3 years ago

Summary of other ia64 issues from the same log mentioned before

arm/neon/ext/vext_f32 arm/neon/max/vmax_f32 arm/neon/pmax/vpmax_f32 arm/neon/st3/vst3_f32 arm/neon/st4/vst4_f32 arm/neon/trn/vtrn_f32 arm/neon/trn1/vtrn1_f32 arm/neon/trn2/vtrn2_f32

(the above on gcc 8, 9, and 10; never did clang 9, 10, nor 11 build successfully for IA-64 on Debian)