This patch adds a pattern for folding x < (short) ((unsigned short)x + const) to x <= SHORT_MAX - const (and similarly for other integral types) if const is not 0. as described in PR97223.
For example, without this patch the x86_64-pc-linux code generated for this function bool f(char x) { return x < (char)(x + 12); } is lea eax,[rdi+0xc] cmp al,dil setg al ret With the patch the code is cmp dil,0x73 setle al ret Tested on x86_64-pc-linux. Eugene
0001-Add-a-tree-optimization-described-in-PR97223.patch
Description: 0001-Add-a-tree-optimization-described-in-PR97223.patch