[llvm] b7397e8 - [InstCombine] add tests for freelyNegateValue with 'not'; NFC
Sanjay Patel via llvm-commits
llvm-commits at lists.llvm.org
Fri Apr 3 14:28:50 PDT 2020
Author: Sanjay Patel
Date: 2020-04-03T17:28:29-04:00
New Revision: b7397e81fe4dee8ffd4a1353bf0cf3a7d2ed267b
URL: https://github.com/llvm/llvm-project/commit/b7397e81fe4dee8ffd4a1353bf0cf3a7d2ed267b
DIFF: https://github.com/llvm/llvm-project/commit/b7397e81fe4dee8ffd4a1353bf0cf3a7d2ed267b.diff
LOG: [InstCombine] add tests for freelyNegateValue with 'not'; NFC
Added:
Modified:
llvm/test/Transforms/InstCombine/sub-of-negatible.ll
Removed:
################################################################################
diff --git a/llvm/test/Transforms/InstCombine/sub-of-negatible.ll b/llvm/test/Transforms/InstCombine/sub-of-negatible.ll
index 897242e4837b..eb0f2e3d7d33 100644
--- a/llvm/test/Transforms/InstCombine/sub-of-negatible.ll
+++ b/llvm/test/Transforms/InstCombine/sub-of-negatible.ll
@@ -2,6 +2,7 @@
; RUN: opt %s -instcombine -S | FileCheck %s
declare void @use8(i8)
+declare void @use_v2i4(<2 x i4>)
; Constant can be freely negated.
define i8 @t0(i8 %x) {
@@ -423,3 +424,33 @@ define i4 @negate_shl_xor(i4 %x, i4 %y) {
%r = sub i4 0, %s
ret i4 %r
}
+
+define i8 @negate_shl_not_uses(i8 %x, i8 %y) {
+; CHECK-LABEL: @negate_shl_not_uses(
+; CHECK-NEXT: [[O:%.*]] = xor i8 [[X:%.*]], -1
+; CHECK-NEXT: call void @use8(i8 [[O]])
+; CHECK-NEXT: [[S:%.*]] = shl i8 [[O]], [[Y:%.*]]
+; CHECK-NEXT: [[R:%.*]] = sub i8 0, [[S]]
+; CHECK-NEXT: ret i8 [[R]]
+;
+ %o = xor i8 %x, -1
+ call void @use8(i8 %o)
+ %s = shl i8 %o, %y
+ %r = sub i8 0, %s
+ ret i8 %r
+}
+
+define <2 x i4> @negate_mul_not_uses_vec(<2 x i4> %x, <2 x i4> %y) {
+; CHECK-LABEL: @negate_mul_not_uses_vec(
+; CHECK-NEXT: [[O:%.*]] = xor <2 x i4> [[X:%.*]], <i4 -1, i4 -1>
+; CHECK-NEXT: call void @use_v2i4(<2 x i4> [[O]])
+; CHECK-NEXT: [[S:%.*]] = mul <2 x i4> [[O]], [[Y:%.*]]
+; CHECK-NEXT: [[R:%.*]] = sub <2 x i4> zeroinitializer, [[S]]
+; CHECK-NEXT: ret <2 x i4> [[R]]
+;
+ %o = xor <2 x i4> %x, <i4 -1, i4 -1>
+ call void @use_v2i4(<2 x i4> %o)
+ %s = mul <2 x i4> %o, %y
+ %r = sub <2 x i4> zeroinitializer, %s
+ ret <2 x i4> %r
+}
More information about the llvm-commits
mailing list