[PATCH AArch64][V3]Rewrite vcond patterns using vcond_mask/vec_cmp, also support missing vect_cond_mixed patterns
James Greenhalgh
james.greenhalgh@arm.com
Mon Aug 8 10:42:00 GMT 2016
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.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.
More information about the Gcc-patches
mailing list