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