brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · c675d7d Raw
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