summaryrefslogtreecommitdiff
path: root/test/CodeGen/SystemZ
diff options
context:
space:
mode:
authorAnton Korobeynikov <asl@math.spbu.ru>2009-07-16 14:06:49 +0000
committerAnton Korobeynikov <asl@math.spbu.ru>2009-07-16 14:06:49 +0000
commit759205d1ac63d6b03c4b2f24a41b8848947335d4 (patch)
tree45328d54363c1565827fdcb5a1c9171fd067bb94 /test/CodeGen/SystemZ
parentcfca8b1f62f9a334467cc3e184f43b2097417ba7 (diff)
downloadllvm-759205d1ac63d6b03c4b2f24a41b8848947335d4.tar.gz
llvm-759205d1ac63d6b03c4b2f24a41b8848947335d4.tar.bz2
llvm-759205d1ac63d6b03c4b2f24a41b8848947335d4.tar.xz
Add rotates
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75981 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/SystemZ')
-rw-r--r--test/CodeGen/SystemZ/2009-06-02-Rotate.ll13
1 files changed, 13 insertions, 0 deletions
diff --git a/test/CodeGen/SystemZ/2009-06-02-Rotate.ll b/test/CodeGen/SystemZ/2009-06-02-Rotate.ll
new file mode 100644
index 0000000000..33a4323438
--- /dev/null
+++ b/test/CodeGen/SystemZ/2009-06-02-Rotate.ll
@@ -0,0 +1,13 @@
+; RUN: llvm-as < %s | llc -march=systemz | grep rll
+
+target datalayout = "E-p:64:64:64-i8:8:16-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128-a0:16:16"
+target triple = "s390x-linux"
+
+define i32 @rotl(i32 %x, i32 %y, i32 %z) nounwind readnone {
+entry:
+ %shl = shl i32 %x, 0 ; <i32> [#uses=1]
+ %sub = sub i32 32, 0 ; <i32> [#uses=1]
+ %shr = lshr i32 %x, %sub ; <i32> [#uses=1]
+ %or = or i32 %shr, %shl ; <i32> [#uses=1]
+ ret i32 %or
+}