Hi all, Shift operations with an immediate can generate a 16-bit encoding when the immediate is 5-bit wide, i.e. in the range [0-31]. Therefore we can use them in IT blocks even with the -mrestrict-it rules.
I decided to reuse the "N" constraint with a slight modification by removing the !TARGET_32BIT condition from it. The "N" constraint is only used in a few patterns that are predicated by TARGET_THUMB1 anyway, so there's no reason for the constraint to check for that as well. Tested arm-none-eabi on model and bootstrapped on Chromebook. Ok for trunk? Thanks, Kyrill 2013-09-09 Kyrylo Tkachov <kyrylo.tkac...@arm.com> * config/arm/arm.md (arm_shiftsi3): New alternative l/l/N. * config/arm/constraints.md ("N"): Remove !TARGET_32BIT condition. 2013-09-09 Kyrylo Tkachov <kyrylo.tkac...@arm.com> * gcc.target/arm/thumb-ifcvt-2.c: New test.
cond-shifts.patch
Description: Binary data