diff options
author | Kelvin Nilsen <kelvin@gcc.gnu.org> | 2019-11-06 23:10:51 +0000 |
---|---|---|
committer | Kelvin Nilsen <kelvin@gcc.gnu.org> | 2019-11-06 23:10:51 +0000 |
commit | 7b88f66de61f4533bbd7ae0124c4260c2959f1e0 (patch) | |
tree | beab47295c9aedfab7a1de6d9ade869a00861a4b | |
parent | e69ed8dc39abea60755b147541b31ad06ee229a9 (diff) | |
download | gcc-7b88f66de61f4533bbd7ae0124c4260c2959f1e0.zip gcc-7b88f66de61f4533bbd7ae0124c4260c2959f1e0.tar.gz gcc-7b88f66de61f4533bbd7ae0124c4260c2959f1e0.tar.bz2 |
vsx.md (xxswapd_<mode>): Add support for V2DF and V2DI modes.
gcc/ChangeLog:
2019-11-06 Kelvin Nilsen <kelvin@gcc.gnu.org>
* config/rs6000/vsx.md (xxswapd_<mode>): Add support for V2DF and
V2DI modes.
From-SVN: r277893
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/rs6000/vsx.md | 11 |
2 files changed, 16 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f451b1f..c3dc5b3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2019-11-06 Kelvin Nilsen <kelvin@gcc.gnu.org> + + * config/rs6000/vsx.md (xxswapd_<mode>): Add support for V2DF and + V2DI modes. + 2019-11-06 Jan Hubicka <jh@suse.cz> * ggc-common.c (ggc_prune_overhead_list): Do not delete surviving diff --git a/gcc/config/rs6000/vsx.md b/gcc/config/rs6000/vsx.md index fc61ae1..aa13b20 100644 --- a/gcc/config/rs6000/vsx.md +++ b/gcc/config/rs6000/vsx.md @@ -2987,6 +2987,17 @@ "xxpermdi %x0,%x1,%x1,2" [(set_attr "type" "vecperm")]) +(define_insn "xxswapd_<mode>" + [(set (match_operand:VSX_D 0 "vsx_register_operand" "=wa") + (vec_select:VSX_D + (match_operand:VSX_D 1 "vsx_register_operand" "wa") + (parallel [(const_int 1) (const_int 0)])))] + "TARGET_VSX" +;; AIX does not support extended mnemonic xxswapd. Use the basic +;; mnemonic xxpermdi instead. + "xxpermdi %x0,%x1,%x1,2" + [(set_attr "type" "vecperm")]) + ;; lxvd2x for little endian loads. We need several of ;; these since the form of the PARALLEL differs by mode. (define_insn "*vsx_lxvd2x2_le_<mode>" |