OSDN Git Service

Right, instcombine cannot remove ((X >> C) << C) if it's signed.
authorChris Lattner <sabre@nondot.org>
Tue, 12 Aug 2003 21:22:51 +0000 (21:22 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 12 Aug 2003 21:22:51 +0000 (21:22 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7790 91177308-0d34-0410-b5e6-96231b3b80d8

test/Transforms/InstCombine/shift.ll

index 7d438fb..987ea88 100644 (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
 }