[Bug target/78439] [7 Regression] error: insn does not satisfy its constraints (arm-linux-gnueabihf)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78439 wilco at gcc dot gnu.org changed: What|Removed |Added CC||wilco at gcc dot gnu.org --- Comment #13 from wilco at gcc dot gnu.org --- (In reply to ktkachov from comment #11) > Fixed. Shouldn't this also be backported to be sure it cannot trigger in older GCCs?
[Bug target/78439] [7 Regression] error: insn does not satisfy its constraints (arm-linux-gnueabihf)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78439 ktkachov at gcc dot gnu.org changed: What|Removed |Added CC||andrewm.roberts at sky dot com --- Comment #12 from ktkachov at gcc dot gnu.org --- *** Bug 78471 has been marked as a duplicate of this bug. ***
[Bug target/78439] [7 Regression] error: insn does not satisfy its constraints (arm-linux-gnueabihf)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78439 ktkachov at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #11 from ktkachov at gcc dot gnu.org --- Fixed.
[Bug target/78439] [7 Regression] error: insn does not satisfy its constraints (arm-linux-gnueabihf)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78439 --- Comment #10 from ktkachov at gcc dot gnu.org --- Author: ktkachov Date: Tue Nov 22 12:12:05 2016 New Revision: 242695 URL: https://gcc.gnu.org/viewcvs?rev=242695=gcc=rev Log: [ARM] PR target/78439: Update movdi constraints for Cortex-A8 tuning to handle LDRD/STRD PR target/78439 * config/arm/vfp.md (*movdi_vfp_cortexa8): Use 'q' constraints for the register operand in alternatives 4,5,6. * gcc.c-torture/compile/pr78439.c: New test. Added: trunk/gcc/testsuite/gcc.c-torture/compile/pr78439.c Modified: trunk/gcc/ChangeLog trunk/gcc/config/arm/vfp.md trunk/gcc/testsuite/ChangeLog
[Bug target/78439] [7 Regression] error: insn does not satisfy its constraints (arm-linux-gnueabihf)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78439 --- Comment #9 from ktkachov at gcc dot gnu.org --- (In reply to Bernd Edlinger from comment #8) > Does something like that work? > > --- gcc/config/arm/vfp.md.orig2016-11-10 11:38:03.0 +0100 > +++ gcc/config/arm/vfp.md 2016-11-22 10:28:33.724941776 +0100 > @@ -355,8 +355,8 @@ > ) > > (define_insn "*movdi_vfp_cortexa8" > - [(set (match_operand:DI 0 "nonimmediate_di_operand" > "=r,r,r,r,r,r,m,w,!r,w,w, Uv") > - (match_operand:DI 1 "di_operand" > "r,rDa,Db,Dc,mi,mi,r,r,w,w,Uvi,w"))] > + [(set (match_operand:DI 0 "nonimmediate_di_operand" > "=r,r,r,r,q,q,m,w,!r,w,w, Uv") > + (match_operand:DI 1 "di_operand" > "r,rDa,Db,Dc,mi,mi,q,r,w,w,Uvi,w"))] >"TARGET_32BIT && TARGET_HARD_FLOAT && arm_tune == TARGET_CPU_cortexa8 > && ( register_operand (operands[0], DImode) > || register_operand (operands[1], DImode)) Yes, that is what I'm testing. I'll send it to gcc-patches soon
[Bug target/78439] [7 Regression] error: insn does not satisfy its constraints (arm-linux-gnueabihf)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78439 Bernd Edlinger changed: What|Removed |Added CC||bernd.edlinger at hotmail dot de --- Comment #8 from Bernd Edlinger --- Does something like that work? --- gcc/config/arm/vfp.md.orig 2016-11-10 11:38:03.0 +0100 +++ gcc/config/arm/vfp.md 2016-11-22 10:28:33.724941776 +0100 @@ -355,8 +355,8 @@ ) (define_insn "*movdi_vfp_cortexa8" - [(set (match_operand:DI 0 "nonimmediate_di_operand" "=r,r,r,r,r,r,m,w,!r,w,w, Uv") - (match_operand:DI 1 "di_operand" "r,rDa,Db,Dc,mi,mi,r,r,w,w,Uvi,w"))] + [(set (match_operand:DI 0 "nonimmediate_di_operand" "=r,r,r,r,q,q,m,w,!r,w,w, Uv") + (match_operand:DI 1 "di_operand" "r,rDa,Db,Dc,mi,mi,q,r,w,w,Uvi,w"))] "TARGET_32BIT && TARGET_HARD_FLOAT && arm_tune == TARGET_CPU_cortexa8 && ( register_operand (operands[0], DImode) || register_operand (operands[1], DImode))
[Bug target/78439] [7 Regression] error: insn does not satisfy its constraints (arm-linux-gnueabihf)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78439 --- Comment #7 from ktkachov at gcc dot gnu.org --- *** Bug 78453 has been marked as a duplicate of this bug. ***
[Bug target/78439] [7 Regression] error: insn does not satisfy its constraints (arm-linux-gnueabihf)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78439 amker at gcc dot gnu.org changed: What|Removed |Added CC||amker at gcc dot gnu.org --- Comment #6 from amker at gcc dot gnu.org --- (In reply to ktkachov from comment #3) > The ICE happens due to r242590. > Need to figure out if it is the cause of the bug or just exposes it It looks like the same bug as PR78453, but for that one, r242549 is the first guilty revision.
[Bug target/78439] [7 Regression] error: insn does not satisfy its constraints (arm-linux-gnueabihf)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78439 --- Comment #5 from ktkachov at gcc dot gnu.org --- Testing a patch.
[Bug target/78439] [7 Regression] error: insn does not satisfy its constraints (arm-linux-gnueabihf)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78439 ktkachov at gcc dot gnu.org changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |ktkachov at gcc dot gnu.org --- Comment #4 from ktkachov at gcc dot gnu.org --- Hmm, this looks like a bug exposed by that patch. The peephole2 pass does something weird. We have: (insn 13 33 40 2 (set (mem/c:SI (plus:SI (reg/f:SI 11 fp) (const_int -28 [0xffe4])) [3 d.num_comps+0 S4 A64]) (reg:SI 12 ip [orig:117 _20 ] [117])) "cp-demangle.c":32 632 {*arm_movsi_vfp} (expr_list:REG_DEAD (reg:SI 12 ip [orig:117 _20 ] [117]) (nil))) (insn 40 13 39 2 (set (mem/f/c:SI (plus:SI (reg/f:SI 11 fp) (const_int -24 [0xffe8])) [2 d.subs+0 S4 A32]) (reg/f:SI 13 sp)) "cp-demangle.c":51 632 {*arm_movsi_vfp} (nil)) being turned into: (insn 68 33 39 2 (set (mem/c:DI (plus:SI (reg/f:SI 11 fp) (const_int -28 [0xffe4])) [3 d.num_comps+0 S8 A64]) (reg:DI 12 ip)) "cp-demangle.c":51 -1 (nil)) which is not recognisable. Something dodgy with the store-multiple peepholes I think
[Bug target/78439] [7 Regression] error: insn does not satisfy its constraints (arm-linux-gnueabihf)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78439 --- Comment #3 from ktkachov at gcc dot gnu.org --- The ICE happens due to r242590. Need to figure out if it is the cause of the bug or just exposes it
[Bug target/78439] [7 Regression] error: insn does not satisfy its constraints (arm-linux-gnueabihf)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78439 --- Comment #2 from ktkachov at gcc dot gnu.org --- Reduced testcase: enum demangle_component_type { DEMANGLE_COMPONENT_THROW_SPEC }; struct demangle_component { enum demangle_component_type type; struct { struct { struct demangle_component *left; struct demangle_component *right; }; }; }; int a, b; struct d_info { struct demangle_component *comps; int next_comp; int num_comps; struct demangle_component *subs; int num_subs; int is_conversion; }; void fn1 (int p1, struct d_info *p2) { p2->num_comps = 2 * p1; p2->next_comp = p2->num_subs = p1; p2->is_conversion = 0; } int fn3 (int *); void fn4 (struct d_info *, int); void fn2 () { int c; struct d_info d; b = 0; c = fn3 (); fn1 (c, ); struct demangle_component e[d.num_comps]; struct demangle_component *f[d.num_subs]; d.comps = e; d.subs = f; fn4 (, 1); } Command line to reproduce: -O2 -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard -mtune=cortex-a8
[Bug target/78439] [7 Regression] error: insn does not satisfy its constraints (arm-linux-gnueabihf)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78439 ktkachov at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2016-11-21 CC||ktkachov at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #1 from ktkachov at gcc dot gnu.org --- Confirmed. Will try to reduce
[Bug target/78439] [7 Regression] error: insn does not satisfy its constraints (arm-linux-gnueabihf)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78439 Richard Biener changed: What|Removed |Added Target Milestone|--- |7.0