[gcc r17-3489] x86: Adjust gcc.target/i386/pr92080-12.c

"H.J. Lu via Gcc-cvs" <[email protected]>
Newsgroups gmane.comp.gcc.cvs
Message-ID <[email protected]>
https://gcc.gnu.org/g:85fbc4f968d75cf0a372494f0f122b4b4a226243

commit r17-3489-g85fbc4f968d75cf0a372494f0f122b4b4a226243
Author: H.J. Lu <[email protected]>
Date:   Fri Aug 21 12:06:13 2026 +0800

    x86: Adjust gcc.target/i386/pr92080-12.c
    
    After
    
    commit 62993cc9d2200ef7a05f317cdef3262996c0ac10
    Author: Eikansh Gupta <[email protected]>
    Date:   Thu Jul 23 17:04:17 2026 +0530
    
        tree-optimization: Handle variable trip count XOR in final value replacement [PR112104]
    
    ;;;
    extern signed char a;
    signed char
    func (int i, int j)
    {
      signed char c = 0;
      while (i != 0)
        {
          a ^= j;
          ++c;
          ++i;
        }
      return c;
    }
    ;;;
    
    is optimized to:
    
            testl   %edi, %edi
            je      .L3
            movl    %edi, %eax
            andl    $1, %edi
            negl    %edi
            negl    %eax
            andl    %esi, %edi
            xorb    %dil, a(%rip)
            ret
    .L3:
            xorl    %eax, %eax
            ret
    
    add check-function-bodies to gcc.target/i386/pr92080-12.c to check for
    optimized codegen.
    
            PR testsuite/126971
            PR tree-optimization/112104
            * gcc.target/i386/pr92080-12.c: Remove scan-assembler-times and
            add check-function-bodies to check for optimized codegen.
    
    Signed-off-by: H.J. Lu <[email protected]>

Diff:
---
 gcc/testsuite/gcc.target/i386/pr92080-12.c | 25 ++++++++++++++++++++++++-
 1 file changed, 24 insertions(+), 1 deletion(-)

diff --git a/gcc/testsuite/gcc.target/i386/pr92080-12.c b/gcc/testsuite/gcc.target/i386/pr92080-12.c
index cb09eb2f0a88..61630953022d 100644
--- a/gcc/testsuite/gcc.target/i386/pr92080-12.c
+++ b/gcc/testsuite/gcc.target/i386/pr92080-12.c
@@ -1,6 +1,29 @@
+/* PR tree-optimization/112104  */
 /* { dg-do compile } */
 /* { dg-additional-options "-O3 -mno-mmx -march=icelake-server" } */
-/* { dg-final { scan-assembler-times "vpbroadcastb" 1 } } */
+/* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
+/* { dg-final { check-function-bodies "**" "" "" { target { *-*-linux* && { ! ia32 } } } {^\t?\.} } } */
+
+/*
+**f:
+**.LFB0:
+**	.cfi_startproc
+**	testl	%edi, %edi
+**	je	.L3
+**	movl	%edi, %eax
+**	andl	\$1, %edi
+**	negl	%edi
+**	negl	%eax
+**	andl	%esi, %edi
+**	xorb	%dil, a\(%rip\)
+**	ret
+**...
+**.L3:
+**	xorl	%eax, %eax
+**	ret
+**	.cfi_endproc
+**...
+*/
 
 signed char a;
 signed char f (int i, int j)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.