xref: /llvm-project/llvm/test/CodeGen/AVR/intrinsics/named-reg-special.ll (revision 9ef1d37ffb5f56a9b949a6307bbb16c2ea0130e3)
1; RUN: llc -O0 < %s -mtriple=avr | FileCheck %s
2
3; CHECK-LABEL: read_sp:
4; CHECK: in r24, 61
5; CHECK: in r25, 62
6define i16 @read_sp() {
7entry:
8  %sp = call i16 @llvm.read_register.i16(metadata !0)
9  ret i16 %sp
10}
11
12; CHECK-LABEL: read_r0:
13; CHECK: mov r24, r0
14define i8 @read_r0() {
15entry:
16  %r0 = call i8 @llvm.read_register.i8(metadata !1)
17  ret i8 %r0
18}
19
20; CHECK-LABEL: read_r1:
21; CHECK: mov r24, r1
22define i8 @read_r1() {
23entry:
24  %r1 = call i8 @llvm.read_register.i8(metadata !2)
25  ret i8 %r1
26}
27
28; CHECK-LABEL: read_r1r0:
29; CHECK: mov r24, r0
30; CHECK: mov r25, r1
31define i16 @read_r1r0() {
32entry:
33  %r1r0 = call i16 @llvm.read_register.i16(metadata !1)
34  ret i16 %r1r0
35}
36
37declare i16 @llvm.read_register.i16(metadata)
38declare i8 @llvm.read_register.i8(metadata)
39
40!0 = !{!"sp"}
41!1 = !{!"r0"}
42!2 = !{!"r1"}
43