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] | |
Hi, This is the 3rd version patch implementing vcond patterns on AArch64. It rewrites vcond patterns using newly introduced vcond_mask and vec_cmp patterns in previous patch. It also adds missing vect_cond_mixed patterns for AArch64. Note we rely on RTL combiner to optimize "mask = !x; res = mask ? T : F" into "res = x ? F : T", thus an additional inversion instruction can be saved. The patch includes a test for this purpose. Bootstrap and test along with previous one on AArch64, is it OK? Thanks, bin 2016-07-28 Alan Lawrence <alan.lawrence@arm.com> Renlin Li <renlin.li@arm.com> Bin Cheng <bin.cheng@arm.com> * config/aarch64/iterators.md (V_cmp_mixed, v_cmp_mixed): New. * config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): Call gen_vcondv2div2di instead of gen_aarch64_vcond_internalv2div2di. (aarch64_vcond_internal<mode><mode>): Delete pattern. (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): Ditto. (vcond<v_cmp_result><mode>): Ditto. (vcond<mode><mode>): Re-implement using vec_cmp and vcond_mask. (vcondu<mode><mode>): Ditto. (vcond<v_cmp_mixed><mode>): New pattern. (vcondu<mode><v_cmp_mixed>): New pattern. (aarch64_cmtst<mode>): Revise comment using aarch64_vcond instead of aarch64_vcond_internal. gcc/testsuite/ChangeLog 2016-07-28 Bin Cheng <bin.cheng@arm.com> * gcc.target/aarch64/simd/vcond-ne.c: New test.
Attachment:
aarch64-vcond-20160703.txt
Description: aarch64-vcond-20160703.txt
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |