re PR target/82713 (ICE in ix86_builtin_vectorization_cost, at config/i386/i386.c:44475)
PR target/82713 * i386.c (ix86_builtin_vectorization_cost): Be ready for insane types. From-SVN: r254933
This commit is contained in:
parent
f9c59f7e95
commit
66c9290335
@ -1,3 +1,9 @@
|
||||
2017-11-19 Jan Hubicka <hubicka@ucw.cz>
|
||||
|
||||
PR target/82713
|
||||
* i386.c (ix86_builtin_vectorization_cost): Be ready for insane
|
||||
types.
|
||||
|
||||
2017-11-19 Tom de Vries <tom@codesourcery.com>
|
||||
|
||||
* config/arc/arc.h (FUNCTION_PROFILER): Remove semicolon after
|
||||
|
@ -44628,13 +44628,18 @@ ix86_builtin_vectorization_cost (enum vect_cost_for_stmt type_of_cost,
|
||||
|
||||
case vector_load:
|
||||
index = sse_store_index (mode);
|
||||
gcc_assert (index >= 0);
|
||||
/* See PR82713 - we may end up being called on non-vector type. */
|
||||
if (index < 0)
|
||||
index = 2;
|
||||
return ix86_vec_cost (mode,
|
||||
COSTS_N_INSNS (ix86_cost->sse_load[index]) / 2,
|
||||
true);
|
||||
|
||||
case vector_store:
|
||||
index = sse_store_index (mode);
|
||||
/* See PR82713 - we may end up being called on non-vector type. */
|
||||
if (index < 0)
|
||||
index = 2;
|
||||
return ix86_vec_cost (mode,
|
||||
COSTS_N_INSNS (ix86_cost->sse_store[index]) / 2,
|
||||
true);
|
||||
@ -44647,6 +44652,9 @@ ix86_builtin_vectorization_cost (enum vect_cost_for_stmt type_of_cost,
|
||||
Do that incrementally. */
|
||||
case unaligned_load:
|
||||
index = sse_store_index (mode);
|
||||
/* See PR82713 - we may end up being called on non-vector type. */
|
||||
if (index < 0)
|
||||
index = 2;
|
||||
return ix86_vec_cost (mode,
|
||||
COSTS_N_INSNS
|
||||
(ix86_cost->sse_unaligned_load[index]) / 2,
|
||||
@ -44654,6 +44662,9 @@ ix86_builtin_vectorization_cost (enum vect_cost_for_stmt type_of_cost,
|
||||
|
||||
case unaligned_store:
|
||||
index = sse_store_index (mode);
|
||||
/* See PR82713 - we may end up being called on non-vector type. */
|
||||
if (index < 0)
|
||||
index = 2;
|
||||
return ix86_vec_cost (mode,
|
||||
COSTS_N_INSNS
|
||||
(ix86_cost->sse_unaligned_store[index]) / 2,
|
||||
|
@ -1,3 +1,8 @@
|
||||
2017-11-19 Jan Hubicka <hubicka@ucw.cz>
|
||||
|
||||
PR target/82713
|
||||
* gcc.target/i386/pr82713.c: New testcase.
|
||||
|
||||
2017-11-19 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c/66618
|
||||
|
19
gcc/testsuite/gcc.target/i386/pr82713.c
Normal file
19
gcc/testsuite/gcc.target/i386/pr82713.c
Normal file
@ -0,0 +1,19 @@
|
||||
/* { dg-do compile } */
|
||||
* { dg-options "-O3 -mavx512bw" } */
|
||||
|
||||
_Bool a[2048];
|
||||
int b[2048];
|
||||
|
||||
void
|
||||
foo ()
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < 2048; i += 4)
|
||||
{
|
||||
a[i] = b[i] <= 10;
|
||||
a[i + 3] = b[i + 1] <= 10;
|
||||
a[i + 2] = b[i + 2] <= 10;
|
||||
a[i + 1] = b[i + 3] <= 10;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user