This excludes BOOLEAN_TYPE which are signed or have TYPE_PRECISION != 1 from being handled as VECTOR_BOOLEAN_TYPE_P. This fixes a bootstrap ICE with LTO and PGO in the Ada frontend.
Bootstrapped on x86_64-unknown-linux-gnu, testing in progress. Richard. 2020-10-07 Richard Biener <rguent...@suse.de> PR bootstrap/95582 * tree-vectorizer.h (VECT_SCALAR_BOOLEAN_TYPE_P): Handle BOOLEAN_TYPE the same as INTEGER_TYPE and ENUMERAL_TYPE. --- gcc/tree-vectorizer.h | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/gcc/tree-vectorizer.h b/gcc/tree-vectorizer.h index 37b091558fd..e03d41ce982 100644 --- a/gcc/tree-vectorizer.h +++ b/gcc/tree-vectorizer.h @@ -1383,11 +1383,9 @@ struct gather_scatter_info { VECTOR_BOOLEAN_TYPE_P. */ #define VECT_SCALAR_BOOLEAN_TYPE_P(TYPE) \ - (TREE_CODE (TYPE) == BOOLEAN_TYPE \ - || ((TREE_CODE (TYPE) == INTEGER_TYPE \ - || TREE_CODE (TYPE) == ENUMERAL_TYPE) \ - && TYPE_PRECISION (TYPE) == 1 \ - && TYPE_UNSIGNED (TYPE))) + (INTEGRAL_TYPE_P (TYPE) \ + && TYPE_PRECISION (TYPE) == 1 \ + && TYPE_UNSIGNED (TYPE)) static inline bool nested_in_vect_loop_p (class loop *loop, stmt_vec_info stmt_info) -- 2.26.2