middle-end/96466 - fix VEC_COND isel/expansion issue
authorRichard Biener <rguenther@suse.de>
Wed, 23 Sep 2020 12:20:44 +0000 (14:20 +0200)
committerRichard Biener <rguenther@suse.de>
Wed, 23 Sep 2020 13:11:03 +0000 (15:11 +0200)
commitbc909324bda71543add2229adfa59d8daff5f0db
tree3d7b7ac497f1b5f0a4a77c5f863f969f4164914b
parent4452a7660b224ff310d246bc7f8c612669c8cd98
middle-end/96466 - fix VEC_COND isel/expansion issue

We need to avoid forcing BLKmode for truth vectors, instead do as
other code and use VOIDmode so layout_type can pick a suitable and
consistent mode.  RTL expansion of vect_cond_mask also needs to deal
with CONST_INT operands which means passing the mode explicitely.

2020-09-23  Richard Biener  <rguenther@suse.de>

PR middle-end/96466
* internal-fn.c (expand_vect_cond_mask_optab_fn): Use
appropriate mode for force_reg.
* tree.c (build_truth_vector_type_for): Pass VOIDmode to
make_vector_type.

* gcc.dg/pr96466.c: New testcase.
gcc/internal-fn.c
gcc/testsuite/gcc.dg/pr96466.c [new file with mode: 0644]
gcc/tree.c