[vsipl++] SIMD threshold with loop fusion

Jules Bergmann jules at codesourcery.com
Thu May 17 13:03:47 UTC 2007


Assem,

I'm sorry, but I missed this earlier.

> Index: src/vsip/opt/simd/eval_generic.hpp
> ===================================================================

> @@ -658,8 +663,10 @@
>      return(ext_dst.stride(0) == 1 &&
>             ext_a.stride(0) == 1 &&
>  	   ext_b.stride(0) == 1 &&
> -	   // make sure (A > B, A, k)
> -	   (&(src.first().left()) == &(src.second())));
> +	   // make sure (A op B, A, k)
> +	   (&(src.first().left()) == &(src.second())) &&

> +	   // make sure op is supported
> +	   simd::Binary_operator_map<T,O>::is_supported);

If possible, Binary_operator_map<...>::is_supported should be part of 
the compile-time check (part of ct_valid), rather than run-time.

				-- Jules

-- 
Jules Bergmann
CodeSourcery
jules at codesourcery.com
(650) 331-3385 x705



More information about the vsipl++ mailing list