From b246f5272eb7242a9cefe5b4e7220be9d86ea512 Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Thu, 3 Sep 2020 12:44:40 +0200 Subject: Improve constant folding of vector lowering with vector bools This improves the situation somewhat when vector lowering tries to access vector bools as seen in PR96814. 2020-09-03 Richard Biener * tree-vect-generic.c (tree_vec_extract): Remove odd special-casing of boolean vectors. * fold-const.c (fold_ternary_loc): Handle boolean vector type BIT_FIELD_REFs. --- gcc/tree-vect-generic.c | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) (limited to 'gcc/tree-vect-generic.c') diff --git a/gcc/tree-vect-generic.c b/gcc/tree-vect-generic.c index 6d5d651..d7bafa7 100644 --- a/gcc/tree-vect-generic.c +++ b/gcc/tree-vect-generic.c @@ -136,19 +136,7 @@ tree_vec_extract (gimple_stmt_iterator *gsi, tree type, t = gimple_assign_rhs1 (def_stmt); } if (bitpos) - { - if (TREE_CODE (type) == BOOLEAN_TYPE) - { - tree itype - = build_nonstandard_integer_type (tree_to_uhwi (bitsize), 0); - tree field = gimplify_build3 (gsi, BIT_FIELD_REF, itype, t, - bitsize, bitpos); - return gimplify_build2 (gsi, NE_EXPR, type, field, - build_zero_cst (itype)); - } - else - return gimplify_build3 (gsi, BIT_FIELD_REF, type, t, bitsize, bitpos); - } + return gimplify_build3 (gsi, BIT_FIELD_REF, type, t, bitsize, bitpos); else return gimplify_build1 (gsi, VIEW_CONVERT_EXPR, type, t); } -- cgit v1.1