Skip to content

Commit 0b71c58

Browse files
committed
[RISC-V][Isel] Add new test case for czero.eqz
Signed-off-by: Zhijin Zeng <[email protected]>
1 parent 6844c2f commit 0b71c58

File tree

1 file changed

+59
-0
lines changed

1 file changed

+59
-0
lines changed

llvm/test/CodeGen/RISCV/select.ll

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1858,3 +1858,62 @@ define i32 @select_cst6(i1 zeroext %cond) {
18581858
%ret = select i1 %cond, i32 2049, i32 2047
18591859
ret i32 %ret
18601860
}
1861+
1862+
@select_redundant_czero_eqz_data = global i32 0, align 4
1863+
1864+
define void @select_redundant_czero_eqz(ptr %0, ptr %1) {
1865+
; RV32IM-LABEL: select_redundant_czero_eqz:
1866+
; RV32IM: # %bb.0: # %entry
1867+
; RV32IM-NEXT: bnez a0, .LBB49_2
1868+
; RV32IM-NEXT: # %bb.1:
1869+
; RV32IM-NEXT: lui a0, %hi(select_redundant_czero_eqz_data)
1870+
; RV32IM-NEXT: addi a0, a0, %lo(select_redundant_czero_eqz_data)
1871+
; RV32IM-NEXT: .LBB49_2: # %entry
1872+
; RV32IM-NEXT: sw a0, 0(a1)
1873+
; RV32IM-NEXT: ret
1874+
;
1875+
; RV64IM-LABEL: select_redundant_czero_eqz:
1876+
; RV64IM: # %bb.0: # %entry
1877+
; RV64IM-NEXT: bnez a0, .LBB49_2
1878+
; RV64IM-NEXT: # %bb.1:
1879+
; RV64IM-NEXT: lui a0, %hi(select_redundant_czero_eqz_data)
1880+
; RV64IM-NEXT: addi a0, a0, %lo(select_redundant_czero_eqz_data)
1881+
; RV64IM-NEXT: .LBB49_2: # %entry
1882+
; RV64IM-NEXT: sd a0, 0(a1)
1883+
; RV64IM-NEXT: ret
1884+
;
1885+
; RV64IMXVTCONDOPS-LABEL: select_redundant_czero_eqz:
1886+
; RV64IMXVTCONDOPS: # %bb.0: # %entry
1887+
; RV64IMXVTCONDOPS-NEXT: lui a2, %hi(select_redundant_czero_eqz_data)
1888+
; RV64IMXVTCONDOPS-NEXT: addi a2, a2, %lo(select_redundant_czero_eqz_data)
1889+
; RV64IMXVTCONDOPS-NEXT: vt.maskcn a2, a2, a0
1890+
; RV64IMXVTCONDOPS-NEXT: vt.maskc a0, a0, a0
1891+
; RV64IMXVTCONDOPS-NEXT: or a0, a2, a0
1892+
; RV64IMXVTCONDOPS-NEXT: sd a0, 0(a1)
1893+
; RV64IMXVTCONDOPS-NEXT: ret
1894+
;
1895+
; RV32IMZICOND-LABEL: select_redundant_czero_eqz:
1896+
; RV32IMZICOND: # %bb.0: # %entry
1897+
; RV32IMZICOND-NEXT: lui a2, %hi(select_redundant_czero_eqz_data)
1898+
; RV32IMZICOND-NEXT: addi a2, a2, %lo(select_redundant_czero_eqz_data)
1899+
; RV32IMZICOND-NEXT: czero.nez a2, a2, a0
1900+
; RV32IMZICOND-NEXT: czero.eqz a0, a0, a0
1901+
; RV32IMZICOND-NEXT: or a0, a2, a0
1902+
; RV32IMZICOND-NEXT: sw a0, 0(a1)
1903+
; RV32IMZICOND-NEXT: ret
1904+
;
1905+
; RV64IMZICOND-LABEL: select_redundant_czero_eqz:
1906+
; RV64IMZICOND: # %bb.0: # %entry
1907+
; RV64IMZICOND-NEXT: lui a2, %hi(select_redundant_czero_eqz_data)
1908+
; RV64IMZICOND-NEXT: addi a2, a2, %lo(select_redundant_czero_eqz_data)
1909+
; RV64IMZICOND-NEXT: czero.nez a2, a2, a0
1910+
; RV64IMZICOND-NEXT: czero.eqz a0, a0, a0
1911+
; RV64IMZICOND-NEXT: or a0, a2, a0
1912+
; RV64IMZICOND-NEXT: sd a0, 0(a1)
1913+
; RV64IMZICOND-NEXT: ret
1914+
entry:
1915+
%3 = icmp eq ptr %0, null
1916+
%4 = select i1 %3, ptr @select_redundant_czero_eqz_data, ptr %0
1917+
store ptr %4, ptr %1, align 8
1918+
ret void
1919+
}

0 commit comments

Comments
 (0)