summaryrefslogtreecommitdiff
path: root/test/CodeGen/MSP430
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2013-05-08 06:44:42 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2013-05-08 06:44:42 +0000
commit363160a6be82df343fa60aa09d9d8f8f44605529 (patch)
tree8385f9313f583f6f7f9bcf1d53a42ebe4475e14a /test/CodeGen/MSP430
parentaa76a93cd35abd922b66825bb4e3e0b6e14ccfd5 (diff)
downloadllvm-363160a6be82df343fa60aa09d9d8f8f44605529.tar.gz
llvm-363160a6be82df343fa60aa09d9d8f8f44605529.tar.bz2
llvm-363160a6be82df343fa60aa09d9d8f8f44605529.tar.xz
DAGCombiner: Simplify inverted bit tests
Fold (xor (and x, y), y) -> (and (not x), y) This removes an opportunity for a constant to appear twice. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181395 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/MSP430')
-rw-r--r--test/CodeGen/MSP430/setcc.ll18
1 files changed, 8 insertions, 10 deletions
diff --git a/test/CodeGen/MSP430/setcc.ll b/test/CodeGen/MSP430/setcc.ll
index c99b17e143..05f9acd448 100644
--- a/test/CodeGen/MSP430/setcc.ll
+++ b/test/CodeGen/MSP430/setcc.ll
@@ -32,10 +32,10 @@ define i16 @sccwne(i16 %a, i16 %b) nounwind {
}
; CHECK:sccwne:
; CHECK: cmp.w r14, r15
-; CHECK: mov.w r2, r15
-; CHECK: rra.w r15
-; CHECK: and.w #1, r15
-; CHECK: xor.w #1, r15
+; CHECK: mov.w r2, r12
+; CHECK: rra.w r12
+; CHECK: mov.w #1, r15
+; CHECK: bic.w r12, r15
define i16 @sccweq(i16 %a, i16 %b) nounwind {
%t1 = icmp eq i16 %a, %b
@@ -55,9 +55,8 @@ define i16 @sccwugt(i16 %a, i16 %b) nounwind {
}
; CHECK:sccwugt:
; CHECK: cmp.w r15, r14
-; CHECK: mov.w r2, r15
-; CHECK: and.w #1, r15
-; CHECK: xor.w #1, r15
+; CHECK: mov.w #1, r15
+; CHECK: bic.w r2, r15
define i16 @sccwuge(i16 %a, i16 %b) nounwind {
%t1 = icmp uge i16 %a, %b
@@ -76,9 +75,8 @@ define i16 @sccwult(i16 %a, i16 %b) nounwind {
}
; CHECK:sccwult:
; CHECK: cmp.w r14, r15
-; CHECK: mov.w r2, r15
-; CHECK: and.w #1, r15
-; CHECK: xor.w #1, r15
+; CHECK: mov.w #1, r15
+; CHECK: bic.w r2, r15
define i16 @sccwule(i16 %a, i16 %b) nounwind {
%t1 = icmp ule i16 %a, %b