brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.3 KiB · 3db588b Raw
80 lines · plain
1; Check that 0.0 is not materialized for CSEL when comparing against it.2 3; RUN: llc -mtriple=aarch64-linux-gnu -o - < %s | FileCheck %s4 5define float @foeq(float %a, float %b) {6  %t = fcmp nsz oeq float %a, 0.07  %v = select i1 %t, float 0.0, float %b8  ret float %v9; CHECK-LABEL: foeq10; CHECK: fcmp [[R:s[0-9]+]], #0.011; CHECK-NEXT: fcsel {{s[0-9]+}}, [[R]], {{s[0-9]+}}, eq12}13 14define float @fueq(float %a, float %b) {15  %t = fcmp nsz ueq float %a, 0.016  %v = select i1 %t, float 0.0, float %b17  ret float %v18; CHECK-LABEL: fueq19; CHECK: fcmp [[R:s[0-9]+]], #0.020; CHECK-NEXT: fcsel {{s[0-9]+}}, [[R]], {{s[0-9]+}}, eq21; CHECK-NEXT: fcsel {{s[0-9]+}}, [[R]], {{s[0-9]+}}, vs22}23 24define float @fone(float %a, float %b) {25  %t = fcmp nsz one float %a, 0.026  %v = select i1 %t, float %b, float 0.027  ret float %v28; CHECK-LABEL: fone29; CHECK: fcmp [[R:s[0-9]+]], #0.030; CHECK-NEXT: fcsel {{s[0-9]+}}, {{s[0-9]+}}, [[R]], mi31; CHECK-NEXT: fcsel {{s[0-9]+}}, {{s[0-9]+}}, [[R]], gt32}33 34define float @fune(float %a, float %b) {35  %t = fcmp nsz une float %a, 0.036  %v = select i1 %t, float %b, float 0.037  ret float %v38; CHECK-LABEL: fune39; CHECK: fcmp [[R:s[0-9]+]], #0.040; CHECK-NEXT: fcsel {{s[0-9]+}}, {{s[0-9]+}}, [[R]], ne41}42 43define double @doeq(double %a, double %b) {44  %t = fcmp nsz oeq double %a, 0.045  %v = select i1 %t, double 0.0, double %b46  ret double %v47; CHECK-LABEL: doeq48; CHECK: fcmp [[R:d[0-9]+]], #0.049; CHECK-NEXT: fcsel {{d[0-9]+}}, [[R]], {{d[0-9]+}}, eq50}51 52define double @dueq(double %a, double %b) {53  %t = fcmp nsz ueq double %a, 0.054  %v = select i1 %t, double 0.0, double %b55  ret double %v56; CHECK-LABEL: dueq57; CHECK: fcmp [[R:d[0-9]+]], #0.058; CHECK-NEXT: fcsel {{d[0-9]+}}, [[R]], {{d[0-9]+}}, eq59; CHECK-NEXT: fcsel {{d[0-9]+}}, [[R]], {{d[0-9]+}}, vs60}61 62define double @done(double %a, double %b) {63  %t = fcmp nsz one double %a, 0.064  %v = select i1 %t, double %b, double 0.065  ret double %v66; CHECK-LABEL: done67; CHECK: fcmp [[R:d[0-9]+]], #0.068; CHECK-NEXT: fcsel {{d[0-9]+}}, {{d[0-9]+}}, [[R]], mi69; CHECK-NEXT: fcsel {{d[0-9]+}}, {{d[0-9]+}}, [[R]], gt70}71 72define double @dune(double %a, double %b) {73  %t = fcmp nsz une double %a, 0.074  %v = select i1 %t, double %b, double 0.075  ret double %v76; CHECK-LABEL: dune77; CHECK: fcmp [[R:d[0-9]+]], #0.078; CHECK-NEXT: fcsel {{d[0-9]+}}, {{d[0-9]+}}, [[R]], ne79}80