Hi, Problem is related to that operand 4 (In original pattern *cond_sub_any_const) is no longer the same as operand 1, and so the pattern doesn't match the split condition. Pattern *cond_sub_any_const is being split by this patch into two separate patterns: * Pattern *cond_sub_relaxed_const now matches const_int SVE_RELAXED_GP operand. * Pattern *cond_sub_strict_const now matches const_int SVE_STRICT_GP operand. * Remove aarch64_sve_pred_dominates_p condition from both patterns. Bootstrapped and tested on aarch64-none-linux-gnu. OK for master? Cheers, Przemyslaw gcc/ChangeLog: PR target/96357 * config/aarch64/aarch64-sve.md (*cond_sub_relaxed_const): Updated and renamed from *cond_sub_any_const pattern. (*cond_sub_strict_const): New pattern. gcc/testsuite/ChangeLog: * gcc.target/aarch64/sve/pr96357.c: New test.