1 ; RUN: llc -mattr=addsubiw < %s -march=avr | FileCheck %s
3 define i8 @add8_reg_reg(i8 %a, i8 %b) {
4 ; CHECK-LABEL: add8_reg_reg:
6 %result = add i8 %a, %b
10 define i8 @add8_reg_imm(i8 %a) {
11 ; CHECK-LABEL: add8_reg_imm:
13 %result = add i8 %a, 5
17 define i8 @add8_reg_increment(i8 %a) {
18 ; CHECK-LABEL: add8_reg_increment:
20 %result = add i8 %a, 1
25 define i16 @add16_reg_reg(i16 %a, i16 %b) {
26 ; CHECK-LABEL: add16_reg_reg:
29 %result = add i16 %a, %b
33 define i16 @add16_reg_imm(i16 %a) {
34 ; CHECK-LABEL: add16_reg_imm:
36 %result = add i16 %a, 63
40 define i16 @add16_reg_imm_subi(i16 %a) {
41 ; CHECK-LABEL: add16_reg_imm_subi:
42 ; CHECK: subi r24, 133
43 ; CHECK: sbci r25, 255
44 %result = add i16 %a, 123
48 define i32 @add32_reg_reg(i32 %a, i32 %b) {
49 ; CHECK-LABEL: add32_reg_reg:
54 %result = add i32 %a, %b
58 define i32 @add32_reg_imm(i32 %a) {
59 ; CHECK-LABEL: add32_reg_imm:
60 ; CHECK: subi r22, 251
61 ; CHECK: sbci r23, 255
62 ; CHECK: sbci r24, 255
63 ; CHECK: sbci r25, 255
64 %result = add i32 %a, 5
68 define i64 @add64_reg_reg(i64 %a, i64 %b) {
69 ; CHECK-LABEL: add64_reg_reg:
77 %result = add i64 %a, %b
81 define i64 @add64_reg_imm(i64 %a) {
82 ; CHECK-LABEL: add64_reg_imm:
83 ; CHECK: subi r18, 251
84 ; CHECK: sbci r19, 255
85 ; CHECK: sbci r20, 255
86 ; CHECK: sbci r21, 255
87 ; CHECK: sbci r22, 255
88 ; CHECK: sbci r23, 255
89 ; CHECK: sbci r24, 255
90 ; CHECK: sbci r25, 255
91 %result = add i64 %a, 5