|
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