# Test code generation for retrieving function descriptors # from the ADA when the ADA is extremely large and forces the # generation of a different instruction sequence # RUN: %python %s | llc -mtriple=s390x-ibm-zos -O2 | FileCheck %s # CHECK: algfi 8,{{[0-9]+}} # CHECK: la 8,0(8) from __future__ import print_function num_calls = 35000 print("define hidden signext i32 @main() {") print("entry:") for i in range(num_calls): print(" call void @foo%d()" % i) # This is added to force the use of register r8 to generate # la 8, 0(8) which generates the algfi instruction print('%0 = call ptr asm " LGR $0,$1\0A", "=r,{r8}"(ptr nonnull @foo)') print(" call void @bar(ptr noundef %0)") print("ret i32 0") print("}") for i in range(num_calls): print("declare void @foo%d(...)" % i) print("declare void @bar(ptr noundef)") print("define internal void @foo() {") print("entry:") print(" ret void") print(" }")