From 7b7d60003fdc93ba1be6b25fbb7c393e2837c0e6 Mon Sep 17 00:00:00 2001 From: Paul Brook Date: Tue, 27 Jan 2009 16:14:13 +0000 Subject: [PATCH] Fix broken commit from r143594. From-SVN: r143705 --- gcc/config.gcc | 2 +- gcc/testsuite/gcc.target/arm/neon-cond-1.c | 30 ++++++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gcc.target/arm/neon-cond-1.c diff --git a/gcc/config.gcc b/gcc/config.gcc index 63bd62bb653..aa224ae59df 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -760,7 +760,7 @@ arm*-*-eabi* | arm*-*-symbianelf* ) tmake_file="arm/t-arm arm/t-arm-elf" case ${target} in arm*-*-eabi*) - tm_file="$tm_file arm/eabi.h arm/nocrt0.h" + tm_file="$tm_file arm/eabi.h" tmake_file="${tmake_file} arm/t-bpabi" extra_options="${extra_options} arm/eabi.opt" ;; diff --git a/gcc/testsuite/gcc.target/arm/neon-cond-1.c b/gcc/testsuite/gcc.target/arm/neon-cond-1.c new file mode 100644 index 00000000000..7d87b6e126b --- /dev/null +++ b/gcc/testsuite/gcc.target/arm/neon-cond-1.c @@ -0,0 +1,30 @@ +/* { dg-do run } */ +/* { dg-require-effective-target arm_neon_hw } */ +/* { dg-options "-O2 -mfpu=neon -mfloat-abi=softfp" } */ +/* Check that the arm_final_prescan_insn ccfsm code does not try to + * conditionally execute NEON instructions. */ +#include +#include + +int __attribute__((noinline)) +foo(uint32x2_t a, uint32_t *p, uint32_t *q) +{ + if (p != q) + /* This vst1 instruction could be conditional, except that NEON + instructions are never conditional in ARM mode. */ + vst1_u32(p, a); + return 0; +} + +int +main() +{ + uint32x2_t v; + uint32_t a[2] = {1, 42}; + v = vld1_u32(a); + v = vadd_u32(v, v); + foo(v, a, a); + if (a[0] != 1 || a[1] != 42) + abort(); + exit(0); +} -- 2.30.2