This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Patch, AArch64, Testsuite] Check for expected MOVI vectorization.


Hi,

This change:

+2014-12-05 Martin Jambor mjambor@suse.cz
+

    PR ipa/64192
        ipa-prop.c (ipa_compute_jump_functions_for_edge): Convert alignment
    from bits to bytes after checking they are byte-aligned.
    +

causes this regression on AArch64.

FAIL: gcc.target/aarch64/vect-movi.c scan-assembler movi\\tv[0-9]+.4s, 0xab, msl 16 FAIL: gcc.target/aarch64/vect-movi.c scan-assembler movi\\tv[0-9]+.4s, 0xab, msl 8 FAIL: gcc.target/aarch64/vect-movi.c scan-assembler mvni\\tv[0-9]+.4s, 0xab, msl 16 FAIL: gcc.target/aarch64/vect-movi.c scan-assembler mvni\\tv[0-9]+.4s, 0xab, msl 8

It causes AArch64 vector cost model to vectorize the loops in the test case with a VF = 2 on A53/default and VF = 4 for A57.

A53/default:
movi v0.2s, 0xab, msl 8
str d0, [x0]
str d0, [x0, 8]
str d0, [x0, 16]
str d0, [x0, 24]
str d0, [x0, 32]
str d0, [x0, 40]
str d0, [x0, 48]
str d0, [x0, 56]

vs. A57

    movi v0.4s, 0xab, msl 8
    str q0, [x0]
    str q0, [x0, 16]
    str q0, [x0, 32]
    str q0, [x0, 48]


But the test case isn't checking for a per-core optimized code, just whether we vectorize for MOVI or not. So, this patch improves reg exp to make sure the compiler vectorizes the code for either vectorization factor.

OK for trunk?

Thanks,
Tejas.

Changelog:

gcc/testsuite:

	* gcc.target/aarch64/vect-movi.c: Check for vectorization for
	64-bit and 128-bit.

Attachment: movi.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]