summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/Transforms/InstCombine/cast-set.ll18
-rw-r--r--test/Transforms/Reassociate/2002-05-15-AgressiveSubMove.ll11
2 files changed, 29 insertions, 0 deletions
diff --git a/test/Transforms/InstCombine/cast-set.ll b/test/Transforms/InstCombine/cast-set.ll
new file mode 100644
index 0000000000..8429223ef8
--- /dev/null
+++ b/test/Transforms/InstCombine/cast-set.ll
@@ -0,0 +1,18 @@
+; RUN: if as < %s | opt -instcombine -dce | dis | grep cast
+; RUN: then exit 1
+; RUN: else exit 0
+; RUN: fi
+
+bool "test1"(int %X) {
+ %A = cast int %X to uint
+ %c = setne uint %A, 0 ; Convert to setne int %X, 0
+ ret bool %c
+}
+
+bool "test2"(int %X, int %Y) {
+ %A = cast int %X to uint
+ %B = cast int %Y to uint
+ %c = setne uint %A, %B ; Convert to setne int %X, %Y
+ ret bool %c
+}
+
diff --git a/test/Transforms/Reassociate/2002-05-15-AgressiveSubMove.ll b/test/Transforms/Reassociate/2002-05-15-AgressiveSubMove.ll
new file mode 100644
index 0000000000..678080dd92
--- /dev/null
+++ b/test/Transforms/Reassociate/2002-05-15-AgressiveSubMove.ll
@@ -0,0 +1,11 @@
+; RUN: if as < %s | opt -reassociate -instcombine | dis | grep add
+; RUN: then exit 1
+; RUN: else exit 0
+; RUN: fi
+
+int "test"(int %A) {
+ %X = add int %A, 1
+ %Y = add int %A, 1
+ %r = sub int %X, %Y
+ ret int %r ; Should be equal to 0!
+}