aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/aarch64/iterators.md
diff options
context:
space:
mode:
authorBin Cheng <amker@gcc.gnu.org>2016-08-10 15:34:23 +0000
committerBin Cheng <amker@gcc.gnu.org>2016-08-10 15:34:23 +0000
commit6c553b76067729cc6e10712104746d4c3e79b9d9 (patch)
treefea2cc512e46730fc0e49431841842c1fb083910 /gcc/config/aarch64/iterators.md
parent45d569f37f13d11b6ad566dfa4c1989d7419d0df (diff)
downloadgcc-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.md10
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")