[gcc(refs/users/meissner/heads/work082)] Improve vsx_splat_<mode>_reg

Michael Meissner meissner@gcc.gnu.org
Wed Mar 23 21:52:33 GMT 2022


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

commit b359b8e26d9baeb0376b8b77eac02e5fbea5a04b
Author: Michael Meissner <meissner@linux.ibm.com>
Date:   Wed Mar 23 17:52:12 2022 -0400

    Improve vsx_splat_<mode>_reg
    
    In looking at PR target/99293, I noticed that the code in
    vsx_splat_<mode>_reg used "vecmove" as the "type" insn attribute when the
    "mtvsrdd" is generated.  It should use "mfvsr".  I also added a "p9v" isa
    attribute for that alternative.
    
    2022-03-23   Michael Meissner  <meissner@linux.ibm.com>
    
    gcc/
            PR target/99392
            * config/rs6000/rs6000.md (vsx_splat_<mode>_reg): Use the correct
            insn type attribute.  Add "p9v" isa attribute as needed.

Diff:
---
 gcc/config/rs6000/vsx.md | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/gcc/config/rs6000/vsx.md b/gcc/config/rs6000/vsx.md
index a1c95c61b2e..75b85409cd8 100644
--- a/gcc/config/rs6000/vsx.md
+++ b/gcc/config/rs6000/vsx.md
@@ -4580,7 +4580,8 @@
   "@
    xxpermdi %x0,%x1,%x1,0
    mtvsrdd %x0,%1,%1"
-  [(set_attr "type" "vecperm,vecmove")])
+  [(set_attr "type" "vecperm,mtvsr")
+   (set_attr "isa" "*,p9v")])
 
 (define_insn "vsx_splat_<mode>_mem"
   [(set (match_operand:VSX_D 0 "vsx_register_operand" "=wa")


More information about the Gcc-cvs mailing list