From axiom@nag.co.uk  Fri Jul 31 15:24:09 1998
Received: from nagmx1.nag.co.uk by red.nag.co.uk via SMTP (920330.SGI/920502.SGI)
	for /home/red5/axiom/support/recvbug id AA01032; Fri, 31 Jul 98 15:24:09 +0100
Received: from red.nag.co.uk (red.nag.co.uk [192.156.217.2])
          by nagmx1.nag.co.uk (8.8.4/8.8.4) with SMTP
	  id PAA11974 for <ax-bugs@nag.co.uk>; Fri, 31 Jul 1998 15:29:58 +0100 (BST)
Received: from zorba.nag.co.uk by red.nag.co.uk via SMTP (920330.SGI/920502.SGI)
	for ax-bugs@nag.co.uk id AA01029; Fri, 31 Jul 98 15:24:06 +0100
Received: by zorba.nag.co.uk (8.8.5/920502.SGI)
	for ax-bugs@nag.co.uk id PAA28484; Fri, 31 Jul 1998 15:27:39 +0100
Date: Fri, 31 Jul 1998 15:27:39 +0100
From: axiom@nag.co.uk (Axiom Implementation Account)
Message-Id: <199807311427.PAA28484@zorba.nag.co.uk>
To: ax-bugs@nag.co.uk

Subject: fixbug
By: TTT
Fixed: bug1145.as
--* From Manuel.Bronstein@sophia.inria.fr  Wed Jul 29 19:56:30 1998
--* Received: from nagmx1.nag.co.uk by red.nag.co.uk via SMTP (920330.SGI/920502.SGI)
--* 	for /home/red5/axiom/support/recvbug id AA24840; Wed, 29 Jul 98 19:56:30 +0100
--* Received: from nirvana.inria.fr (bmanuel@nirvana.inria.fr [138.96.48.30])
--*           by nagmx1.nag.co.uk (8.8.4/8.8.4) with ESMTP
--* 	  id TAA08291 for <ax-bugs@nag.co.uk>; Wed, 29 Jul 1998 19:59:45 +0100 (BST)
--* Received: by nirvana.inria.fr (8.8.8/8.8.5) id UAA12744 for ax-bugs@nag.co.uk; Wed, 29 Jul 1998 20:56:57 +0200
--* Date: Wed, 29 Jul 1998 20:56:57 +0200
--* From: Manuel Bronstein <Manuel.Bronstein@sophia.inria.fr>
--* Message-Id: <199807291856.UAA12744@nirvana.inria.fr>
--* To: ax-bugs@nag.co.uk
--* Subject: [3] optimizer mangles constant at -q2

--@ Bug Number:  bug1145.as 
--@ Fixed  by:  TTT   
--@ Tested by:  t1145.as 
--@ Summary:    use %ld instead of %d in ccoIntOf macro 

-- Command line: axiomxl -q2 -fx optbug.as
-- Version: 1.1.11e
-- Original bug file name: optbug.as

------------------------------- optbug.as ------------------------
--
-- This is a bug in the optimizer with large (40-bits) constants

#include "axllib"

import from SingleInteger;

-- this constant is 2^40, no problem on a 64-bit machine
print << "q = " << 1099511627776 << newline;

-- On a DEC-alpha I get the following:
-- % axiomxl -q1 -fx optbug.as
-- % optbug
-- q = 1099511627776
-- 
-- % axiomxl -q2 -fx optbug.as
-- % optbug
-- q = 0
-- 
-- Looking at the generated C-code, I see for -q1:
--   T5 = fiCCall1(FiWord, l0->X10_integer, (FiWord) "1099511627776");
-- and for -q2, the print statement got inlined into:
--      fiCCall3(FiWord, T5, (FiWord) "q = ", (FiWord) 1, (FiWord) 0);
--      T11 = formatSInt(0);
-- SO THE OPTIMIZER "ATE" THE HIGH 32-BIT PART OF MY CONSTANT!



