This series contains the simplification of a truncating cast followed by a zero-extension into the much simpler corresponding AND masking. While this simplification is already valuable in itself, its main value is probably its potential to trigger additionnal simplifications involving the masking. The series is available for review & testing in the Git repository at: git://github.com/lucvoo/sparse-dev.git bitfield-trunc It's based on the reworking of the cast instructions available at: git://github.com/lucvoo/sparse-dev.git cast-rework ---------------------------------------------------------------- Luc Van Oostenryck (6): new helper: def_opcode() cast: simplify simplify_cast() cast: merge simplification of constant casts with constant unops cast: prepare for more cast simplifications cast: keep instruction sizes consistent cast: simplify TRUNC + ZEXT to AND linearize.c | 12 +- simplify.c | 93 +++++------- validation/linear/bitfield-size.c | 174 ++++++++++++++++++++++ validation/{linear => optim}/bitfield-init-zero.c | 24 +-- validation/{ => optim}/bitfield-size.c | 4 +- 5 files changed, 240 insertions(+), 67 deletions(-) create mode 100644 validation/linear/bitfield-size.c rename validation/{linear => optim}/bitfield-init-zero.c (75%) rename validation/{ => optim}/bitfield-size.c (93%) -- 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