[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