mirror of git://gcc.gnu.org/git/gcc.git
[ARM] Tests for arm_restrict_it patterns in thumb2.md
* gcc.target/arm/cond_sub_restrict_it.c: New test. * gcc.target/arm/condarith_restrict_it.c: Likewise. * gcc.target/arm/movcond_restrict_it.c: Likewise. * gcc.target/arm/negscc_restrict_it.c: Likewise. From-SVN: r233667
This commit is contained in:
parent
86715b0917
commit
cd7bbcebb1
|
|
@ -1,3 +1,10 @@
|
|||
2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||||
|
||||
* gcc.target/arm/cond_sub_restrict_it.c: New test.
|
||||
* gcc.target/arm/condarith_restrict_it.c: Likewise.
|
||||
* gcc.target/arm/movcond_restrict_it.c: Likewise.
|
||||
* gcc.target/arm/negscc_restrict_it.c: Likewise.
|
||||
|
||||
2016-02-24 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR middle-end/69915
|
||||
|
|
|
|||
|
|
@ -0,0 +1,26 @@
|
|||
/* { dg-do run } */
|
||||
/* { dg-require-effective-target arm_thumb2_ok } */
|
||||
/* { dg-options "-mthumb -O -mrestrict-it" } */
|
||||
|
||||
int a;
|
||||
|
||||
__attribute__((noinline, noclone)) int
|
||||
fn1 (int c, int d)
|
||||
{
|
||||
a -= c == d;
|
||||
return a;
|
||||
}
|
||||
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
a = 10;
|
||||
if (fn1 (4, 4) != 9)
|
||||
__builtin_abort ();
|
||||
|
||||
a = 5;
|
||||
if (fn1 (3, 4) != 5)
|
||||
__builtin_abort ();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
/* { dg-do run } */
|
||||
/* { dg-require-effective-target arm_thumb2_ok } */
|
||||
/* { dg-options "-mthumb -O2 -mrestrict-it" } */
|
||||
|
||||
__attribute__ ((noinline, noclone)) void
|
||||
fn2 ()
|
||||
{
|
||||
__builtin_printf ("4");
|
||||
}
|
||||
|
||||
enum
|
||||
{
|
||||
ONE = 1,
|
||||
TWO
|
||||
} a;
|
||||
|
||||
int b;
|
||||
|
||||
__attribute__ ((noinline, noclone)) int
|
||||
fn1 ()
|
||||
{
|
||||
int c = b == 0;
|
||||
if (a <= ONE)
|
||||
if (b == 0)
|
||||
fn2 ();
|
||||
if (a)
|
||||
if (c)
|
||||
a = 0;
|
||||
|
||||
return a;
|
||||
}
|
||||
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
a = ONE;
|
||||
b = 1;
|
||||
if (fn1 () != ONE)
|
||||
__builtin_abort ();
|
||||
|
||||
a = TWO;
|
||||
b = 0;
|
||||
if (fn1 () != 0)
|
||||
__builtin_abort ();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
/* { dg-do run } */
|
||||
/* { dg-require-effective-target arm_thumb2_ok } */
|
||||
/* { dg-options "-mthumb -O3 -mrestrict-it" } */
|
||||
|
||||
int a;
|
||||
|
||||
__attribute__ ((noinline, noclone)) int
|
||||
fn1 (int c, int d)
|
||||
{
|
||||
if (c > d)
|
||||
a = 1;
|
||||
else
|
||||
a = -1;
|
||||
return a;
|
||||
}
|
||||
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
if (fn1 (4, 5) != -1)
|
||||
__builtin_abort ();
|
||||
|
||||
if (fn1 (5, 4) != 1)
|
||||
__builtin_abort ();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
/* { dg-do run } */
|
||||
/* { dg-require-effective-target arm_thumb2_ok } */
|
||||
/* { dg-options "-mthumb -O2 -mrestrict-it" } */
|
||||
|
||||
__attribute__ ((noinline, noclone)) int
|
||||
fn1 (int a, int b)
|
||||
{
|
||||
return (a == b ? 0 : -1);
|
||||
}
|
||||
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
if (fn1 (3, 3) != 0)
|
||||
__builtin_abort ();
|
||||
|
||||
if (fn1 (6, 7) != -1)
|
||||
__builtin_abort ();
|
||||
}
|
||||
Loading…
Reference in New Issue