; RV32IF-NEXT: .cfi_offset ra, -4
; RV32IF-NEXT: call __fixunsdfdi@plt
; RV32IF-NEXT: sltiu a2, a0, -1
-; RV32IF-NEXT: snez a1, a1
-; RV32IF-NEXT: addi a1, a1, -1
+; RV32IF-NEXT: seqz a1, a1
; RV32IF-NEXT: and a1, a1, a2
; RV32IF-NEXT: addi a1, a1, -1
; RV32IF-NEXT: or a0, a1, a0
; RV32-NEXT: call __extendhfsf2@plt
; RV32-NEXT: call __fixunssfdi@plt
; RV32-NEXT: sltiu a2, a0, -1
-; RV32-NEXT: snez a1, a1
-; RV32-NEXT: addi a1, a1, -1
+; RV32-NEXT: seqz a1, a1
; RV32-NEXT: and a1, a1, a2
; RV32-NEXT: addi a1, a1, -1
; RV32-NEXT: or a0, a1, a0
; RV32IF-NEXT: lw a1, 20(sp)
; RV32IF-NEXT: lw a2, 12(sp)
; RV32IF-NEXT: lw a3, 8(sp)
-; RV32IF-NEXT: seqz a4, a0
-; RV32IF-NEXT: snez a5, a1
-; RV32IF-NEXT: addi a5, a5, -1
-; RV32IF-NEXT: and a4, a5, a4
+; RV32IF-NEXT: or a4, a1, a0
+; RV32IF-NEXT: seqz a4, a4
; RV32IF-NEXT: xori a0, a0, 1
; RV32IF-NEXT: or a0, a0, a1
; RV32IF-NEXT: seqz a0, a0
; RV32IFD-NEXT: lw a1, 20(sp)
; RV32IFD-NEXT: lw a2, 12(sp)
; RV32IFD-NEXT: lw a3, 8(sp)
-; RV32IFD-NEXT: seqz a4, a0
-; RV32IFD-NEXT: snez a5, a1
-; RV32IFD-NEXT: addi a5, a5, -1
-; RV32IFD-NEXT: and a4, a5, a4
+; RV32IFD-NEXT: or a4, a1, a0
+; RV32IFD-NEXT: seqz a4, a4
; RV32IFD-NEXT: xori a0, a0, 1
; RV32IFD-NEXT: or a0, a0, a1
; RV32IFD-NEXT: seqz a0, a0
; RV32-NEXT: lw a1, 20(sp)
; RV32-NEXT: lw a2, 12(sp)
; RV32-NEXT: lw a3, 8(sp)
-; RV32-NEXT: seqz a4, a0
-; RV32-NEXT: snez a5, a1
-; RV32-NEXT: addi a5, a5, -1
-; RV32-NEXT: and a4, a5, a4
+; RV32-NEXT: or a4, a1, a0
+; RV32-NEXT: seqz a4, a4
; RV32-NEXT: xori a0, a0, 1
; RV32-NEXT: or a0, a0, a1
; RV32-NEXT: seqz a0, a0
; RV32-NEXT: lw a1, 20(sp)
; RV32-NEXT: lw a2, 12(sp)
; RV32-NEXT: lw a3, 8(sp)
-; RV32-NEXT: seqz a4, a0
-; RV32-NEXT: snez a5, a1
-; RV32-NEXT: addi a5, a5, -1
-; RV32-NEXT: and a4, a5, a4
+; RV32-NEXT: or a4, a1, a0
+; RV32-NEXT: seqz a4, a4
; RV32-NEXT: xori a0, a0, 1
; RV32-NEXT: or a0, a0, a1
; RV32-NEXT: seqz a0, a0
; RV32IF-NEXT: lw a1, 20(sp)
; RV32IF-NEXT: lw a2, 12(sp)
; RV32IF-NEXT: lw a3, 8(sp)
-; RV32IF-NEXT: seqz a4, a0
-; RV32IF-NEXT: snez a5, a1
-; RV32IF-NEXT: addi a5, a5, -1
-; RV32IF-NEXT: and a4, a5, a4
-; RV32IF-NEXT: neg a4, a4
+; RV32IF-NEXT: or a4, a1, a0
+; RV32IF-NEXT: snez a4, a4
+; RV32IF-NEXT: addi a4, a4, -1
; RV32IF-NEXT: and a3, a4, a3
; RV32IF-NEXT: xori a0, a0, 1
; RV32IF-NEXT: or a0, a0, a1
; RV32IFD-NEXT: lw a1, 20(sp)
; RV32IFD-NEXT: lw a2, 12(sp)
; RV32IFD-NEXT: lw a3, 8(sp)
-; RV32IFD-NEXT: seqz a4, a0
-; RV32IFD-NEXT: snez a5, a1
-; RV32IFD-NEXT: addi a5, a5, -1
-; RV32IFD-NEXT: and a4, a5, a4
-; RV32IFD-NEXT: neg a4, a4
+; RV32IFD-NEXT: or a4, a1, a0
+; RV32IFD-NEXT: snez a4, a4
+; RV32IFD-NEXT: addi a4, a4, -1
; RV32IFD-NEXT: and a3, a4, a3
; RV32IFD-NEXT: xori a0, a0, 1
; RV32IFD-NEXT: or a0, a0, a1
; RV32-NEXT: lw a1, 20(sp)
; RV32-NEXT: lw a2, 12(sp)
; RV32-NEXT: lw a3, 8(sp)
-; RV32-NEXT: seqz a4, a0
-; RV32-NEXT: snez a5, a1
-; RV32-NEXT: addi a5, a5, -1
-; RV32-NEXT: and a4, a5, a4
-; RV32-NEXT: neg a4, a4
+; RV32-NEXT: or a4, a1, a0
+; RV32-NEXT: snez a4, a4
+; RV32-NEXT: addi a4, a4, -1
; RV32-NEXT: and a3, a4, a3
; RV32-NEXT: xori a0, a0, 1
; RV32-NEXT: or a0, a0, a1
; RV32-NEXT: lw a1, 20(sp)
; RV32-NEXT: lw a2, 12(sp)
; RV32-NEXT: lw a3, 8(sp)
-; RV32-NEXT: seqz a4, a0
-; RV32-NEXT: snez a5, a1
-; RV32-NEXT: addi a5, a5, -1
-; RV32-NEXT: and a4, a5, a4
-; RV32-NEXT: neg a4, a4
+; RV32-NEXT: or a4, a1, a0
+; RV32-NEXT: snez a4, a4
+; RV32-NEXT: addi a4, a4, -1
; RV32-NEXT: and a3, a4, a3
; RV32-NEXT: xori a0, a0, 1
; RV32-NEXT: or a0, a0, a1