<div dir="ltr">Hi Nemanja,<div><br></div><div>It's often useful in commit messages to explain exactly what the bug was and how your patch fixes it. Could you update the comment with in the patch with why you want Intrin->getOperand(2) and remove the commented out code?</div><div><br></div><div>Thanks!</div><div><br></div><div>-eric</div></div><br><div class="gmail_quote"><div dir="ltr">On Tue, Jun 30, 2015 at 12:49 PM Nemanja Ivanovic <<a href="mailto:nemanja.i.ibm@gmail.com">nemanja.i.ibm@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: nemanjai<br>
Date: Tue Jun 30 14:45:45 2015<br>
New Revision: 241108<br>
<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject-3Frev-3D241108-26view-3Drev&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=D2ok4_qTVxrVYOrgQuNGeNK0ZT85GREMq-MScy9Domg&s=LYZ47JUkijh7TZx0qYt9x1gbRRz2K6Cpgsr3LjHcl1Q&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=241108&view=rev</a><br>
Log:<br>
Fixes a bug with __builtin_vsx_lxvdw4x on Little Endian systems<br>
<br>
Added:<br>
    llvm/trunk/test/CodeGen/PowerPC/lxvw4x-bug.ll<br>
Modified:<br>
    llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp<br>
<br>
Modified: llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_lib_Target_PowerPC_PPCISelLowering.cpp-3Frev-3D241108-26r1-3D241107-26r2-3D241108-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=D2ok4_qTVxrVYOrgQuNGeNK0ZT85GREMq-MScy9Domg&s=ibmDu6RQ1CIU5lgN37AJRsRRUHTgm4CU_l4WDy1HQqw&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp?rev=241108&r1=241107&r2=241108&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp (original)<br>
+++ llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp Tue Jun 30 14:45:45 2015<br>
@@ -9960,7 +9960,10 @@ SDValue PPCTargetLowering::expandVSXLoad<br>
   case ISD::INTRINSIC_W_CHAIN: {<br>
     MemIntrinsicSDNode *Intrin = cast<MemIntrinsicSDNode>(N);<br>
     Chain = Intrin->getChain();<br>
-    Base = Intrin->getBasePtr();<br>
+    // I supppose that similarly to the store case below, this doesn't get<br>
+    // us what we want. Get operand 2 instead.<br>
+    //Base = Intrin->getBasePtr();<br>
+    Base = Intrin->getOperand(2);<br>
     MMO = Intrin->getMemOperand();<br>
     break;<br>
   }<br>
<br>
Added: llvm/trunk/test/CodeGen/PowerPC/lxvw4x-bug.ll<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_test_CodeGen_PowerPC_lxvw4x-2Dbug.ll-3Frev-3D241108-26view-3Dauto&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=D2ok4_qTVxrVYOrgQuNGeNK0ZT85GREMq-MScy9Domg&s=bD85Wae5kb05O-Qd0JaxixneI9bqn0Xikv95GngKApw&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/PowerPC/lxvw4x-bug.ll?rev=241108&view=auto</a><br>
==============================================================================<br>
--- llvm/trunk/test/CodeGen/PowerPC/lxvw4x-bug.ll (added)<br>
+++ llvm/trunk/test/CodeGen/PowerPC/lxvw4x-bug.ll Tue Jun 30 14:45:45 2015<br>
@@ -0,0 +1,25 @@<br>
+; RUN: llc -O0 -mcpu=pwr8 -mtriple=powerpc64le-unknown-unknown < %s | FileCheck %s<br>
+; Function Attrs: nounwind<br>
+define void @test() {<br>
+entry:<br>
+  %__a.addr.i = alloca i32, align 4<br>
+  %__b.addr.i = alloca <4 x i32>*, align 8<br>
+  %i = alloca <4 x i32>, align 16<br>
+  %j = alloca <4 x i32>, align 16<br>
+  store <4 x i32> <i32 1, i32 2, i32 3, i32 4>, <4 x i32>* %i, align 16<br>
+  store i32 0, i32* %__a.addr.i, align 4<br>
+  store <4 x i32>* %i, <4 x i32>** %__b.addr.i, align 8<br>
+  %0 = load i32, i32* %__a.addr.i, align 4<br>
+  %1 = load <4 x i32>*, <4 x i32>** %__b.addr.i, align 8<br>
+  %2 = bitcast <4 x i32>* %1 to i8*<br>
+  %3 = getelementptr i8, i8* %2, i32 %0<br>
+  %4 = call <4 x i32> @llvm.ppc.vsx.lxvw4x(i8* %3)<br>
+; CHECK: lwa [[REG0:[0-9]+]],<br>
+; CHECK: lxvd2x [[REG1:[0-9]+]], {{[0-9]+}}, [[REG0]]<br>
+; CHECK: xxswapd [[REG1]], [[REG1]]<br>
+  store <4 x i32> %4, <4 x i32>* %j, align 16<br>
+  ret void<br>
+}<br>
+<br>
+; Function Attrs: nounwind readonly<br>
+declare <4 x i32> @llvm.ppc.vsx.lxvw4x(i8*)<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu" target="_blank">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</blockquote></div>