[Patch] [AArch64] Implement getMaximumUnrollFactor()

Hal Finkel hfinkel at anl.gov
Tue Apr 8 22:50:48 PDT 2014


----- Original Message -----
> From: "Jiangning Liu" <liujiangning1 at gmail.com>
> To: "Zhaoshi" <zhaoshiz at codeaurora.org>
> Cc: "llvm-commits at cs.uiuc.edu for LLVM" <llvm-commits at cs.uiuc.edu>
> Sent: Wednesday, April 9, 2014 12:30:25 AM
> Subject: Re: [Patch] [AArch64] Implement getMaximumUnrollFactor()
> 
> 
> 
> 
> Hi Zhaoshi,
> 
> 
> 
> +;CHECK-LABEL: array_add
> +;CHECK: load <4 x i32>
> +;CHECK: load <4 x i32>
> +;CHECK: load <4 x i32>
> +;CHECK: load <4 x i32>
> +;CHECK: add nsw <4 x i32>
> +;CHECK: add nsw <4 x i32>
> +;CHECK: store <4 x i32>
> +;CHECK: store <4 x i32>
> +;CHECK: ret
> 
> 
> Since we don't really have out-of-order CHECK,

Do you mean CHECK-DAG?

> this CHECK ordering
> could fail after loop unrolling in theory, right?

FWIW, I think that the form above is better because it makes it clear that you're looking for the vectorizer's interleaved unrolling (and not the concatenation unrolling from the generic unroller).

 -Hal

> Maybe simply
> checking there are only two stores like below is enough?
> 
> 
> 
> ;CHECK: store <4 x i32>
> ;CHECK: store <4 x i32>
> ;CHECK-NOT: store
> 
> 
> Thanks,
> -Jiangning
> 
> 
> 
> 
> 
> 2014-04-08 9:26 GMT+08:00 < zhaoshiz at codeaurora.org > :
> 
> 
> Hello,
> 
> This patch allows vectorized loops to be unrolled by a factor of 2 on
> AArch64. Please help review
> 
> Thanks,
> Zhaoshi
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
> 
> 
> 
> 
> 
> --
> 
> Thanks,
> -Jiangning
> _______________________________________________
> 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