aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/check.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2020-07-02 11:12:51 +0200
committerRichard Biener <rguenther@suse.de>2020-07-02 11:18:09 +0200
commitd5d9f7834ab809841c4ccc90bca74808b4bcaf8d (patch)
treea71e490d3d520f1c299df1563e823760c19c6382 /gcc/fortran/check.c
parent5c9669a0e6cbf477a03024522943197bdb2682d4 (diff)
downloadgcc-d5d9f7834ab809841c4ccc90bca74808b4bcaf8d.zip
gcc-d5d9f7834ab809841c4ccc90bca74808b4bcaf8d.tar.gz
gcc-d5d9f7834ab809841c4ccc90bca74808b4bcaf8d.tar.bz2
tree-optimization/96022 - fix ICE with vectorized shift
This fixes lane extraction for internal def vectorized shifts with an effective scalar shift operand by always using lane zero of the first vector stmt. It also fixes a SLP build issue noticed on the testcase where we end up building unary vector ops with the only operand built form scalars which isn't profitable by itself. The exception is for stores. 2020-07-02 Richard Biener <rguenther@suse.de> PR tree-optimization/96022 * tree-vect-stmts.c (vectorizable_shift): Only use the first vector stmt when extracting the scalar shift amount. * tree-vect-slp.c (vect_build_slp_tree_2): Also build unary nodes with all-scalar children from scalars but not stores. (vect_analyze_slp_instance): Mark the node not failed. * g++.dg/vect/pr96022.cc: New testcase.
Diffstat (limited to 'gcc/fortran/check.c')
0 files changed, 0 insertions, 0 deletions