Bug#267206: gcc-3.4: vector op code generation regression
Package: gcc-3.4 Version: 3.4.1-4sarge1 Severity: normal I'm compiling the following code example under both gcc 3.3.4-2 and 3.4.1-4sarge1: #include typedef int v4si __attribute__ ((mode(V4SI))); static void print_v4si (const char * name, v4si val) { int x; printf ("%s:\n", name); for (x = 0; x < 4; ++x) printf (" vals[%d] = %d\n", x, ((int *)&val)[x]); printf ("\n"); } int main () { v4si a = { 1, 2, 3, 4 }; v4si b = { 2, 3, 4, 5 }; print_v4si ("a", a); print_v4si ("b", b); print_v4si ("a+b", a + b); return 0; } And here are some shell outputs compiling with 3.3 and 3.4 with and without sse (along with running the results and commentary): $ gcc-3.3 foo.c -o foo-3.3 foo.c: In function `print_v4si': foo.c:14: internal compiler error: in ix86_function_arg_boundary, at config/i386/i386.c:2476 Please submit a full bug report, with preprocessed source if appropriate. See http://gcc.gnu.org/bugs.html> for instructions. For Debian GNU/Linux specific bug reporting instructions, see . This is wrong, but it seems fixed in 3.4: $ gcc-3.4 foo.c -o foo-3.4 foo.c: In function `print_v4si': foo.c:7: warning: SSE vector argument without SSE enabled changes the ABI foo.c: In function `main': foo.c:22: warning: SSE vector argument without SSE enabled changes the ABI foo.c:23: warning: SSE vector argument without SSE enabled changes the ABI foo.c:24: warning: SSE vector argument without SSE enabled changes the ABI $ ./foo-3.4 a: vals[0] = 1 vals[1] = 2 vals[2] = 3 vals[3] = 4 b: vals[0] = 2 vals[1] = 3 vals[2] = 4 vals[3] = 5 a+b: vals[0] = 3 vals[1] = 5 vals[2] = 7 vals[3] = 9 Only nuissance is that the warnings seems superfluous (others may disagree). $ gcc-3.3 foo.c -o foo-3.3-sse -msse $ ./foo-3.3-sse a: vals[0] = 1 vals[1] = 2 vals[2] = 3 vals[3] = 4 b: vals[0] = 2 vals[1] = 3 vals[2] = 4 vals[3] = 5 a+b: vals[0] = 3 vals[1] = 5 vals[2] = 7 vals[3] = 9 This is correct. $ gcc-3.4 foo.c -o foo-3.4-sse -msse $ ./foo-3.4-sse a: vals[0] = 1 vals[1] = 2 vals[2] = 1 vals[3] = -1073743580 b: vals[0] = 2 vals[1] = 3 vals[2] = 1 vals[3] = -1073743580 a+b: vals[0] = 3 vals[1] = 5 vals[2] = 1 vals[3] = -1073743580 No warning, but the generated code seems incorrect (or at least a regression from 3.3) unless ((int *)&val)[x] isn't the correct portable way to access a vector element, but there doesn't seem to be an alternative that I've been able to deduce (and the documentation doesn't list any). -- System Information: Debian Release: 3.1 APT prefers testing APT policy: (500, 'testing') Architecture: i386 (i686) Kernel: Linux 2.6.7 Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 Versions of packages gcc-3.4 depends on: ii binutils 2.14.90.0.7-8 The GNU assembler, linker and bina ii cpp-3.4 3.4.1-4sarge1 The GNU C preprocessor ii gcc-3.4-base 3.4.1-4sarge1 The GNU Compiler Collection (base ii libc62.3.2.ds1-13GNU C Library: Shared libraries an ii libgcc1 1:3.4.1-4sarge1 GCC support library -- no debconf information
v&iagra is just 2.50 per night
It contains the exact same ingredients as regular viaggra, except that you pay much, much less. All pills are produced in world-class licensed facilities only. Pay for your order using any major credit card. Mallory Dinges http://Jmexmxbper.discountgenericviagra.com?Mvgmh/Yscfncvsa This is where you can be taken off the database: http://W317341301.discountgenericviagra.com?Dkvndts/Rbb n4Lldph
Bug#267206: gcc-3.4: vector op code generation regression
On Sat, Aug 21, 2004 at 12:44:03AM -0500, Matthew Dempsky wrote: > No warning, but the generated code seems incorrect (or at least a > regression from 3.3) unless ((int *)&val)[x] isn't the correct > portable way to access a vector element, but there doesn't seem to be > an alternative that I've been able to deduce (and the documentation > doesn't list any). It isn't correct. Use a union; you're violating the strict-aliasing rules. -- Daniel Jacobowitz
Recompiling gcc - g77
Hi, I'm new to the list so if I'm off topic please let me know... I' m using Debian woody and I need to recompile g77 (or the gcc package) and use it to compile a program that needs a little modification in the g77 source, to compile properly. I've tried to apt-get both g77 and gcc with the commands: apt-get source g77 apt-get source gcc but no sources seems to be available for download for the gcc package, nor for g77. Anyway other sources packages can I request are regulary downloaded, e.g. gedit or postgresql etc..so my apt databese is not broken. I think I have to follow a particular procedure to recompile 'that compiler' and i'm searching for information but without results. Do someone can help me or point me to some documentation to resolve this problem? Thanks, Michele.
Forget the doctor, get meds online
Hello Betts, Fantastic, huh? Take a look in your 128 bit secure site Hope to see you soon. Sheila http://www.a-z-meds.com/book/ There if you don’t care -BEGIN PGP SIGNATURE- Version: GnuPG v1.0.7 (GNU/Linux) iD8DBQFBJu5KmqjQ0CJFipgRAlWiAKDXTRUqWqhoeRAivy7VOzPKCq/V4wCfZN8o GMqJ2higHvhiSI/uKyg5Xyg=ER04 -END PGP SIGNATURE- <>
Bug#267206: gcc-3.4: vector op code generation regression
Daniel Jacobowitz <[EMAIL PROTECTED]> writes: > On Sat, Aug 21, 2004 at 12:44:03AM -0500, Matthew Dempsky wrote: >> No warning, but the generated code seems incorrect (or at least a >> regression from 3.3) unless ((int *)&val)[x] isn't the correct >> portable way to access a vector element, but there doesn't seem to be >> an alternative that I've been able to deduce (and the documentation >> doesn't list any). > > It isn't correct. Use a union; you're violating the strict-aliasing > rules. Alright, I tried changing print_v4si to this (rest of the code the same): static void print_v4si (const char * name, v4si val) { union foo { v4si vector; int array[4]; } l; int x; l.vector = val; printf ("%s:\n", name); for (x = 0; x < 4; ++x) printf (" vals[%d] = %d\n", x, l.array[x]); printf ("\n"); } And it still generates bogus values for the third and fourth vector elements. I also just noticed that compiling with -march=athlon-xp causes all of the values to be zero. Or did I still not get the strict aliasing rules right? (-Wstrict-aliasing doesn't seem to generate a warning with either old or new code either.)
Bug#267206: gcc-3.4: vector op code generation regression
On Sat, Aug 21, 2004 at 02:27:17PM -0500, Matthew Dempsky wrote: > Daniel Jacobowitz <[EMAIL PROTECTED]> writes: > > > On Sat, Aug 21, 2004 at 12:44:03AM -0500, Matthew Dempsky wrote: > >> No warning, but the generated code seems incorrect (or at least a > >> regression from 3.3) unless ((int *)&val)[x] isn't the correct > >> portable way to access a vector element, but there doesn't seem to be > >> an alternative that I've been able to deduce (and the documentation > >> doesn't list any). > > > > It isn't correct. Use a union; you're violating the strict-aliasing > > rules. > > Alright, I tried changing print_v4si to this (rest of the code the > same): > > static void > print_v4si (const char * name, v4si val) > { > union foo > { > v4si vector; > int array[4]; > } l; > int x; > > l.vector = val; > > printf ("%s:\n", name); > for (x = 0; x < 4; ++x) > printf (" vals[%d] = %d\n", x, l.array[x]); > printf ("\n"); > } > > And it still generates bogus values for the third and fourth vector > elements. I also just noticed that compiling with -march=athlon-xp > causes all of the values to be zero. > > Or did I still not get the strict aliasing rules right? > (-Wstrict-aliasing doesn't seem to generate a warning with either old > or new code either.) I'm not sure - I'd have to take a look at the generated code. -- Daniel Jacobowitz
Bug#267297: lib64gcc1 (priority required) depends on an optional package
Package: lib64gcc1 Version: 3.4.1-7 Severity: normal lib64gcc1 (which is of priority required) depends on amd64-libs, which is optional. This does not make much sense. $ apt-cache show lib64gcc1 Package: lib64gcc1 Priority: required Section: libs Architecture: i386 Source: gcc-3.4 (3.4.1ds1-7) Version: 1:3.4.1-7 Depends: amd64-libs (>= 0.1) $ apt-cache show amd64-libs Package: amd64-libs Priority: optional Section: libs Architecture: i386 Version: 1.0 lib64gcc1 should not be of priority required on the i386 architecture which itself is a 32-bit architecture. Most of the installations which do not run on an AMD64 cpu probably never will need it. cu Uwe -- System Information: Debian Release: 3.1 APT prefers testing APT policy: (750, 'testing'), (650, 'unstable') Architecture: i386 (i686) Kernel: Linux 2.4.25 Locale: LANG=C, LC_CTYPE=de_DE
Results for 3.4.1 (Debian 3.4.1-7) testsuite on mipsel-linux
LAST_UPDATED: Thu Aug 19 08:54:38 UTC 2004 Native configuration is mipsel-linux (repeat.rfc822.org) === gpc tests === Running target any FAIL: adam3i.pas FAIL: adam3j.pas FAIL: adam3o.pas FAIL: adam3p.pas FAIL: assumptions.pas FAIL: binrdwt.pas FAIL: bitfields.pas FAIL: chris4.pas FAIL: chuck3.pas FAIL: couper12.pas FAIL: daj23.pas FAIL: dialec5.pas FAIL: dosunixtest.pas FAIL: eike3a.pas FAIL: emil15.pas FAIL: emil16.pas FAIL: emil23d.pas FAIL: expon.pas FAIL: fjf124.pas FAIL: fjf127.pas FAIL: fjf131.pas FAIL: fjf133.pas FAIL: fjf145.pas FAIL: fjf158.pas FAIL: fjf165a.pas FAIL: fjf165b.pas FAIL: fjf175d.pas FAIL: fjf175e.pas FAIL: fjf189.pas FAIL: fjf207.pas FAIL: fjf219a.pas FAIL: fjf219b.pas FAIL: fjf219c.pas FAIL: fjf226u.pas FAIL: fjf252.pas FAIL: fjf257a.pas FAIL: fjf257b.pas FAIL: fjf257c.pas FAIL: fjf264.pas FAIL: fjf3.pas FAIL: fjf401.pas FAIL: fjf40e.pas FAIL: fjf416a.pas FAIL: fjf422.pas FAIL: fjf432.pas FAIL: fjf434a.pas FAIL: fjf434c.pas FAIL: fjf438a.pas FAIL: fjf438b.pas FAIL: fjf438c.pas FAIL: fjf444a.pas FAIL: fjf458a.pas FAIL: fjf458b.pas FAIL: fjf458c.pas FAIL: fjf458d.pas FAIL: fjf484a.pas FAIL: fjf485.pas FAIL: fjf488o2.pas FAIL: fjf488p2.pas FAIL: fjf490.pas FAIL: fjf491.pas FAIL: fjf492.pas FAIL: fjf496a4.pas FAIL: fjf496b4.pas FAIL: fjf496d4.pas FAIL: fjf496f4.pas FAIL: fjf499a.pas FAIL: fjf499b.pas FAIL: fjf499c.pas FAIL: fjf524a.pas FAIL: fjf526a.pas FAIL: fjf526b.pas FAIL: fjf526c.pas FAIL: fjf526d.pas FAIL: fjf526e.pas FAIL: fjf526f.pas FAIL: fjf543a.pas FAIL: fjf543d.pas FAIL: fjf543f.pas FAIL: fjf564a.pas FAIL: fjf564b.pas FAIL: fjf564c.pas FAIL: fjf564d.pas FAIL: fjf564e.pas FAIL: fjf564f.pas FAIL: fjf569c.pas FAIL: fjf576l.pas FAIL: fjf577l.pas FAIL: fjf617.pas FAIL: fjf629g.pas FAIL: fjf636e.pas FAIL: fjf64.pas FAIL: fjf651a.pas FAIL: fjf654b.pas FAIL: fjf664.pas FAIL: fjf669a.pas FAIL: fjf669b.pas FAIL: fjf675.pas FAIL: fjf707a.pas FAIL: fjf712a.pas FAIL: fjf821a.pas FAIL: fjf895.pas FAIL: fjf914b.pas FAIL: fjf924.pas FAIL: fjf929.pas FAIL: fjf930a.pas FAIL: fjf930b.pas FAIL: fjf936.pas FAIL: fjf95.pas FAIL: fjf95a.pas FAIL: fjf95b.pas FAIL: george1.pas FAIL: getopt1.pas FAIL: getopt2.pas FAIL: getopt3.pas FAIL: gpctest.pas FAIL: knuth1.pas FAIL: knuth1a.pas FAIL: lastpos.pas FAIL: lrbug2.pas FAIL: martin2a.pas FAIL: matt1.pas FAIL: maur11.pas FAIL: md5test.pas FAIL: mir003.pas FAIL: mir006.pas FAIL: nick1.pas FAIL: numericio.pas FAIL: pcextn.pas FAIL: piextn.pas FAIL: pvs2.pas FAIL: pvs3.pas FAIL: rdwt.pas FAIL: readb1.pas FAIL: readb10.pas FAIL: readb11.pas FAIL: readb12.pas FAIL: readb13.pas FAIL: readb14.pas FAIL: readb15.pas FAIL: readb16.pas FAIL: readb2.pas FAIL: readb3.pas FAIL: readb4.pas FAIL: readb5.pas FAIL: readb6.pas FAIL: readb7.pas FAIL: readb8.pas FAIL: readb9.pas FAIL: readc1.pas FAIL: readc10.pas FAIL: readc11.pas FAIL: readc12.pas FAIL: readc13.pas FAIL: readc14.pas FAIL: readc15.pas FAIL: readc16.pas FAIL: readc2.pas FAIL: readc3.pas FAIL: readc4.pas FAIL: readc5.pas FAIL: readc6.pas FAIL: readc7.pas FAIL: readc8.pas FAIL: readc9.pas FAIL: reade1.pas FAIL: reade10.pas FAIL: reade11.pas FAIL: reade12.pas FAIL: reade13.pas FAIL: reade14.pas FAIL: reade15.pas FAIL: reade16.pas FAIL: reade2.pas FAIL: reade3.pas FAIL: reade4.pas FAIL: reade5.pas FAIL: reade6.pas FAIL: reade7.pas FAIL: reade8.pas FAIL: reade9.pas FAIL: readg1.pas FAIL: readg10.pas FAIL: readg11.pas FAIL: readg12.pas FAIL: readg13.pas FAIL: readg14.pas FAIL: readg15.pas FAIL: readg16.pas FAIL: readg2.pas FAIL: readg3.pas FAIL: readg4.pas FAIL: readg5.pas FAIL: readg6.pas FAIL: readg7.pas FAIL: readg8.pas FAIL: readg9.pas FAIL: redef.pas FAIL: scott1.pas FAIL: seekrd.pas FAIL: sets5.pas FAIL: testeoln.pas FAIL: tfddtest.pas FAIL: tom4.pas FAIL: writereal.pas === gpc Summary === # of tests3953 # of expected passes 3743 # of unexpected failures 205 # of unsupported tests5 /build/buildd/gcc-3.4-3.4.1ds1/build/gcc/xgpc version 20040516, based on gcc-3.4.1 (Debian 3.4.1-7) === acats tests === FAIL: c37213f FAIL: c37215f === acats Summary === # of expected passes1963 # of unexpected failures2 # of unsupported tests 357 === g++ tests === Running target unix XPASS: g++.dg/rtti/tinfo1.C scan-assembler _ZTIP9CTemplateIhE: XPASS: g++.dg/rtti/tinfo1.C scan-assembler-not .globl[ \\t]+_ZTIP9CTemplateIhE FAIL: g++.old-deja/g++.abi/ptrflags.C (test for excess errors) WARNING: g++.old-deja/g++.abi/ptrflags.C compilation failed to produce executable FAIL: g++.old-deja/g++.eh/catchptr1.C execution test XPASS: g++.old-deja/g++.jason/thunk3.C execution test WARNING: g++.old-deja/g++.mike/p10769a.C compilation failed to produce executable WARNING: g++.old-deja/g++.other/enum5.C compilation failed to produce executable XPASS: g++.old-deja/g++.other/init5.C execution test WARNING: g++.old-deja/g++.pt/friend44.C compilation failed to produce executable
cehck it out!
Ah, distinctly I remember, it was in the bleak December, Hõpe to have a bìgger pènis ? Wè hãve the stùff the pornstãr use to have bìgger pènis, contrõl their orgãsm and boõst their èrection Ordèr Hère http://turantech.com/?xc55059t&banner That I scarce was sure I heard you." Here I opened wide the door;--- "Though thy crest be shorn and shaven thou," I said, "art sure no craven, Now of my three score years and ten,twenty will not come again. Penelope