Hi!

This PR has been fixed by the PR112526 fix.

Tested on x86_64-linux and i686-linux, committed to trunk as obvious.

2023-11-22  Jakub Jelinek  <ja...@redhat.com>

        PR target/65368
        * gcc.target/i386/bmi2-pr112518.c: New test.

--- gcc/testsuite/gcc.target/i386/bmi2-pr112518.c.jj    2023-11-21 
19:55:21.948132480 +0100
+++ gcc/testsuite/gcc.target/i386/bmi2-pr112518.c       2023-11-21 
19:57:13.694570877 +0100
@@ -0,0 +1,25 @@
+/* PR target/65368 */
+/* { dg-do run { target { bmi2 && int128 } } } */
+/* { dg-options "-Os -mbmi2" } */
+
+#include "bmi2-check.h"
+
+unsigned u;
+int g;
+
+unsigned long long
+foo (int i)
+{
+  unsigned long long x = u;
+  g = __builtin_mul_overflow_p (u, ((unsigned __int128) 4292468825) << 64 | 
150, 0);
+  x |= g % i;
+  return x;
+}
+
+static __attribute__((noipa)) void
+bmi2_test ()
+{
+  unsigned long long x = foo (3);
+  if (x)
+    __builtin_abort ();
+}

        Jakub

Reply via email to