<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:st1="urn:schemas-microsoft-com:office:smarttags" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><o:SmartTagType
 namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="PersonName"/>
<!--[if !mso]>
<style>
st1\:*{behavior:url(#default#ieooui) }
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:blue;
        text-decoration:underline;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:Arial;
        color:navy;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
        {page:Section1;}
-->
</style>

</head>

<body lang=EN-US link=blue vlink=blue style='word-wrap: break-word;-khtml-nbsp-mode: space;
-khtml-line-break: after-white-space'>

<div class=Section1>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Switching to the undef value got my
experiment working.  I’ll be updating to the SVN trunk next week
before I begin making much wider use of the vector code.  I’ll be
sure to email if I still see the problem with the version which used the alloca
instead of the undef.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Thanks for the help Evan!<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>

<div>

<div class=MsoNormal align=center style='text-align:center'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'>

<hr size=2 width="100%" align=center tabindex=-1>

</span></font></div>

<p class=MsoNormal><b><font size=2 face=Tahoma><span style='font-size:10.0pt;
font-family:Tahoma;font-weight:bold'>From:</span></font></b><font size=2
face=Tahoma><span style='font-size:10.0pt;font-family:Tahoma'>
llvmdev-bounces@cs.uiuc.edu [mailto:llvmdev-bounces@cs.uiuc.edu] <b><span
style='font-weight:bold'>On Behalf Of </span></b>Evan Cheng<br>
<b><span style='font-weight:bold'>Sent:</span></b> Friday, July 20, 2007 2:11
PM<br>
<b><span style='font-weight:bold'>To:</span></b> <st1:PersonName w:st="on">LLVM
 Developers Mailing List</st1:PersonName><br>
<b><span style='font-weight:bold'>Subject:</span></b> Re: [LLVMdev] Seg
faulting on vector ops</span></font><o:p></o:p></p>

</div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>Hi Chuck!<o:p></o:p></span></font></p>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>

<div>

<div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>On Jul 20, 2007, at 11:36 AM, Chuck Rose III wrote:<o:p></o:p></span></font></p>

</div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><br>
<br>
<o:p></o:p></span></font></p>

<div>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>Hola LLVMers,<O:P></O:P></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><O:P> </O:P></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>I’m
looking to make use of the vectorization primitives in the Intel chip with the
code we generate from LLVM and so I’ve started experimenting with
it.  What is the state of the machine code generated for vectors?  In
my tinkering, I seem to be getting some wonky machine instructions, but
I’m most likely just doing something wrong and I’m hoping you can
set me in the correct course.</span></font><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>

</div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>Using SSE? The X86 backend is usually doing a pretty good job of
it. <br>
<br>
<o:p></o:p></span></font></p>

<div>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><O:P></O:P><O:P> </O:P></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>My minimal
function creates a float4 vector with a specified scalar in all the
elements.  It then extracts the third element and returns it. <O:P></O:P></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><O:P> </O:P></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>We are
currently using the JIT and I’m currently synced to about a week after
the 2.0 branch, so I’m admittedly stale by about a month.<O:P></O:P></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><O:P> </O:P></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>In LLVM IR:<O:P></O:P></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><O:P> </O:P></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>; ModuleID =
'test vectors'<O:P></O:P></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><O:P> </O:P></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>define float
@vSelect3(float %x) {<O:P></O:P></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>body:<O:P></O:P></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>       
%pv = alloca <4 x
float>               
; <<4 x float>*> [#uses=1]<O:P></O:P></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>       
%v = load <4 x float>*
%pv             
; <<4 x float>> [#uses=1]</span></font><o:p></o:p></p>

</div>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt' type=cite>

<div>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><O:P></O:P>       
%v1 = insertelement <4 x float> %v, float %x, i32
0             ;
<<4 x</span></font><o:p></o:p></p>

</div>

</blockquote>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>

</div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>You are allocating a chunk of memory on the stack then loading the
undefined value back. I suppose this should be legal. So perhaps there is a
codegen bug. With tot, I see sub $28, %esp. Maybe that's already fixed.<o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>But still, this is not what you want. You want to do this:<o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>        %v1 = insertelement <4 x float>
undef, float %x, i32 0             ;
<<4 x float>> [#uses=1]           
                     
                     <o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>        %v2 = insertelement <4 x float> %v1,
float %x, i32 1            ; <<4 x
float>> [#uses=1]               
                     
                    <o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>        %v3 = insertelement <4 x float> %v2,
float %x, i32 2            ; <<4
xfloat>> [#uses=1]               
                     
                     <o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>        %v4 = insertelement <4 x float> %v3,
float %x, i32 3 <o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>Starting from an undef and insert elements to form a vector.<o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>Hope that helps.<o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>Evan<o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><br>
<br>
<o:p></o:p></span></font></p>

<div>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><O:P></O:P>float>>
[#uses=1]<O:P></O:P></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>       
%v2 = insertelement <4 x float> %v1, float %x, i32
1            ; <<4
x<O:P></O:P></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>float>>
[#uses=1]<O:P></O:P></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>       
%v3 = insertelement <4 x float> %v2, float %x, i32
2            ; <<4
x<O:P></O:P></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>float>>
[#uses=1]<O:P></O:P></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>       
%v4 = insertelement <4 x float> %v3, float %x, i32
3            ; <<4
x<O:P></O:P></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>float>>
[#uses=1]<O:P></O:P></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>       
%s = extractelement <4 x float> %v4, i32
3             
; <float> [#uses<O:P></O:P></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>=1]<O:P></O:P></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>       
ret float %s<O:P></O:P></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>}<O:P></O:P></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><O:P> </O:P></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>In Intel
assembly, I get the following:<O:P></O:P></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><O:P> </O:P></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=1 color=gray face="Courier New"><span courier=""><span style='font-size:
7.5pt;font-family:"Courier New";color:gray'>00000000`01b80010
83ec20         
sub     esp,20h<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=1 color=gray face="Courier New"><span courier=""><span style='font-size:
7.5pt;font-family:"Courier New";color:gray'>00000000`01b80013
f30f10442424    movss   xmm0,dword ptr
[esp+24h]   </span></span></font><font size=1 color=gray
face=Wingdings><span style='font-size:8.0pt;font-family:Wingdings;color:gray'>ß</span></font><font
size=1 color=gray face="Courier New"><span courier=""><span style='font-size:
7.5pt;font-family:"Courier New";color:gray'> </span></font><font size=1
face="Courier New"><span style='font-size:7.5pt;font-family:"Courier New"'>this
loads x into the low float of xmm0</span></font><o:p></o:p></p>

<O:P></O:P></span>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=1 color=gray face="Courier New"><span courier=""><span style='font-size:
7.5pt;font-family:"Courier New";color:gray'>00000000`01b80019
0f284c2404      movaps  xmm1,xmmword ptr
[esp+4]   </span></span></font><font size=1 color=gray
face=Wingdings><span style='font-size:8.0pt;font-family:Wingdings;color:gray'>ß</span></font><font
size=1 color=gray face="Courier New"><span courier=""><span style='font-size:
7.5pt;font-family:"Courier New";color:gray'> </span></font><font size=1
color=red face="Courier New"><span style='font-size:7.5pt;font-family:"Courier New";
color:red'>this seg faults because esp+4 isn’t 16-byte aligned<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=1 face="Courier New"><span courier=""><span style='font-size:7.5pt;
font-family:"Courier New"'>What is that line trying to achieve?  X is at
[esp+24].  There weren’t any other parameters.  <O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=1 color=gray face="Courier New"><span courier=""><O:P><span
style='font-size:7.5pt;font-family:"Courier New";color:gray'> </O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=1 color=gray face="Courier New"><span courier=""><span style='font-size:
7.5pt;font-family:"Courier New";color:gray'>00000000`01b8001e
f30f10c8        movss   xmm1,xmm0<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=1 color=gray face="Courier New"><span courier=""><span style='font-size:
7.5pt;font-family:"Courier New";color:gray'>00000000`01b80022
8b442424        mov    
eax,dword ptr [esp+24h]<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=1 color=gray face="Courier New"><span courier=""><span style='font-size:
7.5pt;font-family:"Courier New";color:gray'>00000000`01b80026
660fc4c802      pinsrw  xmm1,eax,2<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=1 color=gray face="Courier New"><span courier=""><span style='font-size:
7.5pt;font-family:"Courier New";color:gray'>00000000`01b8002b
89c1           
mov     ecx,eax<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=1 color=gray face="Courier New"><span courier=""><span style='font-size:
7.5pt;font-family:"Courier New";color:gray'>00000000`01b8002d
c1e910         
shr     ecx,10h<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=1 color=gray face="Courier New"><span courier=""><span style='font-size:
7.5pt;font-family:"Courier New";color:gray'>00000000`01b80030
660fc4c903      pinsrw  xmm1,ecx,3<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=1 color=gray face="Courier New"><span courier=""><span style='font-size:
7.5pt;font-family:"Courier New";color:gray'>00000000`01b80035
660fc4c804      pinsrw  xmm1,eax,4<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=1 color=gray face="Courier New"><span courier=""><span style='font-size:
7.5pt;font-family:"Courier New";color:gray'>00000000`01b8003a
660fc4c905      pinsrw  xmm1,ecx,5<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=1 color=gray face="Courier New"><span courier=""><span style='font-size:
7.5pt;font-family:"Courier New";color:gray'>00000000`01b8003f
660fc4c806      pinsrw  xmm1,eax,6<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=1 color=gray face="Courier New"><span courier=""><span style='font-size:
7.5pt;font-family:"Courier New";color:gray'>00000000`01b80044
660fc4c907      pinsrw  xmm1,ecx,7<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=1 color=gray face="Courier New"><span courier=""><span style='font-size:
7.5pt;font-family:"Courier New";color:gray'>00000000`01b80049
0fc6c903        shufps  xmm1,xmm1,3<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=1 color=gray face="Courier New"><span courier=""><span style='font-size:
7.5pt;font-family:"Courier New";color:gray'>00000000`01b8004d
f30f110c24      movss   dword ptr [esp],xmm1<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=1 color=gray face="Courier New"><span courier=""><span style='font-size:
7.5pt;font-family:"Courier New";color:gray'>00000000`01b80052 d90424         
fld     dword ptr [esp]<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=1 color=gray face="Courier New"><span courier=""><span style='font-size:
7.5pt;font-family:"Courier New";color:gray'>00000000`01b80055
83c420         
add     esp,20h<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=1 color=gray face="Courier New"><span courier=""><span style='font-size:
7.5pt;font-family:"Courier New";color:gray'>00000000`01b80058
c3             
ret<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><O:P> </O:P></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>The code
used to generate and run the program was:<O:P></O:P></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><O:P> </O:P></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 color=blue face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New";color:blue'>#include</span></span></font><font
size=2 face="Courier New"><span courier=""><span style='font-size:10.0pt;
font-family:"Courier New"'> <font color=maroon><span style='color:maroon'>"llvm/Module.h"<O:P></O:P></span></font></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 color=blue face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New";color:blue'>#include</span></span></font><font
size=2 face="Courier New"><span courier=""><span style='font-size:10.0pt;
font-family:"Courier New"'> <font color=maroon><span style='color:maroon'>"llvm/DerivedTypes.h"<O:P></O:P></span></font></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 color=blue face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New";color:blue'>#include</span></span></font><font
size=2 face="Courier New"><span courier=""><span style='font-size:10.0pt;
font-family:"Courier New"'> <font color=maroon><span style='color:maroon'>"llvm/Constants.h"<O:P></O:P></span></font></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 color=blue face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New";color:blue'>#include</span></span></font><font
size=2 face="Courier New"><span courier=""><span style='font-size:10.0pt;
font-family:"Courier New"'> <font color=maroon><span style='color:maroon'>"llvm/Instructions.h"<O:P></O:P></span></font></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 color=blue face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New";color:blue'>#include</span></span></font><font
size=2 face="Courier New"><span courier=""><span style='font-size:10.0pt;
font-family:"Courier New"'> <font color=maroon><span style='color:maroon'>"llvm/ModuleProvider.h"<O:P></O:P></span></font></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 color=blue face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New";color:blue'>#include</span></span></font><font
size=2 face="Courier New"><span courier=""><span style='font-size:10.0pt;
font-family:"Courier New"'> <font color=maroon><span style='color:maroon'>"llvm/Analysis/Verifier.h"<O:P></O:P></span></font></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 color=blue face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New";color:blue'>#include</span></span></font><font
size=2 face="Courier New"><span courier=""><span style='font-size:10.0pt;
font-family:"Courier New"'> <font color=maroon><span style='color:maroon'>"llvm/System/DynamicLibrary.h"<O:P></O:P></span></font></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 color=blue face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New";color:blue'>#include</span></span></font><font
size=2 face="Courier New"><span courier=""><span style='font-size:10.0pt;
font-family:"Courier New"'> <font color=maroon><span style='color:maroon'>"llvm/ExecutionEngine/JIT.h"<O:P></O:P></span></font></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 color=blue face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New";color:blue'>#include</span></span></font><font
size=2 face="Courier New"><span courier=""><span style='font-size:10.0pt;
font-family:"Courier New"'> <font color=maroon><span style='color:maroon'>"llvm/ExecutionEngine/Interpreter.h"<O:P></O:P></span></font></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 color=blue face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New";color:blue'>#include</span></span></font><font
size=2 face="Courier New"><span courier=""><span style='font-size:10.0pt;
font-family:"Courier New"'> <font color=maroon><span style='color:maroon'>"llvm/ExecutionEngine/GenericValue.h"<O:P></O:P></span></font></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 color=blue face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New";color:blue'>#include</span></span></font><font
size=2 face="Courier New"><span courier=""><span style='font-size:10.0pt;
font-family:"Courier New"'> <font color=maroon><span style='color:maroon'>"llvm/Support/ManagedStatic.h"<O:P></O:P></span></font></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 color=blue face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New";color:blue'>#include</span></span></font><font
size=2 face="Courier New"><span courier=""><span style='font-size:10.0pt;
font-family:"Courier New"'> <font color=maroon><span style='color:maroon'><iostream><O:P></O:P></span></font></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 color=blue face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New";color:blue'>using</span></span></font><font
size=2 face="Courier New"><span courier=""><span style='font-size:10.0pt;
font-family:"Courier New"'> <font color=blue><span style='color:blue'>namespace</span></font>
llvm;<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><O:P> </O:P></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New"'>Value* makeVector(Value* s, <font
color=blue><span style='color:blue'>unsigned</span></font> <font color=blue><span
style='color:blue'>int</span></font> dim, BasicBlock* basicBlock)<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New"'>{<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New"'>   
AllocaInst* pV = <font color=blue><span style='color:blue'>new</span></font>
AllocaInst(VectorType::get(Type::FloatTy,dim),<font color=maroon><span
style='color:maroon'>"pv"</span></font>,basicBlock);<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New"'>    Value* v
= <font color=blue><span style='color:blue'>new</span></font> LoadInst(pV,<font
color=maroon><span style='color:maroon'>"v"</span></font>,basicBlock);<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><O:P><span
style='font-size:10.0pt;font-family:"Courier New"'> </O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New"'>    <font
color=blue><span style='color:blue'>for</span></font> (<font color=blue><span
style='color:blue'>unsigned</span></font> <font color=blue><span
style='color:blue'>int</span></font> i = 0 ; i < dim ; ++i)<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New"'>       
v = <font color=blue><span style='color:blue'>new</span></font>
InsertElementInst(v,s,i,<font color=maroon><span style='color:maroon'>"v"</span></font>,basicBlock);<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><O:P><span
style='font-size:10.0pt;font-family:"Courier New"'> </O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New"'>    <font
color=blue><span style='color:blue'>return</span></font> v;<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New"'>}<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><O:P><span
style='font-size:10.0pt;font-family:"Courier New"'> </O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New"'>Function*
generateVectorAndSelect(Module* pModule)<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New"'>{<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New"'>   
std::vector<Type <font color=blue><span style='color:blue'>const</span></font>*>
params;<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><O:P><span
style='font-size:10.0pt;font-family:"Courier New"'> </O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New"'>   
params.push_back(Type::FloatTy);<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><O:P><span
style='font-size:10.0pt;font-family:"Courier New"'> </O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New"'>   
FunctionType* funcType = FunctionType::get(Type::FloatTy,params,NULL);<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New"'>    Function*
func = cast<Function>(pModule->getOrInsertFunction(<font color=maroon><span
style='color:maroon'>"vSelect3"</span></font>,funcType));<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><O:P><span
style='font-size:10.0pt;font-family:"Courier New"'> </O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New"'>    BasicBlock*
basicBlock = <font color=blue><span style='color:blue'>new</span></font>
BasicBlock(<font color=maroon><span style='color:maroon'>"body"</span></font>,func);<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><O:P><span
style='font-size:10.0pt;font-family:"Courier New"'> </O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New"'>   
Function::arg_iterator args = func->arg_begin();<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New"'>    Argument*
x = args;<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New"'>   
x->setName(<font color=maroon><span style='color:maroon'>"x"</span></font>);<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New"'>    <O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New"'>    Value* v1
= makeVector(x,4,basicBlock);<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New"'>    <O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New"'>    Value* s
= <font color=blue><span style='color:blue'>new</span></font>
ExtractElementInst(v1,3,<font color=maroon><span style='color:maroon'>"s"</span></font>,basicBlock);<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><O:P><span
style='font-size:10.0pt;font-family:"Courier New"'> </O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New"'>    <font
color=blue><span style='color:blue'>new</span></font> ReturnInst(s,basicBlock);<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><O:P><span
style='font-size:10.0pt;font-family:"Courier New"'> </O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New"'>    <font
color=blue><span style='color:blue'>return</span></font> func;<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New"'>}<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><O:P><span
style='font-size:10.0pt;font-family:"Courier New"'> </O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New"'>// modified from the
fibonacci example<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 color=blue face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New";color:blue'>int</span></span></font><font
size=2 face="Courier New"><span courier=""><span style='font-size:10.0pt;
font-family:"Courier New"'> main(<font color=blue><span style='color:blue'>int</span></font>
argc, <font color=blue><span style='color:blue'>char</span></font> **argv) <O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New"'>{<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New"'>    Module*
pVectorModule = <font color=blue><span style='color:blue'>new</span></font>
Module(<font color=maroon><span style='color:maroon'>"test vectors"</span></font>);<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><O:P><span
style='font-size:10.0pt;font-family:"Courier New"'> </O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New"'>    Function*
pMain = generateVectorAndSelect(pVectorModule);<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><O:P><span
style='font-size:10.0pt;font-family:"Courier New"'> </O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New"'>   
pVectorModule->print(std::cout);<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><O:P><span
style='font-size:10.0pt;font-family:"Courier New"'> </O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New"'>   
GenericValue gv1, gv2, gvR;<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><O:P><span
style='font-size:10.0pt;font-family:"Courier New"'> </O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New"'>   
gv1.FloatVal = 2.0f;<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><O:P><span
style='font-size:10.0pt;font-family:"Courier New"'> </O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New"'>   
ExistingModuleProvider *pMP = <font color=blue><span style='color:blue'>new</span></font>
ExistingModuleProvider(pVectorModule);<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New"'>   
pMP->getModule()->setDataLayout(<font color=maroon><span
style='color:maroon'>"e-p:32:32:32-i1:8:8:8-i8:8:8:8-i32:32:32:32-f32:32:32:32"</span></font>);<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New"'>   
ExecutionEngine *pEE = ExecutionEngine::create(pMP, <font color=blue><span
style='color:blue'>false</span></font>);<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><O:P><span
style='font-size:10.0pt;font-family:"Courier New"'> </O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New"'>   
std::vector<GenericValue> args;<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><O:P><span
style='font-size:10.0pt;font-family:"Courier New"'> </O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New"'>   
args.push_back(gv1);<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><O:P><span
style='font-size:10.0pt;font-family:"Courier New"'> </O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New"'>   
GenericValue result = pEE->runFunction(pMain, args);<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><O:P><span
style='font-size:10.0pt;font-family:"Courier New"'> </O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New"'>    <font
color=blue><span style='color:blue'>return</span></font> 0;<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><span
style='font-size:10.0pt;font-family:"Courier New"'>}<O:P></O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
text-autospace:none'><font size=2 face="Courier New"><span courier=""><O:P><span
style='font-size:10.0pt;font-family:"Courier New"'> </O:P></span></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><O:P> </O:P></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>Any help
would be appreciated.  <O:P></O:P></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>.  <O:P></O:P></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>Thanks,<O:P></O:P></span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>Chuck.</span></font><o:p></o:p></p>

</div>

<O:P></O:P>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>_______________________________________________<o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>LLVM Developers mailing list<o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a> <span
class=apple-converted-space>        </span><a
href="http://llvm.cs.uiuc.edu">http://llvm.cs.uiuc.edu</a><o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><o:p></o:p></span></font></p>

</div>

</div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>

</div>

</div>

</div>

</body>

</html>