rs6000: Call library for block memory compare when optimizing for size

gcc/
	* config/rs6000/rs6000.md (cmpmemsi): Fail when optimizing for size.

gcc/testsuite/
	* gcc.target/powerpc/block-cmp-3.c: New.
This commit is contained in:
Haochen Gui
2023-12-27 10:30:56 +08:00
parent 78bd9e2560
commit daea7777ce
2 changed files with 11 additions and 0 deletions

View File

@@ -10146,6 +10146,9 @@
(use (match_operand:SI 4))])]
"TARGET_POPCNTD"
{
if (optimize_insn_for_size_p ())
FAIL;
if (expand_block_compare (operands))
DONE;
else

View File

@@ -0,0 +1,8 @@
/* { dg-do compile } */
/* { dg-options "-Os" } */
/* { dg-final { scan-assembler-times {\mb[l]? memcmp\M} 1 } } */
int foo (const char* s1, const char* s2)
{
return __builtin_memcmp (s1, s2, 4);
}