aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vect-patterns.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2021-04-01 09:29:14 +0200
committerRichard Biener <rguenther@suse.de>2021-04-01 10:23:25 +0200
commitb75c4e1384c021ca94fc8e8db8e517e802b820f3 (patch)
treefd4e8bbf8d3e46b610e4684f7dc90569f7fc962a /gcc/tree-vect-patterns.c
parent19d71674616e6494a60432a2a28adcd762a6c877 (diff)
downloadgcc-b75c4e1384c021ca94fc8e8db8e517e802b820f3.zip
gcc-b75c4e1384c021ca94fc8e8db8e517e802b820f3.tar.gz
gcc-b75c4e1384c021ca94fc8e8db8e517e802b820f3.tar.bz2
tree-optimization/99856 - fix overwideing pattern creation
This fixes an omission of promoting a bit-precision required precision to a vector element precision. 2021-04-01 Richard Biener <rguenther@suse.de> PR tree-optimization/99856 * tree-vect-patterns.c (vect_recog_over_widening_pattern): Promote precision to vector element precision. * gcc.dg/vect/pr99856.c: New testcase.
Diffstat (limited to 'gcc/tree-vect-patterns.c')
-rw-r--r--gcc/tree-vect-patterns.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/tree-vect-patterns.c b/gcc/tree-vect-patterns.c
index b575b45..803de3f 100644
--- a/gcc/tree-vect-patterns.c
+++ b/gcc/tree-vect-patterns.c
@@ -1705,6 +1705,7 @@ vect_recog_over_widening_pattern (vec_info *vinfo,
/* Apply the minimum efficient precision we just calculated. */
if (new_precision < min_precision)
new_precision = min_precision;
+ new_precision = vect_element_precision (new_precision);
if (new_precision >= TYPE_PRECISION (type))
return NULL;