------- Comment #1 from irar at il dot ibm dot com  2009-01-05 13:19 -------
Here is a reduced testcase:

program test_elemental
   implicit none
   integer, dimension (2, 4) :: a
   integer, dimension (2, 4) :: b
   integer(kind = 8), dimension(2) :: c

   a = reshape ((/2, 3, 4, 5, 6, 7, 8, 9/), (/2, 4/))
   b = 0
   a = e_fn (a(:, 4:1:-1), 1 + b)
   ! This tests intrinsic elemental conversion functions.
   c = 2 * a(1, 1)
   if (any (c .ne. 14)) call abort

   ! This triggered bug due to building ss chains in the wrong order.
   b = 0;
   a = a - e_fn (a, b)
   if (any (a .ne. 0)) call abort

contains

elemental integer(kind=4) function e_fn (p, q)
   integer, intent(in) :: p, q
   e_fn = p - q
end function
end program


The problem is that dse2 removes the stores to array A.4 which is used by the
vectorized code:

  A.4[0] = D.1635_155;
  ...
  A.4[7] = D.1635_165;
  vect_pA.67_156 = (vector integer(kind=4) *) &A.4;
  vect_pa.73_197 = (vector integer(kind=4) *) &a;
  vect_var_.68_254 = *vect_pA.67_156;
  *vect_pa.73_197 = vect_var_.68_254;
  vect_pA.63_256 = vect_pA.67_156 + 16;
  vect_pa.69_257 = vect_pa.73_197 + 16;
  vect_var_.68_170 = *vect_pA.63_256;
  *vect_pa.69_257 = vect_var_.68_170;

We propagate alias info from the scalar to vector ref in
vect_create_data_ref_ptr() (in tree-vect-transform.c):

  /** (2) Add aliasing information to the new vector-pointer:
          (The points-to info (DR_PTR_INFO) may be defined later.)  **/

  tag = DR_SYMBOL_TAG (dr);
  gcc_assert (tag);

  /* If tag is a variable (and NOT_A_TAG) than a new symbol memory
     tag must be created with tag added to its may alias list.  */
  if (!MTAG_P (tag))
    new_type_alias (vect_ptr, tag, DR_REF (dr));
  else
    set_symbol_mem_tag (vect_ptr, tag);

Those lines do not exist on the branch. Do you take care of this somewhere
else?

Ira


-- 

irar at il dot ibm dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2009-01-05 13:19:53
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38721

Reply via email to