diff --git a/test/Transforms/InstCombine/cast-set.ll b/test/Transforms/InstCombine/cast-set.ll new file mode 100644 index 00000000000..8429223ef86 --- /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 00000000000..678080dd922 --- /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! +}