diff options
author | Evan Cheng <evan.cheng@apple.com> | 2009-01-15 17:01:23 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2009-01-15 17:01:23 +0000 |
commit | f35fd547ac2de1146707a8683e725d6e15a0538a (patch) | |
tree | 4cd7326b4acaa4084a9489388bf7dee16df2a160 /test/Transforms | |
parent | e9530ecae4897fe8157bd4d7616043bd8c0484e2 (diff) | |
download | external_llvm-f35fd547ac2de1146707a8683e725d6e15a0538a.zip external_llvm-f35fd547ac2de1146707a8683e725d6e15a0538a.tar.gz external_llvm-f35fd547ac2de1146707a8683e725d6e15a0538a.tar.bz2 |
- Teach CanEvaluateInDifferentType of this xform: sext (zext ty1), ty2 -> zext ty2
- Looking at the number of sign bits of the a sext instruction to determine whether new trunc + sext pair should be added when its source is being evaluated in a different type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62263 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms')
-rw-r--r-- | test/Transforms/InstCombine/cast-sext-zext.ll | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/test/Transforms/InstCombine/cast-sext-zext.ll b/test/Transforms/InstCombine/cast-sext-zext.ll new file mode 100644 index 0000000..da5e7fa --- /dev/null +++ b/test/Transforms/InstCombine/cast-sext-zext.ll @@ -0,0 +1,11 @@ +; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep sext + +define zeroext i16 @t(i8 zeroext %on_off, i16* nocapture %puls) nounwind readonly { +entry: + %0 = zext i8 %on_off to i32 + %1 = add i32 %0, -1 + %2 = sext i32 %1 to i64 + %3 = getelementptr i16* %puls, i64 %2 + %4 = load i16* %3, align 2 + ret i16 %4 +} |