brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.0 KiB · 1a6b917 Raw
76 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 22; RUN: llc < %s -mtriple=avr | FileCheck %s3; RUN: llc < %s -mtriple=avr -mattr=+avrtiny | FileCheck --check-prefix=TINY %s4 5define i8 @rol8(i8 %val, i8 %amt) {6; CHECK-LABEL: rol8:7; CHECK:       ; %bb.0:8; CHECK-NEXT:    andi r22, 79; CHECK-NEXT:    dec r2210; CHECK-NEXT:    brmi .LBB0_211; CHECK-NEXT:  .LBB0_1: ; =>This Inner Loop Header: Depth=112; CHECK-NEXT:    lsl r2413; CHECK-NEXT:    adc r24, r114; CHECK-NEXT:    dec r2215; CHECK-NEXT:    brpl .LBB0_116; CHECK-NEXT:  .LBB0_2:17; CHECK-NEXT:    ret18;19; TINY-LABEL: rol8:20; TINY:       ; %bb.0:21; TINY-NEXT:    andi r22, 722; TINY-NEXT:    dec r2223; TINY-NEXT:    brmi .LBB0_224; TINY-NEXT:  .LBB0_1: ; =>This Inner Loop Header: Depth=125; TINY-NEXT:    lsl r2426; TINY-NEXT:    adc r24, r1727; TINY-NEXT:    dec r2228; TINY-NEXT:    brpl .LBB0_129; TINY-NEXT:  .LBB0_2:30; TINY-NEXT:    ret31  %mod = urem i8 %amt, 832  %inv = sub i8 8, %mod33  %parta = shl i8 %val, %mod34  %partb = lshr i8 %val, %inv35  %rotl = or i8 %parta, %partb36  ret i8 %rotl37}38 39 40define i8 @ror8(i8 %val, i8 %amt) {41; CHECK-LABEL: ror8:42; CHECK:       ; %bb.0:43; CHECK-NEXT:    andi r22, 744; CHECK-NEXT:    dec r2245; CHECK-NEXT:    brmi .LBB1_246; CHECK-NEXT:  .LBB1_1: ; =>This Inner Loop Header: Depth=147; CHECK-NEXT:    bst r24, 048; CHECK-NEXT:    ror r2449; CHECK-NEXT:    bld r24, 750; CHECK-NEXT:    dec r2251; CHECK-NEXT:    brpl .LBB1_152; CHECK-NEXT:  .LBB1_2:53; CHECK-NEXT:    ret54;55; TINY-LABEL: ror8:56; TINY:       ; %bb.0:57; TINY-NEXT:    andi r22, 758; TINY-NEXT:    dec r2259; TINY-NEXT:    brmi .LBB1_260; TINY-NEXT:  .LBB1_1: ; =>This Inner Loop Header: Depth=161; TINY-NEXT:    bst r24, 062; TINY-NEXT:    ror r2463; TINY-NEXT:    bld r24, 764; TINY-NEXT:    dec r2265; TINY-NEXT:    brpl .LBB1_166; TINY-NEXT:  .LBB1_2:67; TINY-NEXT:    ret68  %mod = urem i8 %amt, 869  %inv = sub i8 8, %mod70  %parta = lshr i8 %val, %mod71  %partb = shl i8 %val, %inv72  %rotr = or i8 %parta, %partb73  ret i8 %rotr74}75 76