diff options
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.patch | 35 |
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 @@ | |||
1 | From 913e07ea5acf2148e3748b45ddfe3fac3b2d051c Mon Sep 17 00:00:00 2001 | ||
2 | From: Naveen Saini <naveen.kumar.saini@intel.com> | ||
3 | Date: Fri, 27 Aug 2021 10:56:57 +0800 | ||
4 | Subject: [PATCH 2/2] This patch is a fix for #2111 | ||
5 | |||
6 | It ensures that shuffle is lowered for this particular case correctly. | ||
7 | |||
8 | Upstream-Status: Backport [https://github.com/llvm/llvm-project/commit/9ab99f773fec7da4183495a3fdc655a797d3bea2] | ||
9 | |||
10 | Signed-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 | |||
15 | diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp | ||
16 | index 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 | -- | ||
34 | 2.17.1 | ||
35 | |||