Right, instcombine cannot remove ((X >> C) << C) if it's signed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7790 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2003-08-12 21:22:51 +00:00
parent b310196abc
commit dc20a3e7d3

View File

@ -87,9 +87,9 @@ uint %test14(uint %A) {
%D = shl uint %C, ubyte 4 ;; D = ((B | 1234) << 4) === ((B << 4)|(1234 << 4)
ret uint %D
}
int %test14a(int %A) {
%B = shl int %A, ubyte 4
%C = and int %B, -1234
%D = shr int %C, ubyte 4 ;; D = ((B | 1234) << 4) === ((B << 4)|(1234 << 4)
ret int %D
uint %test14a(uint %A) {
%B = shl uint %A, ubyte 4
%C = and uint %B, 1234
%D = shr uint %C, ubyte 4 ;; D = ((B | 1234) << 4) === ((B << 4)|(1234 << 4)
ret uint %D
}