Change the order of the splitted store from high - low to low - high.
authorWei Mi <wmi@google.com>
Sun, 18 Sep 2016 06:10:32 +0000 (06:10 +0000)
committerWei Mi <wmi@google.com>
Sun, 18 Sep 2016 06:10:32 +0000 (06:10 +0000)
It is a trivial change which could make the testcase easier to be reused
for the store splitting in CodeGenPrepare.

llvm-svn: 281846

llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
llvm/test/CodeGen/X86/split-store.ll

index 316a04a..bd88287 100644 (file)
@@ -12330,10 +12330,10 @@ SDValue DAGCombiner::splitMergedValStore(StoreSDNode *ST) {
                   DAG.getConstant(HalfValBitSize / 8, DL, Ptr.getValueType()));
   // Higher value store.
   SDValue St1 =
-      DAG.getStore(Chain, DL, Hi, Ptr,
+      DAG.getStore(St0, DL, Hi, Ptr,
                    ST->getPointerInfo().getWithOffset(HalfValBitSize / 8),
                    Alignment / 2, MMOFlags, AAInfo);
-  return DAG.getNode(ISD::TokenFactor, DL, MVT::Other, St0, St1);
+  return St1;
 }
 
 SDValue DAGCombiner::visitINSERT_VECTOR_ELT(SDNode *N) {
index 7a491e6..8a276f8 100644 (file)
@@ -1,8 +1,8 @@
 ; RUN: llc -mtriple=x86_64-unknown-unknown < %s | FileCheck %s
 
 ; CHECK-LABEL: int32_float_pair
-; CHECK: movss %xmm0, 4(%rsi)
 ; CHECK: movl %edi, (%rsi)
+; CHECK: movss %xmm0, 4(%rsi)
 define void @int32_float_pair(i32 %tmp1, float %tmp2, i64* %ref.tmp) {
 entry:
   %t0 = bitcast float %tmp2 to i32
@@ -15,8 +15,8 @@ entry:
 }
 
 ; CHECK-LABEL: float_int32_pair
-; CHECK: movl %edi, 4(%rsi)
 ; CHECK: movss %xmm0, (%rsi)
+; CHECK: movl %edi, 4(%rsi)
 define void @float_int32_pair(float %tmp1, i32 %tmp2, i64* %ref.tmp) {
 entry:
   %t0 = bitcast float %tmp1 to i32
@@ -29,9 +29,9 @@ entry:
 }
 
 ; CHECK-LABEL: int16_float_pair
-; CHECK: movss %xmm0, 4(%rsi)
 ; CHECK: movzwl        %di, %eax
 ; CHECK: movl %eax, (%rsi)
+; CHECK: movss %xmm0, 4(%rsi)
 define void @int16_float_pair(i16 signext %tmp1, float %tmp2, i64* %ref.tmp) {
 entry:
   %t0 = bitcast float %tmp2 to i32
@@ -44,9 +44,9 @@ entry:
 }
 
 ; CHECK-LABEL: int8_float_pair
-; CHECK: movss %xmm0, 4(%rsi)
 ; CHECK: movzbl        %dil, %eax
 ; CHECK: movl %eax, (%rsi)
+; CHECK: movss %xmm0, 4(%rsi)
 define void @int8_float_pair(i8 signext %tmp1, float %tmp2, i64* %ref.tmp) {
 entry:
   %t0 = bitcast float %tmp2 to i32