|
3 | 3 | ; RUN: llc -mtriple=riscv64 -target-abi=lp64f -mattr=+f,+zbs < %s | FileCheck %s -check-prefix=RV64I
|
4 | 4 | ; RUN: llc -mtriple=riscv32 -target-abi=ilp32f -mattr=+f,+zbs,+xventanacondops < %s | FileCheck %s -check-prefix=RV32XVENTANACONDOPS
|
5 | 5 | ; RUN: llc -mtriple=riscv64 -target-abi=lp64f -mattr=+f,+zbs,+xventanacondops < %s | FileCheck %s -check-prefix=RV64XVENTANACONDOPS
|
6 |
| -; RUN: llc -mtriple=riscv64 -target-abi=lp64f -mattr=+f,+zbs,+xtheadcondmov < %s | FileCheck %s -check-prefix=RV64XTHEADCONDMOV |
| 6 | +; RUN: llc -mtriple=riscv64 -target-abi=lp64f -mattr=+f,+xtheadbs,+xtheadcondmov < %s | FileCheck %s -check-prefix=RV64XTHEADCONDMOV |
7 | 7 | ; RUN: llc -mtriple=riscv32 -target-abi=ilp32f -mattr=+f,+zbs,+zicond < %s | FileCheck %s -check-prefix=RV32ZICOND
|
8 | 8 | ; RUN: llc -mtriple=riscv64 -target-abi=lp64f -mattr=+f,+zbs,+zicond < %s | FileCheck %s -check-prefix=RV64ZICOND
|
9 | 9 |
|
@@ -126,7 +126,7 @@ define i64 @zero_singlebit1(i64 %rs1, i64 %rs2) {
|
126 | 126 | ;
|
127 | 127 | ; RV64XTHEADCONDMOV-LABEL: zero_singlebit1:
|
128 | 128 | ; RV64XTHEADCONDMOV: # %bb.0:
|
129 |
| -; RV64XTHEADCONDMOV-NEXT: bexti a1, a1, 12 |
| 129 | +; RV64XTHEADCONDMOV-NEXT: th.tst a1, a1, 12 |
130 | 130 | ; RV64XTHEADCONDMOV-NEXT: th.mvnez a0, zero, a1
|
131 | 131 | ; RV64XTHEADCONDMOV-NEXT: ret
|
132 | 132 | ;
|
@@ -179,9 +179,8 @@ define i64 @zero_singlebit2(i64 %rs1, i64 %rs2) {
|
179 | 179 | ;
|
180 | 180 | ; RV64XTHEADCONDMOV-LABEL: zero_singlebit2:
|
181 | 181 | ; RV64XTHEADCONDMOV: # %bb.0:
|
182 |
| -; RV64XTHEADCONDMOV-NEXT: slli a1, a1, 51 |
183 |
| -; RV64XTHEADCONDMOV-NEXT: srai a1, a1, 63 |
184 |
| -; RV64XTHEADCONDMOV-NEXT: and a0, a1, a0 |
| 182 | +; RV64XTHEADCONDMOV-NEXT: th.tst a1, a1, 12 |
| 183 | +; RV64XTHEADCONDMOV-NEXT: th.mveqz a0, zero, a1 |
185 | 184 | ; RV64XTHEADCONDMOV-NEXT: ret
|
186 | 185 | ;
|
187 | 186 | ; RV32ZICOND-LABEL: zero_singlebit2:
|
@@ -4297,9 +4296,8 @@ define i64 @single_bit(i64 %x) {
|
4297 | 4296 | ;
|
4298 | 4297 | ; RV64XTHEADCONDMOV-LABEL: single_bit:
|
4299 | 4298 | ; RV64XTHEADCONDMOV: # %bb.0: # %entry
|
4300 |
| -; RV64XTHEADCONDMOV-NEXT: slli a1, a0, 53 |
4301 |
| -; RV64XTHEADCONDMOV-NEXT: srai a1, a1, 63 |
4302 |
| -; RV64XTHEADCONDMOV-NEXT: and a0, a1, a0 |
| 4299 | +; RV64XTHEADCONDMOV-NEXT: andi a1, a0, 1024 |
| 4300 | +; RV64XTHEADCONDMOV-NEXT: th.mveqz a0, zero, a1 |
4303 | 4301 | ; RV64XTHEADCONDMOV-NEXT: ret
|
4304 | 4302 | ;
|
4305 | 4303 | ; RV32ZICOND-LABEL: single_bit:
|
@@ -4353,9 +4351,8 @@ define i64 @single_bit2(i64 %x) {
|
4353 | 4351 | ;
|
4354 | 4352 | ; RV64XTHEADCONDMOV-LABEL: single_bit2:
|
4355 | 4353 | ; RV64XTHEADCONDMOV: # %bb.0: # %entry
|
4356 |
| -; RV64XTHEADCONDMOV-NEXT: slli a1, a0, 52 |
4357 |
| -; RV64XTHEADCONDMOV-NEXT: srai a1, a1, 63 |
4358 |
| -; RV64XTHEADCONDMOV-NEXT: and a0, a1, a0 |
| 4354 | +; RV64XTHEADCONDMOV-NEXT: th.tst a1, a0, 11 |
| 4355 | +; RV64XTHEADCONDMOV-NEXT: th.mveqz a0, zero, a1 |
4359 | 4356 | ; RV64XTHEADCONDMOV-NEXT: ret
|
4360 | 4357 | ;
|
4361 | 4358 | ; RV32ZICOND-LABEL: single_bit2:
|
|
0 commit comments