Skip to content

Commit e3c120a

Browse files
committed
[RISCV] Add a Zbb+Zbs command line to rv*zbs.ll to get coverage on an existing isel pattern. NFC
This pattern wasn't tested def : Pat<(XLenVT (and (rotl -2, (XLenVT GPR:$rs2)), GPR:$rs1)), (BCLR GPR:$rs1, GPR:$rs2)>;1
1 parent 2186199 commit e3c120a

File tree

2 files changed

+36
-17
lines changed

2 files changed

+36
-17
lines changed

llvm/test/CodeGen/RISCV/rv32zbs.ll

Lines changed: 34 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22
; RUN: llc -mtriple=riscv32 -verify-machineinstrs < %s \
33
; RUN: | FileCheck %s -check-prefixes=CHECK,RV32I
44
; RUN: llc -mtriple=riscv32 -mattr=+zbs -verify-machineinstrs < %s \
5-
; RUN: | FileCheck %s -check-prefixes=CHECK,RV32ZBS
5+
; RUN: | FileCheck %s -check-prefixes=CHECK,RV32ZBS,RV32ZBSNOZBB
6+
; RUN: llc -mtriple=riscv32 -mattr=+zbs,+zbb -verify-machineinstrs < %s \
7+
; RUN: | FileCheck %s -check-prefixes=CHECK,RV32ZBS,RV32ZBSZBB
68

79
define i32 @bclr_i32(i32 %a, i32 %b) nounwind {
810
; RV32I-LABEL: bclr_i32:
@@ -62,22 +64,37 @@ define i64 @bclr_i64(i64 %a, i64 %b) nounwind {
6264
; RV32I-NEXT: and a1, a2, a1
6365
; RV32I-NEXT: ret
6466
;
65-
; RV32ZBS-LABEL: bclr_i64:
66-
; RV32ZBS: # %bb.0:
67-
; RV32ZBS-NEXT: andi a3, a2, 63
68-
; RV32ZBS-NEXT: addi a4, a3, -32
69-
; RV32ZBS-NEXT: slti a4, a4, 0
70-
; RV32ZBS-NEXT: neg a5, a4
71-
; RV32ZBS-NEXT: bset a2, zero, a2
72-
; RV32ZBS-NEXT: and a2, a5, a2
73-
; RV32ZBS-NEXT: bset a3, zero, a3
74-
; RV32ZBS-NEXT: addi a4, a4, -1
75-
; RV32ZBS-NEXT: and a3, a4, a3
76-
; RV32ZBS-NEXT: not a3, a3
77-
; RV32ZBS-NEXT: not a2, a2
78-
; RV32ZBS-NEXT: and a0, a2, a0
79-
; RV32ZBS-NEXT: and a1, a3, a1
80-
; RV32ZBS-NEXT: ret
67+
; RV32ZBSNOZBB-LABEL: bclr_i64:
68+
; RV32ZBSNOZBB: # %bb.0:
69+
; RV32ZBSNOZBB-NEXT: andi a3, a2, 63
70+
; RV32ZBSNOZBB-NEXT: addi a4, a3, -32
71+
; RV32ZBSNOZBB-NEXT: slti a4, a4, 0
72+
; RV32ZBSNOZBB-NEXT: neg a5, a4
73+
; RV32ZBSNOZBB-NEXT: bset a2, zero, a2
74+
; RV32ZBSNOZBB-NEXT: and a2, a5, a2
75+
; RV32ZBSNOZBB-NEXT: bset a3, zero, a3
76+
; RV32ZBSNOZBB-NEXT: addi a4, a4, -1
77+
; RV32ZBSNOZBB-NEXT: and a3, a4, a3
78+
; RV32ZBSNOZBB-NEXT: not a3, a3
79+
; RV32ZBSNOZBB-NEXT: not a2, a2
80+
; RV32ZBSNOZBB-NEXT: and a0, a2, a0
81+
; RV32ZBSNOZBB-NEXT: and a1, a3, a1
82+
; RV32ZBSNOZBB-NEXT: ret
83+
;
84+
; RV32ZBSZBB-LABEL: bclr_i64:
85+
; RV32ZBSZBB: # %bb.0:
86+
; RV32ZBSZBB-NEXT: andi a3, a2, 63
87+
; RV32ZBSZBB-NEXT: bset a4, zero, a3
88+
; RV32ZBSZBB-NEXT: addi a3, a3, -32
89+
; RV32ZBSZBB-NEXT: slti a3, a3, 0
90+
; RV32ZBSZBB-NEXT: addi a5, a3, -1
91+
; RV32ZBSZBB-NEXT: and a4, a5, a4
92+
; RV32ZBSZBB-NEXT: neg a3, a3
93+
; RV32ZBSZBB-NEXT: bset a2, zero, a2
94+
; RV32ZBSZBB-NEXT: and a2, a3, a2
95+
; RV32ZBSZBB-NEXT: andn a0, a0, a2
96+
; RV32ZBSZBB-NEXT: andn a1, a1, a4
97+
; RV32ZBSZBB-NEXT: ret
8198
%and = and i64 %b, 63
8299
%shl = shl nuw i64 1, %and
83100
%neg = xor i64 %shl, -1

llvm/test/CodeGen/RISCV/rv64zbs.ll

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
; RUN: | FileCheck %s -check-prefixes=CHECK,RV64I
44
; RUN: llc -mtriple=riscv64 -mattr=+zbs -verify-machineinstrs < %s \
55
; RUN: | FileCheck %s -check-prefixes=CHECK,RV64ZBS
6+
; RUN: llc -mtriple=riscv64 -mattr=+zbs,+zbb -verify-machineinstrs < %s \
7+
; RUN: | FileCheck %s -check-prefixes=CHECK,RV64ZBS
68

79
define signext i32 @bclr_i32(i32 signext %a, i32 signext %b) nounwind {
810
; RV64I-LABEL: bclr_i32:

0 commit comments

Comments
 (0)