[llvm-branch-commits] [llvm] [SelectionDAG][X86] Widen <2 x T> vector types for atomic load (PR #120598)

Matt Arsenault via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Wed Jan 15 23:05:34 PST 2025


================
@@ -5907,6 +5910,30 @@ SDValue DAGTypeLegalizer::WidenVecRes_INSERT_VECTOR_ELT(SDNode *N) {
                      N->getOperand(1), N->getOperand(2));
 }
 
+SDValue DAGTypeLegalizer::WidenVecRes_ATOMIC_LOAD(AtomicSDNode *N) {
+  SmallVector<SDValue, 16> LdChain; // Chain for the series of load
+  SDValue Result = GenWidenVectorLoads(LdChain, N, /*IsAtomic=*/true);
----------------
arsenm wrote:

I do not think you should call GenWidenVectorLoads. That has paths where the memory operation will be decomposed. I think you should try just replacing the load with an equivalent width integer, and extracting the parts to conform to the expectations of the type legalization n

https://github.com/llvm/llvm-project/pull/120598


More information about the llvm-branch-commits mailing list