[llvm] [SystemZ] Enable rematerialization for scalar loads (PR #179838)
Ulrich Weigand via llvm-commits
llvm-commits at lists.llvm.org
Thu Feb 5 07:28:47 PST 2026
================
@@ -176,28 +176,28 @@ define void @f10(double %extra) {
; CHECK-NEXT: ldr %f2, %f0
; CHECK-NEXT: adb %f2, 0(%r1)
; CHECK-NEXT: adb %f0, 0(%r1)
-; CHECK-NEXT: lgrl %r6, iptr at GOT
-; CHECK-NEXT: lgdr %r13, %f1
-; CHECK-NEXT: lgdr %r12, %f2
-; CHECK-NEXT: lgdr %r11, %f0
+; CHECK-NEXT: lgdr %r6, %f1
+; CHECK-NEXT: lgdr %r13, %f2
+; CHECK-NEXT: lgdr %r12, %f0
; CHECK-NEXT: .LBB9_1: # %loop
; CHECK-NEXT: # =>This Inner Loop Header: Depth=1
; CHECK-NEXT: brasl %r14, foo at PLT
; CHECK-NEXT: lgr %r0, %r2
-; CHECK-NEXT: og %r0, 176(%r15) # 8-byte Folded Reload
; CHECK-NEXT: og %r0, 168(%r15) # 8-byte Folded Reload
; CHECK-NEXT: og %r0, 160(%r15) # 8-byte Folded Reload
+; CHECK-NEXT: ogr %r0, %r11
; CHECK-NEXT: ogr %r0, %r10
; CHECK-NEXT: ogr %r0, %r9
; CHECK-NEXT: ogr %r0, %r8
; CHECK-NEXT: ogr %r0, %r7
+; CHECK-NEXT: ogr %r0, %r6
; CHECK-NEXT: ogr %r0, %r13
; CHECK-NEXT: ogr %r0, %r12
-; CHECK-NEXT: ogr %r0, %r11
-; CHECK-NEXT: stg %r0, 0(%r6)
+; CHECK-NEXT: lgrl %r1, iptr at GOT
+; CHECK-NEXT: stg %r0, 0(%r1)
----------------
uweigand wrote:
This adds a memory access here, but removes a memory access further above. So overall this should be a wash.
https://github.com/llvm/llvm-project/pull/179838
More information about the llvm-commits
mailing list