diff options
author | Brooks Davis <brooks@FreeBSD.org> | 2022-06-06 18:51:37 +0000 |
---|---|---|
committer | Brooks Davis <brooks@FreeBSD.org> | 2022-06-06 18:51:37 +0000 |
commit | 7aba7c32a06718082a54fee86fbb98d056a6a094 (patch) | |
tree | d296c60a27b8b3be44aeddd2c98df63b535f714c | |
parent | c5f56989b486a9fd6d3189df9dfe5add7dadb9a5 (diff) | |
download | ports-7aba7c32a06718082a54fee86fbb98d056a6a094.tar.gz ports-7aba7c32a06718082a54fee86fbb98d056a6a094.zip |
devel/llvm13: fix hangs with CPUTYPE=skylake-avx512
Merge commit e8305c0b8f49 from llvm git (by Simon Pilgrim)
[X86] combineX86ShuffleChain - don't fold to truncate(concat(V1,V2)) if it was already a PACK op
Fixes #55050
PR: 264480
MFH: 2022Q2
Sponsored by: DARPA, AFRL
-rw-r--r-- | devel/llvm13/Makefile | 2 | ||||
-rw-r--r-- | devel/llvm13/files/patch-llvm_lib_Target_X86_X86ISelLowering.cpp | 15 |
2 files changed, 16 insertions, 1 deletions
diff --git a/devel/llvm13/Makefile b/devel/llvm13/Makefile index 1b5b4e4bbdbb..8b2f1a094a66 100644 --- a/devel/llvm13/Makefile +++ b/devel/llvm13/Makefile @@ -1,6 +1,6 @@ PORTNAME= llvm DISTVERSION= 13.0.1 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= devel lang MASTER_SITES= https://github.com/llvm/llvm-project/releases/download/llvmorg-${DISTVERSION:S/rc/-rc/}/ \ https://${PRE_}releases.llvm.org/${LLVM_RELEASE}/${RCDIR} diff --git a/devel/llvm13/files/patch-llvm_lib_Target_X86_X86ISelLowering.cpp b/devel/llvm13/files/patch-llvm_lib_Target_X86_X86ISelLowering.cpp new file mode 100644 index 000000000000..877b03db54b9 --- /dev/null +++ b/devel/llvm13/files/patch-llvm_lib_Target_X86_X86ISelLowering.cpp @@ -0,0 +1,15 @@ +--- llvm/lib/Target/X86/X86ISelLowering.cpp.orig ++++ llvm/lib/Target/X86/X86ISelLowering.cpp +@@ -36201,7 +36201,11 @@ + (RootVT.is128BitVector() && Subtarget.hasVLX())) && + (MaskEltSizeInBits > 8 || Subtarget.hasBWI()) && + isSequentialOrUndefInRange(Mask, 0, NumMaskElts, 0, 2)) { +- if (Depth == 0 && Root.getOpcode() == ISD::TRUNCATE) ++ // Bail if this was already a truncation or PACK node. ++ // We sometimes fail to match PACK if we demand known undef elements. ++ if (Depth == 0 && (Root.getOpcode() == ISD::TRUNCATE || ++ Root.getOpcode() == X86ISD::PACKSS || ++ Root.getOpcode() == X86ISD::PACKUS)) + return SDValue(); // Nothing to do! + ShuffleSrcVT = MVT::getIntegerVT(MaskEltSizeInBits * 2); + ShuffleSrcVT = MVT::getVectorVT(ShuffleSrcVT, NumMaskElts / 2); |