[PowerPC] Add back test case for absolute calls (removed in r211174)

As requested by Hal Finkel, this adds back a test for calls to
a known-constant function pointer value, and verifies that the
64-bit SVR4 indirect function call sequence is used.

llvm-svn: 211190
This commit is contained in:
Ulrich Weigand 2014-06-18 17:28:56 +00:00
parent 23d26a3ef7
commit e581920d12
1 changed files with 16 additions and 0 deletions

View File

@ -42,6 +42,22 @@ define void @test_indirect(void ()* nocapture %fp) nounwind {
ret void
}
; Absolute values must use the regular indirect call sequence
; The main purpose of this test is to ensure that BLA is not
; used on 64-bit SVR4 (as e.g. on Darwin).
define void @test_abs() nounwind {
; CHECK-LABEL: test_abs:
tail call void inttoptr (i64 1024 to void ()*)() nounwind
; CHECK: ld [[FP:[0-9]+]], 1024(0)
; CHECK: ld 11, 1040(0)
; CHECK: mtctr [[FP]]
; CHECK: li [[FD:[0-9]+]], 1024
; CHECK: ld 2, 8([[FD]])
; CHECK: bctrl
; CHECK-NEXT: ld 2, 40(1)
ret void
}
declare double @sin(double) nounwind
; External functions call should also have a 'nop'