aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndre Vieira <andre.simoesdiasvieira@arm.com>2021-02-08 16:04:18 +0000
committerAndre Vieira <andre.simoesdiasvieira@arm.com>2021-02-08 16:04:18 +0000
commit40c92180df970143249f3cd5056f8fb48a4d9333 (patch)
treea2f3d7dcd417e97c6324621231f1f2cd2f1a4998
parentd4536e431316b4568e236afd7a6017e5efd1b0a1 (diff)
downloadgcc-40c92180df970143249f3cd5056f8fb48a4d9333.zip
gcc-40c92180df970143249f3cd5056f8fb48a4d9333.tar.gz
gcc-40c92180df970143249f3cd5056f8fb48a4d9333.tar.bz2
middle-end/98974 - fixup after STMT_VINFO_VEC_STMTS rework
This fixes up the nvectors parameter passed to vect_get_loop_mask in vectorizable_condition after the STMT_VINFO_VEC_STMTS rework. gcc/ChangeLog: 2021-02-08 Andre Vieira <andre.simoesdiasvieira@arm.com> PR middle-end/98974 * tree-vect-stmts.c (vectorizable_condition): Remove shadow vec_num parameter in vectorizable_condition. gcc/testsuite/ChangeLog: 2021-02-08 Andre Vieira <andre.simoesdiasvieira@arm.com> PR middle-end/98974 * gfortran.dg/pr98974.F90: New test.
-rw-r--r--gcc/testsuite/gfortran.dg/pr98974.F9021
-rw-r--r--gcc/tree-vect-stmts.c1
2 files changed, 21 insertions, 1 deletions
diff --git a/gcc/testsuite/gfortran.dg/pr98974.F90 b/gcc/testsuite/gfortran.dg/pr98974.F90
new file mode 100644
index 0000000..296adad
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr98974.F90
@@ -0,0 +1,21 @@
+! PR middle-end/98974
+! { dg-do compile }
+! { dg-options "-Ofast" }
+! { dg-additional-options "-mcpu=neoverse-v1" { target aarch64*-*-* } }
+
+module module_foobar
+ integer,parameter :: fp_kind = selected_real_kind(15)
+contains
+ subroutine foobar( foo, ix ,jx ,kx,iy,ky)
+ real, dimension( ix, kx, jx ) :: foo
+ real(fp_kind), dimension( iy, ky, 3 ) :: bar, baz
+ do k=1,ky
+ do i=1,iy
+ if ( baz(i,k,1) > 0. ) then
+ bar(i,k,1) = 0
+ endif
+ foo(i,nk,j) = baz0 * bar(i,k,1)
+ enddo
+ enddo
+ end
+end
diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c
index 0bc1cb1c..064e5d1 100644
--- a/gcc/tree-vect-stmts.c
+++ b/gcc/tree-vect-stmts.c
@@ -10235,7 +10235,6 @@ vectorizable_condition (vec_info *vinfo,
if (masks)
{
- unsigned vec_num = vec_oprnds0.length ();
tree loop_mask
= vect_get_loop_mask (gsi, masks, vec_num * ncopies,
vectype, i);