[opus] Antw: Re: Antw: Test still failing in old CPUs

Ulrich Windl Ulrich.Windl at rz.uni-regensburg.de
Thu Jan 14 04:16:48 PST 2016


>>> Jean-Marc Valin <jmvalin at jmvalin.ca> schrieb am 14.01.2016 um 12:07 in
Nachricht <56978177.6040302 at jmvalin.ca>:
> On 01/14/2016 02:23 AM, Ulrich Windl wrote:
>>> """
>>> ./test-driver: line 107: 25185 Illegal instruction     "$@" > $log_file
>> 2>&1
>>> FAIL: celt/tests/test_unit_mathops
>>> """
>> 
>> The shell script most likely does not have the illegal instruction; a more
>> useful report would be to run the thing under a debugger like gdb and then
>> disassemble the instruction in question.
> 
> As I said earlier, the problem is fully understood. We just don't have a
> solution for it yet.
> 
> What happens is that the unit tests have to directly #include the C
> files they test because some of the functions tested are static. But
> some of the #included C files use intrinsics with CPU detection so they
> require being compiled with (e.g.) -msse4, but as soon as we include
> those compile flags, the compiler is free to use these instructions
> anywhere. And this cases the Illegal instruction failure.

Hi!

Sorry, I'm not that deep in it. Can't the unit test compile each intrinsic in a separate module (with different cpu flags) and then link the modues to a unit to be tested? Or will the modern linker refuse to links such modules?

Regards,
Ulrich

> 
> 	Jean-Marc






More information about the opus mailing list