https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103028
--- Comment #3 from Andreas Krebbel ---
So I think what is needed is something like this:
diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c
index 017944f4f79a..1f5b9476ac2e 100644
--- a/gcc/ifcvt.c
+++ b/gcc/ifcvt.c
@@ -4341,7 +4341,8 @@ find_if_header (b
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103028
--- Comment #2 from Andreas Krebbel ---
IF-convert generates the compare *after* reload. The operands get checked for
validity only by invoking the predicates. That means everything which is
accepted by TARGET_LEGITIMATE_CONSTANT_P is ok for a g
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103028
Richard Biener changed:
What|Removed |Added
Target Milestone|12.0|---
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103028
--- Comment #1 from Andrew Pinski ---
You should be able to hit this without -fharden-conditional-branches
Try something like:
unsigned char x;
int foo(void)
{
unsigned long long i = x;
i = i + 0x8000;
unsigned long long t = 0xff
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103028
Martin Liška changed:
What|Removed |Added
Ever confirmed|0 |1
Target Milestone|---