Commit 7b88f66d by Kelvin Nilsen

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
parent e69ed8dc
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> 2019-11-06 Jan Hubicka <jh@suse.cz>
* ggc-common.c (ggc_prune_overhead_list): Do not delete surviving * ggc-common.c (ggc_prune_overhead_list): Do not delete surviving
...@@ -2987,6 +2987,17 @@ ...@@ -2987,6 +2987,17 @@
"xxpermdi %x0,%x1,%x1,2" "xxpermdi %x0,%x1,%x1,2"
[(set_attr "type" "vecperm")]) [(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 ;; lxvd2x for little endian loads. We need several of
;; these since the form of the PARALLEL differs by mode. ;; these since the form of the PARALLEL differs by mode.
(define_insn "*vsx_lxvd2x2_le_<mode>" (define_insn "*vsx_lxvd2x2_le_<mode>"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment