From 7b88f66de61f4533bbd7ae0124c4260c2959f1e0 Mon Sep 17 00:00:00 2001 From: Kelvin Nilsen Date: Wed, 6 Nov 2019 23:10:51 +0000 Subject: [PATCH] vsx.md (xxswapd_): Add support for V2DF and V2DI modes. gcc/ChangeLog: 2019-11-06 Kelvin Nilsen * config/rs6000/vsx.md (xxswapd_): Add support for V2DF and V2DI modes. From-SVN: r277893 --- gcc/ChangeLog | 5 +++++ gcc/config/rs6000/vsx.md | 11 +++++++++++ 2 files changed, 16 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f451b1f91b7..c3dc5b333df 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2019-11-06 Kelvin Nilsen + + * config/rs6000/vsx.md (xxswapd_): Add support for V2DF and + V2DI modes. + 2019-11-06 Jan Hubicka * 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 fc61ae1e7b3..aa13b20f574 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_" + [(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_" -- 2.30.2