The series contains several simplifications involving casts and/or bitfields which are much easier to do now with the finer grained cast instructions: TRUNC/ZEXT/SEXT. This series is available for review & testing in the Git repository at: git://github.com/lucvoo/sparse-dev.git optim-cast ---------------------------------------------------------------- Luc Van Oostenryck (16): extract nbr_users() from unssa.c add testcases for casts & bitfield insertion/extraction bitfield: extract linearize_bitfield_extract() bitfield: extract linearize_bitfield_insert() cast: simplify [SZ]EXT + TRUNC to original size cast: simplify [SZ]EXT + TRUNC to a smaller/greater size cast: fix shift signedness in cast simplification cast: do not compare sizes, test the opcode cast: use a switch to handle TRUNC(AND(x,M),N) in simplify_cast() cast: preserve the sizes of TRUNC(AND(x,M),N) cast: simplify [ZS]EXT(AND(x,M),N) cast: simplify AND(ZEXT(x,M),N) cast: simplify SEXT(SEXT(x,N),N') cast: simplify ZEXT(ZEXT(x,N),N') cast: simplify SEXT(ZEXT(x,N),N') cast: simplify ASR(ZEXT(X, N), C) linearize.c | 50 ++++++---- linearize.h | 5 + simplify.c | 128 ++++++++++++++++++++++--- unssa.c | 7 +- validation/linear/bitfield-inc.c | 17 ++++ validation/linear/bitfield-preinc.c | 18 ++++ validation/linear/bitfield-store.c | 22 +++++ validation/optim/and-extend.c | 27 ++++++ validation/optim/and-extendx.c | 24 +++++ validation/optim/and-lsr.c | 16 ++++ validation/optim/and-trunc.c | 20 ++++ validation/optim/ext-trunc-greater.c | 17 ++++ validation/optim/ext-trunc-same.c | 19 ++++ validation/optim/ext-trunc-smaller.c | 18 ++++ validation/optim/mask-lsr.c | 15 +++ validation/optim/mask-out.c | 13 +++ validation/optim/sext-sext.c | 12 +++ validation/optim/sext.c | 15 +++ validation/optim/shift-zext.c | 13 +++ validation/optim/store-load-bitfield.c | 50 ++++++++++ validation/optim/trunc-mask-zext.c | 13 +++ validation/optim/zext-and.c | 12 +++ validation/optim/zext-and1.c | 12 +++ validation/optim/zext-asr.c | 13 +++ validation/optim/zext-sext.c | 13 +++ validation/optim/zext-zext.c | 13 +++ 26 files changed, 548 insertions(+), 34 deletions(-) create mode 100644 validation/linear/bitfield-inc.c create mode 100644 validation/linear/bitfield-preinc.c create mode 100644 validation/linear/bitfield-store.c create mode 100644 validation/optim/and-extend.c create mode 100644 validation/optim/and-extendx.c create mode 100644 validation/optim/and-lsr.c create mode 100644 validation/optim/and-trunc.c create mode 100644 validation/optim/ext-trunc-greater.c create mode 100644 validation/optim/ext-trunc-same.c create mode 100644 validation/optim/ext-trunc-smaller.c create mode 100644 validation/optim/mask-lsr.c create mode 100644 validation/optim/mask-out.c create mode 100644 validation/optim/sext-sext.c create mode 100644 validation/optim/sext.c create mode 100644 validation/optim/shift-zext.c create mode 100644 validation/optim/store-load-bitfield.c create mode 100644 validation/optim/trunc-mask-zext.c create mode 100644 validation/optim/zext-and.c create mode 100644 validation/optim/zext-and1.c create mode 100644 validation/optim/zext-asr.c create mode 100644 validation/optim/zext-sext.c create mode 100644 validation/optim/zext-zext.c -- 2.18.0 -- To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html