97 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 4define i64 @test1(i64 %A, i32 %B) nounwind {5; CHECK-LABEL: test1:6; CHECK: ; %bb.0:7; CHECK-NEXT: move.l (12,%sp), %d08; CHECK-NEXT: add.l (4,%sp), %d09; CHECK-NEXT: move.l (8,%sp), %d110; CHECK-NEXT: rts11 %tmp12 = zext i32 %B to i6412 %tmp3 = shl i64 %tmp12, 3213 %tmp5 = add i64 %tmp3, %A14 ret i64 %tmp515}16 17define void @test2(ptr inreg %a) nounwind {18; CHECK-LABEL: test2:19; CHECK: ; %bb.0:20; CHECK-NEXT: move.l %d0, %a021; CHECK-NEXT: add.l #128, (%a0)22; CHECK-NEXT: rts23 %aa = load i32, ptr %a24 %b = add i32 %aa, 12825 store i32 %b, ptr %a26 ret void27}28 29define fastcc void @test2_fast(ptr inreg %a) nounwind {30; CHECK-LABEL: test2_fast:31; CHECK: ; %bb.0:32; CHECK-NEXT: add.l #128, (%a0)33; CHECK-NEXT: rts34 %aa = load i32, ptr %a35 %b = add i32 %aa, 12836 store i32 %b, ptr %a37 ret void38}39 40define fastcc void @test3(ptr inreg %a) nounwind {41; CHECK-LABEL: test3:42; CHECK: ; %bb.0:43; CHECK-NEXT: suba.l #4, %sp44; CHECK-NEXT: movem.l %d2, (0,%sp) ; 8-byte Folded Spill45; CHECK-NEXT: move.l (%a0), %d046; CHECK-NEXT: moveq #0, %d147; CHECK-NEXT: move.l #-2147483648, %d248; CHECK-NEXT: add.l (4,%a0), %d249; CHECK-NEXT: addx.l %d0, %d150; CHECK-NEXT: move.l %d2, (4,%a0)51; CHECK-NEXT: move.l %d1, (%a0)52; CHECK-NEXT: movem.l (0,%sp), %d2 ; 8-byte Folded Reload53; CHECK-NEXT: adda.l #4, %sp54; CHECK-NEXT: rts55 %aa = load i64, ptr %a56 %b = add i64 %aa, 214748364857 store i64 %b, ptr %a58 ret void59}60 61define fastcc void @test4(ptr inreg %a) nounwind {62; CHECK-LABEL: test4:63; CHECK: ; %bb.0:64; CHECK-NEXT: suba.l #4, %sp65; CHECK-NEXT: movem.l %d2, (0,%sp) ; 8-byte Folded Spill66; CHECK-NEXT: move.l (%a0), %d067; CHECK-NEXT: moveq #0, %d168; CHECK-NEXT: moveq #127, %d269; CHECK-NEXT: not.b %d270; CHECK-NEXT: add.l (4,%a0), %d271; CHECK-NEXT: addx.l %d0, %d172; CHECK-NEXT: move.l %d2, (4,%a0)73; CHECK-NEXT: move.l %d1, (%a0)74; CHECK-NEXT: movem.l (0,%sp), %d2 ; 8-byte Folded Reload75; CHECK-NEXT: adda.l #4, %sp76; CHECK-NEXT: rts77 %aa = load i64, ptr %a78 %b = add i64 %aa, 12879 store i64 %b, ptr %a80 ret void81}82 83define fastcc i32 @test9(i32 %x, i32 %y) nounwind readnone {84; CHECK-LABEL: test9:85; CHECK: ; %bb.0:86; CHECK-NEXT: sub.l #10, %d087; CHECK-NEXT: seq %d088; CHECK-NEXT: ext.w %d089; CHECK-NEXT: ext.l %d090; CHECK-NEXT: add.l %d1, %d091; CHECK-NEXT: rts92 %cmp = icmp eq i32 %x, 1093 %sub = sext i1 %cmp to i3294 %cond = add i32 %sub, %y95 ret i32 %cond96}97