44 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 22; RUN: llc -mattr=mul,movw < %s -mtriple=avr | FileCheck %s3 4; Tests lowering of multiplication to hardware instructions.5 6define i8 @mult8(i8 %a, i8 %b) {7; CHECK-LABEL: mult8:8; CHECK: ; %bb.0:9; CHECK-NEXT: muls r22, r2410; CHECK-NEXT: clr r111; CHECK-NEXT: mov r24, r012; CHECK-NEXT: ret13 %mul = mul i8 %b, %a14 ret i8 %mul15}16 17define i16 @mult16(i16 %a, i16 %b) {18; CHECK-LABEL: mult16:19; CHECK: ; %bb.0:20; CHECK-NEXT: muls r22, r2521; CHECK-NEXT: mov r25, r022; CHECK-NEXT: clr r123; CHECK-NEXT: mul r22, r2424; CHECK-NEXT: mov r18, r025; CHECK-NEXT: mov r19, r126; CHECK-NEXT: clr r127; CHECK-NEXT: add r19, r2528; CHECK-NEXT: muls r23, r2429; CHECK-NEXT: clr r130; CHECK-NEXT: mov r24, r031; CHECK-NEXT: add r24, r1932; CHECK-NEXT: mov r20, r2433; CHECK-NEXT: clr r2134; CHECK-NEXT: mov r21, r2035; CHECK-NEXT: clr r2036; CHECK-NEXT: mov r24, r1837; CHECK-NEXT: clr r2538; CHECK-NEXT: or r24, r2039; CHECK-NEXT: or r25, r2140; CHECK-NEXT: ret41 %mul = mul nsw i16 %b, %a42 ret i16 %mul43}44