Open64 (mfef90, whirl2f, and IR tools)
TAG: version-openad; SVN changeset: 916
|
Go to the source code of this file.
Defines | |
#define | I4ASHR(v1, v2) IOR(ISHFT(IAND('80000000'X, v1), -31)*ISHFT(-1, 32-v2), ISHFT(v1, -v2)) |
#define | I8ASHR(v1, v2) IOR(ISHFT(IAND('8000000000000000'X, v1), -63_8)*ISHFT(-1, 64-v2), ISHFT(v1, -v2)) |
#define | U4ASHR(v1, v2) I4ASHR(v1, v2) |
#define | U8ASHR(v1, v2) I8ASHR(v1, v2) |
#define | _I4SIGN(y) (2 * I4ASHR(y, 31) + 1) |
#define | _I4MASK(x, y, v) IAND(I4ASHR(IEOR(x,y), 31), v) |
#define | _I8SIGN(y) (2_8 * I8ASHR(y, 63) + 1_8) |
#define | _I8MASK(x, y, v) IAND(I8ASHR(IEOR(x,y), 63), v) |
#define | INTRN_I4DIVFLOOR(v1, v2) ((v1) + _I4MASK(v1, v2, _I4SIGN(v2) - (v2))) / (v2) |
#define | INTRN_I8DIVFLOOR(v1, v2) ((v1) + _I8MASK(v1, v2, _I8SIGN(v2) - (v2))) / (v2) |
#define | INTRN_U4DIVFLOOR(v1, v2) I4DIVFLOOR(v1, v2) |
#define | INTRN_U8DIVFLOOR(v1, v2) I8DIVFLOOR(v1, v2) |
#define | INTRN_I4DIVCEIL(v1, v2) -I4DIVFLOOR(-(v1), v2) |
#define | INTRN_I8DIVCEIL(v1, v2) -I8DIVFLOOR(-(v1), v2) |
#define | INTRN_U4DIVCEIL(v1, v2) ((v1)+(v2)-1)/(v2) |
#define | INTRN_U8DIVCEIL(v1, v2) ((v1)+(v2)-1)/(v2) |
#define | INTRN_I4MODFLOOR(v1, v2) (v1 - v2*I4DIVFLOOR(v1, v2)) |
#define | INTRN_I8MODFLOOR(v1, v2) (v1 - v2*I8DIVFLOOR(v1, v2)) |
#define | INTRN_U4MODFLOOR(v1, v2) (v1 - v2*(v1/v2)) |
#define | INTRN_U8MODFLOOR(v1, v2) (v1 - v2*(v1/v2)) |
#define | INTRN_I4MODCEIL(v1, v2) (v1 - v2*I4DIVCEIL(v1, v2)) |
#define | INTRN_I8MODCEIL(v1, v2) (v1 - v2*I8DIVCEIL(v1, v2)) |
#define | INTRN_U4MODCEIL(v1, v2) (v1 - v2*U4DIVCEIL(v1, v2)) |
#define | INTRN_U8MODCEIL(v1, v2) (v1 - v2*U8DIVCEIL(v1, v2)) |
#define | CEIL(v) '?????TODO(CEIL)???^#define FLOOR(v) '?????TODO(FLOOR)???^ |
#define I4ASHR | ( | v1, | |
v2 | |||
) | IOR(ISHFT(IAND('80000000'X, v1), -31)*ISHFT(-1, 32-v2), ISHFT(v1, -v2)) |
#define I8ASHR | ( | v1, | |
v2 | |||
) | IOR(ISHFT(IAND('8000000000000000'X, v1), -63_8)*ISHFT(-1, 64-v2), ISHFT(v1, -v2)) |
#define INTRN_I4DIVCEIL | ( | v1, | |
v2 | |||
) | -I4DIVFLOOR(-(v1), v2) |
Definition at line 69 of file whirl2f.h.
Referenced by Targ_IntrinsicOp(), WN2F_Get_Divceil_Intr(), WN2F_Translate_DoLoop_Bound(), and WN_Solve_For().
#define INTRN_I4DIVFLOOR | ( | v1, | |
v2 | |||
) | ((v1) + _I4MASK(v1, v2, _I4SIGN(v2) - (v2))) / (v2) |
Definition at line 62 of file whirl2f.h.
Referenced by Targ_IntrinsicOp(), WN2F_Get_Divfloor_Intr(), WN2F_Translate_DoLoop_Bound(), and WN_Solve_For().
#define INTRN_I4MODCEIL | ( | v1, | |
v2 | |||
) | (v1 - v2*I4DIVCEIL(v1, v2)) |
#define INTRN_I4MODFLOOR | ( | v1, | |
v2 | |||
) | (v1 - v2*I4DIVFLOOR(v1, v2)) |
#define INTRN_I8DIVCEIL | ( | v1, | |
v2 | |||
) | -I8DIVFLOOR(-(v1), v2) |
Definition at line 70 of file whirl2f.h.
Referenced by Targ_IntrinsicOp(), WN2F_Get_Divceil_Intr(), WN2F_Translate_DoLoop_Bound(), and WN_Solve_For().
#define INTRN_I8DIVFLOOR | ( | v1, | |
v2 | |||
) | ((v1) + _I8MASK(v1, v2, _I8SIGN(v2) - (v2))) / (v2) |
Definition at line 64 of file whirl2f.h.
Referenced by Targ_IntrinsicOp(), WN2F_Get_Divfloor_Intr(), WN2F_Translate_DoLoop_Bound(), and WN_Solve_For().
#define INTRN_I8MODCEIL | ( | v1, | |
v2 | |||
) | (v1 - v2*I8DIVCEIL(v1, v2)) |
#define INTRN_I8MODFLOOR | ( | v1, | |
v2 | |||
) | (v1 - v2*I8DIVFLOOR(v1, v2)) |
#define INTRN_U4DIVCEIL | ( | v1, | |
v2 | |||
) | ((v1)+(v2)-1)/(v2) |
Definition at line 71 of file whirl2f.h.
Referenced by Targ_IntrinsicOp(), WN2F_Get_Divceil_Intr(), WN2F_Translate_DoLoop_Bound(), and WN_Solve_For().
#define INTRN_U4DIVFLOOR | ( | v1, | |
v2 | |||
) | I4DIVFLOOR(v1, v2) |
Definition at line 66 of file whirl2f.h.
Referenced by Targ_IntrinsicOp(), WN2F_Get_Divfloor_Intr(), WN2F_Translate_DoLoop_Bound(), and WN_Solve_For().
#define INTRN_U4MODCEIL | ( | v1, | |
v2 | |||
) | (v1 - v2*U4DIVCEIL(v1, v2)) |
#define INTRN_U4MODFLOOR | ( | v1, | |
v2 | |||
) | (v1 - v2*(v1/v2)) |
#define INTRN_U8DIVCEIL | ( | v1, | |
v2 | |||
) | ((v1)+(v2)-1)/(v2) |
Definition at line 72 of file whirl2f.h.
Referenced by Targ_IntrinsicOp(), WN2F_Get_Divceil_Intr(), WN2F_Translate_DoLoop_Bound(), and WN_Solve_For().
#define INTRN_U8DIVFLOOR | ( | v1, | |
v2 | |||
) | I8DIVFLOOR(v1, v2) |
Definition at line 67 of file whirl2f.h.
Referenced by Targ_IntrinsicOp(), WN2F_Get_Divfloor_Intr(), WN2F_Translate_DoLoop_Bound(), and WN_Solve_For().
#define INTRN_U8MODCEIL | ( | v1, | |
v2 | |||
) | (v1 - v2*U8DIVCEIL(v1, v2)) |
#define INTRN_U8MODFLOOR | ( | v1, | |
v2 | |||
) | (v1 - v2*(v1/v2)) |