I think it is simply because combine.c doesn't have any code to simplify this kind of expression.
In theory it should have...
No, combine.c calls simplify-rtx.c before attempting its own share of simplifications.However, if you add these simplifications to simplify-rtx.c, it will be picked up by combine.There is a lot of simplification code in combine.c too. Should I try to add these simplifications to both combine.c and simplify-rtx.c?
Paolo