Skip to content

Commit 25af23f

Browse files
committed
[RISCV] Add test coverage for llvm#95284
1 parent 3144073 commit 25af23f

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

llvm/test/CodeGen/RISCV/pr95284.ll

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2+
; RUN: llc -mtriple=riscv32 -verify-machineinstrs < %s | FileCheck -check-prefix=RV32I %s
3+
; RUN: llc -mtriple=riscv64 -verify-machineinstrs < %s | FileCheck -check-prefix=RV64I %s
4+
5+
; regression due to creation of temporary i32 avgfloors node
6+
define signext i64 @PR95284(i32 signext %0) {
7+
; RV32I-LABEL: PR95284:
8+
; RV32I: # %bb.0: # %entry
9+
; RV32I-NEXT: addi a1, a0, -1
10+
; RV32I-NEXT: srli a1, a1, 1
11+
; RV32I-NEXT: seqz a0, a0
12+
; RV32I-NEXT: slli a2, a0, 31
13+
; RV32I-NEXT: or a1, a2, a1
14+
; RV32I-NEXT: addi a1, a1, 1
15+
; RV32I-NEXT: seqz a2, a1
16+
; RV32I-NEXT: sub a2, a2, a0
17+
; RV32I-NEXT: andi a0, a1, -2
18+
; RV32I-NEXT: slli a1, a2, 1
19+
; RV32I-NEXT: srli a1, a1, 1
20+
; RV32I-NEXT: ret
21+
;
22+
; RV64I-LABEL: PR95284:
23+
; RV64I: # %bb.0: # %entry
24+
; RV64I-NEXT: addi a0, a0, -1
25+
; RV64I-NEXT: srli a0, a0, 1
26+
; RV64I-NEXT: addi a0, a0, 1
27+
; RV64I-NEXT: li a1, -3
28+
; RV64I-NEXT: srli a1, a1, 1
29+
; RV64I-NEXT: and a0, a0, a1
30+
; RV64I-NEXT: ret
31+
entry:
32+
%1 = zext nneg i32 %0 to i64
33+
%2 = add nsw i64 %1, -1
34+
%3 = lshr i64 %2, 1
35+
%4 = add nuw nsw i64 %3, 1
36+
%5 = and i64 %4, 9223372036854775806
37+
ret i64 %5
38+
}

0 commit comments

Comments
 (0)