Commit a4ad093b by Bill Schmidt Committed by William Schmidt

altivec.md (altivec_vpkpx): Handle little endian.

2013-07-24  Bill Schmidt  <wschmidt@linux.ibm.com>
	    Anton Blanchard <anton@au1.ibm.com>

	* config/rs6000/altivec.md (altivec_vpkpx): Handle little endian.
	(altivec_vpks<VI_char>ss): Likewise.
	(altivec_vpks<VI_char>us): Likewise.
	(altivec_vpku<VI_char>us): Likewise.
	(altivec_vpku<VI_char>um): Likewise.


Co-Authored-By: Anton Blanchard <anton@au1.ibm.com>

From-SVN: r201235
parent 484b502a
2013-07-24 Bill Schmidt <wschmidt@linux.ibm.com>
Anton Blanchard <anton@au1.ibm.com>
* config/rs6000/altivec.md (altivec_vpkpx): Handle little endian.
(altivec_vpks<VI_char>ss): Likewise.
(altivec_vpks<VI_char>us): Likewise.
(altivec_vpku<VI_char>us): Likewise.
(altivec_vpku<VI_char>um): Likewise.
2013-07-24 David Malcolm <dmalcolm@redhat.com> 2013-07-24 David Malcolm <dmalcolm@redhat.com>
Introduce context class. Introduce context class.
......
...@@ -1047,7 +1047,13 @@ ...@@ -1047,7 +1047,13 @@
(match_operand:V4SI 2 "register_operand" "v")] (match_operand:V4SI 2 "register_operand" "v")]
UNSPEC_VPKPX))] UNSPEC_VPKPX))]
"TARGET_ALTIVEC" "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")]) [(set_attr "type" "vecperm")])
(define_insn "altivec_vpks<VI_char>ss" (define_insn "altivec_vpks<VI_char>ss"
...@@ -1056,7 +1062,13 @@ ...@@ -1056,7 +1062,13 @@
(match_operand:VP 2 "register_operand" "v")] (match_operand:VP 2 "register_operand" "v")]
UNSPEC_VPACK_SIGN_SIGN_SAT))] UNSPEC_VPACK_SIGN_SIGN_SAT))]
"<VI_unit>" "<VI_unit>"
"vpks<VI_char>ss %0,%1,%2" "*
{
if (BYTES_BIG_ENDIAN)
return \"vpks<VI_char>ss %0,%1,%2\";
else
return \"vpks<VI_char>ss %0,%2,%1\";
}"
[(set_attr "type" "vecperm")]) [(set_attr "type" "vecperm")])
(define_insn "altivec_vpks<VI_char>us" (define_insn "altivec_vpks<VI_char>us"
...@@ -1065,7 +1077,13 @@ ...@@ -1065,7 +1077,13 @@
(match_operand:VP 2 "register_operand" "v")] (match_operand:VP 2 "register_operand" "v")]
UNSPEC_VPACK_SIGN_UNS_SAT))] UNSPEC_VPACK_SIGN_UNS_SAT))]
"<VI_unit>" "<VI_unit>"
"vpks<VI_char>us %0,%1,%2" "*
{
if (BYTES_BIG_ENDIAN)
return \"vpks<VI_char>us %0,%1,%2\";
else
return \"vpks<VI_char>us %0,%2,%1\";
}"
[(set_attr "type" "vecperm")]) [(set_attr "type" "vecperm")])
(define_insn "altivec_vpku<VI_char>us" (define_insn "altivec_vpku<VI_char>us"
...@@ -1074,7 +1092,13 @@ ...@@ -1074,7 +1092,13 @@
(match_operand:VP 2 "register_operand" "v")] (match_operand:VP 2 "register_operand" "v")]
UNSPEC_VPACK_UNS_UNS_SAT))] UNSPEC_VPACK_UNS_UNS_SAT))]
"<VI_unit>" "<VI_unit>"
"vpku<VI_char>us %0,%1,%2" "*
{
if (BYTES_BIG_ENDIAN)
return \"vpku<VI_char>us %0,%1,%2\";
else
return \"vpku<VI_char>us %0,%2,%1\";
}"
[(set_attr "type" "vecperm")]) [(set_attr "type" "vecperm")])
(define_insn "altivec_vpku<VI_char>um" (define_insn "altivec_vpku<VI_char>um"
...@@ -1083,7 +1107,13 @@ ...@@ -1083,7 +1107,13 @@
(match_operand:VP 2 "register_operand" "v")] (match_operand:VP 2 "register_operand" "v")]
UNSPEC_VPACK_UNS_UNS_MOD))] UNSPEC_VPACK_UNS_UNS_MOD))]
"<VI_unit>" "<VI_unit>"
"vpku<VI_char>um %0,%1,%2" "*
{
if (BYTES_BIG_ENDIAN)
return \"vpku<VI_char>um %0,%1,%2\";
else
return \"vpku<VI_char>um %0,%2,%1\";
}"
[(set_attr "type" "vecperm")]) [(set_attr "type" "vecperm")])
(define_insn "*altivec_vrl<VI_char>" (define_insn "*altivec_vrl<VI_char>"
......
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