[llvm-branch-commits] [llvm] bf1aa5d - [RISCV][NFC] Fix order of parameters in cmov ge/le tests
Sam Elliott via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Fri Jan 15 07:41:08 PST 2021
Author: Michael Munday
Date: 2021-01-15T15:35:13Z
New Revision: bf1aa5db5c76d187df8dfef28bc5b8889fb53c4b
URL: https://github.com/llvm/llvm-project/commit/bf1aa5db5c76d187df8dfef28bc5b8889fb53c4b
DIFF: https://github.com/llvm/llvm-project/commit/bf1aa5db5c76d187df8dfef28bc5b8889fb53c4b.diff
LOG: [RISCV][NFC] Fix order of parameters in cmov ge/le tests
The first parameter should be selected if the condition is true and
the last parameter if the condition is false. Prior to this change
it was the other way round which was confusing.
Differential Revision: https://reviews.llvm.org/D94729
Added:
Modified:
llvm/test/CodeGen/RISCV/rv32Zbt.ll
llvm/test/CodeGen/RISCV/rv64Zbt.ll
Removed:
################################################################################
diff --git a/llvm/test/CodeGen/RISCV/rv32Zbt.ll b/llvm/test/CodeGen/RISCV/rv32Zbt.ll
index 7011698c13a9..279c39344b7d 100644
--- a/llvm/test/CodeGen/RISCV/rv32Zbt.ll
+++ b/llvm/test/CodeGen/RISCV/rv32Zbt.ll
@@ -91,30 +91,27 @@ define i32 @cmov_sle_i32(i32 %a, i32 %b, i32 %c, i32 %d) nounwind {
; RV32I: # %bb.0:
; RV32I-NEXT: bge a2, a1, .LBB3_2
; RV32I-NEXT: # %bb.1:
-; RV32I-NEXT: mv a3, a0
-; RV32I-NEXT: .LBB3_2:
; RV32I-NEXT: mv a0, a3
+; RV32I-NEXT: .LBB3_2:
; RV32I-NEXT: ret
;
; RV32IB-LABEL: cmov_sle_i32:
; RV32IB: # %bb.0:
; RV32IB-NEXT: bge a2, a1, .LBB3_2
; RV32IB-NEXT: # %bb.1:
-; RV32IB-NEXT: mv a3, a0
-; RV32IB-NEXT: .LBB3_2:
; RV32IB-NEXT: mv a0, a3
+; RV32IB-NEXT: .LBB3_2:
; RV32IB-NEXT: ret
;
; RV32IBT-LABEL: cmov_sle_i32:
; RV32IBT: # %bb.0:
; RV32IBT-NEXT: bge a2, a1, .LBB3_2
; RV32IBT-NEXT: # %bb.1:
-; RV32IBT-NEXT: mv a3, a0
-; RV32IBT-NEXT: .LBB3_2:
; RV32IBT-NEXT: mv a0, a3
+; RV32IBT-NEXT: .LBB3_2:
; RV32IBT-NEXT: ret
%tobool = icmp sle i32 %b, %c
- %cond = select i1 %tobool, i32 %d, i32 %a
+ %cond = select i1 %tobool, i32 %a, i32 %d
ret i32 %cond
}
@@ -123,30 +120,27 @@ define i32 @cmov_sge_i32(i32 %a, i32 %b, i32 %c, i32 %d) nounwind {
; RV32I: # %bb.0:
; RV32I-NEXT: bge a1, a2, .LBB4_2
; RV32I-NEXT: # %bb.1:
-; RV32I-NEXT: mv a3, a0
-; RV32I-NEXT: .LBB4_2:
; RV32I-NEXT: mv a0, a3
+; RV32I-NEXT: .LBB4_2:
; RV32I-NEXT: ret
;
; RV32IB-LABEL: cmov_sge_i32:
; RV32IB: # %bb.0:
; RV32IB-NEXT: bge a1, a2, .LBB4_2
; RV32IB-NEXT: # %bb.1:
-; RV32IB-NEXT: mv a3, a0
-; RV32IB-NEXT: .LBB4_2:
; RV32IB-NEXT: mv a0, a3
+; RV32IB-NEXT: .LBB4_2:
; RV32IB-NEXT: ret
;
; RV32IBT-LABEL: cmov_sge_i32:
; RV32IBT: # %bb.0:
; RV32IBT-NEXT: bge a1, a2, .LBB4_2
; RV32IBT-NEXT: # %bb.1:
-; RV32IBT-NEXT: mv a3, a0
-; RV32IBT-NEXT: .LBB4_2:
; RV32IBT-NEXT: mv a0, a3
+; RV32IBT-NEXT: .LBB4_2:
; RV32IBT-NEXT: ret
%tobool = icmp sge i32 %b, %c
- %cond = select i1 %tobool, i32 %d, i32 %a
+ %cond = select i1 %tobool, i32 %a, i32 %d
ret i32 %cond
}
@@ -155,30 +149,27 @@ define i32 @cmov_ule_i32(i32 %a, i32 %b, i32 %c, i32 %d) nounwind {
; RV32I: # %bb.0:
; RV32I-NEXT: bgeu a2, a1, .LBB5_2
; RV32I-NEXT: # %bb.1:
-; RV32I-NEXT: mv a3, a0
-; RV32I-NEXT: .LBB5_2:
; RV32I-NEXT: mv a0, a3
+; RV32I-NEXT: .LBB5_2:
; RV32I-NEXT: ret
;
; RV32IB-LABEL: cmov_ule_i32:
; RV32IB: # %bb.0:
; RV32IB-NEXT: bgeu a2, a1, .LBB5_2
; RV32IB-NEXT: # %bb.1:
-; RV32IB-NEXT: mv a3, a0
-; RV32IB-NEXT: .LBB5_2:
; RV32IB-NEXT: mv a0, a3
+; RV32IB-NEXT: .LBB5_2:
; RV32IB-NEXT: ret
;
; RV32IBT-LABEL: cmov_ule_i32:
; RV32IBT: # %bb.0:
; RV32IBT-NEXT: bgeu a2, a1, .LBB5_2
; RV32IBT-NEXT: # %bb.1:
-; RV32IBT-NEXT: mv a3, a0
-; RV32IBT-NEXT: .LBB5_2:
; RV32IBT-NEXT: mv a0, a3
+; RV32IBT-NEXT: .LBB5_2:
; RV32IBT-NEXT: ret
%tobool = icmp ule i32 %b, %c
- %cond = select i1 %tobool, i32 %d, i32 %a
+ %cond = select i1 %tobool, i32 %a, i32 %d
ret i32 %cond
}
@@ -187,30 +178,27 @@ define i32 @cmov_uge_i32(i32 %a, i32 %b, i32 %c, i32 %d) nounwind {
; RV32I: # %bb.0:
; RV32I-NEXT: bgeu a1, a2, .LBB6_2
; RV32I-NEXT: # %bb.1:
-; RV32I-NEXT: mv a3, a0
-; RV32I-NEXT: .LBB6_2:
; RV32I-NEXT: mv a0, a3
+; RV32I-NEXT: .LBB6_2:
; RV32I-NEXT: ret
;
; RV32IB-LABEL: cmov_uge_i32:
; RV32IB: # %bb.0:
; RV32IB-NEXT: bgeu a1, a2, .LBB6_2
; RV32IB-NEXT: # %bb.1:
-; RV32IB-NEXT: mv a3, a0
-; RV32IB-NEXT: .LBB6_2:
; RV32IB-NEXT: mv a0, a3
+; RV32IB-NEXT: .LBB6_2:
; RV32IB-NEXT: ret
;
; RV32IBT-LABEL: cmov_uge_i32:
; RV32IBT: # %bb.0:
; RV32IBT-NEXT: bgeu a1, a2, .LBB6_2
; RV32IBT-NEXT: # %bb.1:
-; RV32IBT-NEXT: mv a3, a0
-; RV32IBT-NEXT: .LBB6_2:
; RV32IBT-NEXT: mv a0, a3
+; RV32IBT-NEXT: .LBB6_2:
; RV32IBT-NEXT: ret
%tobool = icmp uge i32 %b, %c
- %cond = select i1 %tobool, i32 %d, i32 %a
+ %cond = select i1 %tobool, i32 %a, i32 %d
ret i32 %cond
}
@@ -259,11 +247,9 @@ define i64 @cmov_sle_i64(i64 %a, i64 %b, i64 %c, i64 %d) nounwind {
; RV32I-NEXT: xori a2, a2, 1
; RV32I-NEXT: bnez a2, .LBB8_4
; RV32I-NEXT: .LBB8_3:
-; RV32I-NEXT: mv a6, a0
-; RV32I-NEXT: mv a7, a1
-; RV32I-NEXT: .LBB8_4:
; RV32I-NEXT: mv a0, a6
; RV32I-NEXT: mv a1, a7
+; RV32I-NEXT: .LBB8_4:
; RV32I-NEXT: ret
;
; RV32IB-LABEL: cmov_sle_i64:
@@ -279,11 +265,9 @@ define i64 @cmov_sle_i64(i64 %a, i64 %b, i64 %c, i64 %d) nounwind {
; RV32IB-NEXT: xori a2, a2, 1
; RV32IB-NEXT: bnez a2, .LBB8_4
; RV32IB-NEXT: .LBB8_3:
-; RV32IB-NEXT: mv a6, a0
-; RV32IB-NEXT: mv a7, a1
-; RV32IB-NEXT: .LBB8_4:
; RV32IB-NEXT: mv a0, a6
; RV32IB-NEXT: mv a1, a7
+; RV32IB-NEXT: .LBB8_4:
; RV32IB-NEXT: ret
;
; RV32IBT-LABEL: cmov_sle_i64:
@@ -299,14 +283,12 @@ define i64 @cmov_sle_i64(i64 %a, i64 %b, i64 %c, i64 %d) nounwind {
; RV32IBT-NEXT: xori a2, a2, 1
; RV32IBT-NEXT: bnez a2, .LBB8_4
; RV32IBT-NEXT: .LBB8_3:
-; RV32IBT-NEXT: mv a6, a0
-; RV32IBT-NEXT: mv a7, a1
-; RV32IBT-NEXT: .LBB8_4:
; RV32IBT-NEXT: mv a0, a6
; RV32IBT-NEXT: mv a1, a7
+; RV32IBT-NEXT: .LBB8_4:
; RV32IBT-NEXT: ret
%tobool = icmp sle i64 %b, %c
- %cond = select i1 %tobool, i64 %d, i64 %a
+ %cond = select i1 %tobool, i64 %a, i64 %d
ret i64 %cond
}
@@ -324,11 +306,9 @@ define i64 @cmov_sge_i64(i64 %a, i64 %b, i64 %c, i64 %d) nounwind {
; RV32I-NEXT: xori a2, a2, 1
; RV32I-NEXT: bnez a2, .LBB9_4
; RV32I-NEXT: .LBB9_3:
-; RV32I-NEXT: mv a6, a0
-; RV32I-NEXT: mv a7, a1
-; RV32I-NEXT: .LBB9_4:
; RV32I-NEXT: mv a0, a6
; RV32I-NEXT: mv a1, a7
+; RV32I-NEXT: .LBB9_4:
; RV32I-NEXT: ret
;
; RV32IB-LABEL: cmov_sge_i64:
@@ -344,11 +324,9 @@ define i64 @cmov_sge_i64(i64 %a, i64 %b, i64 %c, i64 %d) nounwind {
; RV32IB-NEXT: xori a2, a2, 1
; RV32IB-NEXT: bnez a2, .LBB9_4
; RV32IB-NEXT: .LBB9_3:
-; RV32IB-NEXT: mv a6, a0
-; RV32IB-NEXT: mv a7, a1
-; RV32IB-NEXT: .LBB9_4:
; RV32IB-NEXT: mv a0, a6
; RV32IB-NEXT: mv a1, a7
+; RV32IB-NEXT: .LBB9_4:
; RV32IB-NEXT: ret
;
; RV32IBT-LABEL: cmov_sge_i64:
@@ -364,14 +342,12 @@ define i64 @cmov_sge_i64(i64 %a, i64 %b, i64 %c, i64 %d) nounwind {
; RV32IBT-NEXT: xori a2, a2, 1
; RV32IBT-NEXT: bnez a2, .LBB9_4
; RV32IBT-NEXT: .LBB9_3:
-; RV32IBT-NEXT: mv a6, a0
-; RV32IBT-NEXT: mv a7, a1
-; RV32IBT-NEXT: .LBB9_4:
; RV32IBT-NEXT: mv a0, a6
; RV32IBT-NEXT: mv a1, a7
+; RV32IBT-NEXT: .LBB9_4:
; RV32IBT-NEXT: ret
%tobool = icmp sge i64 %b, %c
- %cond = select i1 %tobool, i64 %d, i64 %a
+ %cond = select i1 %tobool, i64 %a, i64 %d
ret i64 %cond
}
@@ -389,11 +365,9 @@ define i64 @cmov_ule_i64(i64 %a, i64 %b, i64 %c, i64 %d) nounwind {
; RV32I-NEXT: xori a2, a2, 1
; RV32I-NEXT: bnez a2, .LBB10_4
; RV32I-NEXT: .LBB10_3:
-; RV32I-NEXT: mv a6, a0
-; RV32I-NEXT: mv a7, a1
-; RV32I-NEXT: .LBB10_4:
; RV32I-NEXT: mv a0, a6
; RV32I-NEXT: mv a1, a7
+; RV32I-NEXT: .LBB10_4:
; RV32I-NEXT: ret
;
; RV32IB-LABEL: cmov_ule_i64:
@@ -409,11 +383,9 @@ define i64 @cmov_ule_i64(i64 %a, i64 %b, i64 %c, i64 %d) nounwind {
; RV32IB-NEXT: xori a2, a2, 1
; RV32IB-NEXT: bnez a2, .LBB10_4
; RV32IB-NEXT: .LBB10_3:
-; RV32IB-NEXT: mv a6, a0
-; RV32IB-NEXT: mv a7, a1
-; RV32IB-NEXT: .LBB10_4:
; RV32IB-NEXT: mv a0, a6
; RV32IB-NEXT: mv a1, a7
+; RV32IB-NEXT: .LBB10_4:
; RV32IB-NEXT: ret
;
; RV32IBT-LABEL: cmov_ule_i64:
@@ -429,14 +401,12 @@ define i64 @cmov_ule_i64(i64 %a, i64 %b, i64 %c, i64 %d) nounwind {
; RV32IBT-NEXT: xori a2, a2, 1
; RV32IBT-NEXT: bnez a2, .LBB10_4
; RV32IBT-NEXT: .LBB10_3:
-; RV32IBT-NEXT: mv a6, a0
-; RV32IBT-NEXT: mv a7, a1
-; RV32IBT-NEXT: .LBB10_4:
; RV32IBT-NEXT: mv a0, a6
; RV32IBT-NEXT: mv a1, a7
+; RV32IBT-NEXT: .LBB10_4:
; RV32IBT-NEXT: ret
%tobool = icmp ule i64 %b, %c
- %cond = select i1 %tobool, i64 %d, i64 %a
+ %cond = select i1 %tobool, i64 %a, i64 %d
ret i64 %cond
}
@@ -454,11 +424,9 @@ define i64 @cmov_uge_i64(i64 %a, i64 %b, i64 %c, i64 %d) nounwind {
; RV32I-NEXT: xori a2, a2, 1
; RV32I-NEXT: bnez a2, .LBB11_4
; RV32I-NEXT: .LBB11_3:
-; RV32I-NEXT: mv a6, a0
-; RV32I-NEXT: mv a7, a1
-; RV32I-NEXT: .LBB11_4:
; RV32I-NEXT: mv a0, a6
; RV32I-NEXT: mv a1, a7
+; RV32I-NEXT: .LBB11_4:
; RV32I-NEXT: ret
;
; RV32IB-LABEL: cmov_uge_i64:
@@ -474,11 +442,9 @@ define i64 @cmov_uge_i64(i64 %a, i64 %b, i64 %c, i64 %d) nounwind {
; RV32IB-NEXT: xori a2, a2, 1
; RV32IB-NEXT: bnez a2, .LBB11_4
; RV32IB-NEXT: .LBB11_3:
-; RV32IB-NEXT: mv a6, a0
-; RV32IB-NEXT: mv a7, a1
-; RV32IB-NEXT: .LBB11_4:
; RV32IB-NEXT: mv a0, a6
; RV32IB-NEXT: mv a1, a7
+; RV32IB-NEXT: .LBB11_4:
; RV32IB-NEXT: ret
;
; RV32IBT-LABEL: cmov_uge_i64:
@@ -494,14 +460,12 @@ define i64 @cmov_uge_i64(i64 %a, i64 %b, i64 %c, i64 %d) nounwind {
; RV32IBT-NEXT: xori a2, a2, 1
; RV32IBT-NEXT: bnez a2, .LBB11_4
; RV32IBT-NEXT: .LBB11_3:
-; RV32IBT-NEXT: mv a6, a0
-; RV32IBT-NEXT: mv a7, a1
-; RV32IBT-NEXT: .LBB11_4:
; RV32IBT-NEXT: mv a0, a6
; RV32IBT-NEXT: mv a1, a7
+; RV32IBT-NEXT: .LBB11_4:
; RV32IBT-NEXT: ret
%tobool = icmp uge i64 %b, %c
- %cond = select i1 %tobool, i64 %d, i64 %a
+ %cond = select i1 %tobool, i64 %a, i64 %d
ret i64 %cond
}
diff --git a/llvm/test/CodeGen/RISCV/rv64Zbt.ll b/llvm/test/CodeGen/RISCV/rv64Zbt.ll
index b3eb9f2cff1f..72c3f2d45a33 100644
--- a/llvm/test/CodeGen/RISCV/rv64Zbt.ll
+++ b/llvm/test/CodeGen/RISCV/rv64Zbt.ll
@@ -85,30 +85,27 @@ define signext i32 @cmov_sle_i32(i32 signext %a, i32 signext %b, i32 signext %c,
; RV64I: # %bb.0:
; RV64I-NEXT: bge a2, a1, .LBB3_2
; RV64I-NEXT: # %bb.1:
-; RV64I-NEXT: mv a3, a0
-; RV64I-NEXT: .LBB3_2:
; RV64I-NEXT: mv a0, a3
+; RV64I-NEXT: .LBB3_2:
; RV64I-NEXT: ret
;
; RV64IB-LABEL: cmov_sle_i32:
; RV64IB: # %bb.0:
; RV64IB-NEXT: bge a2, a1, .LBB3_2
; RV64IB-NEXT: # %bb.1:
-; RV64IB-NEXT: mv a3, a0
-; RV64IB-NEXT: .LBB3_2:
; RV64IB-NEXT: mv a0, a3
+; RV64IB-NEXT: .LBB3_2:
; RV64IB-NEXT: ret
;
; RV64IBT-LABEL: cmov_sle_i32:
; RV64IBT: # %bb.0:
; RV64IBT-NEXT: bge a2, a1, .LBB3_2
; RV64IBT-NEXT: # %bb.1:
-; RV64IBT-NEXT: mv a3, a0
-; RV64IBT-NEXT: .LBB3_2:
; RV64IBT-NEXT: mv a0, a3
+; RV64IBT-NEXT: .LBB3_2:
; RV64IBT-NEXT: ret
%tobool = icmp sle i32 %b, %c
- %cond = select i1 %tobool, i32 %d, i32 %a
+ %cond = select i1 %tobool, i32 %a, i32 %d
ret i32 %cond
}
@@ -117,30 +114,27 @@ define signext i32 @cmov_sge_i32(i32 signext %a, i32 signext %b, i32 signext %c,
; RV64I: # %bb.0:
; RV64I-NEXT: bge a1, a2, .LBB4_2
; RV64I-NEXT: # %bb.1:
-; RV64I-NEXT: mv a3, a0
-; RV64I-NEXT: .LBB4_2:
; RV64I-NEXT: mv a0, a3
+; RV64I-NEXT: .LBB4_2:
; RV64I-NEXT: ret
;
; RV64IB-LABEL: cmov_sge_i32:
; RV64IB: # %bb.0:
; RV64IB-NEXT: bge a1, a2, .LBB4_2
; RV64IB-NEXT: # %bb.1:
-; RV64IB-NEXT: mv a3, a0
-; RV64IB-NEXT: .LBB4_2:
; RV64IB-NEXT: mv a0, a3
+; RV64IB-NEXT: .LBB4_2:
; RV64IB-NEXT: ret
;
; RV64IBT-LABEL: cmov_sge_i32:
; RV64IBT: # %bb.0:
; RV64IBT-NEXT: bge a1, a2, .LBB4_2
; RV64IBT-NEXT: # %bb.1:
-; RV64IBT-NEXT: mv a3, a0
-; RV64IBT-NEXT: .LBB4_2:
; RV64IBT-NEXT: mv a0, a3
+; RV64IBT-NEXT: .LBB4_2:
; RV64IBT-NEXT: ret
%tobool = icmp sge i32 %b, %c
- %cond = select i1 %tobool, i32 %d, i32 %a
+ %cond = select i1 %tobool, i32 %a, i32 %d
ret i32 %cond
}
@@ -149,30 +143,27 @@ define signext i32 @cmov_ule_i32(i32 signext %a, i32 signext %b, i32 signext %c,
; RV64I: # %bb.0:
; RV64I-NEXT: bgeu a2, a1, .LBB5_2
; RV64I-NEXT: # %bb.1:
-; RV64I-NEXT: mv a3, a0
-; RV64I-NEXT: .LBB5_2:
; RV64I-NEXT: mv a0, a3
+; RV64I-NEXT: .LBB5_2:
; RV64I-NEXT: ret
;
; RV64IB-LABEL: cmov_ule_i32:
; RV64IB: # %bb.0:
; RV64IB-NEXT: bgeu a2, a1, .LBB5_2
; RV64IB-NEXT: # %bb.1:
-; RV64IB-NEXT: mv a3, a0
-; RV64IB-NEXT: .LBB5_2:
; RV64IB-NEXT: mv a0, a3
+; RV64IB-NEXT: .LBB5_2:
; RV64IB-NEXT: ret
;
; RV64IBT-LABEL: cmov_ule_i32:
; RV64IBT: # %bb.0:
; RV64IBT-NEXT: bgeu a2, a1, .LBB5_2
; RV64IBT-NEXT: # %bb.1:
-; RV64IBT-NEXT: mv a3, a0
-; RV64IBT-NEXT: .LBB5_2:
; RV64IBT-NEXT: mv a0, a3
+; RV64IBT-NEXT: .LBB5_2:
; RV64IBT-NEXT: ret
%tobool = icmp ule i32 %b, %c
- %cond = select i1 %tobool, i32 %d, i32 %a
+ %cond = select i1 %tobool, i32 %a, i32 %d
ret i32 %cond
}
@@ -181,30 +172,27 @@ define signext i32 @cmov_uge_i32(i32 signext %a, i32 signext %b, i32 signext %c,
; RV64I: # %bb.0:
; RV64I-NEXT: bgeu a1, a2, .LBB6_2
; RV64I-NEXT: # %bb.1:
-; RV64I-NEXT: mv a3, a0
-; RV64I-NEXT: .LBB6_2:
; RV64I-NEXT: mv a0, a3
+; RV64I-NEXT: .LBB6_2:
; RV64I-NEXT: ret
;
; RV64IB-LABEL: cmov_uge_i32:
; RV64IB: # %bb.0:
; RV64IB-NEXT: bgeu a1, a2, .LBB6_2
; RV64IB-NEXT: # %bb.1:
-; RV64IB-NEXT: mv a3, a0
-; RV64IB-NEXT: .LBB6_2:
; RV64IB-NEXT: mv a0, a3
+; RV64IB-NEXT: .LBB6_2:
; RV64IB-NEXT: ret
;
; RV64IBT-LABEL: cmov_uge_i32:
; RV64IBT: # %bb.0:
; RV64IBT-NEXT: bgeu a1, a2, .LBB6_2
; RV64IBT-NEXT: # %bb.1:
-; RV64IBT-NEXT: mv a3, a0
-; RV64IBT-NEXT: .LBB6_2:
; RV64IBT-NEXT: mv a0, a3
+; RV64IBT-NEXT: .LBB6_2:
; RV64IBT-NEXT: ret
%tobool = icmp uge i32 %b, %c
- %cond = select i1 %tobool, i32 %d, i32 %a
+ %cond = select i1 %tobool, i32 %a, i32 %d
ret i32 %cond
}
@@ -237,30 +225,27 @@ define i64 @cmov_sle_i64(i64 %a, i64 %b, i64 %c, i64 %d) nounwind {
; RV64I: # %bb.0:
; RV64I-NEXT: bge a2, a1, .LBB8_2
; RV64I-NEXT: # %bb.1:
-; RV64I-NEXT: mv a3, a0
-; RV64I-NEXT: .LBB8_2:
; RV64I-NEXT: mv a0, a3
+; RV64I-NEXT: .LBB8_2:
; RV64I-NEXT: ret
;
; RV64IB-LABEL: cmov_sle_i64:
; RV64IB: # %bb.0:
; RV64IB-NEXT: bge a2, a1, .LBB8_2
; RV64IB-NEXT: # %bb.1:
-; RV64IB-NEXT: mv a3, a0
-; RV64IB-NEXT: .LBB8_2:
; RV64IB-NEXT: mv a0, a3
+; RV64IB-NEXT: .LBB8_2:
; RV64IB-NEXT: ret
;
; RV64IBT-LABEL: cmov_sle_i64:
; RV64IBT: # %bb.0:
; RV64IBT-NEXT: bge a2, a1, .LBB8_2
; RV64IBT-NEXT: # %bb.1:
-; RV64IBT-NEXT: mv a3, a0
-; RV64IBT-NEXT: .LBB8_2:
; RV64IBT-NEXT: mv a0, a3
+; RV64IBT-NEXT: .LBB8_2:
; RV64IBT-NEXT: ret
%tobool = icmp sle i64 %b, %c
- %cond = select i1 %tobool, i64 %d, i64 %a
+ %cond = select i1 %tobool, i64 %a, i64 %d
ret i64 %cond
}
@@ -269,30 +254,27 @@ define i64 @cmov_sge_i64(i64 %a, i64 %b, i64 %c, i64 %d) nounwind {
; RV64I: # %bb.0:
; RV64I-NEXT: bge a1, a2, .LBB9_2
; RV64I-NEXT: # %bb.1:
-; RV64I-NEXT: mv a3, a0
-; RV64I-NEXT: .LBB9_2:
; RV64I-NEXT: mv a0, a3
+; RV64I-NEXT: .LBB9_2:
; RV64I-NEXT: ret
;
; RV64IB-LABEL: cmov_sge_i64:
; RV64IB: # %bb.0:
; RV64IB-NEXT: bge a1, a2, .LBB9_2
; RV64IB-NEXT: # %bb.1:
-; RV64IB-NEXT: mv a3, a0
-; RV64IB-NEXT: .LBB9_2:
; RV64IB-NEXT: mv a0, a3
+; RV64IB-NEXT: .LBB9_2:
; RV64IB-NEXT: ret
;
; RV64IBT-LABEL: cmov_sge_i64:
; RV64IBT: # %bb.0:
; RV64IBT-NEXT: bge a1, a2, .LBB9_2
; RV64IBT-NEXT: # %bb.1:
-; RV64IBT-NEXT: mv a3, a0
-; RV64IBT-NEXT: .LBB9_2:
; RV64IBT-NEXT: mv a0, a3
+; RV64IBT-NEXT: .LBB9_2:
; RV64IBT-NEXT: ret
%tobool = icmp sge i64 %b, %c
- %cond = select i1 %tobool, i64 %d, i64 %a
+ %cond = select i1 %tobool, i64 %a, i64 %d
ret i64 %cond
}
@@ -301,30 +283,27 @@ define i64 @cmov_ule_i64(i64 %a, i64 %b, i64 %c, i64 %d) nounwind {
; RV64I: # %bb.0:
; RV64I-NEXT: bgeu a2, a1, .LBB10_2
; RV64I-NEXT: # %bb.1:
-; RV64I-NEXT: mv a3, a0
-; RV64I-NEXT: .LBB10_2:
; RV64I-NEXT: mv a0, a3
+; RV64I-NEXT: .LBB10_2:
; RV64I-NEXT: ret
;
; RV64IB-LABEL: cmov_ule_i64:
; RV64IB: # %bb.0:
; RV64IB-NEXT: bgeu a2, a1, .LBB10_2
; RV64IB-NEXT: # %bb.1:
-; RV64IB-NEXT: mv a3, a0
-; RV64IB-NEXT: .LBB10_2:
; RV64IB-NEXT: mv a0, a3
+; RV64IB-NEXT: .LBB10_2:
; RV64IB-NEXT: ret
;
; RV64IBT-LABEL: cmov_ule_i64:
; RV64IBT: # %bb.0:
; RV64IBT-NEXT: bgeu a2, a1, .LBB10_2
; RV64IBT-NEXT: # %bb.1:
-; RV64IBT-NEXT: mv a3, a0
-; RV64IBT-NEXT: .LBB10_2:
; RV64IBT-NEXT: mv a0, a3
+; RV64IBT-NEXT: .LBB10_2:
; RV64IBT-NEXT: ret
%tobool = icmp ule i64 %b, %c
- %cond = select i1 %tobool, i64 %d, i64 %a
+ %cond = select i1 %tobool, i64 %a, i64 %d
ret i64 %cond
}
@@ -333,30 +312,27 @@ define i64 @cmov_uge_i64(i64 %a, i64 %b, i64 %c, i64 %d) nounwind {
; RV64I: # %bb.0:
; RV64I-NEXT: bgeu a1, a2, .LBB11_2
; RV64I-NEXT: # %bb.1:
-; RV64I-NEXT: mv a3, a0
-; RV64I-NEXT: .LBB11_2:
; RV64I-NEXT: mv a0, a3
+; RV64I-NEXT: .LBB11_2:
; RV64I-NEXT: ret
;
; RV64IB-LABEL: cmov_uge_i64:
; RV64IB: # %bb.0:
; RV64IB-NEXT: bgeu a1, a2, .LBB11_2
; RV64IB-NEXT: # %bb.1:
-; RV64IB-NEXT: mv a3, a0
-; RV64IB-NEXT: .LBB11_2:
; RV64IB-NEXT: mv a0, a3
+; RV64IB-NEXT: .LBB11_2:
; RV64IB-NEXT: ret
;
; RV64IBT-LABEL: cmov_uge_i64:
; RV64IBT: # %bb.0:
; RV64IBT-NEXT: bgeu a1, a2, .LBB11_2
; RV64IBT-NEXT: # %bb.1:
-; RV64IBT-NEXT: mv a3, a0
-; RV64IBT-NEXT: .LBB11_2:
; RV64IBT-NEXT: mv a0, a3
+; RV64IBT-NEXT: .LBB11_2:
; RV64IBT-NEXT: ret
%tobool = icmp uge i64 %b, %c
- %cond = select i1 %tobool, i64 %d, i64 %a
+ %cond = select i1 %tobool, i64 %a, i64 %d
ret i64 %cond
}
More information about the llvm-branch-commits
mailing list