1 /* { dg-do compile { target { ! logical_op_short_circuit  } } } */
2 /* { dg-options "-O2 -fdump-tree-dom2-details -w" } */
3 unsigned char
validate_subreg(unsigned int offset,unsigned int isize,unsigned int osize,int zz,int qq)4 validate_subreg (unsigned int offset, unsigned int isize, unsigned int osize, int zz, int qq)
5 {
6 if (osize >= (((zz & (1L << 2)) != 0) ? 8 : 4) && isize >= osize)
7     ;
8   else if (qq == 99)
9  return 0;
10   if (osize > isize)
11     return offset == 0;
12   return 1;
13 }
14 /* When we test isize >= osize in the first IF conditional and it is
15    false and qq != 99, then we can thread the osize > isize test of
16    the second conditional.  */
17 /* { dg-final { scan-tree-dump-times "Threaded" 1 "dom2"} } */
18