aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.target/arm
diff options
context:
space:
mode:
authorBen Cheng <bccheng@google.com>2014-04-22 13:33:12 -0700
committerBen Cheng <bccheng@google.com>2014-04-22 13:33:12 -0700
commite3cc64dec20832769406aa38cde83c7dd4194bf4 (patch)
treeef8e39be37cfe0cb69d850043b7924389ff17164 /gcc-4.9/gcc/testsuite/gcc.target/arm
parentf33c7b3122b1d7950efa88067c9a156229ba647b (diff)
downloadtoolchain_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.c37
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.target/arm/pr60650.c41
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.target/arm/pr60657.c13
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.target/arm/pr60663.c11
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;
+}