brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.6 KiB · 5329a8f Raw
140 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 double @fdim_double() {5; CHECK-LABEL: define double @fdim_double() {6; CHECK-NEXT:    ret double 2.500000e+007;8  %dim = call double @fdim(double 10.5, double 8.0)9  ret double %dim10}11 12define double @fdim_double1() {13; CHECK-LABEL: define double @fdim_double1() {14; CHECK-NEXT:    ret double 0.000000e+0015;16  %dim = call double @fdim(double 7.0, double 8.0)17  ret double %dim18}19 20define float @fdim_float() {21; CHECK-LABEL: define float @fdim_float() {22; CHECK-NEXT:    ret float 0.000000e+0023;24  %dim = call float @fdimf(float 1.500000e+00, float 8.0)25  ret float %dim26}27 28define float @fdim_float1() {29; CHECK-LABEL: define float @fdim_float1() {30; CHECK-NEXT:    ret float 2.000000e+0031;32  %dim = call float @fdimf(float 1.000000e+01, float 8.0)33  ret float %dim34}35 36define double @fdim_poison1() {37; CHECK-LABEL: define double @fdim_poison1() {38; CHECK-NEXT:    ret double poison39;40  %dim = call double @fdim(double poison, double 1.0)41  ret double %dim42}43 44define double @fdim_poison2() {45; CHECK-LABEL: define double @fdim_poison2() {46; CHECK-NEXT:    ret double poison47;48  %dim = call double @fdim(double 1.0, double poison)49  ret double %dim50}51 52define double @fdim_poison3() {53; CHECK-LABEL: define double @fdim_poison3() {54; CHECK-NEXT:    ret double poison55;56  %dim = call double @fdim(double poison, double poison)57  ret double %dim58}59 60; undef folding is not implemented yet61define double @fdim_undef1() {62; CHECK-LABEL: define double @fdim_undef1() {63; CHECK-NEXT:    [[DIM:%.*]] = call double @fdim(double undef, double 1.000000e+00)64; CHECK-NEXT:    ret double [[DIM]]65;66  %dim = call double @fdim(double undef, double 1.0)67  ret double %dim68}69 70define double @fdim_inf_ninf() {71; CHECK-LABEL: define double @fdim_inf_ninf() {72; CHECK-NEXT:    ret double 0x7FF000000000000073;74  %dim = call double @fdim(double 0x7FF0000000000000, double 0x8000000000000000 )75  ret double %dim76}77 78define double @fdim_inf() {79; CHECK-LABEL: define double @fdim_inf() {80; CHECK-NEXT:    ret double 0x7FF800000000000081;82  %dim = call double @fdim(double 0x7FF0000000000000, double 0x7FF0000000000000)83  ret double %dim84}85 86define double @fdim_nzero() {87; CHECK-LABEL: define double @fdim_nzero() {88; CHECK-NEXT:    ret double 0.000000e+0089;90  %dim = call double @fdim(double -0.0, double +0.0)91  ret double %dim92}93 94define double @fdim_strictfp() {95; CHECK-LABEL: define double @fdim_strictfp() {96; CHECK-NEXT:    [[DIM:%.*]] = call double @fdim(double 1.000000e+01, double 8.000000e+00) #[[ATTR1:[0-9]+]]97; CHECK-NEXT:    ret double [[DIM]]98;99  %dim = call double @fdim(double 10.0, double 8.0) strictfp100  ret double %dim101}102 103define double @fdim_nan1() {104; CHECK-LABEL: define double @fdim_nan1() {105; CHECK-NEXT:    ret double 0x7FF8000000000000106;107  %dim = call double @fdim(double 10.0, double 0x7FF8000000000000)108  ret double %dim109}110 111 112define double @fdim_nan2() {113; CHECK-LABEL: define double @fdim_nan2() {114; CHECK-NEXT:    ret double 0x7FF8000000000000115;116  %dim = call double @fdim(double 0x7FF8000000000000, double 1.4)117  ret double %dim118}119 120define double @fdim_snan1() {121; CHECK-LABEL: define double @fdim_snan1() {122; CHECK-NEXT:    ret double 0x7FFC000000000000123;124  %dim = call double @fdim(double 0x7FF4000000000000, double 1.4)125  ret double %dim126}127 128define double @fdim_snan2() {129; CHECK-LABEL: define double @fdim_snan2() {130; CHECK-NEXT:    ret double 0x7FFC000000000000131;132  %dim = call double @fdim(double 1.7, double 0x7FF4000000000000)133  ret double %dim134}135 136declare double @fdim(double, double) #0137declare float @fdimf(float, float) #0138 139attributes #0 = { memory(none) }140