From: Sanjay Patel Date: Sat, 18 Feb 2017 21:51:14 +0000 (+0000) Subject: [InstSimplify] add tests for add nsw/nuw (xor X, signbit), signbit --> X; NFC X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f7584cdc50cab0e8f1b9c443bde140dd46aab4bd;p=llvm [InstSimplify] add tests for add nsw/nuw (xor X, signbit), signbit --> X; NFC git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295572 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/Transforms/InstSimplify/AndOrXor.ll b/test/Transforms/InstSimplify/AndOrXor.ll index c6959d72961..35fbb88eab2 100644 --- a/test/Transforms/InstSimplify/AndOrXor.ll +++ b/test/Transforms/InstSimplify/AndOrXor.ll @@ -1,6 +1,32 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py ; RUN: opt < %s -instsimplify -S | FileCheck %s +; add nsw (xor X, signbit), signbit --> X + +define <2 x i32> @add_nsw_signbit(<2 x i32> %x) { +; CHECK-LABEL: @add_nsw_signbit( +; CHECK-NEXT: [[Y:%.*]] = xor <2 x i32> %x, +; CHECK-NEXT: [[Z:%.*]] = add nsw <2 x i32> [[Y]], +; CHECK-NEXT: ret <2 x i32> [[Z]] +; + %y = xor <2 x i32> %x, + %z = add nsw <2 x i32> %y, + ret <2 x i32> %z +} + +; add nuw (xor X, signbit), signbit --> X + +define <2 x i5> @add_nuw_signbit(<2 x i5> %x) { +; CHECK-LABEL: @add_nuw_signbit( +; CHECK-NEXT: [[Y:%.*]] = xor <2 x i5> %x, +; CHECK-NEXT: [[Z:%.*]] = add nuw <2 x i5> [[Y]], +; CHECK-NEXT: ret <2 x i5> [[Z]] +; + %y = xor <2 x i5> %x, + %z = add nuw <2 x i5> %y, + ret <2 x i5> %z +} + define i64 @pow2(i32 %x) { ; CHECK-LABEL: @pow2( ; CHECK-NEXT: [[NEGX:%.*]] = sub i32 0, %x