We already track and use known 0's; do the same for 1's. This actually simplifies some of the logical operations, where before required checking for a constant value.
r~ Richard Henderson (20): tcg/optimize: Introduce arg_const_val tcg/optimize: Add one's mask to TempOptInfo tcg/optimize: Build and use o_bits in fold_and tcg/optimize: Build and use o_bits in fold_andc tcg/optimize: Build and use z_bits and o_bits in fold_eqv tcg/optimize: Build and use z_bits and o_bits in fold_nand tcg/optimize: Build and use z_bits and o_bits in fold_nor tcg/optimize: Build and use z_bits and o_bits in fold_not tcg/optimize: Build and use one and affected bits in fold_or tcg/optimize: Build and use zero, one and affected bits in fold_orc tcg/optimize: Build and use o_bits in fold_xor tcg/optimize: Build and use o_bits in fold_bswap tcg/optimize: Build and use o_bits in fold_deposit tcg/optimize: Build and use o_bits in fold_extract tcg/optimize: Build and use z_bits and o_bits in fold_extract2 tcg/optimize: Build and use o_bits in fold_exts tcg/optimize: Build and use o_bits in fold_extu tcg/optimize: Build and use o_bits in fold_movcond tcg/optimize: Build and use o_bits in fold_sextract tcg/optimize: Build and use o_bits in fold_shift tcg/optimize.c | 359 +++++++++++++++++++++++++++++++------------------ 1 file changed, 226 insertions(+), 133 deletions(-) -- 2.43.0