Fixed unaligned handling in axpyf, dotxaxpyf.

Details:
- Fixed over-cautious handling of unaligned operands in vector instrinsic
  implementation of axpyf kernel.
- Fixed over- and under-cautious handling of unaligned operands in vector
  intrinsic implementation of dotxaxpyf kernel.
This commit is contained in:
Field G. Van Zee
2013-06-04 14:57:46 -05:00
parent 22b06cfcd2
commit 9feb4c23d2
2 changed files with 5 additions and 9 deletions

View File

@@ -217,13 +217,11 @@ void bli_dddaxpyf_opt_var1(
use_ref = TRUE;
}
else if ( bli_is_unaligned_to( a, 16 ) ||
bli_is_unaligned_to( x, 16 ) ||
bli_is_unaligned_to( y, 16 ) )
{
use_ref = TRUE;
if ( bli_is_unaligned_to( a, 16 ) &&
bli_is_unaligned_to( x, 16 ) &&
bli_is_unaligned_to( y, 16 ) )
{
use_ref = FALSE;

View File

@@ -192,18 +192,16 @@ void bli_ddddotxaxpyf_opt_var1(
use_ref = TRUE;
}
else if ( bli_is_unaligned_to( a, 16 ) ||
bli_is_unaligned_to( x, 16 ) ||
bli_is_unaligned_to( x, 16 ) ||
bli_is_unaligned_to( y, 16 ) ||
bli_is_unaligned_to( z, 16 ) )
bli_is_unaligned_to( w, 16 ) ||
bli_is_unaligned_to( z, 16 ) ||
bli_is_unaligned_to( y, 16 ) )
{
use_ref = TRUE;
if ( bli_is_unaligned_to( a, 16 ) &&
bli_is_unaligned_to( w, 16 ) &&
bli_is_unaligned_to( x, 16 ) &&
bli_is_unaligned_to( y, 16 ) &&
bli_is_unaligned_to( z, 16 ) )
bli_is_unaligned_to( z, 16 ) &&
bli_is_aligned_to( y, 16 ) ) // Note: y is not affected by a, w, and z being unaligned.
{
use_ref = FALSE;
m_pre = 1;