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:
parent
3d654f96d4
commit
f463ef79dd
2 changed files with 23 additions and 0 deletions
|
@ -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)
|
||||
|
|
20
gcc/testsuite/gcc.target/i386/pr112393.c
Normal file
20
gcc/testsuite/gcc.target/i386/pr112393.c
Normal 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);
|
||||
}
|
||||
|
Loading…
Add table
Reference in a new issue