vsx.md (vsx_concat_<mode>): Adjust output for LE.

2013-10-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/vsx.md (vsx_concat_<mode>): Adjust output for LE.
	(vsx_concat_v2sf): Likewise.

From-SVN: r203713
This commit is contained in:
Bill Schmidt 2013-10-16 17:48:03 +00:00 committed by William Schmidt
parent 21216998ab
commit de75c8761e
2 changed files with 17 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2013-10-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* config/rs6000/vsx.md (vsx_concat_<mode>): Adjust output for LE.
(vsx_concat_v2sf): Likewise.
2013-10-16 James Greenhalgh <james.greenhalgh@arm.com>
* config/aarch64/aarch64.md

View File

@ -1194,7 +1194,12 @@
(match_operand:<VS_scalar> 1 "vsx_register_operand" "ws,wa")
(match_operand:<VS_scalar> 2 "vsx_register_operand" "ws,wa")))]
"VECTOR_MEM_VSX_P (<MODE>mode)"
"xxpermdi %x0,%x1,%x2,0"
{
if (BYTES_BIG_ENDIAN)
return "xxpermdi %x0,%x1,%x2,0";
else
return "xxpermdi %x0,%x2,%x1,0";
}
[(set_attr "type" "vecperm")])
;; Special purpose concat using xxpermdi to glue two single precision values
@ -1207,7 +1212,12 @@
(match_operand:SF 2 "vsx_register_operand" "f,f")]
UNSPEC_VSX_CONCAT))]
"VECTOR_MEM_VSX_P (V2DFmode)"
"xxpermdi %x0,%x1,%x2,0"
{
if (BYTES_BIG_ENDIAN)
return "xxpermdi %x0,%x1,%x2,0";
else
return "xxpermdi %x0,%x2,%x1,0";
}
[(set_attr "type" "vecperm")])
;; xxpermdi for little endian loads and stores. We need several of