From c9e28b84347155f574c5b0875d1cb1d2dda1dc37 Mon Sep 17 00:00:00 2001 From: Sanjay Patel Date: Mon, 7 Sep 2015 19:00:38 +0000 Subject: [PATCH] add missing regression tests for De Morgan's Law transform in InstCombine git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@246973 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/Transforms/InstCombine/apint-or1.ll | 11 ++++++++++- test/Transforms/InstCombine/apint-or2.ll | 11 ++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/test/Transforms/InstCombine/apint-or1.ll b/test/Transforms/InstCombine/apint-or1.ll index d4f87ac894d..676ec4c9e9a 100644 --- a/test/Transforms/InstCombine/apint-or1.ll +++ b/test/Transforms/InstCombine/apint-or1.ll @@ -2,7 +2,7 @@ ; This test is for Integer BitWidth <= 64 && BitWidth % 2 != 0. ; -; RUN: opt < %s -instcombine -S | not grep or +; RUN: opt < %s -instcombine -S | not grep " or " define i7 @test0(i7 %X) { @@ -34,3 +34,12 @@ define i39 @test3(i39 %V, i39 %M) { %R = or i39 %B, %D ret i39 %R } + +define i43 @demorgan(i43 %A, i43 %B) { + ;; (~A | ~B) == (~(A & B)) - De Morgan's Law + %NotA = xor i43 %A, -1 + %NotB = xor i43 %B, -1 + %C1 = or i43 %NotA, %NotB + ret i43 %C1 +} + diff --git a/test/Transforms/InstCombine/apint-or2.ll b/test/Transforms/InstCombine/apint-or2.ll index d7de255f7fd..b388aa5dd88 100644 --- a/test/Transforms/InstCombine/apint-or2.ll +++ b/test/Transforms/InstCombine/apint-or2.ll @@ -1,7 +1,7 @@ ; This test makes sure that or instructions are properly eliminated. ; This test is for Integer BitWidth > 64 && BitWidth <= 1024. ; -; RUN: opt < %s -instcombine -S | not grep or +; RUN: opt < %s -instcombine -S | not grep " or " define i777 @test0(i777 %X) { @@ -33,3 +33,12 @@ define i399 @test3(i399 %V, i399 %M) { %R = or i399 %B, %D ret i399 %R } + +define i129 @demorgan(i129 %A, i129 %B) { + ;; (~A | ~B) == (~(A & B)) - De Morgan's Law + %NotA = xor i129 %A, -1 + %NotB = xor i129 %B, -1 + %C1 = or i129 %NotA, %NotB + ret i129 %C1 +} + -- 2.11.0