Skip to content
This repository was archived by the owner on Mar 28, 2020. It is now read-only.

Commit e286751

Browse files
committed
Mips: Don't create copy of nothing
This was creating a copy of the register the pseudo itself was def'ing, leaving a copy of an undefined register. I'm not sure how the verifier is not catching this, but this avoids asserting in a future change to RegAllocFast git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@356716 91177308-0d34-0410-b5e6-96231b3b80d8
1 parent e584761 commit e286751

File tree

4 files changed

+86
-119
lines changed

4 files changed

+86
-119
lines changed

lib/Target/Mips/MipsISelLowering.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1750,12 +1750,10 @@ MipsTargetLowering::emitAtomicCmpSwap(MachineInstr &MI,
17501750
// after fast register allocation, the spills will end up outside of the
17511751
// blocks that their values are defined in, causing livein errors.
17521752

1753-
unsigned DestCopy = MRI.createVirtualRegister(MRI.getRegClass(Dest));
17541753
unsigned PtrCopy = MRI.createVirtualRegister(MRI.getRegClass(Ptr));
17551754
unsigned OldValCopy = MRI.createVirtualRegister(MRI.getRegClass(OldVal));
17561755
unsigned NewValCopy = MRI.createVirtualRegister(MRI.getRegClass(NewVal));
17571756

1758-
BuildMI(*BB, II, DL, TII->get(Mips::COPY), DestCopy).addReg(Dest);
17591757
BuildMI(*BB, II, DL, TII->get(Mips::COPY), PtrCopy).addReg(Ptr);
17601758
BuildMI(*BB, II, DL, TII->get(Mips::COPY), OldValCopy).addReg(OldVal);
17611759
BuildMI(*BB, II, DL, TII->get(Mips::COPY), NewValCopy).addReg(NewVal);

test/CodeGen/Mips/atomic.ll

Lines changed: 54 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -1935,32 +1935,29 @@ define i32 @AtomicCmpSwap32(i32 signext %oldval, i32 signext %newval) nounwind {
19351935
; MIPS32O0: # %bb.0: # %entry
19361936
; MIPS32O0-NEXT: lui $2, %hi(_gp_disp)
19371937
; MIPS32O0-NEXT: addiu $2, $2, %lo(_gp_disp)
1938-
; MIPS32O0-NEXT: addiu $sp, $sp, -16
1938+
; MIPS32O0-NEXT: addiu $sp, $sp, -8
19391939
; MIPS32O0-NEXT: addu $1, $2, $25
1940-
; MIPS32O0-NEXT: sw $5, 12($sp)
1941-
; MIPS32O0-NEXT: lw $2, 12($sp)
1940+
; MIPS32O0-NEXT: sw $5, 4($sp)
1941+
; MIPS32O0-NEXT: lw $2, 4($sp)
19421942
; MIPS32O0-NEXT: lw $1, %got(x)($1)
1943-
; MIPS32O0-NEXT: lw $3, 8($sp) # 4-byte Folded Reload
1944-
; MIPS32O0-NEXT: move $5, $4
1943+
; MIPS32O0-NEXT: move $3, $4
19451944
; MIPS32O0-NEXT: $BB7_1: # %entry
19461945
; MIPS32O0-NEXT: # =>This Inner Loop Header: Depth=1
1947-
; MIPS32O0-NEXT: ll $6, 0($1)
1948-
; MIPS32O0-NEXT: bne $6, $5, $BB7_3
1946+
; MIPS32O0-NEXT: ll $5, 0($1)
1947+
; MIPS32O0-NEXT: bne $5, $3, $BB7_3
19491948
; MIPS32O0-NEXT: nop
19501949
; MIPS32O0-NEXT: # %bb.2: # %entry
19511950
; MIPS32O0-NEXT: # in Loop: Header=BB7_1 Depth=1
1952-
; MIPS32O0-NEXT: move $7, $2
1953-
; MIPS32O0-NEXT: sc $7, 0($1)
1954-
; MIPS32O0-NEXT: beqz $7, $BB7_1
1951+
; MIPS32O0-NEXT: move $6, $2
1952+
; MIPS32O0-NEXT: sc $6, 0($1)
1953+
; MIPS32O0-NEXT: beqz $6, $BB7_1
19551954
; MIPS32O0-NEXT: nop
19561955
; MIPS32O0-NEXT: $BB7_3: # %entry
1957-
; MIPS32O0-NEXT: xor $1, $6, $4
1956+
; MIPS32O0-NEXT: xor $1, $5, $4
19581957
; MIPS32O0-NEXT: sltiu $1, $1, 1
1959-
; MIPS32O0-NEXT: move $2, $6
1960-
; MIPS32O0-NEXT: sw $6, 8($sp) # 4-byte Folded Spill
1961-
; MIPS32O0-NEXT: sw $3, 4($sp) # 4-byte Folded Spill
1958+
; MIPS32O0-NEXT: move $2, $5
19621959
; MIPS32O0-NEXT: sw $1, 0($sp) # 4-byte Folded Spill
1963-
; MIPS32O0-NEXT: addiu $sp, $sp, 16
1960+
; MIPS32O0-NEXT: addiu $sp, $sp, 8
19641961
; MIPS32O0-NEXT: jr $ra
19651962
; MIPS32O0-NEXT: nop
19661963
;
@@ -2013,30 +2010,27 @@ define i32 @AtomicCmpSwap32(i32 signext %oldval, i32 signext %newval) nounwind {
20132010
; MIPS32R6O0: # %bb.0: # %entry
20142011
; MIPS32R6O0-NEXT: lui $2, %hi(_gp_disp)
20152012
; MIPS32R6O0-NEXT: addiu $2, $2, %lo(_gp_disp)
2016-
; MIPS32R6O0-NEXT: addiu $sp, $sp, -24
2013+
; MIPS32R6O0-NEXT: addiu $sp, $sp, -16
20172014
; MIPS32R6O0-NEXT: addu $1, $2, $25
20182015
; MIPS32R6O0-NEXT: move $2, $5
20192016
; MIPS32R6O0-NEXT: move $3, $4
2020-
; MIPS32R6O0-NEXT: sw $5, 20($sp)
2021-
; MIPS32R6O0-NEXT: lw $5, 20($sp)
2017+
; MIPS32R6O0-NEXT: sw $5, 12($sp)
2018+
; MIPS32R6O0-NEXT: lw $5, 12($sp)
20222019
; MIPS32R6O0-NEXT: lw $1, %got(x)($1)
2023-
; MIPS32R6O0-NEXT: lw $6, 16($sp) # 4-byte Folded Reload
20242020
; MIPS32R6O0-NEXT: $BB7_1: # %entry
20252021
; MIPS32R6O0-NEXT: # =>This Inner Loop Header: Depth=1
2026-
; MIPS32R6O0-NEXT: ll $7, 0($1)
2027-
; MIPS32R6O0-NEXT: bnec $7, $4, $BB7_3
2022+
; MIPS32R6O0-NEXT: ll $6, 0($1)
2023+
; MIPS32R6O0-NEXT: bnec $6, $4, $BB7_3
20282024
; MIPS32R6O0-NEXT: # %bb.2: # %entry
20292025
; MIPS32R6O0-NEXT: # in Loop: Header=BB7_1 Depth=1
2030-
; MIPS32R6O0-NEXT: move $8, $5
2031-
; MIPS32R6O0-NEXT: sc $8, 0($1)
2032-
; MIPS32R6O0-NEXT: beqzc $8, $BB7_1
2026+
; MIPS32R6O0-NEXT: move $7, $5
2027+
; MIPS32R6O0-NEXT: sc $7, 0($1)
2028+
; MIPS32R6O0-NEXT: beqzc $7, $BB7_1
20332029
; MIPS32R6O0-NEXT: $BB7_3: # %entry
2034-
; MIPS32R6O0-NEXT: sw $2, 12($sp) # 4-byte Folded Spill
2035-
; MIPS32R6O0-NEXT: move $2, $7
2036-
; MIPS32R6O0-NEXT: sw $3, 8($sp) # 4-byte Folded Spill
2037-
; MIPS32R6O0-NEXT: sw $7, 16($sp) # 4-byte Folded Spill
2038-
; MIPS32R6O0-NEXT: sw $6, 4($sp) # 4-byte Folded Spill
2039-
; MIPS32R6O0-NEXT: addiu $sp, $sp, 24
2030+
; MIPS32R6O0-NEXT: sw $2, 8($sp) # 4-byte Folded Spill
2031+
; MIPS32R6O0-NEXT: move $2, $6
2032+
; MIPS32R6O0-NEXT: sw $3, 4($sp) # 4-byte Folded Spill
2033+
; MIPS32R6O0-NEXT: addiu $sp, $sp, 16
20402034
; MIPS32R6O0-NEXT: jrc $ra
20412035
;
20422036
; MIPS4-LABEL: AtomicCmpSwap32:
@@ -2141,20 +2135,17 @@ define i32 @AtomicCmpSwap32(i32 signext %oldval, i32 signext %newval) nounwind {
21412135
; MIPS64R6O0-NEXT: sw $3, 12($sp)
21422136
; MIPS64R6O0-NEXT: lw $3, 12($sp)
21432137
; MIPS64R6O0-NEXT: ld $1, %got_disp(x)($1)
2144-
; MIPS64R6O0-NEXT: lw $6, 8($sp) # 4-byte Folded Reload
21452138
; MIPS64R6O0-NEXT: .LBB7_1: # %entry
21462139
; MIPS64R6O0-NEXT: # =>This Inner Loop Header: Depth=1
2147-
; MIPS64R6O0-NEXT: ll $7, 0($1)
2148-
; MIPS64R6O0-NEXT: bnec $7, $2, .LBB7_3
2140+
; MIPS64R6O0-NEXT: ll $6, 0($1)
2141+
; MIPS64R6O0-NEXT: bnec $6, $2, .LBB7_3
21492142
; MIPS64R6O0-NEXT: # %bb.2: # %entry
21502143
; MIPS64R6O0-NEXT: # in Loop: Header=BB7_1 Depth=1
2151-
; MIPS64R6O0-NEXT: move $8, $3
2152-
; MIPS64R6O0-NEXT: sc $8, 0($1)
2153-
; MIPS64R6O0-NEXT: beqzc $8, .LBB7_1
2144+
; MIPS64R6O0-NEXT: move $7, $3
2145+
; MIPS64R6O0-NEXT: sc $7, 0($1)
2146+
; MIPS64R6O0-NEXT: beqzc $7, .LBB7_1
21542147
; MIPS64R6O0-NEXT: .LBB7_3: # %entry
2155-
; MIPS64R6O0-NEXT: move $2, $7
2156-
; MIPS64R6O0-NEXT: sw $7, 8($sp) # 4-byte Folded Spill
2157-
; MIPS64R6O0-NEXT: sw $6, 4($sp) # 4-byte Folded Spill
2148+
; MIPS64R6O0-NEXT: move $2, $6
21582149
; MIPS64R6O0-NEXT: daddiu $sp, $sp, 16
21592150
; MIPS64R6O0-NEXT: jrc $ra
21602151
;
@@ -6982,37 +6973,34 @@ define i32 @zeroreg() nounwind {
69826973
; MIPS32O0: # %bb.0: # %entry
69836974
; MIPS32O0-NEXT: lui $2, %hi(_gp_disp)
69846975
; MIPS32O0-NEXT: addiu $2, $2, %lo(_gp_disp)
6985-
; MIPS32O0-NEXT: addiu $sp, $sp, -16
6976+
; MIPS32O0-NEXT: addiu $sp, $sp, -8
69866977
; MIPS32O0-NEXT: addu $1, $2, $25
69876978
; MIPS32O0-NEXT: sync
69886979
; MIPS32O0-NEXT: lw $1, %got(a)($1)
69896980
; MIPS32O0-NEXT: addiu $2, $zero, 0
69906981
; MIPS32O0-NEXT: addiu $3, $zero, 1
6991-
; MIPS32O0-NEXT: lw $4, 12($sp) # 4-byte Folded Reload
6992-
; MIPS32O0-NEXT: move $5, $3
6982+
; MIPS32O0-NEXT: move $4, $3
69936983
; MIPS32O0-NEXT: $BB17_1: # %entry
69946984
; MIPS32O0-NEXT: # =>This Inner Loop Header: Depth=1
6995-
; MIPS32O0-NEXT: ll $6, 0($1)
6996-
; MIPS32O0-NEXT: bne $6, $5, $BB17_3
6985+
; MIPS32O0-NEXT: ll $5, 0($1)
6986+
; MIPS32O0-NEXT: bne $5, $4, $BB17_3
69976987
; MIPS32O0-NEXT: nop
69986988
; MIPS32O0-NEXT: # %bb.2: # %entry
69996989
; MIPS32O0-NEXT: # in Loop: Header=BB17_1 Depth=1
7000-
; MIPS32O0-NEXT: move $7, $2
7001-
; MIPS32O0-NEXT: sc $7, 0($1)
7002-
; MIPS32O0-NEXT: beqz $7, $BB17_1
6990+
; MIPS32O0-NEXT: move $6, $2
6991+
; MIPS32O0-NEXT: sc $6, 0($1)
6992+
; MIPS32O0-NEXT: beqz $6, $BB17_1
70036993
; MIPS32O0-NEXT: nop
70046994
; MIPS32O0-NEXT: $BB17_3: # %entry
7005-
; MIPS32O0-NEXT: xor $1, $6, $3
6995+
; MIPS32O0-NEXT: xor $1, $5, $3
70066996
; MIPS32O0-NEXT: sltiu $1, $1, 1
70076997
; MIPS32O0-NEXT: sync
70086998
; MIPS32O0-NEXT: addiu $2, $zero, 1
7009-
; MIPS32O0-NEXT: xor $2, $6, $2
6999+
; MIPS32O0-NEXT: xor $2, $5, $2
70107000
; MIPS32O0-NEXT: sltiu $2, $2, 1
70117001
; MIPS32O0-NEXT: andi $2, $2, 1
7012-
; MIPS32O0-NEXT: sw $6, 12($sp) # 4-byte Folded Spill
7013-
; MIPS32O0-NEXT: sw $4, 8($sp) # 4-byte Folded Spill
70147002
; MIPS32O0-NEXT: sw $1, 4($sp) # 4-byte Folded Spill
7015-
; MIPS32O0-NEXT: addiu $sp, $sp, 16
7003+
; MIPS32O0-NEXT: addiu $sp, $sp, 8
70167004
; MIPS32O0-NEXT: jr $ra
70177005
; MIPS32O0-NEXT: nop
70187006
;
@@ -7071,30 +7059,25 @@ define i32 @zeroreg() nounwind {
70717059
; MIPS32R6O0: # %bb.0: # %entry
70727060
; MIPS32R6O0-NEXT: lui $2, %hi(_gp_disp)
70737061
; MIPS32R6O0-NEXT: addiu $2, $2, %lo(_gp_disp)
7074-
; MIPS32R6O0-NEXT: addiu $sp, $sp, -8
70757062
; MIPS32R6O0-NEXT: addu $1, $2, $25
70767063
; MIPS32R6O0-NEXT: sync
70777064
; MIPS32R6O0-NEXT: lw $1, %got(a)($1)
70787065
; MIPS32R6O0-NEXT: addiu $2, $zero, 0
70797066
; MIPS32R6O0-NEXT: addiu $3, $zero, 1
7080-
; MIPS32R6O0-NEXT: lw $4, 4($sp) # 4-byte Folded Reload
7081-
; MIPS32R6O0-NEXT: move $5, $3
7067+
; MIPS32R6O0-NEXT: move $4, $3
70827068
; MIPS32R6O0-NEXT: $BB17_1: # %entry
70837069
; MIPS32R6O0-NEXT: # =>This Inner Loop Header: Depth=1
7084-
; MIPS32R6O0-NEXT: ll $6, 0($1)
7085-
; MIPS32R6O0-NEXT: bnec $6, $5, $BB17_3
7070+
; MIPS32R6O0-NEXT: ll $5, 0($1)
7071+
; MIPS32R6O0-NEXT: bnec $5, $4, $BB17_3
70867072
; MIPS32R6O0-NEXT: # %bb.2: # %entry
70877073
; MIPS32R6O0-NEXT: # in Loop: Header=BB17_1 Depth=1
7088-
; MIPS32R6O0-NEXT: move $7, $2
7089-
; MIPS32R6O0-NEXT: sc $7, 0($1)
7090-
; MIPS32R6O0-NEXT: beqzc $7, $BB17_1
7074+
; MIPS32R6O0-NEXT: move $6, $2
7075+
; MIPS32R6O0-NEXT: sc $6, 0($1)
7076+
; MIPS32R6O0-NEXT: beqzc $6, $BB17_1
70917077
; MIPS32R6O0-NEXT: $BB17_3: # %entry
7092-
; MIPS32R6O0-NEXT: xor $1, $6, $3
7078+
; MIPS32R6O0-NEXT: xor $1, $5, $3
70937079
; MIPS32R6O0-NEXT: sltiu $2, $1, 1
70947080
; MIPS32R6O0-NEXT: sync
7095-
; MIPS32R6O0-NEXT: sw $6, 4($sp) # 4-byte Folded Spill
7096-
; MIPS32R6O0-NEXT: sw $4, 0($sp) # 4-byte Folded Spill
7097-
; MIPS32R6O0-NEXT: addiu $sp, $sp, 8
70987081
; MIPS32R6O0-NEXT: jrc $ra
70997082
;
71007083
; MIPS4-LABEL: zeroreg:
@@ -7204,32 +7187,27 @@ define i32 @zeroreg() nounwind {
72047187
;
72057188
; MIPS64R6O0-LABEL: zeroreg:
72067189
; MIPS64R6O0: # %bb.0: # %entry
7207-
; MIPS64R6O0-NEXT: daddiu $sp, $sp, -16
72087190
; MIPS64R6O0-NEXT: lui $1, %hi(%neg(%gp_rel(zeroreg)))
72097191
; MIPS64R6O0-NEXT: daddu $1, $1, $25
72107192
; MIPS64R6O0-NEXT: daddiu $1, $1, %lo(%neg(%gp_rel(zeroreg)))
72117193
; MIPS64R6O0-NEXT: sync
72127194
; MIPS64R6O0-NEXT: ld $1, %got_disp(a)($1)
72137195
; MIPS64R6O0-NEXT: addiu $2, $zero, 0
72147196
; MIPS64R6O0-NEXT: addiu $3, $zero, 1
7215-
; MIPS64R6O0-NEXT: lw $4, 12($sp) # 4-byte Folded Reload
7216-
; MIPS64R6O0-NEXT: move $5, $3
7197+
; MIPS64R6O0-NEXT: move $4, $3
72177198
; MIPS64R6O0-NEXT: .LBB17_1: # %entry
72187199
; MIPS64R6O0-NEXT: # =>This Inner Loop Header: Depth=1
7219-
; MIPS64R6O0-NEXT: ll $6, 0($1)
7220-
; MIPS64R6O0-NEXT: bnec $6, $5, .LBB17_3
7200+
; MIPS64R6O0-NEXT: ll $5, 0($1)
7201+
; MIPS64R6O0-NEXT: bnec $5, $4, .LBB17_3
72217202
; MIPS64R6O0-NEXT: # %bb.2: # %entry
72227203
; MIPS64R6O0-NEXT: # in Loop: Header=BB17_1 Depth=1
7223-
; MIPS64R6O0-NEXT: move $7, $2
7224-
; MIPS64R6O0-NEXT: sc $7, 0($1)
7225-
; MIPS64R6O0-NEXT: beqzc $7, .LBB17_1
7204+
; MIPS64R6O0-NEXT: move $6, $2
7205+
; MIPS64R6O0-NEXT: sc $6, 0($1)
7206+
; MIPS64R6O0-NEXT: beqzc $6, .LBB17_1
72267207
; MIPS64R6O0-NEXT: .LBB17_3: # %entry
7227-
; MIPS64R6O0-NEXT: xor $2, $6, $3
7208+
; MIPS64R6O0-NEXT: xor $2, $5, $3
72287209
; MIPS64R6O0-NEXT: sltiu $2, $2, 1
72297210
; MIPS64R6O0-NEXT: sync
7230-
; MIPS64R6O0-NEXT: sw $6, 12($sp) # 4-byte Folded Spill
7231-
; MIPS64R6O0-NEXT: sw $4, 8($sp) # 4-byte Folded Spill
7232-
; MIPS64R6O0-NEXT: daddiu $sp, $sp, 16
72337211
; MIPS64R6O0-NEXT: jrc $ra
72347212
;
72357213
; MM32-LABEL: zeroreg:

test/CodeGen/Mips/atomic64.ll

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1274,32 +1274,29 @@ define i64 @AtomicCmpSwap64(i64 signext %oldval, i64 signext %newval) nounwind {
12741274
;
12751275
; MIPS64R6O0-LABEL: AtomicCmpSwap64:
12761276
; MIPS64R6O0: # %bb.0: # %entry
1277-
; MIPS64R6O0-NEXT: daddiu $sp, $sp, -48
1277+
; MIPS64R6O0-NEXT: daddiu $sp, $sp, -32
12781278
; MIPS64R6O0-NEXT: lui $1, %hi(%neg(%gp_rel(AtomicCmpSwap64)))
12791279
; MIPS64R6O0-NEXT: daddu $1, $1, $25
12801280
; MIPS64R6O0-NEXT: daddiu $1, $1, %lo(%neg(%gp_rel(AtomicCmpSwap64)))
12811281
; MIPS64R6O0-NEXT: move $2, $5
12821282
; MIPS64R6O0-NEXT: move $3, $4
1283-
; MIPS64R6O0-NEXT: sd $5, 40($sp)
1284-
; MIPS64R6O0-NEXT: ld $5, 40($sp)
1283+
; MIPS64R6O0-NEXT: sd $5, 24($sp)
1284+
; MIPS64R6O0-NEXT: ld $5, 24($sp)
12851285
; MIPS64R6O0-NEXT: ld $1, %got_disp(x)($1)
1286-
; MIPS64R6O0-NEXT: ld $6, 32($sp) # 8-byte Folded Reload
12871286
; MIPS64R6O0-NEXT: .LBB7_1: # %entry
12881287
; MIPS64R6O0-NEXT: # =>This Inner Loop Header: Depth=1
1289-
; MIPS64R6O0-NEXT: lld $7, 0($1)
1290-
; MIPS64R6O0-NEXT: bnec $7, $4, .LBB7_3
1288+
; MIPS64R6O0-NEXT: lld $6, 0($1)
1289+
; MIPS64R6O0-NEXT: bnec $6, $4, .LBB7_3
12911290
; MIPS64R6O0-NEXT: # %bb.2: # %entry
12921291
; MIPS64R6O0-NEXT: # in Loop: Header=BB7_1 Depth=1
1293-
; MIPS64R6O0-NEXT: move $8, $5
1294-
; MIPS64R6O0-NEXT: scd $8, 0($1)
1295-
; MIPS64R6O0-NEXT: beqzc $8, .LBB7_1
1292+
; MIPS64R6O0-NEXT: move $7, $5
1293+
; MIPS64R6O0-NEXT: scd $7, 0($1)
1294+
; MIPS64R6O0-NEXT: beqzc $7, .LBB7_1
12961295
; MIPS64R6O0-NEXT: .LBB7_3: # %entry
1297-
; MIPS64R6O0-NEXT: sd $2, 24($sp) # 8-byte Folded Spill
1298-
; MIPS64R6O0-NEXT: move $2, $7
1299-
; MIPS64R6O0-NEXT: sd $3, 16($sp) # 8-byte Folded Spill
1300-
; MIPS64R6O0-NEXT: sd $7, 32($sp) # 8-byte Folded Spill
1301-
; MIPS64R6O0-NEXT: sd $6, 8($sp) # 8-byte Folded Spill
1302-
; MIPS64R6O0-NEXT: daddiu $sp, $sp, 48
1296+
; MIPS64R6O0-NEXT: sd $2, 16($sp) # 8-byte Folded Spill
1297+
; MIPS64R6O0-NEXT: move $2, $6
1298+
; MIPS64R6O0-NEXT: sd $3, 8($sp) # 8-byte Folded Spill
1299+
; MIPS64R6O0-NEXT: daddiu $sp, $sp, 32
13031300
; MIPS64R6O0-NEXT: jrc $ra
13041301
;
13051302
; O1-LABEL: AtomicCmpSwap64:

test/CodeGen/Mips/atomicCmpSwapPW.ll

Lines changed: 20 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -18,24 +18,22 @@ define void @foo(i32 %new, i32 %old) {
1818
; O32-NEXT: lui $3, %hi(sym)
1919
; O32-NEXT: lw $3, %lo(sym)($3)
2020
; O32-NEXT: sync
21-
; O32-NEXT: lw $6, 12($sp) # 4-byte Folded Reload
2221
; O32-NEXT: $BB0_1: # %entry
2322
; O32-NEXT: # =>This Inner Loop Header: Depth=1
24-
; O32-NEXT: ll $7, 0($3)
25-
; O32-NEXT: bne $7, $4, $BB0_3
23+
; O32-NEXT: ll $6, 0($3)
24+
; O32-NEXT: bne $6, $4, $BB0_3
2625
; O32-NEXT: nop
2726
; O32-NEXT: # %bb.2: # %entry
2827
; O32-NEXT: # in Loop: Header=BB0_1 Depth=1
29-
; O32-NEXT: move $8, $5
30-
; O32-NEXT: sc $8, 0($3)
31-
; O32-NEXT: beqz $8, $BB0_1
28+
; O32-NEXT: move $7, $5
29+
; O32-NEXT: sc $7, 0($3)
30+
; O32-NEXT: beqz $7, $BB0_1
3231
; O32-NEXT: nop
3332
; O32-NEXT: $BB0_3: # %entry
3433
; O32-NEXT: sync
35-
; O32-NEXT: sw $1, 8($sp) # 4-byte Folded Spill
36-
; O32-NEXT: sw $2, 4($sp) # 4-byte Folded Spill
37-
; O32-NEXT: sw $7, 12($sp) # 4-byte Folded Spill
38-
; O32-NEXT: sw $6, 0($sp) # 4-byte Folded Spill
34+
; O32-NEXT: sw $1, 12($sp) # 4-byte Folded Spill
35+
; O32-NEXT: sw $2, 8($sp) # 4-byte Folded Spill
36+
; O32-NEXT: sw $6, 4($sp) # 4-byte Folded Spill
3937
; O32-NEXT: addiu $sp, $sp, 16
4038
; O32-NEXT: jr $ra
4139
; O32-NEXT: nop
@@ -51,22 +49,20 @@ define void @foo(i32 %new, i32 %old) {
5149
; N32-NEXT: lui $3, %hi(sym)
5250
; N32-NEXT: lw $3, %lo(sym)($3)
5351
; N32-NEXT: sync
54-
; N32-NEXT: lw $6, 12($sp) # 4-byte Folded Reload
5552
; N32-NEXT: .LBB0_1: # %entry
5653
; N32-NEXT: # =>This Inner Loop Header: Depth=1
57-
; N32-NEXT: ll $7, 0($3)
58-
; N32-NEXT: bne $7, $2, .LBB0_3
54+
; N32-NEXT: ll $6, 0($3)
55+
; N32-NEXT: bne $6, $2, .LBB0_3
5956
; N32-NEXT: nop
6057
; N32-NEXT: # %bb.2: # %entry
6158
; N32-NEXT: # in Loop: Header=BB0_1 Depth=1
62-
; N32-NEXT: move $8, $1
63-
; N32-NEXT: sc $8, 0($3)
64-
; N32-NEXT: beqz $8, .LBB0_1
59+
; N32-NEXT: move $7, $1
60+
; N32-NEXT: sc $7, 0($3)
61+
; N32-NEXT: beqz $7, .LBB0_1
6562
; N32-NEXT: nop
6663
; N32-NEXT: .LBB0_3: # %entry
6764
; N32-NEXT: sync
68-
; N32-NEXT: sw $7, 12($sp) # 4-byte Folded Spill
69-
; N32-NEXT: sw $6, 8($sp) # 4-byte Folded Spill
65+
; N32-NEXT: sw $6, 12($sp) # 4-byte Folded Spill
7066
; N32-NEXT: addiu $sp, $sp, 16
7167
; N32-NEXT: jr $ra
7268
; N32-NEXT: nop
@@ -86,22 +82,20 @@ define void @foo(i32 %new, i32 %old) {
8682
; N64-NEXT: dsll $3, $3, 16
8783
; N64-NEXT: ld $3, %lo(sym)($3)
8884
; N64-NEXT: sync
89-
; N64-NEXT: lw $6, 12($sp) # 4-byte Folded Reload
9085
; N64-NEXT: .LBB0_1: # %entry
9186
; N64-NEXT: # =>This Inner Loop Header: Depth=1
92-
; N64-NEXT: ll $7, 0($3)
93-
; N64-NEXT: bne $7, $2, .LBB0_3
87+
; N64-NEXT: ll $6, 0($3)
88+
; N64-NEXT: bne $6, $2, .LBB0_3
9489
; N64-NEXT: nop
9590
; N64-NEXT: # %bb.2: # %entry
9691
; N64-NEXT: # in Loop: Header=BB0_1 Depth=1
97-
; N64-NEXT: move $8, $1
98-
; N64-NEXT: sc $8, 0($3)
99-
; N64-NEXT: beqz $8, .LBB0_1
92+
; N64-NEXT: move $7, $1
93+
; N64-NEXT: sc $7, 0($3)
94+
; N64-NEXT: beqz $7, .LBB0_1
10095
; N64-NEXT: nop
10196
; N64-NEXT: .LBB0_3: # %entry
10297
; N64-NEXT: sync
103-
; N64-NEXT: sw $7, 12($sp) # 4-byte Folded Spill
104-
; N64-NEXT: sw $6, 8($sp) # 4-byte Folded Spill
98+
; N64-NEXT: sw $6, 12($sp) # 4-byte Folded Spill
10599
; N64-NEXT: daddiu $sp, $sp, 16
106100
; N64-NEXT: jr $ra
107101
; N64-NEXT: nop

0 commit comments

Comments
 (0)