summaryrefslogtreecommitdiffstats
path: root/dynamic-layers/clang-layer/recipes-devtools/clang/files/llvm12-0005-ispc-12_0_fix_for_2111.patch
diff options
context:
space:
mode:
Diffstat (limited to 'dynamic-layers/clang-layer/recipes-devtools/clang/files/llvm12-0005-ispc-12_0_fix_for_2111.patch')
-rw-r--r--dynamic-layers/clang-layer/recipes-devtools/clang/files/llvm12-0005-ispc-12_0_fix_for_2111.patch35
1 files changed, 35 insertions, 0 deletions
diff --git a/dynamic-layers/clang-layer/recipes-devtools/clang/files/llvm12-0005-ispc-12_0_fix_for_2111.patch b/dynamic-layers/clang-layer/recipes-devtools/clang/files/llvm12-0005-ispc-12_0_fix_for_2111.patch
new file mode 100644
index 00000000..4951a63d
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-devtools/clang/files/llvm12-0005-ispc-12_0_fix_for_2111.patch
@@ -0,0 +1,35 @@
1From 913e07ea5acf2148e3748b45ddfe3fac3b2d051c Mon Sep 17 00:00:00 2001
2From: Naveen Saini <naveen.kumar.saini@intel.com>
3Date: Fri, 27 Aug 2021 10:56:57 +0800
4Subject: [PATCH 2/2] This patch is a fix for #2111
5
6It ensures that shuffle is lowered for this particular case correctly.
7
8Upstream-Status: Backport [https://github.com/llvm/llvm-project/commit/9ab99f773fec7da4183495a3fdc655a797d3bea2]
9
10Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
11---
12 llvm/lib/Target/X86/X86ISelLowering.cpp | 7 ++++---
13 1 file changed, 4 insertions(+), 3 deletions(-)
14
15diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp
16index 6b816c710f98..3121b0e818ac 100644
17--- a/llvm/lib/Target/X86/X86ISelLowering.cpp
18+++ b/llvm/lib/Target/X86/X86ISelLowering.cpp
19@@ -43192,9 +43192,10 @@ static SDValue combineHorizOpWithShuffle(SDNode *N, SelectionDAG &DAG,
20 ShuffleVectorSDNode::commuteMask(ShuffleMask1);
21 }
22 if ((Op00 == Op10) && (Op01 == Op11)) {
23- SmallVector<int, 4> ShuffleMask;
24- ShuffleMask.append(ShuffleMask0.begin(), ShuffleMask0.end());
25- ShuffleMask.append(ShuffleMask1.begin(), ShuffleMask1.end());
26+ const int Map[4] = {0, 2, 1, 3};
27+ SmallVector<int, 4> ShuffleMask(
28+ {Map[ShuffleMask0[0]], Map[ShuffleMask1[0]], Map[ShuffleMask0[1]],
29+ Map[ShuffleMask1[1]]});
30 SDLoc DL(N);
31 MVT ShufVT = VT.isFloatingPoint() ? MVT::v4f64 : MVT::v4i64;
32 SDValue Res = DAG.getNode(Opcode, DL, VT, Op00, Op01);
33--
342.17.1
35