Avoid generating RTL code when d->testing_p.

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.
This commit is contained in:
liuhongt 2023-11-06 10:58:15 +08:00
parent 3d654f96d4
commit f463ef79dd
2 changed files with 23 additions and 0 deletions

View 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)

View file

@ -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);
}