1*2544d919SChristian Ulmann; RUN: llvm-extract -func foo -S %s | FileCheck %s 2*2544d919SChristian Ulmann 3*2544d919SChristian Ulmann; llvm-extract should not copy ifuncs into the new module, so make sure they 4*2544d919SChristian Ulmann; are turned into declarations. 5*2544d919SChristian Ulmann 6*2544d919SChristian Ulmann; CHECK: define void @foo() { 7*2544d919SChristian Ulmann; CHECK: call void @ifunc() 8*2544d919SChristian Ulmanndefine void @foo() { 9*2544d919SChristian Ulmann call void @ifunc() 10*2544d919SChristian Ulmann ret void 11*2544d919SChristian Ulmann} 12*2544d919SChristian Ulmann 13*2544d919SChristian Ulmanndefine void @ifunc_impl() { 14*2544d919SChristian Ulmann ret void 15*2544d919SChristian Ulmann} 16*2544d919SChristian Ulmann 17*2544d919SChristian Ulmann; CHECK: declare void @ifunc() 18*2544d919SChristian Ulmann@ifunc = ifunc void (), ptr @ifunc_resolver 19*2544d919SChristian Ulmann 20*2544d919SChristian Ulmanndefine internal ptr @ifunc_resolver() { 21*2544d919SChristian Ulmann ret ptr @ifunc_impl 22*2544d919SChristian Ulmann} 23