]> granicus.if.org Git - llvm/commitdiff
[InstCombine] Add missing test case for (xor (sext (cmp)), -1) -> (sext (!cmp)).
authorCraig Topper <craig.topper@intel.com>
Wed, 2 Aug 2017 17:33:02 +0000 (17:33 +0000)
committerCraig Topper <craig.topper@intel.com>
Wed, 2 Aug 2017 17:33:02 +0000 (17:33 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309839 91177308-0d34-0410-b5e6-96231b3b80d8

test/Transforms/InstCombine/cast.ll

index 486a617097e1703056df9a93b3d3148b5ce9bace..700bf483801cc8ede7e2b0ff4f36ddd3b0c2ca8a 100644 (file)
@@ -1522,3 +1522,17 @@ define i8 @pr33078_4(i3 %x) {
   %D = trunc i16 %C to i8
   ret i8 %D
 }
+
+; (sext (xor (cmp), -1)) -> (sext (!cmp))
+define i64 @test94(i32 %a) {
+; CHECK-LABEL: @test94(
+; CHECK-NEXT:    [[TMP1:%.*]] = icmp ne i32 [[A:%.*]], -2
+; CHECK-NEXT:    [[TMP2:%.*]] = sext i1 [[TMP1]] to i64
+; CHECK-NEXT:    ret i64 [[TMP2]]
+;
+  %1 = icmp eq i32 %a, -2
+  %2 = sext i1 %1 to i8
+  %3 = xor i8 %2, -1
+  %4 = sext i8 %3 to i64
+  ret i64 %4
+}