]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Avoid generating RTL code when d->testing_p.
authorliuhongt <hongtao.liu@intel.com>
Mon, 6 Nov 2023 02:58:15 +0000 (10:58 +0800)
committerliuhongt <hongtao.liu@intel.com>
Mon, 6 Nov 2023 10:35:55 +0000 (18:35 +0800)
gcc/ChangeLog:

PR target/112393
* config/i386/i386-expand.cc (ix86_expand_vec_perm_vpermt2):
Avoid generating RTL code when d->testing_p.

gcc/testsuite/ChangeLog:

* gcc.target/i386/pr112393.c: New test.

gcc/config/i386/i386-expand.cc
gcc/testsuite/gcc.target/i386/pr112393.c [new file with mode: 0644]

index 6ae5830037d280145ed562067d625c8b2d456101..8fad73c1549fa9d0b19839e7fe0538feb9ae612f 100644 (file)
@@ -5245,6 +5245,9 @@ ix86_expand_vec_perm_vpermt2 (rtx target, rtx mask, rtx op0, rtx op1,
   if (gen == NULL)
     return false;
 
+  if (d && d->testing_p)
+    return true;
+
   /* ix86_expand_vec_perm_vpermt2 is called from both const and non-const
      expander, so args are either in d, or in op0, op1 etc.  */
   if (d)
diff --git a/gcc/testsuite/gcc.target/i386/pr112393.c b/gcc/testsuite/gcc.target/i386/pr112393.c
new file mode 100644 (file)
index 0000000..c5c5b95
--- /dev/null
@@ -0,0 +1,20 @@
+/* { dg-do compile } */
+/* { dg-options "-mavx512f -Wuninitialized" } */
+typedef _Float16 __attribute__((__vector_size__ (32))) V;
+
+V v;
+
+void
+foo (void)
+{
+  (void) __builtin_shufflevector (v, __builtin_shufflevector (v, (V){},
+                                                              3, 0, 2, 2,
+                                                             5, 6, 3, 7, 5,
+                                                             6, 0, 8, 6, 4,
+                                                             3, 2, 8, 9, 5,
+                                                             8, 8, 7, 5, 4,
+                                                             8, 9, 1, 2, 4,
+                                                             9, 9, 7),
+                                  40, 33);
+}
+