1*923566a6Sc8ef; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5 2*923566a6Sc8ef; RUN: opt < %s -passes=instcombine -S | FileCheck %s 3*923566a6Sc8ef 4*923566a6Sc8efdefine float @logbf_const() { 5*923566a6Sc8ef; CHECK-LABEL: define float @logbf_const() { 6*923566a6Sc8ef; CHECK-NEXT: [[R:%.*]] = call float @logbf(float 7.000000e+00) 7*923566a6Sc8ef; CHECK-NEXT: ret float 2.000000e+00 8*923566a6Sc8ef; 9*923566a6Sc8ef %r = call float @logbf(float 7.000000e+00) 10*923566a6Sc8ef ret float %r 11*923566a6Sc8ef} 12*923566a6Sc8ef 13*923566a6Sc8efdefine double @logb_const() { 14*923566a6Sc8ef; CHECK-LABEL: define double @logb_const() { 15*923566a6Sc8ef; CHECK-NEXT: [[R:%.*]] = call double @logb(double -7.000000e+00) 16*923566a6Sc8ef; CHECK-NEXT: ret double 2.000000e+00 17*923566a6Sc8ef; 18*923566a6Sc8ef %r = call double @logb(double -7.000000e+00) 19*923566a6Sc8ef ret double %r 20*923566a6Sc8ef} 21*923566a6Sc8ef 22*923566a6Sc8efdefine float @logbf_zero() { 23*923566a6Sc8ef; CHECK-LABEL: define float @logbf_zero() { 24*923566a6Sc8ef; CHECK-NEXT: [[R:%.*]] = call float @logbf(float 0.000000e+00) 25*923566a6Sc8ef; CHECK-NEXT: ret float [[R]] 26*923566a6Sc8ef; 27*923566a6Sc8ef %r = call float @logbf(float 0.000000e+00) 28*923566a6Sc8ef ret float %r 29*923566a6Sc8ef} 30*923566a6Sc8ef 31*923566a6Sc8efdefine double @logb_zero() { 32*923566a6Sc8ef; CHECK-LABEL: define double @logb_zero() { 33*923566a6Sc8ef; CHECK-NEXT: [[R:%.*]] = call double @logb(double 0.000000e+00) 34*923566a6Sc8ef; CHECK-NEXT: ret double [[R]] 35*923566a6Sc8ef; 36*923566a6Sc8ef %r = call double @logb(double 0.000000e+00) 37*923566a6Sc8ef ret double %r 38*923566a6Sc8ef} 39*923566a6Sc8ef 40*923566a6Sc8efdefine float @logbf_neg_zero() { 41*923566a6Sc8ef; CHECK-LABEL: define float @logbf_neg_zero() { 42*923566a6Sc8ef; CHECK-NEXT: [[R:%.*]] = call float @logbf(float -0.000000e+00) 43*923566a6Sc8ef; CHECK-NEXT: ret float [[R]] 44*923566a6Sc8ef; 45*923566a6Sc8ef %r = call float @logbf(float -0.000000e+00) 46*923566a6Sc8ef ret float %r 47*923566a6Sc8ef} 48*923566a6Sc8ef 49*923566a6Sc8efdefine double @logb_neg_zero() { 50*923566a6Sc8ef; CHECK-LABEL: define double @logb_neg_zero() { 51*923566a6Sc8ef; CHECK-NEXT: [[R:%.*]] = call double @logb(double -0.000000e+00) 52*923566a6Sc8ef; CHECK-NEXT: ret double [[R]] 53*923566a6Sc8ef; 54*923566a6Sc8ef %r = call double @logb(double -0.000000e+00) 55*923566a6Sc8ef ret double %r 56*923566a6Sc8ef} 57*923566a6Sc8ef 58*923566a6Sc8efdefine float @logbf_inf() { 59*923566a6Sc8ef; CHECK-LABEL: define float @logbf_inf() { 60*923566a6Sc8ef; CHECK-NEXT: [[R:%.*]] = call float @logbf(float 0x7FF0000000000000) 61*923566a6Sc8ef; CHECK-NEXT: ret float [[R]] 62*923566a6Sc8ef; 63*923566a6Sc8ef %r = call float @logbf(float 0x7FF0000000000000) 64*923566a6Sc8ef ret float %r 65*923566a6Sc8ef} 66*923566a6Sc8ef 67*923566a6Sc8efdefine double @logb_inf() { 68*923566a6Sc8ef; CHECK-LABEL: define double @logb_inf() { 69*923566a6Sc8ef; CHECK-NEXT: [[R:%.*]] = call double @logb(double 0x7FF0000000000000) 70*923566a6Sc8ef; CHECK-NEXT: ret double [[R]] 71*923566a6Sc8ef; 72*923566a6Sc8ef %r = call double @logb(double 0x7FF0000000000000) 73*923566a6Sc8ef ret double %r 74*923566a6Sc8ef} 75*923566a6Sc8ef 76*923566a6Sc8efdefine float @logbf_nan() { 77*923566a6Sc8ef; CHECK-LABEL: define float @logbf_nan() { 78*923566a6Sc8ef; CHECK-NEXT: [[R:%.*]] = call float @logbf(float 0x7FF8000000000000) 79*923566a6Sc8ef; CHECK-NEXT: ret float [[R]] 80*923566a6Sc8ef; 81*923566a6Sc8ef %r = call float @logbf(float 0x7FF8000000000000) 82*923566a6Sc8ef ret float %r 83*923566a6Sc8ef} 84*923566a6Sc8ef 85*923566a6Sc8efdefine double @logb_nan() { 86*923566a6Sc8ef; CHECK-LABEL: define double @logb_nan() { 87*923566a6Sc8ef; CHECK-NEXT: [[R:%.*]] = call double @logb(double 0x7FF8000000000000) 88*923566a6Sc8ef; CHECK-NEXT: ret double [[R]] 89*923566a6Sc8ef; 90*923566a6Sc8ef %r = call double @logb(double 0x7FF8000000000000) 91*923566a6Sc8ef ret double %r 92*923566a6Sc8ef} 93*923566a6Sc8ef 94*923566a6Sc8efdefine float @logbf_poison() { 95*923566a6Sc8ef; CHECK-LABEL: define float @logbf_poison() { 96*923566a6Sc8ef; CHECK-NEXT: [[R:%.*]] = call float @logbf(float poison) 97*923566a6Sc8ef; CHECK-NEXT: ret float [[R]] 98*923566a6Sc8ef; 99*923566a6Sc8ef %r = call float @logbf(float poison) 100*923566a6Sc8ef ret float %r 101*923566a6Sc8ef} 102*923566a6Sc8ef 103*923566a6Sc8efdefine double @logb_poison() { 104*923566a6Sc8ef; CHECK-LABEL: define double @logb_poison() { 105*923566a6Sc8ef; CHECK-NEXT: [[R:%.*]] = call double @logb(double poison) 106*923566a6Sc8ef; CHECK-NEXT: ret double [[R]] 107*923566a6Sc8ef; 108*923566a6Sc8ef %r = call double @logb(double poison) 109*923566a6Sc8ef ret double %r 110*923566a6Sc8ef} 111*923566a6Sc8ef 112*923566a6Sc8efdeclare float @logbf(float) 113*923566a6Sc8efdeclare double @logb(double) 114