(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
vax/
peephole2-ltu-cmpvsi.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-fdump-rtl-peephole2 -dp" } */
       3  /* { dg-skip-if "code quality test" { *-*-* } { "-O0" "-O1" } { "" } } */
       4  
       5  typedef unsigned int __attribute__ ((mode (SI))) uint_t;
       6  typedef signed int __attribute__ ((mode (SI))) int_t;
       7  typedef struct
       8    {
       9      int_t h : 7;
      10      int_t i : 18;
      11      int_t l : 7;
      12    }
      13  bit_t;
      14  
      15  int_t
      16  ltu_cmpvsi (bit_t x, uint_t y)
      17  {
      18    uint_t v;
      19  
      20    v = x.i;
      21    if (v < y)
      22      return 1;
      23    else
      24      return 2;
      25  }
      26  
      27  /* Expect assembly like:
      28  
      29  	cmpv $7,$18,4(%ap),8(%ap)	# 50	[c=88]  *cmpv_cc
      30  	jgequ .L6			# 39	[c=26]  *branch_cc
      31  	movl $1,%r0			# 35	[c=4]  *movsi_2
      32  	ret				# 45	[c=0]  return
      33  .L6:
      34  
      35   */
      36  
      37  /* { dg-final { scan-rtl-dump-times "Splitting with gen_peephole2" 1 "peephole2" } } */
      38  /* { dg-final { scan-assembler-not "\t(bit|cmp|tst)\[bwl\] " } } */
      39  /* { dg-final { scan-assembler "cmpv\[^ \]*_cc(/\[0-9\]+)?\n" } } */
      40  /* { dg-final { scan-assembler "branch_cc\n" } } */