brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.4 KiB · 106b6c9 Raw
106 lines · c
1// Registers R0 - R3 have different names inside the LLVM MSP430 target code.2// Test that they are handled properly when used inside clobber lists.3// At the time of writing, llc silently ignores unknown register names.4 5// REQUIRES: msp430-registered-target6// RUN: %clang -target msp430 -c %s -mllvm -stop-after=finalize-isel -o- | FileCheck %s7 8void test_function(void) {9  asm volatile(""10               :11               :12               : "r0");13  asm volatile(""14               :15               :16               : "r1");17  asm volatile(""18               :19               :20               : "r2");21  asm volatile(""22               :23               :24               : "r3");25  asm volatile(""26               :27               :28               : "r4");29  asm volatile(""30               :31               :32               : "r5");33  asm volatile(""34               :35               :36               : "r6");37  asm volatile(""38               :39               :40               : "r7");41  asm volatile(""42               :43               :44               : "r8");45  asm volatile(""46               :47               :48               : "r9");49  asm volatile(""50               :51               :52               : "r10");53  asm volatile(""54               :55               :56               : "r11");57  asm volatile(""58               :59               :60               : "r12");61  asm volatile(""62               :63               :64               : "r13");65  asm volatile(""66               :67               :68               : "r14");69  asm volatile(""70               :71               :72               : "r15");73  // CHECK: call void asm sideeffect "", "~{pc}"()74  // CHECK: call void asm sideeffect "", "~{sp}"()75  // CHECK: call void asm sideeffect "", "~{sr}"()76  // CHECK: call void asm sideeffect "", "~{cg}"()77  // CHECK: call void asm sideeffect "", "~{r4}"()78  // CHECK: call void asm sideeffect "", "~{r5}"()79  // CHECK: call void asm sideeffect "", "~{r6}"()80  // CHECK: call void asm sideeffect "", "~{r7}"()81  // CHECK: call void asm sideeffect "", "~{r8}"()82  // CHECK: call void asm sideeffect "", "~{r9}"()83  // CHECK: call void asm sideeffect "", "~{r10}"()84  // CHECK: call void asm sideeffect "", "~{r11}"()85  // CHECK: call void asm sideeffect "", "~{r12}"()86  // CHECK: call void asm sideeffect "", "~{r13}"()87  // CHECK: call void asm sideeffect "", "~{r14}"()88  // CHECK: call void asm sideeffect "", "~{r15}"()89  // CHECK: INLINEASM &"", {{.*}} implicit-def early-clobber $pc90  // CHECK: INLINEASM &"", {{.*}} implicit-def early-clobber $sp91  // CHECK: INLINEASM &"", {{.*}} implicit-def early-clobber $sr92  // CHECK: INLINEASM &"", {{.*}} implicit-def early-clobber $cg93  // CHECK: INLINEASM &"", {{.*}} implicit-def early-clobber $r494  // CHECK: INLINEASM &"", {{.*}} implicit-def early-clobber $r595  // CHECK: INLINEASM &"", {{.*}} implicit-def early-clobber $r696  // CHECK: INLINEASM &"", {{.*}} implicit-def early-clobber $r797  // CHECK: INLINEASM &"", {{.*}} implicit-def early-clobber $r898  // CHECK: INLINEASM &"", {{.*}} implicit-def early-clobber $r999  // CHECK: INLINEASM &"", {{.*}} implicit-def early-clobber $r10100  // CHECK: INLINEASM &"", {{.*}} implicit-def early-clobber $r11101  // CHECK: INLINEASM &"", {{.*}} implicit-def early-clobber $r12102  // CHECK: INLINEASM &"", {{.*}} implicit-def early-clobber $r13103  // CHECK: INLINEASM &"", {{.*}} implicit-def early-clobber $r14104  // CHECK: INLINEASM &"", {{.*}} implicit-def early-clobber $r15105}106