aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/ExecutionEngine/2007-05-12-APInt-Shl.ll30
1 files changed, 30 insertions, 0 deletions
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 0000000..cbea407
--- /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
+}