Signed-off-by: Kirill Batuzov <batuz...@ispras.ru>
---
 target-arm/translate.c |   12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/target-arm/translate.c b/target-arm/translate.c
index 22855d8..00ea5cf 100644
--- a/target-arm/translate.c
+++ b/target-arm/translate.c
@@ -5239,6 +5239,18 @@ static int disas_neon_data_insn(CPUARMState * env, 
DisasContext *s, uint32_t ins
             return 1;
         }
 
+        /* Use vector ops to handle what we can */
+        switch (op) {
+            case NEON_3R_VADD_VSUB:
+                if (!u && size == 2) {
+                    tcg_gen_add_i32x4(cpu_Q[rd >> 1], cpu_Q[rn >> 1], cpu_Q[rm 
>> 1]);
+                    return 0;
+                }
+                break;
+            default:
+                break;
+        }
+
         for (pass = 0; pass < (q ? 4 : 2); pass++) {
 
         if (pairwise) {
-- 
1.7.10.4


Reply via email to