/* PR tree-optimization/86401 */ /* { dg-do compile } */ /* { dg-options "-O2 -fno-ipa-icf -fdump-tree-optimized" } */ /* { dg-final { scan-tree-dump-times "r\[<>]\[<>]" 2 "optimized" } } */ unsigned int f1 (unsigned int x, unsigned int s) { unsigned int t = s % (__CHAR_BIT__ * __SIZEOF_INT__); return (x << t) | (x >> (((__CHAR_BIT__ * __SIZEOF_INT__) - t) % (__CHAR_BIT__ * __SIZEOF_INT__))); } unsigned int f2 (unsigned int x, unsigned int s) { int n = __CHAR_BIT__ * __SIZEOF_INT__; unsigned int t = s % n; return (x << t) | (x >> ((n - t) % n)); }