Re-enable "[MachineCopyPropagation] Extend pass to do COPY source forwarding"

Re-enable commit r323991 now that r325931 has been committed to make
MachineOperand::isRenamable() check more conservative w.r.t. code
changes and opt-in on a per-target basis.

llvm-svn: 326208
diff --git a/llvm/test/CodeGen/Mips/llvm-ir/select-flt.ll b/llvm/test/CodeGen/Mips/llvm-ir/select-flt.ll
index c04601c..7f07d3b 100644
--- a/llvm/test/CodeGen/Mips/llvm-ir/select-flt.ll
+++ b/llvm/test/CodeGen/Mips/llvm-ir/select-flt.ll
@@ -188,10 +188,9 @@
 define float @tst_select_fcmp_olt_float(float %x, float %y) {
 ; M2-LABEL: tst_select_fcmp_olt_float:
 ; M2:       # %bb.0: # %entry
-; M2-NEXT:    mov.s $f0, $f12
-; M2-NEXT:    c.olt.s $f0, $f14
+; M2-NEXT:    c.olt.s $f12, $f14
 ; M2-NEXT:    bc1t $BB2_2
-; M2-NEXT:    nop
+; M2-NEXT:    mov.s $f0, $f12
 ; M2-NEXT:  # %bb.1: # %entry
 ; M2-NEXT:    mov.s $f0, $f14
 ; M2-NEXT:  $BB2_2: # %entry
@@ -201,14 +200,14 @@
 ; CMOV32R1-LABEL: tst_select_fcmp_olt_float:
 ; CMOV32R1:       # %bb.0: # %entry
 ; CMOV32R1-NEXT:    mov.s $f0, $f14
-; CMOV32R1-NEXT:    c.olt.s $f12, $f0
+; CMOV32R1-NEXT:    c.olt.s $f12, $f14
 ; CMOV32R1-NEXT:    jr $ra
 ; CMOV32R1-NEXT:    movt.s $f0, $f12, $fcc0
 ;
 ; CMOV32R2-LABEL: tst_select_fcmp_olt_float:
 ; CMOV32R2:       # %bb.0: # %entry
 ; CMOV32R2-NEXT:    mov.s $f0, $f14
-; CMOV32R2-NEXT:    c.olt.s $f12, $f0
+; CMOV32R2-NEXT:    c.olt.s $f12, $f14
 ; CMOV32R2-NEXT:    jr $ra
 ; CMOV32R2-NEXT:    movt.s $f0, $f12, $fcc0
 ;
@@ -220,10 +219,9 @@
 ;
 ; M3-LABEL: tst_select_fcmp_olt_float:
 ; M3:       # %bb.0: # %entry
-; M3-NEXT:    mov.s $f0, $f12
-; M3-NEXT:    c.olt.s $f0, $f13
+; M3-NEXT:    c.olt.s $f12, $f13
 ; M3-NEXT:    bc1t .LBB2_2
-; M3-NEXT:    nop
+; M3-NEXT:    mov.s $f0, $f12
 ; M3-NEXT:  # %bb.1: # %entry
 ; M3-NEXT:    mov.s $f0, $f13
 ; M3-NEXT:  .LBB2_2: # %entry
@@ -233,7 +231,7 @@
 ; CMOV64-LABEL: tst_select_fcmp_olt_float:
 ; CMOV64:       # %bb.0: # %entry
 ; CMOV64-NEXT:    mov.s $f0, $f13
-; CMOV64-NEXT:    c.olt.s $f12, $f0
+; CMOV64-NEXT:    c.olt.s $f12, $f13
 ; CMOV64-NEXT:    jr $ra
 ; CMOV64-NEXT:    movt.s $f0, $f12, $fcc0
 ;
@@ -246,7 +244,7 @@
 ; MM32R3-LABEL: tst_select_fcmp_olt_float:
 ; MM32R3:       # %bb.0: # %entry
 ; MM32R3-NEXT:    mov.s $f0, $f14
-; MM32R3-NEXT:    c.olt.s $f12, $f0
+; MM32R3-NEXT:    c.olt.s $f12, $f14
 ; MM32R3-NEXT:    jr $ra
 ; MM32R3-NEXT:    movt.s $f0, $f12, $fcc0
 ;
@@ -264,10 +262,9 @@
 define float @tst_select_fcmp_ole_float(float %x, float %y) {
 ; M2-LABEL: tst_select_fcmp_ole_float:
 ; M2:       # %bb.0: # %entry
-; M2-NEXT:    mov.s $f0, $f12
-; M2-NEXT:    c.ole.s $f0, $f14
+; M2-NEXT:    c.ole.s $f12, $f14
 ; M2-NEXT:    bc1t $BB3_2
-; M2-NEXT:    nop
+; M2-NEXT:    mov.s $f0, $f12
 ; M2-NEXT:  # %bb.1: # %entry
 ; M2-NEXT:    mov.s $f0, $f14
 ; M2-NEXT:  $BB3_2: # %entry
@@ -277,14 +274,14 @@
 ; CMOV32R1-LABEL: tst_select_fcmp_ole_float:
 ; CMOV32R1:       # %bb.0: # %entry
 ; CMOV32R1-NEXT:    mov.s $f0, $f14
-; CMOV32R1-NEXT:    c.ole.s $f12, $f0
+; CMOV32R1-NEXT:    c.ole.s $f12, $f14
 ; CMOV32R1-NEXT:    jr $ra
 ; CMOV32R1-NEXT:    movt.s $f0, $f12, $fcc0
 ;
 ; CMOV32R2-LABEL: tst_select_fcmp_ole_float:
 ; CMOV32R2:       # %bb.0: # %entry
 ; CMOV32R2-NEXT:    mov.s $f0, $f14
-; CMOV32R2-NEXT:    c.ole.s $f12, $f0
+; CMOV32R2-NEXT:    c.ole.s $f12, $f14
 ; CMOV32R2-NEXT:    jr $ra
 ; CMOV32R2-NEXT:    movt.s $f0, $f12, $fcc0
 ;
@@ -296,10 +293,9 @@
 ;
 ; M3-LABEL: tst_select_fcmp_ole_float:
 ; M3:       # %bb.0: # %entry
-; M3-NEXT:    mov.s $f0, $f12
-; M3-NEXT:    c.ole.s $f0, $f13
+; M3-NEXT:    c.ole.s $f12, $f13
 ; M3-NEXT:    bc1t .LBB3_2
-; M3-NEXT:    nop
+; M3-NEXT:    mov.s $f0, $f12
 ; M3-NEXT:  # %bb.1: # %entry
 ; M3-NEXT:    mov.s $f0, $f13
 ; M3-NEXT:  .LBB3_2: # %entry
@@ -309,7 +305,7 @@
 ; CMOV64-LABEL: tst_select_fcmp_ole_float:
 ; CMOV64:       # %bb.0: # %entry
 ; CMOV64-NEXT:    mov.s $f0, $f13
-; CMOV64-NEXT:    c.ole.s $f12, $f0
+; CMOV64-NEXT:    c.ole.s $f12, $f13
 ; CMOV64-NEXT:    jr $ra
 ; CMOV64-NEXT:    movt.s $f0, $f12, $fcc0
 ;
@@ -322,7 +318,7 @@
 ; MM32R3-LABEL: tst_select_fcmp_ole_float:
 ; MM32R3:       # %bb.0: # %entry
 ; MM32R3-NEXT:    mov.s $f0, $f14
-; MM32R3-NEXT:    c.ole.s $f12, $f0
+; MM32R3-NEXT:    c.ole.s $f12, $f14
 ; MM32R3-NEXT:    jr $ra
 ; MM32R3-NEXT:    movt.s $f0, $f12, $fcc0
 ;
@@ -340,10 +336,9 @@
 define float @tst_select_fcmp_ogt_float(float %x, float %y) {
 ; M2-LABEL: tst_select_fcmp_ogt_float:
 ; M2:       # %bb.0: # %entry
-; M2-NEXT:    mov.s $f0, $f12
-; M2-NEXT:    c.ule.s $f0, $f14
+; M2-NEXT:    c.ule.s $f12, $f14
 ; M2-NEXT:    bc1f $BB4_2
-; M2-NEXT:    nop
+; M2-NEXT:    mov.s $f0, $f12
 ; M2-NEXT:  # %bb.1: # %entry
 ; M2-NEXT:    mov.s $f0, $f14
 ; M2-NEXT:  $BB4_2: # %entry
@@ -353,14 +348,14 @@
 ; CMOV32R1-LABEL: tst_select_fcmp_ogt_float:
 ; CMOV32R1:       # %bb.0: # %entry
 ; CMOV32R1-NEXT:    mov.s $f0, $f14
-; CMOV32R1-NEXT:    c.ule.s $f12, $f0
+; CMOV32R1-NEXT:    c.ule.s $f12, $f14
 ; CMOV32R1-NEXT:    jr $ra
 ; CMOV32R1-NEXT:    movf.s $f0, $f12, $fcc0
 ;
 ; CMOV32R2-LABEL: tst_select_fcmp_ogt_float:
 ; CMOV32R2:       # %bb.0: # %entry
 ; CMOV32R2-NEXT:    mov.s $f0, $f14
-; CMOV32R2-NEXT:    c.ule.s $f12, $f0
+; CMOV32R2-NEXT:    c.ule.s $f12, $f14
 ; CMOV32R2-NEXT:    jr $ra
 ; CMOV32R2-NEXT:    movf.s $f0, $f12, $fcc0
 ;
@@ -372,10 +367,9 @@
 ;
 ; M3-LABEL: tst_select_fcmp_ogt_float:
 ; M3:       # %bb.0: # %entry
-; M3-NEXT:    mov.s $f0, $f12
-; M3-NEXT:    c.ule.s $f0, $f13
+; M3-NEXT:    c.ule.s $f12, $f13
 ; M3-NEXT:    bc1f .LBB4_2
-; M3-NEXT:    nop
+; M3-NEXT:    mov.s $f0, $f12
 ; M3-NEXT:  # %bb.1: # %entry
 ; M3-NEXT:    mov.s $f0, $f13
 ; M3-NEXT:  .LBB4_2: # %entry
@@ -385,7 +379,7 @@
 ; CMOV64-LABEL: tst_select_fcmp_ogt_float:
 ; CMOV64:       # %bb.0: # %entry
 ; CMOV64-NEXT:    mov.s $f0, $f13
-; CMOV64-NEXT:    c.ule.s $f12, $f0
+; CMOV64-NEXT:    c.ule.s $f12, $f13
 ; CMOV64-NEXT:    jr $ra
 ; CMOV64-NEXT:    movf.s $f0, $f12, $fcc0
 ;
@@ -398,7 +392,7 @@
 ; MM32R3-LABEL: tst_select_fcmp_ogt_float:
 ; MM32R3:       # %bb.0: # %entry
 ; MM32R3-NEXT:    mov.s $f0, $f14
-; MM32R3-NEXT:    c.ule.s $f12, $f0
+; MM32R3-NEXT:    c.ule.s $f12, $f14
 ; MM32R3-NEXT:    jr $ra
 ; MM32R3-NEXT:    movf.s $f0, $f12, $fcc0
 ;
@@ -416,10 +410,9 @@
 define float @tst_select_fcmp_oge_float(float %x, float %y) {
 ; M2-LABEL: tst_select_fcmp_oge_float:
 ; M2:       # %bb.0: # %entry
-; M2-NEXT:    mov.s $f0, $f12
-; M2-NEXT:    c.ult.s $f0, $f14
+; M2-NEXT:    c.ult.s $f12, $f14
 ; M2-NEXT:    bc1f $BB5_2
-; M2-NEXT:    nop
+; M2-NEXT:    mov.s $f0, $f12
 ; M2-NEXT:  # %bb.1: # %entry
 ; M2-NEXT:    mov.s $f0, $f14
 ; M2-NEXT:  $BB5_2: # %entry
@@ -429,14 +422,14 @@
 ; CMOV32R1-LABEL: tst_select_fcmp_oge_float:
 ; CMOV32R1:       # %bb.0: # %entry
 ; CMOV32R1-NEXT:    mov.s $f0, $f14
-; CMOV32R1-NEXT:    c.ult.s $f12, $f0
+; CMOV32R1-NEXT:    c.ult.s $f12, $f14
 ; CMOV32R1-NEXT:    jr $ra
 ; CMOV32R1-NEXT:    movf.s $f0, $f12, $fcc0
 ;
 ; CMOV32R2-LABEL: tst_select_fcmp_oge_float:
 ; CMOV32R2:       # %bb.0: # %entry
 ; CMOV32R2-NEXT:    mov.s $f0, $f14
-; CMOV32R2-NEXT:    c.ult.s $f12, $f0
+; CMOV32R2-NEXT:    c.ult.s $f12, $f14
 ; CMOV32R2-NEXT:    jr $ra
 ; CMOV32R2-NEXT:    movf.s $f0, $f12, $fcc0
 ;
@@ -448,10 +441,9 @@
 ;
 ; M3-LABEL: tst_select_fcmp_oge_float:
 ; M3:       # %bb.0: # %entry
-; M3-NEXT:    mov.s $f0, $f12
-; M3-NEXT:    c.ult.s $f0, $f13
+; M3-NEXT:    c.ult.s $f12, $f13
 ; M3-NEXT:    bc1f .LBB5_2
-; M3-NEXT:    nop
+; M3-NEXT:    mov.s $f0, $f12
 ; M3-NEXT:  # %bb.1: # %entry
 ; M3-NEXT:    mov.s $f0, $f13
 ; M3-NEXT:  .LBB5_2: # %entry
@@ -461,7 +453,7 @@
 ; CMOV64-LABEL: tst_select_fcmp_oge_float:
 ; CMOV64:       # %bb.0: # %entry
 ; CMOV64-NEXT:    mov.s $f0, $f13
-; CMOV64-NEXT:    c.ult.s $f12, $f0
+; CMOV64-NEXT:    c.ult.s $f12, $f13
 ; CMOV64-NEXT:    jr $ra
 ; CMOV64-NEXT:    movf.s $f0, $f12, $fcc0
 ;
@@ -474,7 +466,7 @@
 ; MM32R3-LABEL: tst_select_fcmp_oge_float:
 ; MM32R3:       # %bb.0: # %entry
 ; MM32R3-NEXT:    mov.s $f0, $f14
-; MM32R3-NEXT:    c.ult.s $f12, $f0
+; MM32R3-NEXT:    c.ult.s $f12, $f14
 ; MM32R3-NEXT:    jr $ra
 ; MM32R3-NEXT:    movf.s $f0, $f12, $fcc0
 ;
@@ -492,10 +484,9 @@
 define float @tst_select_fcmp_oeq_float(float %x, float %y) {
 ; M2-LABEL: tst_select_fcmp_oeq_float:
 ; M2:       # %bb.0: # %entry
-; M2-NEXT:    mov.s $f0, $f12
-; M2-NEXT:    c.eq.s $f0, $f14
+; M2-NEXT:    c.eq.s $f12, $f14
 ; M2-NEXT:    bc1t $BB6_2
-; M2-NEXT:    nop
+; M2-NEXT:    mov.s $f0, $f12
 ; M2-NEXT:  # %bb.1: # %entry
 ; M2-NEXT:    mov.s $f0, $f14
 ; M2-NEXT:  $BB6_2: # %entry
@@ -505,14 +496,14 @@
 ; CMOV32R1-LABEL: tst_select_fcmp_oeq_float:
 ; CMOV32R1:       # %bb.0: # %entry
 ; CMOV32R1-NEXT:    mov.s $f0, $f14
-; CMOV32R1-NEXT:    c.eq.s $f12, $f0
+; CMOV32R1-NEXT:    c.eq.s $f12, $f14
 ; CMOV32R1-NEXT:    jr $ra
 ; CMOV32R1-NEXT:    movt.s $f0, $f12, $fcc0
 ;
 ; CMOV32R2-LABEL: tst_select_fcmp_oeq_float:
 ; CMOV32R2:       # %bb.0: # %entry
 ; CMOV32R2-NEXT:    mov.s $f0, $f14
-; CMOV32R2-NEXT:    c.eq.s $f12, $f0
+; CMOV32R2-NEXT:    c.eq.s $f12, $f14
 ; CMOV32R2-NEXT:    jr $ra
 ; CMOV32R2-NEXT:    movt.s $f0, $f12, $fcc0
 ;
@@ -524,10 +515,9 @@
 ;
 ; M3-LABEL: tst_select_fcmp_oeq_float:
 ; M3:       # %bb.0: # %entry
-; M3-NEXT:    mov.s $f0, $f12
-; M3-NEXT:    c.eq.s $f0, $f13
+; M3-NEXT:    c.eq.s $f12, $f13
 ; M3-NEXT:    bc1t .LBB6_2
-; M3-NEXT:    nop
+; M3-NEXT:    mov.s $f0, $f12
 ; M3-NEXT:  # %bb.1: # %entry
 ; M3-NEXT:    mov.s $f0, $f13
 ; M3-NEXT:  .LBB6_2: # %entry
@@ -537,7 +527,7 @@
 ; CMOV64-LABEL: tst_select_fcmp_oeq_float:
 ; CMOV64:       # %bb.0: # %entry
 ; CMOV64-NEXT:    mov.s $f0, $f13
-; CMOV64-NEXT:    c.eq.s $f12, $f0
+; CMOV64-NEXT:    c.eq.s $f12, $f13
 ; CMOV64-NEXT:    jr $ra
 ; CMOV64-NEXT:    movt.s $f0, $f12, $fcc0
 ;
@@ -550,7 +540,7 @@
 ; MM32R3-LABEL: tst_select_fcmp_oeq_float:
 ; MM32R3:       # %bb.0: # %entry
 ; MM32R3-NEXT:    mov.s $f0, $f14
-; MM32R3-NEXT:    c.eq.s $f12, $f0
+; MM32R3-NEXT:    c.eq.s $f12, $f14
 ; MM32R3-NEXT:    jr $ra
 ; MM32R3-NEXT:    movt.s $f0, $f12, $fcc0
 ;
@@ -568,10 +558,9 @@
 define float @tst_select_fcmp_one_float(float %x, float %y) {
 ; M2-LABEL: tst_select_fcmp_one_float:
 ; M2:       # %bb.0: # %entry
-; M2-NEXT:    mov.s $f0, $f12
-; M2-NEXT:    c.ueq.s $f0, $f14
+; M2-NEXT:    c.ueq.s $f12, $f14
 ; M2-NEXT:    bc1f $BB7_2
-; M2-NEXT:    nop
+; M2-NEXT:    mov.s $f0, $f12
 ; M2-NEXT:  # %bb.1: # %entry
 ; M2-NEXT:    mov.s $f0, $f14
 ; M2-NEXT:  $BB7_2: # %entry
@@ -581,14 +570,14 @@
 ; CMOV32R1-LABEL: tst_select_fcmp_one_float:
 ; CMOV32R1:       # %bb.0: # %entry
 ; CMOV32R1-NEXT:    mov.s $f0, $f14
-; CMOV32R1-NEXT:    c.ueq.s $f12, $f0
+; CMOV32R1-NEXT:    c.ueq.s $f12, $f14
 ; CMOV32R1-NEXT:    jr $ra
 ; CMOV32R1-NEXT:    movf.s $f0, $f12, $fcc0
 ;
 ; CMOV32R2-LABEL: tst_select_fcmp_one_float:
 ; CMOV32R2:       # %bb.0: # %entry
 ; CMOV32R2-NEXT:    mov.s $f0, $f14
-; CMOV32R2-NEXT:    c.ueq.s $f12, $f0
+; CMOV32R2-NEXT:    c.ueq.s $f12, $f14
 ; CMOV32R2-NEXT:    jr $ra
 ; CMOV32R2-NEXT:    movf.s $f0, $f12, $fcc0
 ;
@@ -603,10 +592,9 @@
 ;
 ; M3-LABEL: tst_select_fcmp_one_float:
 ; M3:       # %bb.0: # %entry
-; M3-NEXT:    mov.s $f0, $f12
-; M3-NEXT:    c.ueq.s $f0, $f13
+; M3-NEXT:    c.ueq.s $f12, $f13
 ; M3-NEXT:    bc1f .LBB7_2
-; M3-NEXT:    nop
+; M3-NEXT:    mov.s $f0, $f12
 ; M3-NEXT:  # %bb.1: # %entry
 ; M3-NEXT:    mov.s $f0, $f13
 ; M3-NEXT:  .LBB7_2: # %entry
@@ -616,7 +604,7 @@
 ; CMOV64-LABEL: tst_select_fcmp_one_float:
 ; CMOV64:       # %bb.0: # %entry
 ; CMOV64-NEXT:    mov.s $f0, $f13
-; CMOV64-NEXT:    c.ueq.s $f12, $f0
+; CMOV64-NEXT:    c.ueq.s $f12, $f13
 ; CMOV64-NEXT:    jr $ra
 ; CMOV64-NEXT:    movf.s $f0, $f12, $fcc0
 ;
@@ -632,7 +620,7 @@
 ; MM32R3-LABEL: tst_select_fcmp_one_float:
 ; MM32R3:       # %bb.0: # %entry
 ; MM32R3-NEXT:    mov.s $f0, $f14
-; MM32R3-NEXT:    c.ueq.s $f12, $f0
+; MM32R3-NEXT:    c.ueq.s $f12, $f14
 ; MM32R3-NEXT:    jr $ra
 ; MM32R3-NEXT:    movf.s $f0, $f12, $fcc0
 ;