DSHIFTR(3I) Last changed: 2-5-98
_dshiftr, DSHIFTR - Performs a double-object right shift
C/C++:
#include <intrinsics.h>
long _dshiftr (long i, long j, long k);
Fortran:
DSHIFTR ([I=]i, [J=]j, [K=]k)
C/C++: UNICOS and UNICOS/mk systems
Fortran: UNICOS, UNICOS/mk, and IRIX systems
C/C++: Cray Research extension
Fortran: CF90 and MIPSpro 7 Fortran 90 compiler extension to Fortran
90
The _dshiftr and DSHIFTR functions perform a double-object right
shift. They return a single object.
This 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 _dshiftr and DSHIFTR functions return a value generated by a right
double-shift of the rightmost k bits of i into the leftmost k bits of
j. 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 _dshiftr.
C/C++ NOTES
Because _dshiftr 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 rightmost bit is k bits from the double
object's right 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 rightmost bit is k bits from the double
object's right 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 rightmost bit is k bits from the double
object's right 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 rightmost bit is k bits from the double object's
right 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 = DSHIFTR(M, N, 5).
For more information on storage units, see the Fortran Language
Reference Manual, Volume 3, publication SR-3905.
DSHIFTR is an elemental function. The name of this intrinsic cannot
be passed as an argument.
_dshiftr returns a 64-bit integer result.
DSHIFTR 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.
The following figure shows a shift of two 64-bit quantities:
Double word shifts right by k bits -->
127 i 64 63 j 0
|___________________________|__________________________|
|--------result----------|--------k--------|
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.
DSHIFTR(3I) Last changed: 2-5-98
_dshiftr, DSHIFTR - Performs a double-object right shift
C/C++:
#include <intrinsics.h>
long _dshiftr (long i, long j, long k);
Fortran:
DSHIFTR ([I=]i, [J=]j, [K=]k)
C/C++: UNICOS and UNICOS/mk systems
Fortran: UNICOS, UNICOS/mk, and IRIX systems
C/C++: Cray Research extension
Fortran: CF90 and MIPSpro 7 Fortran 90 compiler extension to Fortran
90
The _dshiftr and DSHIFTR functions perform a double-object right
shift. They return a single object.
This 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 _dshiftr and DSHIFTR functions return a value generated by a right
double-shift of the rightmost k bits of i into the leftmost k bits of
j. 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 _dshiftr.
C/C++ NOTES
Because _dshiftr 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 rightmost bit is k bits from the double
object's right 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 rightmost bit is k bits from the double
object's right 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 rightmost bit is k bits from the double
object's right 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 rightmost bit is k bits from the double object's
right 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 = DSHIFTR(M, N, 5).
For more information on storage units, see the Fortran Language
Reference Manual, Volume 3, publication SR-3905.
DSHIFTR is an elemental function. The name of this intrinsic cannot
be passed as an argument.
_dshiftr returns a 64-bit integer result.
DSHIFTR 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.
The following figure shows a shift of two 64-bit quantities:
Double word shifts right by k bits -->
127 i 64 63 j 0
|___________________________|__________________________|
|--------result----------|--------k--------|
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.
[ Back ]
|