annotate test/CodeGen/AVR/sub.ll @ 128:c347d3398279 default tip

fix
author mir3636
date Wed, 06 Dec 2017 14:37:17 +0900
parents 1172e4bd9c6f
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
1 ; RUN: llc < %s -march=avr | FileCheck %s
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
2
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
3 define i8 @sub8_reg_reg(i8 %a, i8 %b) {
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
4 ; CHECK-LABEL: sub8_reg_reg:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
5 ; CHECK: sub r24, r22
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
6 %result = sub i8 %a, %b
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
7 ret i8 %result
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
8 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
9
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
10 define i8 @sub8_reg_imm(i8 %a) {
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
11 ; CHECK-LABEL: sub8_reg_imm:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
12 ; CHECK: subi r24, 5
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
13 %result = sub i8 %a, 5
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
14 ret i8 %result
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
15 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
16
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
17 define i8 @sub8_reg_decrement(i8 %a) {
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
18 ; CHECK-LABEL: sub8_reg_decrement:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
19 ; CHECK: dec r24
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
20 %result = sub i8 %a, 1
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
21 ret i8 %result
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
22 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
23
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
24 define i16 @sub16_reg_reg(i16 %a, i16 %b) {
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
25 ; CHECK-LABEL: sub16_reg_reg:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
26 ; CHECK: sub r24, r22
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
27 ; CHECK: sbc r25, r23
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
28 %result = sub i16 %a, %b
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
29 ret i16 %result
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
30 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
31
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
32 define i16 @sub16_reg_imm(i16 %a) {
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
33 ; CHECK-LABEL: sub16_reg_imm:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
34 ; CHECK: sbiw r24, 63
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
35 %result = sub i16 %a, 63
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
36 ret i16 %result
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
37 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
38
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
39 define i16 @sub16_reg_imm_subi(i16 %a) {
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
40 ; CHECK-LABEL: sub16_reg_imm_subi:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
41 ; CHECK: subi r24, 210
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
42 ; CHECK: sbci r25, 4
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
43 %result = sub i16 %a, 1234
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
44 ret i16 %result
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
45 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
46
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
47 define i32 @sub32_reg_reg(i32 %a, i32 %b) {
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
48 ; CHECK-LABEL: sub32_reg_reg:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
49 ; CHECK: sub r22, r18
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
50 ; CHECK: sbc r23, r19
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
51 ; CHECK: sbc r24, r20
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
52 ; CHECK: sbc r25, r21
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
53 %result = sub i32 %a, %b
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
54 ret i32 %result
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
55 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
56
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
57 define i32 @sub32_reg_imm(i32 %a) {
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
58 ; CHECK-LABEL: sub32_reg_imm:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
59 ; CHECK: subi r22, 21
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
60 ; CHECK: sbci r23, 205
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
61 ; CHECK: sbci r24, 91
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
62 ; CHECK: sbci r25, 7
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
63 %result = sub i32 %a, 123456789
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
64 ret i32 %result
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
65 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
66
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
67 define i64 @sub64_reg_reg(i64 %a, i64 %b) {
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
68 ; CHECK-LABEL: sub64_reg_reg:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
69 ; CHECK: sub r18, r10
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
70 ; CHECK: sbc r20, r12
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
71 ; CHECK: sbc r21, r13
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
72 ; CHECK: sbc r22, r14
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
73 ; CHECK: sbc r23, r15
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
74 ; CHECK: sbc r24, r16
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
75 ; CHECK: sbc r25, r17
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
76 %result = sub i64 %a, %b
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
77 ret i64 %result
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
78 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
79
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
80 define i64 @sub64_reg_imm(i64 %a) {
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
81 ; CHECK-LABEL: sub64_reg_imm:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
82 ; CHECK: subi r18, 204
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
83 ; CHECK: sbci r19, 204
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
84 ; CHECK: sbci r20, 104
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
85 ; CHECK: sbci r21, 37
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
86 ; CHECK: sbci r22, 25
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
87 ; CHECK: sbci r23, 22
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
88 ; CHECK: sbci r24, 236
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
89 ; CHECK: sbci r25, 190
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
90 %result = sub i64 %a, 13757395258967641292
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
91 ret i64 %result
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
92 }