[libcxx-commits] [libclc] [libcxx] [libcxxabi] [llvm] [clang-tools-extra] [flang] [libc] [compiler-rt] [lldb] [lld] [clang] [VPlan] Add new VPScalarCastRecipe, use for IV & step trunc. (PR #78113)
Florian Hahn via libcxx-commits
libcxx-commits at lists.llvm.org
Thu Jan 25 03:32:34 PST 2024
================
@@ -1469,6 +1461,52 @@ void VPReplicateRecipe::print(raw_ostream &O, const Twine &Indent,
}
#endif
+static bool isUniformAcrossVFsAndUFs(VPScalarCastRecipe *C) {
+ return C->isDefinedOutsideVectorRegions() ||
+ isa<VPDerivedIVRecipe>(C->getOperand(0)) ||
+ isa<VPCanonicalIVPHIRecipe>(C->getOperand(0));
+}
+
+Value *VPScalarCastRecipe ::generate(VPTransformState &State, unsigned Part) {
+ assert(vputils::onlyFirstLaneUsed(this) &&
+ "Codegen only implemented for first lane.");
+ switch (Opcode) {
+ case Instruction::SExt:
+ case Instruction::ZExt:
----------------
fhahn wrote:
Yep, could remove if preferred, but `State.Builder.CreateCast` generically supports any cast
https://github.com/llvm/llvm-project/pull/78113
More information about the libcxx-commits
mailing list