[llvm] r202067 - SLPVectorizer: Try vectorizing 'splat' stores
Arnold
aschwaighofer at apple.com
Tue Feb 25 07:14:26 PST 2014
Yes there were whitespace errors.
Sent from my iPhone
> On Feb 25, 2014, at 5:57 AM, Hal Finkel <hfinkel at anl.gov> wrote:
>
> ----- Original Message -----
>> From: "Arnold Schwaighofer" <aschwaighofer at apple.com>
>> To: llvm-commits at cs.uiuc.edu
>> Sent: Monday, February 24, 2014 1:52:29 PM
>> Subject: [llvm] r202067 - SLPVectorizer: Try vectorizing 'splat' stores
>>
>> Author: arnolds
>> Date: Mon Feb 24 13:52:29 2014
>> New Revision: 202067
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=202067&view=rev
>> Log:
>> SLPVectorizer: Try vectorizing 'splat' stores
>>
>> Vectorize sequential stores of a broadcasted value.
>> 5% on eon.
>>
>> radar://16124699
>>
>> Modified:
>> llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpp
>> llvm/trunk/test/Transforms/SLPVectorizer/X86/tiny-tree.ll
>>
>> Modified: llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpp?rev=202067&r1=202066&r2=202067&view=diff
>> ==============================================================================
>> --- llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpp (original)
>> +++ llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpp Mon Feb 24
>> 13:52:29 2014
>> @@ -1101,11 +1101,15 @@ bool BoUpSLP::isFullyVectorizableTinyTre
>> if (VectorizableTree.size() != 2)
>> return false;
>>
>> + // Handle splat stores.
>> + if (!VectorizableTree[0].NeedToGather &&
>> isSplat(VectorizableTree[1].Scalars))
>> + return true;
>> +
>> // Gathering cost would be too much for tiny trees.
>> - if (VectorizableTree[0].NeedToGather ||
>> VectorizableTree[1].NeedToGather)
>> - return false;
>> + if (VectorizableTree[0].NeedToGather ||
>> VectorizableTree[1].NeedToGather)
>> + return false;
>>
>> - return true;
>> + return true;
>
> What happened here? Are these whitespace changes that I can't see in my e-mail client?
>
> -Hal
>
>> }
>>
>> int BoUpSLP::getTreeCost() {
>>
>> Modified: llvm/trunk/test/Transforms/SLPVectorizer/X86/tiny-tree.ll
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/SLPVectorizer/X86/tiny-tree.ll?rev=202067&r1=202066&r2=202067&view=diff
>> ==============================================================================
>> --- llvm/trunk/test/Transforms/SLPVectorizer/X86/tiny-tree.ll
>> (original)
>> +++ llvm/trunk/test/Transforms/SLPVectorizer/X86/tiny-tree.ll Mon Feb
>> 24 13:52:29 2014
>> @@ -138,3 +138,18 @@ for.body:
>> for.end: ; preds =
>> %for.body, %entry
>> ret void
>> }
>> +
>> +
>> +; CHECK-LABEL: store_splat
>> +; CHECK: store <4 x float>
>> +define void @store_splat(float*, float) {
>> + %3 = getelementptr inbounds float* %0, i64 0
>> + store float %1, float* %3, align 4
>> + %4 = getelementptr inbounds float* %0, i64 1
>> + store float %1, float* %4, align 4
>> + %5 = getelementptr inbounds float* %0, i64 2
>> + store float %1, float* %5, align 4
>> + %6 = getelementptr inbounds float* %0, i64 3
>> + store float %1, float* %6, align 4
>> + ret void
>> +}
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
> --
> Hal Finkel
> Assistant Computational Scientist
> Leadership Computing Facility
> Argonne National Laboratory
More information about the llvm-commits
mailing list