aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorSudakshina Das <sudi.das@arm.com>2017-12-01 10:12:55 +0000
committerSudakshina Das <sudi@gcc.gnu.org>2017-12-01 10:12:55 +0000
commit1500cb68c3d2a7b1ddc491af52a5d42ec7dfe6d8 (patch)
tree1181f7bb8c606a797197b55f30bf944c123a5160 /gcc
parente76c715735e2472429ef7927137a57edc69f98b3 (diff)
downloadgcc-1500cb68c3d2a7b1ddc491af52a5d42ec7dfe6d8.zip
gcc-1500cb68c3d2a7b1ddc491af52a5d42ec7dfe6d8.tar.gz
gcc-1500cb68c3d2a7b1ddc491af52a5d42ec7dfe6d8.tar.bz2
Fix wrong code by arm_final_prescan with fp16 move instructions
ChangeLog entry are as follow: *** gcc/ChangeLog *** 2017-12-01 Sudakshina Das <sudi.das@arm.com> * config/arm/vfp.md (*movhf_vfp_fp16): Add conds attribute. *** gcc/testsuite/ChangeLog *** 2017-12-01 Sudakshina Das <sudi.das@arm.com> * gcc.target/arm/armv8_2-fp16-move-2.c: New test. From-SVN: r255301
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config/arm/vfp.md5
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.target/arm/armv8_2-fp16-move-2.c11
4 files changed, 23 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 09fd188..360561e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2017-12-01 Sudakshina Das <sudi.das@arm.com>
+
+ * config/arm/vfp.md (*movhf_vfp_fp16): Add conds attribute.
+
2017-12-01 Jakub Jelinek <jakub@redhat.com>
* function.h (struct function): Remove cilk_frame_decl,
diff --git a/gcc/config/arm/vfp.md b/gcc/config/arm/vfp.md
index 075a938..61b6477 100644
--- a/gcc/config/arm/vfp.md
+++ b/gcc/config/arm/vfp.md
@@ -410,7 +410,10 @@
gcc_unreachable ();
}
}
- [(set_attr "predicable" "yes, yes, no, yes, no, no, no, no, no, no")
+ [(set_attr "conds" "*, *, unconditional, *, unconditional, unconditional,\
+ unconditional, unconditional, unconditional,\
+ unconditional")
+ (set_attr "predicable" "yes, yes, no, yes, no, no, no, no, no, no")
(set_attr "predicable_short_it" "no, no, no, yes,\
no, no, no, no,\
no, no")
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index ea2f2c7..b51bd2a 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2017-12-01 Sudakshina Das <sudi.das@arm.com>
+
+ * gcc.target/arm/armv8_2-fp16-move-2.c: New test.
+
2017-12-01 Jakub Jelinek <jakub@redhat.com>
PR c/79153
diff --git a/gcc/testsuite/gcc.target/arm/armv8_2-fp16-move-2.c b/gcc/testsuite/gcc.target/arm/armv8_2-fp16-move-2.c
new file mode 100644
index 0000000..fcb857f
--- /dev/null
+++ b/gcc/testsuite/gcc.target/arm/armv8_2-fp16-move-2.c
@@ -0,0 +1,11 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target arm_v8_2a_fp16_scalar_ok } */
+/* { dg-options "-O2 -marm" } */
+/* { dg-add-options arm_v8_2a_fp16_scalar } */
+
+__fp16
+test_select (__fp16 a, __fp16 b, __fp16 c)
+{
+ return (a < b) ? b : c;
+}
+/* { dg-final { scan-assembler "bmi" } } */