1 // REQUIRES: avr-registered-target 2 // RUN: %clang_cc1 -triple avr-unknown-unknown -emit-llvm -o - %s | FileCheck %s 3 4 int data; 5 6 void a() { 7 // CHECK: call addrspace(0) void asm sideeffect "add r5, $0", "a"(i16 %0) 8 asm("add r5, %0" :: "a"(data)); 9 } 10 11 void b() { 12 // CHECK: call addrspace(0) void asm sideeffect "add r5, $0", "b"(i16 %0) 13 asm("add r5, %0" :: "b"(data)); 14 } 15 16 void d() { 17 // CHECK: call addrspace(0) void asm sideeffect "add r5, $0", "d"(i16 %0) 18 asm("add r5, %0" :: "d"(data)); 19 } 20 21 void l() { 22 // CHECK: call addrspace(0) void asm sideeffect "add r5, $0", "l"(i16 %0) 23 asm("add r5, %0" :: "l"(data)); 24 } 25 26 void e() { 27 // CHECK: call addrspace(0) void asm sideeffect "add r5, $0", "e"(i16 %0) 28 asm("add r5, %0" :: "e"(data)); 29 } 30 31 void q() { 32 // CHECK: call addrspace(0) void asm sideeffect "add r5, $0", "q"(i16 %0) 33 asm("add r5, %0" :: "q"(data)); 34 } 35 36 void r() { 37 // CHECK: call addrspace(0) void asm sideeffect "add r5, $0", "r"(i16 %0) 38 asm("add r5, %0" :: "r"(data)); 39 } 40 41 void w() { 42 // CHECK: call addrspace(0) void asm sideeffect "add r5, $0", "w"(i16 %0) 43 asm("add r5, %0" :: "w"(data)); 44 } 45 46 void t() { 47 // CHECK: call addrspace(0) void asm sideeffect "add r5, $0", "t"(i16 %0) 48 asm("add r5, %0" :: "t"(data)); 49 } 50 51 void x() { 52 // CHECK: call addrspace(0) void asm sideeffect "add r5, $0", "x"(i16 %0) 53 asm("add r5, %0" :: "x"(data)); 54 } 55 56 void y() { 57 // CHECK: call addrspace(0) void asm sideeffect "add r5, $0", "y"(i16 %0) 58 asm("add r5, %0" :: "y"(data)); 59 } 60 61 void z() { 62 // CHECK: call addrspace(0) void asm sideeffect "add r5, $0", "z"(i16 %0) 63 asm("add r5, %0" :: "z"(data)); 64 } 65 66 void I() { 67 // CHECK: call addrspace(0) void asm sideeffect "subi r30, $0", "I"(i16 50) 68 asm("subi r30, %0" :: "I"(50)); 69 } 70 71 void J() { 72 // CHECK: call addrspace(0) void asm sideeffect "subi r30, $0", "J"(i16 -50) 73 asm("subi r30, %0" :: "J"(-50)); 74 } 75 76 void K() { 77 // CHECK: call addrspace(0) void asm sideeffect "subi r30, $0", "K"(i16 2) 78 asm("subi r30, %0" :: "K"(2)); 79 } 80 81 void L() { 82 // CHECK: call addrspace(0) void asm sideeffect "subi r30, $0", "L"(i16 0) 83 asm("subi r30, %0" :: "L"(0)); 84 } 85 86 void M() { 87 // CHECK: call addrspace(0) void asm sideeffect "subi r30, $0", "M"(i16 255) 88 asm("subi r30, %0" :: "M"(255)); 89 } 90 91 void O() { 92 // CHECK: call addrspace(0) void asm sideeffect "subi r30, $0", "O"(i16 16) 93 asm("subi r30, %0" :: "O"(16)); 94 } 95 96 void P() { 97 // CHECK: call addrspace(0) void asm sideeffect "subi r30, $0", "P"(i16 1) 98 asm("subi r30, %0" :: "P"(1)); 99 } 100 101 void R() { 102 // CHECK: call addrspace(0) void asm sideeffect "subi r30, $0", "R"(i16 -3) 103 asm("subi r30, %0" :: "R"(-3)); 104 } 105 106 void G() { 107 // CHECK: call addrspace(0) void asm sideeffect "subi r30, $0", "G"(i16 50) 108 asm("subi r30, %0" :: "G"(50)); 109 } 110 111 void Q() { 112 // CHECK: call addrspace(0) void asm sideeffect "subi r30, $0", "Q"(i16 50) 113 asm("subi r30, %0" :: "Q"(50)); 114 } 115 116 void ra() { 117 // CHECK: call addrspace(0) void asm sideeffect "subi r30, $0", "ra"(i16 50) 118 asm("subi r30, %0" :: "ra"(50)); 119 } 120 121 void ora() { 122 // CHECK: call addrspace(0) i16 asm "subi r30, $0", "=ra"() 123 asm("subi r30, %0" : "=ra"(data)); 124 } 125