/* { dg-do compile } */ /* { dg-options "-O1 -fdump-tree-sccp-details" } */ /* { dg-final { scan-tree-dump-times {final value replacement} 8 "sccp" } } */ unsigned int __attribute__((noipa)) foo (unsigned int tmp, unsigned int bit2) { for (int bit = 0; bit < 64; bit++) tmp &= bit2; return tmp; } unsigned int __attribute__((noipa)) foo1 (unsigned int tmp, unsigned int bit2) { for (int bit = 63; bit >= 0; bit -=3) tmp &= bit2; return tmp; } unsigned int __attribute__((noipa)) foo2 (unsigned int tmp, unsigned int bit2) { for (int bit = 0; bit < 64; bit++) tmp |= bit2; return tmp; } unsigned int __attribute__((noipa)) foo3 (unsigned int tmp, unsigned int bit2) { for (int bit = 63; bit >= 0; bit -=3) tmp |= bit2; return tmp; } unsigned int __attribute__((noipa)) foo4 (unsigned int tmp, unsigned int bit2) { for (int bit = 0; bit < 64; bit++) tmp ^= bit2; return tmp; } unsigned int __attribute__((noipa)) foo5 (unsigned int tmp, unsigned int bit2) { for (int bit = 0; bit < 63; bit++) tmp ^= bit2; return tmp; } unsigned int __attribute__((noipa)) f (unsigned int tmp, int bit, unsigned int bit2) { unsigned int res = tmp; for (int i = 0; i < bit; i++) res &= bit2; return res; } unsigned int __attribute__((noipa)) f1 (unsigned int tmp, int bit, unsigned int bit2) { unsigned int res = tmp; for (int i = 0; i < bit; i++) res |= bit2; return res; } unsigned int __attribute__((noipa)) f2 (unsigned int tmp, int bit, unsigned int bit2) { unsigned int res = tmp; for (int i = 0; i < bit; i++) res ^= bit2; return res; }