[clang] [libc] [llvm] [clang-tools-extra] [flang] [SLP] Initial vectorization of non-power-of-2 ops. (PR #77790)

2024-02-02 Thread Florian Hahn via cfe-commits
@@ -6987,6 +7024,17 @@ class BoUpSLP::ShuffleCostEstimator : public BaseShuffleAnalysis { auto *VecTy = FixedVectorType::get(VL.front()->getType(), VL.size()); InstructionCost GatherCost = 0; SmallVector Gathers(VL.begin(), VL.end()); +auto ComputeGatherCost =

[llvm] [clang-tools-extra] [clang] [VPlan] Update VPInst::onlyFirstLaneUsed to check users. (PR #80269)

2024-02-03 Thread Florian Hahn via cfe-commits
https://github.com/fhahn updated https://github.com/llvm/llvm-project/pull/80269 >From f4dabdfaa66744ecfca4c0a57472a357db9715d9 Mon Sep 17 00:00:00 2001 From: Florian Hahn Date: Wed, 31 Jan 2024 14:02:38 + Subject: [PATCH] [VPlan] Update VPInst::onlyFirstLaneUsed to check users. A VPInstruc

[clang] [clang-tools-extra] [llvm] [VPlan] Update VPInst::onlyFirstLaneUsed to check users. (PR #80269)

2024-02-03 Thread Florian Hahn via cfe-commits
https://github.com/fhahn updated https://github.com/llvm/llvm-project/pull/80269 >From f4dabdfaa66744ecfca4c0a57472a357db9715d9 Mon Sep 17 00:00:00 2001 From: Florian Hahn Date: Wed, 31 Jan 2024 14:02:38 + Subject: [PATCH] [VPlan] Update VPInst::onlyFirstLaneUsed to check users. A VPInstruc

[clang] [clang-tools-extra] [llvm] [VPlan] Update VPInst::onlyFirstLaneUsed to check users. (PR #80269)

2024-02-03 Thread Florian Hahn via cfe-commits
https://github.com/fhahn updated https://github.com/llvm/llvm-project/pull/80269 >From f4dabdfaa66744ecfca4c0a57472a357db9715d9 Mon Sep 17 00:00:00 2001 From: Florian Hahn Date: Wed, 31 Jan 2024 14:02:38 + Subject: [PATCH 1/2] [VPlan] Update VPInst::onlyFirstLaneUsed to check users. A VPIns

[clang] [clang-tools-extra] [llvm] [VPlan] Update VPInst::onlyFirstLaneUsed to check users. (PR #80269)

2024-02-03 Thread Florian Hahn via cfe-commits
@@ -1256,23 +1256,7 @@ class VPInstruction : public VPRecipeWithIRFlags { } } fhahn wrote: Added back, thanks! https://github.com/llvm/llvm-project/pull/80269 ___ cfe-commits mailing list cfe-commits@lists.ll

[clang] [llvm] [clang-tools-extra] [VPlan] Update VPInst::onlyFirstLaneUsed to check users. (PR #80269)

2024-02-03 Thread Florian Hahn via cfe-commits
@@ -515,6 +515,24 @@ void VPInstruction::execute(VPTransformState &State) { State.set(this, GeneratedValue, Part); } } +bool VPInstruction::onlyFirstLaneUsed(const VPValue *Op) const { + assert(is_contained(operands(), Op) && "Op must be an operand of the recipe"); + i

[llvm] [clang-tools-extra] [clang] [VPlan] Update VPInst::onlyFirstLaneUsed to check users. (PR #80269)

2024-02-03 Thread Florian Hahn via cfe-commits
@@ -1397,9 +1397,9 @@ void VPSlotTracker::assignSlots(const VPBasicBlock *VPBB) { assignSlot(Def); } -bool vputils::onlyFirstLaneUsed(VPValue *Def) { +bool vputils::onlyFirstLaneUsed(const VPValue *Def) { return all_of(Def->users(), -[Def](VPUser *U)

[clang] [llvm] [clang-tools-extra] [VPlan] Update VPInst::onlyFirstLaneUsed to check users. (PR #80269)

2024-02-03 Thread Florian Hahn via cfe-commits
@@ -1397,9 +1397,9 @@ void VPSlotTracker::assignSlots(const VPBasicBlock *VPBB) { assignSlot(Def); } -bool vputils::onlyFirstLaneUsed(VPValue *Def) { +bool vputils::onlyFirstLaneUsed(const VPValue *Def) { return all_of(Def->users(), -[Def](VPUser *U)

[clang] [llvm] [clang-tools-extra] [VPlan] Update VPInst::onlyFirstLaneUsed to check users. (PR #80269)

2024-02-03 Thread Florian Hahn via cfe-commits
https://github.com/fhahn edited https://github.com/llvm/llvm-project/pull/80269 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [clang-tools-extra] [VPlan] Update VPInst::onlyFirstLaneUsed to check users. (PR #80269)

2024-02-03 Thread Florian Hahn via cfe-commits
fhahn wrote: > The only observable changes to existing tests involve cse'ing IV steps from > replicate regions when unrolling w/o vectorizing, iinm. Is there some other > scenario worth testing? I wasn't able to come up with a different test with vectorizing. https://github.com/llvm/llvm-proj

[clang] [llvm] [clang-tools-extra] [VPlan] Update VPInst::onlyFirstLaneUsed to check users. (PR #80269)

2024-02-03 Thread Florian Hahn via cfe-commits
https://github.com/fhahn closed https://github.com/llvm/llvm-project/pull/80269 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[llvm] [clang] [clang-tools-extra] [VPlan] Consistently use (Part, 0) for first lane scalar values (PR #80271)

2024-02-03 Thread Florian Hahn via cfe-commits
https://github.com/fhahn updated https://github.com/llvm/llvm-project/pull/80271 >From f4dabdfaa66744ecfca4c0a57472a357db9715d9 Mon Sep 17 00:00:00 2001 From: Florian Hahn Date: Wed, 31 Jan 2024 14:02:38 + Subject: [PATCH 1/2] [VPlan] Update VPInst::onlyFirstLaneUsed to check users. A VPIns

[llvm] [clang] [clang-tools-extra] [VPlan] Consistently use (Part, 0) for first lane scalar values (PR #80271)

2024-02-03 Thread Florian Hahn via cfe-commits
https://github.com/fhahn updated https://github.com/llvm/llvm-project/pull/80271 >From f4dabdfaa66744ecfca4c0a57472a357db9715d9 Mon Sep 17 00:00:00 2001 From: Florian Hahn Date: Wed, 31 Jan 2024 14:02:38 + Subject: [PATCH 1/3] [VPlan] Update VPInst::onlyFirstLaneUsed to check users. A VPIns

[mlir] [clang] [flang] [libcxx] [llvm] [clang-tools-extra] [LV] Improve AnyOf reduction codegen. (PR #78304)

2024-02-03 Thread Florian Hahn via cfe-commits
https://github.com/fhahn updated https://github.com/llvm/llvm-project/pull/78304 >From 9846f970b6b394ccc3af25b92f238377a8ae7807 Mon Sep 17 00:00:00 2001 From: Florian Hahn Date: Sun, 14 Jan 2024 18:06:36 + Subject: [PATCH 1/2] [LV] Improve AnyOf reduction codegen. Update AnyOf reduction cod

[clang-tools-extra] [flang] [clang] [libcxx] [llvm] [mlir] [LV] Improve AnyOf reduction codegen. (PR #78304)

2024-02-05 Thread Florian Hahn via cfe-commits
@@ -7486,7 +7486,8 @@ static void createAndCollectMergePhiForReduction( auto *PhiR = cast(RedResult->getOperand(0)); const RecurrenceDescriptor &RdxDesc = PhiR->getRecurrenceDescriptor(); - TrackingVH ReductionStartValue = RdxDesc.getRecurrenceStartValue(); + TrackingVH

[libcxx] [llvm] [flang] [mlir] [clang-tools-extra] [clang] [LV] Improve AnyOf reduction codegen. (PR #78304)

2024-02-05 Thread Florian Hahn via cfe-commits
@@ -9110,6 +9111,41 @@ void LoopVectorizationPlanner::adjustRecipesForReductions( continue; const RecurrenceDescriptor &RdxDesc = PhiR->getRecurrenceDescriptor(); +// Adjust AnyOf reductions; replace the reduction phi for the selected value +// with a boole

[libcxx] [flang] [mlir] [clang] [llvm] [clang-tools-extra] [LV] Improve AnyOf reduction codegen. (PR #78304)

2024-02-05 Thread Florian Hahn via cfe-commits
@@ -453,16 +453,17 @@ Value *VPInstruction::generateInstruction(VPTransformState &State, else if (RecurrenceDescriptor::isAnyOfRecurrenceKind(RK)) { TrackingVH ReductionStartValue = RdxDesc.getRecurrenceStartValue(); - ReducedPartRdx =

[clang] [clang-tools-extra] [mlir] [flang] [libcxx] [llvm] [LV] Improve AnyOf reduction codegen. (PR #78304)

2024-02-05 Thread Florian Hahn via cfe-commits
@@ -452,16 +452,17 @@ Value *VPInstruction::generateInstruction(VPTransformState &State, else if (RecurrenceDescriptor::isAnyOfRecurrenceKind(RK)) { TrackingVH ReductionStartValue = RdxDesc.getRecurrenceStartValue(); fhahn wrote

[clang] [clang-tools-extra] [llvm] [mlir] [libcxx] [flang] [LV] Improve AnyOf reduction codegen. (PR #78304)

2024-02-05 Thread Florian Hahn via cfe-commits
@@ -9110,6 +9111,41 @@ void LoopVectorizationPlanner::adjustRecipesForReductions( continue; const RecurrenceDescriptor &RdxDesc = PhiR->getRecurrenceDescriptor(); +// Adjust AnyOf reductions; replace the reduction phi for the selected value +// with a boole

[clang-tools-extra] [libcxx] [mlir] [clang] [llvm] [flang] [LV] Improve AnyOf reduction codegen. (PR #78304)

2024-02-05 Thread Florian Hahn via cfe-commits
@@ -1079,16 +1070,13 @@ Value *llvm::createAnyOfTargetReduction(IRBuilderBase &Builder, Value *Src, NewVal = SI->getTrueValue(); } - // Create a splat vector with the new value and compare this to the vector - // we want to reduce. - ElementCount EC = cast(Src->getTy

[clang-tools-extra] [libcxx] [mlir] [llvm] [clang] [flang] [LV] Improve AnyOf reduction codegen. (PR #78304)

2024-02-05 Thread Florian Hahn via cfe-commits
@@ -9110,6 +9111,41 @@ void LoopVectorizationPlanner::adjustRecipesForReductions( continue; const RecurrenceDescriptor &RdxDesc = PhiR->getRecurrenceDescriptor(); +// Adjust AnyOf reductions; replace the reduction phi for the selected value +// with a boole

[clang] [libcxx] [flang] [mlir] [clang-tools-extra] [llvm] [LV] Improve AnyOf reduction codegen. (PR #78304)

2024-02-05 Thread Florian Hahn via cfe-commits
@@ -9142,7 +9178,9 @@ void LoopVectorizationPlanner::adjustRecipesForReductions( // then extend the loop exit value to enable InstCombine to evaluate the // entire expression in the smaller type. Type *PhiTy = PhiR->getStartValue()->getLiveInIRValue()->getType(); -

[llvm] [mlir] [clang-tools-extra] [clang] [libcxx] [flang] [LV] Improve AnyOf reduction codegen. (PR #78304)

2024-02-05 Thread Florian Hahn via cfe-commits
@@ -9110,6 +9111,41 @@ void LoopVectorizationPlanner::adjustRecipesForReductions( continue; const RecurrenceDescriptor &RdxDesc = PhiR->getRecurrenceDescriptor(); +// Adjust AnyOf reductions; replace the reduction phi for the selected value fha

[llvm] [mlir] [clang] [libcxx] [clang-tools-extra] [flang] [LV] Improve AnyOf reduction codegen. (PR #78304)

2024-02-05 Thread Florian Hahn via cfe-commits
@@ -453,16 +453,17 @@ Value *VPInstruction::generateInstruction(VPTransformState &State, else if (RecurrenceDescriptor::isAnyOfRecurrenceKind(RK)) { TrackingVH ReductionStartValue = RdxDesc.getRecurrenceStartValue(); - ReducedPartRdx =

[llvm] [clang] [clang-tools-extra] [Matrix] Convert column-vector ops feeding dot product to row-vectors. (PR #72647)

2024-02-06 Thread Florian Hahn via cfe-commits
https://github.com/fhahn updated https://github.com/llvm/llvm-project/pull/72647 >From 3dfe86782806f048b130d46afa6293712919f672 Mon Sep 17 00:00:00 2001 From: Florian Hahn Date: Fri, 14 Apr 2023 14:33:57 +0100 Subject: [PATCH 1/2] [Matrix] Convert column-vector ops feeding dot product to row-ve

[clang-tools-extra] [llvm] [clang] [flang] [Matrix] Convert column-vector ops feeding dot product to row-vectors. (PR #72647)

2024-02-06 Thread Florian Hahn via cfe-commits
https://github.com/fhahn updated https://github.com/llvm/llvm-project/pull/72647 >From 3dfe86782806f048b130d46afa6293712919f672 Mon Sep 17 00:00:00 2001 From: Florian Hahn Date: Fri, 14 Apr 2023 14:33:57 +0100 Subject: [PATCH 1/2] [Matrix] Convert column-vector ops feeding dot product to row-ve

[clang-tools-extra] [clang] [flang] [libcxxabi] [openmp] [libcxx] [mlir] [llvm] [libc] [compiler-rt] [AArch64] Combine store (trunc X to <3 x i8>) to sequence of ST1.b. (PR #78637)

2024-01-23 Thread Florian Hahn via cfe-commits
@@ -21471,6 +21471,57 @@ bool isHalvingTruncateOfLegalScalableType(EVT SrcVT, EVT DstVT) { (SrcVT == MVT::nxv2i64 && DstVT == MVT::nxv2i32); } +// Combine store (trunc X to <3 x i8>) to sequence of ST1.b. +static SDValue combineI8TruncStore(StoreSDNode *ST, Selection

[libcxxabi] [compiler-rt] [openmp] [libc] [mlir] [clang-tools-extra] [clang] [libcxx] [llvm] [flang] [AArch64] Combine store (trunc X to <3 x i8>) to sequence of ST1.b. (PR #78637)

2024-01-23 Thread Florian Hahn via cfe-commits
@@ -21471,6 +21471,57 @@ bool isHalvingTruncateOfLegalScalableType(EVT SrcVT, EVT DstVT) { (SrcVT == MVT::nxv2i64 && DstVT == MVT::nxv2i32); } +// Combine store (trunc X to <3 x i8>) to sequence of ST1.b. +static SDValue combineI8TruncStore(StoreSDNode *ST, Selection

[libcxx] [flang] [mlir] [llvm] [compiler-rt] [clang-tools-extra] [openmp] [libcxxabi] [libc] [clang] [AArch64] Combine store (trunc X to <3 x i8>) to sequence of ST1.b. (PR #78637)

2024-01-23 Thread Florian Hahn via cfe-commits
@@ -281,23 +279,19 @@ entry: define void @store_trunc_add_from_64bits(ptr %src, ptr %dst) { ; CHECK-LABEL: store_trunc_add_from_64bits: ; CHECK: ; %bb.0: ; %entry -; CHECK-NEXT:sub sp, sp, #16 -; CHECK-NEXT:.cfi_def_cfa_offset 16 ; CHECK-NEXT:ldr s0, [x0] ;

[libcxx] [flang] [mlir] [llvm] [compiler-rt] [clang-tools-extra] [openmp] [libcxxabi] [libc] [clang] [AArch64] Combine store (trunc X to <3 x i8>) to sequence of ST1.b. (PR #78637)

2024-01-23 Thread Florian Hahn via cfe-commits
@@ -281,23 +279,19 @@ entry: define void @store_trunc_add_from_64bits(ptr %src, ptr %dst) { ; CHECK-LABEL: store_trunc_add_from_64bits: ; CHECK: ; %bb.0: ; %entry -; CHECK-NEXT:sub sp, sp, #16 -; CHECK-NEXT:.cfi_def_cfa_offset 16 ; CHECK-NEXT:ldr s0, [x0] ;

[libcxxabi] [openmp] [clang] [flang] [libcxx] [libc] [compiler-rt] [mlir] [llvm] [clang-tools-extra] [AArch64] Combine store (trunc X to <3 x i8>) to sequence of ST1.b. (PR #78637)

2024-01-24 Thread Florian Hahn via cfe-commits
https://github.com/fhahn updated https://github.com/llvm/llvm-project/pull/78637 >From efd07e93aed51049ad3783c701284617ae446330 Mon Sep 17 00:00:00 2001 From: Florian Hahn Date: Wed, 17 Jan 2024 11:11:59 + Subject: [PATCH 1/5] [AArch64] Combine store (trunc X to <3 x i8>) to sequence of ST1

[openmp] [flang] [llvm] [libcxxabi] [libcxx] [mlir] [compiler-rt] [libc] [clang] [clang-tools-extra] [AArch64] Combine store (trunc X to <3 x i8>) to sequence of ST1.b. (PR #78637)

2024-01-24 Thread Florian Hahn via cfe-commits
https://github.com/fhahn updated https://github.com/llvm/llvm-project/pull/78637 >From efd07e93aed51049ad3783c701284617ae446330 Mon Sep 17 00:00:00 2001 From: Florian Hahn Date: Wed, 17 Jan 2024 11:11:59 + Subject: [PATCH 1/6] [AArch64] Combine store (trunc X to <3 x i8>) to sequence of ST1

[openmp] [flang] [llvm] [libcxxabi] [libcxx] [mlir] [compiler-rt] [libc] [clang] [clang-tools-extra] [AArch64] Combine store (trunc X to <3 x i8>) to sequence of ST1.b. (PR #78637)

2024-01-24 Thread Florian Hahn via cfe-commits
@@ -21471,6 +21471,57 @@ bool isHalvingTruncateOfLegalScalableType(EVT SrcVT, EVT DstVT) { (SrcVT == MVT::nxv2i64 && DstVT == MVT::nxv2i32); } +// Combine store (trunc X to <3 x i8>) to sequence of ST1.b. +static SDValue combineI8TruncStore(StoreSDNode *ST, Selection

[openmp] [flang] [llvm] [libcxxabi] [libcxx] [mlir] [compiler-rt] [libc] [clang] [clang-tools-extra] [AArch64] Combine store (trunc X to <3 x i8>) to sequence of ST1.b. (PR #78637)

2024-01-24 Thread Florian Hahn via cfe-commits
fhahn wrote: Updated, comments should be addressed and also updated to use `MachineFunction::getMachineMemOperand` https://github.com/llvm/llvm-project/pull/78637 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/m

[flang] [mlir] [llvm] [clang-tools-extra] [libc] [libcxx] [clang] [openmp] [compiler-rt] [libcxxabi] [AArch64] Add custom lowering for load <3 x i8>. (PR #78632)

2024-01-24 Thread Florian Hahn via cfe-commits
https://github.com/fhahn updated https://github.com/llvm/llvm-project/pull/78632 >From a786cdedc2c9a9898cd0b80d84f5b11aace5da1c Mon Sep 17 00:00:00 2001 From: Florian Hahn Date: Tue, 28 Nov 2023 15:44:02 + Subject: [PATCH 1/4] [AArch64] Add custom lowering for load <3 x i8>. Add custom comb

[clang-tools-extra] [libc] [libcxx] [llvm] [libcxxabi] [openmp] [clang] [compiler-rt] [flang] [mlir] [AArch64] Add custom lowering for load <3 x i8>. (PR #78632)

2024-01-24 Thread Florian Hahn via cfe-commits
https://github.com/fhahn updated https://github.com/llvm/llvm-project/pull/78632 >From a786cdedc2c9a9898cd0b80d84f5b11aace5da1c Mon Sep 17 00:00:00 2001 From: Florian Hahn Date: Tue, 28 Nov 2023 15:44:02 + Subject: [PATCH 1/5] [AArch64] Add custom lowering for load <3 x i8>. Add custom comb

[mlir] [clang] [openmp] [libcxx] [compiler-rt] [llvm] [libcxxabi] [flang] [libc] [clang-tools-extra] [AArch64] Add custom lowering for load <3 x i8>. (PR #78632)

2024-01-24 Thread Florian Hahn via cfe-commits
@@ -21248,6 +21248,51 @@ static SDValue foldTruncStoreOfExt(SelectionDAG &DAG, SDNode *N) { return SDValue(); } +// A custom combine to lower load <3 x i8> as the more efficient sequence +// below: +//ldrb wX, [x0, #2] +//ldrh wY, [x0] +//orr wX, wY, wX, lsl #16

[libc] [libcxxabi] [libcxx] [flang] [mlir] [openmp] [clang-tools-extra] [clang] [compiler-rt] [llvm] [AArch64] Combine store (trunc X to <3 x i8>) to sequence of ST1.b. (PR #78637)

2024-01-24 Thread Florian Hahn via cfe-commits
@@ -281,23 +279,19 @@ entry: define void @store_trunc_add_from_64bits(ptr %src, ptr %dst) { ; CHECK-LABEL: store_trunc_add_from_64bits: ; CHECK: ; %bb.0: ; %entry -; CHECK-NEXT:sub sp, sp, #16 -; CHECK-NEXT:.cfi_def_cfa_offset 16 ; CHECK-NEXT:ldr s0, [x0] ;

[flang] [lld] [libc] [clang-tools-extra] [libclc] [clang] [libcxx] [libcxxabi] [llvm] [lldb] [compiler-rt] [VPlan] Add new VPUniformPerUFRecipe, use for step truncation. (PR #78113)

2024-01-25 Thread Florian Hahn via cfe-commits
https://github.com/fhahn updated https://github.com/llvm/llvm-project/pull/78113 >From 36b085f21b76d7bf7c9965a86a09d1cef4fe9329 Mon Sep 17 00:00:00 2001 From: Florian Hahn Date: Sun, 14 Jan 2024 14:13:08 + Subject: [PATCH 1/5] [VPlan] Add new VPUniformPerUFRecipe, use for step truncation.

[libc] [compiler-rt] [libclc] [lldb] [clang-tools-extra] [flang] [libcxx] [libcxxabi] [llvm] [lld] [clang] [VPlan] Add new VPScalarCastRecipe, use for IV & step trunc. (PR #78113)

2024-01-25 Thread Florian Hahn via cfe-commits
https://github.com/fhahn edited https://github.com/llvm/llvm-project/pull/78113 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[libcxx] [libcxxabi] [clang] [flang] [lldb] [llvm] [libclc] [clang-tools-extra] [compiler-rt] [libc] [lld] [VPlan] Add new VPScalarCastRecipe, use for IV & step trunc. (PR #78113)

2024-01-25 Thread Florian Hahn via cfe-commits
https://github.com/fhahn edited https://github.com/llvm/llvm-project/pull/78113 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[libcxx] [libcxxabi] [clang] [flang] [lldb] [llvm] [libclc] [clang-tools-extra] [compiler-rt] [libc] [lld] [VPlan] Add new VPScalarCastRecipe, use for IV & step trunc. (PR #78113)

2024-01-25 Thread Florian Hahn via cfe-commits
https://github.com/fhahn updated https://github.com/llvm/llvm-project/pull/78113 >From 36b085f21b76d7bf7c9965a86a09d1cef4fe9329 Mon Sep 17 00:00:00 2001 From: Florian Hahn Date: Sun, 14 Jan 2024 14:13:08 + Subject: [PATCH 1/6] [VPlan] Add new VPUniformPerUFRecipe, use for step truncation.

[libc] [compiler-rt] [libclc] [lldb] [clang-tools-extra] [flang] [libcxx] [libcxxabi] [llvm] [lld] [clang] [VPlan] Add new VPScalarCastRecipe, use for IV & step trunc. (PR #78113)

2024-01-25 Thread Florian Hahn via cfe-commits
@@ -1469,6 +1461,52 @@ void VPReplicateRecipe::print(raw_ostream &O, const Twine &Indent, } #endif +static bool isUniformAcrossVFsAndUFs(VPScalarCastRecipe *C) { fhahn wrote: Added comment + TODO, thanks! https://github.com/llvm/llvm-project/pull/78113

[libcxx] [libcxxabi] [clang] [flang] [lldb] [llvm] [libclc] [clang-tools-extra] [compiler-rt] [libc] [lld] [VPlan] Add new VPScalarCastRecipe, use for IV & step trunc. (PR #78113)

2024-01-25 Thread Florian Hahn via cfe-commits
https://github.com/fhahn edited https://github.com/llvm/llvm-project/pull/78113 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[compiler-rt] [lldb] [flang] [libc] [libcxxabi] [llvm] [lld] [libcxx] [clang] [libclc] [clang-tools-extra] [VPlan] Add new VPScalarCastRecipe, use for IV & step trunc. (PR #78113)

2024-01-25 Thread Florian Hahn via cfe-commits
@@ -230,7 +230,11 @@ Type *VPTypeAnalysis::inferScalarType(const VPValue *V) { return V->getUnderlyingValue()->getType(); }) .Case( - [](const VPWidenCastRecipe *R) { return R->getResultType(); }); + [](const VPWidenCast

[llvm] [flang] [libc] [lld] [libclc] [libcxx] [lldb] [clang] [clang-tools-extra] [libcxxabi] [compiler-rt] [VPlan] Add new VPScalarCastRecipe, use for IV & step trunc. (PR #78113)

2024-01-25 Thread Florian Hahn via cfe-commits
https://github.com/fhahn commented: Comments should be addressed and title & description updated, thanks! https://github.com/llvm/llvm-project/pull/78113 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/lis

[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)

2024-01-25 Thread Florian Hahn via cfe-commits
@@ -1469,6 +1461,52 @@ void VPReplicateRecipe::print(raw_ostream &O, const Twine &Indent, } #endif +static bool isUniformAcrossVFsAndUFs(VPScalarCastRecipe *C) { + return C->isDefinedOutsideVectorRegions() || + isa(C->getOperand(0)) || + isa(C->getOperand(0))

[libcxx] [lld] [lldb] [flang] [compiler-rt] [llvm] [libcxxabi] [libclc] [clang] [libc] [clang-tools-extra] [VPlan] Add new VPScalarCastRecipe, use for IV & step trunc. (PR #78113)

2024-01-25 Thread Florian Hahn via cfe-commits
@@ -498,10 +498,34 @@ static VPValue *createScalarIVSteps(VPlan &Plan, const InductionDescriptor &ID, VPCanonicalIVPHIRecipe *CanonicalIV = Plan.getCanonicalIV(); Type *TruncTy = TruncI ? TruncI->getType() : IVTy; VPValue *BaseIV = CanonicalIV; fhahn wro

[llvm] [flang] [libc] [libcxx] [clang] [mlir] [clang-tools-extra] [openmp] [libcxxabi] [compiler-rt] [AArch64] Combine store (trunc X to <3 x i8>) to sequence of ST1.b. (PR #78637)

2024-01-25 Thread Florian Hahn via cfe-commits
https://github.com/fhahn updated https://github.com/llvm/llvm-project/pull/78637 >From efd07e93aed51049ad3783c701284617ae446330 Mon Sep 17 00:00:00 2001 From: Florian Hahn Date: Wed, 17 Jan 2024 11:11:59 + Subject: [PATCH 1/7] [AArch64] Combine store (trunc X to <3 x i8>) to sequence of ST1

[llvm] [flang] [libc] [libcxx] [clang] [mlir] [clang-tools-extra] [openmp] [libcxxabi] [compiler-rt] [AArch64] Combine store (trunc X to <3 x i8>) to sequence of ST1.b. (PR #78637)

2024-01-25 Thread Florian Hahn via cfe-commits
@@ -21471,6 +21471,53 @@ bool isHalvingTruncateOfLegalScalableType(EVT SrcVT, EVT DstVT) { (SrcVT == MVT::nxv2i64 && DstVT == MVT::nxv2i32); } +// Combine store (trunc X to <3 x i8>) to sequence of ST1.b. +static SDValue combineI8TruncStore(StoreSDNode *ST, Selection

[clang] [libcxx] [compiler-rt] [libc] [flang] [llvm] [clang-tools-extra] [libcxxabi] [openmp] [mlir] [AArch64] Add custom lowering for load <3 x i8>. (PR #78632)

2024-01-25 Thread Florian Hahn via cfe-commits
https://github.com/fhahn updated https://github.com/llvm/llvm-project/pull/78632 >From a786cdedc2c9a9898cd0b80d84f5b11aace5da1c Mon Sep 17 00:00:00 2001 From: Florian Hahn Date: Tue, 28 Nov 2023 15:44:02 + Subject: [PATCH 1/6] [AArch64] Add custom lowering for load <3 x i8>. Add custom comb

[clang] [libcxx] [compiler-rt] [libc] [flang] [llvm] [clang-tools-extra] [libcxxabi] [openmp] [mlir] [AArch64] Add custom lowering for load <3 x i8>. (PR #78632)

2024-01-25 Thread Florian Hahn via cfe-commits
fhahn wrote: > > Thanks, this is indeed more compact. I tried to massage the SelectionDAG > > nodes to generate it > > ([7cc78c5](https://github.com/llvm/llvm-project/commit/7cc78c52f481161d7195ac4c7f9ec05b1cd1f442)) > > but it appears there are some cases where this results in slightly more

[llvm] [libc] [lld] [libcxxabi] [clang-tools-extra] [clang] [flang] [compiler-rt] [libclc] [libcxx] [lldb] [VPlan] Add new VPScalarCastRecipe, use for IV & step trunc. (PR #78113)

2024-01-25 Thread Florian Hahn via cfe-commits
https://github.com/fhahn updated https://github.com/llvm/llvm-project/pull/78113 >From 36b085f21b76d7bf7c9965a86a09d1cef4fe9329 Mon Sep 17 00:00:00 2001 From: Florian Hahn Date: Sun, 14 Jan 2024 14:13:08 + Subject: [PATCH 1/7] [VPlan] Add new VPUniformPerUFRecipe, use for step truncation.

[libcxxabi] [lld] [lldb] [flang] [libc] [llvm] [compiler-rt] [libclc] [clang] [libcxx] [clang-tools-extra] [VPlan] Add new VPScalarCastRecipe, use for IV & step trunc. (PR #78113)

2024-01-25 Thread Florian Hahn via cfe-commits
@@ -491,19 +491,41 @@ void VPlanTransforms::removeDeadRecipes(VPlan &Plan) { static VPValue *createScalarIVSteps(VPlan &Plan, const InductionDescriptor &ID, ScalarEvolution &SE, Instruction *TruncI, -Type

[lld] [libc] [lldb] [compiler-rt] [libcxx] [flang] [libclc] [libcxxabi] [clang-tools-extra] [clang] [llvm] [VPlan] Add new VPScalarCastRecipe, use for IV & step trunc. (PR #78113)

2024-01-25 Thread Florian Hahn via cfe-commits
https://github.com/fhahn commented: Address latest comments, thanks! https://github.com/llvm/llvm-project/pull/78113 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[llvm] [clang-tools-extra] [libc] [lldb] [compiler-rt] [libclc] [libcxx] [libcxxabi] [clang] [flang] [lld] [VPlan] Add new VPScalarCastRecipe, use for IV & step trunc. (PR #78113)

2024-01-25 Thread Florian Hahn via cfe-commits
@@ -491,19 +491,41 @@ void VPlanTransforms::removeDeadRecipes(VPlan &Plan) { static VPValue *createScalarIVSteps(VPlan &Plan, const InductionDescriptor &ID, ScalarEvolution &SE, Instruction *TruncI, -Type

[libcxxabi] [lldb] [clang-tools-extra] [libc] [flang] [llvm] [compiler-rt] [libclc] [libcxx] [lld] [clang] [VPlan] Add new VPScalarCastRecipe, use for IV & step trunc. (PR #78113)

2024-01-25 Thread Florian Hahn via cfe-commits
@@ -491,19 +491,41 @@ void VPlanTransforms::removeDeadRecipes(VPlan &Plan) { static VPValue *createScalarIVSteps(VPlan &Plan, const InductionDescriptor &ID, ScalarEvolution &SE, Instruction *TruncI, -Type

[llvm] [libc] [lld] [libcxxabi] [clang-tools-extra] [clang] [flang] [compiler-rt] [libclc] [libcxx] [lldb] [VPlan] Add new VPScalarCastRecipe, use for IV & step trunc. (PR #78113)

2024-01-25 Thread Florian Hahn via cfe-commits
https://github.com/fhahn edited https://github.com/llvm/llvm-project/pull/78113 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[flang] [llvm] [clang-tools-extra] [libclc] [compiler-rt] [libcxxabi] [clang] [lldb] [lld] [libcxx] [libc] [VPlan] Add new VPScalarCastRecipe, use for IV & step trunc. (PR #78113)

2024-01-25 Thread Florian Hahn via cfe-commits
@@ -859,6 +859,7 @@ class VPSingleDefRecipe : public VPRecipeBase, public VPValue { case VPRecipeBase::VPWidenIntOrFpInductionSC: case VPRecipeBase::VPWidenPointerInductionSC: case VPRecipeBase::VPReductionPHISC: +case VPRecipeBase::VPScalarCastSC:

[libcxxabi] [lldb] [clang-tools-extra] [llvm] [libcxx] [libc] [libclc] [lld] [compiler-rt] [flang] [clang] [VPlan] Add new VPScalarCastRecipe, use for IV & step trunc. (PR #78113)

2024-01-25 Thread Florian Hahn via cfe-commits
@@ -491,19 +491,41 @@ void VPlanTransforms::removeDeadRecipes(VPlan &Plan) { static VPValue *createScalarIVSteps(VPlan &Plan, const InductionDescriptor &ID, ScalarEvolution &SE, Instruction *TruncI, -Type

[lldb] [clang-tools-extra] [compiler-rt] [llvm] [libcxxabi] [libclc] [libc] [lld] [clang] [libcxx] [flang] [VPlan] Add new VPScalarCastRecipe, use for IV & step trunc. (PR #78113)

2024-01-25 Thread Florian Hahn via cfe-commits
@@ -1469,6 +1461,52 @@ void VPReplicateRecipe::print(raw_ostream &O, const Twine &Indent, } #endif +static bool isUniformAcrossVFsAndUFs(VPScalarCastRecipe *C) { + return C->isDefinedOutsideVectorRegions() || + isa(C->getOperand(0)) || + isa(C->getOperand(0))

[flang] [llvm] [compiler-rt] [libcxx] [libclc] [libcxxabi] [lldb] [clang-tools-extra] [libc] [lld] [clang] [VPlan] Add new VPScalarCastRecipe, use for IV & step trunc. (PR #78113)

2024-01-25 Thread Florian Hahn via cfe-commits
@@ -491,19 +491,41 @@ void VPlanTransforms::removeDeadRecipes(VPlan &Plan) { static VPValue *createScalarIVSteps(VPlan &Plan, const InductionDescriptor &ID, ScalarEvolution &SE, Instruction *TruncI, -Type

[flang] [llvm] [clang-tools-extra] [libcxxabi] [compiler-rt] [mlir] [clang] [openmp] [libcxx] [libc] [AArch64] Add custom lowering for load <3 x i8>. (PR #78632)

2024-01-25 Thread Florian Hahn via cfe-commits
https://github.com/fhahn updated https://github.com/llvm/llvm-project/pull/78632 >From a786cdedc2c9a9898cd0b80d84f5b11aace5da1c Mon Sep 17 00:00:00 2001 From: Florian Hahn Date: Tue, 28 Nov 2023 15:44:02 + Subject: [PATCH 1/7] [AArch64] Add custom lowering for load <3 x i8>. Add custom comb

[clang-tools-extra] [compiler-rt] [openmp] [libcxxabi] [mlir] [flang] [libc] [clang] [libcxx] [llvm] [AArch64] Combine store (trunc X to <3 x i8>) to sequence of ST1.b. (PR #78637)

2024-01-25 Thread Florian Hahn via cfe-commits
https://github.com/fhahn closed https://github.com/llvm/llvm-project/pull/78637 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [lld] [llvm] [libc] [flang] [libcxx] [compiler-rt] [clang-tools-extra] [lldb] [VPlan] Implement cloning of VPlans. (PR #73158)

2024-01-25 Thread Florian Hahn via cfe-commits
https://github.com/fhahn updated https://github.com/llvm/llvm-project/pull/73158 >From 13a26e8e7440c3b501730b22588af393a3e543cd Mon Sep 17 00:00:00 2001 From: Florian Hahn Date: Thu, 6 Jul 2023 08:07:45 +0100 Subject: [PATCH 1/3] [VPlan] Implement cloning of VPlans. This patch implements clonin

[clang-tools-extra] [clang] [compiler-rt] [flang] [libcxx] [lldb] [lld] [llvm] [libc] [VPlan] Implement cloning of VPlans. (PR #73158)

2024-01-25 Thread Florian Hahn via cfe-commits
@@ -2694,6 +2852,9 @@ class VPlan { /// been modeled in VPlan directly. DenseMap SCEVToExpansion; + /// Construct an uninitialized VPlan, should be used for cloning only. + explicit VPlan() = default; + fhahn wrote: Removed, thanks! https://github.com/

[libcxx] [flang] [llvm] [clang] [lldb] [clang-tools-extra] [compiler-rt] [lld] [libc] [VPlan] Implement cloning of VPlans. (PR #73158)

2024-01-25 Thread Florian Hahn via cfe-commits
@@ -614,6 +614,61 @@ void VPBasicBlock::print(raw_ostream &O, const Twine &Indent, printSuccessors(O, Indent); } #endif +static void cloneCFG(VPBlockBase *Entry, + DenseMap &Old2NewVPBlocks); fhahn wrote: Updated as suggested and renamed

[clang] [lld] [llvm] [libc] [flang] [libcxx] [compiler-rt] [clang-tools-extra] [lldb] [VPlan] Implement cloning of VPlans. (PR #73158)

2024-01-25 Thread Florian Hahn via cfe-commits
@@ -982,6 +1037,94 @@ void VPlan::updateDominatorTree(DominatorTree *DT, BasicBlock *LoopHeaderBB, assert(DT->verify(DominatorTree::VerificationLevel::Fast)); } +static void remapOperands(VPBlockBase *Entry, VPBlockBase *NewEntry, + DenseMap &Old2Ne

[libcxx] [libc] [compiler-rt] [clang-tools-extra] [lld] [llvm] [lldb] [clang] [flang] [VPlan] Implement cloning of VPlans. (PR #73158)

2024-01-25 Thread Florian Hahn via cfe-commits
@@ -982,6 +1037,94 @@ void VPlan::updateDominatorTree(DominatorTree *DT, BasicBlock *LoopHeaderBB, assert(DT->verify(DominatorTree::VerificationLevel::Fast)); } +static void remapOperands(VPBlockBase *Entry, VPBlockBase *NewEntry, + DenseMap &Old2Ne

[clang-tools-extra] [libc] [libcxx] [llvm] [compiler-rt] [lldb] [lld] [flang] [clang] [VPlan] Implement cloning of VPlans. (PR #73158)

2024-01-25 Thread Florian Hahn via cfe-commits
@@ -1594,6 +1657,13 @@ class VPWidenPHIRecipe : public VPHeaderPHIRecipe { addOperand(Start); } + VPRecipeBase *clone() override { +auto *Res = new VPWidenPHIRecipe(cast(getUnderlyingInstr()), fhahn wrote: Changed to `llvm_unreachable`, thanks!

[lldb] [flang] [clang-tools-extra] [clang] [libc] [libcxx] [lld] [compiler-rt] [llvm] [VPlan] Implement cloning of VPlans. (PR #73158)

2024-01-25 Thread Florian Hahn via cfe-commits
@@ -982,6 +1037,94 @@ void VPlan::updateDominatorTree(DominatorTree *DT, BasicBlock *LoopHeaderBB, assert(DT->verify(DominatorTree::VerificationLevel::Fast)); } +static void remapOperands(VPBlockBase *Entry, VPBlockBase *NewEntry, + DenseMap &Old2Ne

[lld] [lldb] [libcxx] [compiler-rt] [clang-tools-extra] [llvm] [libc] [clang] [flang] [VPlan] Implement cloning of VPlans. (PR #73158)

2024-01-25 Thread Florian Hahn via cfe-commits
@@ -614,6 +614,61 @@ void VPBasicBlock::print(raw_ostream &O, const Twine &Indent, printSuccessors(O, Indent); } #endif +static void cloneCFG(VPBlockBase *Entry, + DenseMap &Old2NewVPBlocks); + +static VPBlockBase *cloneVPB(VPBlockBase *BB) { + if (auto

[llvm] [clang-tools-extra] [libcxx] [lld] [compiler-rt] [libc] [clang] [flang] [lldb] [VPlan] Implement cloning of VPlans. (PR #73158)

2024-01-25 Thread Florian Hahn via cfe-commits
@@ -614,6 +614,61 @@ void VPBasicBlock::print(raw_ostream &O, const Twine &Indent, printSuccessors(O, Indent); } #endif +static void cloneCFG(VPBlockBase *Entry, + DenseMap &Old2NewVPBlocks); + +static VPBlockBase *cloneVPB(VPBlockBase *BB) { + if (auto

[lld] [lldb] [clang-tools-extra] [clang] [libcxx] [libc] [flang] [llvm] [compiler-rt] [VPlan] Implement cloning of VPlans. (PR #73158)

2024-01-25 Thread Florian Hahn via cfe-commits
@@ -614,6 +614,61 @@ void VPBasicBlock::print(raw_ostream &O, const Twine &Indent, printSuccessors(O, Indent); } #endif +static void cloneCFG(VPBlockBase *Entry, + DenseMap &Old2NewVPBlocks); + +static VPBlockBase *cloneVPB(VPBlockBase *BB) {

[flang] [llvm] [libcxx] [clang] [compiler-rt] [lld] [clang-tools-extra] [libc] [lldb] [VPlan] Implement cloning of VPlans. (PR #73158)

2024-01-25 Thread Florian Hahn via cfe-commits
@@ -982,6 +1037,94 @@ void VPlan::updateDominatorTree(DominatorTree *DT, BasicBlock *LoopHeaderBB, assert(DT->verify(DominatorTree::VerificationLevel::Fast)); } +static void remapOperands(VPBlockBase *Entry, VPBlockBase *NewEntry, + DenseMap &Old2Ne

[libcxxabi] [clang] [libc] [lld] [flang] [clang-tools-extra] [lldb] [libcxx] [compiler-rt] [llvm] [libclc] [VPlan] Add new VPScalarCastRecipe, use for IV & step trunc. (PR #78113)

2024-01-25 Thread Florian Hahn via cfe-commits
https://github.com/fhahn updated https://github.com/llvm/llvm-project/pull/78113 >From 36b085f21b76d7bf7c9965a86a09d1cef4fe9329 Mon Sep 17 00:00:00 2001 From: Florian Hahn Date: Sun, 14 Jan 2024 14:13:08 + Subject: [PATCH 1/8] [VPlan] Add new VPUniformPerUFRecipe, use for step truncation.

[clang] [lld] [libclc] [libcxxabi] [libc] [libcxx] [clang-tools-extra] [flang] [llvm] [compiler-rt] [lldb] [VPlan] Add new VPScalarCastRecipe, use for IV & step trunc. (PR #78113)

2024-01-25 Thread Florian Hahn via cfe-commits
@@ -491,17 +491,39 @@ void VPlanTransforms::removeDeadRecipes(VPlan &Plan) { static VPValue *createScalarIVSteps(VPlan &Plan, const InductionDescriptor &ID, ScalarEvolution &SE, Instruction *TruncI, -Type

[libc] [llvm] [lld] [lldb] [libcxx] [clang-tools-extra] [clang] [flang] [libcxxabi] [libclc] [compiler-rt] [VPlan] Add new VPScalarCastRecipe, use for IV & step trunc. (PR #78113)

2024-01-25 Thread Florian Hahn via cfe-commits
https://github.com/fhahn edited https://github.com/llvm/llvm-project/pull/78113 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[libcxx] [llvm] [libcxxabi] [clang] [clang-tools-extra] [flang] [libclc] [lld] [compiler-rt] [lldb] [libc] [VPlan] Add new VPScalarCastRecipe, use for IV & step trunc. (PR #78113)

2024-01-25 Thread Florian Hahn via cfe-commits
@@ -491,19 +491,41 @@ void VPlanTransforms::removeDeadRecipes(VPlan &Plan) { static VPValue *createScalarIVSteps(VPlan &Plan, const InductionDescriptor &ID, ScalarEvolution &SE, Instruction *TruncI, -Type

[compiler-rt] [libcxx] [llvm] [clang] [clang-tools-extra] [flang] [libc] [lld] [lldb] [libcxxabi] [libclc] [VPlan] Add new VPScalarCastRecipe, use for IV & step trunc. (PR #78113)

2024-01-25 Thread Florian Hahn via cfe-commits
@@ -491,17 +491,39 @@ void VPlanTransforms::removeDeadRecipes(VPlan &Plan) { static VPValue *createScalarIVSteps(VPlan &Plan, const InductionDescriptor &ID, ScalarEvolution &SE, Instruction *TruncI, -Type

[clang] [clang-tools-extra] [lld] [libcxxabi] [lldb] [llvm] [compiler-rt] [libc] [libcxx] [libclc] [flang] [VPlan] Add new VPScalarCastRecipe, use for IV & step trunc. (PR #78113)

2024-01-25 Thread Florian Hahn via cfe-commits
https://github.com/fhahn commented: Missed comments should be addressed now, seems I missed them in the GitHub UI somehow https://github.com/llvm/llvm-project/pull/78113 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cg

[clang] [compiler-rt] [flang] [libcxx] [libc] [lldb] [lld] [libcxxabi] [llvm] [libclc] [clang-tools-extra] [VPlan] Add new VPScalarCastRecipe, use for IV & step trunc. (PR #78113)

2024-01-25 Thread Florian Hahn via cfe-commits
@@ -491,19 +491,41 @@ void VPlanTransforms::removeDeadRecipes(VPlan &Plan) { static VPValue *createScalarIVSteps(VPlan &Plan, const InductionDescriptor &ID, ScalarEvolution &SE, Instruction *TruncI, -Type

[lld] [llvm] [clang] [flang] [libc] [libclc] [lldb] [libcxx] [libcxxabi] [clang-tools-extra] [compiler-rt] [VPlan] Add new VPScalarCastRecipe, use for IV & step trunc. (PR #78113)

2024-01-25 Thread Florian Hahn via cfe-commits
@@ -491,19 +491,41 @@ void VPlanTransforms::removeDeadRecipes(VPlan &Plan) { static VPValue *createScalarIVSteps(VPlan &Plan, const InductionDescriptor &ID, ScalarEvolution &SE, Instruction *TruncI, -Type

[libcxxabi] [lld] [llvm] [lldb] [compiler-rt] [clang-tools-extra] [libc] [libclc] [flang] [libcxx] [clang] [VPlan] Add new VPScalarCastRecipe, use for IV & step trunc. (PR #78113)

2024-01-25 Thread Florian Hahn via cfe-commits
@@ -491,17 +491,39 @@ void VPlanTransforms::removeDeadRecipes(VPlan &Plan) { static VPValue *createScalarIVSteps(VPlan &Plan, const InductionDescriptor &ID, ScalarEvolution &SE, Instruction *TruncI, -Type

[compiler-rt] [lld] [lldb] [clang] [libcxx] [llvm] [libcxxabi] [flang] [clang-tools-extra] [libc] [libclc] [VPlan] Add new VPScalarCastRecipe, use for IV & step trunc. (PR #78113)

2024-01-25 Thread Florian Hahn via cfe-commits
https://github.com/fhahn updated https://github.com/llvm/llvm-project/pull/78113 >From 36b085f21b76d7bf7c9965a86a09d1cef4fe9329 Mon Sep 17 00:00:00 2001 From: Florian Hahn Date: Sun, 14 Jan 2024 14:13:08 + Subject: [PATCH 1/8] [VPlan] Add new VPUniformPerUFRecipe, use for step truncation.

[clang-tools-extra] [flang] [llvm] [libcxx] [clang] [libcxxabi] [compiler-rt] [libc] [lldb] [lld] [libclc] [VPlan] Add new VPScalarCastRecipe, use for IV & step trunc. (PR #78113)

2024-01-26 Thread Florian Hahn via cfe-commits
https://github.com/fhahn updated https://github.com/llvm/llvm-project/pull/78113 >From 36b085f21b76d7bf7c9965a86a09d1cef4fe9329 Mon Sep 17 00:00:00 2001 From: Florian Hahn Date: Sun, 14 Jan 2024 14:13:08 + Subject: [PATCH 1/9] [VPlan] Add new VPUniformPerUFRecipe, use for step truncation.

[clang-tools-extra] [flang] [llvm] [libcxx] [clang] [libcxxabi] [compiler-rt] [libc] [lldb] [lld] [libclc] [VPlan] Add new VPScalarCastRecipe, use for IV & step trunc. (PR #78113)

2024-01-26 Thread Florian Hahn via cfe-commits
@@ -491,17 +491,38 @@ void VPlanTransforms::removeDeadRecipes(VPlan &Plan) { static VPValue *createScalarIVSteps(VPlan &Plan, const InductionDescriptor &ID, ScalarEvolution &SE, Instruction *TruncI, -Type

[compiler-rt] [flang] [lld] [mlir] [libc] [libcxxabi] [libcxx] [lldb] [clang] [openmp] [llvm] [libclc] [clang-tools-extra] [VPlan] Add new VPScalarCastRecipe, use for IV & step trunc. (PR #78113)

2024-01-26 Thread Florian Hahn via cfe-commits
https://github.com/fhahn updated https://github.com/llvm/llvm-project/pull/78113 >From 36b085f21b76d7bf7c9965a86a09d1cef4fe9329 Mon Sep 17 00:00:00 2001 From: Florian Hahn Date: Sun, 14 Jan 2024 14:13:08 + Subject: [PATCH 1/9] [VPlan] Add new VPUniformPerUFRecipe, use for step truncation.

[compiler-rt] [flang] [lld] [mlir] [libc] [libcxxabi] [libcxx] [lldb] [clang] [openmp] [llvm] [libclc] [clang-tools-extra] [VPlan] Add new VPScalarCastRecipe, use for IV & step trunc. (PR #78113)

2024-01-26 Thread Florian Hahn via cfe-commits
https://github.com/fhahn updated https://github.com/llvm/llvm-project/pull/78113 >From 36b085f21b76d7bf7c9965a86a09d1cef4fe9329 Mon Sep 17 00:00:00 2001 From: Florian Hahn Date: Sun, 14 Jan 2024 14:13:08 + Subject: [PATCH 01/10] [VPlan] Add new VPUniformPerUFRecipe, use for step truncation.

[compiler-rt] [flang] [lld] [libc] [libcxx] [lldb] [clang] [llvm] [clang-tools-extra] [VPlan] Implement cloning of VPlans. (PR #73158)

2024-01-26 Thread Florian Hahn via cfe-commits
https://github.com/fhahn updated https://github.com/llvm/llvm-project/pull/73158 >From 13a26e8e7440c3b501730b22588af393a3e543cd Mon Sep 17 00:00:00 2001 From: Florian Hahn Date: Thu, 6 Jul 2023 08:07:45 +0100 Subject: [PATCH 1/3] [VPlan] Implement cloning of VPlans. This patch implements clonin

[openmp] [libclc] [clang] [compiler-rt] [llvm] [flang] [libcxx] [lld] [clang-tools-extra] [mlir] [lldb] [libcxxabi] [libc] [VPlan] Add new VPScalarCastRecipe, use for IV & step trunc. (PR #78113)

2024-01-26 Thread Florian Hahn via cfe-commits
@@ -491,17 +491,39 @@ void VPlanTransforms::removeDeadRecipes(VPlan &Plan) { static VPValue *createScalarIVSteps(VPlan &Plan, const InductionDescriptor &ID, ScalarEvolution &SE, Instruction *TruncI, -Type

[libcxx] [clang] [mlir] [llvm] [clang-tools-extra] [openmp] [flang] [libclc] [lld] [lldb] [libcxxabi] [compiler-rt] [libc] [VPlan] Add new VPScalarCastRecipe, use for IV & step trunc. (PR #78113)

2024-01-26 Thread Florian Hahn via cfe-commits
https://github.com/fhahn closed https://github.com/llvm/llvm-project/pull/78113 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[libcxx] [clang] [llvm] [clang-tools-extra] [flang] [lld] [lldb] [compiler-rt] [libc] [VPlan] Implement cloning of VPlans. (PR #73158)

2024-01-26 Thread Florian Hahn via cfe-commits
https://github.com/fhahn updated https://github.com/llvm/llvm-project/pull/73158 >From 13a26e8e7440c3b501730b22588af393a3e543cd Mon Sep 17 00:00:00 2001 From: Florian Hahn Date: Thu, 6 Jul 2023 08:07:45 +0100 Subject: [PATCH 1/4] [VPlan] Implement cloning of VPlans. This patch implements clonin

[libc] [lld] [llvm] [lldb] [clang-tools-extra] [clang] [flang] [compiler-rt] [libcxx] [VPlan] Implement cloning of VPlans. (PR #73158)

2024-01-26 Thread Florian Hahn via cfe-commits
@@ -982,6 +1037,92 @@ void VPlan::updateDominatorTree(DominatorTree *DT, BasicBlock *LoopHeaderBB, assert(DT->verify(DominatorTree::VerificationLevel::Fast)); } +static void remapOperands(VPBlockBase *Entry, VPBlockBase *NewEntry, + DenseMap &Old2Ne

[clang] [lld] [libc] [flang] [lldb] [libcxx] [clang-tools-extra] [llvm] [compiler-rt] [VPlan] Implement cloning of VPlans. (PR #73158)

2024-01-26 Thread Florian Hahn via cfe-commits
@@ -982,6 +1037,92 @@ void VPlan::updateDominatorTree(DominatorTree *DT, BasicBlock *LoopHeaderBB, assert(DT->verify(DominatorTree::VerificationLevel::Fast)); } +static void remapOperands(VPBlockBase *Entry, VPBlockBase *NewEntry, + DenseMap &Old2Ne

[clang-tools-extra] [libcxx] [flang] [lld] [lldb] [libc] [llvm] [compiler-rt] [clang] [VPlan] Implement cloning of VPlans. (PR #73158)

2024-01-26 Thread Florian Hahn via cfe-commits
@@ -982,6 +1037,92 @@ void VPlan::updateDominatorTree(DominatorTree *DT, BasicBlock *LoopHeaderBB, assert(DT->verify(DominatorTree::VerificationLevel::Fast)); } +static void remapOperands(VPBlockBase *Entry, VPBlockBase *NewEntry, fhahn wrote: I left it as

[libc] [clang] [flang] [clang-tools-extra] [compiler-rt] [llvm] [libcxx] [lld] [lldb] [VPlan] Implement cloning of VPlans. (PR #73158)

2024-01-26 Thread Florian Hahn via cfe-commits
@@ -982,6 +1037,92 @@ void VPlan::updateDominatorTree(DominatorTree *DT, BasicBlock *LoopHeaderBB, assert(DT->verify(DominatorTree::VerificationLevel::Fast)); } +static void remapOperands(VPBlockBase *Entry, VPBlockBase *NewEntry, + DenseMap &Old2Ne

[llvm] [clang] [flang] [compiler-rt] [clang-tools-extra] [libcxx] [lldb] [libc] [lld] [VPlan] Implement cloning of VPlans. (PR #73158)

2024-01-26 Thread Florian Hahn via cfe-commits
@@ -982,6 +1037,92 @@ void VPlan::updateDominatorTree(DominatorTree *DT, BasicBlock *LoopHeaderBB, assert(DT->verify(DominatorTree::VerificationLevel::Fast)); } +static void remapOperands(VPBlockBase *Entry, VPBlockBase *NewEntry, + DenseMap &Old2Ne

[libcxx] [lldb] [clang] [compiler-rt] [libc] [lld] [llvm] [flang] [clang-tools-extra] [VPlan] Implement cloning of VPlans. (PR #73158)

2024-01-26 Thread Florian Hahn via cfe-commits
@@ -614,6 +614,61 @@ void VPBasicBlock::print(raw_ostream &O, const Twine &Indent, printSuccessors(O, Indent); } #endif +static void cloneCFG(VPBlockBase *Entry, + DenseMap &Old2NewVPBlocks); + +static VPBlockBase *cloneVPB(VPBlockBase *BB) {

[llvm] [libcxxabi] [mlir] [openmp] [libcxx] [clang] [flang] [compiler-rt] [libc] [clang-tools-extra] [AArch64] Add custom lowering for load <3 x i8>. (PR #78632)

2024-01-26 Thread Florian Hahn via cfe-commits
@@ -21248,6 +21297,51 @@ static SDValue foldTruncStoreOfExt(SelectionDAG &DAG, SDNode *N) { return SDValue(); } +// A custom combine to lower load <3 x i8> as the more efficient sequence +// below: +//ldrb wX, [x0, #2] +//ldrh wY, [x0] +//orr wX, wY, wX, lsl #16

<    1   2   3   4   5   6   7   >