blob: 2f169347c46e0fdf0a282368d7e40305b5769e72 [file] [log] [blame]
Dylan McKay0d4778f2016-11-09 23:46:52 +00001; RUN: llc -mattr=mul,movw < %s -march=avr | FileCheck %s
2
3define i8 @mult8(i8 %a, i8 %b) {
4; CHECK-LABEL: mult8:
5; CHECK: muls r22, r24
Dylan McKayd3972a82017-11-24 15:36:43 +00006; CHECK: clr r1
Dylan McKay0d4778f2016-11-09 23:46:52 +00007; CHECK: mov r24, r0
8 %mul = mul i8 %b, %a
9 ret i8 %mul
10}
11
12define i16 @mult16(i16 %a, i16 %b) {
13; CHECK-LABEL: mult16:
14; CHECK: muls r22, r25
15; CHECK: mov r18, r0
16; CHECK: mul r22, r24
17; CHECK: mov r19, r0
18; CHECK: mov r20, r1
Dylan McKayd3972a82017-11-24 15:36:43 +000019; CHECK: clr r1
Dylan McKay0d4778f2016-11-09 23:46:52 +000020; CHECK: add r20, r18
21; CHECK: muls r23, r24
Dylan McKayd3972a82017-11-24 15:36:43 +000022; CHECK: clr r1
Dylan McKay0d4778f2016-11-09 23:46:52 +000023; CHECK: mov r22, r0
24; CHECK: add r22, r20
25; :TODO: finish after reworking shift instructions
26 %mul = mul nsw i16 %b, %a
27 ret i16 %mul
28}