aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Meissner <meissner@linux.ibm.com>2021-08-13 19:43:27 -0400
committerMichael Meissner <meissner@linux.ibm.com>2021-08-13 19:43:27 -0400
commit58eec9908c01e2f5a6eb9cd76bbf037bbe2cf5e6 (patch)
tree30a6586ae3da885024646b148c5400ac1fa6adc0
parent2cc65fcbd470de8240f64317629a60fab879dfc5 (diff)
downloadgcc-58eec9908c01e2f5a6eb9cd76bbf037bbe2cf5e6.zip
gcc-58eec9908c01e2f5a6eb9cd76bbf037bbe2cf5e6.tar.gz
gcc-58eec9908c01e2f5a6eb9cd76bbf037bbe2cf5e6.tar.bz2
Fix xxeval predicates (PR 99921).
I noticed that the xxeval built-in function used the altivec_register_operand predicate. Since it takes vsx registers, this might force the register allocate to issue a move when it could use a traditional floating point register. This patch fixes that. 2021-08-13 Michael Meissner <meissner@linux.ibm.com> gcc/ PR target/99921 * config/rs6000/altivec.md (xxeval): Use register_predicate instead of altivec_register_predicate.
-rw-r--r--gcc/config/rs6000/altivec.md6
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/config/rs6000/altivec.md b/gcc/config/rs6000/altivec.md
index d70c17e..fd86c300 100644
--- a/gcc/config/rs6000/altivec.md
+++ b/gcc/config/rs6000/altivec.md
@@ -3875,9 +3875,9 @@
(define_insn "xxeval"
[(set (match_operand:V2DI 0 "register_operand" "=wa")
- (unspec:V2DI [(match_operand:V2DI 1 "altivec_register_operand" "wa")
- (match_operand:V2DI 2 "altivec_register_operand" "wa")
- (match_operand:V2DI 3 "altivec_register_operand" "wa")
+ (unspec:V2DI [(match_operand:V2DI 1 "register_operand" "wa")
+ (match_operand:V2DI 2 "register_operand" "wa")
+ (match_operand:V2DI 3 "register_operand" "wa")
(match_operand:QI 4 "u8bit_cint_operand" "n")]
UNSPEC_XXEVAL))]
"TARGET_POWER10"