mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-13 00:21:18 +08:00
rs6000: New darn testcase (PR91481)
We used to implement darn with unspecs, not unspec_volatiles, which means two darn instructions could be CSEd together. This testcase tests it by adding together four random numbers. If all is well that means we get four darn instructions, because such a small loop is unrolled fine at -O2 already. If things go bad, combine will combine it all to one darn and a shift left by two. gcc/testsuite/ PR target/91481 * gcc.target/powerpc/darn-3.c: New testcase. From-SVN: r274889
This commit is contained in:
parent
5857042a2b
commit
457dac4020
@ -1,3 +1,8 @@
|
||||
2019-08-23 Segher Boessenkool <segher@kernel.crashing.org>
|
||||
|
||||
PR target/91481
|
||||
* gcc.target/powerpc/darn-3.c: New testcase.
|
||||
|
||||
2019-08-23 Marek Polacek <polacek@redhat.com>
|
||||
|
||||
PR c++/79817 - attribute deprecated on namespace.
|
||||
|
16
gcc/testsuite/gcc.target/powerpc/darn-3.c
Normal file
16
gcc/testsuite/gcc.target/powerpc/darn-3.c
Normal file
@ -0,0 +1,16 @@
|
||||
/* { dg-do compile { target { powerpc*-*-* } } } */
|
||||
/* { dg-skip-if "" { powerpc*-*-aix* } } */
|
||||
/* { dg-options "-O2 -mdejagnu-cpu=power9" } */
|
||||
|
||||
static int darn32(void) { return __builtin_darn_32(); }
|
||||
|
||||
int four(void)
|
||||
{
|
||||
int sum = 0;
|
||||
int i;
|
||||
for (i = 0; i < 4; i++)
|
||||
sum += darn32();
|
||||
return sum;
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler-times {(?n)\mdarn .*,0\M} 4 } } */
|
Loading…
x
Reference in New Issue
Block a user