[PATCH] D89382: [SVE][CodeGen] Lower scalable integer vector reductions

Kerry McLaughlin via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 26 11:09:24 PDT 2020


kmclaughlin added inline comments.


================
Comment at: llvm/test/CodeGen/AArch64/vecreduce-umax-legalization.ll:145-152
+; CHECK-NEXT:    // kill: def $d0 killed $d0 def $q0
+; CHECK-NEXT:    umov w10, v0.h[1]
+; CHECK-NEXT:    umov w11, v0.h[0]
+; CHECK-NEXT:    umov w9, v0.h[2]
+; CHECK-NEXT:    orr w10, w11, w10
+; CHECK-NEXT:    umov w8, v0.h[3]
+; CHECK-NEXT:    orr w9, w10, w9
----------------
paulwalker-arm wrote:
> Presumably this is down to the canonicalisation?  I'm not sure there's any immediate performance concerns here, and I stand behind canonicalisation being the correct solution.  I guess we can see if anybody disagrees with this.
> 
> The worst that can happen is more custom lowering for NEON is required but because the existing lowering doesn't do anything special for OR, and MIN/MAX operations on i1 is weird anyways, I'd rather not do that in this patch unless we really have to.
It is, I needed to change this test after I moved the transformation of vecreduce_umax to getNode()


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

https://reviews.llvm.org/D89382



More information about the llvm-commits mailing list