diff --git a/llvm/lib/Target/PowerPC/PPCInstrInfo.td b/llvm/lib/Target/PowerPC/PPCInstrInfo.td --- a/llvm/lib/Target/PowerPC/PPCInstrInfo.td +++ b/llvm/lib/Target/PowerPC/PPCInstrInfo.td @@ -3089,7 +3089,7 @@ // When FM is 30/31, we are setting the 62/63 bit of FPSCR, the implicit-def // RM should be set. -let hasSideEffects = 1 in { +let hasSideEffects = 1, Defs = [RM] in { def MTFSB0 : XForm_43<63, 70, (outs), (ins u5imm:$FM), "mtfsb0 $FM", IIC_IntMTFSB0, [(int_ppc_mtfsb0 timm:$FM)]>, diff --git a/llvm/test/CodeGen/PowerPC/2008-10-28-f128-i32.ll b/llvm/test/CodeGen/PowerPC/2008-10-28-f128-i32.ll --- a/llvm/test/CodeGen/PowerPC/2008-10-28-f128-i32.ll +++ b/llvm/test/CodeGen/PowerPC/2008-10-28-f128-i32.ll @@ -272,15 +272,15 @@ ; CHECK-NEXT: mffs 0 ; CHECK-NEXT: mtfsb1 31 ; CHECK-NEXT: lis 3, .LCPI0_0@ha -; CHECK-NEXT: lfs 2, .LCPI0_0@l(3) +; CHECK-NEXT: lfs 1, .LCPI0_0@l(3) ; CHECK-NEXT: mtfsb0 30 ; CHECK-NEXT: lis 3, .LCPI0_1@ha -; CHECK-NEXT: fadd 1, 30, 31 +; CHECK-NEXT: fadd 2, 30, 31 ; CHECK-NEXT: mtfsf 1, 0 ; CHECK-NEXT: lfs 0, .LCPI0_1@l(3) -; CHECK-NEXT: fctiwz 1, 1 -; CHECK-NEXT: stfd 1, 88(1) -; CHECK-NEXT: fcmpu 0, 30, 2 +; CHECK-NEXT: fctiwz 2, 2 +; CHECK-NEXT: stfd 2, 88(1) +; CHECK-NEXT: fcmpu 0, 30, 1 ; CHECK-NEXT: lwz 3, 100(1) ; CHECK-NEXT: fcmpu 1, 31, 0 ; CHECK-NEXT: lwz 4, 92(1)