summaryrefslogtreecommitdiff
path: root/test/CodeGen
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2013-06-04 17:46:15 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2013-06-04 17:46:15 +0000
commit35e7751af455f2cc559cdc2d3424b53706e09bb3 (patch)
tree0513bb80dc7a5583aad2170d91b3589dae4f3c03 /test/CodeGen
parent8240ef04108620fef51219e9495a6e71e95ccd75 (diff)
downloadllvm-35e7751af455f2cc559cdc2d3424b53706e09bb3.tar.gz
llvm-35e7751af455f2cc559cdc2d3424b53706e09bb3.tar.bz2
llvm-35e7751af455f2cc559cdc2d3424b53706e09bb3.tar.xz
ARM: Fix crash in ARM backend inside of ARMConstantIslandPass
The ARM backend did not expect LDRBi12 to hold a constant pool operand. Allow for LLVM to deal with the instruction similar to how it deals with LDRi12. This fixes PR16215. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183238 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen')
-rw-r--r--test/CodeGen/ARM/load-address-masked.ll14
1 files changed, 14 insertions, 0 deletions
diff --git a/test/CodeGen/ARM/load-address-masked.ll b/test/CodeGen/ARM/load-address-masked.ll
new file mode 100644
index 0000000000..43c98e45d4
--- /dev/null
+++ b/test/CodeGen/ARM/load-address-masked.ll
@@ -0,0 +1,14 @@
+; RUN: llc < %s -mtriple=armv4t-unknown-linux-gnueabi -verify-machineinstrs | FileCheck %s
+
+target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:64:128-a0:0:64-n32-S64"
+target triple = "armv4t-unknown-linux-gnueabi"
+
+@a = global i32 0, align 4
+
+define i32 @foo() {
+entry:
+ ret i32 and (i32 ptrtoint (i32* @a to i32), i32 255)
+}
+
+; CHECK: foo:
+; CHECK: ldrb r0, .LCPI0_0