<div dir="ltr">Yes of course. I'll revert this now.<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Nov 29, 2016 at 4:33 PM, Eric Christopher <span dir="ltr"><<a href="mailto:echristo@gmail.com" target="_blank">echristo@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi Nemanja,<div><br></div><div>We've got a few testcases internally that we're working on reducing, but this is causing a number of failures. Can we revert this in the mean time while we're working up a testcase for you?</div><div><br></div><div>Thanks!</div><div><br></div><div>-eric</div><br><div class="gmail_quote"><div dir="ltr">On Tue, Nov 22, 2016 at 11:12 AM Nemanja Ivanovic via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</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 class="m_4173294981008666324gmail_msg">
Date: Tue Nov 22 13:02:07 2016<br class="m_4173294981008666324gmail_msg">
New Revision: 287679<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=287679&view=rev" rel="noreferrer" class="m_4173294981008666324gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project?rev=287679&view=rev</a><br class="m_4173294981008666324gmail_msg">
Log:<br class="m_4173294981008666324gmail_msg">
[PowerPC] Emit VMX loads/stores for aligned ops to avoid adding swaps on LE<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
This patch corresponds to review:<br class="m_4173294981008666324gmail_msg">
<a href="https://reviews.llvm.org/D26861" rel="noreferrer" class="m_4173294981008666324gmail_msg" target="_blank">https://reviews.llvm.org/<wbr>D26861</a><br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
It also fixes PR30730.<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
Committing on behalf of Lei Huang.<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
Modified:<br class="m_4173294981008666324gmail_msg">
    llvm/trunk/lib/Target/PowerPC/<wbr>PPCISelLowering.cpp<br class="m_4173294981008666324gmail_msg">
    llvm/trunk/lib/Target/PowerPC/<wbr>PPCInstrVSX.td<br class="m_4173294981008666324gmail_msg">
    llvm/trunk/test/CodeGen/<wbr>PowerPC/ppc64-i128-abi.ll<br class="m_4173294981008666324gmail_msg">
    llvm/trunk/test/CodeGen/<wbr>PowerPC/swaps-le-1.ll<br class="m_4173294981008666324gmail_msg">
    llvm/trunk/test/CodeGen/<wbr>PowerPC/swaps-le-2.ll<br class="m_4173294981008666324gmail_msg">
    llvm/trunk/test/CodeGen/<wbr>PowerPC/vsx-ldst.ll<br class="m_4173294981008666324gmail_msg">
    llvm/trunk/test/CodeGen/<wbr>PowerPC/vsx.ll<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
Modified: llvm/trunk/lib/Target/PowerPC/<wbr>PPCISelLowering.cpp<br class="m_4173294981008666324gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp?rev=287679&r1=287678&r2=287679&view=diff" rel="noreferrer" class="m_4173294981008666324gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/lib/Target/<wbr>PowerPC/PPCISelLowering.cpp?<wbr>rev=287679&r1=287678&r2=<wbr>287679&view=diff</a><br class="m_4173294981008666324gmail_msg">
==============================<wbr>==============================<wbr>==================<br class="m_4173294981008666324gmail_msg">
--- llvm/trunk/lib/Target/PowerPC/<wbr>PPCISelLowering.cpp (original)<br class="m_4173294981008666324gmail_msg">
+++ llvm/trunk/lib/Target/PowerPC/<wbr>PPCISelLowering.cpp Tue Nov 22 13:02:07 2016<br class="m_4173294981008666324gmail_msg">
@@ -10814,6 +10814,14 @@ SDValue PPCTargetLowering::<wbr>expandVSXLoad<br class="m_4173294981008666324gmail_msg">
   }<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
   MVT VecTy = N->getValueType(0).<wbr>getSimpleVT();<br class="m_4173294981008666324gmail_msg">
