summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkugan <kugan@138bc75d-0d04-0410-961f-82ee72b054a4>2016-01-17 02:44:26 +0000
committerkugan <kugan@138bc75d-0d04-0410-961f-82ee72b054a4>2016-01-17 02:44:26 +0000
commitc054e1a88db7f0bf10825bfab4da0ae487e9ffcd (patch)
treebcb9f40f591d8e4164d582a1afd0daf5d7060199
parent33ecbc9e0b600757dfb3ef1c1a5ca14f57a1efb7 (diff)
downloadgcc-c054e1a88db7f0bf10825bfab4da0ae487e9ffcd.tar.gz
2016-01-17 Kugan Vivekanandarajah <kuganv@linaro.org>
Backport from mainline 2016-01-12 Kugan Vivekanandarajah <kuganv@linaro.org> Jim Wilson <jim.wilson@linaro.org> PR target/69194 * config/arm/arm-builtins.c (arm_expand_neon_args): Call copy_to_mode_reg instead of force_reg. 2016-01-17 Kugan Vivekanandarajah <kuganv@linaro.org> Backport from mainline 2016-01-12 Kugan Vivekanandarajah <kuganv@linaro.org> Jim Wilson <jim.wilson@linaro.org> PR target/69194 * gcc.target/arm/pr69194.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-5-branch@232481 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog10
-rw-r--r--gcc/config/arm/arm-builtins.c3
-rw-r--r--gcc/testsuite/ChangeLog9
-rw-r--r--gcc/testsuite/gcc.target/arm/pr69194.c13
4 files changed, 34 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ceea0b56a87..11319bf2737 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,13 @@
+2016-01-17 Kugan Vivekanandarajah <kuganv@linaro.org>
+
+ Backport from mainline
+ 2016-01-12 Kugan Vivekanandarajah <kuganv@linaro.org>
+ Jim Wilson <jim.wilson@linaro.org>
+
+ PR target/69194
+ * config/arm/arm-builtins.c (arm_expand_neon_args): Call
+ copy_to_mode_reg instead of force_reg.
+
2016-01-15 Alexander Fomin <alexander.fomin@intel.com>
Backport from mainline
diff --git a/gcc/config/arm/arm-builtins.c b/gcc/config/arm/arm-builtins.c
index 7a451133f86..4250c91caf9 100644
--- a/gcc/config/arm/arm-builtins.c
+++ b/gcc/config/arm/arm-builtins.c
@@ -2077,7 +2077,8 @@ arm_expand_neon_args (rtx target, machine_mode map_mode, int fcode,
if (!(*insn_data[icode].operand[opno].predicate)
(op[argc], mode[argc]))
op[argc] = (replace_equiv_address
- (op[argc], force_reg (Pmode, XEXP (op[argc], 0))));
+ (op[argc],
+ copy_to_mode_reg (Pmode, XEXP (op[argc], 0))));
break;
case NEON_ARG_STOP:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 370950bf708..dc2e2aef9a6 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,12 @@
+2016-01-17 Kugan Vivekanandarajah <kuganv@linaro.org>
+
+ Backport from mainline
+ 2016-01-12 Kugan Vivekanandarajah <kuganv@linaro.org>
+ Jim Wilson <jim.wilson@linaro.org>
+
+ PR target/69194
+ * gcc.target/arm/pr69194.c: New test.
+
2016-01-15 Alexander Fomin <alexander.fomin@intel.com>
Backport from mainline
diff --git a/gcc/testsuite/gcc.target/arm/pr69194.c b/gcc/testsuite/gcc.target/arm/pr69194.c
new file mode 100644
index 00000000000..477d5f92c8e
--- /dev/null
+++ b/gcc/testsuite/gcc.target/arm/pr69194.c
@@ -0,0 +1,13 @@
+/* PR target/69194 */
+/* { dg-do-compile } */
+/* { dg-require-effective-target arm_neon_ok } */
+/* { dg-options "-O2" } */
+/* { dg-add-options arm_neon } */
+
+typedef __simd128_float32_t float32x4_t;
+
+float32x4_t
+sub (float32x4_t a, float32x4_t b, float32x4_t c, float32x4_t d, float32x4_t e)
+{
+ return __builtin_neon_vld1v4sf((const float *)&e);
+}