[Bug target/103028] ICE in extract_constrain_insn, at recog.c:2670

2021-11-04 Thread krebbel at gcc dot gnu.org via Gcc-bugs
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

[Bug target/103028] ICE in extract_constrain_insn, at recog.c:2670

2021-11-03 Thread krebbel at gcc dot gnu.org via Gcc-bugs
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

[Bug target/103028] ICE in extract_constrain_insn, at recog.c:2670

2021-11-02 Thread rguenth at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103028 Richard Biener changed: What|Removed |Added Target Milestone|12.0|---

[Bug target/103028] ICE in extract_constrain_insn, at recog.c:2670

2021-11-01 Thread pinskia at gcc dot gnu.org via Gcc-bugs
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

[Bug target/103028] ICE in extract_constrain_insn, at recog.c:2670

2021-11-01 Thread marxin at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103028 Martin Liška changed: What|Removed |Added Ever confirmed|0 |1 Target Milestone|---