From 0c15a902d1eb8d9b2be4eeced2a500c4a8a25152 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Thu, 14 Jul 2016 23:55:47 +0930 Subject: [PATCH] [RS6000] Disparage altivec_mov gpr alternatives and fix constraint '*' placement. * gcc/config/rs6000/altivec.md (altivec_mov): Disparage gpr alternatives. Correct '*' placement on Y,r alternative. Add '*' on operand 1 of r,r alternative. From-SVN: r238339 --- gcc/ChangeLog | 6 ++++++ gcc/config/rs6000/altivec.md | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e04e48af523..6c4204f5738 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2016-07-14 Alan Modra + + * gcc/config/rs6000/altivec.md (altivec_mov): Disparage + gpr alternatives. Correct '*' placement on Y,r alternative. + Add '*' on operand 1 of r,r alternative. + 2016-07-14 Kyrylo Tkachov * expmed.c (mult_variant, choose_mult_variant): Move declaration to... diff --git a/gcc/config/rs6000/altivec.md b/gcc/config/rs6000/altivec.md index aa01ac9de8d..9193f07e2f0 100644 --- a/gcc/config/rs6000/altivec.md +++ b/gcc/config/rs6000/altivec.md @@ -222,8 +222,8 @@ ;; Vector move instructions. (define_insn "*altivec_mov" - [(set (match_operand:VM2 0 "nonimmediate_operand" "=Z,v,v,*Y,*r,*r,v,v,*r") - (match_operand:VM2 1 "input_operand" "v,Z,v,r,Y,r,j,W,W"))] + [(set (match_operand:VM2 0 "nonimmediate_operand" "=Z,v,v,?Y,?*r,?*r,v,v,?*r") + (match_operand:VM2 1 "input_operand" "v,Z,v,*r,Y,*r,j,W,W"))] "VECTOR_MEM_ALTIVEC_P (mode) && (register_operand (operands[0], mode) || register_operand (operands[1], mode))" -- 2.30.2