summaryrefslogtreecommitdiff
path: root/compiler/optimizing/nodes.h
diff options
context:
space:
mode:
author Artem Serov <artem.serov@linaro.org> 2019-07-18 14:24:55 +0100
committer Ulyana Trafimovich <skvadrik@google.com> 2020-05-04 08:19:17 +0000
commit1a719e4de83532a1dcd9ddfad2c92d4130f28ea9 (patch)
tree445026effb3298ca8e962701ee01f65785be6fe6 /compiler/optimizing/nodes.h
parente33dca6d44463606168330d2f84bc616e8c147f6 (diff)
RFC: ARM64: Split arm64 codegen into scalar and vector (SVE and NEON).
This is a first CL in the series of introducing arm64 SVE support in ART. The patch splits the codegen functionality into scalar and vector ones and for the latter introduces NEON and SVE implementations. SVE one currently is an exact copy of NEON one - for the sake of testing and an easy diff when the next CL comes with an actual SVE instructions support. The patch effectively doesn't change any behavior; NEON mode is used for vector instructions, tests pass. Test: test-art-target. Change-Id: I5f7f2c8218330998e5a733a56f42473526cd58e6
Diffstat (limited to 'compiler/optimizing/nodes.h')
-rw-r--r--compiler/optimizing/nodes.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/compiler/optimizing/nodes.h b/compiler/optimizing/nodes.h
index 342789348c..e02a393c1b 100644
--- a/compiler/optimizing/nodes.h
+++ b/compiler/optimizing/nodes.h
@@ -1387,7 +1387,7 @@ class HLoopInformationOutwardIterator : public ValueObject {
DISALLOW_COPY_AND_ASSIGN(HLoopInformationOutwardIterator);
};
-#define FOR_EACH_CONCRETE_INSTRUCTION_COMMON(M) \
+#define FOR_EACH_CONCRETE_INSTRUCTION_SCALAR_COMMON(M) \
M(Above, Condition) \
M(AboveOrEqual, Condition) \
M(Abs, UnaryOperation) \
@@ -1477,7 +1477,9 @@ class HLoopInformationOutwardIterator : public ValueObject {
M(TryBoundary, Instruction) \
M(TypeConversion, Instruction) \
M(UShr, BinaryOperation) \
- M(Xor, BinaryOperation) \
+ M(Xor, BinaryOperation)
+
+#define FOR_EACH_CONCRETE_INSTRUCTION_VECTOR_COMMON(M) \
M(VecReplicateScalar, VecUnaryOperation) \
M(VecExtractScalar, VecUnaryOperation) \
M(VecReduce, VecUnaryOperation) \
@@ -1508,6 +1510,10 @@ class HLoopInformationOutwardIterator : public ValueObject {
M(VecLoad, VecMemoryOperation) \
M(VecStore, VecMemoryOperation) \
+#define FOR_EACH_CONCRETE_INSTRUCTION_COMMON(M) \
+ FOR_EACH_CONCRETE_INSTRUCTION_SCALAR_COMMON(M) \
+ FOR_EACH_CONCRETE_INSTRUCTION_VECTOR_COMMON(M)
+
/*
* Instructions, shared across several (not all) architectures.
*/