(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
vax/
peephole2-eq-ffsqi.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-fdump-rtl-peephole2 -dp" } */
       3  /* { dg-skip-if "code quality test" { *-*-* } { "-O0" "-O1" } { "" } } */
       4  
       5  typedef int __attribute__ ((mode (QI))) int_t;
       6  
       7  void
       8  eq_ffsqi (int_t *w, int_t *x)
       9  {
      10    *w = __builtin_ffs (*x);
      11  }
      12  
      13  /* Expect assembly like:
      14  
      15  	ffs $0,$8,*8(%ap),%r1		# 40	[c=28]  *ctzqi2_ccz
      16  	jneq .L2			# 30	[c=26]  *branch_ccz
      17  	mnegl $1,%r1			# 26	[c=8]  *negsi2
      18  .L2:
      19  	addb3 %r1,$1,*4(%ap)		# 25	[c=32]  *addqi3
      20  
      21   */
      22  
      23  /* { dg-final { scan-rtl-dump-times "Splitting with gen_peephole2" 1 "peephole2" } } */
      24  /* { dg-final { scan-assembler-not "\t(bit|cmpz?|tst). " } } */
      25  /* { dg-final { scan-assembler "ctzqi\[^ \]*_ccz(/\[0-9\]+)?\n" } } */
      26  /* { dg-final { scan-assembler "branch_ccz\n" } } */