diff options
Diffstat (limited to 'test/Transforms/InstCombine/sub.ll')
-rw-r--r-- | test/Transforms/InstCombine/sub.ll | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/test/Transforms/InstCombine/sub.ll b/test/Transforms/InstCombine/sub.ll index ad1ae0a548..59dc5bd06e 100644 --- a/test/Transforms/InstCombine/sub.ll +++ b/test/Transforms/InstCombine/sub.ll @@ -1,7 +1,7 @@ ; This test makes sure that these instructions are properly eliminated. ; -; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep sub | not grep -v 'sub int %Cok, %Bok' +; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep -v 'sub int %Cok, %Bok' | not grep sub implementation @@ -74,3 +74,15 @@ bool %test11(ubyte %A, ubyte %B) { %cD = setne ubyte %C, 0 ; == setne A, B ret bool %cD } + +int %test12(int %A) { + %B = shr int %A, ubyte 31 + %C = sub int 0, %B ; == ushr A, 31 + ret int %C +} + +uint %test13(uint %A) { + %B = shr uint %A, ubyte 31 + %C = sub uint 0, %B ; == sar A, 31 + ret uint %C +} |