93 lines · plain
1; RUN: llc < %s -mtriple=avr | FileCheck %s2 3define i8 @sub8_reg_reg(i8 %a, i8 %b) {4; CHECK-LABEL: sub8_reg_reg:5; CHECK: sub r24, r226 %result = sub i8 %a, %b7 ret i8 %result8}9 10define i8 @sub8_reg_imm(i8 %a) {11; CHECK-LABEL: sub8_reg_imm:12; CHECK: subi r24, 513 %result = sub i8 %a, 514 ret i8 %result15}16 17define i8 @sub8_reg_decrement(i8 %a) {18; CHECK-LABEL: sub8_reg_decrement:19; CHECK: dec r2420 %result = sub i8 %a, 121 ret i8 %result22}23 24define i16 @sub16_reg_reg(i16 %a, i16 %b) {25; CHECK-LABEL: sub16_reg_reg:26; CHECK: sub r24, r2227; CHECK: sbc r25, r2328 %result = sub i16 %a, %b29 ret i16 %result30}31 32define i16 @sub16_reg_imm(i16 %a) {33; CHECK-LABEL: sub16_reg_imm:34; CHECK: sbiw r24, 6335 %result = sub i16 %a, 6336 ret i16 %result37}38 39define i16 @sub16_reg_imm_subi(i16 %a) {40; CHECK-LABEL: sub16_reg_imm_subi:41; CHECK: subi r24, 21042; CHECK: sbci r25, 443 %result = sub i16 %a, 123444 ret i16 %result45}46 47define i32 @sub32_reg_reg(i32 %a, i32 %b) {48; CHECK-LABEL: sub32_reg_reg:49; CHECK: sub r22, r1850; CHECK: sbc r23, r1951; CHECK: sbc r24, r2052; CHECK: sbc r25, r2153 %result = sub i32 %a, %b54 ret i32 %result55}56 57define i32 @sub32_reg_imm(i32 %a) {58; CHECK-LABEL: sub32_reg_imm:59; CHECK: subi r22, 2160; CHECK: sbci r23, 20561; CHECK: sbci r24, 9162; CHECK: sbci r25, 763 %result = sub i32 %a, 12345678964 ret i32 %result65}66 67define i64 @sub64_reg_reg(i64 %a, i64 %b) {68; CHECK-LABEL: sub64_reg_reg:69; CHECK: sub r18, r1070; CHECK: sbc r20, r1271; CHECK: sbc r21, r1372; CHECK: sbc r22, r1473; CHECK: sbc r23, r1574; CHECK: sbc r24, r1675; CHECK: sbc r25, r1776 %result = sub i64 %a, %b77 ret i64 %result78}79 80define i64 @sub64_reg_imm(i64 %a) {81; CHECK-LABEL: sub64_reg_imm:82; CHECK: subi r18, 20483; CHECK: sbci r19, 20484; CHECK: sbci r20, 10485; CHECK: sbci r21, 3786; CHECK: sbci r22, 2587; CHECK: sbci r23, 2288; CHECK: sbci r24, 23689; CHECK: sbci r25, 19090 %result = sub i64 %a, 1375739525896764129291 ret i64 %result92}93