Commit c689ce1e by Richard Biener Committed by Richard Biener

revert: [multiple changes]

2015-06-17  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66251
	* tree-vect-stmts.c (vectorizable_store): Fix gathering of vectorized
	stmts for SLP strided stores.

	* gfortran.fortran-torture/compile/pr66251-2.f90: New testcase.

	Revert
	2015-05-22  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66251
	* tree-vect-stmts.c (vectorizable_conversion): Properly
	set STMT_VINFO_VEC_STMT even for the SLP case.

	2015-05-26  Michael Matz  <matz@suse.de>

	PR middle-end/66251
	* tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Always set
	STMT_VINFO_VEC_STMT, also with SLP.

From-SVN: r224545
parent 74c7484e
2015-06-17 Richard Biener <rguenther@suse.de>
PR tree-optimization/66251
* tree-vect-stmts.c (vectorizable_store): Fix gathering of vectorized
stmts for SLP strided stores.
Revert
2015-05-22 Richard Biener <rguenther@suse.de>
PR tree-optimization/66251
* tree-vect-stmts.c (vectorizable_conversion): Properly
set STMT_VINFO_VEC_STMT even for the SLP case.
2015-05-26 Michael Matz <matz@suse.de>
PR middle-end/66251
* tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Always set
STMT_VINFO_VEC_STMT, also with SLP.
2015-06-16 Uros Bizjak <ubizjak@gmail.com>
PR target/56766
......
2015-06-17 Richard Biener <rguenther@suse.de>
PR tree-optimization/66251
* gfortran.fortran-torture/compile/pr66251-2.f90: New testcase.
2015-06-16 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/59682
......
subroutine mv(m,nc,irp,ja,val,x,ldx,y,ldy,acc)
use iso_fortran_env
implicit none
integer, parameter :: ipk_ = int32
integer, parameter :: spk_ = real32
complex(spk_), parameter :: czero=(0.0_spk_,0.0_spk_)
integer(ipk_), intent(in) :: m,ldx,ldy,nc,irp(*),ja(*)
complex(spk_), intent(in) :: x(ldx,*),val(*)
complex(spk_), intent(inout) :: y(ldy,*)
complex(spk_), intent(inout) :: acc(*)
integer(ipk_) :: i,j,k, ir, jc
do i=1,m
acc(1:nc) = czero
do j=irp(i), irp(i+1)-1
acc(1:nc) = acc(1:nc) + val(j) * x(ja(j),1:nc)
enddo
y(i,1:nc) = -acc(1:nc)
end do
end subroutine mv
......@@ -3370,13 +3370,15 @@ vect_create_vectorized_demotion_stmts (vec<tree> *vec_oprnds,
(or in STMT_VINFO_RELATED_STMT chain). */
if (slp_node)
SLP_TREE_VEC_STMTS (slp_node).quick_push (new_stmt);
if (!*prev_stmt_info)
STMT_VINFO_VEC_STMT (stmt_info) = new_stmt;
else
STMT_VINFO_RELATED_STMT (*prev_stmt_info) = new_stmt;
{
if (!*prev_stmt_info)
STMT_VINFO_VEC_STMT (stmt_info) = new_stmt;
else
STMT_VINFO_RELATED_STMT (*prev_stmt_info) = new_stmt;
*prev_stmt_info = vinfo_for_stmt (new_stmt);
*prev_stmt_info = vinfo_for_stmt (new_stmt);
}
}
}
......@@ -3955,12 +3957,14 @@ vectorizable_conversion (gimple stmt, gimple_stmt_iterator *gsi,
if (slp_node)
SLP_TREE_VEC_STMTS (slp_node).quick_push (new_stmt);
if (!prev_stmt_info)
STMT_VINFO_VEC_STMT (stmt_info) = new_stmt;
else
STMT_VINFO_RELATED_STMT (prev_stmt_info) = new_stmt;
prev_stmt_info = vinfo_for_stmt (new_stmt);
{
if (!prev_stmt_info)
STMT_VINFO_VEC_STMT (stmt_info) = new_stmt;
else
STMT_VINFO_RELATED_STMT (prev_stmt_info) = new_stmt;
prev_stmt_info = vinfo_for_stmt (new_stmt);
}
}
}
......@@ -5327,9 +5331,23 @@ vectorizable_store (gimple stmt, gimple_stmt_iterator *gsi, gimple *vec_stmt,
/* We've set op and dt above, from gimple_assign_rhs1(stmt),
and first_stmt == stmt. */
if (j == 0)
vec_oprnd = vect_get_vec_def_for_operand (op, first_stmt, NULL);
{
if (slp)
{
vect_get_vec_defs (op, NULL_TREE, stmt, &vec_oprnds, NULL,
slp_node, -1);
vec_oprnd = vec_oprnds[0];
}
else
vec_oprnd = vect_get_vec_def_for_operand (op, first_stmt, NULL);
}
else
vec_oprnd = vect_get_vec_def_for_stmt_copy (dt, vec_oprnd);
{
if (slp)
vec_oprnd = vec_oprnds[j];
else
vec_oprnd = vect_get_vec_def_for_stmt_copy (dt, vec_oprnd);
}
for (i = 0; i < nstores; i++)
{
......@@ -5359,7 +5377,7 @@ vectorizable_store (gimple stmt, gimple_stmt_iterator *gsi, gimple *vec_stmt,
vect_finish_stmt_generation (stmt, incr, gsi);
running_off = newoff;
if (j == 0 && i == i)
if (j == 0 && i == 0)
STMT_VINFO_VEC_STMT (stmt_info) = *vec_stmt = assign;
else
STMT_VINFO_RELATED_STMT (prev_stmt_info) = assign;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment