gcc/
authoryroux <yroux@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 2 Apr 2015 06:58:52 +0000 (06:58 +0000)
committeryroux <yroux@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 2 Apr 2015 06:58:52 +0000 (06:58 +0000)
2015-04-02  Yvan Roux  <yvan.roux@linaro.org>

Backport from trunk r218530.
2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>

* config/aarch64/aarch64.md (absdi2): Remove scratch operand by
earlyclobbering result operand.

* config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
Remove final qualifier_internal.
(aarch64_fold_builtin): Stop folding abs builtins, except on floats.

gcc/testsuite/
2015-04-02  Yvan Roux  <yvan.roux@linaro.org>

Backport from trunk r218530.
2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>

* gcc.target/aarch64/vabs_intrinsic_2.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/linaro/gcc-4_9-branch@221824 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog.linaro
gcc/config/aarch64/aarch64-builtins.c
gcc/config/aarch64/aarch64.md
gcc/testsuite/ChangeLog.linaro

index e2cd62b..6fd4a10 100644 (file)
@@ -1,5 +1,17 @@
 2015-04.02  Yvan Roux  <yvan.roux@linaro.org>
 
+       Backport from trunk r218530.
+       2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>
+
+       * config/aarch64/aarch64.md (absdi2): Remove scratch operand by
+       earlyclobbering result operand.
+
+       * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
+       Remove final qualifier_internal.
+       (aarch64_fold_builtin): Stop folding abs builtins, except on floats.
+
+2015-04.02  Yvan Roux  <yvan.roux@linaro.org>
+
        Backport from trunk r218526.
        2014-12-09  Wilco Dijkstra  <wilco.dijkstra@arm.com>
 
index c7e4797..8b7d880 100644 (file)
@@ -1202,7 +1202,7 @@ aarch64_fold_builtin (tree fndecl, int n_args ATTRIBUTE_UNUSED, tree *args,
 
   switch (fcode)
     {
-      BUILTIN_VALLDI (UNOP, abs, 2)
+      BUILTIN_VDQF (UNOP, abs, 2)
        return fold_build1 (ABS_EXPR, type, args[0]);
        break;
       VAR1 (REINTERP_SS, reinterpretdi, 0, df)
index 0b1d794..2dee7c7 100644 (file)
 )
 
 (define_insn_and_split "absdi2"
-  [(set (match_operand:DI 0 "register_operand" "=r,w")
-       (abs:DI (match_operand:DI 1 "register_operand" "r,w")))
-   (clobber (match_scratch:DI 2 "=&r,X"))]
+  [(set (match_operand:DI 0 "register_operand" "=&r,w")
+       (abs:DI (match_operand:DI 1 "register_operand" "r,w")))]
   ""
   "@
    #
    && GP_REGNUM_P (REGNO (operands[1]))"
   [(const_int 0)]
   {
-    emit_insn (gen_rtx_SET (VOIDmode, operands[2],
+    emit_insn (gen_rtx_SET (VOIDmode, operands[0],
                            gen_rtx_XOR (DImode,
                                         gen_rtx_ASHIFTRT (DImode,
                                                           operands[1],
     emit_insn (gen_rtx_SET (VOIDmode,
                            operands[0],
                            gen_rtx_MINUS (DImode,
-                                          operands[2],
+                                          operands[0],
                                           gen_rtx_ASHIFTRT (DImode,
                                                             operands[1],
                                                             GEN_INT (63)))));
index 9d8ebc9..ecab740 100644 (file)
@@ -1,5 +1,12 @@
 2015-04-02  Yvan Roux  <yvan.roux@linaro.org>
 
+       Backport from trunk r218530.
+       2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>
+
+       * gcc.target/aarch64/vabs_intrinsic_2.c: New test.
+
+2015-04-02  Yvan Roux  <yvan.roux@linaro.org>
+
        Backport from trunk r218868.
        2014-12-18  Alan Lawrence  <alan.lawrence@arm.com>