Move strcmpopt_6.c from gcc.dg to gcc.target/aarch64 and gcc.target/i386.

From-SVN: r263983
This commit is contained in:
Qing Zhao 2018-08-30 14:46:53 +00:00 committed by Qing Zhao
parent 22eea6b2f4
commit 21592ebe9d
3 changed files with 43 additions and 0 deletions

View File

@ -1,3 +1,10 @@
2018-08-30 Qing Zhao <qing.zhao@oracle.com>
PR 86519
gcc.dg/strcmpopt_6.c: Remove.
gcc.target/aarch64/strcmpopt_6.c: New testcase.
gcc.target/i386/strcmpopt_6.c: Likewise.
2018-08-30 Richard Biener <rguenther@suse.de>
PR tree-optimization/87147

View File

@ -0,0 +1,36 @@
/* When the specified length exceeds one of the arguments of the call to memcmp,
the call to memcmp should NOT be inlined. */
/* { dg-do compile } */
/* { dg-options "-O2 -Wno-stringop-overflow" } */
typedef struct { char s[8]; int x; } S;
__attribute__ ((noinline)) int
f1 (S * s)
{
int result = 0;
result += __builtin_memcmp (s->s, "a", 3);
return result;
}
__attribute__ ((noinline)) int
f2 (char *p)
{
int result = 0;
result += __builtin_memcmp (p, "a", 3);
return result;
}
int main (void)
{
S ss = {{'a','b','c'}, 2};
char *s = "abcd";
if (f1 (&ss) < 0 || f2 (s) < 0)
__builtin_abort ();
return 0;
}
/* { dg-final { scan-assembler-times "memcmp" 2 } } */