[gcc r11-4840] aarch64: Do not alter force_reg returned register expanding fcmla

Andrea Corallo akrl@gcc.gnu.org
Mon Nov 9 14:40:10 GMT 2020


https://gcc.gnu.org/g:fa59c8dcd2f97c929150bd32bae1f341e0d7b0f7

commit r11-4840-gfa59c8dcd2f97c929150bd32bae1f341e0d7b0f7
Author: Andrea Corallo <andrea.corallo@arm.com>
Date:   Fri Nov 6 16:17:32 2020 +0000

    aarch64: Do not alter force_reg returned register expanding fcmla
    
    2020-11-06  Andrea Corallo  <andrea.corallo@arm.com>
    
            * config/aarch64/aarch64-builtins.c
            (aarch64_expand_fcmla_builtin): Do not alter force_reg returned
            register.

Diff:
---
 gcc/config/aarch64/aarch64-builtins.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/gcc/config/aarch64/aarch64-builtins.c b/gcc/config/aarch64/aarch64-builtins.c
index 5defdb050fa..188fce05892 100644
--- a/gcc/config/aarch64/aarch64-builtins.c
+++ b/gcc/config/aarch64/aarch64-builtins.c
@@ -1862,10 +1862,10 @@ aarch64_expand_fcmla_builtin (tree exp, rtx target, int fcode)
      only need to know the order in a V2mode.  */
   lane_idx = aarch64_endian_lane_rtx (V2DImode, lane);
 
-  if (!target)
+  if (!target
+      || !REG_P (target)
+      || GET_MODE (target) != d->mode)
     target = gen_reg_rtx (d->mode);
-  else
-    target = force_reg (d->mode, target);
 
   rtx pat = NULL_RTX;


More information about the Gcc-cvs mailing list