| ; RUN: llc -fast-isel=false -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \ | |
| ; RUN: -mcpu=pwr9 -ppc-asm-full-reg-names < %s | FileCheck %s --check-prefix=P9 | |
| ; RUN: llc -fast-isel=false -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \ | |
| ; RUN: -mcpu=pwr10 -ppc-asm-full-reg-names < %s | FileCheck %s --check-prefix=P10 | |
| @newname = dso_local alias i32 (...), ptr @oldname | |
| ; Function Attrs: noinline nounwind optnone | |
| define dso_local signext i32 @oldname() #0 { | |
| entry: | |
| ret i32 55 | |
| } | |
| ; Function Attrs: noinline nounwind optnone | |
| define dso_local signext i32 @caller() #0 { | |
| ; #P9-LABEL: caller | |
| ; #P9: bl newname | |
| ; #P9-NOT: nop | |
| ; #P9: blr | |
| ; #P10-LABEL: caller | |
| ; #P10: bl newname@notoc | |
| ; #P10-NOT: nop | |
| ; #P10: blr | |
| entry: | |
| %call = call signext i32 @newname() | |
| ret i32 %call | |
| } | |
| ; Function Attrs: noinline nounwind optnone -pcrelative-memops | |
| ; This caller does not use PC Relative memops | |
| define dso_local signext i32 @caller_nopcrel() #1 { | |
| ; #P9-LABEL: caller_nopcrel | |
| ; #P9: bl newname | |
| ; #P9-NOT: nop | |
| ; #P9: blr | |
| ; #P10-LABEL: caller_nopcrel | |
| ; #P10: bl newname | |
| ; #P10-NEXT: nop | |
| ; #P10: blr | |
| entry: | |
| %call = call signext i32 @newname() | |
| ret i32 %call | |
| } | |
| attributes #0 = { noinline nounwind optnone } | |
| attributes #1 = { noinline nounwind optnone "target-features"="-pcrelative-memops" } |