expr.c (do_store_flag): Expand vector comparison as VEC_COND_EXPR if...
gcc/ * expr.c (do_store_flag): Expand vector comparison as VEC_COND_EXPR if vector comparison is not supported by target. gcc/testsuite/ * gcc.dg/pr68286.c: New test. From-SVN: r230238
This commit is contained in:
parent
e9ea8f9e56
commit
3095f7c6eb
4 changed files with 29 additions and 1 deletions
|
@ -1,3 +1,9 @@
|
|||
2015-11-12 Ilya Enkovich <enkovich.gnu@gmail.com>
|
||||
|
||||
* expr.c (do_store_flag): Expand vector comparison as
|
||||
VEC_COND_EXPR if vector comparison is not supported
|
||||
by target.
|
||||
|
||||
2015-11-12 Renlin Li <renlin.li@arm.com>
|
||||
|
||||
* config/arm/arm.md (addsi3_compare_op2): Make the order of
|
||||
|
|
|
@ -11128,7 +11128,8 @@ do_store_flag (sepops ops, rtx target, machine_mode mode)
|
|||
if (TREE_CODE (ops->type) == VECTOR_TYPE)
|
||||
{
|
||||
tree ifexp = build2 (ops->code, ops->type, arg0, arg1);
|
||||
if (VECTOR_BOOLEAN_TYPE_P (ops->type))
|
||||
if (VECTOR_BOOLEAN_TYPE_P (ops->type)
|
||||
&& expand_vec_cmp_expr_p (TREE_TYPE (arg0), ops->type))
|
||||
return expand_vec_cmp_expr (ops->type, ifexp, target);
|
||||
else
|
||||
{
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2015-11-12 Ilya Enkovich <enkovich.gnu@gmail.com>
|
||||
|
||||
* gcc.dg/pr68286.c: New test.
|
||||
|
||||
2015-11-12 Christian Bruel <christian.bruel@st.com>
|
||||
|
||||
* gcc.target/arm/mmx-1.c: Adjust for unified asm.
|
||||
|
|
17
gcc/testsuite/gcc.dg/pr68286.c
Normal file
17
gcc/testsuite/gcc.dg/pr68286.c
Normal file
|
@ -0,0 +1,17 @@
|
|||
/* PR target/68286 */
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O3" } */
|
||||
|
||||
int a, b, c;
|
||||
int fn1 ()
|
||||
{
|
||||
int d[] = {0};
|
||||
for (; c; c++)
|
||||
{
|
||||
float e = c;
|
||||
if (e)
|
||||
d[0]++;
|
||||
}
|
||||
b = d[0];
|
||||
return a;
|
||||
}
|
Loading…
Add table
Reference in a new issue