On Fri, 2025-10-24 at 16:21 +0530, Avinash Jayakar wrote:
> Hi,
> 
> I have incorporated the changes suggested in the previous version.
> For now the
> bare bones version of multiply by constant pattern recog is
> implemented in 
> tree-vect-generic.cc, which should help fixing the failing test cases
> in 119702.
> 
> But to fix PR122065, will need to implement the lowering as done in
> tree-vect-patterns.cc, which I can do in a separate patch.
> 
Hi Richard,

Currently this issue has been fixed for when the constant scenarios
such as:
vector_a = vector_b * { c1, c2...}
where c1, c2 ... are perfect power of 2 and are positive.

For a more generic case, where adds or subs along with shifts are
required, we need to do a similar thing that is done in tree-vect-
patterns.cc, where the function vect_synth_mult_by_constant uses
choose_mult_variant function to come up with which variant of algorithm
to use.

One main challenge of using that here is on how to determine the max
cost of MULT_EXPR. In patterns, MAX_INT is used because the benefit
analyzer would compare the scalar vs vector cost. In expmed.cc,
set_src_cost is used. 
But such things are not possible in tree-vect-generic.cc, so 
Is it recommended to implement the cases where constants are not power
of 2. If so, what would be the max_cost parameter for the function
choose_mult_variant?

Thanks and regards,
Avinash Jayakar

Reply via email to