https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114999
--- Comment #7 from Andrew Pinski <pinskia at gcc dot gnu.org> --- ``` inline int func0(int y){ return -~y; } int func2(int y){ return (~y)/(-(~y)); } int func2a(int y){ return (~y)/func0(y); } int func1(int y){ return (~y)/(y+1); } ``` What is interesting clang is able to handle func2 but not the rest while GCC currently does not handle any of them (folds -~y early to `y + 1` before `y/-y` to -y).