186.crafty Benchmark

Origin:
  SPEC INT 2000

Syntax for running:
  crafty < <input file>

The input directory (under this directory) contains sample input files.   
These files, and the approximate sizes of the resulting simulations, are 
as follows:

Input File		Number of Instructions
----------		----------------------
ref.in			 264 billion
train.in		37.9 billion
test.in			 6.0 billion
lgred.in 		 1.2 billion
mdred.in		 436 million
smred.in		 141 million	




Benchmark Author: Robert Hyatt, hyatt@cis.uab.edu 

Benchmark Program General Category: Game playing program (plays chess) 

Brief Benchmark Description
Crafty is a high-performance Computer Chess program that is designed 
around a 64bit word.  It runs on 32 bit machines using the "long long" 
(or similar, as _int64 in Microsoft C) data type.  It is primarily an 
integer code, with a significant number of logical operations such as 
and, or, exclusive or and shift.  It can be configured to run a 
reproducible set of searches to compare the integer/branch 
prediction/pipe-lining facilities of a processor.


Input Description:

The reference input solves 5 different chess board layouts, with 
varying "depths" to which it will search the tree of possible moves, 
for the next move. 


Output Description:

The output consists of the set of moves possible at 
each level of the tree of possible moves, upto the maximum depth as set 
by the input parameter. At each level, the best possible move is selected
to begin the search at the next level. 

Known portability issues: 
186.crafty is based on a 64-bit variable. On 32-bit systems, this is 
usually defined as "long long", which is an extension to ANSI C. 

The following sets of defines need to be defined or undefined for 
186.crafty, based on the nature of your system: 
LONG_HAS_64BITS      if the data type "long [int]" is represented in 64 bits,
                     either as the compiler's default option or by an
                     appropriate switch(e.g. -Klp64)   
HAS_LONGLONG         if the C compilation system supports the data type
                     "long long"(which is an extension to ANSI C) and 
                     represents data of this type with 64 bits        
LITTLE_ENDIAN_ARCH   if the machine stores bytes in "PC" order        
define UNIX          if the system is unix-based   

chess.h has ready-made combinations of defines and undefines for
several common platforms. 

