[PATCH] D141464: [X86]: Match (xor TSize - 1, ctlz) to `bsr` instead of `lzcnt` + `xor`
Noah Goldstein via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Jan 12 09:33:51 PST 2023
goldstein.w.n marked an inline comment as done.
goldstein.w.n added inline comments.
================
Comment at: llvm/lib/Target/X86/X86ISelLowering.cpp:51923
+
+ Op = DAG.getNode(X86ISD::BSR, DL, OpVT, Op);
+ if (VT == MVT::i8) {
----------------
craig.topper wrote:
> This needs to be
>
> ```
> SDVTList VTs = DAG.getVTList(OpVT, MVT::i32);
> Op = DAG.getNode(X86ISD::BSR, dl, VTs, Op);
> ```
>
> We have X86ISD::BSR plumbed to also returns flags so it has a second i32 out put for the flags.
> This needs to be
>
> ```
> SDVTList VTs = DAG.getVTList(OpVT, MVT::i32);
> Op = DAG.getNode(X86ISD::BSR, dl, VTs, Op);
> ```
>
> We have X86ISD::BSR plumbed to also returns flags so it has a second i32 out put for the flags.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D141464/new/
https://reviews.llvm.org/D141464
More information about the llvm-commits
mailing list