brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.1 KiB · 1d006f7 Raw
214 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=sse4.2 | FileCheck %s3 4define double @test1(double %a, double %b, double %eps) {5; CHECK-LABEL: test1:6; CHECK:       # %bb.0:7; CHECK-NEXT:    cmpltsd %xmm2, %xmm08; CHECK-NEXT:    andpd %xmm1, %xmm09; CHECK-NEXT:    retq10  %cmp = fcmp olt double %a, %eps11  %cond = select i1 %cmp, double %b, double 0.000000e+0012  ret double %cond13}14 15define double @test2(double %a, double %b, double %eps) {16; CHECK-LABEL: test2:17; CHECK:       # %bb.0:18; CHECK-NEXT:    cmplesd %xmm2, %xmm019; CHECK-NEXT:    andpd %xmm1, %xmm020; CHECK-NEXT:    retq21  %cmp = fcmp ole double %a, %eps22  %cond = select i1 %cmp, double %b, double 0.000000e+0023  ret double %cond24}25 26define double @test3(double %a, double %b, double %eps) {27; CHECK-LABEL: test3:28; CHECK:       # %bb.0:29; CHECK-NEXT:    cmpltsd %xmm0, %xmm230; CHECK-NEXT:    andpd %xmm1, %xmm231; CHECK-NEXT:    movapd %xmm2, %xmm032; CHECK-NEXT:    retq33  %cmp = fcmp ogt double %a, %eps34  %cond = select i1 %cmp, double %b, double 0.000000e+0035  ret double %cond36}37 38define double @test4(double %a, double %b, double %eps) {39; CHECK-LABEL: test4:40; CHECK:       # %bb.0:41; CHECK-NEXT:    cmplesd %xmm0, %xmm242; CHECK-NEXT:    andpd %xmm1, %xmm243; CHECK-NEXT:    movapd %xmm2, %xmm044; CHECK-NEXT:    retq45  %cmp = fcmp oge double %a, %eps46  %cond = select i1 %cmp, double %b, double 0.000000e+0047  ret double %cond48}49 50define double @test5(double %a, double %b, double %eps) {51; CHECK-LABEL: test5:52; CHECK:       # %bb.0:53; CHECK-NEXT:    cmpltsd %xmm2, %xmm054; CHECK-NEXT:    andnpd %xmm1, %xmm055; CHECK-NEXT:    retq56  %cmp = fcmp olt double %a, %eps57  %cond = select i1 %cmp, double 0.000000e+00, double %b58  ret double %cond59}60 61define double @test6(double %a, double %b, double %eps) {62; CHECK-LABEL: test6:63; CHECK:       # %bb.0:64; CHECK-NEXT:    cmplesd %xmm2, %xmm065; CHECK-NEXT:    andnpd %xmm1, %xmm066; CHECK-NEXT:    retq67  %cmp = fcmp ole double %a, %eps68  %cond = select i1 %cmp, double 0.000000e+00, double %b69  ret double %cond70}71 72define double @test7(double %a, double %b, double %eps) {73; CHECK-LABEL: test7:74; CHECK:       # %bb.0:75; CHECK-NEXT:    cmpltsd %xmm0, %xmm276; CHECK-NEXT:    andnpd %xmm1, %xmm277; CHECK-NEXT:    movapd %xmm2, %xmm078; CHECK-NEXT:    retq79  %cmp = fcmp ogt double %a, %eps80  %cond = select i1 %cmp, double 0.000000e+00, double %b81  ret double %cond82}83 84define double @test8(double %a, double %b, double %eps) {85; CHECK-LABEL: test8:86; CHECK:       # %bb.0:87; CHECK-NEXT:    cmplesd %xmm0, %xmm288; CHECK-NEXT:    andnpd %xmm1, %xmm289; CHECK-NEXT:    movapd %xmm2, %xmm090; CHECK-NEXT:    retq91  %cmp = fcmp oge double %a, %eps92  %cond = select i1 %cmp, double 0.000000e+00, double %b93  ret double %cond94}95 96define float @test9(float %a, float %b, float %eps) {97; CHECK-LABEL: test9:98; CHECK:       # %bb.0:99; CHECK-NEXT:    cmpltss %xmm2, %xmm0100; CHECK-NEXT:    andps %xmm1, %xmm0101; CHECK-NEXT:    retq102  %cmp = fcmp olt float %a, %eps103  %cond = select i1 %cmp, float %b, float 0.000000e+00104  ret float %cond105}106 107define float @test10(float %a, float %b, float %eps) {108; CHECK-LABEL: test10:109; CHECK:       # %bb.0:110; CHECK-NEXT:    cmpless %xmm2, %xmm0111; CHECK-NEXT:    andps %xmm1, %xmm0112; CHECK-NEXT:    retq113  %cmp = fcmp ole float %a, %eps114  %cond = select i1 %cmp, float %b, float 0.000000e+00115  ret float %cond116}117 118define float @test11(float %a, float %b, float %eps) {119; CHECK-LABEL: test11:120; CHECK:       # %bb.0:121; CHECK-NEXT:    cmpltss %xmm0, %xmm2122; CHECK-NEXT:    andps %xmm1, %xmm2123; CHECK-NEXT:    movaps %xmm2, %xmm0124; CHECK-NEXT:    retq125  %cmp = fcmp ogt float %a, %eps126  %cond = select i1 %cmp, float %b, float 0.000000e+00127  ret float %cond128}129 130define float @test12(float %a, float %b, float %eps) {131; CHECK-LABEL: test12:132; CHECK:       # %bb.0:133; CHECK-NEXT:    cmpless %xmm0, %xmm2134; CHECK-NEXT:    andps %xmm1, %xmm2135; CHECK-NEXT:    movaps %xmm2, %xmm0136; CHECK-NEXT:    retq137  %cmp = fcmp oge float %a, %eps138  %cond = select i1 %cmp, float %b, float 0.000000e+00139  ret float %cond140}141 142define float @test13(float %a, float %b, float %eps) {143; CHECK-LABEL: test13:144; CHECK:       # %bb.0:145; CHECK-NEXT:    cmpltss %xmm2, %xmm0146; CHECK-NEXT:    andnps %xmm1, %xmm0147; CHECK-NEXT:    retq148  %cmp = fcmp olt float %a, %eps149  %cond = select i1 %cmp, float 0.000000e+00, float %b150  ret float %cond151}152 153define float @test14(float %a, float %b, float %eps) {154; CHECK-LABEL: test14:155; CHECK:       # %bb.0:156; CHECK-NEXT:    cmpless %xmm2, %xmm0157; CHECK-NEXT:    andnps %xmm1, %xmm0158; CHECK-NEXT:    retq159  %cmp = fcmp ole float %a, %eps160  %cond = select i1 %cmp, float 0.000000e+00, float %b161  ret float %cond162}163 164define float @test15(float %a, float %b, float %eps) {165; CHECK-LABEL: test15:166; CHECK:       # %bb.0:167; CHECK-NEXT:    cmpltss %xmm0, %xmm2168; CHECK-NEXT:    andnps %xmm1, %xmm2169; CHECK-NEXT:    movaps %xmm2, %xmm0170; CHECK-NEXT:    retq171  %cmp = fcmp ogt float %a, %eps172  %cond = select i1 %cmp, float 0.000000e+00, float %b173  ret float %cond174}175 176define float @test16(float %a, float %b, float %eps) {177; CHECK-LABEL: test16:178; CHECK:       # %bb.0:179; CHECK-NEXT:    cmpless %xmm0, %xmm2180; CHECK-NEXT:    andnps %xmm1, %xmm2181; CHECK-NEXT:    movaps %xmm2, %xmm0182; CHECK-NEXT:    retq183  %cmp = fcmp oge float %a, %eps184  %cond = select i1 %cmp, float 0.000000e+00, float %b185  ret float %cond186}187 188define float @test17(float %a, float %b, float %c, float %eps) {189; CHECK-LABEL: test17:190; CHECK:       # %bb.0:191; CHECK-NEXT:    cmpless %xmm0, %xmm3192; CHECK-NEXT:    movaps %xmm3, %xmm0193; CHECK-NEXT:    blendvps %xmm0, %xmm2, %xmm1194; CHECK-NEXT:    movaps %xmm1, %xmm0195; CHECK-NEXT:    retq196  %cmp = fcmp oge float %a, %eps197  %cond = select i1 %cmp, float %c, float %b198  ret float %cond199}200 201define double @test18(double %a, double %b, double %c, double %eps) {202; CHECK-LABEL: test18:203; CHECK:       # %bb.0:204; CHECK-NEXT:    cmplesd %xmm0, %xmm3205; CHECK-NEXT:    movapd %xmm3, %xmm0206; CHECK-NEXT:    blendvpd %xmm0, %xmm2, %xmm1207; CHECK-NEXT:    movapd %xmm1, %xmm0208; CHECK-NEXT:    retq209  %cmp = fcmp oge double %a, %eps210  %cond = select i1 %cmp, double %c, double %b211  ret double %cond212}213 214