[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