Move strcmpopt_6.c from gcc.dg to gcc.target/aarch64 and gcc.target/i386.
From-SVN: r263983
This commit is contained in:
parent
22eea6b2f4
commit
21592ebe9d
@ -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
|
||||
|
36
gcc/testsuite/gcc.target/i386/strcmpopt_6.c
Normal file
36
gcc/testsuite/gcc.target/i386/strcmpopt_6.c
Normal 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 } } */
|
Loading…
Reference in New Issue
Block a user