On Mon, Aug 01, 2016 at 01:19:54PM +0000, Bin Cheng wrote: > 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?
OK. Thanks, James > 2016-07-28 Alan Lawrence <alan.lawre...@arm.com> > Renlin Li <renlin...@arm.com> > Bin Cheng <bin.ch...@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.ch...@arm.com> > > * gcc.target/aarch64/simd/vcond-ne.c: New test.