[AArch64] Turn on by default interleaved access vectorization
authorSilviu Baranga <silviu.baranga@arm.com>
Tue, 1 Sep 2015 11:26:46 +0000 (11:26 +0000)
committerSilviu Baranga <silviu.baranga@arm.com>
Tue, 1 Sep 2015 11:26:46 +0000 (11:26 +0000)
Summary:
This change turns on by default interleaved access vectorization
for AArch64.

We also clean up some tests which were spedifically enabling this
behaviour.

Reviewers: rengolin

Subscribers: aemerson, llvm-commits, rengolin

Differential Revision: http://reviews.llvm.org/D12149

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@246542 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/AArch64/AArch64TargetTransformInfo.h
test/Transforms/LoopVectorize/AArch64/arbitrary-induction-step.ll
test/Transforms/LoopVectorize/AArch64/interleaved_cost.ll

index e335c1b1c70bc51744b12b2b648307e112c6b62b..ed67ff897e79549573dd0e18a391944bc91b39ec 100644 (file)
@@ -75,6 +75,8 @@ public:
   /// \name Vector TTI Implementations
   /// @{
 
   /// \name Vector TTI Implementations
   /// @{
 
+  bool enableInterleavedAccessVectorization() { return true; }
+
   unsigned getNumberOfRegisters(bool Vector) {
     if (Vector) {
       if (ST->hasNEON())
   unsigned getNumberOfRegisters(bool Vector) {
     if (Vector) {
       if (ST->hasNEON())
index f16ee4171da92d193cf32dbf69a66e118ccae649..58315a73ec138b65de981c9f0375de8abb5c10d0 100644 (file)
@@ -1,5 +1,5 @@
-; RUN: opt -S < %s -loop-vectorize -force-vector-interleave=2 -force-vector-width=4 -enable-interleaved-mem-accesses=true | FileCheck %s
-; RUN: opt -S < %s -loop-vectorize -force-vector-interleave=1 -force-vector-width=2 -enable-interleaved-mem-accesses=true | FileCheck %s --check-prefix=FORCE-VEC
+; RUN: opt -S < %s -loop-vectorize -force-vector-interleave=2 -force-vector-width=4 | FileCheck %s
+; RUN: opt -S < %s -loop-vectorize -force-vector-interleave=1 -force-vector-width=2 | FileCheck %s --check-prefix=FORCE-VEC
 
 target datalayout = "e-m:e-i64:64-i128:128-n32:64-S128"
 target triple = "aarch64--linux-gnueabi"
 
 target datalayout = "e-m:e-i64:64-i128:128-n32:64-S128"
 target triple = "aarch64--linux-gnueabi"
index fe61ef794a4f8f6bde958e509cbdf960542866ce..a0e741a3cdbe8c51dc479378d4d19e7fd48ae659 100644 (file)
@@ -1,4 +1,4 @@
-; RUN: opt -S -debug-only=loop-vectorize -loop-vectorize -instcombine -enable-interleaved-mem-accesses=true  < %s 2>&1 | FileCheck %s
+; RUN: opt -S -debug-only=loop-vectorize -loop-vectorize -instcombine < %s 2>&1 | FileCheck %s
 ; REQUIRES: asserts
 
 target datalayout = "e-m:e-i64:64-i128:128-n32:64-S128"
 ; REQUIRES: asserts
 
 target datalayout = "e-m:e-i64:64-i128:128-n32:64-S128"