FS_OPT_MUX_TO_MIN, /**< Mux(a < b, a, b) = Min(a,b) */
FS_OPT_MUX_TO_MAX, /**< Mux(a > b, a, b) = Max(a,b) */
FS_OPT_MUX_TO_ABS, /**< Mux(a > 0, a, -a) = Abs(a) */
+ FS_OPT_MUX_TO_BITOP, /**< Mux((a & 2^x) ==/!= 0, 2^x, 0) = (a & 2^x) (xor 2^x) */
FS_OPT_IDEM_UNARY, /**< Idempotent unary operation */
FS_OPT_MINUS_NOT, /**< -(~x) = x + 1 */
FS_OPT_NOT_MINUS_1, /**< ~(x - 1) = -x */
FS_OPT_COMBO_CF, /**< Combo: removed conditional control flow */
FS_OPT_COMBO_FOLLOWER, /**< Combo: replaced a follower */
FS_OPT_COMBO_CONGRUENT, /**< Combo: replaced by congruent */
+ FS_OPT_COND_EVAL, /**< Conditional evaluation: removed conditional control flow */
FS_OPT_RTS_ABS, /**< RTS optimization: call to abs() replaced */
FS_OPT_RTS_ALLOCA, /**< RTS optimization: call to alloca() replaced */
FS_OPT_RTS_SQRT, /**< RTS optimization: call to sqrt() replaced */
FS_OPT_RTS_SYMMETRIC, /**< RTS optimization: call to symmetric function f(-x) replaced by f(x) */
FS_OPT_RTS_STRCMP, /**< RTS optimization: call to strcmp() replaced */
FS_OPT_RTS_STRNCMP, /**< RTS optimization: call to strncmp() replaced */
+ FS_OPT_RTS_STRCPY, /**< RTS optimization: call to strcpy() replaced */
+ FS_OPT_RTS_STRLEN, /**< RTS optimization: call to strlen() replaced */
FS_OPT_RTS_MEMCPY, /**< RTS optimization: call to memcpy() replaced */
+ FS_OPT_RTS_MEMPCPY, /**< RTS optimization: call to mempcpy() replaced */
+ FS_OPT_RTS_MEMMOVE, /**< RTS optimization: call to memmove() replaced */
FS_OPT_RTS_MEMSET, /**< RTS optimization: call to memset() replaced */
- FS_OPT_RTS_STRLEN, /**< RTS optimization: call to strlen() replaced */
+ FS_OPT_RTS_MEMCMP, /**< RTS optimization: call to memcmp() replaced */
FS_BE_IA32_LEA, /**< Lea was created */
FS_BE_IA32_LOAD_LEA, /**< Load merged with a Lea */
FS_BE_IA32_STORE_LEA, /**< Store merged with a Lea */