summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorBruno Cardoso Lopes <bruno.cardoso@gmail.com>2016-08-03 21:26:21 +0000
committerBruno Cardoso Lopes <bruno.cardoso@gmail.com>2016-08-03 21:26:21 +0000
commit3fcf832cce65fdf810a13f0003b73d6fbc316a0b (patch)
tree5e3d61d84edc9349ac2bb3cf9628f35f92c1e10b /llvm
parente7f912cd8f12965a78c5e8a914fbf764834bbf7c (diff)
downloadbcm5719-llvm-3fcf832cce65fdf810a13f0003b73d6fbc316a0b.tar.gz
bcm5719-llvm-3fcf832cce65fdf810a13f0003b73d6fbc316a0b.zip
Revert "[ARM] Constant Materialize: imms with specific value can be encoded into mov.w"
This reverts commit r277610 / d619aa8878c3dafcc0d29a46517f63ff3209fdd4. This make subtarget-no-movt.ll fail in http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA-incremental_check/26892, llvm-svn: 277654
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp4
-rw-r--r--llvm/test/CodeGen/ARM/subtarget-no-movt.ll17
2 files changed, 1 insertions, 20 deletions
diff --git a/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp b/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp
index 01b4e19940d..d11de555fa3 100644
--- a/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp
+++ b/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp
@@ -476,9 +476,7 @@ bool ARMDAGToDAGISel::isShifterOpProfitable(const SDValue &Shift,
unsigned ARMDAGToDAGISel::ConstantMaterializationCost(unsigned Val) const {
if (Subtarget->isThumb()) {
if (Val <= 255) return 1; // MOV
- if (Subtarget->hasV6T2Ops() &&
- (Val <= 0xffff || ARM_AM::getT2SOImmValSplatVal(Val) != -1))
- return 1; // MOVW
+ if (Subtarget->hasV6T2Ops() && Val <= 0xffff) return 1; // MOVW
if (Val <= 510) return 2; // MOV + ADDi8
if (~Val <= 255) return 2; // MOV + MVN
if (ARM_AM::isThumbImmShiftedVal(Val)) return 2; // MOV + LSL
diff --git a/llvm/test/CodeGen/ARM/subtarget-no-movt.ll b/llvm/test/CodeGen/ARM/subtarget-no-movt.ll
index aad3c0a2ed6..cb61bde3f9c 100644
--- a/llvm/test/CodeGen/ARM/subtarget-no-movt.ll
+++ b/llvm/test/CodeGen/ARM/subtarget-no-movt.ll
@@ -42,21 +42,4 @@ define i32 @foo1(i32 %a) {
ret i32 %1
}
-; NO-OPTION-LABEL: {{_?}}foo2
-; NO-OPTION: mov.w r0, #-536813568
-; NO-OPTION-LABEL-NOT: .long
-
-; USE-MOVT-LABEL: {{_?}}foo2
-; USE-MOVT: mov.w r0, #-536813568
-; USE-MOVT-NOT: .long
-
-; NO-USE-MOVT-LABEL: {{_?}}foo2
-; NO-USE-MOVT: mov.w r0, #-536813568
-; NO-USE-MOVT-NOT: .long
-define i32 @foo2() {
- %1 = load i32, i32* inttoptr (i32 -536813568 to i32*) ; load from 0xe000e000
- ret i32 %1
-}
-
-
attributes #0 = { "target-features"="+no-movt" }
OpenPOWER on IntegriCloud