|
@@ -106,20 +106,16 @@ define i32 @AtomicLoadAdd32(i32 signext %incr) nounwind {
|
|
; MIPS32R6O0: # %bb.0: # %entry
|
|
; MIPS32R6O0: # %bb.0: # %entry
|
|
; MIPS32R6O0-NEXT: lui $2, %hi(_gp_disp)
|
|
; MIPS32R6O0-NEXT: lui $2, %hi(_gp_disp)
|
|
; MIPS32R6O0-NEXT: addiu $2, $2, %lo(_gp_disp)
|
|
; MIPS32R6O0-NEXT: addiu $2, $2, %lo(_gp_disp)
|
|
-; MIPS32R6O0-NEXT: addiu $sp, $sp, -8
|
|
|
|
; MIPS32R6O0-NEXT: addu $1, $2, $25
|
|
; MIPS32R6O0-NEXT: addu $1, $2, $25
|
|
-; MIPS32R6O0-NEXT: move $2, $4
|
|
|
|
; MIPS32R6O0-NEXT: lw $1, %got(x)($1)
|
|
; MIPS32R6O0-NEXT: lw $1, %got(x)($1)
|
|
; MIPS32R6O0-NEXT: $BB0_1: # %entry
|
|
; MIPS32R6O0-NEXT: $BB0_1: # %entry
|
|
; MIPS32R6O0-NEXT: # =>This Inner Loop Header: Depth=1
|
|
; MIPS32R6O0-NEXT: # =>This Inner Loop Header: Depth=1
|
|
-; MIPS32R6O0-NEXT: ll $3, 0($1)
|
|
|
|
-; MIPS32R6O0-NEXT: addu $5, $3, $4
|
|
|
|
-; MIPS32R6O0-NEXT: sc $5, 0($1)
|
|
|
|
-; MIPS32R6O0-NEXT: beqzc $5, $BB0_1
|
|
|
|
|
|
+; MIPS32R6O0-NEXT: ll $2, 0($1)
|
|
|
|
+; MIPS32R6O0-NEXT: addu $3, $2, $4
|
|
|
|
+; MIPS32R6O0-NEXT: sc $3, 0($1)
|
|
|
|
+; MIPS32R6O0-NEXT: beqzc $3, $BB0_1
|
|
|
|
+; MIPS32R6O0-NEXT: nop
|
|
; MIPS32R6O0-NEXT: # %bb.2: # %entry
|
|
; MIPS32R6O0-NEXT: # %bb.2: # %entry
|
|
-; MIPS32R6O0-NEXT: sw $2, 4($sp) # 4-byte Folded Spill
|
|
|
|
-; MIPS32R6O0-NEXT: move $2, $3
|
|
|
|
-; MIPS32R6O0-NEXT: addiu $sp, $sp, 8
|
|
|
|
; MIPS32R6O0-NEXT: jrc $ra
|
|
; MIPS32R6O0-NEXT: jrc $ra
|
|
;
|
|
;
|
|
; MIPS4-LABEL: AtomicLoadAdd32:
|
|
; MIPS4-LABEL: AtomicLoadAdd32:
|
|
@@ -366,20 +362,16 @@ define i32 @AtomicLoadSub32(i32 signext %incr) nounwind {
|
|
; MIPS32R6O0: # %bb.0: # %entry
|
|
; MIPS32R6O0: # %bb.0: # %entry
|
|
; MIPS32R6O0-NEXT: lui $2, %hi(_gp_disp)
|
|
; MIPS32R6O0-NEXT: lui $2, %hi(_gp_disp)
|
|
; MIPS32R6O0-NEXT: addiu $2, $2, %lo(_gp_disp)
|
|
; MIPS32R6O0-NEXT: addiu $2, $2, %lo(_gp_disp)
|
|
-; MIPS32R6O0-NEXT: addiu $sp, $sp, -8
|
|
|
|
; MIPS32R6O0-NEXT: addu $1, $2, $25
|
|
; MIPS32R6O0-NEXT: addu $1, $2, $25
|
|
-; MIPS32R6O0-NEXT: move $2, $4
|
|
|
|
; MIPS32R6O0-NEXT: lw $1, %got(x)($1)
|
|
; MIPS32R6O0-NEXT: lw $1, %got(x)($1)
|
|
; MIPS32R6O0-NEXT: $BB1_1: # %entry
|
|
; MIPS32R6O0-NEXT: $BB1_1: # %entry
|
|
; MIPS32R6O0-NEXT: # =>This Inner Loop Header: Depth=1
|
|
; MIPS32R6O0-NEXT: # =>This Inner Loop Header: Depth=1
|
|
-; MIPS32R6O0-NEXT: ll $3, 0($1)
|
|
|
|
-; MIPS32R6O0-NEXT: subu $5, $3, $4
|
|
|
|
-; MIPS32R6O0-NEXT: sc $5, 0($1)
|
|
|
|
-; MIPS32R6O0-NEXT: beqzc $5, $BB1_1
|
|
|
|
|
|
+; MIPS32R6O0-NEXT: ll $2, 0($1)
|
|
|
|
+; MIPS32R6O0-NEXT: subu $3, $2, $4
|
|
|
|
+; MIPS32R6O0-NEXT: sc $3, 0($1)
|
|
|
|
+; MIPS32R6O0-NEXT: beqzc $3, $BB1_1
|
|
|
|
+; MIPS32R6O0-NEXT: nop
|
|
; MIPS32R6O0-NEXT: # %bb.2: # %entry
|
|
; MIPS32R6O0-NEXT: # %bb.2: # %entry
|
|
-; MIPS32R6O0-NEXT: sw $2, 4($sp) # 4-byte Folded Spill
|
|
|
|
-; MIPS32R6O0-NEXT: move $2, $3
|
|
|
|
-; MIPS32R6O0-NEXT: addiu $sp, $sp, 8
|
|
|
|
; MIPS32R6O0-NEXT: jrc $ra
|
|
; MIPS32R6O0-NEXT: jrc $ra
|
|
;
|
|
;
|
|
; MIPS4-LABEL: AtomicLoadSub32:
|
|
; MIPS4-LABEL: AtomicLoadSub32:
|
|
@@ -626,20 +618,16 @@ define i32 @AtomicLoadXor32(i32 signext %incr) nounwind {
|
|
; MIPS32R6O0: # %bb.0: # %entry
|
|
; MIPS32R6O0: # %bb.0: # %entry
|
|
; MIPS32R6O0-NEXT: lui $2, %hi(_gp_disp)
|
|
; MIPS32R6O0-NEXT: lui $2, %hi(_gp_disp)
|
|
; MIPS32R6O0-NEXT: addiu $2, $2, %lo(_gp_disp)
|
|
; MIPS32R6O0-NEXT: addiu $2, $2, %lo(_gp_disp)
|
|
-; MIPS32R6O0-NEXT: addiu $sp, $sp, -8
|
|
|
|
; MIPS32R6O0-NEXT: addu $1, $2, $25
|
|
; MIPS32R6O0-NEXT: addu $1, $2, $25
|
|
-; MIPS32R6O0-NEXT: move $2, $4
|
|
|
|
; MIPS32R6O0-NEXT: lw $1, %got(x)($1)
|
|
; MIPS32R6O0-NEXT: lw $1, %got(x)($1)
|
|
; MIPS32R6O0-NEXT: $BB2_1: # %entry
|
|
; MIPS32R6O0-NEXT: $BB2_1: # %entry
|
|
; MIPS32R6O0-NEXT: # =>This Inner Loop Header: Depth=1
|
|
; MIPS32R6O0-NEXT: # =>This Inner Loop Header: Depth=1
|
|
-; MIPS32R6O0-NEXT: ll $3, 0($1)
|
|
|
|
-; MIPS32R6O0-NEXT: xor $5, $3, $4
|
|
|
|
-; MIPS32R6O0-NEXT: sc $5, 0($1)
|
|
|
|
-; MIPS32R6O0-NEXT: beqzc $5, $BB2_1
|
|
|
|
|
|
+; MIPS32R6O0-NEXT: ll $2, 0($1)
|
|
|
|
+; MIPS32R6O0-NEXT: xor $3, $2, $4
|
|
|
|
+; MIPS32R6O0-NEXT: sc $3, 0($1)
|
|
|
|
+; MIPS32R6O0-NEXT: beqzc $3, $BB2_1
|
|
|
|
+; MIPS32R6O0-NEXT: nop
|
|
; MIPS32R6O0-NEXT: # %bb.2: # %entry
|
|
; MIPS32R6O0-NEXT: # %bb.2: # %entry
|
|
-; MIPS32R6O0-NEXT: sw $2, 4($sp) # 4-byte Folded Spill
|
|
|
|
-; MIPS32R6O0-NEXT: move $2, $3
|
|
|
|
-; MIPS32R6O0-NEXT: addiu $sp, $sp, 8
|
|
|
|
; MIPS32R6O0-NEXT: jrc $ra
|
|
; MIPS32R6O0-NEXT: jrc $ra
|
|
;
|
|
;
|
|
; MIPS4-LABEL: AtomicLoadXor32:
|
|
; MIPS4-LABEL: AtomicLoadXor32:
|
|
@@ -885,20 +873,16 @@ define i32 @AtomicLoadOr32(i32 signext %incr) nounwind {
|
|
; MIPS32R6O0: # %bb.0: # %entry
|
|
; MIPS32R6O0: # %bb.0: # %entry
|
|
; MIPS32R6O0-NEXT: lui $2, %hi(_gp_disp)
|
|
; MIPS32R6O0-NEXT: lui $2, %hi(_gp_disp)
|
|
; MIPS32R6O0-NEXT: addiu $2, $2, %lo(_gp_disp)
|
|
; MIPS32R6O0-NEXT: addiu $2, $2, %lo(_gp_disp)
|
|
-; MIPS32R6O0-NEXT: addiu $sp, $sp, -8
|
|
|
|
; MIPS32R6O0-NEXT: addu $1, $2, $25
|
|
; MIPS32R6O0-NEXT: addu $1, $2, $25
|
|
-; MIPS32R6O0-NEXT: move $2, $4
|
|
|
|
; MIPS32R6O0-NEXT: lw $1, %got(x)($1)
|
|
; MIPS32R6O0-NEXT: lw $1, %got(x)($1)
|
|
; MIPS32R6O0-NEXT: $BB3_1: # %entry
|
|
; MIPS32R6O0-NEXT: $BB3_1: # %entry
|
|
; MIPS32R6O0-NEXT: # =>This Inner Loop Header: Depth=1
|
|
; MIPS32R6O0-NEXT: # =>This Inner Loop Header: Depth=1
|
|
-; MIPS32R6O0-NEXT: ll $3, 0($1)
|
|
|
|
-; MIPS32R6O0-NEXT: or $5, $3, $4
|
|
|
|
-; MIPS32R6O0-NEXT: sc $5, 0($1)
|
|
|
|
-; MIPS32R6O0-NEXT: beqzc $5, $BB3_1
|
|
|
|
|
|
+; MIPS32R6O0-NEXT: ll $2, 0($1)
|
|
|
|
+; MIPS32R6O0-NEXT: or $3, $2, $4
|
|
|
|
+; MIPS32R6O0-NEXT: sc $3, 0($1)
|
|
|
|
+; MIPS32R6O0-NEXT: beqzc $3, $BB3_1
|
|
|
|
+; MIPS32R6O0-NEXT: nop
|
|
; MIPS32R6O0-NEXT: # %bb.2: # %entry
|
|
; MIPS32R6O0-NEXT: # %bb.2: # %entry
|
|
-; MIPS32R6O0-NEXT: sw $2, 4($sp) # 4-byte Folded Spill
|
|
|
|
-; MIPS32R6O0-NEXT: move $2, $3
|
|
|
|
-; MIPS32R6O0-NEXT: addiu $sp, $sp, 8
|
|
|
|
; MIPS32R6O0-NEXT: jrc $ra
|
|
; MIPS32R6O0-NEXT: jrc $ra
|
|
;
|
|
;
|
|
; MIPS4-LABEL: AtomicLoadOr32:
|
|
; MIPS4-LABEL: AtomicLoadOr32:
|
|
@@ -1144,20 +1128,16 @@ define i32 @AtomicLoadAnd32(i32 signext %incr) nounwind {
|
|
; MIPS32R6O0: # %bb.0: # %entry
|
|
; MIPS32R6O0: # %bb.0: # %entry
|
|
; MIPS32R6O0-NEXT: lui $2, %hi(_gp_disp)
|
|
; MIPS32R6O0-NEXT: lui $2, %hi(_gp_disp)
|
|
; MIPS32R6O0-NEXT: addiu $2, $2, %lo(_gp_disp)
|
|
; MIPS32R6O0-NEXT: addiu $2, $2, %lo(_gp_disp)
|
|
-; MIPS32R6O0-NEXT: addiu $sp, $sp, -8
|
|
|
|
; MIPS32R6O0-NEXT: addu $1, $2, $25
|
|
; MIPS32R6O0-NEXT: addu $1, $2, $25
|
|
-; MIPS32R6O0-NEXT: move $2, $4
|
|
|
|
; MIPS32R6O0-NEXT: lw $1, %got(x)($1)
|
|
; MIPS32R6O0-NEXT: lw $1, %got(x)($1)
|
|
; MIPS32R6O0-NEXT: $BB4_1: # %entry
|
|
; MIPS32R6O0-NEXT: $BB4_1: # %entry
|
|
; MIPS32R6O0-NEXT: # =>This Inner Loop Header: Depth=1
|
|
; MIPS32R6O0-NEXT: # =>This Inner Loop Header: Depth=1
|
|
-; MIPS32R6O0-NEXT: ll $3, 0($1)
|
|
|
|
-; MIPS32R6O0-NEXT: and $5, $3, $4
|
|
|
|
-; MIPS32R6O0-NEXT: sc $5, 0($1)
|
|
|
|
-; MIPS32R6O0-NEXT: beqzc $5, $BB4_1
|
|
|
|
|
|
+; MIPS32R6O0-NEXT: ll $2, 0($1)
|
|
|
|
+; MIPS32R6O0-NEXT: and $3, $2, $4
|
|
|
|
+; MIPS32R6O0-NEXT: sc $3, 0($1)
|
|
|
|
+; MIPS32R6O0-NEXT: beqzc $3, $BB4_1
|
|
|
|
+; MIPS32R6O0-NEXT: nop
|
|
; MIPS32R6O0-NEXT: # %bb.2: # %entry
|
|
; MIPS32R6O0-NEXT: # %bb.2: # %entry
|
|
-; MIPS32R6O0-NEXT: sw $2, 4($sp) # 4-byte Folded Spill
|
|
|
|
-; MIPS32R6O0-NEXT: move $2, $3
|
|
|
|
-; MIPS32R6O0-NEXT: addiu $sp, $sp, 8
|
|
|
|
; MIPS32R6O0-NEXT: jrc $ra
|
|
; MIPS32R6O0-NEXT: jrc $ra
|
|
;
|
|
;
|
|
; MIPS4-LABEL: AtomicLoadAnd32:
|
|
; MIPS4-LABEL: AtomicLoadAnd32:
|
|
@@ -1407,21 +1387,17 @@ define i32 @AtomicLoadNand32(i32 signext %incr) nounwind {
|
|
; MIPS32R6O0: # %bb.0: # %entry
|
|
; MIPS32R6O0: # %bb.0: # %entry
|
|
; MIPS32R6O0-NEXT: lui $2, %hi(_gp_disp)
|
|
; MIPS32R6O0-NEXT: lui $2, %hi(_gp_disp)
|
|
; MIPS32R6O0-NEXT: addiu $2, $2, %lo(_gp_disp)
|
|
; MIPS32R6O0-NEXT: addiu $2, $2, %lo(_gp_disp)
|
|
-; MIPS32R6O0-NEXT: addiu $sp, $sp, -8
|
|
|
|
; MIPS32R6O0-NEXT: addu $1, $2, $25
|
|
; MIPS32R6O0-NEXT: addu $1, $2, $25
|
|
-; MIPS32R6O0-NEXT: move $2, $4
|
|
|
|
; MIPS32R6O0-NEXT: lw $1, %got(x)($1)
|
|
; MIPS32R6O0-NEXT: lw $1, %got(x)($1)
|
|
; MIPS32R6O0-NEXT: $BB5_1: # %entry
|
|
; MIPS32R6O0-NEXT: $BB5_1: # %entry
|
|
; MIPS32R6O0-NEXT: # =>This Inner Loop Header: Depth=1
|
|
; MIPS32R6O0-NEXT: # =>This Inner Loop Header: Depth=1
|
|
-; MIPS32R6O0-NEXT: ll $3, 0($1)
|
|
|
|
-; MIPS32R6O0-NEXT: and $5, $3, $4
|
|
|
|
-; MIPS32R6O0-NEXT: nor $5, $zero, $5
|
|
|
|
-; MIPS32R6O0-NEXT: sc $5, 0($1)
|
|
|
|
-; MIPS32R6O0-NEXT: beqzc $5, $BB5_1
|
|
|
|
|
|
+; MIPS32R6O0-NEXT: ll $2, 0($1)
|
|
|
|
+; MIPS32R6O0-NEXT: and $3, $2, $4
|
|
|
|
+; MIPS32R6O0-NEXT: nor $3, $zero, $3
|
|
|
|
+; MIPS32R6O0-NEXT: sc $3, 0($1)
|
|
|
|
+; MIPS32R6O0-NEXT: beqzc $3, $BB5_1
|
|
|
|
+; MIPS32R6O0-NEXT: nop
|
|
; MIPS32R6O0-NEXT: # %bb.2: # %entry
|
|
; MIPS32R6O0-NEXT: # %bb.2: # %entry
|
|
-; MIPS32R6O0-NEXT: sw $2, 4($sp) # 4-byte Folded Spill
|
|
|
|
-; MIPS32R6O0-NEXT: move $2, $3
|
|
|
|
-; MIPS32R6O0-NEXT: addiu $sp, $sp, 8
|
|
|
|
; MIPS32R6O0-NEXT: jrc $ra
|
|
; MIPS32R6O0-NEXT: jrc $ra
|
|
;
|
|
;
|
|
; MIPS4-LABEL: AtomicLoadNand32:
|
|
; MIPS4-LABEL: AtomicLoadNand32:
|
|
@@ -1692,19 +1668,17 @@ define i32 @AtomicSwap32(i32 signext %newval) nounwind {
|
|
; MIPS32R6O0-NEXT: addiu $2, $2, %lo(_gp_disp)
|
|
; MIPS32R6O0-NEXT: addiu $2, $2, %lo(_gp_disp)
|
|
; MIPS32R6O0-NEXT: addiu $sp, $sp, -8
|
|
; MIPS32R6O0-NEXT: addiu $sp, $sp, -8
|
|
; MIPS32R6O0-NEXT: addu $1, $2, $25
|
|
; MIPS32R6O0-NEXT: addu $1, $2, $25
|
|
-; MIPS32R6O0-NEXT: move $2, $4
|
|
|
|
; MIPS32R6O0-NEXT: sw $4, 4($sp)
|
|
; MIPS32R6O0-NEXT: sw $4, 4($sp)
|
|
-; MIPS32R6O0-NEXT: lw $3, 4($sp)
|
|
|
|
|
|
+; MIPS32R6O0-NEXT: lw $2, 4($sp)
|
|
; MIPS32R6O0-NEXT: lw $1, %got(x)($1)
|
|
; MIPS32R6O0-NEXT: lw $1, %got(x)($1)
|
|
; MIPS32R6O0-NEXT: $BB6_1: # %entry
|
|
; MIPS32R6O0-NEXT: $BB6_1: # %entry
|
|
; MIPS32R6O0-NEXT: # =>This Inner Loop Header: Depth=1
|
|
; MIPS32R6O0-NEXT: # =>This Inner Loop Header: Depth=1
|
|
-; MIPS32R6O0-NEXT: ll $4, 0($1)
|
|
|
|
-; MIPS32R6O0-NEXT: move $5, $3
|
|
|
|
-; MIPS32R6O0-NEXT: sc $5, 0($1)
|
|
|
|
-; MIPS32R6O0-NEXT: beqzc $5, $BB6_1
|
|
|
|
|
|
+; MIPS32R6O0-NEXT: ll $3, 0($1)
|
|
|
|
+; MIPS32R6O0-NEXT: move $4, $2
|
|
|
|
+; MIPS32R6O0-NEXT: sc $4, 0($1)
|
|
|
|
+; MIPS32R6O0-NEXT: beqzc $4, $BB6_1
|
|
; MIPS32R6O0-NEXT: # %bb.2: # %entry
|
|
; MIPS32R6O0-NEXT: # %bb.2: # %entry
|
|
-; MIPS32R6O0-NEXT: sw $2, 0($sp) # 4-byte Folded Spill
|
|
|
|
-; MIPS32R6O0-NEXT: move $2, $4
|
|
|
|
|
|
+; MIPS32R6O0-NEXT: move $2, $3
|
|
; MIPS32R6O0-NEXT: addiu $sp, $sp, 8
|
|
; MIPS32R6O0-NEXT: addiu $sp, $sp, 8
|
|
; MIPS32R6O0-NEXT: jrc $ra
|
|
; MIPS32R6O0-NEXT: jrc $ra
|
|
;
|
|
;
|
|
@@ -2011,23 +1985,20 @@ define i32 @AtomicCmpSwap32(i32 signext %oldval, i32 signext %newval) nounwind {
|
|
; MIPS32R6O0-NEXT: addiu $2, $2, %lo(_gp_disp)
|
|
; MIPS32R6O0-NEXT: addiu $2, $2, %lo(_gp_disp)
|
|
; MIPS32R6O0-NEXT: addiu $sp, $sp, -8
|
|
; MIPS32R6O0-NEXT: addiu $sp, $sp, -8
|
|
; MIPS32R6O0-NEXT: addu $1, $2, $25
|
|
; MIPS32R6O0-NEXT: addu $1, $2, $25
|
|
-; MIPS32R6O0-NEXT: move $2, $5
|
|
|
|
-; MIPS32R6O0-NEXT: move $3, $4
|
|
|
|
; MIPS32R6O0-NEXT: sw $5, 4($sp)
|
|
; MIPS32R6O0-NEXT: sw $5, 4($sp)
|
|
-; MIPS32R6O0-NEXT: lw $5, 4($sp)
|
|
|
|
|
|
+; MIPS32R6O0-NEXT: lw $2, 4($sp)
|
|
; MIPS32R6O0-NEXT: lw $1, %got(x)($1)
|
|
; MIPS32R6O0-NEXT: lw $1, %got(x)($1)
|
|
; MIPS32R6O0-NEXT: $BB7_1: # %entry
|
|
; MIPS32R6O0-NEXT: $BB7_1: # %entry
|
|
; MIPS32R6O0-NEXT: # =>This Inner Loop Header: Depth=1
|
|
; MIPS32R6O0-NEXT: # =>This Inner Loop Header: Depth=1
|
|
-; MIPS32R6O0-NEXT: ll $6, 0($1)
|
|
|
|
-; MIPS32R6O0-NEXT: bnec $6, $4, $BB7_3
|
|
|
|
|
|
+; MIPS32R6O0-NEXT: ll $3, 0($1)
|
|
|
|
+; MIPS32R6O0-NEXT: bnec $3, $4, $BB7_3
|
|
; MIPS32R6O0-NEXT: # %bb.2: # %entry
|
|
; MIPS32R6O0-NEXT: # %bb.2: # %entry
|
|
; MIPS32R6O0-NEXT: # in Loop: Header=BB7_1 Depth=1
|
|
; MIPS32R6O0-NEXT: # in Loop: Header=BB7_1 Depth=1
|
|
-; MIPS32R6O0-NEXT: move $7, $5
|
|
|
|
-; MIPS32R6O0-NEXT: sc $7, 0($1)
|
|
|
|
-; MIPS32R6O0-NEXT: beqzc $7, $BB7_1
|
|
|
|
|
|
+; MIPS32R6O0-NEXT: move $5, $2
|
|
|
|
+; MIPS32R6O0-NEXT: sc $5, 0($1)
|
|
|
|
+; MIPS32R6O0-NEXT: beqzc $5, $BB7_1
|
|
; MIPS32R6O0-NEXT: $BB7_3: # %entry
|
|
; MIPS32R6O0-NEXT: $BB7_3: # %entry
|
|
-; MIPS32R6O0-NEXT: sw $2, 0($sp) # 4-byte Folded Spill
|
|
|
|
-; MIPS32R6O0-NEXT: move $2, $6
|
|
|
|
|
|
+; MIPS32R6O0-NEXT: move $2, $3
|
|
; MIPS32R6O0-NEXT: addiu $sp, $sp, 8
|
|
; MIPS32R6O0-NEXT: addiu $sp, $sp, 8
|
|
; MIPS32R6O0-NEXT: jrc $ra
|
|
; MIPS32R6O0-NEXT: jrc $ra
|
|
;
|
|
;
|
|
@@ -5077,35 +5048,34 @@ define i1 @AtomicCmpSwapRes8(i8* %ptr, i8 signext %oldval, i8 signext %newval) n
|
|
; MIPS32R6O0-NEXT: addiu $sp, $sp, -8
|
|
; MIPS32R6O0-NEXT: addiu $sp, $sp, -8
|
|
; MIPS32R6O0-NEXT: move $1, $6
|
|
; MIPS32R6O0-NEXT: move $1, $6
|
|
; MIPS32R6O0-NEXT: move $2, $5
|
|
; MIPS32R6O0-NEXT: move $2, $5
|
|
-; MIPS32R6O0-NEXT: move $3, $4
|
|
|
|
-; MIPS32R6O0-NEXT: addiu $7, $zero, -4
|
|
|
|
-; MIPS32R6O0-NEXT: and $7, $4, $7
|
|
|
|
|
|
+; MIPS32R6O0-NEXT: addiu $3, $zero, -4
|
|
|
|
+; MIPS32R6O0-NEXT: and $3, $4, $3
|
|
; MIPS32R6O0-NEXT: andi $4, $4, 3
|
|
; MIPS32R6O0-NEXT: andi $4, $4, 3
|
|
; MIPS32R6O0-NEXT: sll $4, $4, 3
|
|
; MIPS32R6O0-NEXT: sll $4, $4, 3
|
|
-; MIPS32R6O0-NEXT: ori $8, $zero, 255
|
|
|
|
-; MIPS32R6O0-NEXT: sllv $8, $8, $4
|
|
|
|
-; MIPS32R6O0-NEXT: nor $9, $zero, $8
|
|
|
|
-; MIPS32R6O0-NEXT: andi $10, $5, 255
|
|
|
|
-; MIPS32R6O0-NEXT: sllv $10, $10, $4
|
|
|
|
|
|
+; MIPS32R6O0-NEXT: ori $7, $zero, 255
|
|
|
|
+; MIPS32R6O0-NEXT: sllv $7, $7, $4
|
|
|
|
+; MIPS32R6O0-NEXT: nor $8, $zero, $7
|
|
|
|
+; MIPS32R6O0-NEXT: andi $9, $5, 255
|
|
|
|
+; MIPS32R6O0-NEXT: sllv $9, $9, $4
|
|
; MIPS32R6O0-NEXT: andi $6, $6, 255
|
|
; MIPS32R6O0-NEXT: andi $6, $6, 255
|
|
; MIPS32R6O0-NEXT: sllv $6, $6, $4
|
|
; MIPS32R6O0-NEXT: sllv $6, $6, $4
|
|
; MIPS32R6O0-NEXT: $BB13_1: # %entry
|
|
; MIPS32R6O0-NEXT: $BB13_1: # %entry
|
|
; MIPS32R6O0-NEXT: # =>This Inner Loop Header: Depth=1
|
|
; MIPS32R6O0-NEXT: # =>This Inner Loop Header: Depth=1
|
|
-; MIPS32R6O0-NEXT: ll $12, 0($7)
|
|
|
|
-; MIPS32R6O0-NEXT: and $13, $12, $8
|
|
|
|
-; MIPS32R6O0-NEXT: bnec $13, $10, $BB13_3
|
|
|
|
|
|
+; MIPS32R6O0-NEXT: ll $11, 0($3)
|
|
|
|
+; MIPS32R6O0-NEXT: and $12, $11, $7
|
|
|
|
+; MIPS32R6O0-NEXT: bnec $12, $9, $BB13_3
|
|
; MIPS32R6O0-NEXT: # %bb.2: # %entry
|
|
; MIPS32R6O0-NEXT: # %bb.2: # %entry
|
|
; MIPS32R6O0-NEXT: # in Loop: Header=BB13_1 Depth=1
|
|
; MIPS32R6O0-NEXT: # in Loop: Header=BB13_1 Depth=1
|
|
-; MIPS32R6O0-NEXT: and $12, $12, $9
|
|
|
|
-; MIPS32R6O0-NEXT: or $12, $12, $6
|
|
|
|
-; MIPS32R6O0-NEXT: sc $12, 0($7)
|
|
|
|
-; MIPS32R6O0-NEXT: beqzc $12, $BB13_1
|
|
|
|
|
|
+; MIPS32R6O0-NEXT: and $11, $11, $8
|
|
|
|
+; MIPS32R6O0-NEXT: or $11, $11, $6
|
|
|
|
+; MIPS32R6O0-NEXT: sc $11, 0($3)
|
|
|
|
+; MIPS32R6O0-NEXT: beqzc $11, $BB13_1
|
|
; MIPS32R6O0-NEXT: $BB13_3: # %entry
|
|
; MIPS32R6O0-NEXT: $BB13_3: # %entry
|
|
-; MIPS32R6O0-NEXT: srlv $11, $13, $4
|
|
|
|
-; MIPS32R6O0-NEXT: seb $11, $11
|
|
|
|
|
|
+; MIPS32R6O0-NEXT: srlv $10, $12, $4
|
|
|
|
+; MIPS32R6O0-NEXT: seb $10, $10
|
|
; MIPS32R6O0-NEXT: # %bb.4: # %entry
|
|
; MIPS32R6O0-NEXT: # %bb.4: # %entry
|
|
; MIPS32R6O0-NEXT: sw $5, 4($sp) # 4-byte Folded Spill
|
|
; MIPS32R6O0-NEXT: sw $5, 4($sp) # 4-byte Folded Spill
|
|
-; MIPS32R6O0-NEXT: sw $11, 0($sp) # 4-byte Folded Spill
|
|
|
|
|
|
+; MIPS32R6O0-NEXT: sw $10, 0($sp) # 4-byte Folded Spill
|
|
; MIPS32R6O0-NEXT: # %bb.5: # %entry
|
|
; MIPS32R6O0-NEXT: # %bb.5: # %entry
|
|
; MIPS32R6O0-NEXT: lw $1, 0($sp) # 4-byte Folded Reload
|
|
; MIPS32R6O0-NEXT: lw $1, 0($sp) # 4-byte Folded Reload
|
|
; MIPS32R6O0-NEXT: lw $2, 4($sp) # 4-byte Folded Reload
|
|
; MIPS32R6O0-NEXT: lw $2, 4($sp) # 4-byte Folded Reload
|
|
@@ -5259,36 +5229,35 @@ define i1 @AtomicCmpSwapRes8(i8* %ptr, i8 signext %oldval, i8 signext %newval) n
|
|
; MIPS64R6O0-NEXT: daddiu $sp, $sp, -16
|
|
; MIPS64R6O0-NEXT: daddiu $sp, $sp, -16
|
|
; MIPS64R6O0-NEXT: # kill: def $a2 killed $a2 killed $a2_64
|
|
; MIPS64R6O0-NEXT: # kill: def $a2 killed $a2 killed $a2_64
|
|
; MIPS64R6O0-NEXT: # kill: def $a1 killed $a1 killed $a1_64
|
|
; MIPS64R6O0-NEXT: # kill: def $a1 killed $a1 killed $a1_64
|
|
-; MIPS64R6O0-NEXT: move $1, $4
|
|
|
|
-; MIPS64R6O0-NEXT: daddiu $2, $zero, -4
|
|
|
|
-; MIPS64R6O0-NEXT: and $2, $4, $2
|
|
|
|
-; MIPS64R6O0-NEXT: andi $3, $4, 3
|
|
|
|
-; MIPS64R6O0-NEXT: xori $3, $3, 3
|
|
|
|
-; MIPS64R6O0-NEXT: sll $3, $3, 3
|
|
|
|
-; MIPS64R6O0-NEXT: ori $7, $zero, 255
|
|
|
|
-; MIPS64R6O0-NEXT: sllv $7, $7, $3
|
|
|
|
-; MIPS64R6O0-NEXT: nor $8, $zero, $7
|
|
|
|
-; MIPS64R6O0-NEXT: andi $9, $5, 255
|
|
|
|
-; MIPS64R6O0-NEXT: sllv $9, $9, $3
|
|
|
|
|
|
+; MIPS64R6O0-NEXT: daddiu $1, $zero, -4
|
|
|
|
+; MIPS64R6O0-NEXT: and $1, $4, $1
|
|
|
|
+; MIPS64R6O0-NEXT: andi $2, $4, 3
|
|
|
|
+; MIPS64R6O0-NEXT: xori $2, $2, 3
|
|
|
|
+; MIPS64R6O0-NEXT: sll $2, $2, 3
|
|
|
|
+; MIPS64R6O0-NEXT: ori $3, $zero, 255
|
|
|
|
+; MIPS64R6O0-NEXT: sllv $3, $3, $2
|
|
|
|
+; MIPS64R6O0-NEXT: nor $7, $zero, $3
|
|
|
|
+; MIPS64R6O0-NEXT: andi $8, $5, 255
|
|
|
|
+; MIPS64R6O0-NEXT: sllv $8, $8, $2
|
|
; MIPS64R6O0-NEXT: andi $6, $6, 255
|
|
; MIPS64R6O0-NEXT: andi $6, $6, 255
|
|
-; MIPS64R6O0-NEXT: sllv $6, $6, $3
|
|
|
|
|
|
+; MIPS64R6O0-NEXT: sllv $6, $6, $2
|
|
; MIPS64R6O0-NEXT: .LBB13_1: # %entry
|
|
; MIPS64R6O0-NEXT: .LBB13_1: # %entry
|
|
; MIPS64R6O0-NEXT: # =>This Inner Loop Header: Depth=1
|
|
; MIPS64R6O0-NEXT: # =>This Inner Loop Header: Depth=1
|
|
-; MIPS64R6O0-NEXT: ll $11, 0($2)
|
|
|
|
-; MIPS64R6O0-NEXT: and $12, $11, $7
|
|
|
|
-; MIPS64R6O0-NEXT: bnec $12, $9, .LBB13_3
|
|
|
|
|
|
+; MIPS64R6O0-NEXT: ll $10, 0($1)
|
|
|
|
+; MIPS64R6O0-NEXT: and $11, $10, $3
|
|
|
|
+; MIPS64R6O0-NEXT: bnec $11, $8, .LBB13_3
|
|
; MIPS64R6O0-NEXT: # %bb.2: # %entry
|
|
; MIPS64R6O0-NEXT: # %bb.2: # %entry
|
|
; MIPS64R6O0-NEXT: # in Loop: Header=BB13_1 Depth=1
|
|
; MIPS64R6O0-NEXT: # in Loop: Header=BB13_1 Depth=1
|
|
-; MIPS64R6O0-NEXT: and $11, $11, $8
|
|
|
|
-; MIPS64R6O0-NEXT: or $11, $11, $6
|
|
|
|
-; MIPS64R6O0-NEXT: sc $11, 0($2)
|
|
|
|
-; MIPS64R6O0-NEXT: beqzc $11, .LBB13_1
|
|
|
|
|
|
+; MIPS64R6O0-NEXT: and $10, $10, $7
|
|
|
|
+; MIPS64R6O0-NEXT: or $10, $10, $6
|
|
|
|
+; MIPS64R6O0-NEXT: sc $10, 0($1)
|
|
|
|
+; MIPS64R6O0-NEXT: beqzc $10, .LBB13_1
|
|
; MIPS64R6O0-NEXT: .LBB13_3: # %entry
|
|
; MIPS64R6O0-NEXT: .LBB13_3: # %entry
|
|
-; MIPS64R6O0-NEXT: srlv $10, $12, $3
|
|
|
|
-; MIPS64R6O0-NEXT: seb $10, $10
|
|
|
|
|
|
+; MIPS64R6O0-NEXT: srlv $9, $11, $2
|
|
|
|
+; MIPS64R6O0-NEXT: seb $9, $9
|
|
; MIPS64R6O0-NEXT: # %bb.4: # %entry
|
|
; MIPS64R6O0-NEXT: # %bb.4: # %entry
|
|
; MIPS64R6O0-NEXT: sw $5, 12($sp) # 4-byte Folded Spill
|
|
; MIPS64R6O0-NEXT: sw $5, 12($sp) # 4-byte Folded Spill
|
|
-; MIPS64R6O0-NEXT: sw $10, 8($sp) # 4-byte Folded Spill
|
|
|
|
|
|
+; MIPS64R6O0-NEXT: sw $9, 8($sp) # 4-byte Folded Spill
|
|
; MIPS64R6O0-NEXT: # %bb.5: # %entry
|
|
; MIPS64R6O0-NEXT: # %bb.5: # %entry
|
|
; MIPS64R6O0-NEXT: lw $1, 8($sp) # 4-byte Folded Reload
|
|
; MIPS64R6O0-NEXT: lw $1, 8($sp) # 4-byte Folded Reload
|
|
; MIPS64R6O0-NEXT: lw $2, 12($sp) # 4-byte Folded Reload
|
|
; MIPS64R6O0-NEXT: lw $2, 12($sp) # 4-byte Folded Reload
|
|
@@ -6178,35 +6147,34 @@ define {i16, i1} @foo(i16* %addr, i16 %l, i16 %r, i16 %new) {
|
|
; MIPS32R6O0-NEXT: move $1, $7
|
|
; MIPS32R6O0-NEXT: move $1, $7
|
|
; MIPS32R6O0-NEXT: move $2, $6
|
|
; MIPS32R6O0-NEXT: move $2, $6
|
|
; MIPS32R6O0-NEXT: move $3, $5
|
|
; MIPS32R6O0-NEXT: move $3, $5
|
|
-; MIPS32R6O0-NEXT: move $8, $4
|
|
|
|
; MIPS32R6O0-NEXT: addu $5, $5, $6
|
|
; MIPS32R6O0-NEXT: addu $5, $5, $6
|
|
; MIPS32R6O0-NEXT: sync
|
|
; MIPS32R6O0-NEXT: sync
|
|
; MIPS32R6O0-NEXT: addiu $6, $zero, -4
|
|
; MIPS32R6O0-NEXT: addiu $6, $zero, -4
|
|
; MIPS32R6O0-NEXT: and $6, $4, $6
|
|
; MIPS32R6O0-NEXT: and $6, $4, $6
|
|
; MIPS32R6O0-NEXT: andi $4, $4, 3
|
|
; MIPS32R6O0-NEXT: andi $4, $4, 3
|
|
; MIPS32R6O0-NEXT: sll $4, $4, 3
|
|
; MIPS32R6O0-NEXT: sll $4, $4, 3
|
|
-; MIPS32R6O0-NEXT: ori $9, $zero, 65535
|
|
|
|
-; MIPS32R6O0-NEXT: sllv $9, $9, $4
|
|
|
|
-; MIPS32R6O0-NEXT: nor $10, $zero, $9
|
|
|
|
-; MIPS32R6O0-NEXT: andi $11, $5, 65535
|
|
|
|
-; MIPS32R6O0-NEXT: sllv $11, $11, $4
|
|
|
|
|
|
+; MIPS32R6O0-NEXT: ori $8, $zero, 65535
|
|
|
|
+; MIPS32R6O0-NEXT: sllv $8, $8, $4
|
|
|
|
+; MIPS32R6O0-NEXT: nor $9, $zero, $8
|
|
|
|
+; MIPS32R6O0-NEXT: andi $10, $5, 65535
|
|
|
|
+; MIPS32R6O0-NEXT: sllv $10, $10, $4
|
|
; MIPS32R6O0-NEXT: andi $7, $7, 65535
|
|
; MIPS32R6O0-NEXT: andi $7, $7, 65535
|
|
; MIPS32R6O0-NEXT: sllv $7, $7, $4
|
|
; MIPS32R6O0-NEXT: sllv $7, $7, $4
|
|
; MIPS32R6O0-NEXT: $BB15_1: # =>This Inner Loop Header: Depth=1
|
|
; MIPS32R6O0-NEXT: $BB15_1: # =>This Inner Loop Header: Depth=1
|
|
-; MIPS32R6O0-NEXT: ll $13, 0($6)
|
|
|
|
-; MIPS32R6O0-NEXT: and $14, $13, $9
|
|
|
|
-; MIPS32R6O0-NEXT: bnec $14, $11, $BB15_3
|
|
|
|
|
|
+; MIPS32R6O0-NEXT: ll $12, 0($6)
|
|
|
|
+; MIPS32R6O0-NEXT: and $13, $12, $8
|
|
|
|
+; MIPS32R6O0-NEXT: bnec $13, $10, $BB15_3
|
|
; MIPS32R6O0-NEXT: # %bb.2: # in Loop: Header=BB15_1 Depth=1
|
|
; MIPS32R6O0-NEXT: # %bb.2: # in Loop: Header=BB15_1 Depth=1
|
|
-; MIPS32R6O0-NEXT: and $13, $13, $10
|
|
|
|
-; MIPS32R6O0-NEXT: or $13, $13, $7
|
|
|
|
-; MIPS32R6O0-NEXT: sc $13, 0($6)
|
|
|
|
-; MIPS32R6O0-NEXT: beqzc $13, $BB15_1
|
|
|
|
|
|
+; MIPS32R6O0-NEXT: and $12, $12, $9
|
|
|
|
+; MIPS32R6O0-NEXT: or $12, $12, $7
|
|
|
|
+; MIPS32R6O0-NEXT: sc $12, 0($6)
|
|
|
|
+; MIPS32R6O0-NEXT: beqzc $12, $BB15_1
|
|
; MIPS32R6O0-NEXT: $BB15_3:
|
|
; MIPS32R6O0-NEXT: $BB15_3:
|
|
-; MIPS32R6O0-NEXT: srlv $12, $14, $4
|
|
|
|
-; MIPS32R6O0-NEXT: seh $12, $12
|
|
|
|
|
|
+; MIPS32R6O0-NEXT: srlv $11, $13, $4
|
|
|
|
+; MIPS32R6O0-NEXT: seh $11, $11
|
|
; MIPS32R6O0-NEXT: # %bb.4:
|
|
; MIPS32R6O0-NEXT: # %bb.4:
|
|
; MIPS32R6O0-NEXT: sw $5, 4($sp) # 4-byte Folded Spill
|
|
; MIPS32R6O0-NEXT: sw $5, 4($sp) # 4-byte Folded Spill
|
|
-; MIPS32R6O0-NEXT: sw $12, 0($sp) # 4-byte Folded Spill
|
|
|
|
|
|
+; MIPS32R6O0-NEXT: sw $11, 0($sp) # 4-byte Folded Spill
|
|
; MIPS32R6O0-NEXT: # %bb.5:
|
|
; MIPS32R6O0-NEXT: # %bb.5:
|
|
; MIPS32R6O0-NEXT: lw $1, 4($sp) # 4-byte Folded Reload
|
|
; MIPS32R6O0-NEXT: lw $1, 4($sp) # 4-byte Folded Reload
|
|
; MIPS32R6O0-NEXT: seh $2, $1
|
|
; MIPS32R6O0-NEXT: seh $2, $1
|
|
@@ -6389,11 +6357,10 @@ define {i16, i1} @foo(i16* %addr, i16 %l, i16 %r, i16 %new) {
|
|
; MIPS64R6O0-NEXT: sll $2, $6, 0
|
|
; MIPS64R6O0-NEXT: sll $2, $6, 0
|
|
; MIPS64R6O0-NEXT: # kill: def $a1 killed $a1 killed $a1_64
|
|
; MIPS64R6O0-NEXT: # kill: def $a1 killed $a1 killed $a1_64
|
|
; MIPS64R6O0-NEXT: sll $3, $5, 0
|
|
; MIPS64R6O0-NEXT: sll $3, $5, 0
|
|
-; MIPS64R6O0-NEXT: move $8, $4
|
|
|
|
; MIPS64R6O0-NEXT: addu $2, $3, $2
|
|
; MIPS64R6O0-NEXT: addu $2, $3, $2
|
|
; MIPS64R6O0-NEXT: sync
|
|
; MIPS64R6O0-NEXT: sync
|
|
-; MIPS64R6O0-NEXT: daddiu $9, $zero, -4
|
|
|
|
-; MIPS64R6O0-NEXT: and $9, $4, $9
|
|
|
|
|
|
+; MIPS64R6O0-NEXT: daddiu $8, $zero, -4
|
|
|
|
+; MIPS64R6O0-NEXT: and $8, $4, $8
|
|
; MIPS64R6O0-NEXT: andi $3, $4, 3
|
|
; MIPS64R6O0-NEXT: andi $3, $4, 3
|
|
; MIPS64R6O0-NEXT: xori $3, $3, 2
|
|
; MIPS64R6O0-NEXT: xori $3, $3, 2
|
|
; MIPS64R6O0-NEXT: sll $3, $3, 3
|
|
; MIPS64R6O0-NEXT: sll $3, $3, 3
|
|
@@ -6405,20 +6372,20 @@ define {i16, i1} @foo(i16* %addr, i16 %l, i16 %r, i16 %new) {
|
|
; MIPS64R6O0-NEXT: andi $1, $1, 65535
|
|
; MIPS64R6O0-NEXT: andi $1, $1, 65535
|
|
; MIPS64R6O0-NEXT: sllv $1, $1, $3
|
|
; MIPS64R6O0-NEXT: sllv $1, $1, $3
|
|
; MIPS64R6O0-NEXT: .LBB15_1: # =>This Inner Loop Header: Depth=1
|
|
; MIPS64R6O0-NEXT: .LBB15_1: # =>This Inner Loop Header: Depth=1
|
|
-; MIPS64R6O0-NEXT: ll $11, 0($9)
|
|
|
|
-; MIPS64R6O0-NEXT: and $12, $11, $5
|
|
|
|
-; MIPS64R6O0-NEXT: bnec $12, $7, .LBB15_3
|
|
|
|
|
|
+; MIPS64R6O0-NEXT: ll $10, 0($8)
|
|
|
|
+; MIPS64R6O0-NEXT: and $11, $10, $5
|
|
|
|
+; MIPS64R6O0-NEXT: bnec $11, $7, .LBB15_3
|
|
; MIPS64R6O0-NEXT: # %bb.2: # in Loop: Header=BB15_1 Depth=1
|
|
; MIPS64R6O0-NEXT: # %bb.2: # in Loop: Header=BB15_1 Depth=1
|
|
-; MIPS64R6O0-NEXT: and $11, $11, $6
|
|
|
|
-; MIPS64R6O0-NEXT: or $11, $11, $1
|
|
|
|
-; MIPS64R6O0-NEXT: sc $11, 0($9)
|
|
|
|
-; MIPS64R6O0-NEXT: beqzc $11, .LBB15_1
|
|
|
|
|
|
+; MIPS64R6O0-NEXT: and $10, $10, $6
|
|
|
|
+; MIPS64R6O0-NEXT: or $10, $10, $1
|
|
|
|
+; MIPS64R6O0-NEXT: sc $10, 0($8)
|
|
|
|
+; MIPS64R6O0-NEXT: beqzc $10, .LBB15_1
|
|
; MIPS64R6O0-NEXT: .LBB15_3:
|
|
; MIPS64R6O0-NEXT: .LBB15_3:
|
|
-; MIPS64R6O0-NEXT: srlv $10, $12, $3
|
|
|
|
-; MIPS64R6O0-NEXT: seh $10, $10
|
|
|
|
|
|
+; MIPS64R6O0-NEXT: srlv $9, $11, $3
|
|
|
|
+; MIPS64R6O0-NEXT: seh $9, $9
|
|
; MIPS64R6O0-NEXT: # %bb.4:
|
|
; MIPS64R6O0-NEXT: # %bb.4:
|
|
; MIPS64R6O0-NEXT: sw $2, 12($sp) # 4-byte Folded Spill
|
|
; MIPS64R6O0-NEXT: sw $2, 12($sp) # 4-byte Folded Spill
|
|
-; MIPS64R6O0-NEXT: sw $10, 8($sp) # 4-byte Folded Spill
|
|
|
|
|
|
+; MIPS64R6O0-NEXT: sw $9, 8($sp) # 4-byte Folded Spill
|
|
; MIPS64R6O0-NEXT: # %bb.5:
|
|
; MIPS64R6O0-NEXT: # %bb.5:
|
|
; MIPS64R6O0-NEXT: lw $1, 12($sp) # 4-byte Folded Reload
|
|
; MIPS64R6O0-NEXT: lw $1, 12($sp) # 4-byte Folded Reload
|
|
; MIPS64R6O0-NEXT: seh $2, $1
|
|
; MIPS64R6O0-NEXT: seh $2, $1
|
|
@@ -6706,22 +6673,17 @@ define i32 @CheckSync(i32 signext %v) nounwind noinline {
|
|
; MIPS32R6O0: # %bb.0: # %entry
|
|
; MIPS32R6O0: # %bb.0: # %entry
|
|
; MIPS32R6O0-NEXT: lui $2, %hi(_gp_disp)
|
|
; MIPS32R6O0-NEXT: lui $2, %hi(_gp_disp)
|
|
; MIPS32R6O0-NEXT: addiu $2, $2, %lo(_gp_disp)
|
|
; MIPS32R6O0-NEXT: addiu $2, $2, %lo(_gp_disp)
|
|
-; MIPS32R6O0-NEXT: addiu $sp, $sp, -8
|
|
|
|
; MIPS32R6O0-NEXT: addu $1, $2, $25
|
|
; MIPS32R6O0-NEXT: addu $1, $2, $25
|
|
-; MIPS32R6O0-NEXT: move $2, $4
|
|
|
|
; MIPS32R6O0-NEXT: sync
|
|
; MIPS32R6O0-NEXT: sync
|
|
; MIPS32R6O0-NEXT: lw $1, %got(countsint)($1)
|
|
; MIPS32R6O0-NEXT: lw $1, %got(countsint)($1)
|
|
; MIPS32R6O0-NEXT: $BB16_1: # %entry
|
|
; MIPS32R6O0-NEXT: $BB16_1: # %entry
|
|
; MIPS32R6O0-NEXT: # =>This Inner Loop Header: Depth=1
|
|
; MIPS32R6O0-NEXT: # =>This Inner Loop Header: Depth=1
|
|
-; MIPS32R6O0-NEXT: ll $3, 0($1)
|
|
|
|
-; MIPS32R6O0-NEXT: addu $5, $3, $4
|
|
|
|
-; MIPS32R6O0-NEXT: sc $5, 0($1)
|
|
|
|
-; MIPS32R6O0-NEXT: beqzc $5, $BB16_1
|
|
|
|
|
|
+; MIPS32R6O0-NEXT: ll $2, 0($1)
|
|
|
|
+; MIPS32R6O0-NEXT: addu $3, $2, $4
|
|
|
|
+; MIPS32R6O0-NEXT: sc $3, 0($1)
|
|
|
|
+; MIPS32R6O0-NEXT: beqzc $3, $BB16_1
|
|
; MIPS32R6O0-NEXT: # %bb.2: # %entry
|
|
; MIPS32R6O0-NEXT: # %bb.2: # %entry
|
|
; MIPS32R6O0-NEXT: sync
|
|
; MIPS32R6O0-NEXT: sync
|
|
-; MIPS32R6O0-NEXT: sw $2, 4($sp) # 4-byte Folded Spill
|
|
|
|
-; MIPS32R6O0-NEXT: move $2, $3
|
|
|
|
-; MIPS32R6O0-NEXT: addiu $sp, $sp, 8
|
|
|
|
; MIPS32R6O0-NEXT: jrc $ra
|
|
; MIPS32R6O0-NEXT: jrc $ra
|
|
;
|
|
;
|
|
; MIPS4-LABEL: CheckSync:
|
|
; MIPS4-LABEL: CheckSync:
|
|
@@ -7405,21 +7367,17 @@ define i32 @AtomicLoadAdd32_OffGt9Bit(i32 signext %incr) nounwind {
|
|
; MIPS32R6O0: # %bb.0: # %entry
|
|
; MIPS32R6O0: # %bb.0: # %entry
|
|
; MIPS32R6O0-NEXT: lui $2, %hi(_gp_disp)
|
|
; MIPS32R6O0-NEXT: lui $2, %hi(_gp_disp)
|
|
; MIPS32R6O0-NEXT: addiu $2, $2, %lo(_gp_disp)
|
|
; MIPS32R6O0-NEXT: addiu $2, $2, %lo(_gp_disp)
|
|
-; MIPS32R6O0-NEXT: addiu $sp, $sp, -8
|
|
|
|
; MIPS32R6O0-NEXT: addu $1, $2, $25
|
|
; MIPS32R6O0-NEXT: addu $1, $2, $25
|
|
-; MIPS32R6O0-NEXT: move $2, $4
|
|
|
|
; MIPS32R6O0-NEXT: lw $1, %got(x)($1)
|
|
; MIPS32R6O0-NEXT: lw $1, %got(x)($1)
|
|
; MIPS32R6O0-NEXT: addiu $1, $1, 1024
|
|
; MIPS32R6O0-NEXT: addiu $1, $1, 1024
|
|
; MIPS32R6O0-NEXT: $BB18_1: # %entry
|
|
; MIPS32R6O0-NEXT: $BB18_1: # %entry
|
|
; MIPS32R6O0-NEXT: # =>This Inner Loop Header: Depth=1
|
|
; MIPS32R6O0-NEXT: # =>This Inner Loop Header: Depth=1
|
|
-; MIPS32R6O0-NEXT: ll $3, 0($1)
|
|
|
|
-; MIPS32R6O0-NEXT: addu $5, $3, $4
|
|
|
|
-; MIPS32R6O0-NEXT: sc $5, 0($1)
|
|
|
|
-; MIPS32R6O0-NEXT: beqzc $5, $BB18_1
|
|
|
|
|
|
+; MIPS32R6O0-NEXT: ll $2, 0($1)
|
|
|
|
+; MIPS32R6O0-NEXT: addu $3, $2, $4
|
|
|
|
+; MIPS32R6O0-NEXT: sc $3, 0($1)
|
|
|
|
+; MIPS32R6O0-NEXT: beqzc $3, $BB18_1
|
|
|
|
+; MIPS32R6O0-NEXT: nop
|
|
; MIPS32R6O0-NEXT: # %bb.2: # %entry
|
|
; MIPS32R6O0-NEXT: # %bb.2: # %entry
|
|
-; MIPS32R6O0-NEXT: sw $2, 4($sp) # 4-byte Folded Spill
|
|
|
|
-; MIPS32R6O0-NEXT: move $2, $3
|
|
|
|
-; MIPS32R6O0-NEXT: addiu $sp, $sp, 8
|
|
|
|
; MIPS32R6O0-NEXT: jrc $ra
|
|
; MIPS32R6O0-NEXT: jrc $ra
|
|
;
|
|
;
|
|
; MIPS4-LABEL: AtomicLoadAdd32_OffGt9Bit:
|
|
; MIPS4-LABEL: AtomicLoadAdd32_OffGt9Bit:
|