Peter-Lawrence . Montgomery on Mon, 17 Jul 2000 22:45:41 +0200 (MET DST) |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Discrepancices compiling 2.0.20.beta on mips -64 |
I am trying to run test-compat version 2.0.20.beta on a MIPS Origin 2000 (mixed R10K and R12K) processors, under IRIX 5.5 and MIPSPro 7.2.1 compilers, no readline. The compiler flags include -64, for 64-bit longs and 64-bit pointers but 32-bit integers. Whether I use -O3 (optimizer) or -g (debugger) I get a discrepancy (in both static and dynamic modes). See below. The first significant discrepancy is the signs of some elements in the vector beginning [4, 3, -1, 2, 3, 1, -11, 1, 7 Later, in the makebigbnf(sbnf) output, one output has 1.246346989334819161 and the other adds pi*I to this. I got additional discrepancies when I used -IPA (interprocedural optimizations). I assume these are compiler bugs. However I did run 2.0.11.beta in 1998 using the same compilers and a -IPA flag. *** ../src/test/64/compat Fri Jun 2 19:10:44 2000 --- gp.out Mon Jul 17 21:37:05 2000 *************** *** 985,991 **** ? getheap() [215, 46217] ? getrand() ! 1890261439 ? getstack() 0 ? globalred(acurve) --- 985,991 ---- ? getheap() [215, 46217] ? getrand() ! 649648453 ? getstack() 0 ? globalred(acurve) *************** *** 1932,1975 **** [x^3 - x^2 - 14*x - 1, 3, 10889, [1, x, x^2], [-3.233732695981516673, -0.071 82350902743636344, 4.305556205008953036], [10889, 5698, 3794; 0, 1, 0; 0, 0, 1], mat(2), mat([0, 1, 1, 1, 0, 1, 1, 1]), [9, 15, 16, 17, 10, 33, 69, 39, ! 57], [2, [-1, 0, 0]~], [[0, 1, 0]~, [-4, 2, 1]~], [4, 3, -1, 2, 3, 1, -11, 1 ! , 7; -1, 1, 1, 1, 0, 1, -2, 4, 2; 0, 0, 0, 0, 0, 0, 1, 1, 0]] ? makebigbnf(sbnf) [mat(2), mat([0, 1, 1, 1, 0, 1, 1, 1]), [1.173637103435061715 + 3.1415926535 89793238*I, -4.562279014988837901 + 3.141592653589793238*I; -2.6335434327389 76049 + 3.141592653589793238*I, 1.420330600779487358 + 3.141592653589793238* ! I; 1.459906329303914334, 3.141948414209350543], [1.246346989334819161, -1.99 ! 0056445584799713 + 3.141592653589793238*I, 0.5404006376129469727 + 3.1415926 ! 53589793238*I, -0.6926391142471042845 + 3.141592653589793238*I, 0.E-96, 0.00 ! 4375616572659815402 + 3.141592653589793238*I, 0.3677262014027817705, -0.8305 ! 625946607188639 + 3.141592653589793238*I, -1.977791147836553953; 0.671682743 ! 2867392935, 0.5379005671092853266, -0.8333219883742404172 + 3.14159265358979 ! 3238*I, -0.2461086674077943078, 0.E-96, -0.8738318043071131265, 0.9729063188 ! 316092378 + 3.141592653589793238*I, -1.552661549868775853, 0.577491909139832 ! 4092; -1.918029732621558454 + 3.141592653589793238*I, 1.452155878475514386, ! 0.2929213507612934444, 0.9387477816548985923, 0.E-96, 0.8694561877344533111, ! -1.340632520234391008 + 3.141592653589793238*I, 2.383224144529494717, 1.400 ! 299238696721544], [[3, [-1, 1, 0]~, 1, 1, [1, 0, 1]~], [5, [3, 1, 0]~, 1, 1, ! [-2, 1, 1]~], [5, [-1, 1, 0]~, 1, 1, [1, 0, 1]~], [5, [2, 1, 0]~, 1, 1, [2, ! 2, 1]~], [3, [1, 0, 1]~, 1, 2, [-1, 1, 0]~], [11, [1, 1, 0]~, 1, 1, [-1, -2 ! , 1]~], [23, [-10, 1, 0]~, 1, 1, [7, 9, 1]~], [13, [19, 1, 0]~, 1, 1, [2, 6, ! 1]~], [19, [-6, 1, 0]~, 1, 1, [-3, 5, 1]~]]~, [1, 2, 3, 4, 5, 6, 7, 8, 9]~, ! [x^3 - x^2 - 14*x - 1, [3, 0], 10889, 1, [[1, -3.233732695981516673, 10.457 ! 02714905988813; 1, -0.07182350902743636344, 0.005158616449014232794; 1, 4.30 ! 5556205008953036, 18.53781423449109762], [1, 1, 1; -3.233732695981516673, -0 ! .07182350902743636344, 4.305556205008953036; 10.45702714905988813, 0.0051586 ! 16449014232794, 18.53781423449109762], [3, 1.000000000000000000, 29.00000000 ! 000000000; 1.000000000000000000, 29.00000000000000000, 46.00000000000000000; ! 29.00000000000000000, 46.00000000000000000, 453.0000000000000000], [3, 1, 2 ! 9; 1, 29, 46; 29, 46, 453], [10889, 5698, 3794; 0, 1, 0; 0, 0, 1], [11021, 8 ! 81, -795; 881, 518, -109; -795, -109, 86], [10889, [1890, 5190, 1]~]], [-3.2 ! 33732695981516673, -0.07182350902743636344, 4.305556205008953036], [1, x, x^ ! 2], [1, 0, 0; 0, 1, 0; 0, 0, 1], [1, 0, 0, 0, 0, 1, 0, 1, 1; 0, 1, 0, 1, 0, ! 14, 0, 14, 15; 0, 0, 1, 0, 1, 1, 1, 1, 15]], [[2, [2], [[3, 2, 2; 0, 1, 0; 0 ! , 0, 1]]], 10.34800724602767998, 1.000000000000000000, [2, -1], [x, x^2 + 2* ! x - 4], 1000], [mat(1), mat(1), [[[3, 2, 2; 0, 1, 0; 0, 0, 1], [0, 0, 0]]]], ! [4, 3, -1, 2, 3, 1, -11, 1, 7; -1, 1, 1, 1, 0, 1, -2, 4, 2; 0, 0, 0, 0, 0, ! 0, 1, 1, 0]] ? concat(mat(vector(4,x,x)~),vector(4,x,10+x)~) [1 11] --- 1932,1976 ---- [x^3 - x^2 - 14*x - 1, 3, 10889, [1, x, x^2], [-3.233732695981516673, -0.071 82350902743636344, 4.305556205008953036], [10889, 5698, 3794; 0, 1, 0; 0, 0, 1], mat(2), mat([0, 1, 1, 1, 0, 1, 1, 1]), [9, 15, 16, 17, 10, 33, 69, 39, ! 57], [2, [-1, 0, 0]~], [[0, 1, 0]~, [-4, 2, 1]~], [-4, 3, -1, 2, 3, 1, 11, - ! 1, -7; 1, 1, 1, 1, 0, 1, 2, -4, -2; 0, 0, 0, 0, 0, 0, -1, -1, 0]] ? makebigbnf(sbnf) [mat(2), mat([0, 1, 1, 1, 0, 1, 1, 1]), [1.173637103435061715 + 3.1415926535 89793238*I, -4.562279014988837901 + 3.141592653589793238*I; -2.6335434327389 76049 + 3.141592653589793238*I, 1.420330600779487358 + 3.141592653589793238* ! I; 1.459906329303914334, 3.141948414209350543], [1.246346989334819161 + 3.14 ! 1592653589793238*I, -1.990056445584799713 + 3.141592653589793238*I, 0.540400 ! 6376129469727 + 3.141592653589793238*I, -0.6926391142471042845 + 3.141592653 ! 589793238*I, 0.E-96, 0.004375616572659815402 + 3.141592653589793238*I, 0.367 ! 7262014027817705 + 3.141592653589793238*I, -0.8305625946607188639, -1.977791 ! 147836553953 + 3.141592653589793238*I; 0.6716827432867392935 + 3.14159265358 ! 9793238*I, 0.5379005671092853266, -0.8333219883742404172 + 3.141592653589793 ! 238*I, -0.2461086674077943078, 0.E-96, -0.8738318043071131265, 0.97290631883 ! 16092378, -1.552661549868775853 + 3.141592653589793238*I, 0.5774919091398324 ! 092 + 3.141592653589793238*I; -1.918029732621558454, 1.452155878475514386, 0 ! .2929213507612934444, 0.9387477816548985923, 0.E-96, 0.8694561877344533111, ! -1.340632520234391008, 2.383224144529494717 + 3.141592653589793238*I, 1.4002 ! 99238696721544 + 3.141592653589793238*I], [[3, [-1, 1, 0]~, 1, 1, [1, 0, 1]~ ! ], [5, [3, 1, 0]~, 1, 1, [-2, 1, 1]~], [5, [-1, 1, 0]~, 1, 1, [1, 0, 1]~], [ ! 5, [2, 1, 0]~, 1, 1, [2, 2, 1]~], [3, [1, 0, 1]~, 1, 2, [-1, 1, 0]~], [11, [ ! 1, 1, 0]~, 1, 1, [-1, -2, 1]~], [23, [-10, 1, 0]~, 1, 1, [7, 9, 1]~], [13, [ ! 19, 1, 0]~, 1, 1, [2, 6, 1]~], [19, [-6, 1, 0]~, 1, 1, [-3, 5, 1]~]]~, [1, 2 ! , 3, 4, 5, 6, 7, 8, 9]~, [x^3 - x^2 - 14*x - 1, [3, 0], 10889, 1, [[1, -3.23 ! 3732695981516673, 10.45702714905988813; 1, -0.07182350902743636344, 0.005158 ! 616449014232794; 1, 4.305556205008953036, 18.53781423449109762], [1, 1, 1; - ! 3.233732695981516673, -0.07182350902743636344, 4.305556205008953036; 10.4570 ! 2714905988813, 0.005158616449014232794, 18.53781423449109762], [3, 1.0000000 ! 00000000000, 29.00000000000000000; 1.000000000000000000, 29.0000000000000000 ! 0, 46.00000000000000000; 29.00000000000000000, 46.00000000000000000, 453.000 ! 0000000000000], [3, 1, 29; 1, 29, 46; 29, 46, 453], [10889, 5698, 3794; 0, 1 ! , 0; 0, 0, 1], [11021, 881, -795; 881, 518, -109; -795, -109, 86], [10889, [ ! 1890, 5190, 1]~]], [-3.233732695981516673, -0.07182350902743636344, 4.305556 ! 205008953036], [1, x, x^2], [1, 0, 0; 0, 1, 0; 0, 0, 1], [1, 0, 0, 0, 0, 1, ! 0, 1, 1; 0, 1, 0, 1, 0, 14, 0, 14, 15; 0, 0, 1, 0, 1, 1, 1, 1, 15]], [[2, [2 ! ], [[3, 2, 2; 0, 1, 0; 0, 0, 1]]], 10.34800724602767998, 1.00000000000000000 ! 0, [2, -1], [x, x^2 + 2*x - 4], 1000], [mat(1), mat(1), [[[3, 2, 2; 0, 1, 0; ! 0, 0, 1], [0, 0, 0]]]], [-4, 3, -1, 2, 3, 1, 11, -1, -7; 1, 1, 1, 1, 0, 1, ! 2, -4, -2; 0, 0, 0, 0, 0, 0, -1, -1, 0]] ? concat(mat(vector(4,x,x)~),vector(4,x,10+x)~) [1 11] *************** *** 2865,2871 **** ? getstack() 0 ? getheap() ! [626, 112428] ? print("Total time spent: ",gettime()); ! Total time spent: 8430 ? \q --- 2866,2872 ---- ? getstack() 0 ? getheap() ! [626, 112471] ? print("Total time spent: ",gettime()); ! Total time spent: 21022 ? \q The dft.Config.in file (from ./Configure -ask) is # Config file for Pari -- Mips (C portable kernel) 64-bit version shell_q="'" version='2.0' TOP='/ufs/pmontgom/pari-2.0.20.beta' config_dir='config' src_dir='src' emacs_dir='emacs' doc_dir='doc' bindir='/ufs/pmontgom/usr/local/bin' includedir='/ufs/pmontgom/usr/local/include/pari' mandir='/ufs/pmontgom/usr/local/man/man1' miscdir='/ufs/pmontgom/usr/local/lib/pari' libdir='/ufs/pmontgom/usr/local/lib' datadir='/ufs/pmontgom/usr/local/lib/pari/data' optimization='full' objdir='Oirix-mips' static='y' suffix='' arch='mips' asmarch='none' osname='irix' pretty='Mips (C portable kernel) 64-bit version' __gnuc__='' gnuas='no' CPP='cc -E -I.' AS='/bin/as' ASFLAGS='' CC='cc' cflags='-O3 -64 -fullwarn' DBGFLAGS='-g' OPTFLAGS='-O' LD='cc' LDFLAGS='-O3 -64 -fullwarn' DLLD='/bin/ld' DLSUFFIX='so' somake='so' sodest='so' KERNELCPPFLAGS='' DLLDFLAGS='-shared -elf -no_unresolved -all' EXTRADLLDFLAGS='' runpath='/ufs/pmontgom/usr/local/lib' runpathprefix='' LDDYN='-L/ufs/pmontgom/usr/local/lib -lpari' LIBS='' DYNLIBS='' DYNFLAGS='' DYNRELOC='' ranlib='' gzip='/usr/sbin/gzip' zcat='/usr/ucb/zcat' emacs='' perl='/bin/perl' ln_s='ln -s' make_sh='/bin/sh' exe_suff='' readline='' readline_enabledp='nil' CPPF_defined='yes' rl_refresh_line_oldproto='yes' rl_appendchar='' rl_save_prompt='' _rl_save_prompt='' rl_message='yes' RLINCLUDE='-I/usr/local/include' RLLIBS='-L/usr/local/lib -lreadline -ltermcap -liberty' sizeof_long='8' endian='87654321' has_exp2='no' has_getrusage='yes' has_times='' has_ulong='yes' has_ftime='' has_strftime='no' has_sigrelse='yes' has_sigsetmask='' has_dlopen='yes' has_TIOCGWINSZ='yes' gnuplot='' extralib='' X11='/usr/lib' Xincroot='/usr/include' which_graphic_lib='X11' gnuplot_libs='' I needed to correct the Makefile to use /lib/lib64 on the PLOTLIBS line and add -64 to -DLLDFLAGS Peter Montgomery pmontgom@cwi.nl