diff options
author | Lang Hames <lhames@gmail.com> | 2011-11-08 18:56:23 +0000 |
---|---|---|
committer | Lang Hames <lhames@gmail.com> | 2011-11-08 18:56:23 +0000 |
commit | b85fcd07dfe477afb2c305b879f214eddc70c827 (patch) | |
tree | 37f7ccd4acbabea123ffd68c0b3e76a3dac1afda /llvm/test | |
parent | 82cd9e81fcc8ce8b051404ef0c9ea2abd8048fbb (diff) | |
download | bcm5719-llvm-b85fcd07dfe477afb2c305b879f214eddc70c827.tar.gz bcm5719-llvm-b85fcd07dfe477afb2c305b879f214eddc70c827.zip |
Lower mem-ops to unaligned i32/i16 load/stores on ARM where supported.
Add support for trimming constants to GetDemandedBits. This fixes some funky
constant generation that occurs when stores are expanded for targets that don't
support unaligned stores natively.
llvm-svn: 144102
Diffstat (limited to 'llvm/test')
-rw-r--r-- | llvm/test/CodeGen/ARM/2011-10-26-memset-inline.ll | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/llvm/test/CodeGen/ARM/2011-10-26-memset-inline.ll b/llvm/test/CodeGen/ARM/2011-10-26-memset-inline.ll index a236ffe475c..ff049c89860 100644 --- a/llvm/test/CodeGen/ARM/2011-10-26-memset-inline.ll +++ b/llvm/test/CodeGen/ARM/2011-10-26-memset-inline.ll @@ -1,14 +1,17 @@ ; Make sure short memsets on ARM lower to stores, even when optimizing for size. -; RUN: llc -march=arm < %s | FileCheck %s +; RUN: llc -march=arm < %s | FileCheck %s -check-prefix=CHECK-GENERIC +; RUN: llc -march=arm -mcpu=cortex-a8 < %s | FileCheck %s -check-prefix=CHECK-UNALIGNED target datalayout = "e-p:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:32:64-v128:32:128-a0:0:32-n32-S32" target triple = "thumbv7-apple-ios5.0.0" -; CHECK: strb -; CHECK-NEXT: strb -; CHECK-NEXT: strb -; CHECK-NEXT: strb -; CHECK-NEXT: strb +; CHECK-GENERIC: strb +; CHECK-GENERIT-NEXT: strb +; CHECK-GENERIT-NEXT: strb +; CHECK-GENERIT-NEXT: strb +; CHECK-GENERIT-NEXT: strb +; CHECK-UNALIGNED: strb +; CHECK-UNALIGNED-NEXT: str define void @foo(i8* nocapture %c) nounwind optsize { entry: call void @llvm.memset.p0i8.i64(i8* %c, i8 -1, i64 5, i32 1, i1 false) |