summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/Thumb2
diff options
context:
space:
mode:
authorMatthias Braun <matze@braunis.de>2015-06-01 23:27:08 +0000
committerMatthias Braun <matze@braunis.de>2015-06-01 23:27:08 +0000
commite20dc1cd3ac696805b7e57402d5d8d7129873cde (patch)
tree66d9bf4da43648a400deac06f67c2ef8f1d62a4d /llvm/test/CodeGen/Thumb2
parent81e2b6bbe78ec34f197809d9eaa3bdd05619149d (diff)
downloadbcm5719-llvm-e20dc1cd3ac696805b7e57402d5d8d7129873cde.tar.gz
bcm5719-llvm-e20dc1cd3ac696805b7e57402d5d8d7129873cde.zip
ARM: Thumb2 LDRD/STRD supports independent input/output regs
The existing code would unnecessarily break LDRD/STRD apart with non-adjacent registers, on thumb2 this is not necessary. Ideally on thumb2 we shouldn't match for ldrd/strd pre-regalloc anymore as there is not reason to set register hints anymore, changing that is something for a future patch however. Differential Revision: http://reviews.llvm.org/D9694 llvm-svn: 238795
Diffstat (limited to 'llvm/test/CodeGen/Thumb2')
-rw-r--r--llvm/test/CodeGen/Thumb2/float-ops.ll6
1 files changed, 2 insertions, 4 deletions
diff --git a/llvm/test/CodeGen/Thumb2/float-ops.ll b/llvm/test/CodeGen/Thumb2/float-ops.ll
index 7ec08f86665..4c42908ce13 100644
--- a/llvm/test/CodeGen/Thumb2/float-ops.ll
+++ b/llvm/test/CodeGen/Thumb2/float-ops.ll
@@ -109,7 +109,7 @@ entry:
define double @load_d(double* %a) {
entry:
; CHECK-LABEL: load_d:
-; NONE: ldm r0, {r0, r1}
+; NONE: ldrd r0, r1, [r0]
; HARD: vldr d0, [r0]
%0 = load double, double* %a, align 8
ret double %0
@@ -127,9 +127,7 @@ entry:
define void @store_d(double* %a, double %b) {
entry:
; CHECK-LABEL: store_d:
-; NONE: mov r1, r3
-; NONE: str r2, [r0]
-; NONE: str r1, [r0, #4]
+; NONE: strd r2, r3, [r0]
; HARD: vstr d0, [r0]
store double %b, double* %a, align 8
ret void
OpenPOWER on IntegriCloud