Add missed mem-mem move patterns

llvm-svn: 83812
This commit is contained in:
Anton Korobeynikov 2009-10-11 23:03:53 +00:00
parent 986885b62e
commit deadc3ed2d
3 changed files with 23 additions and 0 deletions

View File

@ -243,6 +243,13 @@ def MOV16mr : Pseudo<(outs), (ins memdst:$dst, GR16:$src),
"mov.w\t{$src, $dst}", "mov.w\t{$src, $dst}",
[(store GR16:$src, addr:$dst)]>; [(store GR16:$src, addr:$dst)]>;
def MOV8mm : Pseudo<(outs), (ins memdst:$dst, memsrc:$src),
"mov.b\t{$src, $dst}",
[(store (i8 (load addr:$src)), addr:$dst)]>;
def MOV16mm : Pseudo<(outs), (ins memdst:$dst, memsrc:$src),
"mov.w\t{$src, $dst}",
[(store (i16 (load addr:$src)), addr:$dst)]>;
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
// Arithmetic Instructions // Arithmetic Instructions

View File

@ -4,6 +4,14 @@ target triple = "msp430-generic-generic"
@foo = common global i16 0, align 2 @foo = common global i16 0, align 2
@bar = common global i16 0, align 2 @bar = common global i16 0, align 2
define void @mov() nounwind {
; CHECK: mov:
; CHECK: mov.w &bar, &foo
%1 = load i16* @bar
store i16 %1, i16* @foo
ret void
}
define void @add() nounwind { define void @add() nounwind {
; CHECK: add: ; CHECK: add:
; CHECK: add.w &bar, &foo ; CHECK: add.w &bar, &foo

View File

@ -5,6 +5,14 @@ target triple = "msp430-generic-generic"
@foo = common global i8 0, align 1 @foo = common global i8 0, align 1
@bar = common global i8 0, align 1 @bar = common global i8 0, align 1
define void @mov() nounwind {
; CHECK: mov:
; CHECK: mov.b &bar, &foo
%1 = load i8* @bar
store i8 %1, i8* @foo
ret void
}
define void @add() nounwind { define void @add() nounwind {
; CHECK: add: ; CHECK: add:
; CHECK: add.b &bar, &foo ; CHECK: add.b &bar, &foo