@@ -363,10 +363,11 @@ define i128 @atomicrmw_uinc_wrap(ptr %src, i128 %b) {
363363define i128 @atomicrmw_udec_wrap (ptr %src , i128 %b ) {
364364; CHECK-LABEL: atomicrmw_udec_wrap:
365365; CHECK: # %bb.0:
366+ ; CHECK-NEXT: larl %r1, .LCPI12_0
366367; CHECK-NEXT: vl %v0, 0(%r4), 3
367368; CHECK-NEXT: vl %v3, 0(%r3), 4
368- ; CHECK-NEXT: vgbm %v1, 65535
369- ; CHECK-NEXT: vgbm %v2, 0
369+ ; CHECK-NEXT: vl %v1, 0(%r1), 3
370+ ; CHECK-NEXT: vgbm %v2, 65535
370371; CHECK-NEXT: j .LBB12_2
371372; CHECK-NEXT: .LBB12_1: # %atomicrmw.start
372373; CHECK-NEXT: # in Loop: Header=BB12_2 Depth=1
@@ -379,6 +380,9 @@ define i128 @atomicrmw_udec_wrap(ptr %src, i128 %b) {
379380; CHECK-NEXT: je .LBB12_8
380381; CHECK-NEXT: .LBB12_2: # %atomicrmw.start
381382; CHECK-NEXT: # =>This Inner Loop Header: Depth=1
383+ ; CHECK-NEXT: vscbiq %v4, %v3, %v1
384+ ; CHECK-NEXT: vlgvf %r0, %v4, 3
385+ ; CHECK-NEXT: xilf %r0, 1
382386; CHECK-NEXT: veclg %v0, %v3
383387; CHECK-NEXT: jlh .LBB12_4
384388; CHECK-NEXT: # %bb.3: # %atomicrmw.start
@@ -390,12 +394,11 @@ define i128 @atomicrmw_udec_wrap(ptr %src, i128 %b) {
390394; CHECK-NEXT: jl .LBB12_6
391395; CHECK-NEXT: # %bb.5: # %atomicrmw.start
392396; CHECK-NEXT: # in Loop: Header=BB12_2 Depth=1
393- ; CHECK-NEXT: vaq %v4, %v3, %v1
397+ ; CHECK-NEXT: vaq %v4, %v3, %v2
394398; CHECK-NEXT: .LBB12_6: # %atomicrmw.start
395399; CHECK-NEXT: # in Loop: Header=BB12_2 Depth=1
396- ; CHECK-NEXT: vceqgs %v5, %v3, %v2
397400; CHECK-NEXT: vlr %v5, %v0
398- ; CHECK-NEXT: je .LBB12_1
401+ ; CHECK-NEXT: cijlh %r0, 0, .LBB12_1
399402; CHECK-NEXT: # %bb.7: # %atomicrmw.start
400403; CHECK-NEXT: # in Loop: Header=BB12_2 Depth=1
401404; CHECK-NEXT: vlr %v5, %v4
0 commit comments