diff options
author | Bin Cheng <amker@gcc.gnu.org> | 2016-08-10 15:34:23 +0000 |
---|---|---|
committer | Bin Cheng <amker@gcc.gnu.org> | 2016-08-10 15:34:23 +0000 |
commit | 6c553b76067729cc6e10712104746d4c3e79b9d9 (patch) | |
tree | fea2cc512e46730fc0e49431841842c1fb083910 /gcc/config/aarch64/iterators.md | |
parent | 45d569f37f13d11b6ad566dfa4c1989d7419d0df (diff) | |
download | gcc-6c553b76067729cc6e10712104746d4c3e79b9d9.zip gcc-6c553b76067729cc6e10712104746d4c3e79b9d9.tar.gz gcc-6c553b76067729cc6e10712104746d4c3e79b9d9.tar.bz2 |
iterators.md (V_cmp_mixed, [...]): New.
* 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
* gcc.target/aarch64/simd/vcond-ne.c: New test.
From-SVN: r239328
Diffstat (limited to 'gcc/config/aarch64/iterators.md')
-rw-r--r-- | gcc/config/aarch64/iterators.md | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/config/aarch64/iterators.md b/gcc/config/aarch64/iterators.md index 187057f..52f645a 100644 --- a/gcc/config/aarch64/iterators.md +++ b/gcc/config/aarch64/iterators.md @@ -662,6 +662,16 @@ (V2DF "v2di") (DF "di") (SF "si")]) +;; Mode for vector conditional operations where the comparison has +;; different type from the lhs. +(define_mode_attr V_cmp_mixed [(V2SI "V2SF") (V4SI "V4SF") + (V2DI "V2DF") (V2SF "V2SI") + (V4SF "V4SI") (V2DF "V2DI")]) + +(define_mode_attr v_cmp_mixed [(V2SI "v2sf") (V4SI "v4sf") + (V2DI "v2df") (V2SF "v2si") + (V4SF "v4si") (V2DF "v2di")]) + ;; Lower case element modes (as used in shift immediate patterns). (define_mode_attr ve_mode [(V8QI "qi") (V16QI "qi") (V4HI "hi") (V8HI "hi") |