dshiftr(3I)
_dshiftr, DSHIFTR - Performs a double-object right shift
As shipped in IRIX 6.5. First release of IRIX 6.5.
NAME _dshiftr, DSHIFTR - Performs a double-object right shift SYNOPSIS C/C++: #include <intrinsics.h> long _dshiftr (long i, long j, long k); Fortran: DSHIFTR ([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 _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. RETURN VALUES _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. EXAMPLES 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--------| 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.