[PATCH] D82553: [ARM] Allow rounding intrinsics to be tail predicated

Dave Green via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jun 26 05:56:50 PDT 2020


dmgreen added inline comments.


================
Comment at: llvm/lib/Target/ARM/MVETailPredication.cpp:271
         LLVM_FALLTHROUGH;
       case Intrinsic::fma:
       case Intrinsic::sadd_sat:
----------------
fma can go into the float block too.


================
Comment at: llvm/test/CodeGen/Thumb2/LowOverheadLoops/tail-pred-intrinsic-round.ll:229
+; nearbyint shouldn't be tail predicated because it's lowered into multiple instructions
+define arm_aapcs_vfpcc void @nearbyint(i32* noalias nocapture %dst, float* noalias nocapture readonly %src, i32 %n) #0 {
+; CHECK-LABEL: nearbyint:
----------------
You can use the same test code as floor, for example, but with floor replaced by nearbyint. This won't test that the vecotrizer does or doesn't tail predicate it, but will test that we expand to something non-tail predicated still.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D82553/new/

https://reviews.llvm.org/D82553





More information about the llvm-commits mailing list