Commit 69a9a66f by Richard Biener Committed by Richard Biener

re PR tree-optimization/70396 (ICE on valid code at -O3 in 32-bit and 64-bit…

re PR tree-optimization/70396 (ICE on valid code at -O3 in 32-bit and 64-bit modes on x86_64-linux-gnu (in immed_wide_int_const, at emit-rtl.c:606))

2016-03-24  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/70396
	* tree-vect-stmts.c (vectorizable_comparison): Use
	get_vectype_for_scalar_type.

	* gcc.dg/torture/pr70396.c: New testcase.

From-SVN: r234455
parent f9c8babb
2016-03-24 Richard Biener <rguenther@suse.de>
PR tree-optimization/70396
* tree-vect-stmts.c (vectorizable_comparison): Use
get_vectype_for_scalar_type.
2016-03-24 Richard Biener <rguenther@suse.de>
PR middle-end/70370
* gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
with register bases.
......
2016-03-24 Richard Biener <rguenther@suse.de>
PR tree-optimization/70396
* gcc.dg/torture/pr70396.c: New testcase.
2016-03-24 Richard Biener <rguenther@suse.de>
PR middle-end/70370
* gcc.dg/torture/pr70370.c: New testcase.
......
/* { dg-do compile } */
struct S2 {
signed f1 : 3;
};
int a[100];
int b, c;
char d;
void fn1() {
struct S2 e;
b / e.f1;
c = 2;
for (; c < 100; c++) {
d = 0;
a[c] = ~e.f1 != d;
}
}
......@@ -7790,8 +7790,8 @@ vectorizable_comparison (gimple *stmt, gimple_stmt_iterator *gsi,
/* Invariant comparison. */
if (!vectype)
{
vectype = build_vector_type (TREE_TYPE (rhs1), nunits);
if (tree_to_shwi (TYPE_SIZE_UNIT (vectype)) != current_vector_size)
vectype = get_vectype_for_scalar_type (TREE_TYPE (rhs1));
if (TYPE_VECTOR_SUBPARTS (vectype) != nunits)
return false;
}
else if (nunits != TYPE_VECTOR_SUBPARTS (vectype))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment