diff options
| author | Bruno Cardoso Lopes <bruno.cardoso@gmail.com> | 2016-08-03 21:26:21 +0000 |
|---|---|---|
| committer | Bruno Cardoso Lopes <bruno.cardoso@gmail.com> | 2016-08-03 21:26:21 +0000 |
| commit | 3fcf832cce65fdf810a13f0003b73d6fbc316a0b (patch) | |
| tree | 5e3d61d84edc9349ac2bb3cf9628f35f92c1e10b /llvm | |
| parent | e7f912cd8f12965a78c5e8a914fbf764834bbf7c (diff) | |
| download | bcm5719-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.cpp | 4 | ||||
| -rw-r--r-- | llvm/test/CodeGen/ARM/subtarget-no-movt.ll | 17 |
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" } |

