[PATCH] Loop Vectorizer doesn't use %zmm registers on targets supporting AVX512.

Nadav Rotem nrotem at apple.com
Mon Mar 24 08:53:45 PDT 2014


On Mar 24, 2014, at 1:07 AM, Demikhovsky, Elena <elena.demikhovsky at intel.com> wrote:

> I've added most of AVX-512 instructions to LLVM. The set is full enough to enable vectorization.
> Zinovy works on vectorizer now.

Excellent, thank you ;) 

> 
> -  Elena
> 
> 
> -----Original Message-----
> From: Nadav Rotem [mailto:nrotem at apple.com] 
> Sent: Monday, March 17, 2014 07:21
> To: zinovy.nis at gmail.com
> Cc: reviews+D3078+public+24d708f76caeed7c at llvm-reviews.chandlerc.com; Demikhovsky, Elena; rob.khasanov at gmail.com; avolkov.intel at gmail.com; llvm-commits at cs.uiuc.edu; Andrea_DiBiagio at sn.scee.net; aschwaighofer at apple.com
> Subject: Re: [PATCH] Loop Vectorizer doesn't use %zmm registers on targets supporting AVX512.
> 
> Elena, is the AVX512 support in LLVM mature enough to enable vectorization by default ?
> 
> On Mar 16, 2014, at 3:37 AM, zinovy.nis at gmail.com wrote:
> 
>> I have no real avx512 architecture at hands.
>> But I believe that using wider vectors is better than using shorter ones in this case.
>> BTW, the KNL cost model in LLVM was taken from the Haswell cost model (see TODOs in x86.td), so it can't be very accurate for KNL.
>> 
>> -----Исходное сообщение----- From: Arnold Schwaighofer
>> Sent: Friday, March 14, 2014 8:08 PM
>> To: elena.demikhovsky at intel.com ; rob.khasanov at gmail.com ; avolkov.intel at gmail.com ; nrotem at apple.com ; zinovy.nis at gmail.com
>> Cc: llvm-commits at cs.uiuc.edu ; Andrea_DiBiagio at sn.scee.net ; aschwaighofer at apple.com
>> Subject: Re: [PATCH] Loop Vectorizer doesn't use %zmm registers on targets supporting AVX512.
>> 
>> 
>> Curious, did you test whether the cost model works reasonably well across the test-suite with this turned on? Are there any/many major regressions with this patch applied vs without on an avx512 architecture?
>> 
>> 
>> Thanks,
>> Arnold
>> 
>> 
>> ================
>> Comment at: test/CodeGen/X86/avx512-vectorizer.ll:8
>> @@ +7,3 @@
>> +
>> +define void @foo(float* noalias nocapture readonly %a, float* noalias nocapture readonly %b, float* noalias nocapture %c, i32 %n) #0 {
>> +entry:
>> ----------------
>> You could remove the no capture and readonly attributes. They are not needed for this test case.
>> 
>> I am also surprised that llvm accepts dangling function attributes ("#0”) but it does :).
>> 
>> 
>> http://llvm-reviews.chandlerc.com/D3078 
> 
> ---------------------------------------------------------------------
> Intel Israel (74) Limited
> 
> This e-mail and any attachments may contain confidential material for
> the sole use of the intended recipient(s). Any review or distribution
> by others is strictly prohibited. If you are not the intended
> recipient, please contact the sender and delete all copies.





More information about the llvm-commits mailing list