xref: /llvm-project/llvm/test/CodeGen/PowerPC/ppc64-notoc-rm-relocation.ll (revision eb7d16ea25649909373e324e6ebf36774cabdbfa)
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \
3; RUN:   -mcpu=pwr10 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \
4; RUN:   < %s | FileCheck %s --check-prefix LE-P10
5; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu \
6; RUN:   -mcpu=pwr10 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \
7; RUN:   < %s | FileCheck %s --check-prefix BE-P10
8; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \
9; RUN:   -mcpu=pwr9 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \
10; RUN:   < %s | FileCheck %s --check-prefix LE-P9
11; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu \
12; RUN:   -mcpu=pwr9 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \
13; RUN:   < %s | FileCheck %s --check-prefix BE-P9
14
15; Function Attrs: nounwind strictfp
16define dso_local signext i32 @main() #0 {
17; LE-P10-LABEL: main:
18; LE-P10:       # %bb.0: # %_main_entry
19; LE-P10-NEXT:    mflr r0
20; LE-P10-NEXT:    std r0, 16(r1)
21; LE-P10-NEXT:    stdu r1, -32(r1)
22; LE-P10-NEXT:    bl callee@notoc
23; LE-P10-NEXT:    li r3, 0
24; LE-P10-NEXT:    addi r1, r1, 32
25; LE-P10-NEXT:    ld r0, 16(r1)
26; LE-P10-NEXT:    mtlr r0
27; LE-P10-NEXT:    blr
28;
29; BE-P10-LABEL: main:
30; BE-P10:       # %bb.0: # %_main_entry
31; BE-P10-NEXT:    mflr r0
32; BE-P10-NEXT:    std r0, 16(r1)
33; BE-P10-NEXT:    stdu r1, -112(r1)
34; BE-P10-NEXT:    bl callee
35; BE-P10-NEXT:    nop
36; BE-P10-NEXT:    li r3, 0
37; BE-P10-NEXT:    addi r1, r1, 112
38; BE-P10-NEXT:    ld r0, 16(r1)
39; BE-P10-NEXT:    mtlr r0
40; BE-P10-NEXT:    blr
41;
42; LE-P9-LABEL: main:
43; LE-P9:       # %bb.0: # %_main_entry
44; LE-P9-NEXT:    mflr r0
45; LE-P9-NEXT:    stdu r1, -32(r1)
46; LE-P9-NEXT:    std r0, 48(r1)
47; LE-P9-NEXT:    bl callee
48; LE-P9-NEXT:    nop
49; LE-P9-NEXT:    li r3, 0
50; LE-P9-NEXT:    addi r1, r1, 32
51; LE-P9-NEXT:    ld r0, 16(r1)
52; LE-P9-NEXT:    mtlr r0
53; LE-P9-NEXT:    blr
54;
55; BE-P9-LABEL: main:
56; BE-P9:       # %bb.0: # %_main_entry
57; BE-P9-NEXT:    mflr r0
58; BE-P9-NEXT:    stdu r1, -112(r1)
59; BE-P9-NEXT:    std r0, 128(r1)
60; BE-P9-NEXT:    bl callee
61; BE-P9-NEXT:    nop
62; BE-P9-NEXT:    li r3, 0
63; BE-P9-NEXT:    addi r1, r1, 112
64; BE-P9-NEXT:    ld r0, 16(r1)
65; BE-P9-NEXT:    mtlr r0
66; BE-P9-NEXT:    blr
67_main_entry:
68  call void @callee() #1
69  ret i32 0
70}
71
72; Function Attrs: strictfp
73declare void @callee() #1
74
75attributes #0 = { nounwind strictfp }
76attributes #1 = { strictfp }
77