[llvm] [X86] LowerBUILD_VECTORvXbf16 - pull out repeated MVT::f16/bf16 selection. NFC. (PR #178467)
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Wed Jan 28 09:01:21 PST 2026
https://github.com/RKSimon created https://github.com/llvm/llvm-project/pull/178467
None
>From 59904e60e0e923ede0a1a0983aa49eb5df8ed309 Mon Sep 17 00:00:00 2001
From: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: Wed, 28 Jan 2026 17:00:21 +0000
Subject: [PATCH] [X86] LowerBUILD_VECTORvXbf16 - pull out repeated
MVT::f16/bf16 selection. NFC.
---
llvm/lib/Target/X86/X86ISelLowering.cpp | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp
index ca73b336225f2..befd71ef793e2 100644
--- a/llvm/lib/Target/X86/X86ISelLowering.cpp
+++ b/llvm/lib/Target/X86/X86ISelLowering.cpp
@@ -8162,12 +8162,11 @@ static SDValue buildFromShuffleMostly(SDValue Op, const SDLoc &DL,
static SDValue LowerBUILD_VECTORvXbf16(SDValue Op, SelectionDAG &DAG,
const X86Subtarget &Subtarget) {
MVT VT = Op.getSimpleValueType();
- MVT IVT =
- VT.changeVectorElementType(Subtarget.hasFP16() ? MVT::f16 : MVT::i16);
+ MVT SVT = Subtarget.hasFP16() ? MVT::f16 : MVT::i16;
+ MVT IVT = VT.changeVectorElementType(SVT);
SmallVector<SDValue, 16> NewOps;
for (unsigned I = 0, E = Op.getNumOperands(); I != E; ++I)
- NewOps.push_back(DAG.getBitcast(Subtarget.hasFP16() ? MVT::f16 : MVT::i16,
- Op.getOperand(I)));
+ NewOps.push_back(DAG.getBitcast(SVT, Op.getOperand(I)));
SDValue Res = DAG.getNode(ISD::BUILD_VECTOR, SDLoc(), IVT, NewOps);
return DAG.getBitcast(VT, Res);
}
More information about the llvm-commits
mailing list