diff options
| author | Michael Kuperstein <mkuper@google.com> | 2016-06-01 17:16:46 +0000 |
|---|---|---|
| committer | Michael Kuperstein <mkuper@google.com> | 2016-06-01 17:16:46 +0000 |
| commit | 3a3c64d23e3d7be3baa93882cc2a23098a032849 (patch) | |
| tree | 9ab0686375b9e8a35d94ba9910aecbbc9bc2749a /llvm/test/Transforms/LoopVectorize/X86 | |
| parent | 2c3933f4029ee94ea9070d047293ac2fa2b1f6f0 (diff) | |
| download | bcm5719-llvm-3a3c64d23e3d7be3baa93882cc2a23098a032849.tar.gz bcm5719-llvm-3a3c64d23e3d7be3baa93882cc2a23098a032849.zip | |
[LV] For some IVs, use vector phis instead of widening in the loop body
Previously, whenever we needed a vector IV, we would create it on the fly,
by splatting the scalar IV and adding a step vector. Instead, we can create a
real vector IV. This tends to save a couple of instructions per iteration.
This only changes the behavior for the most basic case - integer primary
IVs with a constant step.
Differential Revision: http://reviews.llvm.org/D20315
llvm-svn: 271410
Diffstat (limited to 'llvm/test/Transforms/LoopVectorize/X86')
| -rw-r--r-- | llvm/test/Transforms/LoopVectorize/X86/gather_scatter.ll | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/llvm/test/Transforms/LoopVectorize/X86/gather_scatter.ll b/llvm/test/Transforms/LoopVectorize/X86/gather_scatter.ll index 2f1de54d5f9..23e363eae02 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/gather_scatter.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/gather_scatter.ll @@ -95,7 +95,7 @@ for.end: ; preds = %for.cond %struct.In = type { float, float } ;AVX512-LABEL: @foo2 -;AVX512: getelementptr %struct.In, %struct.In* %in, <16 x i64> %induction, i32 1 +;AVX512: getelementptr %struct.In, %struct.In* %in, <16 x i64> %{{.*}}, i32 1 ;AVX512: llvm.masked.gather.v16f32 ;AVX512: llvm.masked.store.v16f32 ;AVX512: ret void @@ -170,10 +170,10 @@ for.end: ; preds = %for.cond ;} ;AVX512-LABEL: @foo3 -;AVX512: getelementptr %struct.In, %struct.In* %in, <16 x i64> %induction, i32 1 +;AVX512: getelementptr %struct.In, %struct.In* %in, <16 x i64> %{{.*}}, i32 1 ;AVX512: llvm.masked.gather.v16f32 ;AVX512: fadd <16 x float> -;AVX512: getelementptr %struct.Out, %struct.Out* %out, <16 x i64> %induction, i32 1 +;AVX512: getelementptr %struct.Out, %struct.Out* %out, <16 x i64> %{{.*}}, i32 1 ;AVX512: llvm.masked.scatter.v16f32 ;AVX512: ret void |

