aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.target
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.target')
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.target/arm/frame-pointer-1.c1
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.target/arm/neon-vext-execute.c1
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.target/arm/pr56184.C1
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.target/arm/pr58784.c1
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.target/arm/pr59896.c1
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.target/arm/pr59985.C1
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.target/arm/stack-red-zone.c1
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.target/arm/thumb-find-work-register.c1
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vfixupimmpd-2.c7
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vfixupimmps-2.c6
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vfixupimmsd-2.c6
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vfixupimmss-2.c6
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vpermi2d-2.c1
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vpermi2pd-2.c1
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vpermi2ps-2.c1
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vpermi2q-2.c1
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vpermt2d-2.c1
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vpermt2pd-2.c1
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vpermt2ps-2.c1
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vpermt2q-2.c1
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.target/i386/pr61794.c12
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.target/i386/pr61801.c21
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.target/i386/pr61855.c10
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.target/i386/pr61923.c36
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.target/i386/xop-imul64-vector.c1
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.target/mips/pr62030-octeon.c50
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.target/powerpc/ppc64-abi-warn-1.c12
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.target/powerpc/ppc64-abi-warn-2.c11
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.target/powerpc/ppc64-abi-warn-3.c9
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.target/powerpc/pr60102.c11
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.target/sh/pr61996.c12
31 files changed, 205 insertions, 21 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/arm/frame-pointer-1.c b/gcc-4.9/gcc/testsuite/gcc.target/arm/frame-pointer-1.c
index bb1888e38..c288fef83 100644
--- a/gcc-4.9/gcc/testsuite/gcc.target/arm/frame-pointer-1.c
+++ b/gcc-4.9/gcc/testsuite/gcc.target/arm/frame-pointer-1.c
@@ -1,6 +1,7 @@
/* Check local register variables using a register conventionally
used as the frame pointer aren't clobbered under high register pressure. */
/* { dg-do run } */
+/* { dg-skip-if "incompatible options" { ! { arm_thumb1_ok || arm_thumb2_ok } } { "*" } { "" } } */
/* { dg-options "-Os -mthumb -fomit-frame-pointer" } */
#include <stdlib.h>
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/arm/neon-vext-execute.c b/gcc-4.9/gcc/testsuite/gcc.target/arm/neon-vext-execute.c
index 3d6c28cca..8e44d9ad5 100644
--- a/gcc-4.9/gcc/testsuite/gcc.target/arm/neon-vext-execute.c
+++ b/gcc-4.9/gcc/testsuite/gcc.target/arm/neon-vext-execute.c
@@ -1,5 +1,6 @@
/* { dg-do run } */
/* { dg-require-effective-target arm_neon_ok } */
+/* { dg-require-effective-target arm_neon_hw } */
/* { dg-require-effective-target arm_little_endian } */
/* { dg-options "-O2" } */
/* { dg-add-options arm_neon } */
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/arm/pr56184.C b/gcc-4.9/gcc/testsuite/gcc.target/arm/pr56184.C
index d44c1b432..5d23c40c5 100644
--- a/gcc-4.9/gcc/testsuite/gcc.target/arm/pr56184.C
+++ b/gcc-4.9/gcc/testsuite/gcc.target/arm/pr56184.C
@@ -1,4 +1,5 @@
/* { dg-do compile } */
+/* { dg-skip-if "incompatible options" { ! { arm_thumb1_ok || arm_thumb2_ok } } { "*" } { "" } } */
/* { dg-options "-fno-short-enums -O2 -mthumb -march=armv7-a -mfpu=neon -mfloat-abi=softfp -mtune=cortex-a9 -fno-section-anchors" } */
typedef unsigned int size_t;
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/arm/pr58784.c b/gcc-4.9/gcc/testsuite/gcc.target/arm/pr58784.c
index e3ef950b4..9a1fcff1c 100644
--- a/gcc-4.9/gcc/testsuite/gcc.target/arm/pr58784.c
+++ b/gcc-4.9/gcc/testsuite/gcc.target/arm/pr58784.c
@@ -1,4 +1,5 @@
/* { dg-do compile } */
+/* { dg-skip-if "incompatible options" { arm_thumb1 } { "*" } { "" } } */
/* { dg-options "-march=armv7-a -mfloat-abi=hard -mfpu=neon -marm -O2" } */
typedef struct __attribute__ ((__packed__))
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/arm/pr59896.c b/gcc-4.9/gcc/testsuite/gcc.target/arm/pr59896.c
index 5896e7379..ea6dc248b 100644
--- a/gcc-4.9/gcc/testsuite/gcc.target/arm/pr59896.c
+++ b/gcc-4.9/gcc/testsuite/gcc.target/arm/pr59896.c
@@ -1,4 +1,5 @@
/* { dg-do compile } */
+/* { dg-skip-if "incompatible options" { ! { arm_thumb1_ok || arm_thumb2_ok } } { "*" } { "" } } */
/* { dg-options "-mthumb -O2" } */
typedef unsigned int size_t;
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/arm/pr59985.C b/gcc-4.9/gcc/testsuite/gcc.target/arm/pr59985.C
index cc688a965..1351c486f 100644
--- a/gcc-4.9/gcc/testsuite/gcc.target/arm/pr59985.C
+++ b/gcc-4.9/gcc/testsuite/gcc.target/arm/pr59985.C
@@ -1,4 +1,5 @@
/* { dg-do compile } */
+/* { dg-skip-if "incompatible options" { arm_thumb1 } { "*" } { "" } } */
/* { dg-options "-g -fcompare-debug -O2 -march=armv7-a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mfloat-abi=hard" } */
extern void *f1 (unsigned long, unsigned long);
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/arm/stack-red-zone.c b/gcc-4.9/gcc/testsuite/gcc.target/arm/stack-red-zone.c
index b9f0f9937..8db2e2c09 100644
--- a/gcc-4.9/gcc/testsuite/gcc.target/arm/stack-red-zone.c
+++ b/gcc-4.9/gcc/testsuite/gcc.target/arm/stack-red-zone.c
@@ -1,4 +1,5 @@
/* No stack red zone. PR38644. */
+/* { dg-skip-if "incompatible options" { ! { arm_thumb1_ok || arm_thumb2_ok } } { "*" } { "" } } */
/* { dg-options "-mthumb -O2" } */
/* { dg-final { scan-assembler "ldrb\[^\n\]*\\n\[\t \]*add\[\t \]*sp" } } */
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/arm/thumb-find-work-register.c b/gcc-4.9/gcc/testsuite/gcc.target/arm/thumb-find-work-register.c
index f2c0225a4..e67a627ea 100644
--- a/gcc-4.9/gcc/testsuite/gcc.target/arm/thumb-find-work-register.c
+++ b/gcc-4.9/gcc/testsuite/gcc.target/arm/thumb-find-work-register.c
@@ -1,5 +1,6 @@
/* Wrong method to get number of arg reg will cause argument corruption. */
/* { dg-do run } */
+/* { dg-skip-if "incompatible options" { ! { arm_thumb1_ok || arm_thumb2_ok } } { "*" } { "" } } */
/* { dg-require-effective-target arm_eabi } */
/* { dg-options "-mthumb -O1" } */
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vfixupimmpd-2.c b/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vfixupimmpd-2.c
index d4ddd3214..995b446d8 100644
--- a/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vfixupimmpd-2.c
+++ b/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vfixupimmpd-2.c
@@ -10,7 +10,8 @@
#define SIZE (AVX512F_LEN / 64)
#include "avx512f-mask-type.h"
#include "math.h"
-#include "values.h"
+#include "float.h"
+
static void
CALC (double *r, double src, long long tbl)
@@ -60,10 +61,10 @@ CALC (double *r, double src, long long tbl)
*r = M_PI_2;
break;
case 14:
- *r = MAXDOUBLE;
+ *r = DBL_MAX;
break;
case 15:
- *r = -MAXDOUBLE;
+ *r = -DBL_MAX;
break;
default:
abort ();
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vfixupimmps-2.c b/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vfixupimmps-2.c
index 6c2539d0f..edb149cf5 100644
--- a/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vfixupimmps-2.c
+++ b/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vfixupimmps-2.c
@@ -10,7 +10,7 @@
#define SIZE (AVX512F_LEN / 32)
#include "avx512f-mask-type.h"
#include "math.h"
-#include "values.h"
+#include "float.h"
static void
CALC (float *r, float src, int tbl)
@@ -60,10 +60,10 @@ CALC (float *r, float src, int tbl)
*r = M_PI_2;
break;
case 14:
- *r = MAXFLOAT;
+ *r = FLT_MAX;
break;
case 15:
- *r = -MAXFLOAT;
+ *r = -FLT_MAX;
break;
default:
abort ();
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vfixupimmsd-2.c b/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vfixupimmsd-2.c
index 1344c7fd1..1b66a9821 100644
--- a/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vfixupimmsd-2.c
+++ b/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vfixupimmsd-2.c
@@ -6,7 +6,7 @@
#include "avx512f-check.h"
#include "avx512f-helper.h"
#include <math.h>
-#include <values.h>
+#include <float.h>
#include "avx512f-mask-type.h"
void
@@ -57,10 +57,10 @@ compute_fixupimmpd (double *r, double src, long long tbl)
*r = M_PI_2;
break;
case 14:
- *r = MAXDOUBLE;
+ *r = DBL_MAX;
break;
case 15:
- *r = -MAXDOUBLE;
+ *r = -DBL_MAX;
break;
default:
abort ();
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vfixupimmss-2.c b/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vfixupimmss-2.c
index 25e165ff5..87883ba6a 100644
--- a/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vfixupimmss-2.c
+++ b/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vfixupimmss-2.c
@@ -6,7 +6,7 @@
#include "avx512f-check.h"
#include "avx512f-helper.h"
#include <math.h>
-#include <values.h>
+#include <float.h>
#include "avx512f-mask-type.h"
void
@@ -57,10 +57,10 @@ compute_fixupimmps (float *r, float src, int tbl)
*r = M_PI_2;
break;
case 14:
- *r = MAXFLOAT;
+ *r = FLT_MAX;
break;
case 15:
- *r = -MAXFLOAT;
+ *r = -FLT_MAX;
break;
default:
abort ();
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vpermi2d-2.c b/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vpermi2d-2.c
index 9aa104bbf..6205cc530 100644
--- a/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vpermi2d-2.c
+++ b/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vpermi2d-2.c
@@ -9,7 +9,6 @@
#define SIZE (AVX512F_LEN / 32)
#include "avx512f-mask-type.h"
#include "math.h"
-#include "values.h"
static void
CALC (int *dst, int *src1, int *ind, int *src2)
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vpermi2pd-2.c b/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vpermi2pd-2.c
index a2daca0bd..0bb5b4c52 100644
--- a/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vpermi2pd-2.c
+++ b/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vpermi2pd-2.c
@@ -9,7 +9,6 @@
#define SIZE (AVX512F_LEN / 64)
#include "avx512f-mask-type.h"
#include "math.h"
-#include "values.h"
static void
CALC (double *dst, double *src1, long long *ind, double *src2)
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vpermi2ps-2.c b/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vpermi2ps-2.c
index 56215cfca..f8038ef15 100644
--- a/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vpermi2ps-2.c
+++ b/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vpermi2ps-2.c
@@ -9,7 +9,6 @@
#define SIZE (AVX512F_LEN / 32)
#include "avx512f-mask-type.h"
#include "math.h"
-#include "values.h"
static void
CALC (float *dst, float *src1, int *ind, float *src2)
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vpermi2q-2.c b/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vpermi2q-2.c
index 9d7b9bec3..0268afbce 100644
--- a/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vpermi2q-2.c
+++ b/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vpermi2q-2.c
@@ -9,7 +9,6 @@
#define SIZE (AVX512F_LEN / 64)
#include "avx512f-mask-type.h"
#include "math.h"
-#include "values.h"
static void
CALC (long long *dst, long long *src1, long long *ind, long long *src2)
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vpermt2d-2.c b/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vpermt2d-2.c
index ef8d1951b..bba108abd 100644
--- a/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vpermt2d-2.c
+++ b/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vpermt2d-2.c
@@ -9,7 +9,6 @@
#define SIZE (AVX512F_LEN / 32)
#include "avx512f-mask-type.h"
#include "math.h"
-#include "values.h"
static void
CALC (int *dst, int *src1, int *ind, int *src2)
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vpermt2pd-2.c b/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vpermt2pd-2.c
index 511a47015..4891c8553 100644
--- a/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vpermt2pd-2.c
+++ b/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vpermt2pd-2.c
@@ -9,7 +9,6 @@
#define SIZE (AVX512F_LEN / 64)
#include "avx512f-mask-type.h"
#include "math.h"
-#include "values.h"
static void
CALC (double *dst, double *src1, long long *ind, double *src2)
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vpermt2ps-2.c b/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vpermt2ps-2.c
index cd35d1237..a3d57c41d 100644
--- a/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vpermt2ps-2.c
+++ b/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vpermt2ps-2.c
@@ -9,7 +9,6 @@
#define SIZE (AVX512F_LEN / 32)
#include "avx512f-mask-type.h"
#include "math.h"
-#include "values.h"
static void
CALC (float *dst, float *src1, int *ind, float *src2)
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vpermt2q-2.c b/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vpermt2q-2.c
index 5f449adec..57fe3d4b1 100644
--- a/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vpermt2q-2.c
+++ b/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vpermt2q-2.c
@@ -9,7 +9,6 @@
#define SIZE (AVX512F_LEN / 64)
#include "avx512f-mask-type.h"
#include "math.h"
-#include "values.h"
static void
CALC (long long *dst, long long *src1, long long *ind, long long *src2)
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/i386/pr61794.c b/gcc-4.9/gcc/testsuite/gcc.target/i386/pr61794.c
new file mode 100644
index 000000000..5f8e7d06c
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.target/i386/pr61794.c
@@ -0,0 +1,12 @@
+/* { dg-do compile } */
+/* { dg-options "-mavx512f" } */
+
+#include <x86intrin.h>
+
+__m512i zmm;
+__m128i xmm;
+
+void test (void)
+{
+ xmm = _mm512_extracti32x4_epi32 (zmm, 0);
+}
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/i386/pr61801.c b/gcc-4.9/gcc/testsuite/gcc.target/i386/pr61801.c
new file mode 100644
index 000000000..d0d08ccb4
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.target/i386/pr61801.c
@@ -0,0 +1,21 @@
+/* PR rtl-optimization/61801 */
+/* { dg-do compile } */
+/* { dg-options "-Os -fcompare-debug" } */
+
+int a, c;
+int bar (void);
+void baz (void);
+
+void
+foo (void)
+{
+ int d;
+ if (bar ())
+ {
+ int e;
+ baz ();
+ asm volatile ("" : "=a" (e) : "0" (a), "i" (0));
+ d = e;
+ }
+ c = d;
+}
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/i386/pr61855.c b/gcc-4.9/gcc/testsuite/gcc.target/i386/pr61855.c
new file mode 100644
index 000000000..09c62aebb
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.target/i386/pr61855.c
@@ -0,0 +1,10 @@
+/* { dg-do compile } */
+/* { dg-options "-mavx512f" } */
+
+#include <x86intrin.h>
+
+__m512 test (__m512 x)
+{
+ return _mm512_getmant_ps(x, _MM_MANT_NORM_1_2, _MM_MANT_SIGN_zero);
+}
+
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/i386/pr61923.c b/gcc-4.9/gcc/testsuite/gcc.target/i386/pr61923.c
new file mode 100644
index 000000000..458158cc6
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.target/i386/pr61923.c
@@ -0,0 +1,36 @@
+/* PR debug/61923 */
+/* { dg-do compile } */
+/* { dg-options "-O2 -fcompare-debug" } */
+
+typedef struct
+{
+ struct
+ {
+ struct
+ {
+ char head;
+ } tickets;
+ };
+} arch_spinlock_t;
+struct ext4_map_blocks
+{
+ int m_lblk;
+ int m_len;
+ int m_flags;
+};
+int ext4_da_map_blocks_ei_0;
+void fn1 (int p1, struct ext4_map_blocks *p2)
+{
+ int ret;
+ if (p2->m_flags)
+ {
+ ext4_da_map_blocks_ei_0++;
+ arch_spinlock_t *lock;
+ switch (sizeof *&lock->tickets.head)
+ case 1:
+ asm("" : "+m"(*&lock->tickets.head) : ""(0));
+ __asm__("");
+ ret = 0;
+ }
+ fn2 (p2->m_lblk, p2->m_len);
+}
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/i386/xop-imul64-vector.c b/gcc-4.9/gcc/testsuite/gcc.target/i386/xop-imul64-vector.c
index 382677e60..97ef3935a 100644
--- a/gcc-4.9/gcc/testsuite/gcc.target/i386/xop-imul64-vector.c
+++ b/gcc-4.9/gcc/testsuite/gcc.target/i386/xop-imul64-vector.c
@@ -33,4 +33,3 @@ int main ()
/* { dg-final { scan-assembler "vpmulld" } } */
/* { dg-final { scan-assembler "vphadddq" } } */
-/* { dg-final { scan-assembler "vpmacsdql" } } */
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/mips/pr62030-octeon.c b/gcc-4.9/gcc/testsuite/gcc.target/mips/pr62030-octeon.c
new file mode 100644
index 000000000..5e3d3b3b6
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.target/mips/pr62030-octeon.c
@@ -0,0 +1,50 @@
+/* { dg-do run } */
+/* { dg-options "-march=octeon" } */
+
+extern void abort (void);
+
+struct node
+{
+ struct node *next;
+ struct node *prev;
+};
+
+struct node node;
+
+struct head
+{
+ struct node *first;
+};
+
+struct head heads[5];
+
+int k = 2;
+
+struct head *head = &heads[2];
+
+static int __attribute__((noinline))
+foo (void)
+{
+ node.prev = (void *)head;
+ head->first = &node;
+
+ struct node *n = head->first;
+ struct head *h = &heads[k];
+ struct node *next = n->next;
+
+ if (n->prev == (void *)h)
+ h->first = next;
+ else
+ n->prev->next = next;
+
+ n->next = h->first;
+ return n->next == &node;
+}
+
+int
+main (void)
+{
+ if (foo ())
+ abort ();
+ return 0;
+}
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/powerpc/ppc64-abi-warn-1.c b/gcc-4.9/gcc/testsuite/gcc.target/powerpc/ppc64-abi-warn-1.c
new file mode 100644
index 000000000..6e0d54883
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.target/powerpc/ppc64-abi-warn-1.c
@@ -0,0 +1,12 @@
+/* { dg-do compile { target { powerpc*-*-linux* && lp64 } } } */
+/* { dg-options "-mabi=elfv2" } */
+
+struct f8
+ {
+ float x[8];
+ };
+
+void test (struct f8 a, struct f8 b) /* { dg-message "note: the ABI of passing homogeneous float aggregates will change" } */
+{
+}
+
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/powerpc/ppc64-abi-warn-2.c b/gcc-4.9/gcc/testsuite/gcc.target/powerpc/ppc64-abi-warn-2.c
new file mode 100644
index 000000000..c4820e925
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.target/powerpc/ppc64-abi-warn-2.c
@@ -0,0 +1,11 @@
+/* { dg-do compile { target { powerpc*-*-linux* && lp64 } } } */
+
+struct test
+ {
+ long a __attribute__((aligned (16)));
+ };
+
+void test (struct test a) /* { dg-message "note: the ABI of passing aggregates with 16-byte alignment will change" } */
+{
+}
+
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/powerpc/ppc64-abi-warn-3.c b/gcc-4.9/gcc/testsuite/gcc.target/powerpc/ppc64-abi-warn-3.c
new file mode 100644
index 000000000..830de6bcc
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.target/powerpc/ppc64-abi-warn-3.c
@@ -0,0 +1,9 @@
+/* { dg-do compile { target { powerpc*-*-linux* && lp64 } } } */
+/* { dg-require-effective-target powerpc_altivec_ok } */
+/* { dg-options "-maltivec" } */
+
+struct test
+ {
+ int a __attribute__((vector_size (8)));
+ }; /* { dg-message "note: the layout of aggregates containing vectors with 8-byte alignment will change" } */
+
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/powerpc/pr60102.c b/gcc-4.9/gcc/testsuite/gcc.target/powerpc/pr60102.c
new file mode 100644
index 000000000..d32e41d68
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.target/powerpc/pr60102.c
@@ -0,0 +1,11 @@
+/* { dg-do compile } */
+/* { dg-skip-if "not an SPE target" { ! powerpc_spe_nocache } { "*" } { "" } } */
+/* { dg-options "-mcpu=8548 -mspe -mabi=spe -g -mfloat-gprs=double" } */
+
+double
+pr60102 (double x, int m)
+{
+ double y;
+ y = m % 2 ? x : 1;
+ return y;
+}
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/sh/pr61996.c b/gcc-4.9/gcc/testsuite/gcc.target/sh/pr61996.c
new file mode 100644
index 000000000..51a5f929d
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.target/sh/pr61996.c
@@ -0,0 +1,12 @@
+/* Check that the option -musermode has no effect on targets that do not
+ support user/privileged mode and that it does not interfere with option
+ -matomic-model=soft-imask. */
+/* { dg-do compile } */
+/* { dg-options "-matomic-model=soft-imask" } */
+/* { dg-skip-if "" { "sh*-*-*" } { "*"} { "-m1*" "-m2*" } } */
+
+int
+test (void)
+{
+ return 0;
+}