[gcc(refs/users/meissner/heads/work041)] Make load SF/DF splitter happen after reload.
Michael Meissner
meissner@gcc.gnu.org
Sat Mar 13 16:25:34 GMT 2021
https://gcc.gnu.org/g:b07d332165ad66db9e83d91862b5c7b65355d6a5
commit b07d332165ad66db9e83d91862b5c7b65355d6a5
Author: Michael Meissner <meissner@linux.ibm.com>
Date: Sat Mar 13 11:25:17 2021 -0500
Make load SF/DF splitter happen after reload.
gcc/
2021-03-12 Michael Meissner <meissner@linux.ibm.com>
* config/rs6000/rs6000.md (SF/DF mode splitter): Do the split
after reload. Use vsx_register_operand instead of
gpc_reg_operand.
(xxspltidp<mode>): Use vsx_register_operand instead of
gpc_reg_operand.
Diff:
---
gcc/config/rs6000/rs6000.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index c6d2c87913d..3405f9fcda4 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -7531,7 +7531,7 @@
;; Load a SFmode/DFmode constant via the ISA 3.1 XXSPLTIDP instruction
(define_split
- [(set (match_operand:SFDF 0 "gpc_reg_operand")
+ [(set (match_operand:SFDF 0 "vsx_register_operand")
(match_operand:SFDF 1 "xxspltidp_operand"))]
"TARGET_POWER10"
[(set (match_dup 0)
@@ -7544,10 +7544,10 @@
})
(define_insn "*xxspltidp<mode>"
- [(set (match_operand:SFDF 0 "gpc_reg_operand" "=wa")
+ [(set (match_operand:SFDF 0 "vsx_register_operand" "=wa")
(unspec:SFDF [(match_operand 1 "const_int_operand" "n")]
UNSPEC_XXSPLTIDP))]
- "TARGET_POWER10"
+ "TARGET_POWER10 && reload_completed"
"xxspltidp %x0,%1"
[(set_attr "type" "vecsimple")
(set_attr "prefixed" "yes")
More information about the Gcc-cvs
mailing list