1; RUN: llc -mattr=avr6,-mul < %s -march=avr | FileCheck %s
2; RUN: llc -mcpu=attiny85 < %s -march=avr | FileCheck %s
3; RUN: llc -mcpu=ata5272 < %s -march=avr | FileCheck %s
4; RUN: llc -mcpu=attiny861a < %s -march=avr | FileCheck %s
5; RUN: llc -mcpu=at90usb82 < %s -march=avr | FileCheck %s
6
7; Tests lowering of multiplication to compiler support routines.
8
9; CHECK-LABEL: mul8:
10define i8 @mul8(i8 %a, i8 %b) {
11; CHECK: mov  r25, r24
12; CHECK: mov  r24, r22
13; CHECK: mov  r22, r25
14; CHECK: call __mulqi3
15  %mul = mul i8 %b, %a
16  ret i8 %mul
17}
18
19; CHECK-LABEL: mul16:
20define i16 @mul16(i16 %a, i16 %b) {
21; CHECK: movw  r18, r24
22; CHECK: movw  r24, r22
23; CHECK: movw  r22, r18
24; CHECK: call  __mulhi3
25  %mul = mul nsw i16 %b, %a
26  ret i16 %mul
27}
28
29