Port this test from dejagnu to unit testing.

The way this worked before was to test APInt by running
"lli -force-interpreter=true" knowing the lli uses APInt under the hood to
store its values. Now, we test APInt directly.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62514 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Nick Lewycky 2009-01-19 18:08:33 +00:00
parent 4bd4787785
commit 1999ff1d81
2 changed files with 25 additions and 30 deletions

View File

@ -1,30 +0,0 @@
; 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
}

25
unittests/ADT/APInt.cpp Normal file
View File

@ -0,0 +1,25 @@
//===- llvm/unittest/ADT/APInt.cpp - APInt unit tests -----------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include "gtest/gtest.h"
#include "llvm/ADT/APInt.h"
using namespace llvm;
namespace {
// Test that APInt shift left works when bitwidth > 64 and shiftamt == 0
TEST(APIntTest, ShiftLeftByZero) {
APInt One = APInt::getNullValue(65) + 1;
APInt Shl = One.shl(0);
EXPECT_EQ(Shl[0], true);
EXPECT_EQ(Shl[1], false);
}
}