Skip to content

Commit 5aa83eb

Browse files
committed
[RISCV] Add test for llvm.round.i32.f16 RV64+Zfhmin/Zhinxmin. NFC
We have special handling for this in type legalization, but we didn't have a test.
1 parent 984fca5 commit 5aa83eb

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

llvm/test/CodeGen/RISCV/zfhmin-half-intrinsics.ll

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,3 +133,55 @@ define iXLen @lround_f16(half %a) nounwind {
133133
%1 = call iXLen @llvm.lround.iXLen.f16(half %a)
134134
ret iXLen %1
135135
}
136+
137+
define i32 @lround_i32_f16(half %a) nounwind {
138+
; RV32IZFHMIN-LABEL: lround_i32_f16:
139+
; RV32IZFHMIN: # %bb.0:
140+
; RV32IZFHMIN-NEXT: fcvt.s.h fa5, fa0
141+
; RV32IZFHMIN-NEXT: fcvt.w.s a0, fa5, rmm
142+
; RV32IZFHMIN-NEXT: ret
143+
;
144+
; RV64IZFHMIN-LABEL: lround_i32_f16:
145+
; RV64IZFHMIN: # %bb.0:
146+
; RV64IZFHMIN-NEXT: fcvt.s.h fa5, fa0
147+
; RV64IZFHMIN-NEXT: fcvt.w.s a0, fa5, rmm
148+
; RV64IZFHMIN-NEXT: ret
149+
;
150+
; RV32IDZFHMIN-LABEL: lround_i32_f16:
151+
; RV32IDZFHMIN: # %bb.0:
152+
; RV32IDZFHMIN-NEXT: fcvt.s.h fa5, fa0
153+
; RV32IDZFHMIN-NEXT: fcvt.w.s a0, fa5, rmm
154+
; RV32IDZFHMIN-NEXT: ret
155+
;
156+
; RV64IDZFHMIN-LABEL: lround_i32_f16:
157+
; RV64IDZFHMIN: # %bb.0:
158+
; RV64IDZFHMIN-NEXT: fcvt.s.h fa5, fa0
159+
; RV64IDZFHMIN-NEXT: fcvt.w.s a0, fa5, rmm
160+
; RV64IDZFHMIN-NEXT: ret
161+
;
162+
; RV32IZHINXMIN-LABEL: lround_i32_f16:
163+
; RV32IZHINXMIN: # %bb.0:
164+
; RV32IZHINXMIN-NEXT: fcvt.s.h a0, a0
165+
; RV32IZHINXMIN-NEXT: fcvt.w.s a0, a0, rmm
166+
; RV32IZHINXMIN-NEXT: ret
167+
;
168+
; RV64IZHINXMIN-LABEL: lround_i32_f16:
169+
; RV64IZHINXMIN: # %bb.0:
170+
; RV64IZHINXMIN-NEXT: fcvt.s.h a0, a0
171+
; RV64IZHINXMIN-NEXT: fcvt.w.s a0, a0, rmm
172+
; RV64IZHINXMIN-NEXT: ret
173+
;
174+
; RV32IZDINXZHINXMIN-LABEL: lround_i32_f16:
175+
; RV32IZDINXZHINXMIN: # %bb.0:
176+
; RV32IZDINXZHINXMIN-NEXT: fcvt.s.h a0, a0
177+
; RV32IZDINXZHINXMIN-NEXT: fcvt.w.s a0, a0, rmm
178+
; RV32IZDINXZHINXMIN-NEXT: ret
179+
;
180+
; RV64IZDINXZHINXMIN-LABEL: lround_i32_f16:
181+
; RV64IZDINXZHINXMIN: # %bb.0:
182+
; RV64IZDINXZHINXMIN-NEXT: fcvt.s.h a0, a0
183+
; RV64IZDINXZHINXMIN-NEXT: fcvt.w.s a0, a0, rmm
184+
; RV64IZDINXZHINXMIN-NEXT: ret
185+
%1 = call i32 @llvm.lround.i32.f16(half %a)
186+
ret i32 %1
187+
}

0 commit comments

Comments
 (0)