Hi, On 13/06/2019 18:26, Wilco Dijkstra wrote: > Wouldn't it be easier to just do exact_log2 (real_to_integer (&r0)) > and then check the range is in 1..31? I've revised this section. > --- a/gcc/config/aarch64/aarch64.md > +++ b/gcc/config/aarch64/aarch64.md > @@ -6016,6 +6016,40 @@ > [(set_attr "type" "f_cvtf2i")] > ) > > +(define_insn "*aarch64_cvtf__2_mult" > + [(set (match_operand:GPF 0 "register_operand" "=w,w") > + (mult:GPF (FLOATUORS:GPF > + (match_operand: 1 "register_operand" "w,?r")) > + (match_operand 2 "aarch64_fp_pow2_recip""Dt,Dt")))] > > We should add a comment before both define_insn similar to the other > conversions, explaining what they do and why there are 2 separate patterns > (the default versions of the conversions appear to be missing a comment too). I've added comments to the new and existing patterns