<commit_before>; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt < %s -constprop -S | FileCheck %s

; Test to verify constant folding can occur when math routines are mapped
; to the __<func>_finite versions of functions due to __FINITE_MATH_ONLY__
; being enabled on headers on Linux. All calls should constant fold away
; in this test.

target triple = "unknown-unknown-linux-gnu"

declare double @__acos_finite(double) #0
declare float @__acosf_finite(float) #0
declare double @__asin_finite(double) #0
declare float @__asinf_finite(float) #0
declare double @__atan2_finite(double, double) #0
declare float @__atan2f_finite(float, float) #0
declare double @__cosh_finite(double) #0
declare float @__coshf_finite(float) #0
declare double @__exp2_finite(double) #0
declare float @__exp2f_finite(float) #0
declare double @__exp_finite(double) #0
declare float @__expf_finite(float) #0
declare double @__log10_finite(double) #0
declare float @__log10f_finite(float) #0
declare double @__log_finite(double) #0
declare float @__logf_finite(float) #0
declare double @__pow_finite(double, double) #0
declare float @__powf_finite(float, float) #0
declare double @__sinh_finite(double) #0
declare float @__sinhf_finite(float) #0

attributes #0 = { nounwind readnone }

define void @T() {
; CHECK-LABEL: @T(
; CHECK-NEXT:    [[SLOT:%.*]] = alloca double
; CHECK-NEXT:    [[SLOTF:%.*]] = alloca float
; CHECK-NEXT:    store double 0.000000e+00, double* [[SLOT]]
; CHECK-NEXT:    store double 0x3FF921FB54442D18, double* [[SLOT]]
; CHECK-NEXT:    store double 0x3FE4978FA3269EE1, double* [[SLOT]]
; CHECK-NEXT:    store double 0x402422A497D6185E, double* [[SLOT]]
; CHECK-NEXT:    store double 0x403415E5BF6FB106, double* [[SLOT]]
; CHECK-NEXT:    store double 8.000000e+00, double* [[SLOT]]
; CHECK-NEXT:    store double 0x3FF193EA7AAD030B, double* [[SLOT]]
; CHECK-NEXT:    store double 0x3FDE8927964FD5FD, double* [[SLOT]]
; CHECK-NEXT:    store double 1.000000e+00, double* [[SLOT]]
; CHECK-NEXT:    store double 0x40240926E70949AE, double* [[SLOT]]
; CHECK-NEXT:    store float 0.000000e+00, float* [[SLOTF]]
; CHECK-NEXT:    store float 0x3FF921FB60000000, float* [[SLOTF]]
; CHECK-NEXT:    store float 0x3FE4978FA0000000, float* [[SLOTF]]
; CHECK-NEXT:    store float 0x402422A4A0000000, float* [[SLOTF]]
; CHECK-NEXT:    store float 0x403415E5C0000000, float* [[SLOTF]]
; CHECK-NEXT:    store float 8.000000e+00, float* [[SLOTF]]
; CHECK-NEXT:    store float 0x3FF193EA80000000, float* [[SLOTF]]
; CHECK-NEXT:    store float 0x3FDE8927A0000000, float* [[SLOTF]]
; CHECK-NEXT:    store float 8.100000e+01, float* [[SLOTF]]
; CHECK-NEXT:    store float 0x40240926E0000000, float* [[SLOTF]]
; CHECK-NEXT:    ret void
;<commit_msg>[ConstProp] Fix calls-math-finite.ll on FreeBSD<commit_after>; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt < %s -constprop -S | FileCheck %s

; Test to verify constant folding can occur when math routines are mapped
; to the __<func>_finite versions of functions due to __FINITE_MATH_ONLY__
; being enabled on headers on Linux. All calls should constant fold away
; in this test.

target triple = "unknown-unknown-linux-gnu"

declare double @__acos_finite(double) #0
declare float @__acosf_finite(float) #0
declare double @__asin_finite(double) #0
declare float @__asinf_finite(float) #0
declare double @__atan2_finite(double, double) #0
declare float @__atan2f_finite(float, float) #0
declare double @__cosh_finite(double) #0
declare float @__coshf_finite(float) #0
declare double @__exp2_finite(double) #0
declare float @__exp2f_finite(float) #0
declare double @__exp_finite(double) #0
declare float @__expf_finite(float) #0
declare double @__log10_finite(double) #0
declare float @__log10f_finite(float) #0
declare double @__log_finite(double) #0
declare float @__logf_finite(float) #0
declare double @__pow_finite(double, double) #0
declare float @__powf_finite(float, float) #0
declare double @__sinh_finite(double) #0
declare float @__sinhf_finite(float) #0

attributes #0 = { nounwind readnone }

define void @T() {
; CHECK-LABEL: @T(
; CHECK-NEXT:    [[SLOT:%.*]] = alloca double
; CHECK-NEXT:    [[SLOTF:%.*]] = alloca float
; CHECK-NEXT:    store double 0.000000e+00, double* [[SLOT]]
; CHECK-NEXT:    store double 0x3FF921FB54442D18, double* [[SLOT]]
; CHECK-NEXT:    store double 0x3FE4978FA3269EE1, double* [[SLOT]]
; CHECK-NEXT:    store double 0x402422A497D6185E, double* [[SLOT]]
; CHECK-NEXT:    store double 0x403415E5BF6FB106, double* [[SLOT]]
; CHECK-NEXT:    store double 8.000000e+00, double* [[SLOT]]
; CHECK-NEXT:    store double 0x3FF193EA7AAD030{{[AB]}}, double* [[SLOT]]
; CHECK-NEXT:    store double 0x3FDE8927964FD5FD, double* [[SLOT]]
; CHECK-NEXT:    store double 1.000000e+00, double* [[SLOT]]
; CHECK-NEXT:    store double 0x40240926E70949AE, double* [[SLOT]]
; CHECK-NEXT:    store float 0.000000e+00, float* [[SLOTF]]
; CHECK-NEXT:    store float 0x3FF921FB60000000, float* [[SLOTF]]
; CHECK-NEXT:    store float 0x3FE4978FA0000000, float* [[SLOTF]]
; CHECK-NEXT:    store float 0x402422A4A0000000, float* [[SLOTF]]
; CHECK-NEXT:    store float 0x403415E5C0000000, float* [[SLOTF]]
; CHECK-NEXT:    store float 8.000000e+00, float* [[SLOTF]]
; CHECK-NEXT:    store float 0x3FF193EA80000000, float* [[SLOTF]]
; CHECK-NEXT:    store float 0x3FDE8927A0000000, float* [[SLOTF]]
; CHECK-NEXT:    store float 8.100000e+01, float* [[SLOTF]]
; CHECK-NEXT:    store float 0x40240926E0000000, float* [[SLOTF]]
; CHECK-NEXT:    ret void
;
{'fraction_non_alphanumeric': 0.12641611221003415, 'fraction_numerical': 0.09458730444164719, 'mean_word_length': 5.393103448275862, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 14, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4618600', 'n_tokens_mistral': 2341, 'n_tokens_neox': 1987, 'n_words': 560}