From 5e8c2eb17e0eb237fe89458caadcb935fb9e20ff Mon Sep 17 00:00:00 2001 From: Zdenek Sojka Date: Tue, 5 Apr 2016 18:58:50 +0200 Subject: re PR tree-optimization/70509 (wrong code with extract from a v64qi) PR tree-optimization/70509 * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead of the vector base type for index. * gcc.target/i386/avx512bw-pr70509.c: New test. From-SVN: r234754 --- gcc/tree-ssa-forwprop.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'gcc/tree-ssa-forwprop.c') diff --git a/gcc/tree-ssa-forwprop.c b/gcc/tree-ssa-forwprop.c index f64ee0a..c40f9e2 100644 --- a/gcc/tree-ssa-forwprop.c +++ b/gcc/tree-ssa-forwprop.c @@ -1773,7 +1773,7 @@ simplify_bitfield_ref (gimple_stmt_iterator *gsi) if (code == VEC_PERM_EXPR) { - tree p, m, index, tem; + tree p, m, tem; unsigned nelts; m = gimple_assign_rhs3 (def_stmt); if (TREE_CODE (m) != VECTOR_CST) @@ -1790,9 +1790,8 @@ simplify_bitfield_ref (gimple_stmt_iterator *gsi) p = gimple_assign_rhs2 (def_stmt); idx -= nelts; } - index = build_int_cst (TREE_TYPE (TREE_TYPE (m)), idx * size); tem = build3 (BIT_FIELD_REF, TREE_TYPE (op), - unshare_expr (p), op1, index); + unshare_expr (p), op1, bitsize_int (idx * size)); gimple_assign_set_rhs1 (stmt, tem); fold_stmt (gsi); update_stmt (gsi_stmt (*gsi)); -- cgit v1.1