brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.1 KiB · f2509e9 Raw
114 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 52; RUN: opt < %s -passes=instcombine -S | FileCheck %s3 4define float @logbf_const() {5; CHECK-LABEL: define float @logbf_const() {6; CHECK-NEXT:    [[R:%.*]] = call float @logbf(float 7.000000e+00)7; CHECK-NEXT:    ret float 2.000000e+008;9  %r = call float @logbf(float 7.000000e+00)10  ret float %r11}12 13define double @logb_const() {14; CHECK-LABEL: define double @logb_const() {15; CHECK-NEXT:    [[R:%.*]] = call double @logb(double -7.000000e+00)16; CHECK-NEXT:    ret double 2.000000e+0017;18  %r = call double @logb(double -7.000000e+00)19  ret double %r20}21 22define float @logbf_zero() {23; CHECK-LABEL: define float @logbf_zero() {24; CHECK-NEXT:    [[R:%.*]] = call float @logbf(float 0.000000e+00)25; CHECK-NEXT:    ret float [[R]]26;27  %r = call float @logbf(float 0.000000e+00)28  ret float %r29}30 31define double @logb_zero() {32; CHECK-LABEL: define double @logb_zero() {33; CHECK-NEXT:    [[R:%.*]] = call double @logb(double 0.000000e+00)34; CHECK-NEXT:    ret double [[R]]35;36  %r = call double @logb(double 0.000000e+00)37  ret double %r38}39 40define float @logbf_neg_zero() {41; CHECK-LABEL: define float @logbf_neg_zero() {42; CHECK-NEXT:    [[R:%.*]] = call float @logbf(float -0.000000e+00)43; CHECK-NEXT:    ret float [[R]]44;45  %r = call float @logbf(float -0.000000e+00)46  ret float %r47}48 49define double @logb_neg_zero() {50; CHECK-LABEL: define double @logb_neg_zero() {51; CHECK-NEXT:    [[R:%.*]] = call double @logb(double -0.000000e+00)52; CHECK-NEXT:    ret double [[R]]53;54  %r = call double @logb(double -0.000000e+00)55  ret double %r56}57 58define float @logbf_inf() {59; CHECK-LABEL: define float @logbf_inf() {60; CHECK-NEXT:    [[R:%.*]] = call float @logbf(float 0x7FF0000000000000)61; CHECK-NEXT:    ret float [[R]]62;63  %r = call float @logbf(float 0x7FF0000000000000)64  ret float %r65}66 67define double @logb_inf() {68; CHECK-LABEL: define double @logb_inf() {69; CHECK-NEXT:    [[R:%.*]] = call double @logb(double 0x7FF0000000000000)70; CHECK-NEXT:    ret double [[R]]71;72  %r = call double @logb(double 0x7FF0000000000000)73  ret double %r74}75 76define float @logbf_nan() {77; CHECK-LABEL: define float @logbf_nan() {78; CHECK-NEXT:    [[R:%.*]] = call float @logbf(float 0x7FF8000000000000)79; CHECK-NEXT:    ret float [[R]]80;81  %r = call float @logbf(float 0x7FF8000000000000)82  ret float %r83}84 85define double @logb_nan() {86; CHECK-LABEL: define double @logb_nan() {87; CHECK-NEXT:    [[R:%.*]] = call double @logb(double 0x7FF8000000000000)88; CHECK-NEXT:    ret double [[R]]89;90  %r = call double @logb(double 0x7FF8000000000000)91  ret double %r92}93 94define float @logbf_poison() {95; CHECK-LABEL: define float @logbf_poison() {96; CHECK-NEXT:    [[R:%.*]] = call float @logbf(float poison)97; CHECK-NEXT:    ret float [[R]]98;99  %r = call float @logbf(float poison)100  ret float %r101}102 103define double @logb_poison() {104; CHECK-LABEL: define double @logb_poison() {105; CHECK-NEXT:    [[R:%.*]] = call double @logb(double poison)106; CHECK-NEXT:    ret double [[R]]107;108  %r = call double @logb(double poison)109  ret double %r110}111 112declare float @logbf(float)113declare double @logb(double)114