[Bug target/65914] [6 Regression] error: unrecognizable insn
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65914 Markus Trippelsdorf trippels at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #12 from Markus Trippelsdorf trippels at gcc dot gnu.org --- fixed
[Bug target/65914] [6 Regression] error: unrecognizable insn
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65914 --- Comment #11 from Bill Schmidt wschmidt at gcc dot gnu.org --- Author: wschmidt Date: Mon Jul 6 02:08:59 2015 New Revision: 225442 URL: https://gcc.gnu.org/viewcvs?rev=225442root=gccview=rev Log: [gcc] 2015-07-05 Bill Schmidt wschm...@linux.vnet.ibm.com Backport from mainline r224725 2015-06-22 Bill Schmidt wschm...@linux.vnet.ibm.com PR target/65914 * config/rs6000/predicates.md (altivec_register_operand): Permit virtual stack registers. (vsx_register_operand): Likewise. (vfloat_operand): Likewise. (vint_operand): Likewise. (vlogical_operand): Likewise. [gcc/testsuite] 2015-07-05 Bill Schmidt wschm...@linux.vnet.ibm.com Backport from mainline r224725 2015-06-22 Bill Schmidt wschm...@linux.vnet.ibm.com PR target/65914 * g++.dg/torture/pr65914.C: New. Added: branches/gcc-4_9-branch/gcc/testsuite/g++.dg/torture/pr65419.C Modified: branches/gcc-4_9-branch/gcc/ChangeLog branches/gcc-4_9-branch/gcc/config/rs6000/predicates.md branches/gcc-4_9-branch/gcc/testsuite/ChangeLog
[Bug target/65914] [6 Regression] error: unrecognizable insn
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65914 --- Comment #10 from Bill Schmidt wschmidt at gcc dot gnu.org --- Author: wschmidt Date: Mon Jul 6 02:07:49 2015 New Revision: 225441 URL: https://gcc.gnu.org/viewcvs?rev=225441root=gccview=rev Log: [gcc] 2015-07-05 Bill Schmidt wschm...@linux.vnet.ibm.com Backport from mainline r224725 2015-06-22 Bill Schmidt wschm...@linux.vnet.ibm.com PR target/65914 * config/rs6000/predicates.md (altivec_register_operand): Permit virtual stack registers. (vsx_register_operand): Likewise. (vfloat_operand): Likewise. (vint_operand): Likewise. (vlogical_operand): Likewise. [gcc/testsuite] 2015-07-05 Bill Schmidt wschm...@linux.vnet.ibm.com Backport from mainline r224725 2015-06-22 Bill Schmidt wschm...@linux.vnet.ibm.com PR target/65914 * g++.dg/torture/pr65914.C: New. Added: branches/gcc-5-branch/gcc/testsuite/g++.dg/torture/pr65419.C Modified: branches/gcc-5-branch/gcc/ChangeLog branches/gcc-5-branch/gcc/config/rs6000/predicates.md branches/gcc-5-branch/gcc/testsuite/ChangeLog
[Bug target/65914] [6 Regression] error: unrecognizable insn
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65914 --- Comment #8 from Bill Schmidt wschmidt at gcc dot gnu.org --- Author: wschmidt Date: Mon Jun 22 13:16:04 2015 New Revision: 224725 URL: https://gcc.gnu.org/viewcvs?rev=224725root=gccview=rev Log: [gcc] 2015-06-22 Bill Schmidt wschm...@linux.vnet.ibm.com PR target/65914 * config/rs6000/predicates.md (altivec_register_operand): Permit virtual stack registers. (vsx_register_operand): Likewise. (vfloat_operand): Likewise. (vint_operand): Likewise. (vlogical_operand): Likewise. [gcc/testsuite] 2015-06-22 Bill Schmidt wschm...@linux.vnet.ibm.com PR target/65914 * g++.dg/torture/pr65914.C: New. Added: trunk/gcc/testsuite/g++.dg/torture/pr65914.C Modified: trunk/gcc/ChangeLog trunk/gcc/config/rs6000/predicates.md trunk/gcc/testsuite/ChangeLog
[Bug target/65914] [6 Regression] error: unrecognizable insn
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65914 Bill Schmidt wschmidt at gcc dot gnu.org changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |wschmidt at gcc dot gnu.org --- Comment #9 from Bill Schmidt wschmidt at gcc dot gnu.org --- Will let this burn in for a week, and then plan to backport to 4.9/5.
[Bug target/65914] [6 Regression] error: unrecognizable insn
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65914 --- Comment #7 from Bill Schmidt wschmidt at gcc dot gnu.org --- Looking at the vsx_register_operand predicate in predicates.md, this seems to need some TLC. Will discuss with Mike Meissner offline.
[Bug target/65914] [6 Regression] error: unrecognizable insn
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65914 --- Comment #4 from Bill Schmidt wschmidt at gcc dot gnu.org --- With the smaller test, at least, this did not reproduce for me with r223868. Patching up to latest and will try again.
[Bug target/65914] [6 Regression] error: unrecognizable insn
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65914 --- Comment #6 from Bill Schmidt wschmidt at gcc dot gnu.org --- The tree-optimized dump shows: void foo() () { vector(2) long unsigned int vect_cst_.60; vector(2) long unsigned int vect_cst_.59; vector(2) long unsigned int vect_cst_.58; struct A p1; const struct A D.3509; int p1; int p1; const struct A D.3508; struct A p1; struct expression D.3507; long unsigned int _5; long unsigned int _6; long unsigned int _8; long unsigned int _11; long unsigned int _18; long unsigned int _19; bb 2: _18 = (long unsigned int) p1; _19 = (long unsigned int) p1; vect_cst_.60_20 = {_19, _18}; _6 = (long unsigned int) D.3509; _5 = (long unsigned int) p1; vect_cst_.59_17 = {_5, _6}; _11 = (long unsigned int) D.3508; _8 = (long unsigned int) p1; vect_cst_.58_7 = {_8, _11}; D.3509 ={v} {CLOBBER}; D.3508 ={v} {CLOBBER}; MEM[(struct )D.3507] ={v} {CLOBBER}; MEM[(const struct A *)D.3507] = vect_cst_.60_20; MEM[(const struct A *)D.3507 + 16B] = vect_cst_.59_17; MEM[(const struct A *)D.3507 + 32B] = vect_cst_.58_7; operator/int, Aint, expressionint, expressionint, int, expressionint, A\ int, Aint, void, void, void, void, expressionint, int, Aint, void, voi\ d, void, void, void, void, double (D.3507, 1.555111512312578\ 27021181583404541015625e-1); return; } The problem is that the POWER port doesn't appear to have a pattern to match the vector constructors like: vect_cst_.60_20 = {_19, _18}; The translation into rtl is a (vec_concat:V2DI (reg:DI) (reg:DI)). The closest thing we have to matching this is vsx_concat_mode in vsx.md, but IIUC this will only match (vec_concat:V2DF (reg:DF) (reg:DF)) because of the vsx_register_operand restriction. Mike Meissner, can you please confirm?
[Bug target/65914] [6 Regression] error: unrecognizable insn
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65914 --- Comment #5 from Bill Schmidt wschmidt at gcc dot gnu.org --- Confirmed with r224625, however.
[Bug target/65914] [6 Regression] error: unrecognizable insn
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65914 Markus Trippelsdorf trippels at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2015-06-17 Ever confirmed|0 |1 --- Comment #3 from Markus Trippelsdorf trippels at gcc dot gnu.org --- Another smaller testcase: trippels@gcc2-power8 tools % cat sf_concept_check_elliptic.ii enum expression_template_option { et_on }; template class, expression_template_option = et_on class A; template class, class, class, class = void, class = void struct expression; template class T struct B { typedef const T type; }; template class tag, class A1, class A2, class A3, class A4 struct Bexpressiontag, A1, A2, A3, A4 { typedef expressiontag, A1, A2 type; }; template class tag, class Arg1, class Arg2 struct expressiontag, Arg1, Arg2 { expression(Arg1 p1, const Arg2 p2) : arg1(p1), arg2(p2) {} typename BArg1::type arg1; typename BArg2::type arg2; }; template class Backend expressionint, int, ABackend sin(ABackend) { return expressionint, int, ABackend(0, 0); } template class tag, class A1, class A2, class A3, class A4 expressionint, int, expressiontag, A1, A2 asin(expressiontag, A1, A2, A3, A4 p1) { return expressionint, int, expressiontag, A1, A2(0, p1); } template class B, expression_template_option ET, class tag, class Arg1, class Arg2, class Arg3, class Arg4 expressionint, AB, expressiontag, Arg1, Arg2 operator+(AB, ET, expressiontag, Arg1, Arg2, Arg3, Arg4 p2) { return expressionint, AB, expressiontag, Arg1, Arg2(0, p2); } template class tag, class Arg1, class Arg2, class Arg3, class Arg4, class tag2, class Arg1b, class Arg2b, class Arg3b, class Arg4b expressionint, expressiontag, Arg1, Arg2, expressiontag2, Arg1b, Arg2b operator*(expressiontag, Arg1, Arg2, Arg3, Arg4 p1, expressiontag2, Arg1b, Arg2b, Arg3b, Arg4b p2) { return expressionint, expressiontag, Arg1, Arg2, expressiontag2, Arg1b, Arg2b(p1, p2); } template class B expressionint, AB, AB operator/(AB, AB) { return expressionint, AB, AB(0, 0); } template class tag, class Arg1, class Arg2, class Arg3, class Arg4, class V void operator/(expressiontag, Arg1, Arg2, Arg3, Arg4, V); template class, expression_template_option class A { public: A() {} template class V A(V) {} }; template class T, class Policy void jacobi_recurse(T, T, Policy) { T a, b, c; (a + asin(b / c) * sin(a)) / 0.1; } template class T, class Policy void jacobi_imp(T p1, Policy) { T x; jacobi_recurse(x, p1, 0); } template class T, class U, class V, class Policy void jacobi_elliptic(T, U, V, Policy) { jacobi_imp(static_castT(0), 0); } template class U, class T, class Policy void jacobi_sn(U, T, Policy) { jacobi_elliptic(static_castT(0), 0, 0, 0); } template class U, class T void jacobi_sn(U, T p2) { jacobi_sn(0, p2, 0); } template class T void test_extra(T) { T d; jacobi_sn(0, d); } void foo() { test_extra(Aint()); } trippels@gcc2-power8 tools % g++ -O3 -c -std=c++14 sf_concept_check_elliptic.ii sf_concept_check_elliptic.ii: In function ‘void foo()’: sf_concept_check_elliptic.ii:67:36: error: unrecognizable insn: void foo() { test_extra(Aint()); } ^ (insn 11 10 12 2 (set (reg:V2DI 168 [ vect_cst_.59 ]) (vec_concat:V2DI (reg:DI 169 [ D.3522 ]) (reg/f:DI 150 virtual-stack-vars [ D.3522 ]))) -1 (nil)) sf_concept_check_elliptic.ii:67:36: internal compiler error: in extract_insn, at recog.c:2319 0x109fe913 _fatal_insn(char const*, rtx_def const*, char const*, int, char const*) ../../gcc/gcc/rtl-error.c:110 0x109fe98f _fatal_insn_not_found(rtx_def const*, char const*, int, char const*) ../../gcc/gcc/rtl-error.c:118 0x109c32a7 extract_insn(rtx_insn*) ../../gcc/gcc/recog.c:2319 0x106f6d5b instantiate_virtual_regs_in_insn ../../gcc/gcc/function.c:1588 0x106f6d5b instantiate_virtual_regs ../../gcc/gcc/function.c:1956 0x106f6d5b execute ../../gcc/gcc/function.c:2005 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See http://gcc.gnu.org/bugs.html for instructions.
[Bug target/65914] [6 Regression] error: unrecognizable insn
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65914 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |6.0
[Bug target/65914] [6 Regression] error: unrecognizable insn
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65914 --- Comment #1 from Markus Trippelsdorf trippels at gcc dot gnu.org --- Created attachment 35415 -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=35415action=edit Somewhat reduced testcase
[Bug target/65914] [6 Regression] error: unrecognizable insn
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65914 --- Comment #2 from Markus Trippelsdorf trippels at gcc dot gnu.org --- Started with r222514 so possibly a latent issue.