@@ -327,50 +327,56 @@ define void @test_old_store_64bit(ptr %p, i64 %v) {
327
327
; ARMOPTNONE-NEXT: push {r4, r5, r7, lr}
328
328
; ARMOPTNONE-NEXT: add r7, sp, #8
329
329
; ARMOPTNONE-NEXT: push {r8, r10, r11}
330
- ; ARMOPTNONE-NEXT: sub sp, sp, #20
331
- ; ARMOPTNONE-NEXT: str r0, [sp] @ 4-byte Spill
332
- ; ARMOPTNONE-NEXT: str r2, [sp, #4 ] @ 4-byte Spill
333
- ; ARMOPTNONE-NEXT: str r1, [sp, #8 ] @ 4-byte Spill
330
+ ; ARMOPTNONE-NEXT: sub sp, sp, #24
331
+ ; ARMOPTNONE-NEXT: str r0, [sp, #4 ] @ 4-byte Spill
332
+ ; ARMOPTNONE-NEXT: str r2, [sp, #8 ] @ 4-byte Spill
333
+ ; ARMOPTNONE-NEXT: str r1, [sp, #12 ] @ 4-byte Spill
334
334
; ARMOPTNONE-NEXT: dmb ish
335
335
; ARMOPTNONE-NEXT: ldr r1, [r0]
336
336
; ARMOPTNONE-NEXT: ldr r0, [r0, #4]
337
- ; ARMOPTNONE-NEXT: str r1, [sp, #12 ] @ 4-byte Spill
338
- ; ARMOPTNONE-NEXT: str r0, [sp, #16 ] @ 4-byte Spill
337
+ ; ARMOPTNONE-NEXT: str r1, [sp, #16 ] @ 4-byte Spill
338
+ ; ARMOPTNONE-NEXT: str r0, [sp, #20 ] @ 4-byte Spill
339
339
; ARMOPTNONE-NEXT: b LBB5_1
340
340
; ARMOPTNONE-NEXT: LBB5_1: @ %atomicrmw.start
341
341
; ARMOPTNONE-NEXT: @ =>This Loop Header: Depth=1
342
342
; ARMOPTNONE-NEXT: @ Child Loop BB5_2 Depth 2
343
- ; ARMOPTNONE-NEXT: ldr r1, [sp, #16] @ 4-byte Reload
344
- ; ARMOPTNONE-NEXT: ldr r2, [sp, #12] @ 4-byte Reload
345
- ; ARMOPTNONE-NEXT: ldr r3, [sp] @ 4-byte Reload
346
- ; ARMOPTNONE-NEXT: ldr r0, [sp, #4] @ 4-byte Reload
347
- ; ARMOPTNONE-NEXT: ldr r10, [sp, #8] @ 4-byte Reload
348
- ; ARMOPTNONE-NEXT: @ kill: def $r10 killed $r10 def $r10_r11
349
- ; ARMOPTNONE-NEXT: mov r11, r0
350
- ; ARMOPTNONE-NEXT: mov r8, r2
343
+ ; ARMOPTNONE-NEXT: ldr r3, [sp, #20] @ 4-byte Reload
344
+ ; ARMOPTNONE-NEXT: ldr r2, [sp, #16] @ 4-byte Reload
345
+ ; ARMOPTNONE-NEXT: ldr r12, [sp, #8] @ 4-byte Reload
346
+ ; ARMOPTNONE-NEXT: ldr r0, [sp, #12] @ 4-byte Reload
347
+ ; ARMOPTNONE-NEXT: ldr r8, [sp, #4] @ 4-byte Reload
348
+ ; ARMOPTNONE-NEXT: str r3, [sp] @ 4-byte Spill
349
+ ; ARMOPTNONE-NEXT: @ implicit-def: $r1
350
+ ; ARMOPTNONE-NEXT: @ implicit-def: $r9
351
+ ; ARMOPTNONE-NEXT: @ kill: def $r8 killed $r8 def $r8_r9
351
352
; ARMOPTNONE-NEXT: mov r9, r1
353
+ ; ARMOPTNONE-NEXT: @ kill: def $r0 killed $r0 def $r0_r1
354
+ ; ARMOPTNONE-NEXT: mov r1, r12
355
+ ; ARMOPTNONE-NEXT: mov r10, r2
356
+ ; ARMOPTNONE-NEXT: mov r11, r3
352
357
; ARMOPTNONE-NEXT: LBB5_2: @ %atomicrmw.start
353
358
; ARMOPTNONE-NEXT: @ Parent Loop BB5_1 Depth=1
354
359
; ARMOPTNONE-NEXT: @ => This Inner Loop Header: Depth=2
355
- ; ARMOPTNONE-NEXT: ldrexd r4, r5, [r3 ]
356
- ; ARMOPTNONE-NEXT: cmp r4, r8
357
- ; ARMOPTNONE-NEXT: cmpeq r5, r9
360
+ ; ARMOPTNONE-NEXT: ldrexd r4, r5, [r8 ]
361
+ ; ARMOPTNONE-NEXT: cmp r4, r10
362
+ ; ARMOPTNONE-NEXT: cmpeq r5, r11
358
363
; ARMOPTNONE-NEXT: bne LBB5_4
359
364
; ARMOPTNONE-NEXT: @ %bb.3: @ %atomicrmw.start
360
365
; ARMOPTNONE-NEXT: @ in Loop: Header=BB5_2 Depth=2
361
- ; ARMOPTNONE-NEXT: strexd r0, r10, r11 , [r3 ]
362
- ; ARMOPTNONE-NEXT: cmp r0 , #0
366
+ ; ARMOPTNONE-NEXT: strexd r9, r0, r1 , [r8 ]
367
+ ; ARMOPTNONE-NEXT: cmp r9 , #0
363
368
; ARMOPTNONE-NEXT: bne LBB5_2
364
369
; ARMOPTNONE-NEXT: LBB5_4: @ %atomicrmw.start
365
370
; ARMOPTNONE-NEXT: @ in Loop: Header=BB5_1 Depth=1
371
+ ; ARMOPTNONE-NEXT: ldr r1, [sp] @ 4-byte Reload
366
372
; ARMOPTNONE-NEXT: mov r0, r5
367
373
; ARMOPTNONE-NEXT: eor r3, r0, r1
368
374
; ARMOPTNONE-NEXT: mov r1, r4
369
375
; ARMOPTNONE-NEXT: eor r2, r1, r2
370
376
; ARMOPTNONE-NEXT: orr r2, r2, r3
371
377
; ARMOPTNONE-NEXT: cmp r2, #0
372
- ; ARMOPTNONE-NEXT: str r1, [sp, #12 ] @ 4-byte Spill
373
- ; ARMOPTNONE-NEXT: str r0, [sp, #16 ] @ 4-byte Spill
378
+ ; ARMOPTNONE-NEXT: str r1, [sp, #16 ] @ 4-byte Spill
379
+ ; ARMOPTNONE-NEXT: str r0, [sp, #20 ] @ 4-byte Spill
374
380
; ARMOPTNONE-NEXT: bne LBB5_1
375
381
; ARMOPTNONE-NEXT: b LBB5_5
376
382
; ARMOPTNONE-NEXT: LBB5_5: @ %atomicrmw.end
@@ -861,52 +867,58 @@ define void @store_atomic_f64__seq_cst(ptr %ptr, double %val1) {
861
867
; ARMOPTNONE-NEXT: push {r4, r5, r7, lr}
862
868
; ARMOPTNONE-NEXT: add r7, sp, #8
863
869
; ARMOPTNONE-NEXT: push {r8, r10, r11}
864
- ; ARMOPTNONE-NEXT: sub sp, sp, #20
865
- ; ARMOPTNONE-NEXT: str r0, [sp] @ 4-byte Spill
870
+ ; ARMOPTNONE-NEXT: sub sp, sp, #24
871
+ ; ARMOPTNONE-NEXT: str r0, [sp, #4 ] @ 4-byte Spill
866
872
; ARMOPTNONE-NEXT: vmov d16, r1, r2
867
873
; ARMOPTNONE-NEXT: vmov r1, r2, d16
868
- ; ARMOPTNONE-NEXT: str r2, [sp, #4 ] @ 4-byte Spill
869
- ; ARMOPTNONE-NEXT: str r1, [sp, #8 ] @ 4-byte Spill
874
+ ; ARMOPTNONE-NEXT: str r2, [sp, #8 ] @ 4-byte Spill
875
+ ; ARMOPTNONE-NEXT: str r1, [sp, #12 ] @ 4-byte Spill
870
876
; ARMOPTNONE-NEXT: dmb ish
871
877
; ARMOPTNONE-NEXT: ldr r1, [r0]
872
878
; ARMOPTNONE-NEXT: ldr r0, [r0, #4]
873
- ; ARMOPTNONE-NEXT: str r1, [sp, #12 ] @ 4-byte Spill
874
- ; ARMOPTNONE-NEXT: str r0, [sp, #16 ] @ 4-byte Spill
879
+ ; ARMOPTNONE-NEXT: str r1, [sp, #16 ] @ 4-byte Spill
880
+ ; ARMOPTNONE-NEXT: str r0, [sp, #20 ] @ 4-byte Spill
875
881
; ARMOPTNONE-NEXT: b LBB13_1
876
882
; ARMOPTNONE-NEXT: LBB13_1: @ %atomicrmw.start
877
883
; ARMOPTNONE-NEXT: @ =>This Loop Header: Depth=1
878
884
; ARMOPTNONE-NEXT: @ Child Loop BB13_2 Depth 2
879
- ; ARMOPTNONE-NEXT: ldr r1, [sp, #16] @ 4-byte Reload
880
- ; ARMOPTNONE-NEXT: ldr r2, [sp, #12] @ 4-byte Reload
881
- ; ARMOPTNONE-NEXT: ldr r3, [sp] @ 4-byte Reload
882
- ; ARMOPTNONE-NEXT: ldr r0, [sp, #4] @ 4-byte Reload
883
- ; ARMOPTNONE-NEXT: ldr r10, [sp, #8] @ 4-byte Reload
884
- ; ARMOPTNONE-NEXT: @ kill: def $r10 killed $r10 def $r10_r11
885
- ; ARMOPTNONE-NEXT: mov r11, r0
886
- ; ARMOPTNONE-NEXT: mov r8, r2
885
+ ; ARMOPTNONE-NEXT: ldr r3, [sp, #20] @ 4-byte Reload
886
+ ; ARMOPTNONE-NEXT: ldr r2, [sp, #16] @ 4-byte Reload
887
+ ; ARMOPTNONE-NEXT: ldr r12, [sp, #8] @ 4-byte Reload
888
+ ; ARMOPTNONE-NEXT: ldr r0, [sp, #12] @ 4-byte Reload
889
+ ; ARMOPTNONE-NEXT: ldr r8, [sp, #4] @ 4-byte Reload
890
+ ; ARMOPTNONE-NEXT: str r3, [sp] @ 4-byte Spill
891
+ ; ARMOPTNONE-NEXT: @ implicit-def: $r1
892
+ ; ARMOPTNONE-NEXT: @ implicit-def: $r9
893
+ ; ARMOPTNONE-NEXT: @ kill: def $r8 killed $r8 def $r8_r9
887
894
; ARMOPTNONE-NEXT: mov r9, r1
895
+ ; ARMOPTNONE-NEXT: @ kill: def $r0 killed $r0 def $r0_r1
896
+ ; ARMOPTNONE-NEXT: mov r1, r12
897
+ ; ARMOPTNONE-NEXT: mov r10, r2
898
+ ; ARMOPTNONE-NEXT: mov r11, r3
888
899
; ARMOPTNONE-NEXT: LBB13_2: @ %atomicrmw.start
889
900
; ARMOPTNONE-NEXT: @ Parent Loop BB13_1 Depth=1
890
901
; ARMOPTNONE-NEXT: @ => This Inner Loop Header: Depth=2
891
- ; ARMOPTNONE-NEXT: ldrexd r4, r5, [r3 ]
892
- ; ARMOPTNONE-NEXT: cmp r4, r8
893
- ; ARMOPTNONE-NEXT: cmpeq r5, r9
902
+ ; ARMOPTNONE-NEXT: ldrexd r4, r5, [r8 ]
903
+ ; ARMOPTNONE-NEXT: cmp r4, r10
904
+ ; ARMOPTNONE-NEXT: cmpeq r5, r11
894
905
; ARMOPTNONE-NEXT: bne LBB13_4
895
906
; ARMOPTNONE-NEXT: @ %bb.3: @ %atomicrmw.start
896
907
; ARMOPTNONE-NEXT: @ in Loop: Header=BB13_2 Depth=2
897
- ; ARMOPTNONE-NEXT: strexd r0, r10, r11 , [r3 ]
898
- ; ARMOPTNONE-NEXT: cmp r0 , #0
908
+ ; ARMOPTNONE-NEXT: strexd r9, r0, r1 , [r8 ]
909
+ ; ARMOPTNONE-NEXT: cmp r9 , #0
899
910
; ARMOPTNONE-NEXT: bne LBB13_2
900
911
; ARMOPTNONE-NEXT: LBB13_4: @ %atomicrmw.start
901
912
; ARMOPTNONE-NEXT: @ in Loop: Header=BB13_1 Depth=1
913
+ ; ARMOPTNONE-NEXT: ldr r1, [sp] @ 4-byte Reload
902
914
; ARMOPTNONE-NEXT: mov r0, r5
903
915
; ARMOPTNONE-NEXT: eor r3, r0, r1
904
916
; ARMOPTNONE-NEXT: mov r1, r4
905
917
; ARMOPTNONE-NEXT: eor r2, r1, r2
906
918
; ARMOPTNONE-NEXT: orr r2, r2, r3
907
919
; ARMOPTNONE-NEXT: cmp r2, #0
908
- ; ARMOPTNONE-NEXT: str r1, [sp, #12 ] @ 4-byte Spill
909
- ; ARMOPTNONE-NEXT: str r0, [sp, #16 ] @ 4-byte Spill
920
+ ; ARMOPTNONE-NEXT: str r1, [sp, #16 ] @ 4-byte Spill
921
+ ; ARMOPTNONE-NEXT: str r0, [sp, #20 ] @ 4-byte Spill
910
922
; ARMOPTNONE-NEXT: bne LBB13_1
911
923
; ARMOPTNONE-NEXT: b LBB13_5
912
924
; ARMOPTNONE-NEXT: LBB13_5: @ %atomicrmw.end
0 commit comments