Skip to content
Snippets Groups Projects
Unverified Commit ff505948 authored by Kyrylo Tkachov's avatar Kyrylo Tkachov
Browse files

PR rtl-optimization/119046: aarch64: Fix PARALLEL mode for vec_perm DUP expansion


The PARALLEL created in aarch64_evpc_dup is used to hold the lane number.
It is not appropriate for it to have a vector mode.
Other such uses use VOIDmode.
Do this here as well.
This avoids the risk of generic code treating the PARALLEL as trapping when it
has floating-point mode.

Bootstrapped and tested on aarch64-none-linux-gnu.

Signed-off-by: default avatarKyrylo Tkachov <ktkachov@nvidia.com>

	PR rtl-optimization/119046
	* config/aarch64/aarch64.cc (aarch64_evpc_dup): Use VOIDmode for
	PARALLEL.
parent db764821
No related branches found
No related tags found
No related merge requests found
...@@ -26301,7 +26301,7 @@ aarch64_evpc_dup (struct expand_vec_perm_d *d) ...@@ -26301,7 +26301,7 @@ aarch64_evpc_dup (struct expand_vec_perm_d *d)
in0 = d->op0; in0 = d->op0;
lane = GEN_INT (elt); /* The pattern corrects for big-endian. */ lane = GEN_INT (elt); /* The pattern corrects for big-endian. */
   
rtx parallel = gen_rtx_PARALLEL (vmode, gen_rtvec (1, lane)); rtx parallel = gen_rtx_PARALLEL (VOIDmode, gen_rtvec (1, lane));
rtx select = gen_rtx_VEC_SELECT (GET_MODE_INNER (vmode), in0, parallel); rtx select = gen_rtx_VEC_SELECT (GET_MODE_INNER (vmode), in0, parallel);
emit_set_insn (out, gen_rtx_VEC_DUPLICATE (vmode, select)); emit_set_insn (out, gen_rtx_VEC_DUPLICATE (vmode, select));
return true; return true;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment