summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/ARM/vector-DAGCombine.ll
diff options
context:
space:
mode:
authorKristof Beyls <kristof.beyls@arm.com>2017-06-28 07:07:03 +0000
committerKristof Beyls <kristof.beyls@arm.com>2017-06-28 07:07:03 +0000
commiteecb353d0e25bae018bad815f9169c73666af5bd (patch)
tree6ff0e4920f837efd600ae00ba9dbaa896d552792 /llvm/test/CodeGen/ARM/vector-DAGCombine.ll
parent7a82cffd68bccfea62762873375e30503dcc0bf8 (diff)
downloadbcm5719-llvm-eecb353d0e25bae018bad815f9169c73666af5bd.tar.gz
bcm5719-llvm-eecb353d0e25bae018bad815f9169c73666af5bd.zip
[ARM] Make -mcpu=generic schedule for an in-order core (Cortex-A8).
The benchmarking summarized in http://lists.llvm.org/pipermail/llvm-dev/2017-May/113525.html showed this is beneficial for a wide range of cores. As is to be expected, quite a few small adaptations are needed to the regressions tests, as the difference in scheduling results in: - Quite a few small instruction schedule differences. - A few changes in register allocation decisions caused by different instruction schedules. - A few changes in IfConversion decisions, due to a difference in instruction schedule and/or the estimated cost of a branch mispredict. llvm-svn: 306514
Diffstat (limited to 'llvm/test/CodeGen/ARM/vector-DAGCombine.ll')
-rw-r--r--llvm/test/CodeGen/ARM/vector-DAGCombine.ll10
1 files changed, 5 insertions, 5 deletions
diff --git a/llvm/test/CodeGen/ARM/vector-DAGCombine.ll b/llvm/test/CodeGen/ARM/vector-DAGCombine.ll
index 2ef2a0697ec..8623d2c164b 100644
--- a/llvm/test/CodeGen/ARM/vector-DAGCombine.ll
+++ b/llvm/test/CodeGen/ARM/vector-DAGCombine.ll
@@ -237,14 +237,14 @@ entry:
; illegal type to a legal type.
define <2 x i8> @test_truncate(<2 x i128> %in) {
; CHECK-LABEL: test_truncate:
-; CHECK: mov [[BASE:r[0-9]+]], sp
-; CHECK-NEXT: vld1.32 {[[REG1:d[0-9]+]][0]}, {{\[}}[[BASE]]:32]
-; CHECK-NEXT: add [[BASE2:r[0-9]+]], [[BASE]], #4
-; CHECK-NEXT: vld1.32 {[[REG1]][1]}, {{\[}}[[BASE2]]:32]
; REG2 Should map on the same Q register as REG1, i.e., REG2 = REG1 - 1, but we
; cannot express that.
-; CHECK-NEXT: vmov.32 [[REG2:d[0-9]+]][0], r0
+; CHECK: vmov.32 [[REG2:d[0-9]+]][0], r0
+; CHECK-NEXT: mov [[BASE:r[0-9]+]], sp
+; CHECK-NEXT: vld1.32 {[[REG1:d[0-9]+]][0]}, {{\[}}[[BASE]]:32]
+; CHECK-NEXT: add [[BASE2:r[0-9]+]], [[BASE]], #4
; CHECK-NEXT: vmov.32 [[REG2]][1], r1
+; CHECK-NEXT: vld1.32 {[[REG1]][1]}, {{\[}}[[BASE2]]:32]
; The Q register used here should match floor(REG1/2), but we cannot express that.
; CHECK-NEXT: vmovn.i64 [[RES:d[0-9]+]], q{{[0-9]+}}
; CHECK-NEXT: vmov r0, r1, [[RES]]
OpenPOWER on IntegriCloud