// REQUIRES: ppc

// RUN: llvm-mc -filetype=obj -triple=powerpc64le-unknown-linux %s -o %t.o
// RUN: ld.lld -shared %t.o -o %t.so
// RUN: llvm-readelf --dyn-relocations %t.so | FileCheck %s -allow-empty --implicit-check-not={{.}}

// RUN: llvm-mc -filetype=obj -triple=powerpc64-unknown-linux %s -o %t.o
// RUN: ld.lld -shared %t.o -o %t.so
// RUN: llvm-readelf --dyn-relocations %t.so | FileCheck %s -allow-empty --implicit-check-not={{.}}

	.text
	.abiversion 2
	.globl	baz
	.p2align	4
	.type	baz,@function
baz:
.Lfunc_begin0:
.Lfunc_gep0:
	addis 2, 12, .TOC.-.Lfunc_gep0@ha
	addi 2, 2, .TOC.-.Lfunc_gep0@l
.Lfunc_lep0:
	.localentry	baz, .Lfunc_lep0-.Lfunc_gep0
	mflr 0
	std 0, 16(1)
	stdu 1, -64(1)
	std 30, 48(1)
	std 29, 40(1)
	mr 30, 3
	bl foo
	mr 29, 3
	mr 3, 30
	bl bar
	mullw 3, 3, 29
	ld 30, 48(1)
	ld 29, 40(1)
	extsw 3, 3
	addi 1, 1, 64
	ld 0, 16(1)
	mtlr 0
	blr
	.long	0
	.quad	0
.Lfunc_end0:
	.size	baz, .Lfunc_end0-.Lfunc_begin0

	.p2align	4
	.type	foo,@function
foo:
.Lfunc_begin1:
	mullw 3, 3, 3
	extsw 3, 3
	blr
	.long	0
	.quad	0
.Lfunc_end1:
	.size	foo, .Lfunc_end1-.Lfunc_begin1

        .p2align	4
	.type	bar,@function
bar:
.Lfunc_begin2:
.Lfunc_gep2:
	addis 2, 12, .TOC.-.Lfunc_gep2@ha
	addi 2, 2, .TOC.-.Lfunc_gep2@l
.Lfunc_lep2:
	.localentry	bar, .Lfunc_lep2-.Lfunc_gep2
	mflr 0
	std 0, 16(1)
	stdu 1, -48(1)
	std 30, 32(1)
	mr 30, 3
	bl foo
	mullw 3, 3, 30
	ld 30, 32(1)
	extsw 3, 3
	addi 1, 1, 48
	ld 0, 16(1)
	mtlr 0
	blr
	.long	0
	.quad	0
.Lfunc_end2:
	.size	bar, .Lfunc_end2-.Lfunc_begin2
