match.pd: Fix sve/vcond_3.c
The sve/vcond_3.c tests had started to fail after PR97690/99305,
because we were generating:
a = VEC_COND_EXPR <cond, { 0, ... }, { 1, ... }>;
b = a << 15;
instead of:
a = VEC_COND_EXPR <cond, { 0, ... }, { 1<<15, ... }>;
We already have a match.pd rule to handle this kind of thing,
but it didn't handle shifts.
gcc/
* match.pd: Extend vec_cond folds to handle shifts.
This commit is contained in:
parent
9f74f9cf47
commit
5240c5ca2e
@ -3646,7 +3646,7 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
|
||||
|
||||
/* Sink binary operation to branches, but only if we can fold it. */
|
||||
(for op (tcc_comparison plus minus mult bit_and bit_ior bit_xor
|
||||
rdiv trunc_div ceil_div floor_div round_div
|
||||
lshift rshift rdiv trunc_div ceil_div floor_div round_div
|
||||
trunc_mod ceil_mod floor_mod round_mod min max)
|
||||
/* (c ? a : b) op (c ? d : e) --> c ? (a op d) : (b op e) */
|
||||
(simplify
|
||||
|
||||
Loading…
Reference in New Issue
Block a user