diff options
author | Reid Spencer <rspencer@reidspencer.com> | 2006-11-27 01:05:10 +0000 |
---|---|---|
committer | Reid Spencer <rspencer@reidspencer.com> | 2006-11-27 01:05:10 +0000 |
commit | 3da59db637a887474c1b1346c1f3ccf53b6c4663 (patch) | |
tree | b061e2133efdb9ea9bb334c1b15ceea881bb88f8 /test/Transforms/Inline | |
parent | 5fed9b90447a9a95a1f670ccd9c23aea8c937451 (diff) | |
download | external_llvm-3da59db637a887474c1b1346c1f3ccf53b6c4663.zip external_llvm-3da59db637a887474c1b1346c1f3ccf53b6c4663.tar.gz external_llvm-3da59db637a887474c1b1346c1f3ccf53b6c4663.tar.bz2 |
For PR950:
The long awaited CAST patch. This introduces 12 new instructions into LLVM
to replace the cast instruction. Corresponding changes throughout LLVM are
provided. This passes llvm-test, llvm/test, and SPEC CPUINT2000 with the
exception of 175.vpr which fails only on a slight floating point output
difference.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31931 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms/Inline')
-rw-r--r-- | test/Transforms/Inline/casts.ll | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/test/Transforms/Inline/casts.ll b/test/Transforms/Inline/casts.ll new file mode 100644 index 0000000..8b597ad --- /dev/null +++ b/test/Transforms/Inline/casts.ll @@ -0,0 +1,20 @@ +; RUN: llvm-as < %s | opt -inline | llvm-dis | grep 'ret int 1' +; ModuleID = 'short.opt.bc' + +implementation ; Functions: + +int %testBool(bool %X) { + %tmp = zext bool %X to int ; <int> [#uses=1] + ret int %tmp +} + +int %testByte(sbyte %X) { + %tmp = setne sbyte %X, 0 ; <bool> [#uses=1] + %tmp.i = zext bool %tmp to int ; <int> [#uses=1] + ret int %tmp.i +} + +int %main() { + %rslt = call int %testByte( sbyte 123) + ret int %rslt +} |