[PATCH] D21571: [AArch64] Avoid generating indexed vector instructions for Exynos

Evandro Menezes via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 22 13:13:55 PDT 2016


evandro added inline comments.

================
Comment at: llvm/lib/Target/AArch64/AArch64.td:96
@@ -93,1 +95,3 @@
+    "Do not generate indexed vector instructions">;
+
 def FeatureAlternateSExtLoadCVTF32Pattern : SubtargetFeature<
----------------
The ISA manual refers to such operations as "vector by element", so I'd prefer something like 's/VectorIndexing/VectorByElement/'.

================
Comment at: llvm/lib/Target/AArch64/AArch64InstrInfo.td:311
@@ -310,2 +310,3 @@
 def NotForCodeSize   : Predicate<"!ForCodeSize">;
+def VectorIndexing : Predicate<"!Subtarget->avoidVectorIndexing()">;
 
----------------
s/Indexing/ByElement/

================
Comment at: llvm/lib/Target/AArch64/AArch64Subtarget.h:82
@@ -81,2 +81,3 @@
   bool AvoidQuadLdStPairs = false;
+  bool AvoidVectorIndexing = false;
   bool UseAlternateSExtLoadCVTF32Pattern = false;
----------------
s/Indexing/ByElement/

================
Comment at: llvm/lib/Target/AArch64/AArch64Subtarget.h:189
@@ -187,2 +188,3 @@
   bool avoidQuadLdStPairs() const { return AvoidQuadLdStPairs; }
+  bool avoidVectorIndexing() const { return AvoidVectorIndexing; }
   bool useAlternateSExtLoadCVTF32Pattern() const {
----------------
s/Indexing/ByElement/

================
Comment at: llvm/test/CodeGen/AArch64/arm64-neon-2velem.ll:2
@@ -1,2 +1,3 @@
 ; RUN: llc < %s -verify-machineinstrs -mtriple=arm64-none-linux-gnu -mattr=+neon -fp-contract=fast | FileCheck %s
+; RUN: llc < %s -verify-machineinstrs -mtriple=arm64-none-linux-gnu -mattr=+neon -fp-contract=fast -mcpu=exynos-m1 | FileCheck --check-prefix=EXYNOS %s
 
----------------
Refrain from setting the CPU in tests.  Rather, use the feature that you added with "-mattr=no-vector-instruction-indexing", or rather, "-mattr=no-vector-by-element"


http://reviews.llvm.org/D21571





More information about the llvm-commits mailing list