[llvm] [Hexagon] Handle bitcast of i64 -> v64i1 when Hvx is enabled (PR #163332)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Oct 16 22:17:31 PDT 2025
================
@@ -2024,13 +2026,7 @@ HexagonTargetLowering::LowerHvxBitcast(SDValue Op, SelectionDAG &DAG) const {
// Handle bitcast from i32, v2i16, and v4i8 to v32i1.
// Splat the input into a 32-element i32 vector, then AND each element
// with a unique bitmask to isolate individual bits.
- if (ResTy == MVT::v32i1 &&
- (ValTy == MVT::i32 || ValTy == MVT::v2i16 || ValTy == MVT::v4i8) &&
- Subtarget.useHVX128BOps()) {
- SDValue Val32 = Val;
- if (ValTy == MVT::v2i16 || ValTy == MVT::v4i8)
- Val32 = DAG.getNode(ISD::BITCAST, dl, MVT::i32, Val);
-
+ auto toV32i1Fromi32 = [&](SDValue Val32) {
MVT VecTy = MVT::getVectorVT(MVT::i32, 32);
----------------
pkarveti wrote:
@aankit-ca I have made the changes, Could you please review?
https://github.com/llvm/llvm-project/pull/163332
More information about the llvm-commits
mailing list