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