testsuite: Adjust pr96789.c to exclude vect_load_lanes
Fri Nov 13 22:11:15 GMT 2020
On 11/10/20 7:42 PM, Kewen.Lin via Gcc-patches wrote:
> Hi Richard,
> Thanks for the review!
> on 2020/11/10 涓嬪崍7:31, Richard Sandiford wrote:
>> "Kewen.Lin" <email@example.com> writes:
>>> As Lyon pointed out, the newly introduced test case
>>> gcc.dg/tree-ssa/pr96789.c fails on arm-none-linux-gnueabihf.
>>> Loop vectorizer is able to vectorize the two loops which
>>> operate on array tmp with load_lanes feature support. It
>>> makes dse3 get unexpected inputs and do nothing.
>>> This patch is to teach the case to respect vect_load_lanes,
>>> meanwhile to guard the check only under vect_int.
>> I'm not sure this is the right check. The test passes on aarch64,
>> which also has load lanes, but apparently doesn't use them for this
>> test. I think the way the loop vectoriser handles the loops will
>> depend a lot on target costs, which can vary in unpredictable ways.
> You are right, although aarch64 doesn't have this failure, it can fail
> with explicit -march=armv8-a+sve. It can vary as target features/costs
> change. The check is still fragile.
> Your suggestion with -ftree-slp-vectorize below is better!
>> Does it work if you instead change -ftree-vectorize to -ftree-slp-vectorize?
>> Or does that defeat the purpose of the test?
> It works, nice, thanks for the suggestion!
> I appended one explicit -fno-tree-loop-vectorize to avoid it to fail
> in case someone kicks off the testing with explicit -ftree-loop-vectorize.
> The updated version is pasted below, is it ok for trunk?
> * gcc.dg/tree-ssa/pr96789.c: Adjusted by disabling loop vectorization.
More information about the Gcc-patches