+<br class="m_4173294981008666324gmail_msg">
+  // Do not expand to PPCISD::LXVD2X + PPCISD::XXSWAPD when the load is<br class="m_4173294981008666324gmail_msg">
+  // aligned and the type is a vector with elements up to 4 bytes<br class="m_4173294981008666324gmail_msg">
+  if (Subtarget.<wbr>needsSwapsForVSXMemOps() && !(MMO->getAlignment()%16)<br class="m_4173294981008666324gmail_msg">
+      && VecTy.getScalarSizeInBits() <= 32 ) {<br class="m_4173294981008666324gmail_msg">
+    return SDValue();<br class="m_4173294981008666324gmail_msg">
+  }<br class="m_4173294981008666324gmail_msg">
+<br class="m_4173294981008666324gmail_msg">
   SDValue LoadOps[] = { Chain, Base };<br class="m_4173294981008666324gmail_msg">
   SDValue Load = DAG.getMemIntrinsicNode(<wbr>PPCISD::LXVD2X, dl,<br class="m_4173294981008666324gmail_msg">
                                          DAG.getVTList(MVT::v2f64, MVT::Other),<br class="m_4173294981008666324gmail_msg">
@@ -10878,6 +10886,13 @@ SDValue PPCTargetLowering::<wbr>expandVSXStor<br class="m_4173294981008666324gmail_msg">
   SDValue Src = N->getOperand(SrcOpnd);<br class="m_4173294981008666324gmail_msg">
   MVT VecTy = Src.getValueType().<wbr>getSimpleVT();<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
+  // Do not expand to PPCISD::XXSWAPD and PPCISD::STXVD2X when the load is<br class="m_4173294981008666324gmail_msg">
+  // aligned and the type is a vector with elements up to 4 bytes<br class="m_4173294981008666324gmail_msg">
+  if (Subtarget.<wbr>needsSwapsForVSXMemOps() && !(MMO->getAlignment()%16)<br class="m_4173294981008666324gmail_msg">
+      && VecTy.getScalarSizeInBits() <= 32 ) {<br class="m_4173294981008666324gmail_msg">
+    return SDValue();<br class="m_4173294981008666324gmail_msg">
+  }<br class="m_4173294981008666324gmail_msg">
+<br class="m_4173294981008666324gmail_msg">
   // All stores are done as v2f64 and possible bit cast.<br class="m_4173294981008666324gmail_msg">
   if (VecTy != MVT::v2f64) {<br class="m_4173294981008666324gmail_msg">
     Src = DAG.getNode(ISD::BITCAST, dl, MVT::v2f64, Src);<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
Modified: llvm/trunk/lib/Target/PowerPC/<wbr>PPCInstrVSX.td<br class="m_4173294981008666324gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPCInstrVSX.td?rev=287679&r1=287678&r2=287679&view=diff" rel="noreferrer" class="m_4173294981008666324gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/lib/Target/<wbr>PowerPC/PPCInstrVSX.td?rev=<wbr>287679&r1=287678&r2=287679&<wbr>view=diff</a><br class="m_4173294981008666324gmail_msg">
==============================<wbr>==============================<wbr>==================<br class="m_4173294981008666324gmail_msg">
--- llvm/trunk/lib/Target/PowerPC/<wbr>PPCInstrVSX.td (original)<br class="m_4173294981008666324gmail_msg">
+++ llvm/trunk/lib/Target/PowerPC/<wbr>PPCInstrVSX.td Tue Nov 22 13:02:07 2016<br class="m_4173294981008666324gmail_msg">
@@ -138,7 +138,7 @@ let Uses = [RM] in {<br class="m_4173294981008666324gmail_msg">
     def LXVW4X : XX1Form<31, 780,<br class="m_4173294981008666324gmail_msg">
                          (outs vsrc:$XT), (ins memrr:$src),<br class="m_4173294981008666324gmail_msg">
                          "lxvw4x $XT, $src", IIC_LdStLFD,<br class="m_4173294981008666324gmail_msg">
-                         [(set v4i32:$XT, (int_ppc_vsx_lxvw4x xoaddr:$src))]>;<br class="m_4173294981008666324gmail_msg">
+                         []>;<br class="m_4173294981008666324gmail_msg">
   } // mayLoad<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
   // Store indexed instructions<br class="m_4173294981008666324gmail_msg">
@@ -160,7 +160,7 @@ let Uses = [RM] in {<br class="m_4173294981008666324gmail_msg">
     def STXVW4X : XX1Form<31, 908,<br class="m_4173294981008666324gmail_msg">
                          (outs), (ins vsrc:$XT, memrr:$dst),<br class="m_4173294981008666324gmail_msg">
                          "stxvw4x $XT, $dst", IIC_LdStSTFD,<br class="m_4173294981008666324gmail_msg">
-                         [(store v4i32:$XT, xoaddr:$dst)]>;<br class="m_4173294981008666324gmail_msg">
+                         []>;<br class="m_4173294981008666324gmail_msg">
     }<br class="m_4173294981008666324gmail_msg">
   } // mayStore<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
@@ -1018,8 +1018,6 @@ let Predicates = [HasVSX, HasOnlySwappin<br class="m_4173294981008666324gmail_msg">
   // Stores.<br class="m_4173294981008666324gmail_msg">
   def : Pat<(int_ppc_vsx_stxvd2x v2f64:$rS, xoaddr:$dst),<br class="m_4173294981008666324gmail_msg">
             (STXVD2X $rS, xoaddr:$dst)>;<br class="m_4173294981008666324gmail_msg">
-  def : Pat<(int_ppc_vsx_stxvw4x v4i32:$rS, xoaddr:$dst),<br class="m_4173294981008666324gmail_msg">
-            (STXVW4X $rS, xoaddr:$dst)>;<br class="m_4173294981008666324gmail_msg">
   def : Pat<(int_ppc_vsx_stxvd2x_be v2f64:$rS, xoaddr:$dst),<br class="m_4173294981008666324gmail_msg">
             (STXVD2X $rS, xoaddr:$dst)>;<br class="m_4173294981008666324gmail_msg">
   def : Pat<(int_ppc_vsx_stxvw4x_be v4i32:$rS, xoaddr:$dst),<br class="m_4173294981008666324gmail_msg">
@@ -1030,8 +1028,12 @@ let Predicates = [IsBigEndian, HasVSX, H<br class="m_4173294981008666324gmail_msg">
   def : Pat<(v2f64 (load xoaddr:$src)), (LXVD2X xoaddr:$src)>;<br class="m_4173294981008666324gmail_msg">
   def : Pat<(v2i64 (load xoaddr:$src)), (LXVD2X xoaddr:$src)>;<br class="m_4173294981008666324gmail_msg">
   def : Pat<(v4i32 (load xoaddr:$src)), (LXVW4X xoaddr:$src)>;<br class="m_4173294981008666324gmail_msg">
+  def : Pat<(v4i32 (int_ppc_vsx_lxvw4x xoaddr:$src)), (LXVW4X xoaddr:$src)>;<br class="m_4173294981008666324gmail_msg">
   def : Pat<(store v2f64:$rS, xoaddr:$dst), (STXVD2X $rS, xoaddr:$dst)>;<br class="m_4173294981008666324gmail_msg">
   def : Pat<(store v2i64:$rS, xoaddr:$dst), (STXVD2X $rS, xoaddr:$dst)>;<br class="m_4173294981008666324gmail_msg">
+  def : Pat<(store v4i32:$XT, xoaddr:$dst), (STXVW4X $XT, xoaddr:$dst)>;<br class="m_4173294981008666324gmail_msg">
+  def : Pat<(int_ppc_vsx_stxvw4x v4i32:$rS, xoaddr:$dst),<br class="m_4173294981008666324gmail_msg">
+            (STXVW4X $rS, xoaddr:$dst)>;<br class="m_4173294981008666324gmail_msg">
 }<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
 // Permutes.<br class="m_4173294981008666324gmail_msg">
@@ -1852,8 +1854,8 @@ let Predicates = [IsLittleEndian, HasVSX<br class="m_4173294981008666324gmail_msg">
   def : Pat<(f64 (vector_extract v2f64:$S, i64:$Idx)),<br class="m_4173294981008666324gmail_msg">
             (f64 VectorExtractions.LE_VARIABLE_<wbr>DOUBLE)>;<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
-  def : Pat<(v4i32 (int_ppc_vsx_lxvw4x_be xoaddr:$src)), (LXVW4X xoaddr:$src)>;<br class="m_4173294981008666324gmail_msg">
-  def : Pat<(v2f64 (int_ppc_vsx_lxvd2x_be xoaddr:$src)), (LXVD2X xoaddr:$src)>;<br class="m_4173294981008666324gmail_msg">
+def : Pat<(v4i32 (int_ppc_vsx_lxvw4x_be xoaddr:$src)), (LXVW4X xoaddr:$src)>;<br class="m_4173294981008666324gmail_msg">
+def : Pat<(v2f64 (int_ppc_vsx_lxvd2x_be xoaddr:$src)), (LXVD2X xoaddr:$src)>;<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
 let Predicates = [IsLittleEndian, HasDirectMove] in {<br class="m_4173294981008666324gmail_msg">
   // v16i8 scalar <-> vector conversions (LE)<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
Modified: llvm/trunk/test/CodeGen/<wbr>PowerPC/ppc64-i128-abi.ll<br class="m_4173294981008666324gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/PowerPC/ppc64-i128-abi.ll?rev=287679&r1=287678&r2=287679&view=diff" rel="noreferrer" class="m_4173294981008666324gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/PowerPC/ppc64-i128-<wbr>abi.ll?rev=287679&r1=287678&<wbr>r2=287679&view=diff</a><br class="m_4173294981008666324gmail_msg">
==============================<wbr>==============================<wbr>==================<br class="m_4173294981008666324gmail_msg">
--- llvm/trunk/test/CodeGen/<wbr>PowerPC/ppc64-i128-abi.ll (original)<br class="m_4173294981008666324gmail_msg">
+++ llvm/trunk/test/CodeGen/<wbr>PowerPC/ppc64-i128-abi.ll Tue Nov 22 13:02:07 2016<br class="m_4173294981008666324gmail_msg">
@@ -1,5 +1,6 @@<br class="m_4173294981008666324gmail_msg">
 ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-<wbr>linux-gnu \<br class="m_4173294981008666324gmail_msg">
-; RUN:   -mcpu=pwr8 < %s | FileCheck %s -check-prefix=CHECK-LE<br class="m_4173294981008666324gmail_msg">
+; RUN:   -mcpu=pwr8 < %s | FileCheck %s -check-prefix=CHECK-LE \<br class="m_4173294981008666324gmail_msg">
+; RUN:   --implicit-check-not xxswapd<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
 ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-<wbr>linux-gnu \<br class="m_4173294981008666324gmail_msg">
 ; RUN:   -mcpu=pwr8 < %s | FileCheck %s -check-prefix=CHECK-BE<br class="m_4173294981008666324gmail_msg">
@@ -8,13 +9,15 @@<br class="m_4173294981008666324gmail_msg">
 ; RUN:   -mcpu=pwr8 -mattr=-vsx < %s | FileCheck %s -check-prefix=CHECK-NOVSX<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
 ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-<wbr>linux-gnu \<br class="m_4173294981008666324gmail_msg">
-; RUN:   -mcpu=pwr8 -mattr=-vsx < %s | FileCheck %s -check-prefix=CHECK-NOVSX<br class="m_4173294981008666324gmail_msg">
+; RUN:   -mcpu=pwr8 -mattr=-vsx < %s | FileCheck %s -check-prefix=CHECK-NOVSX \<br class="m_4173294981008666324gmail_msg">
+; RUN:   --implicit-check-not xxswapd<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
 ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-<wbr>linux-gnu \<br class="m_4173294981008666324gmail_msg">
 ; RUN:   -mcpu=pwr8 -mattr=-vsx < %s | FileCheck %s -check-prefix=CHECK-BE-NOVSX<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
 ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-<wbr>linux-gnu \<br class="m_4173294981008666324gmail_msg">
-; RUN:   -mcpu=pwr8 -mattr=-vsx < %s | FileCheck %s -check-prefix=CHECK-LE-NOVSX<br class="m_4173294981008666324gmail_msg">
+; RUN:   -mcpu=pwr8 -mattr=-vsx < %s | \<br class="m_4173294981008666324gmail_msg">
+; RUN:   FileCheck %s -check-prefix=CHECK-LE-NOVSX --implicit-check-not xxswapd<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
 ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-<wbr>linux-gnu \<br class="m_4173294981008666324gmail_msg">
 ; RUN:   -mcpu=pwr9 -ppc-vsr-nums-as-vr < %s | FileCheck %s \<br class="m_4173294981008666324gmail_msg">
@@ -26,7 +29,7 @@<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
 ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-<wbr>linux-gnu \<br class="m_4173294981008666324gmail_msg">
 ; RUN:   -mcpu=pwr9 -mattr=-power9-vector -mattr=-direct-move < %s | \<br class="m_4173294981008666324gmail_msg">
-; RUN:   FileCheck %s -check-prefix=CHECK-LE<br class="m_4173294981008666324gmail_msg">
+; RUN:   FileCheck %s -check-prefix=CHECK-LE --implicit-check-not xxswapd<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
 @x = common global <1 x i128> zeroinitializer, align 16<br class="m_4173294981008666324gmail_msg">
 @y = common global <1 x i128> zeroinitializer, align 16<br class="m_4173294981008666324gmail_msg">
@@ -199,8 +202,7 @@ define <1 x i128> @call_v1i128_increment<br class="m_4173294981008666324gmail_msg">
        ret <1 x i128> %ret<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
 ; CHECK-LE-LABEL: @call_v1i128_increment_by_one<br class="m_4173294981008666324gmail_msg">
-; CHECK-LE: lxvd2x [[PARAM:[0-9]+]], {{[0-9]+}}, {{[0-9]+}}<br class="m_4173294981008666324gmail_msg">
-; CHECK-LE: xxswapd 34, [[PARAM]]<br class="m_4173294981008666324gmail_msg">
+; CHECK-LE: lvx 2, {{[0-9]+}}, {{[0-9]+}}<br class="m_4173294981008666324gmail_msg">
 ; CHECK-LE: bl v1i128_increment_by_one<br class="m_4173294981008666324gmail_msg">
 ; CHECK-LE: blr<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
@@ -229,10 +231,8 @@ define <1 x i128> @call_v1i128_increment<br class="m_4173294981008666324gmail_msg">
        ret <1 x i128> %ret<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
 ; CHECK-LE-LABEL: @call_v1i128_increment_by_val<br class="m_4173294981008666324gmail_msg">
-; CHECK-LE: lxvd2x [[PARAM1:[0-9]+]], {{[0-9]+}}, {{[0-9]+}}<br class="m_4173294981008666324gmail_msg">
-; CHECK-LE: lxvd2x [[PARAM2:[0-9]+]], {{[0-9]+}}, {{[0-9]+}}<br class="m_4173294981008666324gmail_msg">
-; CHECK-LE-DAG: xxswapd 34, [[PARAM1]]<br class="m_4173294981008666324gmail_msg">
-; CHECK-LE-DAG: xxswapd 35, [[PARAM2]]<br class="m_4173294981008666324gmail_msg">
+; CHECK-LE: lvx 2, {{[0-9]+}}, {{[0-9]+}}<br class="m_4173294981008666324gmail_msg">
+; CHECK-LE: lvx 3, {{[0-9]+}}, {{[0-9]+}}<br class="m_4173294981008666324gmail_msg">
 ; CHECK-LE: bl v1i128_increment_by_val<br class="m_4173294981008666324gmail_msg">
 ; CHECK-LE: blr<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
Modified: llvm/trunk/test/CodeGen/<wbr>PowerPC/swaps-le-1.ll<br class="m_4173294981008666324gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/PowerPC/swaps-le-1.ll?rev=287679&r1=287678&r2=287679&view=diff" rel="noreferrer" class="m_4173294981008666324gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/PowerPC/swaps-le-1.ll?<wbr>rev=287679&r1=287678&r2=<wbr>287679&view=diff</a><br class="m_4173294981008666324gmail_msg">
==============================<wbr>==============================<wbr>==================<br class="m_4173294981008666324gmail_msg">
--- llvm/trunk/test/CodeGen/<wbr>PowerPC/swaps-le-1.ll (original)<br class="m_4173294981008666324gmail_msg">
+++ llvm/trunk/test/CodeGen/<wbr>PowerPC/swaps-le-1.ll Tue Nov 22 13:02:07 2016<br class="m_4173294981008666324gmail_msg">
@@ -13,6 +13,12 @@<br class="m_4173294981008666324gmail_msg">
 ; RUN:  -verify-machineinstrs -mtriple=powerpc64le-unknown-<wbr>linux-gnu < %s \<br class="m_4173294981008666324gmail_msg">
 ; RUN:  | FileCheck -check-prefix=NOOPTSWAP %s<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
+; LH: 2016-11-17<br class="m_4173294981008666324gmail_msg">
+;   Updated align attritue from 16 to 8 to keep swap instructions tests.<br class="m_4173294981008666324gmail_msg">
+;   Changes have been made on little-endian to use lvx and stvx<br class="m_4173294981008666324gmail_msg">
+;   instructions instead of lxvd2x/xxswapd and xxswapd/stxvd2x for<br class="m_4173294981008666324gmail_msg">
+;   aligned vectors with elements up to 4 bytes<br class="m_4173294981008666324gmail_msg">
+<br class="m_4173294981008666324gmail_msg">
 ; This test was generated from the following source:<br class="m_4173294981008666324gmail_msg">
 ;<br class="m_4173294981008666324gmail_msg">
 ; #define N 4096<br class="m_4173294981008666324gmail_msg">
@@ -29,10 +35,10 @@<br class="m_4173294981008666324gmail_msg">
 ;   }<br class="m_4173294981008666324gmail_msg">
 ; }<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
-@cb = common global [4096 x i32] zeroinitializer, align 16<br class="m_4173294981008666324gmail_msg">
-@cc = common global [4096 x i32] zeroinitializer, align 16<br class="m_4173294981008666324gmail_msg">
-@cd = common global [4096 x i32] zeroinitializer, align 16<br class="m_4173294981008666324gmail_msg">
-@ca = common global [4096 x i32] zeroinitializer, align 16<br class="m_4173294981008666324gmail_msg">
+@cb = common global [4096 x i32] zeroinitializer, align 8<br class="m_4173294981008666324gmail_msg">
+@cc = common global [4096 x i32] zeroinitializer, align 8<br class="m_4173294981008666324gmail_msg">
+@cd = common global [4096 x i32] zeroinitializer, align 8<br class="m_4173294981008666324gmail_msg">
+@ca = common global [4096 x i32] zeroinitializer, align 8<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
 define void @foo() {<br class="m_4173294981008666324gmail_msg">
 entry:<br class="m_4173294981008666324gmail_msg">
@@ -42,63 +48,63 @@ vector.body:<br class="m_4173294981008666324gmail_msg">
   %index = phi i64 [ 0, %entry ], [ %index.next.3, %vector.body ]<br class="m_4173294981008666324gmail_msg">
   %0 = getelementptr inbounds [4096 x i32], [4096 x i32]* @cb, i64 0, i64 %index<br class="m_4173294981008666324gmail_msg">
   %1 = bitcast i32* %0 to <4 x i32>*<br class="m_4173294981008666324gmail_msg">
-  %wide.load = load <4 x i32>, <4 x i32>* %1, align 16<br class="m_4173294981008666324gmail_msg">
+  %wide.load = load <4 x i32>, <4 x i32>* %1, align 8<br class="m_4173294981008666324gmail_msg">
   %2 = getelementptr inbounds [4096 x i32], [4096 x i32]* @cc, i64 0, i64 %index<br class="m_4173294981008666324gmail_msg">
   %3 = bitcast i32* %2 to <4 x i32>*<br class="m_4173294981008666324gmail_msg">
-  %wide.load13 = load <4 x i32>, <4 x i32>* %3, align 16<br class="m_4173294981008666324gmail_msg">
+  %wide.load13 = load <4 x i32>, <4 x i32>* %3, align 8<br class="m_4173294981008666324gmail_msg">
   %4 = add nsw <4 x i32> %wide.load13, %wide.load<br class="m_4173294981008666324gmail_msg">
   %5 = getelementptr inbounds [4096 x i32], [4096 x i32]* @cd, i64 0, i64 %index<br class="m_4173294981008666324gmail_msg">
   %6 = bitcast i32* %5 to <4 x i32>*<br class="m_4173294981008666324gmail_msg">
-  %wide.load14 = load <4 x i32>, <4 x i32>* %6, align 16<br class="m_4173294981008666324gmail_msg">
+  %wide.load14 = load <4 x i32>, <4 x i32>* %6, align 8<br class="m_4173294981008666324gmail_msg">
   %7 = mul nsw <4 x i32> %4, %wide.load14<br class="m_4173294981008666324gmail_msg">
   %8 = getelementptr inbounds [4096 x i32], [4096 x i32]* @ca, i64 0, i64 %index<br class="m_4173294981008666324gmail_msg">
   %9 = bitcast i32* %8 to <4 x i32>*<br class="m_4173294981008666324gmail_msg">
-  store <4 x i32> %7, <4 x i32>* %9, align 16<br class="m_4173294981008666324gmail_msg">
+  store <4 x i32> %7, <4 x i32>* %9, align 8<br class="m_4173294981008666324gmail_msg">
   %index.next = add nuw nsw i64 %index, 4<br class="m_4173294981008666324gmail_msg">
   %10 = getelementptr inbounds [4096 x i32], [4096 x i32]* @cb, i64 0, i64 %index.next<br class="m_4173294981008666324gmail_msg">
   %11 = bitcast i32* %10 to <4 x i32>*<br class="m_4173294981008666324gmail_msg">
-  %wide.load.1 = load <4 x i32>, <4 x i32>* %11, align 16<br class="m_4173294981008666324gmail_msg">
+  %wide.load.1 = load <4 x i32>, <4 x i32>* %11, align 8<br class="m_4173294981008666324gmail_msg">
   %12 = getelementptr inbounds [4096 x i32], [4096 x i32]* @cc, i64 0, i64 %index.next<br class="m_4173294981008666324gmail_msg">
   %13 = bitcast i32* %12 to <4 x i32>*<br class="m_4173294981008666324gmail_msg">
-  %wide.load13.1 = load <4 x i32>, <4 x i32>* %13, align 16<br class="m_4173294981008666324gmail_msg">
+  %wide.load13.1 = load <4 x i32>, <4 x i32>* %13, align 8<br class="m_4173294981008666324gmail_msg">
   %14 = add nsw <4 x i32> %wide.load13.1, %wide.load.1<br class="m_4173294981008666324gmail_msg">
   %15 = getelementptr inbounds [4096 x i32], [4096 x i32]* @cd, i64 0, i64 %index.next<br class="m_4173294981008666324gmail_msg">
   %16 = bitcast i32* %15 to <4 x i32>*<br class="m_4173294981008666324gmail_msg">
-  %wide.load14.1 = load <4 x i32>, <4 x i32>* %16, align 16<br class="m_4173294981008666324gmail_msg">
+  %wide.load14.1 = load <4 x i32>, <4 x i32>* %16, align 8<br class="m_4173294981008666324gmail_msg">
   %17 = mul nsw <4 x i32> %14, %wide.load14.1<br class="m_4173294981008666324gmail_msg">
   %18 = getelementptr inbounds [4096 x i32], [4096 x i32]* @ca, i64 0, i64 %index.next<br class="m_4173294981008666324gmail_msg">
   %19 = bitcast i32* %18 to <4 x i32>*<br class="m_4173294981008666324gmail_msg">
-  store <4 x i32> %17, <4 x i32>* %19, align 16<br class="m_4173294981008666324gmail_msg">
+  store <4 x i32> %17, <4 x i32>* %19, align 8<br class="m_4173294981008666324gmail_msg">
   %index.next.1 = add nuw nsw i64 %index.next, 4<br class="m_4173294981008666324gmail_msg">
   %20 = getelementptr inbounds [4096 x i32], [4096 x i32]* @cb, i64 0, i64 %index.next.1<br class="m_4173294981008666324gmail_msg">
   %21 = bitcast i32* %20 to <4 x i32>*<br class="m_4173294981008666324gmail_msg">
-  %wide.load.2 = load <4 x i32>, <4 x i32>* %21, align 16<br class="m_4173294981008666324gmail_msg">
+  %wide.load.2 = load <4 x i32>, <4 x i32>* %21, align 8<br class="m_4173294981008666324gmail_msg">
   %22 = getelementptr inbounds [4096 x i32], [4096 x i32]* @cc, i64 0, i64 %index.next.1<br class="m_4173294981008666324gmail_msg">
   %23 = bitcast i32* %22 to <4 x i32>*<br class="m_4173294981008666324gmail_msg">
-  %wide.load13.2 = load <4 x i32>, <4 x i32>* %23, align 16<br class="m_4173294981008666324gmail_msg">
+  %wide.load13.2 = load <4 x i32>, <4 x i32>* %23, align 8<br class="m_4173294981008666324gmail_msg">
   %24 = add nsw <4 x i32> %wide.load13.2, %wide.load.2<br class="m_4173294981008666324gmail_msg">
   %25 = getelementptr inbounds [4096 x i32], [4096 x i32]* @cd, i64 0, i64 %index.next.1<br class="m_4173294981008666324gmail_msg">
   %26 = bitcast i32* %25 to <4 x i32>*<br class="m_4173294981008666324gmail_msg">
-  %wide.load14.2 = load <4 x i32>, <4 x i32>* %26, align 16<br class="m_4173294981008666324gmail_msg">
+  %wide.load14.2 = load <4 x i32>, <4 x i32>* %26, align 8<br class="m_4173294981008666324gmail_msg">
   %27 = mul nsw <4 x i32> %24, %wide.load14.2<br class="m_4173294981008666324gmail_msg">
   %28 = getelementptr inbounds [4096 x i32], [4096 x i32]* @ca, i64 0, i64 %index.next.1<br class="m_4173294981008666324gmail_msg">
   %29 = bitcast i32* %28 to <4 x i32>*<br class="m_4173294981008666324gmail_msg">
-  store <4 x i32> %27, <4 x i32>* %29, align 16<br class="m_4173294981008666324gmail_msg">
+  store <4 x i32> %27, <4 x i32>* %29, align 8<br class="m_4173294981008666324gmail_msg">
   %index.next.2 = add nuw nsw i64 %index.next.1, 4<br class="m_4173294981008666324gmail_msg">
   %30 = getelementptr inbounds [4096 x i32], [4096 x i32]* @cb, i64 0, i64 %index.next.2<br class="m_4173294981008666324gmail_msg">
   %31 = bitcast i32* %30 to <4 x i32>*<br class="m_4173294981008666324gmail_msg">
-  %wide.load.3 = load <4 x i32>, <4 x i32>* %31, align 16<br class="m_4173294981008666324gmail_msg">
+  %wide.load.3 = load <4 x i32>, <4 x i32>* %31, align 8<br class="m_4173294981008666324gmail_msg">
   %32 = getelementptr inbounds [4096 x i32], [4096 x i32]* @cc, i64 0, i64 %index.next.2<br class="m_4173294981008666324gmail_msg">
   %33 = bitcast i32* %32 to <4 x i32>*<br class="m_4173294981008666324gmail_msg">
-  %wide.load13.3 = load <4 x i32>, <4 x i32>* %33, align 16<br class="m_4173294981008666324gmail_msg">
+  %wide.load13.3 = load <4 x i32>, <4 x i32>* %33, align 8<br class="m_4173294981008666324gmail_msg">
   %34 = add nsw <4 x i32> %wide.load13.3, %wide.load.3<br class="m_4173294981008666324gmail_msg">
   %35 = getelementptr inbounds [4096 x i32], [4096 x i32]* @cd, i64 0, i64 %index.next.2<br class="m_4173294981008666324gmail_msg">
   %36 = bitcast i32* %35 to <4 x i32>*<br class="m_4173294981008666324gmail_msg">
-  %wide.load14.3 = load <4 x i32>, <4 x i32>* %36, align 16<br class="m_4173294981008666324gmail_msg">
+  %wide.load14.3 = load <4 x i32>, <4 x i32>* %36, align 8<br class="m_4173294981008666324gmail_msg">
   %37 = mul nsw <4 x i32> %34, %wide.load14.3<br class="m_4173294981008666324gmail_msg">
   %38 = getelementptr inbounds [4096 x i32], [4096 x i32]* @ca, i64 0, i64 %index.next.2<br class="m_4173294981008666324gmail_msg">
   %39 = bitcast i32* %38 to <4 x i32>*<br class="m_4173294981008666324gmail_msg">
-  store <4 x i32> %37, <4 x i32>* %39, align 16<br class="m_4173294981008666324gmail_msg">
+  store <4 x i32> %37, <4 x i32>* %39, align 8<br class="m_4173294981008666324gmail_msg">
   %index.next.3 = add nuw nsw i64 %index.next.2, 4<br class="m_4173294981008666324gmail_msg">
   %40 = icmp eq i64 %index.next.3, 4096<br class="m_4173294981008666324gmail_msg">
   br i1 %40, label %for.end, label %vector.body<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
Modified: llvm/trunk/test/CodeGen/<wbr>PowerPC/swaps-le-2.ll<br class="m_4173294981008666324gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/PowerPC/swaps-le-2.ll?rev=287679&r1=287678&r2=287679&view=diff" rel="noreferrer" class="m_4173294981008666324gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/PowerPC/swaps-le-2.ll?<wbr>rev=287679&r1=287678&r2=<wbr>287679&view=diff</a><br class="m_4173294981008666324gmail_msg">
==============================<wbr>==============================<wbr>==================<br class="m_4173294981008666324gmail_msg">
--- llvm/trunk/test/CodeGen/<wbr>PowerPC/swaps-le-2.ll (original)<br class="m_4173294981008666324gmail_msg">
+++ llvm/trunk/test/CodeGen/<wbr>PowerPC/swaps-le-2.ll Tue Nov 22 13:02:07 2016<br class="m_4173294981008666324gmail_msg">
@@ -2,6 +2,13 @@<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
 ; Test swap removal when a vector splat must be adjusted to make it legal.<br class="m_4173294981008666324gmail_msg">
 ;<br class="m_4173294981008666324gmail_msg">
+<br class="m_4173294981008666324gmail_msg">
+; LH: 2016-11-17<br class="m_4173294981008666324gmail_msg">
+;   Updated align attritue from 16 to 8 to keep swap instructions tests.<br class="m_4173294981008666324gmail_msg">
+;   Changes have been made on little-endian to use lvx and stvx<br class="m_4173294981008666324gmail_msg">
+;   instructions instead of lxvd2x/xxswapd and xxswapd/stxvd2x for<br class="m_4173294981008666324gmail_msg">
+;   aligned vectors with elements up to 4 bytes<br class="m_4173294981008666324gmail_msg">
+<br class="m_4173294981008666324gmail_msg">
 ; Test generated from following C code:<br class="m_4173294981008666324gmail_msg">
 ;<br class="m_4173294981008666324gmail_msg">
 ; vector char vc = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};<br class="m_4173294981008666324gmail_msg">
@@ -28,37 +35,37 @@<br class="m_4173294981008666324gmail_msg">
 ;   vir = (vector int){vi[1], vi[1], vi[1], vi[1]};<br class="m_4173294981008666324gmail_msg">
 ; }<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
-@vc = global <16 x i8> <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15>, align 16<br class="m_4173294981008666324gmail_msg">
-@vs = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16<br class="m_4173294981008666324gmail_msg">
-@vi = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16<br class="m_4173294981008666324gmail_msg">
-@vcr = common global <16 x i8> zeroinitializer, align 16<br class="m_4173294981008666324gmail_msg">
-@vsr = common global <8 x i16> zeroinitializer, align 16<br class="m_4173294981008666324gmail_msg">
-@vir = common global <4 x i32> zeroinitializer, align 16<br class="m_4173294981008666324gmail_msg">
+@vc = global <16 x i8> <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15>, align 8<br class="m_4173294981008666324gmail_msg">
+@vs = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 8<br class="m_4173294981008666324gmail_msg">
+@vi = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 8<br class="m_4173294981008666324gmail_msg">
+@vcr = common global <16 x i8> zeroinitializer, align 8<br class="m_4173294981008666324gmail_msg">
+@vsr = common global <8 x i16> zeroinitializer, align 8<br class="m_4173294981008666324gmail_msg">
+@vir = common global <4 x i32> zeroinitializer, align 8<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
 ; Function Attrs: nounwind<br class="m_4173294981008666324gmail_msg">
 define void @cfoo() {<br class="m_4173294981008666324gmail_msg">
 entry:<br class="m_4173294981008666324gmail_msg">
-  %0 = load <16 x i8>, <16 x i8>* @vc, align 16<br class="m_4173294981008666324gmail_msg">
+  %0 = load <16 x i8>, <16 x i8>* @vc, align 8<br class="m_4173294981008666324gmail_msg">
   %vecinit30 = shufflevector <16 x i8> %0, <16 x i8> undef, <16 x i32> <i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5><br class="m_4173294981008666324gmail_msg">
-  store <16 x i8> %vecinit30, <16 x i8>* @vcr, align 16<br class="m_4173294981008666324gmail_msg">
+  store <16 x i8> %vecinit30, <16 x i8>* @vcr, align 8<br class="m_4173294981008666324gmail_msg">
   ret void<br class="m_4173294981008666324gmail_msg">
 }<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
 ; Function Attrs: nounwind<br class="m_4173294981008666324gmail_msg">
 define void @sfoo() {<br class="m_4173294981008666324gmail_msg">
 entry:<br class="m_4173294981008666324gmail_msg">
-  %0 = load <8 x i16>, <8 x i16>* @vs, align 16<br class="m_4173294981008666324gmail_msg">
+  %0 = load <8 x i16>, <8 x i16>* @vs, align 8<br class="m_4173294981008666324gmail_msg">
   %vecinit14 = shufflevector <8 x i16> %0, <8 x i16> undef, <8 x i32> <i32 6, i32 6, i32 6, i32 6, i32 6, i32 6, i32 6, i32 6><br class="m_4173294981008666324gmail_msg">
-  store <8 x i16> %vecinit14, <8 x i16>* @vsr, align 16<br class="m_4173294981008666324gmail_msg">
+  store <8 x i16> %vecinit14, <8 x i16>* @vsr, align 8<br class="m_4173294981008666324gmail_msg">
   ret void<br class="m_4173294981008666324gmail_msg">
 }<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
 ; Function Attrs: nounwind<br class="m_4173294981008666324gmail_msg">
 define void @ifoo() {<br class="m_4173294981008666324gmail_msg">
 entry:<br class="m_4173294981008666324gmail_msg">
-  %0 = load <4 x i32>, <4 x i32>* @vi, align 16<br class="m_4173294981008666324gmail_msg">
+  %0 = load <4 x i32>, <4 x i32>* @vi, align 8<br class="m_4173294981008666324gmail_msg">
   %vecinit6 = shufflevector <4 x i32> %0, <4 x i32> undef, <4 x i32> <i32 1, i32 1, i32 1, i32 1><br class="m_4173294981008666324gmail_msg">
-  store <4 x i32> %vecinit6, <4 x i32>* @vir, align 16<br class="m_4173294981008666324gmail_msg">
+  store <4 x i32> %vecinit6, <4 x i32>* @vir, align 8<br class="m_4173294981008666324gmail_msg">
   ret void<br class="m_4173294981008666324gmail_msg">
 }<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
Modified: llvm/trunk/test/CodeGen/<wbr>PowerPC/vsx-ldst.ll<br class="m_4173294981008666324gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/PowerPC/vsx-ldst.ll?rev=287679&r1=287678&r2=287679&view=diff" rel="noreferrer" class="m_4173294981008666324gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/PowerPC/vsx-ldst.ll?<wbr>rev=287679&r1=287678&r2=<wbr>287679&view=diff</a><br class="m_4173294981008666324gmail_msg">
==============================<wbr>==============================<wbr>==================<br class="m_4173294981008666324gmail_msg">
--- llvm/trunk/test/CodeGen/<wbr>PowerPC/vsx-ldst.ll (original)<br class="m_4173294981008666324gmail_msg">
+++ llvm/trunk/test/CodeGen/<wbr>PowerPC/vsx-ldst.ll Tue Nov 22 13:02:07 2016<br class="m_4173294981008666324gmail_msg">
@@ -14,8 +14,10 @@<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
 ; RUN: llc -verify-machineinstrs -mcpu=pwr8 -mattr=+vsx -O2 \<br class="m_4173294981008666324gmail_msg">
 ; RUN:   -mtriple=powerpc64le-unknown-<wbr>linux-gnu < %s > %t<br class="m_4173294981008666324gmail_msg">
-; RUN: grep lxvd2x < %t | count 6<br class="m_4173294981008666324gmail_msg">
-; RUN: grep stxvd2x < %t | count 6<br class="m_4173294981008666324gmail_msg">
+; RUN: grep lxvd2x < %t | count 3<br class="m_4173294981008666324gmail_msg">
+; RUN: grep lvx < %t | count 3<br class="m_4173294981008666324gmail_msg">
+; RUN: grep stxvd2x < %t | count 3<br class="m_4173294981008666324gmail_msg">
+; RUN: grep stvx < %t | count 3<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
 ; RUN: llc -verify-machineinstrs -mcpu=pwr9 -O2 \<br class="m_4173294981008666324gmail_msg">
 ; RUN:   -mtriple=powerpc64le-unknown-<wbr>linux-gnu < %s > %t<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
Modified: llvm/trunk/test/CodeGen/<wbr>PowerPC/vsx.ll<br class="m_4173294981008666324gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/PowerPC/vsx.ll?rev=287679&r1=287678&r2=287679&view=diff" rel="noreferrer" class="m_4173294981008666324gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/PowerPC/vsx.ll?rev=<wbr>287679&r1=287678&r2=287679&<wbr>view=diff</a><br class="m_4173294981008666324gmail_msg">
==============================<wbr>==============================<wbr>==================<br class="m_4173294981008666324gmail_msg">
--- llvm/trunk/test/CodeGen/<wbr>PowerPC/vsx.ll (original)<br class="m_4173294981008666324gmail_msg">
+++ llvm/trunk/test/CodeGen/<wbr>PowerPC/vsx.ll Tue Nov 22 13:02:07 2016<br class="m_4173294981008666324gmail_msg">
@@ -1,8 +1,17 @@<br class="m_4173294981008666324gmail_msg">
-; RUN: llc -verify-machineinstrs -mcpu=pwr7 -mtriple=powerpc64-unknown-<wbr>linux-gnu -mattr=+vsx < %s | FileCheck %s<br class="m_4173294981008666324gmail_msg">
-; RUN: llc -verify-machineinstrs -mcpu=pwr7 -mtriple=powerpc64-unknown-<wbr>linux-gnu -mattr=+vsx < %s | FileCheck -check-prefix=CHECK-REG %s<br class="m_4173294981008666324gmail_msg">
-; RUN: llc -verify-machineinstrs -mcpu=pwr7 -mtriple=powerpc64-unknown-<wbr>linux-gnu -mattr=+vsx -fast-isel -O0 < %s | FileCheck %s<br class="m_4173294981008666324gmail_msg">
-; RUN: llc -verify-machineinstrs -mcpu=pwr7 -mtriple=powerpc64-unknown-<wbr>linux-gnu -mattr=+vsx -fast-isel -O0 < %s | FileCheck -check-prefix=CHECK-FISL %s<br class="m_4173294981008666324gmail_msg">
-; RUN: llc -verify-machineinstrs -mcpu=pwr8 -mtriple=powerpc64le-unknown-<wbr>linux-gnu -mattr=+vsx < %s | FileCheck -check-prefix=CHECK-LE %s<br class="m_4173294981008666324gmail_msg">
+; RUN: llc -verify-machineinstrs -mcpu=pwr7 \<br class="m_4173294981008666324gmail_msg">
+; RUN:   -mtriple=powerpc64-unknown-<wbr>linux-gnu -mattr=+vsx < %s | FileCheck %s<br class="m_4173294981008666324gmail_msg">
+; RUN: llc -verify-machineinstrs -mcpu=pwr7 \<br class="m_4173294981008666324gmail_msg">
+; RUN:   -mtriple=powerpc64-unknown-<wbr>linux-gnu -mattr=+vsx < %s | \<br class="m_4173294981008666324gmail_msg">
+; RUN:   FileCheck -check-prefix=CHECK-REG %s<br class="m_4173294981008666324gmail_msg">
+; RUN: llc -verify-machineinstrs -mcpu=pwr7 \<br class="m_4173294981008666324gmail_msg">
+; RUN:   -mtriple=powerpc64-unknown-<wbr>linux-gnu -mattr=+vsx -fast-isel -O0 < %s |\<br class="m_4173294981008666324gmail_msg">
+; RUN:   FileCheck %s<br class="m_4173294981008666324gmail_msg">
+; RUN: llc -verify-machineinstrs -mcpu=pwr7 \<br class="m_4173294981008666324gmail_msg">
+; RUN:   -mtriple=powerpc64-unknown-<wbr>linux-gnu -mattr=+vsx -fast-isel -O0 < %s |\<br class="m_4173294981008666324gmail_msg">
+; RUN:   FileCheck -check-prefix=CHECK-FISL %s<br class="m_4173294981008666324gmail_msg">
+; RUN: llc -verify-machineinstrs -mcpu=pwr8 \<br class="m_4173294981008666324gmail_msg">
+; RUN:   -mtriple=powerpc64le-unknown-<wbr>linux-gnu -mattr=+vsx < %s | \<br class="m_4173294981008666324gmail_msg">
+; RUN:   FileCheck -check-prefix=CHECK-LE %s<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
 define double @test1(double %a, double %b) {<br class="m_4173294981008666324gmail_msg">
 entry:<br class="m_4173294981008666324gmail_msg">
@@ -645,8 +654,8 @@ define <4 x float> @test32(<4 x float>*<br class="m_4173294981008666324gmail_msg">
 ; CHECK-FISL: blr<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
 ; CHECK-LE-LABEL: @test32<br class="m_4173294981008666324gmail_msg">
-; CHECK-LE: lxvd2x [[V1:[0-9]+]], 0, 3<br class="m_4173294981008666324gmail_msg">
-; CHECK-LE: xxswapd 34, [[V1]]<br class="m_4173294981008666324gmail_msg">
+; CHECK-LE: lvx 2, 0, 3<br class="m_4173294981008666324gmail_msg">
+; CHECK-LE-NOT: xxswapd<br class="m_4173294981008666324gmail_msg">
 ; CHECK-LE: blr<br class="m_4173294981008666324gmail_msg">
 }<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
@@ -663,8 +672,8 @@ define void @test33(<4 x float>* %a, <4<br class="m_4173294981008666324gmail_msg">
 ; CHECK-FISL: blr<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
 ; CHECK-LE-LABEL: @test33<br class="m_4173294981008666324gmail_msg">
-; CHECK-LE: xxswapd [[V1:[0-9]+]], 34<br class="m_4173294981008666324gmail_msg">
-; CHECK-LE: stxvd2x [[V1]], 0, 3<br class="m_4173294981008666324gmail_msg">
+; CHECK-LE-NOT: xxswapd<br class="m_4173294981008666324gmail_msg">
+; CHECK-LE: stvx 2, 0, 3<br class="m_4173294981008666324gmail_msg">
 ; CHECK-LE: blr<br class="m_4173294981008666324gmail_msg">
 }<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
@@ -716,8 +725,8 @@ define <4 x i32> @test34(<4 x i32>* %a)<br class="m_4173294981008666324gmail_msg">
 ; CHECK-FISL: blr<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
 ; CHECK-LE-LABEL: @test34<br class="m_4173294981008666324gmail_msg">
-; CHECK-LE: lxvd2x [[V1:[0-9]+]], 0, 3<br class="m_4173294981008666324gmail_msg">
-; CHECK-LE: xxswapd 34, [[V1]]<br class="m_4173294981008666324gmail_msg">
+; CHECK-LE: lvx 2, 0, 3<br class="m_4173294981008666324gmail_msg">
+; CHECK-LE-NOT: xxswapd<br class="m_4173294981008666324gmail_msg">
 ; CHECK-LE: blr<br class="m_4173294981008666324gmail_msg">
 }<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
@@ -734,8 +743,8 @@ define void @test35(<4 x i32>* %a, <4 x<br class="m_4173294981008666324gmail_msg">
 ; CHECK-FISL: blr<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
 ; CHECK-LE-LABEL: @test35<br class="m_4173294981008666324gmail_msg">
-; CHECK-LE: xxswapd [[V1:[0-9]+]], 34<br class="m_4173294981008666324gmail_msg">
-; CHECK-LE: stxvd2x [[V1]], 0, 3<br class="m_4173294981008666324gmail_msg">
+; CHECK-LE-NOT: xxswapd<br class="m_4173294981008666324gmail_msg">
+; CHECK-LE: stvx 2, 0, 3<br class="m_4173294981008666324gmail_msg">
 ; CHECK-LE: blr<br class="m_4173294981008666324gmail_msg">
 }<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
@@ -1154,9 +1163,9 @@ define <2 x i32> @test80(i32 %v) {<br class="m_4173294981008666324gmail_msg">
 ; CHECK-LE-DAG: mtvsrd [[R1:[0-9]+]], 3<br class="m_4173294981008666324gmail_msg">
 ; CHECK-LE-DAG: xxswapd  [[V1:[0-9]+]], [[R1]]<br class="m_4173294981008666324gmail_msg">
 ; CHECK-LE-DAG: addi [[R2:[0-9]+]], {{[0-9]+}}, .LCPI<br class="m_4173294981008666324gmail_msg">
-; CHECK-LE-DAG: lxvd2x [[V2:[0-9]+]], 0, [[R2]]<br class="m_4173294981008666324gmail_msg">
+; CHECK-LE-DAG: lvx 3, 0, [[R2]]<br class="m_4173294981008666324gmail_msg">
 ; CHECK-LE-DAG: xxspltw 34, [[V1]]<br class="m_4173294981008666324gmail_msg">
-; CHECK-LE-DAG: xxswapd 35, [[V2]]<br class="m_4173294981008666324gmail_msg">
+; CHECK-LE-NOT: xxswapd 35, [[V2]]<br class="m_4173294981008666324gmail_msg">
 ; CHECK-LE: vadduwm 2, 2, 3<br class="m_4173294981008666324gmail_msg">
 ; CHECK-LE: blr<br class="m_4173294981008666324gmail_msg">
 }<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
<br class="m_4173294981008666324gmail_msg">
______________________________<wbr>_________________<br class="m_4173294981008666324gmail_msg">
llvm-commits mailing list<br class="m_4173294981008666324gmail_msg">
<a href="mailto:llvm-commits@lists.llvm.org" class="m_4173294981008666324gmail_msg" target="_blank">llvm-commits@lists.llvm.org</a><br class="m_4173294981008666324gmail_msg">
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" class="m_4173294981008666324gmail_msg" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-commits</a><br class="m_4173294981008666324gmail_msg">
</blockquote></div></div>
</blockquote></div><br></div>