[pulseaudio-discuss] [PATCH 2/6] tests: Test both, SSE and SSE2, sconv in cpu-test

Paul Menzel paulepanter at users.sourceforge.net
Sat Jan 5 08:26:46 PST 2013


Am Freitag, den 04.01.2013, 23:05 +0100 schrieb Peter Meerwald:
> From: Peter Meerwald <p.meerwald at bct-electronic.com>
> 
> SSE sconv was not tested before, only SSE2 was

With what processor did you test?

> Signed-off-by: Peter Meerwald <p.meerwald at bct-electronic.com>
> ---
>  src/tests/cpu-test.c |   32 ++++++++++++++++++++++++++++++--
>  1 file changed, 30 insertions(+), 2 deletions(-)
> 
> diff --git a/src/tests/cpu-test.c b/src/tests/cpu-test.c
> index 8e196e5..205a891 100644
> --- a/src/tests/cpu-test.c
> +++ b/src/tests/cpu-test.c
> @@ -347,7 +347,7 @@ static void run_conv_test_s16_to_float(pa_convert_func_t func, pa_convert_func_t
>  #endif /* defined (__arm__) && defined (__linux__) */
>  
>  #if defined (__i386__) || defined (__amd64__)
> -START_TEST (sconv_sse_test) {
> +START_TEST (sconv_sse2_test) {

Maybe sort it lexicographically? 

>      pa_cpu_x86_flag_t flags = 0;
>      pa_convert_func_t orig_func, sse_func;
>  
> @@ -359,7 +359,34 @@ START_TEST (sconv_sse_test) {
>      }
>  
>      orig_func = pa_get_convert_from_float32ne_function(PA_SAMPLE_S16LE);
> -    pa_convert_func_init_sse(flags);
> +    pa_convert_func_init_sse(PA_CPU_X86_SSE2);
> +    sse_func = pa_get_convert_from_float32ne_function(PA_SAMPLE_S16LE);
> +
> +    pa_log_debug("Checking SSE2 sconv (float -> s16)");
> +    run_conv_test_float_to_s16(sse_func, orig_func, 0, TRUE, FALSE);
> +    run_conv_test_float_to_s16(sse_func, orig_func, 1, TRUE, FALSE);
> +    run_conv_test_float_to_s16(sse_func, orig_func, 2, TRUE, FALSE);
> +    run_conv_test_float_to_s16(sse_func, orig_func, 3, TRUE, FALSE);
> +    run_conv_test_float_to_s16(sse_func, orig_func, 4, TRUE, FALSE);
> +    run_conv_test_float_to_s16(sse_func, orig_func, 5, TRUE, FALSE);
> +    run_conv_test_float_to_s16(sse_func, orig_func, 6, TRUE, FALSE);
> +    run_conv_test_float_to_s16(sse_func, orig_func, 7, TRUE, TRUE);
> +}
> +END_TEST

Am I right, that you change the SSE2 test too? If yes, could you do that
in a separate test?

> +
> +START_TEST (sconv_sse_test) {
> +    pa_cpu_x86_flag_t flags = 0;
> +    pa_convert_func_t orig_func, sse_func;
> +
> +    pa_cpu_get_x86_flags(&flags);
> +
> +    if (!(flags & PA_CPU_X86_SSE)) {
> +        pa_log_info("SSE not supported. Skipping");
> +        return;
> +    }
> +
> +    orig_func = pa_get_convert_from_float32ne_function(PA_SAMPLE_S16LE);
> +    pa_convert_func_init_sse(PA_CPU_X86_SSE);
>      sse_func = pa_get_convert_from_float32ne_function(PA_SAMPLE_S16LE);
>  
>      pa_log_debug("Checking SSE sconv (float -> s16)");
> @@ -450,6 +477,7 @@ int main(int argc, char *argv[]) {
>      /* Converstion tests */
>      tc = tcase_create("sconv");
>  #if defined (__i386__) || defined (__amd64__)
> +    tcase_add_test(tc, sconv_sse2_test);
>      tcase_add_test(tc, sconv_sse_test);
>  #endif
>  #if defined (__arm__) && defined (__linux__)


Thanks,

Paul
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <http://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20130105/a9594387/attachment.pgp>


More information about the pulseaudio-discuss mailing list