diff options
author | Ben Cheng <bccheng@google.com> | 2014-04-22 13:33:12 -0700 |
---|---|---|
committer | Ben Cheng <bccheng@google.com> | 2014-04-22 13:33:12 -0700 |
commit | e3cc64dec20832769406aa38cde83c7dd4194bf4 (patch) | |
tree | ef8e39be37cfe0cb69d850043b7924389ff17164 /gcc-4.9/gcc/testsuite/gcc.target/arm | |
parent | f33c7b3122b1d7950efa88067c9a156229ba647b (diff) | |
download | toolchain_gcc-e3cc64dec20832769406aa38cde83c7dd4194bf4.tar.gz toolchain_gcc-e3cc64dec20832769406aa38cde83c7dd4194bf4.tar.bz2 toolchain_gcc-e3cc64dec20832769406aa38cde83c7dd4194bf4.zip |
[4.9] GCC 4.9.0 official release refresh
Change-Id: Ic99a7da8b44b789a48aeec93b33e93944d6e6767
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.target/arm')
-rw-r--r-- | gcc-4.9/gcc/testsuite/gcc.target/arm/pr60650-2.c | 37 | ||||
-rw-r--r-- | gcc-4.9/gcc/testsuite/gcc.target/arm/pr60650.c | 41 | ||||
-rw-r--r-- | gcc-4.9/gcc/testsuite/gcc.target/arm/pr60657.c | 13 | ||||
-rw-r--r-- | gcc-4.9/gcc/testsuite/gcc.target/arm/pr60663.c | 11 |
4 files changed, 102 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/arm/pr60650-2.c b/gcc-4.9/gcc/testsuite/gcc.target/arm/pr60650-2.c new file mode 100644 index 000000000..19467607b --- /dev/null +++ b/gcc-4.9/gcc/testsuite/gcc.target/arm/pr60650-2.c @@ -0,0 +1,37 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fno-omit-frame-pointer -march=armv7-a" } */ + +int a, h, j; +long long d, e, i; +int f; +fn1 (void *p1, int p2) +{ + switch (p2) + case 8: +{ + register b = *(long long *) p1, c asm ("r2"); + asm ("%0": "=r" (a), "=r" (c):"r" (b), "r" (0)); + *(long long *) p1 = c; + } +} + +fn2 () +{ + int k; + k = f; + while (1) + { + fn1 (&i, sizeof i); + e = d + k; + switch (d) + case 0: + ( + { + register l asm ("r4"); + register m asm ("r0"); + asm (" .err .endif\n\t": "=r" (h), "=r" (j):"r" (m), + "r" + (l));; + }); + } +} diff --git a/gcc-4.9/gcc/testsuite/gcc.target/arm/pr60650.c b/gcc-4.9/gcc/testsuite/gcc.target/arm/pr60650.c new file mode 100644 index 000000000..17a5ed448 --- /dev/null +++ b/gcc-4.9/gcc/testsuite/gcc.target/arm/pr60650.c @@ -0,0 +1,41 @@ +/* { dg-do compile } */ +/* { dg-skip-if "do not override -mfloat-abi" { *-*-* } { "-mfloat-abi=*" } {"-mfloat-abi=softfp" } } */ +/* { dg-options "-O2 -fno-omit-frame-pointer -mabi=apcs-gnu -mfloat-abi=softfp" } */ + + +struct super_block +{ + int s_blocksize_bits; +}; +struct btrfs_fs_info +{ + struct super_block *sb; +}; +struct btrfs_root +{ + struct btrfs_fs_info *fs_info; +} *b; + + +int a, c, d; +long long e; + +truncate_one_csum (struct btrfs_root *p1, long long p2, long long p3) +{ + int f, g, i = p1->fs_info->sb->s_blocksize_bits; + g = a; + long long h = p2 + p3; + f = foo1 (b, 0, c, 0); + e = f / g; + e <<= p1->fs_info->sb->s_blocksize_bits; + if (d < p2) + { + int j = e - h >> i; + foo2 (p1, 0, j); + } + else + { + asm ("1\t.long "); + __builtin_unreachable (); + } +} diff --git a/gcc-4.9/gcc/testsuite/gcc.target/arm/pr60657.c b/gcc-4.9/gcc/testsuite/gcc.target/arm/pr60657.c new file mode 100644 index 000000000..66355c39a --- /dev/null +++ b/gcc-4.9/gcc/testsuite/gcc.target/arm/pr60657.c @@ -0,0 +1,13 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -march=armv7-a" } */ + + +void foo (void); + +void +bar (int x, int y) +{ + y = 9999; + if (x & (1 << y)) + foo (); +} diff --git a/gcc-4.9/gcc/testsuite/gcc.target/arm/pr60663.c b/gcc-4.9/gcc/testsuite/gcc.target/arm/pr60663.c new file mode 100644 index 000000000..b79b830e1 --- /dev/null +++ b/gcc-4.9/gcc/testsuite/gcc.target/arm/pr60663.c @@ -0,0 +1,11 @@ +/* PR rtl-optimization/60663 */ +/* { dg-do compile } */ +/* { dg-options "-O2 -march=armv7-a" } */ + +int +foo (void) +{ + unsigned i, j; + asm ("%0 %1" : "=r" (i), "=r" (j)); + return i; +} |