diff options
Diffstat (limited to 'llvm/test')
| -rw-r--r-- | llvm/test/CodeGen/Thumb/2014-06-10-thumb1-ldst-opt-bug.ll | 4 | ||||
| -rw-r--r-- | llvm/test/CodeGen/Thumb/dyn-stackalloc.ll | 7 | ||||
| -rw-r--r-- | llvm/test/CodeGen/Thumb/thumb-memcpy-ldm-stm.ll | 19 |
3 files changed, 20 insertions, 10 deletions
diff --git a/llvm/test/CodeGen/Thumb/2014-06-10-thumb1-ldst-opt-bug.ll b/llvm/test/CodeGen/Thumb/2014-06-10-thumb1-ldst-opt-bug.ll index 18e17766313..cfa1159bda2 100644 --- a/llvm/test/CodeGen/Thumb/2014-06-10-thumb1-ldst-opt-bug.ll +++ b/llvm/test/CodeGen/Thumb/2014-06-10-thumb1-ldst-opt-bug.ll @@ -4,8 +4,8 @@ define void @foo(i32* %A) #0 { entry: ; CHECK-LABEL: foo: ; CHECK: push {r7, lr} -; CHECK: ldr -; CHECK-NEXT: ldr +; CHECK: ldm +; CHECK-NEXT: subs ; CHECK-NEXT: bl %0 = load i32* %A, align 4 %arrayidx1 = getelementptr inbounds i32* %A, i32 1 diff --git a/llvm/test/CodeGen/Thumb/dyn-stackalloc.ll b/llvm/test/CodeGen/Thumb/dyn-stackalloc.ll index 706a21350d0..309d80217c1 100644 --- a/llvm/test/CodeGen/Thumb/dyn-stackalloc.ll +++ b/llvm/test/CodeGen/Thumb/dyn-stackalloc.ll @@ -1,5 +1,5 @@ -; RUN: llc < %s -mtriple=thumb-apple-darwin -disable-cgp-branch-opts -disable-post-ra -verify-machineinstrs | FileCheck %s -check-prefix=CHECK -; RUN: llc < %s -mtriple=thumb-apple-darwin -disable-cgp-branch-opts -disable-post-ra -regalloc=basic -verify-machineinstrs | FileCheck %s -check-prefix=CHECK +; RUN: llc < %s -mtriple=thumb-apple-darwin -disable-cgp-branch-opts -disable-post-ra -verify-machineinstrs | FileCheck %s -check-prefix=CHECK -check-prefix=RA_GREEDY +; RUN: llc < %s -mtriple=thumb-apple-darwin -disable-cgp-branch-opts -disable-post-ra -regalloc=basic -verify-machineinstrs | FileCheck %s -check-prefix=CHECK -check-prefix=RA_BASIC %struct.state = type { i32, %struct.info*, float**, i32, i32, i32, i32, i32, i32, i32, i32, i32, i64, i64, i64, i64, i64, i64, i8* } %struct.info = type { i32, i32, i32, i32, i32, i32, i32, i8* } @@ -45,7 +45,8 @@ define void @t2(%struct.comment* %vc, i8* %tag, i8* %contents) { ; CHECK: sub sp, # ; CHECK: mov r[[R0:[0-9]+]], sp ; CHECK: str r{{[0-9+]}}, [r[[R0]] -; CHECK: str r{{[0-9+]}}, [r[[R0]] +; RA_GREEDY: str r{{[0-9+]}}, [r[[R0]] +; RA_BASIC: stm r[[R0]]! ; CHECK-NOT: ldr r0, [sp ; CHECK: mov r[[R1:[0-9]+]], sp ; CHECK: subs r[[R2:[0-9]+]], r[[R1]], r{{[0-9]+}} diff --git a/llvm/test/CodeGen/Thumb/thumb-memcpy-ldm-stm.ll b/llvm/test/CodeGen/Thumb/thumb-memcpy-ldm-stm.ll index c97036289c8..da2f3f09b28 100644 --- a/llvm/test/CodeGen/Thumb/thumb-memcpy-ldm-stm.ll +++ b/llvm/test/CodeGen/Thumb/thumb-memcpy-ldm-stm.ll @@ -1,5 +1,4 @@ ; RUN: llc -mtriple=thumbv6m-eabi -verify-machineinstrs %s -o - | FileCheck %s - @d = external global [64 x i32] @s = external global [64 x i32] @@ -7,8 +6,12 @@ define void @t1() #0 { entry: ; CHECK-LABEL: t1: -; CHECK-NOT: ldm -; CHECK-NOT: stm +; CHECK: ldr r[[LB:[0-9]]], +; CHECK-NEXT: ldm r[[LB]]!, +; CHECK-NEXT: ldr r[[SB:[0-9]]], +; CHECK-NEXT: stm r[[SB]]!, +; CHECK-NEXT: ldrb {{.*}}, [r[[LB]]] +; CHECK-NEXT: strb {{.*}}, [r[[SB]]] tail call void @llvm.memcpy.p0i8.p0i8.i32(i8* bitcast ([64 x i32]* @s to i8*), i8* bitcast ([64 x i32]* @d to i8*), i32 17, i32 4, i1 false) ret void } @@ -17,8 +20,14 @@ entry: define void @t2() #0 { entry: ; CHECK-LABEL: t2: -; CHECK-NOT: ldm -; CHECK-NOT: stm +; CHECK: ldr r[[LB:[0-9]]], +; CHECK-NEXT: ldm r[[LB]]!, +; CHECK-NEXT: ldr r[[SB:[0-9]]], +; CHECK-NEXT: stm r[[SB]]!, +; CHECK-NEXT: ldrh {{.*}}, [r[[LB]]] +; CHECK-NEXT: ldrb {{.*}}, [r[[LB]], #2] +; CHECK-NEXT: strb {{.*}}, [r[[SB]], #2] +; CHECK-NEXT: strh {{.*}}, [r[[SB]]] tail call void @llvm.memcpy.p0i8.p0i8.i32(i8* bitcast ([64 x i32]* @s to i8*), i8* bitcast ([64 x i32]* @d to i8*), i32 15, i32 4, i1 false) ret void } |

