Add and-not (bic) patterns. Based heavily on patch by Brian Lucas!
[oota-llvm.git] / test / CodeGen / MSP430 / Inst8rm.ll
index b264ebdb89648819443185c81249208d99c56e5d..c062f04c6b468374b0811a050b443e3e651f185b 100644 (file)
@@ -1,4 +1,4 @@
-; RUN: llvm-as < %s | llc -march=msp430 | FileCheck %s
+; RUN: llc -march=msp430 < %s | FileCheck %s
 target datalayout = "e-p:16:8:8-i8:8:8-i8:8:8-i32:8:8"
 target triple = "msp430-generic-generic"
 @foo = common global i8 0, align 1
@@ -19,7 +19,6 @@ define i8 @and(i8 %a) nounwind {
        ret i8 %2
 }
 
-
 define i8 @bis(i8 %a) nounwind {
 ; CHECK: bis:
 ; CHECK: bis.b &foo, r15
@@ -28,6 +27,15 @@ define i8 @bis(i8 %a) nounwind {
        ret i8 %2
 }
 
+define i8  @bic(i8 %a) nounwind {
+; CHECK: bic:
+; CHECK: bic.b  &foo, r15
+        %1 = load i8* @foo
+        %2 = xor i8 %1, -1
+        %3 = and i8 %a, %2
+        ret i8 %3
+}
+
 define i8 @xor(i8 %a) nounwind {
 ; CHECK: xor:
 ; CHECK: xor.b &foo, r15