1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2; RUN: llc < %s -mtriple=m68k-pc-linux -relocation-model=pic -verify-machineinstrs | FileCheck %s 3 4; 5; C Call passes all arguments on stack ... 6 7define void @test1(ptr nocapture %out, i32 %in) nounwind { 8; CHECK-LABEL: test1: 9; CHECK: ; %bb.0: ; %entry 10; CHECK-NEXT: move.l (4,%sp), %a0 11; CHECK-NEXT: move.l (8,%sp), (%a0) 12; CHECK-NEXT: rts 13entry: 14 store i32 %in, ptr %out, align 4 15 ret void 16} 17 18define void @test2(ptr nocapture %pOut, ptr nocapture %pIn) nounwind { 19; CHECK-LABEL: test2: 20; CHECK: ; %bb.0: ; %entry 21; CHECK-NEXT: move.l (8,%sp), %a0 22; CHECK-NEXT: move.l (4,%sp), %a1 23; CHECK-NEXT: move.l (%a0), (%a1) 24; CHECK-NEXT: rts 25entry: 26 %0 = load i32, ptr %pIn, align 4 27 store i32 %0, ptr %pOut, align 4 28 ret void 29} 30 31define void @test3(ptr nocapture %out, i8 %in) nounwind { 32; CHECK-LABEL: test3: 33; CHECK: ; %bb.0: ; %entry 34; CHECK-NEXT: move.l (4,%sp), %a0 35; CHECK-NEXT: move.b (11,%sp), (%a0) 36; CHECK-NEXT: rts 37entry: 38 store i8 %in, ptr %out, align 1 39 ret void 40} 41 42define void @test4(ptr nocapture %out, i16 %in) nounwind { 43; CHECK-LABEL: test4: 44; CHECK: ; %bb.0: ; %entry 45; CHECK-NEXT: move.l (4,%sp), %a0 46; CHECK-NEXT: move.w (10,%sp), (%a0) 47; CHECK-NEXT: rts 48entry: 49 store i16 %in, ptr %out, align 2 50 ret void 51} 52 53define i8 @test5(i8 %a, i8 %b) nounwind { 54; CHECK-LABEL: test5: 55; CHECK: ; %bb.0: ; %entry 56; CHECK-NEXT: move.b (7,%sp), %d0 57; CHECK-NEXT: add.b (11,%sp), %d0 58; CHECK-NEXT: rts 59entry: 60 %add = add i8 %a, %b 61 ret i8 %add 62} 63 64define i16 @test6(i16 %a, i16 %b) nounwind { 65; CHECK-LABEL: test6: 66; CHECK: ; %bb.0: ; %entry 67; CHECK-NEXT: move.w (6,%sp), %d0 68; CHECK-NEXT: add.w (10,%sp), %d0 69; CHECK-NEXT: rts 70entry: 71 %add = add i16 %a, %b 72 ret i16 %add 73} 74