diff options
author | Dan Gohman <gohman@apple.com> | 2009-07-20 21:19:07 +0000 |
---|---|---|
committer | Dan Gohman <gohman@apple.com> | 2009-07-20 21:19:07 +0000 |
commit | 1224c386981f7948f298ed9ad444c40609570f2e (patch) | |
tree | 69577cb79bc2b30c8f801de5c52a374189fdb7a4 /test/Assembler | |
parent | 33d0474bf5d5783cf9690bcab3eabd513d918fc5 (diff) | |
download | external_llvm-1224c386981f7948f298ed9ad444c40609570f2e.zip external_llvm-1224c386981f7948f298ed9ad444c40609570f2e.tar.gz external_llvm-1224c386981f7948f298ed9ad444c40609570f2e.tar.bz2 |
Assembly and Bitcode support for unsigned/signed overflow flags and
exact sdiv flags.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76475 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Assembler')
-rw-r--r-- | test/Assembler/flags-plain.ll | 23 | ||||
-rw-r--r-- | test/Assembler/flags-reversed.ll | 18 | ||||
-rw-r--r-- | test/Assembler/flags-signed.ll | 18 | ||||
-rw-r--r-- | test/Assembler/flags-unsigned.ll | 18 | ||||
-rw-r--r-- | test/Assembler/flags.ll | 125 |
5 files changed, 202 insertions, 0 deletions
diff --git a/test/Assembler/flags-plain.ll b/test/Assembler/flags-plain.ll new file mode 100644 index 0000000..148d02f --- /dev/null +++ b/test/Assembler/flags-plain.ll @@ -0,0 +1,23 @@ +; RUN: llvm-as < %s | llvm-dis | FileCheck %s + +@addr = external global i64 + +define i64 @add_plain_ce() { +; CHECK: ret i64 add (i64 ptrtoint (i64* @addr to i64), i64 91) + ret i64 add (i64 ptrtoint (i64* @addr to i64), i64 91) +} + +define i64 @sub_plain_ce() { +; CHECK: ret i64 sub (i64 ptrtoint (i64* @addr to i64), i64 91) + ret i64 sub (i64 ptrtoint (i64* @addr to i64), i64 91) +} + +define i64 @mul_plain_ce() { +; CHECK: ret i64 mul (i64 ptrtoint (i64* @addr to i64), i64 91) + ret i64 mul (i64 ptrtoint (i64* @addr to i64), i64 91) +} + +define i64 @sdiv_plain_ce() { +; CHECK: ret i64 sdiv (i64 ptrtoint (i64* @addr to i64), i64 91) + ret i64 sdiv (i64 ptrtoint (i64* @addr to i64), i64 91) +} diff --git a/test/Assembler/flags-reversed.ll b/test/Assembler/flags-reversed.ll new file mode 100644 index 0000000..b63ac84 --- /dev/null +++ b/test/Assembler/flags-reversed.ll @@ -0,0 +1,18 @@ +; RUN: llvm-as < %s | llvm-dis | FileCheck %s + +@addr = external global i64 + +define i64 @add_both_reversed_ce() { +; CHECK: ret i64 unsigned signed add (i64 ptrtoint (i64* @addr to i64), i64 91) + ret i64 signed unsigned add (i64 ptrtoint (i64* @addr to i64), i64 91) +} + +define i64 @sub_both_reversed_ce() { +; CHECK: ret i64 unsigned signed sub (i64 ptrtoint (i64* @addr to i64), i64 91) + ret i64 signed unsigned sub (i64 ptrtoint (i64* @addr to i64), i64 91) +} + +define i64 @mul_both_reversed_ce() { +; CHECK: ret i64 unsigned signed mul (i64 ptrtoint (i64* @addr to i64), i64 91) + ret i64 signed unsigned mul (i64 ptrtoint (i64* @addr to i64), i64 91) +} diff --git a/test/Assembler/flags-signed.ll b/test/Assembler/flags-signed.ll new file mode 100644 index 0000000..136dd57 --- /dev/null +++ b/test/Assembler/flags-signed.ll @@ -0,0 +1,18 @@ +; RUN: llvm-as < %s | llvm-dis | FileCheck %s + +@addr = external global i64 + +define i64 @add_signed_ce() { +; CHECK: ret i64 signed add (i64 ptrtoint (i64* @addr to i64), i64 91) + ret i64 signed add (i64 ptrtoint (i64* @addr to i64), i64 91) +} + +define i64 @sub_signed_ce() { +; CHECK: ret i64 signed sub (i64 ptrtoint (i64* @addr to i64), i64 91) + ret i64 signed sub (i64 ptrtoint (i64* @addr to i64), i64 91) +} + +define i64 @mul_signed_ce() { +; CHECK: ret i64 signed mul (i64 ptrtoint (i64* @addr to i64), i64 91) + ret i64 signed mul (i64 ptrtoint (i64* @addr to i64), i64 91) +} diff --git a/test/Assembler/flags-unsigned.ll b/test/Assembler/flags-unsigned.ll new file mode 100644 index 0000000..1526db0 --- /dev/null +++ b/test/Assembler/flags-unsigned.ll @@ -0,0 +1,18 @@ +; RUN: llvm-as < %s | llvm-dis | FileCheck %s + +@addr = external global i64 + +define i64 @add_unsigned_ce() { +; CHECK: ret i64 unsigned add (i64 ptrtoint (i64* @addr to i64), i64 91) + ret i64 unsigned add (i64 ptrtoint (i64* @addr to i64), i64 91) +} + +define i64 @sub_unsigned_ce() { +; CHECK: ret i64 unsigned sub (i64 ptrtoint (i64* @addr to i64), i64 91) + ret i64 unsigned sub (i64 ptrtoint (i64* @addr to i64), i64 91) +} + +define i64 @mul_unsigned_ce() { +; CHECK: ret i64 unsigned mul (i64 ptrtoint (i64* @addr to i64), i64 91) + ret i64 unsigned mul (i64 ptrtoint (i64* @addr to i64), i64 91) +} diff --git a/test/Assembler/flags.ll b/test/Assembler/flags.ll new file mode 100644 index 0000000..317bc0c --- /dev/null +++ b/test/Assembler/flags.ll @@ -0,0 +1,125 @@ +; RUN: llvm-as < %s | llvm-dis | FileCheck %s + +@addr = external global i64 + +define i64 @add_signed(i64 %x, i64 %y) { +; CHECK: %z = signed add i64 %x, %y + %z = signed add i64 %x, %y + ret i64 %z +} + +define i64 @sub_signed(i64 %x, i64 %y) { +; CHECK: %z = signed sub i64 %x, %y + %z = signed sub i64 %x, %y + ret i64 %z +} + +define i64 @mul_signed(i64 %x, i64 %y) { +; CHECK: %z = signed mul i64 %x, %y + %z = signed mul i64 %x, %y + ret i64 %z +} + +define i64 @add_unsigned(i64 %x, i64 %y) { +; CHECK: %z = unsigned add i64 %x, %y + %z = unsigned add i64 %x, %y + ret i64 %z +} + +define i64 @sub_unsigned(i64 %x, i64 %y) { +; CHECK: %z = unsigned sub i64 %x, %y + %z = unsigned sub i64 %x, %y + ret i64 %z +} + +define i64 @mul_unsigned(i64 %x, i64 %y) { +; CHECK: %z = unsigned mul i64 %x, %y + %z = unsigned mul i64 %x, %y + ret i64 %z +} + +define i64 @add_plain(i64 %x, i64 %y) { +; CHECK: %z = add i64 %x, %y + %z = add i64 %x, %y + ret i64 %z +} + +define i64 @sub_plain(i64 %x, i64 %y) { +; CHECK: %z = sub i64 %x, %y + %z = sub i64 %x, %y + ret i64 %z +} + +define i64 @mul_plain(i64 %x, i64 %y) { +; CHECK: %z = mul i64 %x, %y + %z = mul i64 %x, %y + ret i64 %z +} + +define i64 @add_both(i64 %x, i64 %y) { +; CHECK: %z = unsigned signed add i64 %x, %y + %z = unsigned signed add i64 %x, %y + ret i64 %z +} + +define i64 @sub_both(i64 %x, i64 %y) { +; CHECK: %z = unsigned signed sub i64 %x, %y + %z = unsigned signed sub i64 %x, %y + ret i64 %z +} + +define i64 @mul_both(i64 %x, i64 %y) { +; CHECK: %z = unsigned signed mul i64 %x, %y + %z = unsigned signed mul i64 %x, %y + ret i64 %z +} + +define i64 @add_both_reversed(i64 %x, i64 %y) { +; CHECK: %z = unsigned signed add i64 %x, %y + %z = signed unsigned add i64 %x, %y + ret i64 %z +} + +define i64 @sub_both_reversed(i64 %x, i64 %y) { +; CHECK: %z = unsigned signed sub i64 %x, %y + %z = signed unsigned sub i64 %x, %y + ret i64 %z +} + +define i64 @mul_both_reversed(i64 %x, i64 %y) { +; CHECK: %z = unsigned signed mul i64 %x, %y + %z = signed unsigned mul i64 %x, %y + ret i64 %z +} + +define i64 @sdiv_exact(i64 %x, i64 %y) { +; CHECK: %z = exact sdiv i64 %x, %y + %z = exact sdiv i64 %x, %y + ret i64 %z +} + +define i64 @sdiv_plain(i64 %x, i64 %y) { +; CHECK: %z = sdiv i64 %x, %y + %z = sdiv i64 %x, %y + ret i64 %z +} + +define i64 @add_both_ce() { +; CHECK: ret i64 unsigned signed add (i64 ptrtoint (i64* @addr to i64), i64 91) + ret i64 signed unsigned add (i64 ptrtoint (i64* @addr to i64), i64 91) +} + +define i64 @sub_both_ce() { +; CHECK: ret i64 unsigned signed sub (i64 ptrtoint (i64* @addr to i64), i64 91) + ret i64 signed unsigned sub (i64 ptrtoint (i64* @addr to i64), i64 91) +} + +define i64 @mul_both_ce() { +; CHECK: ret i64 unsigned signed mul (i64 ptrtoint (i64* @addr to i64), i64 91) + ret i64 unsigned signed mul (i64 ptrtoint (i64* @addr to i64), i64 91) +} + +define i64 @sdiv_exact_ce() { +; CHECK: ret i64 exact sdiv (i64 ptrtoint (i64* @addr to i64), i64 91) + ret i64 exact sdiv (i64 ptrtoint (i64* @addr to i64), i64 91) +} |