diff --git a/test/Regression/Transforms/InstCombine/2006-04-28-ShiftShiftLongLong.ll b/test/Regression/Transforms/InstCombine/2006-04-28-ShiftShiftLongLong.ll new file mode 100644 index 00000000000..7a164ddf4dc --- /dev/null +++ b/test/Regression/Transforms/InstCombine/2006-04-28-ShiftShiftLongLong.ll @@ -0,0 +1,10 @@ +; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep shl && +; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep cast + +; This cannot be turned into a sign extending cast! + +long %test(long %X) { + %Y = shl long %X, ubyte 16 + %Z = shr long %Y, ubyte 16 + ret long %Z +}