Open64 (mfef90, whirl2f, and IR tools)  TAG: version-openad; SVN changeset: 916
whirl2f.h File Reference

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 Documentation

#define _I4MASK (   x,
  y,
 
)    IAND(I4ASHR(IEOR(x,y), 31), v)

Definition at line 58 of file whirl2f.h.

#define _I4SIGN (   y)    (2 * I4ASHR(y, 31) + 1)

Definition at line 57 of file whirl2f.h.

#define _I8MASK (   x,
  y,
 
)    IAND(I8ASHR(IEOR(x,y), 63), v)

Definition at line 60 of file whirl2f.h.

#define _I8SIGN (   y)    (2_8 * I8ASHR(y, 63) + 1_8)

Definition at line 59 of file whirl2f.h.

#define CEIL (   v)    '?????TODO(CEIL)???^#define FLOOR(v) '?????TODO(FLOOR)???^

Definition at line 87 of file whirl2f.h.

#define I4ASHR (   v1,
  v2 
)    IOR(ISHFT(IAND('80000000'X, v1), -31)*ISHFT(-1, 32-v2), ISHFT(v1, -v2))

Definition at line 46 of file whirl2f.h.

#define I8ASHR (   v1,
  v2 
)    IOR(ISHFT(IAND('8000000000000000'X, v1), -63_8)*ISHFT(-1, 64-v2), ISHFT(v1, -v2))

Definition at line 48 of file whirl2f.h.

#define INTRN_I4DIVCEIL (   v1,
  v2 
)    -I4DIVFLOOR(-(v1), v2)
#define INTRN_I4DIVFLOOR (   v1,
  v2 
)    ((v1) + _I4MASK(v1, v2, _I4SIGN(v2) - (v2))) / (v2)
#define INTRN_I4MODCEIL (   v1,
  v2 
)    (v1 - v2*I4DIVCEIL(v1, v2))

Definition at line 79 of file whirl2f.h.

#define INTRN_I4MODFLOOR (   v1,
  v2 
)    (v1 - v2*I4DIVFLOOR(v1, v2))

Definition at line 74 of file whirl2f.h.

#define INTRN_I8DIVCEIL (   v1,
  v2 
)    -I8DIVFLOOR(-(v1), v2)
#define INTRN_I8DIVFLOOR (   v1,
  v2 
)    ((v1) + _I8MASK(v1, v2, _I8SIGN(v2) - (v2))) / (v2)
#define INTRN_I8MODCEIL (   v1,
  v2 
)    (v1 - v2*I8DIVCEIL(v1, v2))

Definition at line 80 of file whirl2f.h.

#define INTRN_I8MODFLOOR (   v1,
  v2 
)    (v1 - v2*I8DIVFLOOR(v1, v2))

Definition at line 75 of file whirl2f.h.

#define INTRN_U4DIVCEIL (   v1,
  v2 
)    ((v1)+(v2)-1)/(v2)
#define INTRN_U4DIVFLOOR (   v1,
  v2 
)    I4DIVFLOOR(v1, v2)
#define INTRN_U4MODCEIL (   v1,
  v2 
)    (v1 - v2*U4DIVCEIL(v1, v2))

Definition at line 81 of file whirl2f.h.

#define INTRN_U4MODFLOOR (   v1,
  v2 
)    (v1 - v2*(v1/v2))

Definition at line 76 of file whirl2f.h.

#define INTRN_U8DIVCEIL (   v1,
  v2 
)    ((v1)+(v2)-1)/(v2)
#define INTRN_U8DIVFLOOR (   v1,
  v2 
)    I8DIVFLOOR(v1, v2)
#define INTRN_U8MODCEIL (   v1,
  v2 
)    (v1 - v2*U8DIVCEIL(v1, v2))

Definition at line 82 of file whirl2f.h.

#define INTRN_U8MODFLOOR (   v1,
  v2 
)    (v1 - v2*(v1/v2))

Definition at line 77 of file whirl2f.h.

#define U4ASHR (   v1,
  v2 
)    I4ASHR(v1, v2)

Definition at line 50 of file whirl2f.h.

#define U8ASHR (   v1,
  v2 
)    I8ASHR(v1, v2)

Definition at line 51 of file whirl2f.h.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines