blob: 654d5bf86b46428e65ed4e94dee73b0aecb6e1a5 [file] [edit]
; REQUIRES: powerpc-registered-target
; Strip blank lines and inline attribute comments so the declaration
; stream is contiguous and can be checked with -NEXT: no unexpected call
; can sneak in between two checked declarations.
; RUN: opt -S -passes=declare-runtime-libcalls -mtriple=powerpc-ibm-aix < %s | sed '/^$/d;/^; Function Attrs:/d' | FileCheck -check-prefix=AIX32 %s
; RUN: opt -S -passes=declare-runtime-libcalls -mtriple=powerpc64-ibm-aix < %s | sed '/^$/d;/^; Function Attrs:/d' | FileCheck -check-prefix=AIX64 %s
; RUN: opt -S -passes=declare-runtime-libcalls -mtriple=powerpc64-unknown-linux-gnu < %s | sed '/^$/d;/^; Function Attrs:/d' | FileCheck -check-prefix=LINUX %s
; AIX32: @__ssp_canary_word = external global ptr
; AIX32-NEXT: declare i32 @_Unwind_RaiseException(ptr)
; AIX32-NEXT: declare void @_Unwind_Resume(ptr)
; AIX32-NEXT: declare void @___bzero(ptr, i32)
; AIX32-NEXT: declare ptr @___memccpy(ptr, ptr, i32, i32)
; AIX32-NEXT: declare i32 @___memcmp(ptr, ptr, i32)
; AIX32-NEXT: declare ptr @___memmove(ptr, ptr, i32)
; AIX32-NEXT: declare ptr @___memset(ptr, i32, i32)
; AIX32-NEXT: declare i32 @___strcmp(ptr, ptr)
; AIX32-NEXT: declare ptr @___strcpy(ptr, ptr)
; AIX32-NEXT: declare i32 @___strlen(ptr)
; AIX32-NEXT: declare ptr @___strstr(ptr, ptr)
; AIX32-NEXT: declare double @__adddf3(double, double)
; AIX32-NEXT: declare fp128 @__addkf3(fp128, fp128)
; AIX32-NEXT: declare float @__addsf3(float, float)
; AIX32-NEXT: declare i64 @__ashldi3(i64, i32)
; AIX32-NEXT: declare signext i16 @__ashlhi3(i16 signext, i32)
; AIX32-NEXT: declare i32 @__ashlsi3(i32, i32)
; AIX32-NEXT: declare i64 @__ashrdi3(i64, i32)
; AIX32-NEXT: declare signext i16 @__ashrhi3(i16 signext, i32)
; AIX32-NEXT: declare i32 @__ashrsi3(i32, i32)
; AIX32-NEXT: declare zeroext i1 @__atomic_compare_exchange(i32, ptr, ptr, ptr, i32, i32)
; AIX32-NEXT: declare zeroext i1 @__atomic_compare_exchange_1(ptr, ptr, i8 zeroext, i32, i32)
; AIX32-NEXT: declare zeroext i1 @__atomic_compare_exchange_16(ptr, ptr, i128, i32, i32)
; AIX32-NEXT: declare zeroext i1 @__atomic_compare_exchange_2(ptr, ptr, i16 zeroext, i32, i32)
; AIX32-NEXT: declare zeroext i1 @__atomic_compare_exchange_4(ptr, ptr, i32, i32, i32)
; AIX32-NEXT: declare zeroext i1 @__atomic_compare_exchange_8(ptr, ptr, i64, i32, i32)
; AIX32-NEXT: declare void @__atomic_exchange(i32, ptr, ptr, ptr, i32)
; AIX32-NEXT: declare zeroext i8 @__atomic_exchange_1(ptr, i8 zeroext, i32)
; AIX32-NEXT: declare i128 @__atomic_exchange_16(ptr, i128, i32)
; AIX32-NEXT: declare zeroext i16 @__atomic_exchange_2(ptr, i16 zeroext, i32)
; AIX32-NEXT: declare i32 @__atomic_exchange_4(ptr, i32, i32)
; AIX32-NEXT: declare i64 @__atomic_exchange_8(ptr, i64, i32)
; AIX32-NEXT: declare zeroext i8 @__atomic_fetch_add_1(ptr, i8 zeroext, i32)
; AIX32-NEXT: declare i128 @__atomic_fetch_add_16(ptr, i128, i32)
; AIX32-NEXT: declare zeroext i16 @__atomic_fetch_add_2(ptr, i16 zeroext, i32)
; AIX32-NEXT: declare i32 @__atomic_fetch_add_4(ptr, i32, i32)
; AIX32-NEXT: declare i64 @__atomic_fetch_add_8(ptr, i64, i32)
; AIX32-NEXT: declare zeroext i8 @__atomic_fetch_and_1(ptr, i8 zeroext, i32)
; AIX32-NEXT: declare i128 @__atomic_fetch_and_16(ptr, i128, i32)
; AIX32-NEXT: declare zeroext i16 @__atomic_fetch_and_2(ptr, i16 zeroext, i32)
; AIX32-NEXT: declare i32 @__atomic_fetch_and_4(ptr, i32, i32)
; AIX32-NEXT: declare i64 @__atomic_fetch_and_8(ptr, i64, i32)
; AIX32-NEXT: declare zeroext i8 @__atomic_fetch_nand_1(ptr, i8 zeroext, i32)
; AIX32-NEXT: declare i128 @__atomic_fetch_nand_16(ptr, i128, i32)
; AIX32-NEXT: declare zeroext i16 @__atomic_fetch_nand_2(ptr, i16 zeroext, i32)
; AIX32-NEXT: declare i32 @__atomic_fetch_nand_4(ptr, i32, i32)
; AIX32-NEXT: declare i64 @__atomic_fetch_nand_8(ptr, i64, i32)
; AIX32-NEXT: declare zeroext i8 @__atomic_fetch_or_1(ptr, i8 zeroext, i32)
; AIX32-NEXT: declare i128 @__atomic_fetch_or_16(ptr, i128, i32)
; AIX32-NEXT: declare zeroext i16 @__atomic_fetch_or_2(ptr, i16 zeroext, i32)
; AIX32-NEXT: declare i32 @__atomic_fetch_or_4(ptr, i32, i32)
; AIX32-NEXT: declare i64 @__atomic_fetch_or_8(ptr, i64, i32)
; AIX32-NEXT: declare zeroext i8 @__atomic_fetch_sub_1(ptr, i8 zeroext, i32)
; AIX32-NEXT: declare i128 @__atomic_fetch_sub_16(ptr, i128, i32)
; AIX32-NEXT: declare zeroext i16 @__atomic_fetch_sub_2(ptr, i16 zeroext, i32)
; AIX32-NEXT: declare i32 @__atomic_fetch_sub_4(ptr, i32, i32)
; AIX32-NEXT: declare i64 @__atomic_fetch_sub_8(ptr, i64, i32)
; AIX32-NEXT: declare zeroext i8 @__atomic_fetch_xor_1(ptr, i8 zeroext, i32)
; AIX32-NEXT: declare i128 @__atomic_fetch_xor_16(ptr, i128, i32)
; AIX32-NEXT: declare zeroext i16 @__atomic_fetch_xor_2(ptr, i16 zeroext, i32)
; AIX32-NEXT: declare i32 @__atomic_fetch_xor_4(ptr, i32, i32)
; AIX32-NEXT: declare i64 @__atomic_fetch_xor_8(ptr, i64, i32)
; AIX32-NEXT: declare void @__atomic_load(i32, ptr, ptr, i32)
; AIX32-NEXT: declare zeroext i8 @__atomic_load_1(ptr, i32)
; AIX32-NEXT: declare i128 @__atomic_load_16(ptr, i32)
; AIX32-NEXT: declare zeroext i16 @__atomic_load_2(ptr, i32)
; AIX32-NEXT: declare i32 @__atomic_load_4(ptr, i32)
; AIX32-NEXT: declare i64 @__atomic_load_8(ptr, i32)
; AIX32-NEXT: declare void @__atomic_store(i32, ptr, ptr, i32)
; AIX32-NEXT: declare void @__atomic_store_1(ptr, i8 zeroext, i32)
; AIX32-NEXT: declare void @__atomic_store_16(ptr, i128, i32)
; AIX32-NEXT: declare void @__atomic_store_2(ptr, i16 zeroext, i32)
; AIX32-NEXT: declare void @__atomic_store_4(ptr, i32, i32)
; AIX32-NEXT: declare void @__atomic_store_8(ptr, i64, i32)
; AIX32-NEXT: declare void @__clear_cache(ptr, ptr)
; AIX32-NEXT: declare i32 @__clzdi2(i64)
; AIX32-NEXT: declare i32 @__clzsi2(i32)
; AIX32-NEXT: declare i32 @__clzti2(i128)
; AIX32-NEXT: declare i32 @__ctzdi2(i64)
; AIX32-NEXT: declare i32 @__ctzsi2(i32)
; AIX32-NEXT: declare i32 @__ctzti2(i128)
; AIX32-NEXT: declare void @__cxa_end_cleanup()
; AIX32-NEXT: declare double @__divdf3(double, double)
; AIX32-NEXT: declare i64 @__divdi3(i64, i64)
; AIX32-NEXT: declare signext i16 @__divhi3(i16 signext, i16 signext)
; AIX32-NEXT: declare fp128 @__divkf3(fp128, fp128)
; AIX32-NEXT: declare signext i8 @__divqi3(i8 signext, i8 signext)
; AIX32-NEXT: declare float @__divsf3(float, float)
; AIX32-NEXT: declare i32 @__divsi3(i32, i32)
; AIX32-NEXT: declare i128 @__divti3(i128, i128)
; AIX32-NEXT: declare i32 @__eqdf2(double, double)
; AIX32-NEXT: declare i32 @__eqkf2(fp128, fp128)
; AIX32-NEXT: declare i32 @__eqsf2(float, float)
; AIX32-NEXT: declare double @__exp2_finite(double)
; AIX32-NEXT: declare float @__exp2f_finite(float)
; AIX32-NEXT: declare double @__exp2l_finite(double)
; AIX32-NEXT: declare double @__exp_finite(double)
; AIX32-NEXT: declare float @__expf_finite(float)
; AIX32-NEXT: declare double @__expl_finite(double)
; AIX32-NEXT: declare float @__extendbfsf2(bfloat)
; AIX32-NEXT: declare fp128 @__extenddfkf2(double)
; AIX32-NEXT: declare double @__extendhfdf2(half)
; AIX32-NEXT: declare float @__extendhfsf2(half)
; AIX32-NEXT: declare ppc_fp128 @__extendkftf2(fp128)
; AIX32-NEXT: declare double @__extendsfdf2(float)
; AIX32-NEXT: declare fp128 @__extendsfkf2(float)
; AIX32-NEXT: declare i64 @__fixdfdi(double)
; AIX32-NEXT: declare i32 @__fixdfsi(double)
; AIX32-NEXT: declare i128 @__fixdfti(double)
; AIX32-NEXT: declare i64 @__fixhfdi(half)
; AIX32-NEXT: declare i32 @__fixhfsi(half)
; AIX32-NEXT: declare i128 @__fixhfti(half)
; AIX32-NEXT: declare i64 @__fixkfdi(fp128)
; AIX32-NEXT: declare i32 @__fixkfsi(fp128)
; AIX32-NEXT: declare i128 @__fixkfti(fp128)
; AIX32-NEXT: declare i64 @__fixsfdi(float)
; AIX32-NEXT: declare i32 @__fixsfsi(float)
; AIX32-NEXT: declare i128 @__fixsfti(float)
; AIX32-NEXT: declare i64 @__fixtfdi(ppc_fp128)
; AIX32-NEXT: declare i128 @__fixtfti(ppc_fp128)
; AIX32-NEXT: declare i64 @__fixunsdfdi(double)
; AIX32-NEXT: declare i32 @__fixunsdfsi(double)
; AIX32-NEXT: declare i128 @__fixunsdfti(double)
; AIX32-NEXT: declare i64 @__fixunshfdi(half)
; AIX32-NEXT: declare i32 @__fixunshfsi(half)
; AIX32-NEXT: declare i128 @__fixunshfti(half)
; AIX32-NEXT: declare i64 @__fixunskfdi(fp128)
; AIX32-NEXT: declare i32 @__fixunskfsi(fp128)
; AIX32-NEXT: declare i128 @__fixunskfti(fp128)
; AIX32-NEXT: declare i64 @__fixunssfdi(float)
; AIX32-NEXT: declare i32 @__fixunssfsi(float)
; AIX32-NEXT: declare i128 @__fixunssfti(float)
; AIX32-NEXT: declare i64 @__fixunstfdi(ppc_fp128)
; AIX32-NEXT: declare i32 @__fixunstfsi(ppc_fp128)
; AIX32-NEXT: declare i128 @__fixunstfti(ppc_fp128)
; AIX32-NEXT: declare bfloat @__floatdibf(i64)
; AIX32-NEXT: declare double @__floatdidf(i64)
; AIX32-NEXT: declare half @__floatdihf(i64)
; AIX32-NEXT: declare fp128 @__floatdikf(i64)
; AIX32-NEXT: declare float @__floatdisf(i64)
; AIX32-NEXT: declare ppc_fp128 @__floatditf(i64)
; AIX32-NEXT: declare double @__floatsidf(i32)
; AIX32-NEXT: declare half @__floatsihf(i32)
; AIX32-NEXT: declare fp128 @__floatsikf(i32)
; AIX32-NEXT: declare float @__floatsisf(i32)
; AIX32-NEXT: declare double @__floattidf(i128)
; AIX32-NEXT: declare half @__floattihf(i128)
; AIX32-NEXT: declare fp128 @__floattikf(i128)
; AIX32-NEXT: declare float @__floattisf(i128)
; AIX32-NEXT: declare ppc_fp128 @__floattitf(i128)
; AIX32-NEXT: declare bfloat @__floatundibf(i64)
; AIX32-NEXT: declare double @__floatundidf(i64)
; AIX32-NEXT: declare half @__floatundihf(i64)
; AIX32-NEXT: declare fp128 @__floatundikf(i64)
; AIX32-NEXT: declare float @__floatundisf(i64)
; AIX32-NEXT: declare ppc_fp128 @__floatunditf(i64)
; AIX32-NEXT: declare double @__floatunsidf(i32)
; AIX32-NEXT: declare half @__floatunsihf(i32)
; AIX32-NEXT: declare fp128 @__floatunsikf(i32)
; AIX32-NEXT: declare float @__floatunsisf(i32)
; AIX32-NEXT: declare double @__floatuntidf(i128)
; AIX32-NEXT: declare half @__floatuntihf(i128)
; AIX32-NEXT: declare fp128 @__floatuntikf(i128)
; AIX32-NEXT: declare float @__floatuntisf(i128)
; AIX32-NEXT: declare ppc_fp128 @__floatuntitf(i128)
; AIX32-NEXT: declare ppc_fp128 @__gcc_dtoq(double)
; AIX32-NEXT: declare ppc_fp128 @__gcc_itoq(i32)
; AIX32-NEXT: declare ppc_fp128 @__gcc_qadd(ppc_fp128, ppc_fp128)
; AIX32-NEXT: declare ppc_fp128 @__gcc_qdiv(ppc_fp128, ppc_fp128)
; AIX32-NEXT: declare i32 @__gcc_qeq(ppc_fp128, ppc_fp128)
; AIX32-NEXT: declare i32 @__gcc_qge(ppc_fp128, ppc_fp128)
; AIX32-NEXT: declare i32 @__gcc_qgt(ppc_fp128, ppc_fp128)
; AIX32-NEXT: declare i32 @__gcc_qle(ppc_fp128, ppc_fp128)
; AIX32-NEXT: declare i32 @__gcc_qlt(ppc_fp128, ppc_fp128)
; AIX32-NEXT: declare ppc_fp128 @__gcc_qmul(ppc_fp128, ppc_fp128)
; AIX32-NEXT: declare i32 @__gcc_qne(ppc_fp128, ppc_fp128)
; AIX32-NEXT: declare ppc_fp128 @__gcc_qsub(ppc_fp128, ppc_fp128)
; AIX32-NEXT: declare double @__gcc_qtod(ppc_fp128)
; AIX32-NEXT: declare float @__gcc_qtos(ppc_fp128)
; AIX32-NEXT: declare i32 @__gcc_qtou(ppc_fp128)
; AIX32-NEXT: declare i32 @__gcc_qunord(ppc_fp128, ppc_fp128)
; AIX32-NEXT: declare ppc_fp128 @__gcc_stoq(float)
; AIX32-NEXT: declare ppc_fp128 @__gcc_utoq(i32)
; AIX32-NEXT: declare i32 @__gedf2(double, double)
; AIX32-NEXT: declare i32 @__gekf2(fp128, fp128)
; AIX32-NEXT: declare i32 @__gesf2(float, float)
; AIX32-NEXT: declare i32 @__gtdf2(double, double)
; AIX32-NEXT: declare i32 @__gtkf2(fp128, fp128)
; AIX32-NEXT: declare i32 @__gtsf2(float, float)
; AIX32-NEXT: declare i32 @__ledf2(double, double)
; AIX32-NEXT: declare i32 @__lekf2(fp128, fp128)
; AIX32-NEXT: declare i32 @__lesf2(float, float)
; AIX32-NEXT: declare void @__llvm_deoptimize(...)
; AIX32-NEXT: declare void @__llvm_memcpy_element_unordered_atomic_1(ptr, ptr, i32)
; AIX32-NEXT: declare void @__llvm_memcpy_element_unordered_atomic_16(ptr, ptr, i32)
; AIX32-NEXT: declare void @__llvm_memcpy_element_unordered_atomic_2(ptr, ptr, i32)
; AIX32-NEXT: declare void @__llvm_memcpy_element_unordered_atomic_4(ptr, ptr, i32)
; AIX32-NEXT: declare void @__llvm_memcpy_element_unordered_atomic_8(ptr, ptr, i32)
; AIX32-NEXT: declare void @__llvm_memmove_element_unordered_atomic_1(ptr, ptr, i32)
; AIX32-NEXT: declare void @__llvm_memmove_element_unordered_atomic_16(ptr, ptr, i32)
; AIX32-NEXT: declare void @__llvm_memmove_element_unordered_atomic_2(ptr, ptr, i32)
; AIX32-NEXT: declare void @__llvm_memmove_element_unordered_atomic_4(ptr, ptr, i32)
; AIX32-NEXT: declare void @__llvm_memmove_element_unordered_atomic_8(ptr, ptr, i32)
; AIX32-NEXT: declare void @__llvm_memset_element_unordered_atomic_1(ptr, i32, i32)
; AIX32-NEXT: declare void @__llvm_memset_element_unordered_atomic_16(ptr, i32, i32)
; AIX32-NEXT: declare void @__llvm_memset_element_unordered_atomic_2(ptr, i32, i32)
; AIX32-NEXT: declare void @__llvm_memset_element_unordered_atomic_4(ptr, i32, i32)
; AIX32-NEXT: declare void @__llvm_memset_element_unordered_atomic_8(ptr, i32, i32)
; AIX32-NEXT: declare double @__log10_finite(double)
; AIX32-NEXT: declare float @__log10f_finite(float)
; AIX32-NEXT: declare double @__log10l_finite(double)
; AIX32-NEXT: declare double @__log2_finite(double)
; AIX32-NEXT: declare float @__log2f_finite(float)
; AIX32-NEXT: declare double @__log2l_finite(double)
; AIX32-NEXT: declare double @__log_finite(double)
; AIX32-NEXT: declare float @__logf_finite(float)
; AIX32-NEXT: declare double @__logl_finite(double)
; AIX32-NEXT: declare i64 @__lshrdi3(i64, i32)
; AIX32-NEXT: declare signext i16 @__lshrhi3(i16 signext, i32)
; AIX32-NEXT: declare i32 @__lshrsi3(i32, i32)
; AIX32-NEXT: declare i32 @__ltdf2(double, double)
; AIX32-NEXT: declare i32 @__ltkf2(fp128, fp128)
; AIX32-NEXT: declare i32 @__ltsf2(float, float)
; AIX32-NEXT: declare ptr @__memcpy_chk(ptr, ptr, i32, i32)
; AIX32-NEXT: declare ptr @__memmove_chk(ptr, ptr, i32, i32)
; AIX32-NEXT: declare ptr @__memset_chk(ptr, i32, i32, i32)
; AIX32-NEXT: declare i64 @__moddi3(i64, i64)
; AIX32-NEXT: declare signext i16 @__modhi3(i16 signext, i16 signext)
; AIX32-NEXT: declare signext i8 @__modqi3(i8 signext, i8 signext)
; AIX32-NEXT: declare i32 @__modsi3(i32, i32)
; AIX32-NEXT: declare i128 @__modti3(i128, i128)
; AIX32-NEXT: declare double @__muldf3(double, double)
; AIX32-NEXT: declare i64 @__muldi3(i64, i64)
; AIX32-NEXT: declare signext i16 @__mulhi3(i16 signext, i16 signext)
; AIX32-NEXT: declare fp128 @__mulkf3(fp128, fp128)
; AIX32-NEXT: declare i32 @__mulosi4(i32, i32, ptr)
; AIX32-NEXT: declare signext i8 @__mulqi3(i8 signext, i8 signext)
; AIX32-NEXT: declare float @__mulsf3(float, float)
; AIX32-NEXT: declare i32 @__mulsi3(i32, i32)
; AIX32-NEXT: declare i32 @__nedf2(double, double)
; AIX32-NEXT: declare i64 @__negdi2(i64)
; AIX32-NEXT: declare i32 @__negsi2(i32)
; AIX32-NEXT: declare i32 @__nekf2(fp128, fp128)
; AIX32-NEXT: declare i32 @__nesf2(float, float)
; AIX32-NEXT: declare i32 @__popcountdi2(i64)
; AIX32-NEXT: declare i32 @__popcountsi2(i32)
; AIX32-NEXT: declare i32 @__popcountti2(i128)
; AIX32-NEXT: declare double @__pow_finite(double, double)
; AIX32-NEXT: declare float @__powf_finite(float, float)
; AIX32-NEXT: declare double @__powidf2(double, i32)
; AIX32-NEXT: declare fp128 @__powikf2(fp128, i32)
; AIX32-NEXT: declare float @__powisf2(float, i32)
; AIX32-NEXT: declare ppc_fp128 @__powitf2(ppc_fp128, i32)
; AIX32-NEXT: declare double @__powl_finite(double, double)
; AIX32-NEXT: declare void @__stack_chk_fail()
; AIX32-NEXT: declare double @__subdf3(double, double)
; AIX32-NEXT: declare fp128 @__subkf3(fp128, fp128)
; AIX32-NEXT: declare float @__subsf3(float, float)
; AIX32-NEXT: declare zeroext i8 @__sync_fetch_and_add_1(ptr, i8 zeroext)
; AIX32-NEXT: declare i128 @__sync_fetch_and_add_16(ptr, i128)
; AIX32-NEXT: declare zeroext i16 @__sync_fetch_and_add_2(ptr, i16 zeroext)
; AIX32-NEXT: declare i32 @__sync_fetch_and_add_4(ptr, i32)
; AIX32-NEXT: declare i64 @__sync_fetch_and_add_8(ptr, i64)
; AIX32-NEXT: declare zeroext i8 @__sync_fetch_and_and_1(ptr, i8 zeroext)
; AIX32-NEXT: declare i128 @__sync_fetch_and_and_16(ptr, i128)
; AIX32-NEXT: declare zeroext i16 @__sync_fetch_and_and_2(ptr, i16 zeroext)
; AIX32-NEXT: declare i32 @__sync_fetch_and_and_4(ptr, i32)
; AIX32-NEXT: declare i64 @__sync_fetch_and_and_8(ptr, i64)
; AIX32-NEXT: declare zeroext i8 @__sync_fetch_and_max_1(ptr, i8 zeroext)
; AIX32-NEXT: declare i128 @__sync_fetch_and_max_16(ptr, i128)
; AIX32-NEXT: declare zeroext i16 @__sync_fetch_and_max_2(ptr, i16 zeroext)
; AIX32-NEXT: declare i32 @__sync_fetch_and_max_4(ptr, i32)
; AIX32-NEXT: declare i64 @__sync_fetch_and_max_8(ptr, i64)
; AIX32-NEXT: declare zeroext i8 @__sync_fetch_and_min_1(ptr, i8 zeroext)
; AIX32-NEXT: declare i128 @__sync_fetch_and_min_16(ptr, i128)
; AIX32-NEXT: declare zeroext i16 @__sync_fetch_and_min_2(ptr, i16 zeroext)
; AIX32-NEXT: declare i32 @__sync_fetch_and_min_4(ptr, i32)
; AIX32-NEXT: declare i64 @__sync_fetch_and_min_8(ptr, i64)
; AIX32-NEXT: declare zeroext i8 @__sync_fetch_and_nand_1(ptr, i8 zeroext)
; AIX32-NEXT: declare i128 @__sync_fetch_and_nand_16(ptr, i128)
; AIX32-NEXT: declare zeroext i16 @__sync_fetch_and_nand_2(ptr, i16 zeroext)
; AIX32-NEXT: declare i32 @__sync_fetch_and_nand_4(ptr, i32)
; AIX32-NEXT: declare i64 @__sync_fetch_and_nand_8(ptr, i64)
; AIX32-NEXT: declare zeroext i8 @__sync_fetch_and_or_1(ptr, i8 zeroext)
; AIX32-NEXT: declare i128 @__sync_fetch_and_or_16(ptr, i128)
; AIX32-NEXT: declare zeroext i16 @__sync_fetch_and_or_2(ptr, i16 zeroext)
; AIX32-NEXT: declare i32 @__sync_fetch_and_or_4(ptr, i32)
; AIX32-NEXT: declare i64 @__sync_fetch_and_or_8(ptr, i64)
; AIX32-NEXT: declare zeroext i8 @__sync_fetch_and_sub_1(ptr, i8 zeroext)
; AIX32-NEXT: declare i128 @__sync_fetch_and_sub_16(ptr, i128)
; AIX32-NEXT: declare zeroext i16 @__sync_fetch_and_sub_2(ptr, i16 zeroext)
; AIX32-NEXT: declare i32 @__sync_fetch_and_sub_4(ptr, i32)
; AIX32-NEXT: declare i64 @__sync_fetch_and_sub_8(ptr, i64)
; AIX32-NEXT: declare zeroext i8 @__sync_fetch_and_umax_1(ptr, i8 zeroext)
; AIX32-NEXT: declare i128 @__sync_fetch_and_umax_16(ptr, i128)
; AIX32-NEXT: declare zeroext i16 @__sync_fetch_and_umax_2(ptr, i16 zeroext)
; AIX32-NEXT: declare i32 @__sync_fetch_and_umax_4(ptr, i32)
; AIX32-NEXT: declare i64 @__sync_fetch_and_umax_8(ptr, i64)
; AIX32-NEXT: declare zeroext i8 @__sync_fetch_and_umin_1(ptr, i8 zeroext)
; AIX32-NEXT: declare i128 @__sync_fetch_and_umin_16(ptr, i128)
; AIX32-NEXT: declare zeroext i16 @__sync_fetch_and_umin_2(ptr, i16 zeroext)
; AIX32-NEXT: declare i32 @__sync_fetch_and_umin_4(ptr, i32)
; AIX32-NEXT: declare i64 @__sync_fetch_and_umin_8(ptr, i64)
; AIX32-NEXT: declare zeroext i8 @__sync_fetch_and_xor_1(ptr, i8 zeroext)
; AIX32-NEXT: declare i128 @__sync_fetch_and_xor_16(ptr, i128)
; AIX32-NEXT: declare zeroext i16 @__sync_fetch_and_xor_2(ptr, i16 zeroext)
; AIX32-NEXT: declare i32 @__sync_fetch_and_xor_4(ptr, i32)
; AIX32-NEXT: declare i64 @__sync_fetch_and_xor_8(ptr, i64)
; AIX32-NEXT: declare zeroext i8 @__sync_lock_test_and_set_1(ptr, i8 zeroext)
; AIX32-NEXT: declare i128 @__sync_lock_test_and_set_16(ptr, i128)
; AIX32-NEXT: declare zeroext i16 @__sync_lock_test_and_set_2(ptr, i16 zeroext)
; AIX32-NEXT: declare i32 @__sync_lock_test_and_set_4(ptr, i32)
; AIX32-NEXT: declare i64 @__sync_lock_test_and_set_8(ptr, i64)
; AIX32-NEXT: declare zeroext i8 @__sync_val_compare_and_swap_1(ptr, i8 zeroext, i8 zeroext)
; AIX32-NEXT: declare i128 @__sync_val_compare_and_swap_16(ptr, i128, i128)
; AIX32-NEXT: declare zeroext i16 @__sync_val_compare_and_swap_2(ptr, i16 zeroext, i16 zeroext)
; AIX32-NEXT: declare i32 @__sync_val_compare_and_swap_4(ptr, i32, i32)
; AIX32-NEXT: declare i64 @__sync_val_compare_and_swap_8(ptr, i64, i64)
; AIX32-NEXT: declare bfloat @__truncdfbf2(double)
; AIX32-NEXT: declare half @__truncdfhf2(double)
; AIX32-NEXT: declare float @__truncdfsf2(double)
; AIX32-NEXT: declare double @__trunckfdf2(fp128)
; AIX32-NEXT: declare half @__trunckfhf2(fp128)
; AIX32-NEXT: declare float @__trunckfsf2(fp128)
; AIX32-NEXT: declare bfloat @__truncsfbf2(float)
; AIX32-NEXT: declare half @__truncsfhf2(float)
; AIX32-NEXT: declare half @__trunctfhf2(ppc_fp128)
; AIX32-NEXT: declare fp128 @__trunctfkf2(ppc_fp128)
; AIX32-NEXT: declare i64 @__udivdi3(i64, i64)
; AIX32-NEXT: declare zeroext i16 @__udivhi3(i16 zeroext, i16 zeroext)
; AIX32-NEXT: declare zeroext i8 @__udivqi3(i8 zeroext, i8 zeroext)
; AIX32-NEXT: declare i32 @__udivsi3(i32, i32)
; AIX32-NEXT: declare i128 @__udivti3(i128, i128)
; AIX32-NEXT: declare i64 @__umoddi3(i64, i64)
; AIX32-NEXT: declare zeroext i16 @__umodhi3(i16 zeroext, i16 zeroext)
; AIX32-NEXT: declare zeroext i8 @__umodqi3(i8 zeroext, i8 zeroext)
; AIX32-NEXT: declare i32 @__umodsi3(i32, i32)
; AIX32-NEXT: declare i128 @__umodti3(i128, i128)
; AIX32-NEXT: declare i32 @__unorddf2(double, double)
; AIX32-NEXT: declare i32 @__unordkf2(fp128, fp128)
; AIX32-NEXT: declare i32 @__unordsf2(float, float)
; AIX32-NEXT: declare double @acos(double)
; AIX32-NEXT: declare float @acosf(float)
; AIX32-NEXT: declare fp128 @acosf128(fp128)
; AIX32-NEXT: declare double @acosl(double)
; AIX32-NEXT: declare double @asin(double)
; AIX32-NEXT: declare float @asinf(float)
; AIX32-NEXT: declare fp128 @asinf128(fp128)
; AIX32-NEXT: declare double @asinl(double)
; AIX32-NEXT: declare double @atan(double)
; AIX32-NEXT: declare double @atan2(double, double)
; AIX32-NEXT: declare float @atan2f(float, float)
; AIX32-NEXT: declare fp128 @atan2f128(fp128, fp128)
; AIX32-NEXT: declare double @atan2l(double, double)
; AIX32-NEXT: declare float @atanf(float)
; AIX32-NEXT: declare fp128 @atanf128(fp128)
; AIX32-NEXT: declare double @atanl(double)
; AIX32-NEXT: declare void @cabs(...)
; AIX32-NEXT: declare void @cabsf(...)
; AIX32-NEXT: declare void @cabsl(...)
; AIX32-NEXT: declare noalias noundef ptr @calloc(i32 noundef, i32 noundef) [[CALLOC_ATTRS:#[0-9]+]]
; AIX32-NEXT: declare double @cbrt(double)
; AIX32-NEXT: declare float @cbrtf(float)
; AIX32-NEXT: declare fp128 @cbrtf128(fp128)
; AIX32-NEXT: declare double @cbrtl(double)
; AIX32-NEXT: declare double @ceil(double)
; AIX32-NEXT: declare float @ceilf(float)
; AIX32-NEXT: declare fp128 @ceilf128(fp128)
; AIX32-NEXT: declare double @ceill(double)
; AIX32-NEXT: declare double @copysign(double, double)
; AIX32-NEXT: declare float @copysignf(float, float)
; AIX32-NEXT: declare fp128 @copysignf128(fp128, fp128)
; AIX32-NEXT: declare double @copysignl(double, double)
; AIX32-NEXT: declare double @cos(double)
; AIX32-NEXT: declare float @cosf(float)
; AIX32-NEXT: declare fp128 @cosf128(fp128)
; AIX32-NEXT: declare double @cosh(double)
; AIX32-NEXT: declare float @coshf(float)
; AIX32-NEXT: declare fp128 @coshf128(fp128)
; AIX32-NEXT: declare double @coshl(double)
; AIX32-NEXT: declare double @cosl(double)
; AIX32-NEXT: declare double @exp(double)
; AIX32-NEXT: declare double @exp10(double)
; AIX32-NEXT: declare float @exp10f(float)
; AIX32-NEXT: declare fp128 @exp10f128(fp128)
; AIX32-NEXT: declare double @exp10l(double)
; AIX32-NEXT: declare double @exp2(double)
; AIX32-NEXT: declare float @exp2f(float)
; AIX32-NEXT: declare fp128 @exp2f128(fp128)
; AIX32-NEXT: declare double @exp2l(double)
; AIX32-NEXT: declare float @expf(float)
; AIX32-NEXT: declare fp128 @expf128(fp128)
; AIX32-NEXT: declare double @expl(double)
; AIX32-NEXT: declare double @fdim(double, double)
; AIX32-NEXT: declare float @fdimf(float, float)
; AIX32-NEXT: declare double @fdiml(double, double)
; AIX32-NEXT: declare i32 @fegetenv(ptr)
; AIX32-NEXT: declare i32 @fegetmode(ptr)
; AIX32-NEXT: declare i32 @fesetenv(ptr)
; AIX32-NEXT: declare i32 @fesetmode(ptr)
; AIX32-NEXT: declare double @floor(double)
; AIX32-NEXT: declare float @floorf(float)
; AIX32-NEXT: declare fp128 @floorf128(fp128)
; AIX32-NEXT: declare double @floorl(double)
; AIX32-NEXT: declare double @fma(double, double, double)
; AIX32-NEXT: declare float @fmaf(float, float, float)
; AIX32-NEXT: declare fp128 @fmaf128(fp128, fp128, fp128)
; AIX32-NEXT: declare double @fmal(double, double, double)
; AIX32-NEXT: declare double @fmax(double, double)
; AIX32-NEXT: declare float @fmaxf(float, float)
; AIX32-NEXT: declare fp128 @fmaxf128(fp128, fp128)
; AIX32-NEXT: declare double @fmaximum(double, double)
; AIX32-NEXT: declare double @fmaximum_num(double, double)
; AIX32-NEXT: declare float @fmaximum_numf(float, float)
; AIX32-NEXT: declare fp128 @fmaximum_numf128(fp128, fp128)
; AIX32-NEXT: declare double @fmaximum_numl(double, double)
; AIX32-NEXT: declare float @fmaximumf(float, float)
; AIX32-NEXT: declare fp128 @fmaximumf128(fp128, fp128)
; AIX32-NEXT: declare double @fmaximuml(double, double)
; AIX32-NEXT: declare double @fmaxl(double, double)
; AIX32-NEXT: declare double @fmin(double, double)
; AIX32-NEXT: declare float @fminf(float, float)
; AIX32-NEXT: declare fp128 @fminf128(fp128, fp128)
; AIX32-NEXT: declare double @fminimum(double, double)
; AIX32-NEXT: declare double @fminimum_num(double, double)
; AIX32-NEXT: declare float @fminimum_numf(float, float)
; AIX32-NEXT: declare fp128 @fminimum_numf128(fp128, fp128)
; AIX32-NEXT: declare double @fminimum_numl(double, double)
; AIX32-NEXT: declare float @fminimumf(float, float)
; AIX32-NEXT: declare fp128 @fminimumf128(fp128, fp128)
; AIX32-NEXT: declare double @fminimuml(double, double)
; AIX32-NEXT: declare double @fminl(double, double)
; AIX32-NEXT: declare double @fmod(double, double)
; AIX32-NEXT: declare float @fmodf(float, float)
; AIX32-NEXT: declare fp128 @fmodf128(fp128, fp128)
; AIX32-NEXT: declare double @fmodl(double, double)
; AIX32-NEXT: declare void @free(ptr allocptr noundef captures(none)) [[FREE_ATTRS:#[0-9]+]]
; AIX32-NEXT: declare double @frexp(double, ptr)
; AIX32-NEXT: declare float @frexpf(float, ptr)
; AIX32-NEXT: declare fp128 @frexpf128(fp128, ptr)
; AIX32-NEXT: declare double @frexpl(double, ptr)
; AIX32-NEXT: declare double @ldexp(double, i32)
; AIX32-NEXT: declare float @ldexpf(float, i32)
; AIX32-NEXT: declare fp128 @ldexpf128(fp128, i32)
; AIX32-NEXT: declare double @ldexpl(double, i32)
; AIX32-NEXT: declare i64 @llrint(double)
; AIX32-NEXT: declare i64 @llrintf(float)
; AIX32-NEXT: declare i64 @llrintf128(fp128)
; AIX32-NEXT: declare i64 @llrintl(double)
; AIX32-NEXT: declare i64 @llround(double)
; AIX32-NEXT: declare i64 @llroundf(float)
; AIX32-NEXT: declare i64 @llroundf128(fp128)
; AIX32-NEXT: declare i64 @llroundl(double)
; AIX32-NEXT: declare double @log(double)
; AIX32-NEXT: declare double @log10(double)
; AIX32-NEXT: declare float @log10f(float)
; AIX32-NEXT: declare fp128 @log10f128(fp128)
; AIX32-NEXT: declare double @log10l(double)
; AIX32-NEXT: declare double @log2(double)
; AIX32-NEXT: declare float @log2f(float)
; AIX32-NEXT: declare fp128 @log2f128(fp128)
; AIX32-NEXT: declare double @log2l(double)
; AIX32-NEXT: declare float @logf(float)
; AIX32-NEXT: declare fp128 @logf128(fp128)
; AIX32-NEXT: declare double @logl(double)
; AIX32-NEXT: declare i32 @lrint(double)
; AIX32-NEXT: declare i32 @lrintf(float)
; AIX32-NEXT: declare i32 @lrintf128(fp128)
; AIX32-NEXT: declare i32 @lrintl(double)
; AIX32-NEXT: declare i32 @lround(double)
; AIX32-NEXT: declare i32 @lroundf(float)
; AIX32-NEXT: declare i32 @lroundf128(fp128)
; AIX32-NEXT: declare i32 @lroundl(double)
; AIX32-NEXT: declare noalias noundef ptr @malloc(i32 noundef) [[MALLOC_ATTRS:#[0-9]+]]
; AIX32-NEXT: declare ptr @memmove(ptr, ptr, i32)
; AIX32-NEXT: declare ptr @memset(ptr, i32, i32)
; AIX32-NEXT: declare double @modf(double, ptr)
; AIX32-NEXT: declare float @modff(float, ptr)
; AIX32-NEXT: declare fp128 @modff128(fp128, ptr)
; AIX32-NEXT: declare double @modfl(double, ptr)
; AIX32-NEXT: declare double @nan(ptr)
; AIX32-NEXT: declare float @nanf(ptr)
; AIX32-NEXT: declare double @nanl(ptr)
; AIX32-NEXT: declare double @nearbyint(double)
; AIX32-NEXT: declare float @nearbyintf(float)
; AIX32-NEXT: declare fp128 @nearbyintf128(fp128)
; AIX32-NEXT: declare double @nearbyintl(double)
; AIX32-NEXT: declare double @nexttoward(double, double)
; AIX32-NEXT: declare float @nexttowardf(float, double)
; AIX32-NEXT: declare double @nexttowardl(double, double)
; AIX32-NEXT: declare double @pow(double, double)
; AIX32-NEXT: declare float @powf(float, float)
; AIX32-NEXT: declare fp128 @powf128(fp128, fp128)
; AIX32-NEXT: declare double @powl(double, double)
; AIX32-NEXT: declare double @remainder(double, double)
; AIX32-NEXT: declare float @remainderf(float, float)
; AIX32-NEXT: declare double @remainderl(double, double)
; AIX32-NEXT: declare double @remquo(double, double, ptr)
; AIX32-NEXT: declare float @remquof(float, float, ptr)
; AIX32-NEXT: declare double @remquol(double, double, ptr)
; AIX32-NEXT: declare double @rint(double)
; AIX32-NEXT: declare float @rintf(float)
; AIX32-NEXT: declare fp128 @rintf128(fp128)
; AIX32-NEXT: declare double @rintl(double)
; AIX32-NEXT: declare double @round(double)
; AIX32-NEXT: declare double @roundeven(double)
; AIX32-NEXT: declare float @roundevenf(float)
; AIX32-NEXT: declare fp128 @roundevenf128(fp128)
; AIX32-NEXT: declare double @roundevenl(double)
; AIX32-NEXT: declare float @roundf(float)
; AIX32-NEXT: declare fp128 @roundf128(fp128)
; AIX32-NEXT: declare double @roundl(double)
; AIX32-NEXT: declare double @scalbln(double, i32)
; AIX32-NEXT: declare float @scalblnf(float, i32)
; AIX32-NEXT: declare double @scalblnl(double, i32)
; AIX32-NEXT: declare double @scalbn(double, i32)
; AIX32-NEXT: declare float @scalbnf(float, i32)
; AIX32-NEXT: declare double @scalbnl(double, i32)
; AIX32-NEXT: declare double @sin(double)
; AIX32-NEXT: declare void @sincosf128(fp128, ptr, ptr)
; AIX32-NEXT: declare float @sinf(float)
; AIX32-NEXT: declare fp128 @sinf128(fp128)
; AIX32-NEXT: declare double @sinh(double)
; AIX32-NEXT: declare float @sinhf(float)
; AIX32-NEXT: declare fp128 @sinhf128(fp128)
; AIX32-NEXT: declare double @sinhl(double)
; AIX32-NEXT: declare double @sinl(double)
; AIX32-NEXT: declare nofpclass(ninf nsub nnorm) double @sqrt(double) [[SQRT_ATTRS:#[0-9]+]]
; AIX32-NEXT: declare nofpclass(ninf nsub nnorm) float @sqrtf(float) [[SQRT_ATTRS:#[0-9]+]]
; AIX32-NEXT: declare fp128 @sqrtf128(fp128)
; AIX32-NEXT: declare double @sqrtl(double)
; AIX32-NEXT: declare double @tan(double)
; AIX32-NEXT: declare float @tanf(float)
; AIX32-NEXT: declare fp128 @tanf128(fp128)
; AIX32-NEXT: declare double @tanh(double)
; AIX32-NEXT: declare float @tanhf(float)
; AIX32-NEXT: declare fp128 @tanhf128(fp128)
; AIX32-NEXT: declare double @tanhl(double)
; AIX32-NEXT: declare double @tanl(double)
; AIX32-NEXT: declare double @tgamma(double)
; AIX32-NEXT: declare float @tgammaf(float)
; AIX32-NEXT: declare double @tgammal(double)
; AIX32-NEXT: declare double @trunc(double)
; AIX32-NEXT: declare float @truncf(float)
; AIX32-NEXT: declare fp128 @truncf128(fp128)
; AIX32-NEXT: declare double @truncl(double)
; AIX32-NEXT: declare ptr @vec_calloc(i32, i32)
; AIX32-NEXT: declare void @vec_free(ptr)
; AIX32-NEXT: declare ptr @vec_malloc(i32)
; AIX32-NEXT: declare ptr @vec_realloc(ptr, i32)
; AIX32-NEXT: attributes [[CALLOC_ATTRS]] = { nofree nounwind willreturn allockind("alloc") allocsize(0,1) "alloc-family"="malloc" }
; AIX32-NEXT: attributes [[FREE_ATTRS]] = { nounwind willreturn allockind("free") "alloc-family"="malloc" }
; AIX32-NEXT: attributes [[MALLOC_ATTRS]] = { nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) "alloc-family"="malloc" }
; AIX32-NEXT: attributes [[SQRT_ATTRS]] = { nocallback nofree nosync nounwind willreturn memory(errnomem: write) }
; AIX64: @__ssp_canary_word = external global ptr
; AIX64-NEXT: declare signext i32 @_Unwind_RaiseException(ptr)
; AIX64-NEXT: declare void @_Unwind_Resume(ptr)
; AIX64-NEXT: declare void @___bzero64(ptr, i64)
; AIX64-NEXT: declare ptr @___memccpy64(ptr, ptr, i32 signext, i64)
; AIX64-NEXT: declare signext i32 @___memcmp64(ptr, ptr, i64)
; AIX64-NEXT: declare ptr @___memmove64(ptr, ptr, i64)
; AIX64-NEXT: declare ptr @___memset64(ptr, i32 signext, i64)
; AIX64-NEXT: declare signext i32 @___strcmp64(ptr, ptr)
; AIX64-NEXT: declare ptr @___strcpy64(ptr, ptr)
; AIX64-NEXT: declare i64 @___strlen64(ptr)
; AIX64-NEXT: declare ptr @___strstr64(ptr, ptr)
; AIX64-NEXT: declare double @__adddf3(double, double)
; AIX64-NEXT: declare fp128 @__addkf3(fp128, fp128)
; AIX64-NEXT: declare float @__addsf3(float, float)
; AIX64-NEXT: declare i64 @__ashldi3(i64, i32 signext)
; AIX64-NEXT: declare signext i16 @__ashlhi3(i16 signext, i32 signext)
; AIX64-NEXT: declare signext i32 @__ashlsi3(i32 signext, i32 signext)
; AIX64-NEXT: declare i128 @__ashlti3(i128, i32 signext)
; AIX64-NEXT: declare i64 @__ashrdi3(i64, i32 signext)
; AIX64-NEXT: declare signext i16 @__ashrhi3(i16 signext, i32 signext)
; AIX64-NEXT: declare signext i32 @__ashrsi3(i32 signext, i32 signext)
; AIX64-NEXT: declare i128 @__ashrti3(i128, i32 signext)
; AIX64-NEXT: declare zeroext i1 @__atomic_compare_exchange(i64, ptr, ptr, ptr, i32 signext, i32 signext)
; AIX64-NEXT: declare zeroext i1 @__atomic_compare_exchange_1(ptr, ptr, i8 zeroext, i32 signext, i32 signext)
; AIX64-NEXT: declare zeroext i1 @__atomic_compare_exchange_16(ptr, ptr, i128, i32 signext, i32 signext)
; AIX64-NEXT: declare zeroext i1 @__atomic_compare_exchange_2(ptr, ptr, i16 zeroext, i32 signext, i32 signext)
; AIX64-NEXT: declare zeroext i1 @__atomic_compare_exchange_4(ptr, ptr, i32 zeroext, i32 signext, i32 signext)
; AIX64-NEXT: declare zeroext i1 @__atomic_compare_exchange_8(ptr, ptr, i64, i32 signext, i32 signext)
; AIX64-NEXT: declare void @__atomic_exchange(i64, ptr, ptr, ptr, i32 signext)
; AIX64-NEXT: declare zeroext i8 @__atomic_exchange_1(ptr, i8 zeroext, i32 signext)
; AIX64-NEXT: declare i128 @__atomic_exchange_16(ptr, i128, i32 signext)
; AIX64-NEXT: declare zeroext i16 @__atomic_exchange_2(ptr, i16 zeroext, i32 signext)
; AIX64-NEXT: declare zeroext i32 @__atomic_exchange_4(ptr, i32 zeroext, i32 signext)
; AIX64-NEXT: declare i64 @__atomic_exchange_8(ptr, i64, i32 signext)
; AIX64-NEXT: declare zeroext i8 @__atomic_fetch_add_1(ptr, i8 zeroext, i32 signext)
; AIX64-NEXT: declare i128 @__atomic_fetch_add_16(ptr, i128, i32 signext)
; AIX64-NEXT: declare zeroext i16 @__atomic_fetch_add_2(ptr, i16 zeroext, i32 signext)
; AIX64-NEXT: declare zeroext i32 @__atomic_fetch_add_4(ptr, i32 zeroext, i32 signext)
; AIX64-NEXT: declare i64 @__atomic_fetch_add_8(ptr, i64, i32 signext)
; AIX64-NEXT: declare zeroext i8 @__atomic_fetch_and_1(ptr, i8 zeroext, i32 signext)
; AIX64-NEXT: declare i128 @__atomic_fetch_and_16(ptr, i128, i32 signext)
; AIX64-NEXT: declare zeroext i16 @__atomic_fetch_and_2(ptr, i16 zeroext, i32 signext)
; AIX64-NEXT: declare zeroext i32 @__atomic_fetch_and_4(ptr, i32 zeroext, i32 signext)
; AIX64-NEXT: declare i64 @__atomic_fetch_and_8(ptr, i64, i32 signext)
; AIX64-NEXT: declare zeroext i8 @__atomic_fetch_nand_1(ptr, i8 zeroext, i32 signext)
; AIX64-NEXT: declare i128 @__atomic_fetch_nand_16(ptr, i128, i32 signext)
; AIX64-NEXT: declare zeroext i16 @__atomic_fetch_nand_2(ptr, i16 zeroext, i32 signext)
; AIX64-NEXT: declare zeroext i32 @__atomic_fetch_nand_4(ptr, i32 zeroext, i32 signext)
; AIX64-NEXT: declare i64 @__atomic_fetch_nand_8(ptr, i64, i32 signext)
; AIX64-NEXT: declare zeroext i8 @__atomic_fetch_or_1(ptr, i8 zeroext, i32 signext)
; AIX64-NEXT: declare i128 @__atomic_fetch_or_16(ptr, i128, i32 signext)
; AIX64-NEXT: declare zeroext i16 @__atomic_fetch_or_2(ptr, i16 zeroext, i32 signext)
; AIX64-NEXT: declare zeroext i32 @__atomic_fetch_or_4(ptr, i32 zeroext, i32 signext)
; AIX64-NEXT: declare i64 @__atomic_fetch_or_8(ptr, i64, i32 signext)
; AIX64-NEXT: declare zeroext i8 @__atomic_fetch_sub_1(ptr, i8 zeroext, i32 signext)
; AIX64-NEXT: declare i128 @__atomic_fetch_sub_16(ptr, i128, i32 signext)
; AIX64-NEXT: declare zeroext i16 @__atomic_fetch_sub_2(ptr, i16 zeroext, i32 signext)
; AIX64-NEXT: declare zeroext i32 @__atomic_fetch_sub_4(ptr, i32 zeroext, i32 signext)
; AIX64-NEXT: declare i64 @__atomic_fetch_sub_8(ptr, i64, i32 signext)
; AIX64-NEXT: declare zeroext i8 @__atomic_fetch_xor_1(ptr, i8 zeroext, i32 signext)
; AIX64-NEXT: declare i128 @__atomic_fetch_xor_16(ptr, i128, i32 signext)
; AIX64-NEXT: declare zeroext i16 @__atomic_fetch_xor_2(ptr, i16 zeroext, i32 signext)
; AIX64-NEXT: declare zeroext i32 @__atomic_fetch_xor_4(ptr, i32 zeroext, i32 signext)
; AIX64-NEXT: declare i64 @__atomic_fetch_xor_8(ptr, i64, i32 signext)
; AIX64-NEXT: declare void @__atomic_load(i64, ptr, ptr, i32 signext)
; AIX64-NEXT: declare zeroext i8 @__atomic_load_1(ptr, i32 signext)
; AIX64-NEXT: declare i128 @__atomic_load_16(ptr, i32 signext)
; AIX64-NEXT: declare zeroext i16 @__atomic_load_2(ptr, i32 signext)
; AIX64-NEXT: declare zeroext i32 @__atomic_load_4(ptr, i32 signext)
; AIX64-NEXT: declare i64 @__atomic_load_8(ptr, i32 signext)
; AIX64-NEXT: declare void @__atomic_store(i64, ptr, ptr, i32 signext)
; AIX64-NEXT: declare void @__atomic_store_1(ptr, i8 zeroext, i32 signext)
; AIX64-NEXT: declare void @__atomic_store_16(ptr, i128, i32 signext)
; AIX64-NEXT: declare void @__atomic_store_2(ptr, i16 zeroext, i32 signext)
; AIX64-NEXT: declare void @__atomic_store_4(ptr, i32 zeroext, i32 signext)
; AIX64-NEXT: declare void @__atomic_store_8(ptr, i64, i32 signext)
; AIX64-NEXT: declare void @__clear_cache(ptr, ptr)
; AIX64-NEXT: declare signext i32 @__clzdi2(i64)
; AIX64-NEXT: declare signext i32 @__clzsi2(i32 zeroext)
; AIX64-NEXT: declare signext i32 @__clzti2(i128)
; AIX64-NEXT: declare signext i32 @__ctzdi2(i64)
; AIX64-NEXT: declare signext i32 @__ctzsi2(i32 zeroext)
; AIX64-NEXT: declare signext i32 @__ctzti2(i128)
; AIX64-NEXT: declare void @__cxa_end_cleanup()
; AIX64-NEXT: declare double @__divdf3(double, double)
; AIX64-NEXT: declare i64 @__divdi3(i64, i64)
; AIX64-NEXT: declare signext i16 @__divhi3(i16 signext, i16 signext)
; AIX64-NEXT: declare fp128 @__divkf3(fp128, fp128)
; AIX64-NEXT: declare signext i8 @__divqi3(i8 signext, i8 signext)
; AIX64-NEXT: declare float @__divsf3(float, float)
; AIX64-NEXT: declare signext i32 @__divsi3(i32 signext, i32 signext)
; AIX64-NEXT: declare i128 @__divti3(i128, i128)
; AIX64-NEXT: declare i64 @__eqdf2(double, double)
; AIX64-NEXT: declare i64 @__eqkf2(fp128, fp128)
; AIX64-NEXT: declare i64 @__eqsf2(float, float)
; AIX64-NEXT: declare double @__exp2_finite(double)
; AIX64-NEXT: declare float @__exp2f_finite(float)
; AIX64-NEXT: declare double @__exp2l_finite(double)
; AIX64-NEXT: declare double @__exp_finite(double)
; AIX64-NEXT: declare float @__expf_finite(float)
; AIX64-NEXT: declare double @__expl_finite(double)
; AIX64-NEXT: declare float @__extendbfsf2(bfloat)
; AIX64-NEXT: declare fp128 @__extenddfkf2(double)
; AIX64-NEXT: declare double @__extendhfdf2(half)
; AIX64-NEXT: declare float @__extendhfsf2(half)
; AIX64-NEXT: declare ppc_fp128 @__extendkftf2(fp128)
; AIX64-NEXT: declare double @__extendsfdf2(float)
; AIX64-NEXT: declare fp128 @__extendsfkf2(float)
; AIX64-NEXT: declare i64 @__fixdfdi(double)
; AIX64-NEXT: declare signext i32 @__fixdfsi(double)
; AIX64-NEXT: declare i128 @__fixdfti(double)
; AIX64-NEXT: declare i64 @__fixhfdi(half)
; AIX64-NEXT: declare signext i32 @__fixhfsi(half)
; AIX64-NEXT: declare i128 @__fixhfti(half)
; AIX64-NEXT: declare i64 @__fixkfdi(fp128)
; AIX64-NEXT: declare signext i32 @__fixkfsi(fp128)
; AIX64-NEXT: declare i128 @__fixkfti(fp128)
; AIX64-NEXT: declare i64 @__fixsfdi(float)
; AIX64-NEXT: declare signext i32 @__fixsfsi(float)
; AIX64-NEXT: declare i128 @__fixsfti(float)
; AIX64-NEXT: declare i64 @__fixtfdi(ppc_fp128)
; AIX64-NEXT: declare i128 @__fixtfti(ppc_fp128)
; AIX64-NEXT: declare i64 @__fixunsdfdi(double)
; AIX64-NEXT: declare zeroext i32 @__fixunsdfsi(double)
; AIX64-NEXT: declare i128 @__fixunsdfti(double)
; AIX64-NEXT: declare i64 @__fixunshfdi(half)
; AIX64-NEXT: declare zeroext i32 @__fixunshfsi(half)
; AIX64-NEXT: declare i128 @__fixunshfti(half)
; AIX64-NEXT: declare i64 @__fixunskfdi(fp128)
; AIX64-NEXT: declare zeroext i32 @__fixunskfsi(fp128)
; AIX64-NEXT: declare i128 @__fixunskfti(fp128)
; AIX64-NEXT: declare i64 @__fixunssfdi(float)
; AIX64-NEXT: declare zeroext i32 @__fixunssfsi(float)
; AIX64-NEXT: declare i128 @__fixunssfti(float)
; AIX64-NEXT: declare i64 @__fixunstfdi(ppc_fp128)
; AIX64-NEXT: declare zeroext i32 @__fixunstfsi(ppc_fp128)
; AIX64-NEXT: declare i128 @__fixunstfti(ppc_fp128)
; AIX64-NEXT: declare bfloat @__floatdibf(i64)
; AIX64-NEXT: declare double @__floatdidf(i64)
; AIX64-NEXT: declare half @__floatdihf(i64)
; AIX64-NEXT: declare fp128 @__floatdikf(i64)
; AIX64-NEXT: declare float @__floatdisf(i64)
; AIX64-NEXT: declare ppc_fp128 @__floatditf(i64)
; AIX64-NEXT: declare double @__floatsidf(i32 signext)
; AIX64-NEXT: declare half @__floatsihf(i32 signext)
; AIX64-NEXT: declare fp128 @__floatsikf(i32 signext)
; AIX64-NEXT: declare float @__floatsisf(i32 signext)
; AIX64-NEXT: declare double @__floattidf(i128)
; AIX64-NEXT: declare half @__floattihf(i128)
; AIX64-NEXT: declare fp128 @__floattikf(i128)
; AIX64-NEXT: declare float @__floattisf(i128)
; AIX64-NEXT: declare ppc_fp128 @__floattitf(i128)
; AIX64-NEXT: declare bfloat @__floatundibf(i64)
; AIX64-NEXT: declare double @__floatundidf(i64)
; AIX64-NEXT: declare half @__floatundihf(i64)
; AIX64-NEXT: declare fp128 @__floatundikf(i64)
; AIX64-NEXT: declare float @__floatundisf(i64)
; AIX64-NEXT: declare ppc_fp128 @__floatunditf(i64)
; AIX64-NEXT: declare double @__floatunsidf(i32 zeroext)
; AIX64-NEXT: declare half @__floatunsihf(i32 zeroext)
; AIX64-NEXT: declare fp128 @__floatunsikf(i32 zeroext)
; AIX64-NEXT: declare float @__floatunsisf(i32 zeroext)
; AIX64-NEXT: declare double @__floatuntidf(i128)
; AIX64-NEXT: declare half @__floatuntihf(i128)
; AIX64-NEXT: declare fp128 @__floatuntikf(i128)
; AIX64-NEXT: declare float @__floatuntisf(i128)
; AIX64-NEXT: declare ppc_fp128 @__floatuntitf(i128)
; AIX64-NEXT: declare ppc_fp128 @__gcc_dtoq(double)
; AIX64-NEXT: declare ppc_fp128 @__gcc_itoq(i32 signext)
; AIX64-NEXT: declare ppc_fp128 @__gcc_qadd(ppc_fp128, ppc_fp128)
; AIX64-NEXT: declare ppc_fp128 @__gcc_qdiv(ppc_fp128, ppc_fp128)
; AIX64-NEXT: declare signext i32 @__gcc_qeq(ppc_fp128, ppc_fp128)
; AIX64-NEXT: declare signext i32 @__gcc_qge(ppc_fp128, ppc_fp128)
; AIX64-NEXT: declare signext i32 @__gcc_qgt(ppc_fp128, ppc_fp128)
; AIX64-NEXT: declare signext i32 @__gcc_qle(ppc_fp128, ppc_fp128)
; AIX64-NEXT: declare signext i32 @__gcc_qlt(ppc_fp128, ppc_fp128)
; AIX64-NEXT: declare ppc_fp128 @__gcc_qmul(ppc_fp128, ppc_fp128)
; AIX64-NEXT: declare signext i32 @__gcc_qne(ppc_fp128, ppc_fp128)
; AIX64-NEXT: declare ppc_fp128 @__gcc_qsub(ppc_fp128, ppc_fp128)
; AIX64-NEXT: declare double @__gcc_qtod(ppc_fp128)
; AIX64-NEXT: declare float @__gcc_qtos(ppc_fp128)
; AIX64-NEXT: declare signext i32 @__gcc_qtou(ppc_fp128)
; AIX64-NEXT: declare signext i32 @__gcc_qunord(ppc_fp128, ppc_fp128)
; AIX64-NEXT: declare ppc_fp128 @__gcc_stoq(float)
; AIX64-NEXT: declare ppc_fp128 @__gcc_utoq(i32 zeroext)
; AIX64-NEXT: declare i64 @__gedf2(double, double)
; AIX64-NEXT: declare i64 @__gekf2(fp128, fp128)
; AIX64-NEXT: declare i64 @__gesf2(float, float)
; AIX64-NEXT: declare i64 @__gtdf2(double, double)
; AIX64-NEXT: declare i64 @__gtkf2(fp128, fp128)
; AIX64-NEXT: declare i64 @__gtsf2(float, float)
; AIX64-NEXT: declare i64 @__ledf2(double, double)
; AIX64-NEXT: declare i64 @__lekf2(fp128, fp128)
; AIX64-NEXT: declare i64 @__lesf2(float, float)
; AIX64-NEXT: declare void @__llvm_deoptimize(...)
; AIX64-NEXT: declare void @__llvm_memcpy_element_unordered_atomic_1(ptr, ptr, i64)
; AIX64-NEXT: declare void @__llvm_memcpy_element_unordered_atomic_16(ptr, ptr, i64)
; AIX64-NEXT: declare void @__llvm_memcpy_element_unordered_atomic_2(ptr, ptr, i64)
; AIX64-NEXT: declare void @__llvm_memcpy_element_unordered_atomic_4(ptr, ptr, i64)
; AIX64-NEXT: declare void @__llvm_memcpy_element_unordered_atomic_8(ptr, ptr, i64)
; AIX64-NEXT: declare void @__llvm_memmove_element_unordered_atomic_1(ptr, ptr, i64)
; AIX64-NEXT: declare void @__llvm_memmove_element_unordered_atomic_16(ptr, ptr, i64)
; AIX64-NEXT: declare void @__llvm_memmove_element_unordered_atomic_2(ptr, ptr, i64)
; AIX64-NEXT: declare void @__llvm_memmove_element_unordered_atomic_4(ptr, ptr, i64)
; AIX64-NEXT: declare void @__llvm_memmove_element_unordered_atomic_8(ptr, ptr, i64)
; AIX64-NEXT: declare void @__llvm_memset_element_unordered_atomic_1(ptr, i32 signext, i64)
; AIX64-NEXT: declare void @__llvm_memset_element_unordered_atomic_16(ptr, i32 signext, i64)
; AIX64-NEXT: declare void @__llvm_memset_element_unordered_atomic_2(ptr, i32 signext, i64)
; AIX64-NEXT: declare void @__llvm_memset_element_unordered_atomic_4(ptr, i32 signext, i64)
; AIX64-NEXT: declare void @__llvm_memset_element_unordered_atomic_8(ptr, i32 signext, i64)
; AIX64-NEXT: declare double @__log10_finite(double)
; AIX64-NEXT: declare float @__log10f_finite(float)
; AIX64-NEXT: declare double @__log10l_finite(double)
; AIX64-NEXT: declare double @__log2_finite(double)
; AIX64-NEXT: declare float @__log2f_finite(float)
; AIX64-NEXT: declare double @__log2l_finite(double)
; AIX64-NEXT: declare double @__log_finite(double)
; AIX64-NEXT: declare float @__logf_finite(float)
; AIX64-NEXT: declare double @__logl_finite(double)
; AIX64-NEXT: declare i64 @__lshrdi3(i64, i32 signext)
; AIX64-NEXT: declare signext i16 @__lshrhi3(i16 signext, i32 signext)
; AIX64-NEXT: declare signext i32 @__lshrsi3(i32 signext, i32 signext)
; AIX64-NEXT: declare i128 @__lshrti3(i128, i32 signext)
; AIX64-NEXT: declare i64 @__ltdf2(double, double)
; AIX64-NEXT: declare i64 @__ltkf2(fp128, fp128)
; AIX64-NEXT: declare i64 @__ltsf2(float, float)
; AIX64-NEXT: declare ptr @__memcpy_chk(ptr, ptr, i64, i64)
; AIX64-NEXT: declare ptr @__memmove_chk(ptr, ptr, i64, i64)
; AIX64-NEXT: declare ptr @__memset_chk(ptr, i32 signext, i64, i64)
; AIX64-NEXT: declare i64 @__moddi3(i64, i64)
; AIX64-NEXT: declare signext i16 @__modhi3(i16 signext, i16 signext)
; AIX64-NEXT: declare signext i8 @__modqi3(i8 signext, i8 signext)
; AIX64-NEXT: declare signext i32 @__modsi3(i32 signext, i32 signext)
; AIX64-NEXT: declare i128 @__modti3(i128, i128)
; AIX64-NEXT: declare double @__muldf3(double, double)
; AIX64-NEXT: declare i64 @__muldi3(i64, i64)
; AIX64-NEXT: declare signext i16 @__mulhi3(i16 signext, i16 signext)
; AIX64-NEXT: declare fp128 @__mulkf3(fp128, fp128)
; AIX64-NEXT: declare signext i32 @__mulosi4(i32 signext, i32 signext, ptr)
; AIX64-NEXT: declare signext i8 @__mulqi3(i8 signext, i8 signext)
; AIX64-NEXT: declare float @__mulsf3(float, float)
; AIX64-NEXT: declare signext i32 @__mulsi3(i32 signext, i32 signext)
; AIX64-NEXT: declare i128 @__multi3(i128, i128)
; AIX64-NEXT: declare i64 @__nedf2(double, double)
; AIX64-NEXT: declare i64 @__negdi2(i64)
; AIX64-NEXT: declare signext i32 @__negsi2(i32 signext)
; AIX64-NEXT: declare i64 @__nekf2(fp128, fp128)
; AIX64-NEXT: declare i64 @__nesf2(float, float)
; AIX64-NEXT: declare signext i32 @__popcountdi2(i64)
; AIX64-NEXT: declare signext i32 @__popcountsi2(i32 zeroext)
; AIX64-NEXT: declare signext i32 @__popcountti2(i128)
; AIX64-NEXT: declare double @__pow_finite(double, double)
; AIX64-NEXT: declare float @__powf_finite(float, float)
; AIX64-NEXT: declare double @__powidf2(double, i32 signext)
; AIX64-NEXT: declare fp128 @__powikf2(fp128, i32 signext)
; AIX64-NEXT: declare float @__powisf2(float, i32 signext)
; AIX64-NEXT: declare ppc_fp128 @__powitf2(ppc_fp128, i32 signext)
; AIX64-NEXT: declare double @__powl_finite(double, double)
; AIX64-NEXT: declare void @__stack_chk_fail()
; AIX64-NEXT: declare double @__subdf3(double, double)
; AIX64-NEXT: declare fp128 @__subkf3(fp128, fp128)
; AIX64-NEXT: declare float @__subsf3(float, float)
; AIX64-NEXT: declare zeroext i8 @__sync_fetch_and_add_1(ptr, i8 zeroext)
; AIX64-NEXT: declare i128 @__sync_fetch_and_add_16(ptr, i128)
; AIX64-NEXT: declare zeroext i16 @__sync_fetch_and_add_2(ptr, i16 zeroext)
; AIX64-NEXT: declare zeroext i32 @__sync_fetch_and_add_4(ptr, i32 zeroext)
; AIX64-NEXT: declare i64 @__sync_fetch_and_add_8(ptr, i64)
; AIX64-NEXT: declare zeroext i8 @__sync_fetch_and_and_1(ptr, i8 zeroext)
; AIX64-NEXT: declare i128 @__sync_fetch_and_and_16(ptr, i128)
; AIX64-NEXT: declare zeroext i16 @__sync_fetch_and_and_2(ptr, i16 zeroext)
; AIX64-NEXT: declare zeroext i32 @__sync_fetch_and_and_4(ptr, i32 zeroext)
; AIX64-NEXT: declare i64 @__sync_fetch_and_and_8(ptr, i64)
; AIX64-NEXT: declare zeroext i8 @__sync_fetch_and_max_1(ptr, i8 zeroext)
; AIX64-NEXT: declare i128 @__sync_fetch_and_max_16(ptr, i128)
; AIX64-NEXT: declare zeroext i16 @__sync_fetch_and_max_2(ptr, i16 zeroext)
; AIX64-NEXT: declare zeroext i32 @__sync_fetch_and_max_4(ptr, i32 zeroext)
; AIX64-NEXT: declare i64 @__sync_fetch_and_max_8(ptr, i64)
; AIX64-NEXT: declare zeroext i8 @__sync_fetch_and_min_1(ptr, i8 zeroext)
; AIX64-NEXT: declare i128 @__sync_fetch_and_min_16(ptr, i128)
; AIX64-NEXT: declare zeroext i16 @__sync_fetch_and_min_2(ptr, i16 zeroext)
; AIX64-NEXT: declare zeroext i32 @__sync_fetch_and_min_4(ptr, i32 zeroext)
; AIX64-NEXT: declare i64 @__sync_fetch_and_min_8(ptr, i64)
; AIX64-NEXT: declare zeroext i8 @__sync_fetch_and_nand_1(ptr, i8 zeroext)
; AIX64-NEXT: declare i128 @__sync_fetch_and_nand_16(ptr, i128)
; AIX64-NEXT: declare zeroext i16 @__sync_fetch_and_nand_2(ptr, i16 zeroext)
; AIX64-NEXT: declare zeroext i32 @__sync_fetch_and_nand_4(ptr, i32 zeroext)
; AIX64-NEXT: declare i64 @__sync_fetch_and_nand_8(ptr, i64)
; AIX64-NEXT: declare zeroext i8 @__sync_fetch_and_or_1(ptr, i8 zeroext)
; AIX64-NEXT: declare i128 @__sync_fetch_and_or_16(ptr, i128)
; AIX64-NEXT: declare zeroext i16 @__sync_fetch_and_or_2(ptr, i16 zeroext)
; AIX64-NEXT: declare zeroext i32 @__sync_fetch_and_or_4(ptr, i32 zeroext)
; AIX64-NEXT: declare i64 @__sync_fetch_and_or_8(ptr, i64)
; AIX64-NEXT: declare zeroext i8 @__sync_fetch_and_sub_1(ptr, i8 zeroext)
; AIX64-NEXT: declare i128 @__sync_fetch_and_sub_16(ptr, i128)
; AIX64-NEXT: declare zeroext i16 @__sync_fetch_and_sub_2(ptr, i16 zeroext)
; AIX64-NEXT: declare zeroext i32 @__sync_fetch_and_sub_4(ptr, i32 zeroext)
; AIX64-NEXT: declare i64 @__sync_fetch_and_sub_8(ptr, i64)
; AIX64-NEXT: declare zeroext i8 @__sync_fetch_and_umax_1(ptr, i8 zeroext)
; AIX64-NEXT: declare i128 @__sync_fetch_and_umax_16(ptr, i128)
; AIX64-NEXT: declare zeroext i16 @__sync_fetch_and_umax_2(ptr, i16 zeroext)
; AIX64-NEXT: declare zeroext i32 @__sync_fetch_and_umax_4(ptr, i32 zeroext)
; AIX64-NEXT: declare i64 @__sync_fetch_and_umax_8(ptr, i64)
; AIX64-NEXT: declare zeroext i8 @__sync_fetch_and_umin_1(ptr, i8 zeroext)
; AIX64-NEXT: declare i128 @__sync_fetch_and_umin_16(ptr, i128)
; AIX64-NEXT: declare zeroext i16 @__sync_fetch_and_umin_2(ptr, i16 zeroext)
; AIX64-NEXT: declare zeroext i32 @__sync_fetch_and_umin_4(ptr, i32 zeroext)
; AIX64-NEXT: declare i64 @__sync_fetch_and_umin_8(ptr, i64)
; AIX64-NEXT: declare zeroext i8 @__sync_fetch_and_xor_1(ptr, i8 zeroext)
; AIX64-NEXT: declare i128 @__sync_fetch_and_xor_16(ptr, i128)
; AIX64-NEXT: declare zeroext i16 @__sync_fetch_and_xor_2(ptr, i16 zeroext)
; AIX64-NEXT: declare zeroext i32 @__sync_fetch_and_xor_4(ptr, i32 zeroext)
; AIX64-NEXT: declare i64 @__sync_fetch_and_xor_8(ptr, i64)
; AIX64-NEXT: declare zeroext i8 @__sync_lock_test_and_set_1(ptr, i8 zeroext)
; AIX64-NEXT: declare i128 @__sync_lock_test_and_set_16(ptr, i128)
; AIX64-NEXT: declare zeroext i16 @__sync_lock_test_and_set_2(ptr, i16 zeroext)
; AIX64-NEXT: declare zeroext i32 @__sync_lock_test_and_set_4(ptr, i32 zeroext)
; AIX64-NEXT: declare i64 @__sync_lock_test_and_set_8(ptr, i64)
; AIX64-NEXT: declare zeroext i8 @__sync_val_compare_and_swap_1(ptr, i8 zeroext, i8 zeroext)
; AIX64-NEXT: declare i128 @__sync_val_compare_and_swap_16(ptr, i128, i128)
; AIX64-NEXT: declare zeroext i16 @__sync_val_compare_and_swap_2(ptr, i16 zeroext, i16 zeroext)
; AIX64-NEXT: declare zeroext i32 @__sync_val_compare_and_swap_4(ptr, i32 zeroext, i32 zeroext)
; AIX64-NEXT: declare i64 @__sync_val_compare_and_swap_8(ptr, i64, i64)
; AIX64-NEXT: declare bfloat @__truncdfbf2(double)
; AIX64-NEXT: declare half @__truncdfhf2(double)
; AIX64-NEXT: declare float @__truncdfsf2(double)
; AIX64-NEXT: declare double @__trunckfdf2(fp128)
; AIX64-NEXT: declare half @__trunckfhf2(fp128)
; AIX64-NEXT: declare float @__trunckfsf2(fp128)
; AIX64-NEXT: declare bfloat @__truncsfbf2(float)
; AIX64-NEXT: declare half @__truncsfhf2(float)
; AIX64-NEXT: declare half @__trunctfhf2(ppc_fp128)
; AIX64-NEXT: declare fp128 @__trunctfkf2(ppc_fp128)
; AIX64-NEXT: declare i64 @__udivdi3(i64, i64)
; AIX64-NEXT: declare zeroext i16 @__udivhi3(i16 zeroext, i16 zeroext)
; AIX64-NEXT: declare zeroext i8 @__udivqi3(i8 zeroext, i8 zeroext)
; AIX64-NEXT: declare zeroext i32 @__udivsi3(i32 zeroext, i32 zeroext)
; AIX64-NEXT: declare i128 @__udivti3(i128, i128)
; AIX64-NEXT: declare i64 @__umoddi3(i64, i64)
; AIX64-NEXT: declare zeroext i16 @__umodhi3(i16 zeroext, i16 zeroext)
; AIX64-NEXT: declare zeroext i8 @__umodqi3(i8 zeroext, i8 zeroext)
; AIX64-NEXT: declare zeroext i32 @__umodsi3(i32 zeroext, i32 zeroext)
; AIX64-NEXT: declare i128 @__umodti3(i128, i128)
; AIX64-NEXT: declare i64 @__unorddf2(double, double)
; AIX64-NEXT: declare i64 @__unordkf2(fp128, fp128)
; AIX64-NEXT: declare i64 @__unordsf2(float, float)
; AIX64-NEXT: declare double @acos(double)
; AIX64-NEXT: declare float @acosf(float)
; AIX64-NEXT: declare fp128 @acosf128(fp128)
; AIX64-NEXT: declare double @acosl(double)
; AIX64-NEXT: declare double @asin(double)
; AIX64-NEXT: declare float @asinf(float)
; AIX64-NEXT: declare fp128 @asinf128(fp128)
; AIX64-NEXT: declare double @asinl(double)
; AIX64-NEXT: declare double @atan(double)
; AIX64-NEXT: declare double @atan2(double, double)
; AIX64-NEXT: declare float @atan2f(float, float)
; AIX64-NEXT: declare fp128 @atan2f128(fp128, fp128)
; AIX64-NEXT: declare double @atan2l(double, double)
; AIX64-NEXT: declare float @atanf(float)
; AIX64-NEXT: declare fp128 @atanf128(fp128)
; AIX64-NEXT: declare double @atanl(double)
; AIX64-NEXT: declare void @cabs(...)
; AIX64-NEXT: declare void @cabsf(...)
; AIX64-NEXT: declare void @cabsl(...)
; AIX64-NEXT: declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) [[CALLOC_ATTRS:#[0-9]+]]
; AIX64-NEXT: declare double @cbrt(double)
; AIX64-NEXT: declare float @cbrtf(float)
; AIX64-NEXT: declare fp128 @cbrtf128(fp128)
; AIX64-NEXT: declare double @cbrtl(double)
; AIX64-NEXT: declare double @ceil(double)
; AIX64-NEXT: declare float @ceilf(float)
; AIX64-NEXT: declare fp128 @ceilf128(fp128)
; AIX64-NEXT: declare double @ceill(double)
; AIX64-NEXT: declare double @copysign(double, double)
; AIX64-NEXT: declare float @copysignf(float, float)
; AIX64-NEXT: declare fp128 @copysignf128(fp128, fp128)
; AIX64-NEXT: declare double @copysignl(double, double)
; AIX64-NEXT: declare double @cos(double)
; AIX64-NEXT: declare float @cosf(float)
; AIX64-NEXT: declare fp128 @cosf128(fp128)
; AIX64-NEXT: declare double @cosh(double)
; AIX64-NEXT: declare float @coshf(float)
; AIX64-NEXT: declare fp128 @coshf128(fp128)
; AIX64-NEXT: declare double @coshl(double)
; AIX64-NEXT: declare double @cosl(double)
; AIX64-NEXT: declare double @exp(double)
; AIX64-NEXT: declare double @exp10(double)
; AIX64-NEXT: declare float @exp10f(float)
; AIX64-NEXT: declare fp128 @exp10f128(fp128)
; AIX64-NEXT: declare double @exp10l(double)
; AIX64-NEXT: declare double @exp2(double)
; AIX64-NEXT: declare float @exp2f(float)
; AIX64-NEXT: declare fp128 @exp2f128(fp128)
; AIX64-NEXT: declare double @exp2l(double)
; AIX64-NEXT: declare float @expf(float)
; AIX64-NEXT: declare fp128 @expf128(fp128)
; AIX64-NEXT: declare double @expl(double)
; AIX64-NEXT: declare double @fdim(double, double)
; AIX64-NEXT: declare float @fdimf(float, float)
; AIX64-NEXT: declare double @fdiml(double, double)
; AIX64-NEXT: declare signext i32 @fegetenv(ptr)
; AIX64-NEXT: declare signext i32 @fegetmode(ptr)
; AIX64-NEXT: declare signext i32 @fesetenv(ptr)
; AIX64-NEXT: declare signext i32 @fesetmode(ptr)
; AIX64-NEXT: declare double @floor(double)
; AIX64-NEXT: declare float @floorf(float)
; AIX64-NEXT: declare fp128 @floorf128(fp128)
; AIX64-NEXT: declare double @floorl(double)
; AIX64-NEXT: declare double @fma(double, double, double)
; AIX64-NEXT: declare float @fmaf(float, float, float)
; AIX64-NEXT: declare fp128 @fmaf128(fp128, fp128, fp128)
; AIX64-NEXT: declare double @fmal(double, double, double)
; AIX64-NEXT: declare double @fmax(double, double)
; AIX64-NEXT: declare float @fmaxf(float, float)
; AIX64-NEXT: declare fp128 @fmaxf128(fp128, fp128)
; AIX64-NEXT: declare double @fmaximum(double, double)
; AIX64-NEXT: declare double @fmaximum_num(double, double)
; AIX64-NEXT: declare float @fmaximum_numf(float, float)
; AIX64-NEXT: declare fp128 @fmaximum_numf128(fp128, fp128)
; AIX64-NEXT: declare double @fmaximum_numl(double, double)
; AIX64-NEXT: declare float @fmaximumf(float, float)
; AIX64-NEXT: declare fp128 @fmaximumf128(fp128, fp128)
; AIX64-NEXT: declare double @fmaximuml(double, double)
; AIX64-NEXT: declare double @fmaxl(double, double)
; AIX64-NEXT: declare double @fmin(double, double)
; AIX64-NEXT: declare float @fminf(float, float)
; AIX64-NEXT: declare fp128 @fminf128(fp128, fp128)
; AIX64-NEXT: declare double @fminimum(double, double)
; AIX64-NEXT: declare double @fminimum_num(double, double)
; AIX64-NEXT: declare float @fminimum_numf(float, float)
; AIX64-NEXT: declare fp128 @fminimum_numf128(fp128, fp128)
; AIX64-NEXT: declare double @fminimum_numl(double, double)
; AIX64-NEXT: declare float @fminimumf(float, float)
; AIX64-NEXT: declare fp128 @fminimumf128(fp128, fp128)
; AIX64-NEXT: declare double @fminimuml(double, double)
; AIX64-NEXT: declare double @fminl(double, double)
; AIX64-NEXT: declare double @fmod(double, double)
; AIX64-NEXT: declare float @fmodf(float, float)
; AIX64-NEXT: declare fp128 @fmodf128(fp128, fp128)
; AIX64-NEXT: declare double @fmodl(double, double)
; AIX64-NEXT: declare void @free(ptr allocptr noundef captures(none)) [[FREE_ATTRS:#[0-9]+]]
; AIX64-NEXT: declare double @frexp(double, ptr)
; AIX64-NEXT: declare float @frexpf(float, ptr)
; AIX64-NEXT: declare fp128 @frexpf128(fp128, ptr)
; AIX64-NEXT: declare double @frexpl(double, ptr)
; AIX64-NEXT: declare double @ldexp(double, i32 signext)
; AIX64-NEXT: declare float @ldexpf(float, i32 signext)
; AIX64-NEXT: declare fp128 @ldexpf128(fp128, i32 signext)
; AIX64-NEXT: declare double @ldexpl(double, i32 signext)
; AIX64-NEXT: declare i64 @llrint(double)
; AIX64-NEXT: declare i64 @llrintf(float)
; AIX64-NEXT: declare i64 @llrintf128(fp128)
; AIX64-NEXT: declare i64 @llrintl(double)
; AIX64-NEXT: declare i64 @llround(double)
; AIX64-NEXT: declare i64 @llroundf(float)
; AIX64-NEXT: declare i64 @llroundf128(fp128)
; AIX64-NEXT: declare i64 @llroundl(double)
; AIX64-NEXT: declare double @log(double)
; AIX64-NEXT: declare double @log10(double)
; AIX64-NEXT: declare float @log10f(float)
; AIX64-NEXT: declare fp128 @log10f128(fp128)
; AIX64-NEXT: declare double @log10l(double)
; AIX64-NEXT: declare double @log2(double)
; AIX64-NEXT: declare float @log2f(float)
; AIX64-NEXT: declare fp128 @log2f128(fp128)
; AIX64-NEXT: declare double @log2l(double)
; AIX64-NEXT: declare float @logf(float)
; AIX64-NEXT: declare fp128 @logf128(fp128)
; AIX64-NEXT: declare double @logl(double)
; AIX64-NEXT: declare i64 @lrint(double)
; AIX64-NEXT: declare i64 @lrintf(float)
; AIX64-NEXT: declare i64 @lrintf128(fp128)
; AIX64-NEXT: declare i64 @lrintl(double)
; AIX64-NEXT: declare i64 @lround(double)
; AIX64-NEXT: declare i64 @lroundf(float)
; AIX64-NEXT: declare i64 @lroundf128(fp128)
; AIX64-NEXT: declare i64 @lroundl(double)
; AIX64-NEXT: declare noalias noundef ptr @malloc(i64 noundef) [[MALLOC_ATTRS:#[0-9]+]]
; AIX64-NEXT: declare ptr @memmove(ptr, ptr, i64)
; AIX64-NEXT: declare ptr @memset(ptr, i32 signext, i64)
; AIX64-NEXT: declare double @modf(double, ptr)
; AIX64-NEXT: declare float @modff(float, ptr)
; AIX64-NEXT: declare fp128 @modff128(fp128, ptr)
; AIX64-NEXT: declare double @modfl(double, ptr)
; AIX64-NEXT: declare double @nan(ptr)
; AIX64-NEXT: declare float @nanf(ptr)
; AIX64-NEXT: declare double @nanl(ptr)
; AIX64-NEXT: declare double @nearbyint(double)
; AIX64-NEXT: declare float @nearbyintf(float)
; AIX64-NEXT: declare fp128 @nearbyintf128(fp128)
; AIX64-NEXT: declare double @nearbyintl(double)
; AIX64-NEXT: declare double @nexttoward(double, double)
; AIX64-NEXT: declare float @nexttowardf(float, double)
; AIX64-NEXT: declare double @nexttowardl(double, double)
; AIX64-NEXT: declare double @pow(double, double)
; AIX64-NEXT: declare float @powf(float, float)
; AIX64-NEXT: declare fp128 @powf128(fp128, fp128)
; AIX64-NEXT: declare double @powl(double, double)
; AIX64-NEXT: declare double @remainder(double, double)
; AIX64-NEXT: declare float @remainderf(float, float)
; AIX64-NEXT: declare double @remainderl(double, double)
; AIX64-NEXT: declare double @remquo(double, double, ptr)
; AIX64-NEXT: declare float @remquof(float, float, ptr)
; AIX64-NEXT: declare double @remquol(double, double, ptr)
; AIX64-NEXT: declare double @rint(double)
; AIX64-NEXT: declare float @rintf(float)
; AIX64-NEXT: declare fp128 @rintf128(fp128)
; AIX64-NEXT: declare double @rintl(double)
; AIX64-NEXT: declare double @round(double)
; AIX64-NEXT: declare double @roundeven(double)
; AIX64-NEXT: declare float @roundevenf(float)
; AIX64-NEXT: declare fp128 @roundevenf128(fp128)
; AIX64-NEXT: declare double @roundevenl(double)
; AIX64-NEXT: declare float @roundf(float)
; AIX64-NEXT: declare fp128 @roundf128(fp128)
; AIX64-NEXT: declare double @roundl(double)
; AIX64-NEXT: declare double @scalbln(double, i64)
; AIX64-NEXT: declare float @scalblnf(float, i64)
; AIX64-NEXT: declare double @scalblnl(double, i64)
; AIX64-NEXT: declare double @scalbn(double, i32 signext)
; AIX64-NEXT: declare float @scalbnf(float, i32 signext)
; AIX64-NEXT: declare double @scalbnl(double, i32 signext)
; AIX64-NEXT: declare double @sin(double)
; AIX64-NEXT: declare void @sincosf128(fp128, ptr, ptr)
; AIX64-NEXT: declare float @sinf(float)
; AIX64-NEXT: declare fp128 @sinf128(fp128)
; AIX64-NEXT: declare double @sinh(double)
; AIX64-NEXT: declare float @sinhf(float)
; AIX64-NEXT: declare fp128 @sinhf128(fp128)
; AIX64-NEXT: declare double @sinhl(double)
; AIX64-NEXT: declare double @sinl(double)
; AIX64-NEXT: declare nofpclass(ninf nsub nnorm) double @sqrt(double) [[SQRT_ATTRS:#[0-9]+]]
; AIX64-NEXT: declare nofpclass(ninf nsub nnorm) float @sqrtf(float) [[SQRT_ATTRS:#[0-9]+]]
; AIX64-NEXT: declare fp128 @sqrtf128(fp128)
; AIX64-NEXT: declare double @sqrtl(double)
; AIX64-NEXT: declare double @tan(double)
; AIX64-NEXT: declare float @tanf(float)
; AIX64-NEXT: declare fp128 @tanf128(fp128)
; AIX64-NEXT: declare double @tanh(double)
; AIX64-NEXT: declare float @tanhf(float)
; AIX64-NEXT: declare fp128 @tanhf128(fp128)
; AIX64-NEXT: declare double @tanhl(double)
; AIX64-NEXT: declare double @tanl(double)
; AIX64-NEXT: declare double @tgamma(double)
; AIX64-NEXT: declare float @tgammaf(float)
; AIX64-NEXT: declare double @tgammal(double)
; AIX64-NEXT: declare double @trunc(double)
; AIX64-NEXT: declare float @truncf(float)
; AIX64-NEXT: declare fp128 @truncf128(fp128)
; AIX64-NEXT: declare double @truncl(double)
; AIX64-NEXT: declare ptr @vec_calloc(i64, i64)
; AIX64-NEXT: declare void @vec_free(ptr)
; AIX64-NEXT: declare ptr @vec_malloc(i64)
; AIX64-NEXT: declare ptr @vec_realloc(ptr, i64)
; AIX64-NEXT: attributes [[CALLOC_ATTRS]] = { nofree nounwind willreturn allockind("alloc") allocsize(0,1) "alloc-family"="malloc" }
; AIX64-NEXT: attributes [[FREE_ATTRS]] = { nounwind willreturn allockind("free") "alloc-family"="malloc" }
; AIX64-NEXT: attributes [[MALLOC_ATTRS]] = { nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) "alloc-family"="malloc" }
; AIX64-NEXT: attributes [[SQRT_ATTRS]] = { nocallback nofree nosync nounwind willreturn memory(errnomem: write) }
; LINUX: @__stack_chk_guard = external global ptr
; LINUX-NEXT: declare signext i32 @_Unwind_RaiseException(ptr)
; LINUX-NEXT: declare void @_Unwind_Resume(ptr)
; LINUX-NEXT: declare double @__adddf3(double, double)
; LINUX-NEXT: declare fp128 @__addkf3(fp128, fp128)
; LINUX-NEXT: declare float @__addsf3(float, float)
; LINUX-NEXT: declare i64 @__ashldi3(i64, i32 signext)
; LINUX-NEXT: declare signext i16 @__ashlhi3(i16 signext, i32 signext)
; LINUX-NEXT: declare signext i32 @__ashlsi3(i32 signext, i32 signext)
; LINUX-NEXT: declare i128 @__ashlti3(i128, i32 signext)
; LINUX-NEXT: declare i64 @__ashrdi3(i64, i32 signext)
; LINUX-NEXT: declare signext i16 @__ashrhi3(i16 signext, i32 signext)
; LINUX-NEXT: declare signext i32 @__ashrsi3(i32 signext, i32 signext)
; LINUX-NEXT: declare i128 @__ashrti3(i128, i32 signext)
; LINUX-NEXT: declare zeroext i1 @__atomic_compare_exchange(i64, ptr, ptr, ptr, i32 signext, i32 signext)
; LINUX-NEXT: declare zeroext i1 @__atomic_compare_exchange_1(ptr, ptr, i8 zeroext, i32 signext, i32 signext)
; LINUX-NEXT: declare zeroext i1 @__atomic_compare_exchange_16(ptr, ptr, i128, i32 signext, i32 signext)
; LINUX-NEXT: declare zeroext i1 @__atomic_compare_exchange_2(ptr, ptr, i16 zeroext, i32 signext, i32 signext)
; LINUX-NEXT: declare zeroext i1 @__atomic_compare_exchange_4(ptr, ptr, i32 zeroext, i32 signext, i32 signext)
; LINUX-NEXT: declare zeroext i1 @__atomic_compare_exchange_8(ptr, ptr, i64, i32 signext, i32 signext)
; LINUX-NEXT: declare void @__atomic_exchange(i64, ptr, ptr, ptr, i32 signext)
; LINUX-NEXT: declare zeroext i8 @__atomic_exchange_1(ptr, i8 zeroext, i32 signext)
; LINUX-NEXT: declare i128 @__atomic_exchange_16(ptr, i128, i32 signext)
; LINUX-NEXT: declare zeroext i16 @__atomic_exchange_2(ptr, i16 zeroext, i32 signext)
; LINUX-NEXT: declare zeroext i32 @__atomic_exchange_4(ptr, i32 zeroext, i32 signext)
; LINUX-NEXT: declare i64 @__atomic_exchange_8(ptr, i64, i32 signext)
; LINUX-NEXT: declare zeroext i8 @__atomic_fetch_add_1(ptr, i8 zeroext, i32 signext)
; LINUX-NEXT: declare i128 @__atomic_fetch_add_16(ptr, i128, i32 signext)
; LINUX-NEXT: declare zeroext i16 @__atomic_fetch_add_2(ptr, i16 zeroext, i32 signext)
; LINUX-NEXT: declare zeroext i32 @__atomic_fetch_add_4(ptr, i32 zeroext, i32 signext)
; LINUX-NEXT: declare i64 @__atomic_fetch_add_8(ptr, i64, i32 signext)
; LINUX-NEXT: declare zeroext i8 @__atomic_fetch_and_1(ptr, i8 zeroext, i32 signext)
; LINUX-NEXT: declare i128 @__atomic_fetch_and_16(ptr, i128, i32 signext)
; LINUX-NEXT: declare zeroext i16 @__atomic_fetch_and_2(ptr, i16 zeroext, i32 signext)
; LINUX-NEXT: declare zeroext i32 @__atomic_fetch_and_4(ptr, i32 zeroext, i32 signext)
; LINUX-NEXT: declare i64 @__atomic_fetch_and_8(ptr, i64, i32 signext)
; LINUX-NEXT: declare zeroext i8 @__atomic_fetch_nand_1(ptr, i8 zeroext, i32 signext)
; LINUX-NEXT: declare i128 @__atomic_fetch_nand_16(ptr, i128, i32 signext)
; LINUX-NEXT: declare zeroext i16 @__atomic_fetch_nand_2(ptr, i16 zeroext, i32 signext)
; LINUX-NEXT: declare zeroext i32 @__atomic_fetch_nand_4(ptr, i32 zeroext, i32 signext)
; LINUX-NEXT: declare i64 @__atomic_fetch_nand_8(ptr, i64, i32 signext)
; LINUX-NEXT: declare zeroext i8 @__atomic_fetch_or_1(ptr, i8 zeroext, i32 signext)
; LINUX-NEXT: declare i128 @__atomic_fetch_or_16(ptr, i128, i32 signext)
; LINUX-NEXT: declare zeroext i16 @__atomic_fetch_or_2(ptr, i16 zeroext, i32 signext)
; LINUX-NEXT: declare zeroext i32 @__atomic_fetch_or_4(ptr, i32 zeroext, i32 signext)
; LINUX-NEXT: declare i64 @__atomic_fetch_or_8(ptr, i64, i32 signext)
; LINUX-NEXT: declare zeroext i8 @__atomic_fetch_sub_1(ptr, i8 zeroext, i32 signext)
; LINUX-NEXT: declare i128 @__atomic_fetch_sub_16(ptr, i128, i32 signext)
; LINUX-NEXT: declare zeroext i16 @__atomic_fetch_sub_2(ptr, i16 zeroext, i32 signext)
; LINUX-NEXT: declare zeroext i32 @__atomic_fetch_sub_4(ptr, i32 zeroext, i32 signext)
; LINUX-NEXT: declare i64 @__atomic_fetch_sub_8(ptr, i64, i32 signext)
; LINUX-NEXT: declare zeroext i8 @__atomic_fetch_xor_1(ptr, i8 zeroext, i32 signext)
; LINUX-NEXT: declare i128 @__atomic_fetch_xor_16(ptr, i128, i32 signext)
; LINUX-NEXT: declare zeroext i16 @__atomic_fetch_xor_2(ptr, i16 zeroext, i32 signext)
; LINUX-NEXT: declare zeroext i32 @__atomic_fetch_xor_4(ptr, i32 zeroext, i32 signext)
; LINUX-NEXT: declare i64 @__atomic_fetch_xor_8(ptr, i64, i32 signext)
; LINUX-NEXT: declare void @__atomic_load(i64, ptr, ptr, i32 signext)
; LINUX-NEXT: declare zeroext i8 @__atomic_load_1(ptr, i32 signext)
; LINUX-NEXT: declare i128 @__atomic_load_16(ptr, i32 signext)
; LINUX-NEXT: declare zeroext i16 @__atomic_load_2(ptr, i32 signext)
; LINUX-NEXT: declare zeroext i32 @__atomic_load_4(ptr, i32 signext)
; LINUX-NEXT: declare i64 @__atomic_load_8(ptr, i32 signext)
; LINUX-NEXT: declare void @__atomic_store(i64, ptr, ptr, i32 signext)
; LINUX-NEXT: declare void @__atomic_store_1(ptr, i8 zeroext, i32 signext)
; LINUX-NEXT: declare void @__atomic_store_16(ptr, i128, i32 signext)
; LINUX-NEXT: declare void @__atomic_store_2(ptr, i16 zeroext, i32 signext)
; LINUX-NEXT: declare void @__atomic_store_4(ptr, i32 zeroext, i32 signext)
; LINUX-NEXT: declare void @__atomic_store_8(ptr, i64, i32 signext)
; LINUX-NEXT: declare void @__clear_cache(ptr, ptr)
; LINUX-NEXT: declare signext i32 @__clzdi2(i64)
; LINUX-NEXT: declare signext i32 @__clzsi2(i32 zeroext)
; LINUX-NEXT: declare signext i32 @__clzti2(i128)
; LINUX-NEXT: declare signext i32 @__ctzdi2(i64)
; LINUX-NEXT: declare signext i32 @__ctzsi2(i32 zeroext)
; LINUX-NEXT: declare signext i32 @__ctzti2(i128)
; LINUX-NEXT: declare void @__cxa_end_cleanup()
; LINUX-NEXT: declare double @__divdf3(double, double)
; LINUX-NEXT: declare i64 @__divdi3(i64, i64)
; LINUX-NEXT: declare signext i16 @__divhi3(i16 signext, i16 signext)
; LINUX-NEXT: declare fp128 @__divkf3(fp128, fp128)
; LINUX-NEXT: declare signext i8 @__divqi3(i8 signext, i8 signext)
; LINUX-NEXT: declare float @__divsf3(float, float)
; LINUX-NEXT: declare signext i32 @__divsi3(i32 signext, i32 signext)
; LINUX-NEXT: declare i128 @__divti3(i128, i128)
; LINUX-NEXT: declare i64 @__eqdf2(double, double)
; LINUX-NEXT: declare i64 @__eqkf2(fp128, fp128)
; LINUX-NEXT: declare i64 @__eqsf2(float, float)
; LINUX-NEXT: declare double @__exp2_finite(double)
; LINUX-NEXT: declare float @__exp2f_finite(float)
; LINUX-NEXT: declare ppc_fp128 @__exp2l_finite(ppc_fp128)
; LINUX-NEXT: declare double @__exp_finite(double)
; LINUX-NEXT: declare float @__expf_finite(float)
; LINUX-NEXT: declare ppc_fp128 @__expl_finite(ppc_fp128)
; LINUX-NEXT: declare float @__extendbfsf2(bfloat)
; LINUX-NEXT: declare fp128 @__extenddfkf2(double)
; LINUX-NEXT: declare double @__extendhfdf2(half)
; LINUX-NEXT: declare float @__extendhfsf2(half)
; LINUX-NEXT: declare ppc_fp128 @__extendkftf2(fp128)
; LINUX-NEXT: declare double @__extendsfdf2(float)
; LINUX-NEXT: declare fp128 @__extendsfkf2(float)
; LINUX-NEXT: declare i64 @__fixdfdi(double)
; LINUX-NEXT: declare signext i32 @__fixdfsi(double)
; LINUX-NEXT: declare i128 @__fixdfti(double)
; LINUX-NEXT: declare i64 @__fixhfdi(half)
; LINUX-NEXT: declare signext i32 @__fixhfsi(half)
; LINUX-NEXT: declare i128 @__fixhfti(half)
; LINUX-NEXT: declare i64 @__fixkfdi(fp128)
; LINUX-NEXT: declare signext i32 @__fixkfsi(fp128)
; LINUX-NEXT: declare i128 @__fixkfti(fp128)
; LINUX-NEXT: declare i64 @__fixsfdi(float)
; LINUX-NEXT: declare signext i32 @__fixsfsi(float)
; LINUX-NEXT: declare i128 @__fixsfti(float)
; LINUX-NEXT: declare i64 @__fixtfdi(ppc_fp128)
; LINUX-NEXT: declare i128 @__fixtfti(ppc_fp128)
; LINUX-NEXT: declare i64 @__fixunsdfdi(double)
; LINUX-NEXT: declare zeroext i32 @__fixunsdfsi(double)
; LINUX-NEXT: declare i128 @__fixunsdfti(double)
; LINUX-NEXT: declare i64 @__fixunshfdi(half)
; LINUX-NEXT: declare zeroext i32 @__fixunshfsi(half)
; LINUX-NEXT: declare i128 @__fixunshfti(half)
; LINUX-NEXT: declare i64 @__fixunskfdi(fp128)
; LINUX-NEXT: declare zeroext i32 @__fixunskfsi(fp128)
; LINUX-NEXT: declare i128 @__fixunskfti(fp128)
; LINUX-NEXT: declare i64 @__fixunssfdi(float)
; LINUX-NEXT: declare zeroext i32 @__fixunssfsi(float)
; LINUX-NEXT: declare i128 @__fixunssfti(float)
; LINUX-NEXT: declare i64 @__fixunstfdi(ppc_fp128)
; LINUX-NEXT: declare zeroext i32 @__fixunstfsi(ppc_fp128)
; LINUX-NEXT: declare i128 @__fixunstfti(ppc_fp128)
; LINUX-NEXT: declare bfloat @__floatdibf(i64)
; LINUX-NEXT: declare double @__floatdidf(i64)
; LINUX-NEXT: declare half @__floatdihf(i64)
; LINUX-NEXT: declare fp128 @__floatdikf(i64)
; LINUX-NEXT: declare float @__floatdisf(i64)
; LINUX-NEXT: declare ppc_fp128 @__floatditf(i64)
; LINUX-NEXT: declare double @__floatsidf(i32 signext)
; LINUX-NEXT: declare half @__floatsihf(i32 signext)
; LINUX-NEXT: declare fp128 @__floatsikf(i32 signext)
; LINUX-NEXT: declare float @__floatsisf(i32 signext)
; LINUX-NEXT: declare double @__floattidf(i128)
; LINUX-NEXT: declare half @__floattihf(i128)
; LINUX-NEXT: declare fp128 @__floattikf(i128)
; LINUX-NEXT: declare float @__floattisf(i128)
; LINUX-NEXT: declare ppc_fp128 @__floattitf(i128)
; LINUX-NEXT: declare bfloat @__floatundibf(i64)
; LINUX-NEXT: declare double @__floatundidf(i64)
; LINUX-NEXT: declare half @__floatundihf(i64)
; LINUX-NEXT: declare fp128 @__floatundikf(i64)
; LINUX-NEXT: declare float @__floatundisf(i64)
; LINUX-NEXT: declare ppc_fp128 @__floatunditf(i64)
; LINUX-NEXT: declare double @__floatunsidf(i32 zeroext)
; LINUX-NEXT: declare half @__floatunsihf(i32 zeroext)
; LINUX-NEXT: declare fp128 @__floatunsikf(i32 zeroext)
; LINUX-NEXT: declare float @__floatunsisf(i32 zeroext)
; LINUX-NEXT: declare double @__floatuntidf(i128)
; LINUX-NEXT: declare half @__floatuntihf(i128)
; LINUX-NEXT: declare fp128 @__floatuntikf(i128)
; LINUX-NEXT: declare float @__floatuntisf(i128)
; LINUX-NEXT: declare ppc_fp128 @__floatuntitf(i128)
; LINUX-NEXT: declare ppc_fp128 @__gcc_dtoq(double)
; LINUX-NEXT: declare ppc_fp128 @__gcc_itoq(i32 signext)
; LINUX-NEXT: declare ppc_fp128 @__gcc_qadd(ppc_fp128, ppc_fp128)
; LINUX-NEXT: declare ppc_fp128 @__gcc_qdiv(ppc_fp128, ppc_fp128)
; LINUX-NEXT: declare signext i32 @__gcc_qeq(ppc_fp128, ppc_fp128)
; LINUX-NEXT: declare signext i32 @__gcc_qge(ppc_fp128, ppc_fp128)
; LINUX-NEXT: declare signext i32 @__gcc_qgt(ppc_fp128, ppc_fp128)
; LINUX-NEXT: declare signext i32 @__gcc_qle(ppc_fp128, ppc_fp128)
; LINUX-NEXT: declare signext i32 @__gcc_qlt(ppc_fp128, ppc_fp128)
; LINUX-NEXT: declare ppc_fp128 @__gcc_qmul(ppc_fp128, ppc_fp128)
; LINUX-NEXT: declare signext i32 @__gcc_qne(ppc_fp128, ppc_fp128)
; LINUX-NEXT: declare ppc_fp128 @__gcc_qsub(ppc_fp128, ppc_fp128)
; LINUX-NEXT: declare double @__gcc_qtod(ppc_fp128)
; LINUX-NEXT: declare float @__gcc_qtos(ppc_fp128)
; LINUX-NEXT: declare signext i32 @__gcc_qtou(ppc_fp128)
; LINUX-NEXT: declare signext i32 @__gcc_qunord(ppc_fp128, ppc_fp128)
; LINUX-NEXT: declare ppc_fp128 @__gcc_stoq(float)
; LINUX-NEXT: declare ppc_fp128 @__gcc_utoq(i32 zeroext)
; LINUX-NEXT: declare i64 @__gedf2(double, double)
; LINUX-NEXT: declare i64 @__gekf2(fp128, fp128)
; LINUX-NEXT: declare i64 @__gesf2(float, float)
; LINUX-NEXT: declare i64 @__gtdf2(double, double)
; LINUX-NEXT: declare i64 @__gtkf2(fp128, fp128)
; LINUX-NEXT: declare i64 @__gtsf2(float, float)
; LINUX-NEXT: declare i64 @__ledf2(double, double)
; LINUX-NEXT: declare i64 @__lekf2(fp128, fp128)
; LINUX-NEXT: declare i64 @__lesf2(float, float)
; LINUX-NEXT: declare void @__llvm_deoptimize(...)
; LINUX-NEXT: declare void @__llvm_memcpy_element_unordered_atomic_1(ptr, ptr, i64)
; LINUX-NEXT: declare void @__llvm_memcpy_element_unordered_atomic_16(ptr, ptr, i64)
; LINUX-NEXT: declare void @__llvm_memcpy_element_unordered_atomic_2(ptr, ptr, i64)
; LINUX-NEXT: declare void @__llvm_memcpy_element_unordered_atomic_4(ptr, ptr, i64)
; LINUX-NEXT: declare void @__llvm_memcpy_element_unordered_atomic_8(ptr, ptr, i64)
; LINUX-NEXT: declare void @__llvm_memmove_element_unordered_atomic_1(ptr, ptr, i64)
; LINUX-NEXT: declare void @__llvm_memmove_element_unordered_atomic_16(ptr, ptr, i64)
; LINUX-NEXT: declare void @__llvm_memmove_element_unordered_atomic_2(ptr, ptr, i64)
; LINUX-NEXT: declare void @__llvm_memmove_element_unordered_atomic_4(ptr, ptr, i64)
; LINUX-NEXT: declare void @__llvm_memmove_element_unordered_atomic_8(ptr, ptr, i64)
; LINUX-NEXT: declare void @__llvm_memset_element_unordered_atomic_1(ptr, i32 signext, i64)
; LINUX-NEXT: declare void @__llvm_memset_element_unordered_atomic_16(ptr, i32 signext, i64)
; LINUX-NEXT: declare void @__llvm_memset_element_unordered_atomic_2(ptr, i32 signext, i64)
; LINUX-NEXT: declare void @__llvm_memset_element_unordered_atomic_4(ptr, i32 signext, i64)
; LINUX-NEXT: declare void @__llvm_memset_element_unordered_atomic_8(ptr, i32 signext, i64)
; LINUX-NEXT: declare double @__log10_finite(double)
; LINUX-NEXT: declare float @__log10f_finite(float)
; LINUX-NEXT: declare ppc_fp128 @__log10l_finite(ppc_fp128)
; LINUX-NEXT: declare double @__log2_finite(double)
; LINUX-NEXT: declare float @__log2f_finite(float)
; LINUX-NEXT: declare ppc_fp128 @__log2l_finite(ppc_fp128)
; LINUX-NEXT: declare double @__log_finite(double)
; LINUX-NEXT: declare float @__logf_finite(float)
; LINUX-NEXT: declare ppc_fp128 @__logl_finite(ppc_fp128)
; LINUX-NEXT: declare i64 @__lshrdi3(i64, i32 signext)
; LINUX-NEXT: declare signext i16 @__lshrhi3(i16 signext, i32 signext)
; LINUX-NEXT: declare signext i32 @__lshrsi3(i32 signext, i32 signext)
; LINUX-NEXT: declare i128 @__lshrti3(i128, i32 signext)
; LINUX-NEXT: declare i64 @__ltdf2(double, double)
; LINUX-NEXT: declare i64 @__ltkf2(fp128, fp128)
; LINUX-NEXT: declare i64 @__ltsf2(float, float)
; LINUX-NEXT: declare ptr @__memcpy_chk(ptr, ptr, i64, i64)
; LINUX-NEXT: declare ptr @__memmove_chk(ptr, ptr, i64, i64)
; LINUX-NEXT: declare ptr @__memset_chk(ptr, i32 signext, i64, i64)
; LINUX-NEXT: declare i64 @__moddi3(i64, i64)
; LINUX-NEXT: declare signext i16 @__modhi3(i16 signext, i16 signext)
; LINUX-NEXT: declare signext i8 @__modqi3(i8 signext, i8 signext)
; LINUX-NEXT: declare signext i32 @__modsi3(i32 signext, i32 signext)
; LINUX-NEXT: declare i128 @__modti3(i128, i128)
; LINUX-NEXT: declare double @__muldf3(double, double)
; LINUX-NEXT: declare i64 @__muldi3(i64, i64)
; LINUX-NEXT: declare signext i16 @__mulhi3(i16 signext, i16 signext)
; LINUX-NEXT: declare fp128 @__mulkf3(fp128, fp128)
; LINUX-NEXT: declare signext i32 @__mulosi4(i32 signext, i32 signext, ptr)
; LINUX-NEXT: declare signext i8 @__mulqi3(i8 signext, i8 signext)
; LINUX-NEXT: declare float @__mulsf3(float, float)
; LINUX-NEXT: declare signext i32 @__mulsi3(i32 signext, i32 signext)
; LINUX-NEXT: declare i128 @__multi3(i128, i128)
; LINUX-NEXT: declare i64 @__nedf2(double, double)
; LINUX-NEXT: declare i64 @__negdi2(i64)
; LINUX-NEXT: declare signext i32 @__negsi2(i32 signext)
; LINUX-NEXT: declare i64 @__nekf2(fp128, fp128)
; LINUX-NEXT: declare i64 @__nesf2(float, float)
; LINUX-NEXT: declare signext i32 @__popcountdi2(i64)
; LINUX-NEXT: declare signext i32 @__popcountsi2(i32 zeroext)
; LINUX-NEXT: declare signext i32 @__popcountti2(i128)
; LINUX-NEXT: declare double @__pow_finite(double, double)
; LINUX-NEXT: declare float @__powf_finite(float, float)
; LINUX-NEXT: declare double @__powidf2(double, i32 signext)
; LINUX-NEXT: declare fp128 @__powikf2(fp128, i32 signext)
; LINUX-NEXT: declare float @__powisf2(float, i32 signext)
; LINUX-NEXT: declare ppc_fp128 @__powitf2(ppc_fp128, i32 signext)
; LINUX-NEXT: declare ppc_fp128 @__powl_finite(ppc_fp128, ppc_fp128)
; LINUX-NEXT: declare void @__stack_chk_fail()
; LINUX-NEXT: declare double @__subdf3(double, double)
; LINUX-NEXT: declare fp128 @__subkf3(fp128, fp128)
; LINUX-NEXT: declare float @__subsf3(float, float)
; LINUX-NEXT: declare zeroext i8 @__sync_fetch_and_add_1(ptr, i8 zeroext)
; LINUX-NEXT: declare i128 @__sync_fetch_and_add_16(ptr, i128)
; LINUX-NEXT: declare zeroext i16 @__sync_fetch_and_add_2(ptr, i16 zeroext)
; LINUX-NEXT: declare zeroext i32 @__sync_fetch_and_add_4(ptr, i32 zeroext)
; LINUX-NEXT: declare i64 @__sync_fetch_and_add_8(ptr, i64)
; LINUX-NEXT: declare zeroext i8 @__sync_fetch_and_and_1(ptr, i8 zeroext)
; LINUX-NEXT: declare i128 @__sync_fetch_and_and_16(ptr, i128)
; LINUX-NEXT: declare zeroext i16 @__sync_fetch_and_and_2(ptr, i16 zeroext)
; LINUX-NEXT: declare zeroext i32 @__sync_fetch_and_and_4(ptr, i32 zeroext)
; LINUX-NEXT: declare i64 @__sync_fetch_and_and_8(ptr, i64)
; LINUX-NEXT: declare zeroext i8 @__sync_fetch_and_max_1(ptr, i8 zeroext)
; LINUX-NEXT: declare i128 @__sync_fetch_and_max_16(ptr, i128)
; LINUX-NEXT: declare zeroext i16 @__sync_fetch_and_max_2(ptr, i16 zeroext)
; LINUX-NEXT: declare zeroext i32 @__sync_fetch_and_max_4(ptr, i32 zeroext)
; LINUX-NEXT: declare i64 @__sync_fetch_and_max_8(ptr, i64)
; LINUX-NEXT: declare zeroext i8 @__sync_fetch_and_min_1(ptr, i8 zeroext)
; LINUX-NEXT: declare i128 @__sync_fetch_and_min_16(ptr, i128)
; LINUX-NEXT: declare zeroext i16 @__sync_fetch_and_min_2(ptr, i16 zeroext)
; LINUX-NEXT: declare zeroext i32 @__sync_fetch_and_min_4(ptr, i32 zeroext)
; LINUX-NEXT: declare i64 @__sync_fetch_and_min_8(ptr, i64)
; LINUX-NEXT: declare zeroext i8 @__sync_fetch_and_nand_1(ptr, i8 zeroext)
; LINUX-NEXT: declare i128 @__sync_fetch_and_nand_16(ptr, i128)
; LINUX-NEXT: declare zeroext i16 @__sync_fetch_and_nand_2(ptr, i16 zeroext)
; LINUX-NEXT: declare zeroext i32 @__sync_fetch_and_nand_4(ptr, i32 zeroext)
; LINUX-NEXT: declare i64 @__sync_fetch_and_nand_8(ptr, i64)
; LINUX-NEXT: declare zeroext i8 @__sync_fetch_and_or_1(ptr, i8 zeroext)
; LINUX-NEXT: declare i128 @__sync_fetch_and_or_16(ptr, i128)
; LINUX-NEXT: declare zeroext i16 @__sync_fetch_and_or_2(ptr, i16 zeroext)
; LINUX-NEXT: declare zeroext i32 @__sync_fetch_and_or_4(ptr, i32 zeroext)
; LINUX-NEXT: declare i64 @__sync_fetch_and_or_8(ptr, i64)
; LINUX-NEXT: declare zeroext i8 @__sync_fetch_and_sub_1(ptr, i8 zeroext)
; LINUX-NEXT: declare i128 @__sync_fetch_and_sub_16(ptr, i128)
; LINUX-NEXT: declare zeroext i16 @__sync_fetch_and_sub_2(ptr, i16 zeroext)
; LINUX-NEXT: declare zeroext i32 @__sync_fetch_and_sub_4(ptr, i32 zeroext)
; LINUX-NEXT: declare i64 @__sync_fetch_and_sub_8(ptr, i64)
; LINUX-NEXT: declare zeroext i8 @__sync_fetch_and_umax_1(ptr, i8 zeroext)
; LINUX-NEXT: declare i128 @__sync_fetch_and_umax_16(ptr, i128)
; LINUX-NEXT: declare zeroext i16 @__sync_fetch_and_umax_2(ptr, i16 zeroext)
; LINUX-NEXT: declare zeroext i32 @__sync_fetch_and_umax_4(ptr, i32 zeroext)
; LINUX-NEXT: declare i64 @__sync_fetch_and_umax_8(ptr, i64)
; LINUX-NEXT: declare zeroext i8 @__sync_fetch_and_umin_1(ptr, i8 zeroext)
; LINUX-NEXT: declare i128 @__sync_fetch_and_umin_16(ptr, i128)
; LINUX-NEXT: declare zeroext i16 @__sync_fetch_and_umin_2(ptr, i16 zeroext)
; LINUX-NEXT: declare zeroext i32 @__sync_fetch_and_umin_4(ptr, i32 zeroext)
; LINUX-NEXT: declare i64 @__sync_fetch_and_umin_8(ptr, i64)
; LINUX-NEXT: declare zeroext i8 @__sync_fetch_and_xor_1(ptr, i8 zeroext)
; LINUX-NEXT: declare i128 @__sync_fetch_and_xor_16(ptr, i128)
; LINUX-NEXT: declare zeroext i16 @__sync_fetch_and_xor_2(ptr, i16 zeroext)
; LINUX-NEXT: declare zeroext i32 @__sync_fetch_and_xor_4(ptr, i32 zeroext)
; LINUX-NEXT: declare i64 @__sync_fetch_and_xor_8(ptr, i64)
; LINUX-NEXT: declare zeroext i8 @__sync_lock_test_and_set_1(ptr, i8 zeroext)
; LINUX-NEXT: declare i128 @__sync_lock_test_and_set_16(ptr, i128)
; LINUX-NEXT: declare zeroext i16 @__sync_lock_test_and_set_2(ptr, i16 zeroext)
; LINUX-NEXT: declare zeroext i32 @__sync_lock_test_and_set_4(ptr, i32 zeroext)
; LINUX-NEXT: declare i64 @__sync_lock_test_and_set_8(ptr, i64)
; LINUX-NEXT: declare zeroext i8 @__sync_val_compare_and_swap_1(ptr, i8 zeroext, i8 zeroext)
; LINUX-NEXT: declare i128 @__sync_val_compare_and_swap_16(ptr, i128, i128)
; LINUX-NEXT: declare zeroext i16 @__sync_val_compare_and_swap_2(ptr, i16 zeroext, i16 zeroext)
; LINUX-NEXT: declare zeroext i32 @__sync_val_compare_and_swap_4(ptr, i32 zeroext, i32 zeroext)
; LINUX-NEXT: declare i64 @__sync_val_compare_and_swap_8(ptr, i64, i64)
; LINUX-NEXT: declare bfloat @__truncdfbf2(double)
; LINUX-NEXT: declare half @__truncdfhf2(double)
; LINUX-NEXT: declare float @__truncdfsf2(double)
; LINUX-NEXT: declare double @__trunckfdf2(fp128)
; LINUX-NEXT: declare half @__trunckfhf2(fp128)
; LINUX-NEXT: declare float @__trunckfsf2(fp128)
; LINUX-NEXT: declare bfloat @__truncsfbf2(float)
; LINUX-NEXT: declare half @__truncsfhf2(float)
; LINUX-NEXT: declare half @__trunctfhf2(ppc_fp128)
; LINUX-NEXT: declare fp128 @__trunctfkf2(ppc_fp128)
; LINUX-NEXT: declare i64 @__udivdi3(i64, i64)
; LINUX-NEXT: declare zeroext i16 @__udivhi3(i16 zeroext, i16 zeroext)
; LINUX-NEXT: declare zeroext i8 @__udivqi3(i8 zeroext, i8 zeroext)
; LINUX-NEXT: declare zeroext i32 @__udivsi3(i32 zeroext, i32 zeroext)
; LINUX-NEXT: declare i128 @__udivti3(i128, i128)
; LINUX-NEXT: declare i64 @__umoddi3(i64, i64)
; LINUX-NEXT: declare zeroext i16 @__umodhi3(i16 zeroext, i16 zeroext)
; LINUX-NEXT: declare zeroext i8 @__umodqi3(i8 zeroext, i8 zeroext)
; LINUX-NEXT: declare zeroext i32 @__umodsi3(i32 zeroext, i32 zeroext)
; LINUX-NEXT: declare i128 @__umodti3(i128, i128)
; LINUX-NEXT: declare i64 @__unorddf2(double, double)
; LINUX-NEXT: declare i64 @__unordkf2(fp128, fp128)
; LINUX-NEXT: declare i64 @__unordsf2(float, float)
; LINUX-NEXT: declare double @acos(double)
; LINUX-NEXT: declare float @acosf(float)
; LINUX-NEXT: declare fp128 @acosf128(fp128)
; LINUX-NEXT: declare ppc_fp128 @acosl(ppc_fp128)
; LINUX-NEXT: declare double @asin(double)
; LINUX-NEXT: declare float @asinf(float)
; LINUX-NEXT: declare fp128 @asinf128(fp128)
; LINUX-NEXT: declare ppc_fp128 @asinl(ppc_fp128)
; LINUX-NEXT: declare double @atan(double)
; LINUX-NEXT: declare double @atan2(double, double)
; LINUX-NEXT: declare float @atan2f(float, float)
; LINUX-NEXT: declare fp128 @atan2f128(fp128, fp128)
; LINUX-NEXT: declare ppc_fp128 @atan2l(ppc_fp128, ppc_fp128)
; LINUX-NEXT: declare float @atanf(float)
; LINUX-NEXT: declare fp128 @atanf128(fp128)
; LINUX-NEXT: declare ppc_fp128 @atanl(ppc_fp128)
; LINUX-NEXT: declare void @cabs(...)
; LINUX-NEXT: declare void @cabsf(...)
; LINUX-NEXT: declare void @cabsl(...)
; LINUX-NEXT: declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) [[CALLOC_ATTRS:#[0-9]+]]
; LINUX-NEXT: declare double @cbrt(double)
; LINUX-NEXT: declare float @cbrtf(float)
; LINUX-NEXT: declare fp128 @cbrtf128(fp128)
; LINUX-NEXT: declare ppc_fp128 @cbrtl(ppc_fp128)
; LINUX-NEXT: declare double @ceil(double)
; LINUX-NEXT: declare float @ceilf(float)
; LINUX-NEXT: declare fp128 @ceilf128(fp128)
; LINUX-NEXT: declare ppc_fp128 @ceill(ppc_fp128)
; LINUX-NEXT: declare double @copysign(double, double)
; LINUX-NEXT: declare float @copysignf(float, float)
; LINUX-NEXT: declare fp128 @copysignf128(fp128, fp128)
; LINUX-NEXT: declare ppc_fp128 @copysignl(ppc_fp128, ppc_fp128)
; LINUX-NEXT: declare double @cos(double)
; LINUX-NEXT: declare float @cosf(float)
; LINUX-NEXT: declare fp128 @cosf128(fp128)
; LINUX-NEXT: declare double @cosh(double)
; LINUX-NEXT: declare float @coshf(float)
; LINUX-NEXT: declare fp128 @coshf128(fp128)
; LINUX-NEXT: declare ppc_fp128 @coshl(ppc_fp128)
; LINUX-NEXT: declare ppc_fp128 @cosl(ppc_fp128)
; LINUX-NEXT: declare double @exp(double)
; LINUX-NEXT: declare double @exp10(double)
; LINUX-NEXT: declare float @exp10f(float)
; LINUX-NEXT: declare fp128 @exp10f128(fp128)
; LINUX-NEXT: declare ppc_fp128 @exp10l(ppc_fp128)
; LINUX-NEXT: declare double @exp2(double)
; LINUX-NEXT: declare float @exp2f(float)
; LINUX-NEXT: declare fp128 @exp2f128(fp128)
; LINUX-NEXT: declare ppc_fp128 @exp2l(ppc_fp128)
; LINUX-NEXT: declare float @expf(float)
; LINUX-NEXT: declare fp128 @expf128(fp128)
; LINUX-NEXT: declare ppc_fp128 @expl(ppc_fp128)
; LINUX-NEXT: declare double @fdim(double, double)
; LINUX-NEXT: declare float @fdimf(float, float)
; LINUX-NEXT: declare ppc_fp128 @fdiml(ppc_fp128, ppc_fp128)
; LINUX-NEXT: declare signext i32 @fegetenv(ptr)
; LINUX-NEXT: declare signext i32 @fegetmode(ptr)
; LINUX-NEXT: declare signext i32 @fesetenv(ptr)
; LINUX-NEXT: declare signext i32 @fesetmode(ptr)
; LINUX-NEXT: declare double @floor(double)
; LINUX-NEXT: declare float @floorf(float)
; LINUX-NEXT: declare fp128 @floorf128(fp128)
; LINUX-NEXT: declare ppc_fp128 @floorl(ppc_fp128)
; LINUX-NEXT: declare double @fma(double, double, double)
; LINUX-NEXT: declare float @fmaf(float, float, float)
; LINUX-NEXT: declare fp128 @fmaf128(fp128, fp128, fp128)
; LINUX-NEXT: declare ppc_fp128 @fmal(ppc_fp128, ppc_fp128, ppc_fp128)
; LINUX-NEXT: declare double @fmax(double, double)
; LINUX-NEXT: declare float @fmaxf(float, float)
; LINUX-NEXT: declare fp128 @fmaxf128(fp128, fp128)
; LINUX-NEXT: declare double @fmaximum(double, double)
; LINUX-NEXT: declare double @fmaximum_num(double, double)
; LINUX-NEXT: declare float @fmaximum_numf(float, float)
; LINUX-NEXT: declare fp128 @fmaximum_numf128(fp128, fp128)
; LINUX-NEXT: declare ppc_fp128 @fmaximum_numl(ppc_fp128, ppc_fp128)
; LINUX-NEXT: declare float @fmaximumf(float, float)
; LINUX-NEXT: declare fp128 @fmaximumf128(fp128, fp128)
; LINUX-NEXT: declare ppc_fp128 @fmaximuml(ppc_fp128, ppc_fp128)
; LINUX-NEXT: declare ppc_fp128 @fmaxl(ppc_fp128, ppc_fp128)
; LINUX-NEXT: declare double @fmin(double, double)
; LINUX-NEXT: declare float @fminf(float, float)
; LINUX-NEXT: declare fp128 @fminf128(fp128, fp128)
; LINUX-NEXT: declare double @fminimum(double, double)
; LINUX-NEXT: declare double @fminimum_num(double, double)
; LINUX-NEXT: declare float @fminimum_numf(float, float)
; LINUX-NEXT: declare fp128 @fminimum_numf128(fp128, fp128)
; LINUX-NEXT: declare ppc_fp128 @fminimum_numl(ppc_fp128, ppc_fp128)
; LINUX-NEXT: declare float @fminimumf(float, float)
; LINUX-NEXT: declare fp128 @fminimumf128(fp128, fp128)
; LINUX-NEXT: declare ppc_fp128 @fminimuml(ppc_fp128, ppc_fp128)
; LINUX-NEXT: declare ppc_fp128 @fminl(ppc_fp128, ppc_fp128)
; LINUX-NEXT: declare double @fmod(double, double)
; LINUX-NEXT: declare float @fmodf(float, float)
; LINUX-NEXT: declare fp128 @fmodf128(fp128, fp128)
; LINUX-NEXT: declare ppc_fp128 @fmodl(ppc_fp128, ppc_fp128)
; LINUX-NEXT: declare void @free(ptr allocptr noundef captures(none)) [[FREE_ATTRS:#[0-9]+]]
; LINUX-NEXT: declare double @frexp(double, ptr)
; LINUX-NEXT: declare float @frexpf(float, ptr)
; LINUX-NEXT: declare fp128 @frexpf128(fp128, ptr)
; LINUX-NEXT: declare ppc_fp128 @frexpl(ppc_fp128, ptr)
; LINUX-NEXT: declare double @ldexp(double, i32 signext)
; LINUX-NEXT: declare float @ldexpf(float, i32 signext)
; LINUX-NEXT: declare fp128 @ldexpf128(fp128, i32 signext)
; LINUX-NEXT: declare ppc_fp128 @ldexpl(ppc_fp128, i32 signext)
; LINUX-NEXT: declare i64 @llrint(double)
; LINUX-NEXT: declare i64 @llrintf(float)
; LINUX-NEXT: declare i64 @llrintf128(fp128)
; LINUX-NEXT: declare i64 @llrintl(ppc_fp128)
; LINUX-NEXT: declare i64 @llround(double)
; LINUX-NEXT: declare i64 @llroundf(float)
; LINUX-NEXT: declare i64 @llroundf128(fp128)
; LINUX-NEXT: declare i64 @llroundl(ppc_fp128)
; LINUX-NEXT: declare double @log(double)
; LINUX-NEXT: declare double @log10(double)
; LINUX-NEXT: declare float @log10f(float)
; LINUX-NEXT: declare fp128 @log10f128(fp128)
; LINUX-NEXT: declare ppc_fp128 @log10l(ppc_fp128)
; LINUX-NEXT: declare double @log2(double)
; LINUX-NEXT: declare float @log2f(float)
; LINUX-NEXT: declare fp128 @log2f128(fp128)
; LINUX-NEXT: declare ppc_fp128 @log2l(ppc_fp128)
; LINUX-NEXT: declare float @logf(float)
; LINUX-NEXT: declare fp128 @logf128(fp128)
; LINUX-NEXT: declare ppc_fp128 @logl(ppc_fp128)
; LINUX-NEXT: declare i64 @lrint(double)
; LINUX-NEXT: declare i64 @lrintf(float)
; LINUX-NEXT: declare i64 @lrintf128(fp128)
; LINUX-NEXT: declare i64 @lrintl(ppc_fp128)
; LINUX-NEXT: declare i64 @lround(double)
; LINUX-NEXT: declare i64 @lroundf(float)
; LINUX-NEXT: declare i64 @lroundf128(fp128)
; LINUX-NEXT: declare i64 @lroundl(ppc_fp128)
; LINUX-NEXT: declare noalias noundef ptr @malloc(i64 noundef) [[MALLOC_ATTRS:#[0-9]+]]
; LINUX-NEXT: declare ptr @memcpy(ptr, ptr, i64)
; LINUX-NEXT: declare ptr @memmove(ptr, ptr, i64)
; LINUX-NEXT: declare ptr @memset(ptr, i32 signext, i64)
; LINUX-NEXT: declare double @modf(double, ptr)
; LINUX-NEXT: declare float @modff(float, ptr)
; LINUX-NEXT: declare fp128 @modff128(fp128, ptr)
; LINUX-NEXT: declare ppc_fp128 @modfl(ppc_fp128, ptr)
; LINUX-NEXT: declare double @nan(ptr)
; LINUX-NEXT: declare float @nanf(ptr)
; LINUX-NEXT: declare ppc_fp128 @nanl(ptr)
; LINUX-NEXT: declare double @nearbyint(double)
; LINUX-NEXT: declare float @nearbyintf(float)
; LINUX-NEXT: declare fp128 @nearbyintf128(fp128)
; LINUX-NEXT: declare ppc_fp128 @nearbyintl(ppc_fp128)
; LINUX-NEXT: declare double @nexttoward(double, ppc_fp128)
; LINUX-NEXT: declare float @nexttowardf(float, ppc_fp128)
; LINUX-NEXT: declare ppc_fp128 @nexttowardl(ppc_fp128, ppc_fp128)
; LINUX-NEXT: declare double @pow(double, double)
; LINUX-NEXT: declare float @powf(float, float)
; LINUX-NEXT: declare fp128 @powf128(fp128, fp128)
; LINUX-NEXT: declare ppc_fp128 @powl(ppc_fp128, ppc_fp128)
; LINUX-NEXT: declare double @remainder(double, double)
; LINUX-NEXT: declare float @remainderf(float, float)
; LINUX-NEXT: declare ppc_fp128 @remainderl(ppc_fp128, ppc_fp128)
; LINUX-NEXT: declare double @remquo(double, double, ptr)
; LINUX-NEXT: declare float @remquof(float, float, ptr)
; LINUX-NEXT: declare ppc_fp128 @remquol(ppc_fp128, ppc_fp128, ptr)
; LINUX-NEXT: declare double @rint(double)
; LINUX-NEXT: declare float @rintf(float)
; LINUX-NEXT: declare fp128 @rintf128(fp128)
; LINUX-NEXT: declare ppc_fp128 @rintl(ppc_fp128)
; LINUX-NEXT: declare double @round(double)
; LINUX-NEXT: declare double @roundeven(double)
; LINUX-NEXT: declare float @roundevenf(float)
; LINUX-NEXT: declare fp128 @roundevenf128(fp128)
; LINUX-NEXT: declare ppc_fp128 @roundevenl(ppc_fp128)
; LINUX-NEXT: declare float @roundf(float)
; LINUX-NEXT: declare fp128 @roundf128(fp128)
; LINUX-NEXT: declare ppc_fp128 @roundl(ppc_fp128)
; LINUX-NEXT: declare double @scalbln(double, i64)
; LINUX-NEXT: declare float @scalblnf(float, i64)
; LINUX-NEXT: declare ppc_fp128 @scalblnl(ppc_fp128, i64)
; LINUX-NEXT: declare double @scalbn(double, i32 signext)
; LINUX-NEXT: declare float @scalbnf(float, i32 signext)
; LINUX-NEXT: declare ppc_fp128 @scalbnl(ppc_fp128, i32 signext)
; LINUX-NEXT: declare double @sin(double)
; LINUX-NEXT: declare void @sincos(double, ptr, ptr)
; LINUX-NEXT: declare void @sincosf(float, ptr, ptr)
; LINUX-NEXT: declare void @sincosf128(fp128, ptr, ptr)
; LINUX-NEXT: declare void @sincosl(ppc_fp128, ptr, ptr)
; LINUX-NEXT: declare float @sinf(float)
; LINUX-NEXT: declare fp128 @sinf128(fp128)
; LINUX-NEXT: declare double @sinh(double)
; LINUX-NEXT: declare float @sinhf(float)
; LINUX-NEXT: declare fp128 @sinhf128(fp128)
; LINUX-NEXT: declare ppc_fp128 @sinhl(ppc_fp128)
; LINUX-NEXT: declare ppc_fp128 @sinl(ppc_fp128)
; LINUX-NEXT: declare nofpclass(ninf nsub nnorm) double @sqrt(double) [[SQRT_ATTRS:#[0-9]+]]
; LINUX-NEXT: declare nofpclass(ninf nsub nnorm) float @sqrtf(float) [[SQRT_ATTRS:#[0-9]+]]
; LINUX-NEXT: declare fp128 @sqrtf128(fp128)
; LINUX-NEXT: declare ppc_fp128 @sqrtl(ppc_fp128)
; LINUX-NEXT: declare double @tan(double)
; LINUX-NEXT: declare float @tanf(float)
; LINUX-NEXT: declare fp128 @tanf128(fp128)
; LINUX-NEXT: declare double @tanh(double)
; LINUX-NEXT: declare float @tanhf(float)
; LINUX-NEXT: declare fp128 @tanhf128(fp128)
; LINUX-NEXT: declare ppc_fp128 @tanhl(ppc_fp128)
; LINUX-NEXT: declare ppc_fp128 @tanl(ppc_fp128)
; LINUX-NEXT: declare double @tgamma(double)
; LINUX-NEXT: declare float @tgammaf(float)
; LINUX-NEXT: declare ppc_fp128 @tgammal(ppc_fp128)
; LINUX-NEXT: declare double @trunc(double)
; LINUX-NEXT: declare float @truncf(float)
; LINUX-NEXT: declare fp128 @truncf128(fp128)
; LINUX-NEXT: declare ppc_fp128 @truncl(ppc_fp128)
; LINUX-NEXT: attributes [[CALLOC_ATTRS]] = { nofree nounwind willreturn allockind("alloc") allocsize(0,1) "alloc-family"="malloc" }
; LINUX-NEXT: attributes [[FREE_ATTRS]] = { nounwind willreturn allockind("free") "alloc-family"="malloc" }
; LINUX-NEXT: attributes [[MALLOC_ATTRS]] = { nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) "alloc-family"="malloc" }
; LINUX-NEXT: attributes [[SQRT_ATTRS]] = { nocallback nofree nosync nounwind willreturn memory(errnomem: write) }