From: Bill Schmidt Date: Thu, 25 Jul 2013 01:24:14 +0000 (+0000) Subject: altivec.md (altivec_vpkpx): Handle little endian. X-Git-Tag: releases/gcc-4.9.0~4842 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a4ad093b026e5224b4bacedcee34b434e7af7ffc;p=thirdparty%2Fgcc.git altivec.md (altivec_vpkpx): Handle little endian. 2013-07-24 Bill Schmidt Anton Blanchard * config/rs6000/altivec.md (altivec_vpkpx): Handle little endian. (altivec_vpksss): Likewise. (altivec_vpksus): Likewise. (altivec_vpkuus): Likewise. (altivec_vpkuum): Likewise. Co-Authored-By: Anton Blanchard From-SVN: r201235 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 36bfbe976db8..0aed48dc1fb4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2013-07-24 Bill Schmidt + Anton Blanchard + + * config/rs6000/altivec.md (altivec_vpkpx): Handle little endian. + (altivec_vpksss): Likewise. + (altivec_vpksus): Likewise. + (altivec_vpkuus): Likewise. + (altivec_vpkuum): Likewise. + 2013-07-24 David Malcolm Introduce context class. diff --git a/gcc/config/rs6000/altivec.md b/gcc/config/rs6000/altivec.md index db2e93a168a5..47a3a6894e15 100644 --- a/gcc/config/rs6000/altivec.md +++ b/gcc/config/rs6000/altivec.md @@ -1047,7 +1047,13 @@ (match_operand:V4SI 2 "register_operand" "v")] UNSPEC_VPKPX))] "TARGET_ALTIVEC" - "vpkpx %0,%1,%2" + "* + { + if (BYTES_BIG_ENDIAN) + return \"vpkpx %0,%1,%2\"; + else + return \"vpkpx %0,%2,%1\"; + }" [(set_attr "type" "vecperm")]) (define_insn "altivec_vpksss" @@ -1056,7 +1062,13 @@ (match_operand:VP 2 "register_operand" "v")] UNSPEC_VPACK_SIGN_SIGN_SAT))] "" - "vpksss %0,%1,%2" + "* + { + if (BYTES_BIG_ENDIAN) + return \"vpksss %0,%1,%2\"; + else + return \"vpksss %0,%2,%1\"; + }" [(set_attr "type" "vecperm")]) (define_insn "altivec_vpksus" @@ -1065,7 +1077,13 @@ (match_operand:VP 2 "register_operand" "v")] UNSPEC_VPACK_SIGN_UNS_SAT))] "" - "vpksus %0,%1,%2" + "* + { + if (BYTES_BIG_ENDIAN) + return \"vpksus %0,%1,%2\"; + else + return \"vpksus %0,%2,%1\"; + }" [(set_attr "type" "vecperm")]) (define_insn "altivec_vpkuus" @@ -1074,7 +1092,13 @@ (match_operand:VP 2 "register_operand" "v")] UNSPEC_VPACK_UNS_UNS_SAT))] "" - "vpkuus %0,%1,%2" + "* + { + if (BYTES_BIG_ENDIAN) + return \"vpkuus %0,%1,%2\"; + else + return \"vpkuus %0,%2,%1\"; + }" [(set_attr "type" "vecperm")]) (define_insn "altivec_vpkuum" @@ -1083,7 +1107,13 @@ (match_operand:VP 2 "register_operand" "v")] UNSPEC_VPACK_UNS_UNS_MOD))] "" - "vpkuum %0,%1,%2" + "* + { + if (BYTES_BIG_ENDIAN) + return \"vpkuum %0,%1,%2\"; + else + return \"vpkuum %0,%2,%1\"; + }" [(set_attr "type" "vecperm")]) (define_insn "*altivec_vrl"