summaryrefslogtreecommitdiff
path: root/gcc/config/rs6000/altivec.md
diff options
context:
space:
mode:
authorwschmidt <wschmidt@138bc75d-0d04-0410-961f-82ee72b054a4>2014-02-17 02:01:42 +0000
committerwschmidt <wschmidt@138bc75d-0d04-0410-961f-82ee72b054a4>2014-02-17 02:01:42 +0000
commit7ac79e029e0e8760c2b37771c752a76e1242248d (patch)
tree447388c632b8d114717199a4cc16e57fe79cc3db /gcc/config/rs6000/altivec.md
parent6305ff1b4e5e74b611bf7ded0cdf863fe74f3e40 (diff)
downloadgcc-7ac79e029e0e8760c2b37771c752a76e1242248d.tar.gz
2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets. (p8_vmrgow): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207815 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/rs6000/altivec.md')
-rw-r--r--gcc/config/rs6000/altivec.md14
1 files changed, 12 insertions, 2 deletions
diff --git a/gcc/config/rs6000/altivec.md b/gcc/config/rs6000/altivec.md
index af6766ba467..afe621c5e54 100644
--- a/gcc/config/rs6000/altivec.md
+++ b/gcc/config/rs6000/altivec.md
@@ -1234,7 +1234,12 @@
(parallel [(const_int 0) (const_int 4)
(const_int 2) (const_int 6)])))]
"TARGET_P8_VECTOR"
- "vmrgew %0,%1,%2"
+{
+ if (BYTES_BIG_ENDIAN)
+ return "vmrgew %0,%1,%2";
+ else
+ return "vmrgow %0,%2,%1";
+}
[(set_attr "type" "vecperm")])
(define_insn "p8_vmrgow"
@@ -1246,7 +1251,12 @@
(parallel [(const_int 1) (const_int 5)
(const_int 3) (const_int 7)])))]
"TARGET_P8_VECTOR"
- "vmrgow %0,%1,%2"
+{
+ if (BYTES_BIG_ENDIAN)
+ return "vmrgow %0,%1,%2";
+ else
+ return "vmrgew %0,%2,%1";
+}
[(set_attr "type" "vecperm")])
(define_expand "vec_widen_umult_even_v16qi"