diff --git a/lib/CodeGen/SelectionDAG/DAGCombiner.cpp b/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
index cbaa13c..c118dff 100644
--- a/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+++ b/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
@@ -15450,16 +15450,17 @@
             if (auto *C = dyn_cast<ConstantSDNode>(Value)) {
               APInt Val = C1->getAPIntValue();
               APInt InsertVal = C->getAPIntValue().zextOrTrunc(STByteSize * 8);
-              if (DAG.getDataLayout().isBigEndian())
-                Offset = ChainByteSize - 1 - Offset;
-              Val.insertBits(InsertVal, Offset * 8);
-              SDValue NewSDVal =
-                  DAG.getConstant(Val, SDLoc(C), ChainValue.getValueType(),
-                                  C1->isTargetOpcode(), C1->isOpaque());
-              SDNode *NewST1 = DAG.UpdateNodeOperands(
-                  ST1, ST1->getChain(), NewSDVal, ST1->getOperand(2),
-                  ST1->getOperand(3));
-              return CombineTo(ST, SDValue(NewST1, 0));
+              // FIXME: Handle Big-endian mode.
+              if (!DAG.getDataLayout().isBigEndian()) {
+                Val.insertBits(InsertVal, Offset * 8);
+                SDValue NewSDVal =
+                    DAG.getConstant(Val, SDLoc(C), ChainValue.getValueType(),
+                                    C1->isTargetOpcode(), C1->isOpaque());
+                SDNode *NewST1 = DAG.UpdateNodeOperands(
+                    ST1, ST1->getChain(), NewSDVal, ST1->getOperand(2),
+                    ST1->getOperand(3));
+                return CombineTo(ST, SDValue(NewST1, 0));
+              }
             }
           }
         } // End ST subset of ST1 case.
diff --git a/test/CodeGen/PowerPC/constant-combines.ll b/test/CodeGen/PowerPC/constant-combines.ll
index bd14509..dd40b75 100644
--- a/test/CodeGen/PowerPC/constant-combines.ll
+++ b/test/CodeGen/PowerPC/constant-combines.ll
@@ -1,13 +1,14 @@
 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
-; RUN: llc -mtriple=powerpc64-unknown-linux-gnu   -o - %s | FileCheck --check-prefix=BE %s 
+; RUN: llc -mtriple=powerpc64-unknown-linux-gnu   -o - %s | FileCheck --check-prefix=BE %s
 ; RUN: llc -mtriple=powerpc64le-unknown-linux-gnu -o - %s | FileCheck --check-prefix=LE %s
 
 define void @fold_constant_stores_loaddr(i8* %i8_ptr) {
 ; BE-LABEL: fold_constant_stores_loaddr:
 ; BE:       # %bb.0: # %entry
-; BE-NEXT:    li 4, 85
-; BE-NEXT:    sldi 4, 4, 57
+; BE-NEXT:    li 4, 0
 ; BE-NEXT:    std 4, 0(3)
+; BE-NEXT:    li 4, -86
+; BE-NEXT:    stb 4, 0(3)
 ; BE-NEXT:    blr
 ;
 ; LE-LABEL: fold_constant_stores_loaddr:
@@ -26,9 +27,10 @@
 define void @fold_constant_stores_hiaddr(i8* %i8_ptr) {
 ; BE-LABEL: fold_constant_stores_hiaddr:
 ; BE:       # %bb.0: # %entry
-; BE-NEXT:    li 4, 85
-; BE-NEXT:    sldi 4, 4, 57
+; BE-NEXT:    li 4, 0
 ; BE-NEXT:    std 4, 0(3)
+; BE-NEXT:    li 4, -86
+; BE-NEXT:    stb 4, 0(3)
 ; BE-NEXT:    blr
 ;
 ; LE-LABEL: fold_constant_stores_hiaddr:
