[TwoAddressInstructionPass] When looking for a 3 addr conversion after commuting...
[oota-llvm.git] / test / CodeGen / MSP430 / Inst16rr.ll
1 ; RUN: llc -march=msp430 < %s | FileCheck %s
2 target datalayout = "e-p:16:8:8-i8:8:8-i16:8:8-i32:8:8"
3 target triple = "msp430-generic-generic"
4
5 define i16 @mov(i16 %a, i16 %b) nounwind {
6 ; CHECK-LABEL: mov:
7 ; CHECK: mov.w  r14, r15
8         ret i16 %b
9 }
10
11 define i16 @add(i16 %a, i16 %b) nounwind {
12 ; CHECK-LABEL: add:
13 ; CHECK: add.w  r14, r15
14         %1 = add i16 %a, %b
15         ret i16 %1
16 }
17
18 define i16 @and(i16 %a, i16 %b) nounwind {
19 ; CHECK-LABEL: and:
20 ; CHECK: and.w  r14, r15
21         %1 = and i16 %a, %b
22         ret i16 %1
23 }
24
25 define i16 @bis(i16 %a, i16 %b) nounwind {
26 ; CHECK-LABEL: bis:
27 ; CHECK: bis.w  r14, r15
28         %1 = or i16 %a, %b
29         ret i16 %1
30 }
31
32 define i16 @bic(i16 %a, i16 %b) nounwind {
33 ; CHECK-LABEL: bic:
34 ; CHECK: bic.w  r14, r15
35         %1 = xor i16 %b, -1
36         %2 = and i16 %a, %1
37         ret i16 %2
38 }
39
40 define i16 @xor(i16 %a, i16 %b) nounwind {
41 ; CHECK-LABEL: xor:
42 ; CHECK: xor.w  r14, r15
43         %1 = xor i16 %a, %b
44         ret i16 %1
45 }