[PATCH] D130339: [CodeGen] Generate efficient assembly for freeze(poison) version of `mm*_cast*` intel intrinsics
Craig Topper via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Jul 29 10:30:04 PDT 2022
craig.topper added inline comments.
================
Comment at: llvm/include/llvm/Target/TargetSelectionDAG.td:456
def addrspacecast : SDNode<"ISD::ADDRSPACECAST", SDTUnaryOp>;
+def freeze : SDNode<"ISD::FREEZE" , SDTUnaryOp>;
def extractelt : SDNode<"ISD::EXTRACT_VECTOR_ELT", SDTVecExtract>;
----------------
Don't use SDTUnaryOp here. Use `SDTypeProfile<1, 1, [SDTCisSameAs<0, 1>]>`
SDTUnaryOp doesn't force the input and output to have the same type. I think that prevented `VT` from propagating through the freeze to the undef and that left the undef untyped causing the pattern to be dropped.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D130339/new/
https://reviews.llvm.org/D130339
More information about the llvm-commits
mailing list