From 45d6764ca1161420773693d21e9581f847e2cdda Mon Sep 17 00:00:00 2001
From: Reid Spencer <rspencer@reidspencer.com>
Date: Sat, 12 May 2007 17:59:55 +0000
Subject: [PATCH] Add a test case for shl of APInt integers > 64 bits by 0
 shift amount.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37009 91177308-0d34-0410-b5e6-96231b3b80d8
---
 test/ExecutionEngine/2007-05-12-APInt-Shl.ll | 30 ++++++++++++++++++++
 1 file changed, 30 insertions(+)
 create mode 100644 test/ExecutionEngine/2007-05-12-APInt-Shl.ll

diff --git a/test/ExecutionEngine/2007-05-12-APInt-Shl.ll b/test/ExecutionEngine/2007-05-12-APInt-Shl.ll
new file mode 100644
index 00000000000..cbea4076ea1
--- /dev/null
+++ b/test/ExecutionEngine/2007-05-12-APInt-Shl.ll
@@ -0,0 +1,30 @@
+; RUN: llvm-as %s -f -o %t.bc
+; RUN: lli -force-interpreter=true %t.bc | tee %t.out | grep 10
+
+; Test that APInt shift left works when bitwidth > 64 and shiftamt == 0
+
+declare i32 @putchar(i32)
+
+define void @putBit(i65 %x, i65 %bitnum) {
+  %tmp1 = shl i65 1, %bitnum
+  %tmp2 = and i65 %x, %tmp1
+  %cond = icmp ne i65 %tmp2, 0
+  br i1 %cond, label %cond_true, label %cond_false
+
+cond_true:
+  call i32 @putchar(i32 49)
+  br label %cond_next
+
+cond_false:
+  call i32 @putchar(i32 48)
+  br label %cond_next
+
+cond_next:
+  ret void
+}
+
+define i32 @main() {
+  call void @putBit(i65 1, i65 0)
+  call void @putBit(i65 0, i65 0)
+  ret i32 0
+}