[NFC][RemoveDIs] Prefer iterators over inst-pointers in InstCombine
[llvm-project.git] / llvm / test / CodeGen / PowerPC / ppc64-nest.ll
blobcdaa32cfb4664e0a5e13906a6dc36fb8c910fb57
1 ; RUN: llc -verify-machineinstrs < %s | FileCheck %s
2 target datalayout = "E-m:e-i64:64-n32:64"
3 target triple = "powerpc64-unknown-linux-gnu"
5 ; Tests that the 'nest' parameter attribute causes the relevant parameter to be
6 ; passed in the right register (r11 for PPC).
8 define ptr @nest_receiver(ptr nest %arg) nounwind {
9 ; CHECK-LABEL: nest_receiver:
10 ; CHECK: # %bb.0:
11 ; CHECK-NEXT: mr 3, 11
12 ; CHECK-NEXT: blr
14   ret ptr %arg
17 define ptr @nest_caller(ptr %arg) nounwind {
18 ; CHECK-LABEL: nest_caller:
19 ; CHECK: mr 11, 3
20 ; CHECK: std 0, 128(1)
21 ; CHECK-NEXT: bl nest_receiver
22 ; CHECK: blr
24   %result = call ptr @nest_receiver(ptr nest %arg)
25   ret ptr %result
28 define void @test_indirect(ptr nocapture %f, ptr %p) {
29 entry:
31 ; CHECK-LABEL: test_indirect
32 ; CHECK-DAG: ld [[DEST:[0-9]+]], 0(3)
33 ; CHECK-DAG: ld 2, 8(3)
34 ; CHECK-DAG: mr 11, 4
35 ; CHECK: mtctr [[DEST]]
36 ; CHECK: bctrl
37 ; CHECK: blr
39   %call = tail call signext i32 %f(ptr nest %p)
40   ret void