Commit b31e65bb by Alan Lawrence Committed by Alan Lawrence

Detect EXT patterns to vec_perm_const, use for EXT intrinsics.

(part 2, fix ICE at -O0)

	* config/aarch64/aarch64.c (aarch64_evpc_ext): allow and handle
	location == 0.

From-SVN: r211177
parent 923fcec3
2014-06-03 Alan Lawrence <alan.lawrence@arm.com> 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
* config/aarch64/aarch64.c (aarch64_evpc_ext): allow and handle
location == 0.
2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
* config/aarch64/aarch64-simd.md (aarch64_rev<REVERSE:rev-op><mode>): * config/aarch64/aarch64-simd.md (aarch64_rev<REVERSE:rev-op><mode>):
New pattern. New pattern.
* config/aarch64/aarch64.c (aarch64_evpc_rev): New function. * config/aarch64/aarch64.c (aarch64_evpc_rev): New function.
......
...@@ -9018,9 +9018,6 @@ aarch64_evpc_ext (struct expand_vec_perm_d *d) ...@@ -9018,9 +9018,6 @@ aarch64_evpc_ext (struct expand_vec_perm_d *d)
return false; return false;
} }
/* The mid-end handles masks that just return one of the input vectors. */
gcc_assert (location != 0);
switch (d->vmode) switch (d->vmode)
{ {
case V16QImode: gen = gen_aarch64_extv16qi; break; case V16QImode: gen = gen_aarch64_extv16qi; break;
...@@ -9041,7 +9038,10 @@ aarch64_evpc_ext (struct expand_vec_perm_d *d) ...@@ -9041,7 +9038,10 @@ aarch64_evpc_ext (struct expand_vec_perm_d *d)
if (d->testing_p) if (d->testing_p)
return true; return true;
if (BYTES_BIG_ENDIAN) /* The case where (location == 0) is a no-op for both big- and little-endian,
and is removed by the mid-end at optimization levels -O1 and higher. */
if (BYTES_BIG_ENDIAN && (location != 0))
{ {
/* After setup, we want the high elements of the first vector (stored /* After setup, we want the high elements of the first vector (stored
at the LSB end of the register), and the low elements of the second at the LSB end of the register), and the low elements of the second
......
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