summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorZoran Jovanovic <zoran.jovanovic@imgtec.com>2015-02-04 15:43:17 +0000
committerZoran Jovanovic <zoran.jovanovic@imgtec.com>2015-02-04 15:43:17 +0000
commit8dc0ae66069d3de8d2fdb630028115af054aa2d0 (patch)
tree564504fa953e192511296616e6c69f0bcba4e7b8 /test
parent372730d7eeba1363fedf1edf117d20b6c66c429e (diff)
[mips][microMIPS] Implement CodeGen support for SW16 and LW16 instructions
Differential Revision: http://reviews.llvm.org/D6581 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@228149 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r--test/CodeGen/Mips/longbranch.ll2
-rw-r--r--test/CodeGen/Mips/micromips-sw-lw-16.ll27
2 files changed, 28 insertions, 1 deletions
diff --git a/test/CodeGen/Mips/longbranch.ll b/test/CodeGen/Mips/longbranch.ll
index ad0235eb0af..821ced8e7b8 100644
--- a/test/CodeGen/Mips/longbranch.ll
+++ b/test/CodeGen/Mips/longbranch.ll
@@ -124,7 +124,7 @@ end:
; MICROMIPS: $[[BB0]]:
; MICROMIPS: lw $[[R1:[0-9]+]], %got(x)($[[GP]])
; MICROMIPS: li16 $[[R2:[0-9]+]], 1
-; MICROMIPS: sw $[[R2]], 0($[[R1]])
+; MICROMIPS: sw16 $[[R2]], 0($[[R1]])
; MICROMIPS: $[[BB2]]:
; MICROMIPS: jr $ra
; MICROMIPS: nop
diff --git a/test/CodeGen/Mips/micromips-sw-lw-16.ll b/test/CodeGen/Mips/micromips-sw-lw-16.ll
new file mode 100644
index 00000000000..bc095546ceb
--- /dev/null
+++ b/test/CodeGen/Mips/micromips-sw-lw-16.ll
@@ -0,0 +1,27 @@
+; RUN: llc %s -march=mipsel -mattr=micromips -filetype=asm \
+; RUN: -relocation-model=pic -O3 -o - | FileCheck %s
+
+; Function Attrs: noinline nounwind
+define void @bar(i32* %p) #0 {
+entry:
+ %p.addr = alloca i32*, align 4
+ store i32* %p, i32** %p.addr, align 4
+ %0 = load i32** %p.addr, align 4
+ %1 = load i32* %0, align 4
+ %add = add nsw i32 7, %1
+ %2 = load i32** %p.addr, align 4
+ store i32 %add, i32* %2, align 4
+ %3 = load i32** %p.addr, align 4
+ %add.ptr = getelementptr inbounds i32* %3, i32 1
+ %4 = load i32* %add.ptr, align 4
+ %add1 = add nsw i32 7, %4
+ %5 = load i32** %p.addr, align 4
+ %add.ptr2 = getelementptr inbounds i32* %5, i32 1
+ store i32 %add1, i32* %add.ptr2, align 4
+ ret void
+}
+
+; CHECK: lw16 ${{[0-9]+}}, 0($4)
+; CHECK: sw16 ${{[0-9]+}}, 0($4)
+; CHECK: lw16 ${{[0-9]+}}, 4(${{[0-9]+}})
+; CHECK: sw16 ${{[0-9]+}}, 4(${{[0-9]+}})