Skip to content

Commit 4a86de6

Browse files
RKSimonDhruvSrivastavaX
authored andcommitted
[X86] LowerStore - always split 512-bit concatenated stores (#143426)
All BWI regressions have now been addressed, so remove the special case handling.
1 parent ac9a0b6 commit 4a86de6

File tree

1 file changed

+5
-7
lines changed

1 file changed

+5
-7
lines changed

llvm/lib/Target/X86/X86ISelLowering.cpp

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25549,14 +25549,12 @@ static SDValue LowerStore(SDValue Op, const X86Subtarget &Subtarget,
2554925549
if (St->isTruncatingStore())
2555025550
return SDValue();
2555125551

25552-
// If this is a 256-bit store of concatenated ops, we are better off splitting
25553-
// that store into two 128-bit stores. This avoids spurious use of 256-bit ops
25554-
// and each half can execute independently. Some cores would split the op into
25555-
// halves anyway, so the concat (vinsertf128) is purely an extra op.
25552+
// If this is a 256/512-bit store of concatenated ops, we are better off
25553+
// splitting that store into two half-size stores. This avoids spurious use of
25554+
// concatenated ops and each half can execute independently. Some cores would
25555+
// split the op into halves anyway, so the concat is purely an extra op.
2555625556
MVT StoreVT = StoredVal.getSimpleValueType();
25557-
if (StoreVT.is256BitVector() ||
25558-
((StoreVT == MVT::v32i16 || StoreVT == MVT::v64i8) &&
25559-
!Subtarget.hasBWI())) {
25557+
if (StoreVT.is256BitVector() || StoreVT.is512BitVector()) {
2556025558
if (StoredVal.hasOneUse() && isFreeToSplitVector(StoredVal, DAG))
2556125559
return splitVectorStore(St, DAG);
2556225560
return SDValue();

0 commit comments

Comments
 (0)