dshiftl(3I)
_dshiftl, DSHIFTL - Performs a double-object left shift
As shipped in IRIX 6.5.7. Last changed in IRIX 6.5.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, UNICOS/mk Fortran: UNICOS, UNICOS/mk, IRIX systems CF90, MIPSpro 7 Fortran 90 STANDARDS C/C++ extension Fortran extension 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 circular shift occurs. The value of k must be in the range of 0 through 64 for _dshiftl. NOTES C/C++ 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 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. 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 UNICOS and UNICOS/mk systems is in the Cray C/C++ Reference Manual. Fortran Language Reference Manual, Volume 3 Intrinsic Procedures Reference Manual for the printed version of this man page.