[PATCH] D88785: Support {S,U}REMEqFold before legalization
Simonas Kazlauskas via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sat Oct 3 13:09:09 PDT 2020
nagisa added inline comments.
================
Comment at: llvm/test/CodeGen/AArch64/urem-seteq-vec-tautological.ll:77
define <8 x i1> @t2_narrow(<8 x i16> %X) nounwind {
; CHECK-LABEL: t2_narrow:
----------------
This is a regression.
Originally urem-seteq fold did not fire because `isOperationLegalOrCustom(ISD::XOR, SETCCVT)` was returning false and thus we never actually executed the lowering this is supposed to be testing in the first place.
Instead DAG would move on to lower UREM via `BuildDIV` (i.e. mul-shift strength reduction) – which, turns out, produces significantly better code in this particular instance.
I suspect that most of the regressions seen here will be due to a similar cause as this one.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D88785/new/
https://reviews.llvm.org/D88785
More information about the llvm-commits
mailing list