aboutsummaryrefslogtreecommitdiffstats
path: root/test/Transforms
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2009-01-15 17:01:23 +0000
committerEvan Cheng <evan.cheng@apple.com>2009-01-15 17:01:23 +0000
commitf35fd547ac2de1146707a8683e725d6e15a0538a (patch)
tree4cd7326b4acaa4084a9489388bf7dee16df2a160 /test/Transforms
parente9530ecae4897fe8157bd4d7616043bd8c0484e2 (diff)
downloadexternal_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.ll11
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
+}