dshiftl(3I)

_dshiftl, DSHIFTL - Performs a double-object left shift

As shipped in IRIX 6.5. First release of IRIX 6.5.

NAME
     _dshiftl, DSHIFTL - Performs a double-object left shift

SYNOPSIS
     C/C++:

     #include <intrinsics.h>
     long _dshiftl (long i, long j, long k);

     Fortran:

     DSHIFTL ([I=]i, [J=]j, [K=]k)

IMPLEMENTATION
     C/C++:  UNICOS and UNICOS/mk systems

     Fortran:  UNICOS, UNICOS/mk, and IRIX systems

STANDARDS
     C/C++:  Cray Research extension

     Fortran:  CF90 and MIPSpro 7 Fortran 90 compiler extension to Fortran
     90

DESCRIPTION
     The _dshiftl and DSHIFTL functions perform a double-object left shift.
     They return a single object.

     The result is derived from two arguments, i and j.  The arguments are
     as follows:

     i    The upper bits of the double object.  Must be of type integer.

     j    The lower bits of the double object.  Must be of the same type
          and size as i.

     k    The number of bits to be shifted.  Must be of type integer.

     The _dshiftl and DSHIFTL functions return a value generated by a left
     double-shift of the leftmost k bits of j into the rightmost k bits of
     i.  If both the i and j arguments specify the same word in memory, a
     rotated shift occurs.  The value of k must be in the range of 0
     through 64 for _dshiftl.

C/C++ NOTES
     Because _dshiftl is an intrinsic function, no externally visible
     library function is available for it.  The compiler generates inline
     code to produce the result.

FORTRAN NOTES
     On UNICOS systems, i and j are 64-bit objects.  On UNICOS/mk systems,
     i and j can be 32- or 64-bit objects.  On IRIX systems, i and j can be
     8-, 16-, 32-, or 64-bit objects.

     When shifting 64-bit quantities, i makes up bits 64 through 127 of the
     double object.  The function result is the 64-bit string beginning
     with bit 64-k; that is, its leftmost bit is k bits from the double
     object's left end.  The value of k must be 0 <= k <= 64.

     When shifting 32-bit quantities, i makes up bits 32 through 63 of the
     double object.  The function result is the 32-bit string beginning
     with bit 32-k; that is, its leftmost bit is k bits from the double
     object's left end.  The value of k must be 0 <= k <= 32.

     When shifting 16-bit quantities, i makes up bits 16 through 31 of the
     double object.  The function result is the 16-bit string beginning
     with bit 16-k; that is, its leftmost bit is k bits from the double
     object's left end.  The value of k must be 0 <= k <= 16.

     When shifting 8-bit quantities, i makes up bits 8 through 15 of the
     double object.  The function result is the 8-bit string beginning with
     bit 8-k; that is, its leftmost bit is k bits from the double object's
     left end.  The value of k must be 0 <= k <= 8.

     Arguments are not altered in their original storage unless the result
     represents the same address as either i or j, as in the Fortran
     assignment M = DSHIFTL(M, N, 5).

     For more information on storage units, see the Fortran Language
     Reference Manual, Volume 3, publication SR-3905.

     DSHIFTL is an elemental function.  The name of this intrinsic cannot
     be passed as an argument.

RETURN VALUES
     _dshiftl returns a 64-bit integer result.

     DSHIFTL returns a typeless result on UNICOS and UNICOS/mk systems and
     an integer result on IRIX systems.  The size of the result is the size
     of the arguments i and j.

EXAMPLES
     Fortran: The following figure shows a shift of two 64-bit quantities:

          |<-- Double quantity shifts left by k bits

           127        i              64 63        j               0
          |___________________________|___________________________|
          |-----k-----|----------result-----------|

SEE ALSO
     A complete list of C/C++ intrinsic functions available on Cray
     Research systems is in the Cray C/C++ Reference Manual, publication
     SR-2179.

     Fortran Language Reference Manual, Volume 3, publication SR-3905

     Intrinsic Procedures Reference Manual, publication SR-2138, for the
     printed version of this man page.