85 lines · plain
1; RUN: llc < %s | FileCheck %s2 3target datalayout = "e-m:e-p:16:16-i32:16:32-a:16-n8:16"4target triple = "msp430---elf"5 6define void @test_no_clobber() {7entry:8; CHECK-LABEL: test_no_clobber9; CHECK-NOT: push10 call void asm sideeffect "", ""()11; CHECK-NOT: pop12 ret void13; CHECK: -- End function14}15 16define void @test_1() {17entry:18; CHECK-LABEL: test_1:19; CHECK: push r420; CHECK: .cfi_def_cfa_offset 421; CHECK: push r622; CHECK: .cfi_def_cfa_offset 623; CHECK: push r824; CHECK: .cfi_def_cfa_offset 825; CHECK: .cfi_offset r4, -426; CHECK: .cfi_offset r6, -627; CHECK: .cfi_offset r8, -828 call void asm sideeffect "", "~{r4},~{r6},~{r8}"()29; CHECK: pop r830; CHECK: .cfi_def_cfa_offset 631; CHECK: pop r632; CHECK: .cfi_def_cfa_offset 433; CHECK: pop r434; CHECK: .cfi_def_cfa_offset 235; CHECK: .cfi_restore r436; CHECK: .cfi_restore r637; CHECK: .cfi_restore r838 ret void39}40 41define void @test_2() {42entry:43; CHECK-LABEL: test_2:44; CHECK: push r545; CHECK: .cfi_def_cfa_offset 446; CHECK: push r747; CHECK: .cfi_def_cfa_offset 648; CHECK: push r949; CHECK: .cfi_def_cfa_offset 850; CHECK: .cfi_offset r5, -451; CHECK: .cfi_offset r7, -652; CHECK: .cfi_offset r9, -853 call void asm sideeffect "", "~{r5},~{r7},~{r9}"()54; CHECK: pop r955; CHECK: .cfi_def_cfa_offset 656; CHECK: pop r757; CHECK: .cfi_def_cfa_offset 458; CHECK: pop r559; CHECK: .cfi_def_cfa_offset 260; CHECK: .cfi_restore r561; CHECK: .cfi_restore r762; CHECK: .cfi_restore r963 ret void64}65 66; The r10 register is special because the sequence67; pop r1068; ret69; can be replaced with70; jmp __mspabi_func_epilog_171; or other such function (depending on previous instructions).72; Still, it is not replaced *yet*.73define void @test_r10() {74entry:75; CHECK-LABEL: test_r10:76; CHECK: push r1077; CHECK: .cfi_def_cfa_offset 478; CHECK: .cfi_offset r10, -479 call void asm sideeffect "", "~{r10}"()80; CHECK: pop r1081; CHECK: .cfi_def_cfa_offset 282; CHECK: .cfi_restore r1083 ret void84}85