diff options
| author | Sam Tebbs <sam.tebbs@arm.com> | 2019-08-20 16:33:34 +0000 |
|---|---|---|
| committer | Sam Tebbs <sam.tebbs@arm.com> | 2019-08-20 16:33:34 +0000 |
| commit | dcfc2d40d30f6ecbe68a731f816ce9f1bceda915 (patch) | |
| tree | 4c34b266b92c77b236ed5b39f4fb97ea6ced667b /llvm/lib/Target/ARM | |
| parent | 08bd0808720d327800c13443599a40ae92a7cee4 (diff) | |
| download | bcm5719-llvm-dcfc2d40d30f6ecbe68a731f816ce9f1bceda915.tar.gz bcm5719-llvm-dcfc2d40d30f6ecbe68a731f816ce9f1bceda915.zip | |
[ARM] Select vaddva
This patch adds vaddva selection.
Differential revision: https://reviews.llvm.org/D66410
llvm-svn: 369404
Diffstat (limited to 'llvm/lib/Target/ARM')
| -rw-r--r-- | llvm/lib/Target/ARM/ARMInstrMVE.td | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/ARMInstrMVE.td b/llvm/lib/Target/ARM/ARMInstrMVE.td index 8290ef5a48a..6e079ebe930 100644 --- a/llvm/lib/Target/ARM/ARMInstrMVE.td +++ b/llvm/lib/Target/ARM/ARMInstrMVE.td @@ -553,6 +553,13 @@ let Predicates = [HasMVEInt] in { def : Pat<(i32 (vecreduce_add (v4i32 MQPR:$src))), (i32 (MVE_VADDVu32no_acc $src))>; def : Pat<(i32 (vecreduce_add (v8i16 MQPR:$src))), (i32 (MVE_VADDVu16no_acc $src))>; def : Pat<(i32 (vecreduce_add (v16i8 MQPR:$src))), (i32 (MVE_VADDVu8no_acc $src))>; + def : Pat<(i32 (add (i32 (vecreduce_add (v4i32 MQPR:$src1))), (i32 tGPR:$src2))), + (i32 (MVE_VADDVu32acc $src2, $src1))>; + def : Pat<(i32 (add (i32 (vecreduce_add (v8i16 MQPR:$src1))), (i32 tGPR:$src2))), + (i32 (MVE_VADDVu16acc $src2, $src1))>; + def : Pat<(i32 (add (i32 (vecreduce_add (v16i8 MQPR:$src1))), (i32 tGPR:$src2))), + (i32 (MVE_VADDVu8acc $src2, $src1))>; + } class MVE_VADDLV<string iname, string suffix, dag iops, string cstr, |

