Thanks for the help. <br>Vector parameters were flattened due to absence of vector register class. I was working with Pseudo vector registers, meant for lowering calls args and returns only. The target does not support vector registers. So the approach of using Pseudo vector register seemed to complicate the lowering!<br>

<br>Are there any other ways of handling vectors from FE, if the target does not support vector registers? Has anyone considered converting the vectors to arrays rather than flattening? May be, do a llvm pass which converts all the llvm IR vectors to llvm IR arrays. <br>

<br><br><div class="gmail_quote">On Thu, Sep 6, 2012 at 10:48 AM, Krzysztof Parzyszek <span dir="ltr"><<a href="mailto:kparzysz@codeaurora.org" target="_blank">kparzysz@codeaurora.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div class="im">On 9/5/2012 5:02 PM, Khaled Mohammed wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
How about vector parameters?<br>
<br>
define internal fastcc <4 x float> @add(<4 x float> %a.val, <4 x float><br>
%b.val) nounwind {<br>
entry:<br>
   %tmp4 = fadd <4 x float> %a.val, %b.val<br>
   ret <4 x float> %tmp4<br>
}<br>
</blockquote>
<br></div>
That I don't know, but I'd look around TargetCallingConv.td, CallingConvLower.h, etc.<div class="HOEnZb"><div class="h5"><br>
<br>
-K<br>
<br>
-- <br>
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation<br>
</div></div></blockquote></div><br>