On 5/23/2021 10:21 AM, Andrew Pinski via Gcc-patches wrote:
On Sun, May 23, 2021 at 6:14 AM Marc Glisse <marc.gli...@inria.fr> wrote:
On Sun, 23 May 2021, apinski--- via Gcc-patches wrote:

+(for cmp (ge lt)
+/* x < 0 ? ~y : y into (x >> (prec-1)) ^ y. */
+/* x >= 0 ? ~y : y into ~((x >> (prec-1)) ^ y). */
+ (simplify
+  (cond (cmp @0 integer_zerop) (bit_not @1) @1)
+   (if (INTEGRAL_TYPE_P (TREE_TYPE (@0))
+        && !TYPE_UNSIGNED (TREE_TYPE (@0))
+        && TYPE_PRECISION (TREE_TYPE (@0)) == TYPE_PRECISION (type))
Is there a risk that x is signed char (precision 8) and y is a vector with
8 elements?
Yes there should be a check for "INTEGRAL_TYPE_P (type)" there too.  I
had missed it when I was doing the conversion.  I will add it and
resubmit the patch.
Consider it approved with that fix.

Thanks,
Jeff

Reply via email to