summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/Mips/micromips-shift.ll
diff options
context:
space:
mode:
authorZoran Jovanovic <zoran.jovanovic@imgtec.com>2014-11-05 15:46:53 +0000
committerZoran Jovanovic <zoran.jovanovic@imgtec.com>2014-11-05 15:46:53 +0000
commitf4f5f1e272a33a34cb5b7e00a10f2399d1c75f17 (patch)
tree225eafe2b42e42f664017ec4ed129de376a866c7 /llvm/test/CodeGen/Mips/micromips-shift.ll
parente548bb06349aedc248aae9a8785fa0963cc9ace0 (diff)
downloadbcm5719-llvm-f4f5f1e272a33a34cb5b7e00a10f2399d1c75f17.tar.gz
bcm5719-llvm-f4f5f1e272a33a34cb5b7e00a10f2399d1c75f17.zip
[mips][microMIPS] Implement CodeGen support for SLL16 and SRL16 instructions
Differential Revision: http://reviews.llvm.org/D5933 llvm-svn: 221352
Diffstat (limited to 'llvm/test/CodeGen/Mips/micromips-shift.ll')
-rw-r--r--llvm/test/CodeGen/Mips/micromips-shift.ll44
1 files changed, 44 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/Mips/micromips-shift.ll b/llvm/test/CodeGen/Mips/micromips-shift.ll
new file mode 100644
index 00000000000..8215010bfc7
--- /dev/null
+++ b/llvm/test/CodeGen/Mips/micromips-shift.ll
@@ -0,0 +1,44 @@
+; RUN: llc -march=mipsel -mcpu=mips32r2 -mattr=+micromips \
+; RUN: -relocation-model=pic -O3 < %s | FileCheck %s
+
+@a = global i32 10, align 4
+@b = global i32 0, align 4
+@c = global i32 10, align 4
+@d = global i32 0, align 4
+
+define i32 @shift_left() nounwind {
+entry:
+ %0 = load i32* @a, align 4
+ %shl = shl i32 %0, 4
+ store i32 %shl, i32* @b, align 4
+
+ %1 = load i32* @c, align 4
+ %shl1 = shl i32 %1, 10
+ store i32 %shl1, i32* @d, align 4
+
+ ret i32 0
+}
+
+; CHECK: sll16 ${{[2-7]|16|17}}, ${{[2-7]|16|17}}, {{[0-7]}}
+; CHECK: sll ${{[0-9]+}}, ${{[0-9]+}}, {{[0-9]+}}
+
+@i = global i32 10654, align 4
+@j = global i32 0, align 4
+@m = global i32 10, align 4
+@n = global i32 0, align 4
+
+define i32 @shift_right() nounwind {
+entry:
+ %0 = load i32* @i, align 4
+ %shr = lshr i32 %0, 4
+ store i32 %shr, i32* @j, align 4
+
+ %1 = load i32* @m, align 4
+ %shr1 = lshr i32 %1, 10
+ store i32 %shr1, i32* @n, align 4
+
+ ret i32 0
+}
+
+; CHECK: srl16 ${{[2-7]|16|17}}, ${{[2-7]|16|17}}, {{[0-7]}}
+; CHECK: srl ${{[0-9]+}}, ${{[0-9]+}}, {{[0-9]+}}
OpenPOWER on IntegriCloud