[llvm-dev] One element vectors versus scalars

Hal Finkel via llvm-dev llvm-dev at lists.llvm.org
Tue Nov 10 04:34:01 PST 2015


----- Original Message -----
> From: "Martin J. O'Riordan via llvm-dev" <llvm-dev at lists.llvm.org>
> To: "LLVM Developers" <llvm-dev at lists.llvm.org>
> Sent: Tuesday, November 10, 2015 6:00:27 AM
> Subject: [llvm-dev] One element vectors versus scalars
> 
> I am curious as to why LLVM has explicit support for 1 element
> vectors, for example ‘ v1i32 ’. Are there some contexts where
> handling a value as a 1 element vector can yield better code quality
> than the corresponding scalar ‘ i32 ’?
> 

Hi Martin,

No, but I see two reasons we support 1-element vectors:

 1. Having 1-element vectors makes a lot of the SDAG legalization code simpler, allowing us to separate the code that splits vector types from the code that transforms 1-element vectors into scalars.

 2. On some platforms, there are ABI differences between the two types. (e.g. i128 and <1 x i128> are passed in different registers across function-call boundaries).

 -Hal

> 
> 
> Thanks,
> 
> 
> 
> MartinO
> 
> 
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
> 

-- 
Hal Finkel
Assistant Computational Scientist
Leadership Computing Facility
Argonne National Laboratory


More information about the llvm-dev mailing list