From a50cfd52a6419578d6010b1a6e4301a308b68017 Mon Sep 17 00:00:00 2001 From: Daniel Egger <degger@fhm.edu> Date: Tue, 26 Feb 2002 06:50:25 +0000 Subject: [PATCH] rs6000.md: Swap define_insn attributes to fix incorrect generation of merge high... 2002-02-26 Daniel Egger <degger@fhm.edu> * config/rs6000/rs6000.md: Swap define_insn attributes to fix incorrect generation of merge high instructions instead of merge low. From-SVN: r50047 --- gcc/ChangeLog | 6 ++++++ gcc/config/rs6000/rs6000.md | 43 +++++++++++++++++++------------------ 2 files changed, 28 insertions(+), 21 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2a705deb16cf..98b20742d729 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2002-02-26 Daniel Egger <degger@fhm.edu> + + * config/rs6000/rs6000.md: Swap define_insn attributes to + fix incorrect generation of merge high instructions instead + of merge low. + 2002-02-26 Aldy Hernandez <aldyh@redhat.com> * c-typeck.c (really_start_incremental_init): Use diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index fdefd2a2ecb9..1def589df2de 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -14551,22 +14551,23 @@ (define_insn "altivec_vmrglb" [(set (match_operand:V16QI 0 "register_operand" "=v") (vec_merge:V16QI (vec_select:V16QI (match_operand:V16QI 2 "register_operand" "v") - (parallel [(const_int 8) - (const_int 9) - (const_int 10) - (const_int 11) - (const_int 12) - (const_int 13) - (const_int 14) - (const_int 15) - (const_int 0) + + (parallel [(const_int 0) (const_int 1) (const_int 2) (const_int 3) (const_int 4) (const_int 5) - (const_int 6) - (const_int 7)])) + (const_int 6) + (const_int 7) + (const_int 8) + (const_int 9) + (const_int 10) + (const_int 11) + (const_int 12) + (const_int 13) + (const_int 14) + (const_int 15)])) (match_operand:V16QI 1 "register_operand" "v") (const_int 255)))] "TARGET_ALTIVEC" @@ -14576,14 +14577,14 @@ (define_insn "altivec_vmrglh" [(set (match_operand:V8HI 0 "register_operand" "=v") (vec_merge:V8HI (vec_select:V8HI (match_operand:V8HI 2 "register_operand" "v") - (parallel [(const_int 4) - (const_int 5) - (const_int 6) - (const_int 7) - (const_int 0) + (parallel [(const_int 0) (const_int 1) (const_int 2) - (const_int 3)])) + (const_int 3) + (const_int 4) + (const_int 5) + (const_int 6) + (const_int 7)])) (match_operand:V8HI 1 "register_operand" "v") (const_int 15)))] "TARGET_ALTIVEC" @@ -14593,10 +14594,10 @@ (define_insn "altivec_vmrglw" [(set (match_operand:V4SI 0 "register_operand" "=v") (vec_merge:V4SI (vec_select:V4SI (match_operand:V4SI 2 "register_operand" "v") - (parallel [(const_int 2) - (const_int 3) - (const_int 0) - (const_int 1)])) + (parallel [(const_int 0) + (const_int 1) + (const_int 2) + (const_int 3)])) (match_operand:V4SI 1 "register_operand" "v") (const_int 12)))] "TARGET_ALTIVEC"