/* { dg-do compile } */ /* { dg-options "-O -fdump-tree-lim" } */ /* This is a variant that does cause fold to place a cast to int before testing bit 1. */ void quantum_toffoli (int control1, int control2, int target, unsigned long *state, int size) { int i; for(i=0; i<size; i++) { if (state[i] & ((unsigned long) 1 << control1)) if (state[i] & ((unsigned long) 1 << control2)) state[i] ^= ((unsigned long) 1 << target); } } /* { dg-final { scan-tree-dump-times "1 <<" 3 "lim1" } } */ /* { dg-final { cleanup-tree-dump "lim\[1-2\]" } } */