Hi Kyrill,

> aarch64_cm<optab>di has a general register alternative, but its second
> operand only accepts a register there, while the predicate also allows a
> constant zero.  A comparison against zero therefore has no general
> register alternative and the value is moved through a vector register.
>
> Accept the zero in that alternative.  The split already builds the
> comparison with aarch64_gen_compare_reg, which handles a zero operand.

OK

Note the cm(hs|hi) pattern below incorrectly uses "aarch64_simd_reg_or_zero".
Since it does not allow zero in any alternative this should be changed to
"register_operand" (can be a separate patch).

Cheers,
Wilco

Reply via email to