diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 67e8333e3d6c9ba2af4ce7a2c9f39de537913e22..ec30909166ba58b471e9d2f60759eb23a1fc5b0c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2019-05-27 Richard Biener <rguenther@suse.de> + + PR middle-end/90610 + * match.pd (vec_perm): Avoid clobbering op0 when not generating + a bit-insert. + 2019-05-26 Uroš Bizjak <ubizjak@gmail.com> * config/i386/i386.md (@leave_<mode>): New expander. diff --git a/gcc/match.pd b/gcc/match.pd index f9bc097c49122bf1b4bcf0b12b09840daf7b8fbc..e1fa75cf5a08418079165b5bda50419dd5374278 100644 --- a/gcc/match.pd +++ b/gcc/match.pd @@ -5453,8 +5453,8 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) first vector we only can insert the first elt from the first vector. */ at = 0; - ins = fold_read_from_vector (cop0, 0); - op0 = op1; + if ((ins = fold_read_from_vector (cop0, 0))) + op0 = op1; } else {