[hjl@gnu-6 gcc]$ cat /tmp/x.i int __attribute__ ((noinline)) testl (unsigned long *a, int b) { return b ? 1 : __builtin_parityl (*a); } [hjl@gnu-6 gcc]$ ./xgcc -B./ -m32 -S /tmp/x.i -O2 -msse4 /tmp/x.i: In function âtestlâ: /tmp/x.i:5: internal compiler error: output_operand: invalid expression as operand Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. [hjl@gnu-6 gcc]$ ./xgcc --version xgcc (GCC) 4.4.0 20080821 (experimental) [trunk revision 139403]
Confirmed, not a regression. Patch in testing.
Subject: Bug 37197 Author: uros Date: Fri Aug 22 13:58:52 2008 New Revision: 139471 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=139471 Log: PR target/37184 * config/i386/i386.c (ix86_match_ccmode): Handle CCAmode, CCCmode, CCOmode and CCSmode destination modes. PR target/37191 * config/i386/mmx.md (*vec_extractv2sf_0): Avoid combining registers from different units in a single alternative. (*vec_extractv2sf_1): Ditto. (*vec_extractv2si_0): Ditto. (*vec_extractv2si_1): Ditto. * config/i386/sse.md (sse2_storehpd): Ditto. (sse2_storelpd): Ditto. (sse2_loadhpd): Ditto. (sse2_loadlpd): Ditto. PR target/37197 * config/i386/i386.md (clzsi2_abm): Fix operand 1 constraints. (popcountsi2): Ditto. (clzdi2_abm): Ditto. (popcountdi2): Ditto. (clzhi2_abm): Ditto. (popcounthi2): Ditto. testsuite/ChangeLog: PR target/37184 * gcc.target/i386/pr37184.c: New test. PR target/37191 * gcc.target/i386/pr37191.c: New test. PR target/37197 * gcc.target/i386/pr37197.c: New test. Added: trunk/gcc/testsuite/gcc.target/i386/pr37184.c trunk/gcc/testsuite/gcc.target/i386/pr37191.c trunk/gcc/testsuite/gcc.target/i386/pr37197.c Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/i386.c trunk/gcc/config/i386/i386.md trunk/gcc/config/i386/mmx.md trunk/gcc/config/i386/sse.md trunk/gcc/testsuite/ChangeLog
Fixed for 4.4.
Subject: Bug 37197 Author: uros Date: Thu Aug 28 13:31:33 2008 New Revision: 139707 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=139707 Log: PR target/37184 * config/i386/i386.c (ix86_match_ccmode): Handle CCAmode, CCCmode, CCOmode and CCSmode destination modes. PR target/37191 * config/i386/mmx.md (*vec_extractv2sf_0): Avoid combining registers from different units in a single alternative. (*vec_extractv2sf_1): Ditto. (*vec_extractv2si_0): Ditto. (*vec_extractv2si_1): Ditto. * config/i386/sse.md (sse2_storehpd): Ditto. (sse2_storelpd): Ditto. (sse2_loadhpd): Ditto. (sse2_loadlpd): Ditto. PR target/37197 * config/i386/i386.md (clzsi2_abm): Fix operand 1 constraints. (popcountsi2): Ditto. (clzdi2_abm): Ditto. (popcountdi2): Ditto. (clzhi2_abm): Ditto. (popcounthi2): Ditto. testsuite/ChangeLog: PR target/37184 * gcc.target/i386/pr37184.c: New test. PR target/37191 * gcc.target/i386/pr37191.c: New test. PR target/37197 * gcc.target/i386/pr37197.c: New test. Added: branches/gcc-4_3-branch/gcc/testsuite/gcc.target/i386/pr37184.c - copied unchanged from r139471, trunk/gcc/testsuite/gcc.target/i386/pr37184.c branches/gcc-4_3-branch/gcc/testsuite/gcc.target/i386/pr37191.c - copied unchanged from r139471, trunk/gcc/testsuite/gcc.target/i386/pr37191.c branches/gcc-4_3-branch/gcc/testsuite/gcc.target/i386/pr37197.c - copied unchanged from r139471, trunk/gcc/testsuite/gcc.target/i386/pr37197.c Modified: branches/gcc-4_3-branch/gcc/ChangeLog branches/gcc-4_3-branch/gcc/config/i386/i386.c branches/gcc-4_3-branch/gcc/config/i386/i386.md branches/gcc-4_3-branch/gcc/config/i386/mmx.md branches/gcc-4_3-branch/gcc/config/i386/sse.md branches/gcc-4_3-branch/gcc/testsuite/ChangeLog
Fixed.
Subject: Bug 37197 Author: uros Date: Tue May 12 11:42:53 2009 New Revision: 147429 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=147429 Log: PR target/37197 * config/i386/driver-i386.c (processor_signatures): New enum. (SIG_GEODE): Move from vendor_signatures to processor_signatures. (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE processor signature to detect geode processor. Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/driver-i386.c
Oops, wrong PR number.