[Bug target/83008] [performance] Is it better to avoid extra instructions in data passing between loops?
sergey.shalnov at intel dot com
gcc-bugzilla@gcc.gnu.org
Wed Jan 17 15:24:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83008
--- Comment #28 from sergey.shalnov at intel dot com ---
Richard,
Thank you for your comments.
I see that TYPE_VECTOR_SUBPARTS is constant for for the test case but
multiple_p (group_size, const_nunits) returns 1 in the code:
if (TYPE_VECTOR_SUBPARTS (vectype).is_constant (&const_nunits)
&& ! multiple_p (group_size, const_nunits))
{
num_vects_to_check = ncopies_for_cost * const_nunits /
group_size;
nelt_limit = const_nunits;
}
else
{
num_vects_to_check = 1;
nelt_limit = group_size;
}
This is because group_size = 16 and const_nunits = 8 in the test case with
-march=skylake-avx512.
And control flow goes to "num_vects_to_check = 1".
Anyway, the ncopies_for_cost = 2 and equation " ncopies_for_cost * const_nunits
/ group_size " will be 1.
Do you think we have any possibility to make a conditional clause to make
num_vects_to_check = 2?
Sergey
More information about the Gcc-bugs
mailing list