[llvm] [X86][Codegen] Shuffle certain shifts on i8 vectors to create opportunity for vectorized shift instructions (PR #117980)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Nov 28 01:01:34 PST 2024
github-actions[bot] wrote:
<!--LLVM CODE FORMAT COMMENT: {clang-format}-->
:warning: C/C++ code formatter, clang-format found issues in your code. :warning:
<details>
<summary>
You can test this locally with the following command:
</summary>
``````````bash
git-clang-format --diff 9f69da35e2e5438d0c042f76277fff397f6a1505 02249f3c811568e31e78b9290bb2189a089bc5ae --extensions cpp -- llvm/lib/Target/X86/X86ISelLowering.cpp
``````````
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp
index 90d7be73c6..7e0e0a5f95 100644
--- a/llvm/lib/Target/X86/X86ISelLowering.cpp
+++ b/llvm/lib/Target/X86/X86ISelLowering.cpp
@@ -29780,9 +29780,9 @@ template <typename InputTy, typename PermutationTy,
std::pair<typename InputTy::value_type,
typename PermutationTy::value_type>,
8>>
-static bool PermuteAndPairVector(
- const InputTy &Inputs, PermutationTy &Permutation,
- MapTy UnpairedInputs = MapTy()) {
+static bool PermuteAndPairVector(const InputTy &Inputs,
+ PermutationTy &Permutation,
+ MapTy UnpairedInputs = MapTy()) {
const auto Wildcard = ~typename InputTy::value_type();
SmallVector<typename PermutationTy::value_type, 16> WildcardPairs;
@@ -30258,7 +30258,8 @@ static SDValue LowerShift(SDValue Op, const X86Subtarget &Subtarget,
// Found a permutation P that can rearrange the shift amouts into adjacent
// pair or quad of same values. Rewrite the shift S1(x) into P^-1(S2(P(x))).
if (Profitable) {
- SDValue InnerShuffle = DAG.getVectorShuffle(VT, dl, R, DAG.getUNDEF(VT), Permutation);
+ SDValue InnerShuffle =
+ DAG.getVectorShuffle(VT, dl, R, DAG.getUNDEF(VT), Permutation);
SmallVector<SDValue, 64> NewShiftAmt;
for (int Index : Permutation) {
NewShiftAmt.push_back(Amt.getOperand(Index));
@@ -30267,7 +30268,8 @@ static SDValue LowerShift(SDValue Op, const X86Subtarget &Subtarget,
for (size_t I = 0; I < NewShiftAmt.size(); I += 2) {
SDValue Even = NewShiftAmt[I];
SDValue Odd = NewShiftAmt[I + 1];
- assert(Even.isUndef() || Odd.isUndef() || Even->getAsZExtVal() == Odd->getAsZExtVal());
+ assert(Even.isUndef() || Odd.isUndef() ||
+ Even->getAsZExtVal() == Odd->getAsZExtVal());
}
#endif
SDValue NewShiftVector = DAG.getBuildVector(VT, dl, NewShiftAmt);
@@ -30276,7 +30278,8 @@ static SDValue LowerShift(SDValue Op, const X86Subtarget &Subtarget,
for (size_t I = 0; I < Permutation.size(); ++I) {
InversePermutation[Permutation[I]] = I;
}
- SDValue OuterShuffle = DAG.getVectorShuffle(VT, dl, NewShift, DAG.getUNDEF(VT), InversePermutation);
+ SDValue OuterShuffle = DAG.getVectorShuffle(
+ VT, dl, NewShift, DAG.getUNDEF(VT), InversePermutation);
return OuterShuffle;
}
}
``````````
</details>
https://github.com/llvm/llvm-project/pull/117980
More information about the llvm-commits
mailing list