diff options
author | Eli Friedman <eli.friedman@gmail.com> | 2011-11-30 21:54:15 +0000 |
---|---|---|
committer | Eli Friedman <eli.friedman@gmail.com> | 2011-11-30 21:54:15 +0000 |
commit | 6cff9df2984bd52b455023f5841289c6cfafed6e (patch) | |
tree | 4947a6021936a784dc32fc8fe6a890c4232e4151 /llvm/test/CodeGen/ARM/2011-11-30-MergeAlignment.ll | |
parent | ad8b58b2ac96b94b3cbd6afedfcd6a5c66fd3f06 (diff) | |
download | bcm5719-llvm-6cff9df2984bd52b455023f5841289c6cfafed6e.tar.gz bcm5719-llvm-6cff9df2984bd52b455023f5841289c6cfafed6e.zip |
Make GlobalMerge honor the preferred alignment on globals without an explicitly specified alignment.
<rdar://problem/10497732>.
llvm-svn: 145523
Diffstat (limited to 'llvm/test/CodeGen/ARM/2011-11-30-MergeAlignment.ll')
-rw-r--r-- | llvm/test/CodeGen/ARM/2011-11-30-MergeAlignment.ll | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/ARM/2011-11-30-MergeAlignment.ll b/llvm/test/CodeGen/ARM/2011-11-30-MergeAlignment.ll new file mode 100644 index 00000000000..0c90f4cf949 --- /dev/null +++ b/llvm/test/CodeGen/ARM/2011-11-30-MergeAlignment.ll @@ -0,0 +1,24 @@ +; RUN: llc < %s | FileCheck %s +; <rdar://problem/10497732> + +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" +target triple = "thumbv7-apple-darwin10" + +@x1 = internal global i32 1 +@x2 = internal global i64 12 + +define i64 @f() { + %ax = load i32* @x1 + %a = zext i32 %ax to i64 + %b = load i64* @x2 + %c = add i64 %a, %b + ret i64 %c +} + +; We can global-merge the i64 in theory, but the current code doesn't handle +; the alignment correctly; for the moment, just check that we don't do it. +; See also + +; CHECK-NOT: MergedGlobals +; CHECK: _x2 +; CHECK-NOT: MergedGlobals |