; RUN: opt -ppc-prep-ifunc-aix -mtriple=powerpc64-ibm-aix-xcoff %s -S | FileCheck %s -DALIGN=8 ; RUN: opt -ppc-prep-ifunc-aix -mtriple=powerpc-ibm-aix-xcoff %s -S | FileCheck %s -DALIGN=4 ; CHECK: @__update_foo = private global { ptr, ptr } { ptr @foo, ptr @foo.resolver }, section "__ifunc_sec", align [[ALIGN]] ; CHECK: @__update_bar = private global { ptr, ptr } { ptr @bar, ptr @bar.resolver }, section "__ifunc_sec", align [[ALIGN]] ; CHECK: @foo = ifunc i32 (...), ptr @foo.resolver, !implicit.ref ![[#UPDATE_FOO:]], !implicit.ref ![[#INIT_IFUNC:]] ; CHECK: @bar = ifunc void (i32, i1), ptr @bar.resolver, !implicit.ref ![[#UPDATE_BAR:]], !implicit.ref ![[#INIT_IFUNC]] ; CHECK: declare void @__init_ifuncs() ; CHECK: ![[#UPDATE_FOO]] = !{ptr @__update_foo} ; CHECK: ![[#INIT_IFUNC]] = !{ptr @__init_ifuncs} ; CHECK: ![[#UPDATE_BAR]] = !{ptr @__update_bar} @foo = ifunc i32 (...), ptr @foo.resolver @bar = ifunc void (i32, i1), ptr @bar.resolver define hidden signext i32 @my_foo() { entry: ret i32 4 } define internal ptr @foo.resolver() { entry: ret ptr @my_foo } declare void @my_bar(i32, i1) define ptr @bar.resolver() { entry: ret ptr @my_bar }