]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
[ARM] PR 67439: Allow matching of *arm32_movhf when -mrestrict-it is on
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>
Wed, 20 Jan 2016 17:05:43 +0000 (17:05 +0000)
committerKyrylo Tkachov <ktkachov@gcc.gnu.org>
Wed, 20 Jan 2016 17:05:43 +0000 (17:05 +0000)
Backport from mainline
2015-09-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

PR target/67439
* config/arm/arm.md (*arm32_movhf): Remove !arm_restrict_it from
predicate.  Set predicable_short_it attr to "no".

* gcc.target/arm/pr67439_1.c: New test.

From-SVN: r232623

gcc/ChangeLog
gcc/config/arm/arm.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/arm/pr67439_1.c [new file with mode: 0644]

index f540110267c2cb71e762f8baaee8b78a45545f4e..4635cf8d9a9149c2b3a02874b52ec4548a3f6ac5 100644 (file)
@@ -1,3 +1,12 @@
+2016-01-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       Backport from mainline
+       2015-09-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       PR target/67439
+       * config/arm/arm.md (*arm32_movhf): Remove !arm_restrict_it from
+       predicate.  Set predicable_short_it attr to "no".
+
 2016-01-19  Sergei Trofimovich <siarheit@google.com>
 
        Backport from mainline
index 138d17e8d7dec2c38c4daa531b46be3e0ce88cea..e989b632c7d65c136eed2e5720c133c4c04505a4 100644 (file)
 (define_insn "*arm32_movhf"
   [(set (match_operand:HF 0 "nonimmediate_operand" "=r,m,r,r")
        (match_operand:HF 1 "general_operand"      " m,r,r,F"))]
-  "TARGET_32BIT && !(TARGET_HARD_FLOAT && TARGET_FP16) && !arm_restrict_it
+  "TARGET_32BIT && !(TARGET_HARD_FLOAT && TARGET_FP16)
    && (          s_register_operand (operands[0], HFmode)
        || s_register_operand (operands[1], HFmode))"
   "*
   [(set_attr "conds" "unconditional")
    (set_attr "type" "load1,store1,mov_reg,multiple")
    (set_attr "length" "4,4,4,8")
-   (set_attr "predicable" "yes")]
+   (set_attr "predicable" "yes")
+   (set_attr "predicable_short_it" "no")]
 )
 
 (define_insn "*thumb1_movhf"
index a41384ced61d66ea9cb36e2492dc2c2ea4b9f3c8..d79c3527a84fe8596746e6796ac42dae9ff03b3d 100644 (file)
@@ -1,3 +1,11 @@
+2016-01-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       Backport from mainline
+       2015-09-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       PR target/67439
+       * gcc.target/arm/pr67439_1.c: New test.
+
 2016-01-19  Sergei Trofimovich <siarheit@google.com>
 
        Backport from mainline
diff --git a/gcc/testsuite/gcc.target/arm/pr67439_1.c b/gcc/testsuite/gcc.target/arm/pr67439_1.c
new file mode 100644 (file)
index 0000000..f7a6128
--- /dev/null
@@ -0,0 +1,11 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target arm_thumb2_ok } */
+/* { dg-options "-O1 -mfp16-format=ieee -march=armv7-a -mfpu=neon -mthumb -mrestrict-it" } */
+
+__fp16 h0 = -1.0;
+
+void
+f (__fp16 *p)
+{
+  h0 = 1.0;
+}