diff options
Diffstat (limited to 'test/CodeGen/MSP430')
-rw-r--r-- | test/CodeGen/MSP430/asm-clobbers.ll | 13 | ||||
-rw-r--r-- | test/CodeGen/MSP430/memset.ll | 22 |
2 files changed, 35 insertions, 0 deletions
diff --git a/test/CodeGen/MSP430/asm-clobbers.ll b/test/CodeGen/MSP430/asm-clobbers.ll new file mode 100644 index 0000000..216a3fe --- /dev/null +++ b/test/CodeGen/MSP430/asm-clobbers.ll @@ -0,0 +1,13 @@ +; RUN: llc < %s | FileCheck %s + +target datalayout = "e-m:e-p:16:16-i32:16:32-a:16-n8:16" +target triple = "msp430---elf" + +define void @test() { +entry: +; CHECK-LABEL: test: +; CHECK: push.w r10 + call void asm sideeffect "", "~{r10}"() +; CHECK: pop.w r10 + ret void +} diff --git a/test/CodeGen/MSP430/memset.ll b/test/CodeGen/MSP430/memset.ll new file mode 100644 index 0000000..bf10544 --- /dev/null +++ b/test/CodeGen/MSP430/memset.ll @@ -0,0 +1,22 @@ +; RUN: llc < %s | FileCheck %s +target datalayout = "e-p:16:16:16-i8:8:8-i16:16:16-i32:16:32-n8:16" +target triple = "msp430---elf" + +@buf = external global i8* + +; Function Attrs: nounwind +define void @test() nounwind { +entry: +; CHECK-LABEL: test: + %0 = load i8** @buf, align 2 +; CHECK: mov.w &buf, r15 +; CHECK-NEXT: mov.w #5, r14 +; CHECK-NEXT: mov.w #128, r13 +; CHECK-NEXT: call #memset + call void @llvm.memset.p0i8.i16(i8* %0, i8 5, i16 128, i32 1, i1 false) + ret void +} + +; Function Attrs: nounwind +declare void @llvm.memset.p0i8.i16(i8* nocapture, i8, i16, i32, i1) nounwind + |