[llvm] [SPARC] Use hardware byteswapper when we have V9 (PR #191720)
via llvm-commits
llvm-commits at lists.llvm.org
Sat Apr 18 22:16:25 PDT 2026
================
@@ -3218,13 +3255,109 @@ SDValue SparcTargetLowering::PerformBITCASTCombine(SDNode *N,
return SDValue();
}
+SDValue SparcTargetLowering::PerformBSWAPCombine(SDNode *N,
+ DAGCombinerInfo &DCI) const {
----------------
koachan wrote:
Hm,, seems like if I do it only post legalisation the load-then-bswap combine doesn't happen?
e.g in u64_bswapload:
```
; SPARC64-LABEL: u64_bswapload:
; SPARC64: ! %bb.0:
; SPARC64-NEXT: add %sp, -144, %sp
; SPARC64-NEXT: ldx [%o0], %o0
; SPARC64-NEXT: add %sp, 2183, %o1
; SPARC64-NEXT: stxa %o0, [%o1] #ASI_P_L
; SPARC64-NEXT: ldx [%sp+2183], %o0
; SPARC64-NEXT: retl
; SPARC64-NEXT: add %sp, 144, %sp
```
https://github.com/llvm/llvm-project/pull/191720
More information about the llvm-commits
mailing list