diff --git a/test/Transforms/InstCombine/2004-11-22-Missed-and-fold.ll b/test/Transforms/InstCombine/2004-11-22-Missed-and-fold.ll new file mode 100644 index 00000000000..8702c5e343c --- /dev/null +++ b/test/Transforms/InstCombine/2004-11-22-Missed-and-fold.ll @@ -0,0 +1,9 @@ +; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep and +; XFAIL: * + +sbyte %test21(sbyte %A) { + %C = shr sbyte %A, ubyte 7 ;; sign extend + %D = and sbyte %C, 1 ;; chop off sign + ret sbyte %D +} + diff --git a/test/Transforms/InstCombine/and.ll b/test/Transforms/InstCombine/and.ll index e11be02997d..67b34a3be5e 100644 --- a/test/Transforms/InstCombine/and.ll +++ b/test/Transforms/InstCombine/and.ll @@ -137,12 +137,6 @@ ubyte %test20(ubyte %A) { ret ubyte %D } -sbyte %test21(sbyte %A) { - %C = shr sbyte %A, ubyte 7 ;; sign extend - %D = and sbyte %C, 1 ;; chop off sign - ret sbyte %D -} - bool %test22(int %A) { %B = seteq int %A, 1 %C = setge int %A, 3