/* PR tree-optimization/67953 */ /* { dg-do run } */ unsigned int fn1 (signed int a) { return (unsigned int) a - ((a / 3) * 3); } unsigned int fn2 (signed int a) { return a - ((a / 3) * 3); } unsigned int fn3 (int a) { return a - (unsigned) ((a / 3) * 3); } signed int fn4 (int a) { return (unsigned) a - (unsigned) ((a / 3) * 3); } int main () { if (fn1 (-5) != -2 || fn2 (-5) != -2 || fn3 (-5) != -2 || fn4 (-5) != -2) __builtin_abort (); }