<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:m="http://schemas.microsoft.com/office/2004/12/omml" 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 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
span.apple-tab-span
        {mso-style-name:apple-tab-span;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">LLVM 3.8 was released a year ago.  A lot of things have changed since then.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Are you able to reproduce the problem with the current HEAD, or with the LLVM 4.0 release candidate?<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">--paulr<o:p></o:p></span></p>
<p class="MsoNormal"><a name="_MailEndCompose"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></a></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt">
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> llvm-dev [mailto:llvm-dev-bounces@lists.llvm.org]
<b>On Behalf Of </b>Ramkumar Ramachandra via llvm-dev<br>
<b>Sent:</b> Wednesday, March 01, 2017 10:17 AM<br>
<b>To:</b> llvm-dev@lists.llvm.org<br>
<b>Cc:</b> Dale Martin; Ketan Surender<br>
<b>Subject:</b> [llvm-dev] [Codegen bug in LLVM 3.8?] br following `fcmp une` is present in ll, absent in asm<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div id="divtagdefaultwrapper">
<p><span style="font-family:"Calibri","sans-serif";color:black">Hi,<o:p></o:p></span></p>
<p><span style="font-family:"Calibri","sans-serif";color:black"><o:p> </o:p></span></p>
<p><span style="font-family:"Calibri","sans-serif";color:black">We seem to have found a bug in the LLVM 3.8 code generator. We are using MCJIT and have isolated working.ll and broken.ll after middle-end optimizations -- in the block
</span><span style="font-family:"Calibri","sans-serif";color:red">merge128</span><span style="font-family:"Calibri","sans-serif";color:black">, notice that broken.ll has a
</span><span style="font-family:"Calibri","sans-serif";color:red">fcmp une</span><span style="font-family:"Calibri","sans-serif";color:black"> comparison to zero and a jump based on that branch:<o:p></o:p></span></p>
<p><span style="font-family:"Calibri","sans-serif";color:black"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">merge128:                                         ; preds = %true71, %false72</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %_rtB_724 = load %B_repro_T*, %B_repro_T** %_rtB_, align 8</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %590 = getelementptr inbounds %B_repro_T, %B_repro_T* %_rtB_724, i64 0, i32 38</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %591 = bitcast double* %590 to i64*</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %_rtB__Step31020 = load i64, i64* %591, align 1</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %592 = getelementptr inbounds %B_repro_T, %B_repro_T* %_rtB_724, i64 0, i32 39</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %593 = bitcast [4 x double]* %592 to i64*</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  store i64 %_rtB__Step31020, i64* %593, align 1</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %_rtB_726 = load %B_repro_T*, %B_repro_T** %_rtB_, align 8</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %594 = getelementptr inbounds %B_repro_T, %B_repro_T* %_rtB_726, i64 0, i32 39, i64 1</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  store double 0.000000e+00, double* %594, align 1</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %_rtB_727 = load %B_repro_T*, %B_repro_T** %_rtB_, align 8</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %595 = getelementptr inbounds %B_repro_T, %B_repro_T* %_rtB_727, i64 0, i32 39, i64 2</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  store double 0.000000e+00, double* %595, align 1</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %_rtB_728 = load %B_repro_T*, %B_repro_T** %_rtB_, align 8</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %596 = getelementptr inbounds %B_repro_T, %B_repro_T* %_rtB_728, i64 0, i32 39, i64 3</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  store double 0.000000e+00, double* %596, align 1</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %_rtP_729 = load %P_repro_T*, %P_repro_T** %_rtP_, align 8</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %597 = getelementptr inbounds %P_repro_T, %P_repro_T* %_rtP_729, i64 0, i32 149</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %_rtP__Kp_Gain_n = load double, double* %597, align 1</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %_rtB_730 = load %B_repro_T*, %B_repro_T** %_rtB_, align 8</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %598 = getelementptr inbounds %B_repro_T, %B_repro_T* %_rtB_730, i64 0, i32 34, i64 0</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %_rtB__Switch_k_el = load double, double* %598, align 1</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %tmp140 = fmul double %_rtP__Kp_Gain_n, %_rtB__Switch_k_el</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %tmp141 = fadd double %_rtDW__broken_discrete_time_integrator1_DSTATE_el10061129, %tmp140</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %599 = getelementptr inbounds %B_repro_T, %B_repro_T* %_rtB_730, i64 0, i32 35, i64 0</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  store double %tmp141, double* %599, align 1</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %_rtP_733 = load %P_repro_T*, %P_repro_T** %_rtP_, align 8</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %600 = getelementptr inbounds %P_repro_T, %P_repro_T* %_rtP_733, i64 0, i32 154</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %_rtP__Ki_Gain_b = load double, double* %600, align 1</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %_rtB_734 = load %B_repro_T*, %B_repro_T** %_rtB_, align 8</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %601 = getelementptr inbounds %B_repro_T, %B_repro_T* %_rtB_734, i64 0, i32 34, i64 0</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %_rtB__Switch_k_el735 = load double, double* %601, align 1</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %tmp142 = fmul double %_rtP__Ki_Gain_b, %_rtB__Switch_k_el735</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %602 = getelementptr inbounds %B_repro_T, %B_repro_T* %_rtB_734, i64 0, i32 37, i64 0</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  store double %tmp142, double* %602, align 1</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %rtb_Sum3_737 = load double, double* %rtb_Sum3_, align 8</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:red">  %603 = fcmp une double %rtb_Sum3_737, 0.000000e+00</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:red">  %_rtB_739 = load %B_repro_T*, %B_repro_T** %_rtB_, align 8</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:red">  br i1 %603, label %true73, label %false74</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Calibri","sans-serif";color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Calibri","sans-serif";color:black">Now, in broken.asm, notice the same
</span><span style="font-family:"Calibri","sans-serif";color:red">merge128</span><span style="font-family:"Calibri","sans-serif";color:black"> is missing the branch instruction:<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Calibri","sans-serif";color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">.LBB6_55:                               # %merge128</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">184(%rsp), %rcx</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">%rax, 728(%rcx)</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">184(%rsp), %rax</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">728(%rax), %rcx</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">%rcx, 736(%rax)</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">184(%rsp), %rax</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">$0, 744(%rax)</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">184(%rsp), %rax</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">$0, 752(%rax)</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">184(%rsp), %rax</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">$0, 760(%rax)</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">176(%rsp), %rax</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movsd<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">5608(%rax), %xmm0       # xmm0 = mem[0],zero</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">184(%rsp), %rax</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">mulsd<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">648(%rax), %xmm0</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movsd<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">160(%rsp), %xmm1        # 8-byte Reload</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">                                        # xmm1 = mem[0],zero</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">addsd<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">%xmm0, %xmm1</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movsd<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">%xmm1, 672(%rax)</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">176(%rsp), %rax</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movsd<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">5648(%rax), %xmm0       # xmm0 = mem[0],zero</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">184(%rsp), %rax</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">mulsd<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">648(%rax), %xmm0</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movsd<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">%xmm0, 704(%rax)</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movsd<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">192(%rsp), %xmm0        # xmm0 = mem[0],zero</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">184(%rsp), %rax</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">xorpd<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">%xmm1, %xmm1</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:red">ucomisd<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:red">%xmm1, %xmm0</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">672(%rax), %rcx</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">%rcx, 200(%rsp)</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movd<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">%rcx, %xmm0</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">addsd<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">120(%rax), %xmm0</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">176(%rsp), %rcx</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">mulsd<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">5680(%rcx), %xmm0</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movsd<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">%xmm0, 768(%rax)</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">176(%rsp), %rax</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movsd<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">5608(%rax), %xmm0       # xmm0 = mem[0],zero</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Calibri","sans-serif";color:black"><o:p> </o:p></span></p>
</div>
<p class="MsoNormal"><span style="font-family:"Calibri","sans-serif";color:black">We know that this is the right instruction to be looking at, because we can line it up with working.ll and working.asm:
<o:p></o:p></span></p>
<p><span style="font-family:"Calibri","sans-serif";color:black"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">merge128:                                         ; preds = %true71, %false72</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %_rtB_724 = load %B_repro_T.0*, %B_repro_T.0** %_rtB_, align 8</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %590 = getelementptr inbounds %B_repro_T.0, %B_repro_T.0* %_rtB_724, i64 0, i32 38</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %591 = bitcast double* %590 to i64*</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %_rtB__Step31025 = load i64, i64* %591, align 1</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %592 = getelementptr inbounds %B_repro_T.0, %B_repro_T.0* %_rtB_724, i64 0, i32 39</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %593 = bitcast [4 x double]* %592 to i64*</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  store i64 %_rtB__Step31025, i64* %593, align 1</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %_rtB_726 = load %B_repro_T.0*, %B_repro_T.0** %_rtB_, align 8</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %594 = getelementptr inbounds %B_repro_T.0, %B_repro_T.0* %_rtB_726, i64 0, i32 39, i64 1</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  store double 0.000000e+00, double* %594, align 1</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %_rtB_727 = load %B_repro_T.0*, %B_repro_T.0** %_rtB_, align 8</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %595 = getelementptr inbounds %B_repro_T.0, %B_repro_T.0* %_rtB_727, i64 0, i32 39, i64 2</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  store double 0.000000e+00, double* %595, align 1</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %_rtB_728 = load %B_repro_T.0*, %B_repro_T.0** %_rtB_, align 8</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %596 = getelementptr inbounds %B_repro_T.0, %B_repro_T.0* %_rtB_728, i64 0, i32 39, i64 3</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  store double 0.000000e+00, double* %596, align 1</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %_rtP_729 = load %P_repro_T.2*, %P_repro_T.2** %_rtP_, align 8</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %597 = getelementptr inbounds %P_repro_T.2, %P_repro_T.2* %_rtP_729, i64 0, i32 149</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %_rtP__Kp_Gain_n = load double, double* %597, align 1</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %_rtB_730 = load %B_repro_T.0*, %B_repro_T.0** %_rtB_, align 8</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %598 = getelementptr inbounds %B_repro_T.0, %B_repro_T.0* %_rtB_730, i64 0, i32 34, i64 0</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %_rtB__Switch_k_el = load double, double* %598, align 1</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %tmp140 = fmul double %_rtP__Kp_Gain_n, %_rtB__Switch_k_el</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %tmp141 = fadd double %_rtDW__broken_discrete_time_integrator1_DSTATE_el10111134, %tmp140</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %599 = getelementptr inbounds %B_repro_T.0, %B_repro_T.0* %_rtB_730, i64 0, i32 35, i64 0</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  store double %tmp141, double* %599, align 1</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %_rtP_733 = load %P_repro_T.2*, %P_repro_T.2** %_rtP_, align 8</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %600 = getelementptr inbounds %P_repro_T.2, %P_repro_T.2* %_rtP_733, i64 0, i32 155</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %_rtP__Ki_Gain_b = load double, double* %600, align 1</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %_rtB_734 = load %B_repro_T.0*, %B_repro_T.0** %_rtB_, align 8</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %601 = getelementptr inbounds %B_repro_T.0, %B_repro_T.0* %_rtB_734, i64 0, i32 34, i64 0</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %_rtB__Switch_k_el735 = load double, double* %601, align 1</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %tmp142 = fmul double %_rtP__Ki_Gain_b, %_rtB__Switch_k_el735</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %602 = getelementptr inbounds %B_repro_T.0, %B_repro_T.0* %_rtB_734, i64 0, i32 37, i64 0</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  store double %tmp142, double* %602, align 1</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %rtb_Sum3_737 = load double, double* %rtb_Sum3_, align 8</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %_rtP_738 = load %P_repro_T.2*, %P_repro_T.2** %_rtP_, align 8</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %603 = getelementptr inbounds %P_repro_T.2, %P_repro_T.2* %_rtP_738, i64 0, i32 154</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">  %_rtP__Switch_Threshold = load double, double* %603, align 1</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:red">  %604 = fcmp ogt double %rtb_Sum3_737, %_rtP__Switch_Threshold</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:red">  %_rtB_740 = load %B_repro_T.0*, %B_repro_T.0** %_rtB_, align 8</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:red">  br i1 %604, label %true73, label %false74</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Calibri","sans-serif";color:black"><o:p> </o:p></span></p>
</div>
<p class="MsoNormal"><span style="font-family:"Calibri","sans-serif";color:black">working.ll is a slightly different model from broken.ll, in that it loads the "zero value" from memory and does
</span><span style="font-family:"Calibri","sans-serif";color:red">fcmp ogt</span><span style="font-family:"Calibri","sans-serif";color:black"> instead of
</span><span style="font-family:"Calibri","sans-serif";color:red">fcmp une</span><span style="font-family:"Calibri","sans-serif";color:black">. Otherwise, they're the same. Now, let's look at working.asm:
<o:p></o:p></span></p>
<p><span style="font-family:"Calibri","sans-serif";color:black"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">.LBB6_55:                               # %merge128</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">184(%rsp), %rcx</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">%rax, 728(%rcx)</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">184(%rsp), %rax</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">728(%rax), %rcx</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">%rcx, 736(%rax)</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">184(%rsp), %rax</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">$0, 744(%rax)</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">184(%rsp), %rax</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">$0, 752(%rax)</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">184(%rsp), %rax</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">$0, 760(%rax)</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">176(%rsp), %rax</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movsd<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">5608(%rax), %xmm0       # xmm0 = mem[0],zero</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">184(%rsp), %rax</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">mulsd<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">648(%rax), %xmm0</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movsd<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">160(%rsp), %xmm1        # 8-byte Reload</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">                                        # xmm1 = mem[0],zero</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">addsd<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">%xmm0, %xmm1</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movsd<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">%xmm1, 672(%rax)</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">176(%rsp), %rax</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movsd<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">5656(%rax), %xmm0       # xmm0 = mem[0],zero</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">184(%rsp), %rax</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">mulsd<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">648(%rax), %xmm0</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movsd<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">%xmm0, 704(%rax)</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movsd<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">192(%rsp), %xmm0        # xmm0 = mem[0],zero</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">176(%rsp), %rax</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:red">ucomisd<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:red">5648(%rax), %xmm0</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:red">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:red">184(%rsp), %rcx</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:red">jbe<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:red">.LBB6_56</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:red"># BB#128:                               # %true73</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">672(%rcx), %rdx</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">jmp<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">.LBB6_129</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:red">.LBB6_56:                               # %false74</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">696(%rcx), %rdx</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">.LBB6_129:                              # %merge129</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">%rdx, 200(%rsp)</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movd<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">%rdx, %xmm0</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">addsd<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">120(%rcx), %xmm0</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">mulsd<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">5688(%rax), %xmm0</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movsd<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">%xmm0, 768(%rcx)</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">176(%rsp), %rax</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movsd<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">5608(%rax), %xmm0       # xmm0 = mem[0],zero</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Calibri","sans-serif";color:black"><o:p> </o:p></span></p>
</div>
<p class="MsoNormal"><span style="font-family:"Calibri","sans-serif";color:black">Notice that the blocks
</span><span style="font-family:"Calibri","sans-serif";color:red">true73</span><span style="font-family:"Calibri","sans-serif";color:black"> and
</span><span style="font-family:"Calibri","sans-serif";color:red">false74</span><span style="font-family:"Calibri","sans-serif";color:black"> are completely absent in broken.asm.
<o:p></o:p></span></p>
<p><span style="font-family:"Calibri","sans-serif";color:black"><o:p> </o:p></span></p>
<p><span style="font-family:"Calibri","sans-serif";color:black">If you want to generate this asm yourself, please use LLVM 3.8's llc on the .ll files. For viewing convenience, please use a difftool to look at broken.ll versus working.ll and broken.asm versus
 working.asm -- I've highlighted the differences above at </span><span style="font-family:"Calibri","sans-serif";color:red">merge128</span><span style="font-family:"Calibri","sans-serif";color:black">.<o:p></o:p></span></p>
<p><span style="font-family:"Calibri","sans-serif";color:black"><o:p> </o:p></span></p>
<p><span style="font-family:"Calibri","sans-serif";color:black">Further, we have instrumented this code to print out the value of
</span><span style="font-family:"Calibri","sans-serif";color:red">rtb_Sum3_737</span><span style="font-family:"Calibri","sans-serif";color:black">, and found that it takes values other than zero, hitting both branches at execution. We would like to know if
 the community is aware of this bug, and which patch fixed it. Finally, see broken-latest.asm to see the output from the latest llc -- the jump is present and the bug has been fixed:<o:p></o:p></span></p>
<p><span style="font-family:"Calibri","sans-serif";color:black"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">.LBB6_99:                               # %merge128</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">8(%rsp), %rcx</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">%rax, 728(%rcx)</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">8(%rsp), %rax</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">728(%rax), %rcx</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">%rcx, 736(%rax)</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">8(%rsp), %rax</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">$0, 744(%rax)</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">8(%rsp), %rax</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">$0, 752(%rax)</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">8(%rsp), %rax</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">$0, 760(%rax)</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">16(%rsp), %rax</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movsd<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">5608(%rax), %xmm0       # xmm0 = mem[0],zero</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">8(%rsp), %rax</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">mulsd<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">648(%rax), %xmm0</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movsd<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">40(%rsp), %xmm1         # 8-byte Reload</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">                                        # xmm1 = mem[0],zero</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">addsd<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">%xmm0, %xmm1</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movsd<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">%xmm1, 672(%rax)</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">16(%rsp), %rax</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movsd<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">5648(%rax), %xmm0       # xmm0 = mem[0],zero</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">8(%rsp), %rax</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">mulsd<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">648(%rax), %xmm0</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movsd<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">%xmm0, 704(%rax)</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movsd<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">32(%rsp), %xmm0         # xmm0 = mem[0],zero</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">8(%rsp), %rax</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">xorpd<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:black">%xmm1, %xmm1</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:red">ucomisd<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:red">%xmm1, %xmm0</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:red">jne<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:red">.LBB6_100</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:red">jnp<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:red">.LBB6_101</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:red">.LBB6_100:                              # %true73</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:red">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:red">672(%rax), %rcx</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:red">jmp<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:red">.LBB6_102</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:red">.LBB6_101:                              # %false74</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Consolas;color:red">movq<span class="apple-tab-span"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas;color:red">696(%rax), %rcx</span><span style="font-family:"Calibri","sans-serif";color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Calibri","sans-serif";color:black"><o:p> </o:p></span></p>
</div>
<p><span style="font-family:"Calibri","sans-serif";color:black">Thanks.<o:p></o:p></span></p>
<p><span style="font-family:"Calibri","sans-serif";color:black"><o:p> </o:p></span></p>
<p><span style="font-family:"Calibri","sans-serif";color:black">Ram<o:p></o:p></span></p>
</div>
</div>
</div>
</body>
</html>