76 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=m68k-linux -verify-machineinstrs | FileCheck %s3 4; op reg, reg5 6define zeroext i8 @lsrb(i8 zeroext %a, i8 zeroext %b) nounwind {7; CHECK-LABEL: lsrb:8; CHECK: ; %bb.0:9; CHECK-NEXT: move.b (11,%sp), %d010; CHECK-NEXT: move.b (7,%sp), %d111; CHECK-NEXT: lsr.b %d0, %d112; CHECK-NEXT: move.l %d1, %d013; CHECK-NEXT: and.l #255, %d014; CHECK-NEXT: rts15 %1 = lshr i8 %a, %b16 ret i8 %117}18 19define zeroext i16 @lsrw(i16 zeroext %a, i16 zeroext %b) nounwind {20; CHECK-LABEL: lsrw:21; CHECK: ; %bb.0:22; CHECK-NEXT: move.w (10,%sp), %d023; CHECK-NEXT: move.w (6,%sp), %d124; CHECK-NEXT: lsr.w %d0, %d125; CHECK-NEXT: move.l %d1, %d026; CHECK-NEXT: and.l #65535, %d027; CHECK-NEXT: rts28 %1 = lshr i16 %a, %b29 ret i16 %130}31 32define i32 @lsrl(i32 %a, i32 %b) nounwind {33; CHECK-LABEL: lsrl:34; CHECK: ; %bb.0:35; CHECK-NEXT: move.l (8,%sp), %d136; CHECK-NEXT: move.l (4,%sp), %d037; CHECK-NEXT: lsr.l %d1, %d038; CHECK-NEXT: rts39 %1 = lshr i32 %a, %b40 ret i32 %141}42 43; op reg, imm44 45define zeroext i8 @lsrib(i8 zeroext %a) nounwind {46; CHECK-LABEL: lsrib:47; CHECK: ; %bb.0:48; CHECK-NEXT: move.b (7,%sp), %d049; CHECK-NEXT: lsr.b #3, %d050; CHECK-NEXT: and.l #255, %d051; CHECK-NEXT: rts52 %1 = lshr i8 %a, 353 ret i8 %154}55 56define zeroext i16 @lsriw(i16 zeroext %a) nounwind {57; CHECK-LABEL: lsriw:58; CHECK: ; %bb.0:59; CHECK-NEXT: move.w (6,%sp), %d060; CHECK-NEXT: lsr.w #5, %d061; CHECK-NEXT: and.l #65535, %d062; CHECK-NEXT: rts63 %1 = lshr i16 %a, 564 ret i16 %165}66 67define i32 @lsril(i32 %a) nounwind {68; CHECK-LABEL: lsril:69; CHECK: ; %bb.0:70; CHECK-NEXT: move.l (4,%sp), %d071; CHECK-NEXT: lsr.l #7, %d072; CHECK-NEXT: rts73 %1 = lshr i32 %a, 774 ret i32 %175}76