63 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=m68k-freestanding -verify-machineinstrs | FileCheck %s3 4define fastcc i16 @switch_to_btst(i16 %a) nounwind {5; CHECK-LABEL: switch_to_btst:6; CHECK: ; %bb.0: ; %entry7; CHECK-NEXT: move.l %d0, %d18; CHECK-NEXT: and.l #65535, %d19; CHECK-NEXT: sub.l #11, %d110; CHECK-NEXT: bhi .LBB0_311; CHECK-NEXT: ; %bb.1: ; %entry12; CHECK-NEXT: and.l #65535, %d013; CHECK-NEXT: move.l #3612, %d114; CHECK-NEXT: btst %d0, %d115; CHECK-NEXT: beq .LBB0_316; CHECK-NEXT: ; %bb.2: ; %match17; CHECK-NEXT: moveq #1, %d018; CHECK-NEXT: rts19; CHECK-NEXT: .LBB0_3: ; %no_match20; CHECK-NEXT: moveq #0, %d021; CHECK-NEXT: rts22 entry:23 switch i16 %a, label %no_match [24 i16 11, label %match25 i16 10, label %match26 i16 9, label %match27 i16 4, label %match28 i16 3, label %match29 i16 2, label %match30 ]31 32 match:33 ret i16 134 35 no_match:36 ret i16 037}38 39define fastcc i16 @and_mask_to_btst(i8 %a, i8 %b) nounwind {40; CHECK-LABEL: and_mask_to_btst:41; CHECK: ; %bb.0:42; CHECK-NEXT: and.l #7, %d143; CHECK-NEXT: btst %d1, %d044; CHECK-NEXT: beq .LBB1_145; CHECK-NEXT: ; %bb.2: ; %cond_false46; CHECK-NEXT: moveq #0, %d047; CHECK-NEXT: rts48; CHECK-NEXT: .LBB1_1: ; %cond_true49; CHECK-NEXT: moveq #1, %d050; CHECK-NEXT: rts51 %33 = and i8 %b, 752 %34 = shl nuw i8 1, %3353 %35 = and i8 %34, %a54 %.not = icmp eq i8 %35, 055 br i1 %.not, label %cond_true, label %cond_false56 57 cond_true:58 ret i16 159 60 cond_false:61 ret i16 062}63