Skip to content

Commit cbc7812

Browse files
committed
[RISCV] Add Zdinx RUN line to rv64d-double-convert.ll. NFC
We already have a Zfinx RUN line for rv64f-float-convert.ll.
1 parent d22d63a commit cbc7812

File tree

1 file changed

+64
-0
lines changed

1 file changed

+64
-0
lines changed

llvm/test/CodeGen/RISCV/rv64d-double-convert.ll

+64
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
22
; RUN: llc -mtriple=riscv64 -mattr=+d -verify-machineinstrs < %s \
33
; RUN: -target-abi=lp64d | FileCheck %s -check-prefix=RV64ID
4+
; RUN: llc -mtriple=riscv64 -mattr=+zdinx -verify-machineinstrs < %s \
5+
; RUN: -target-abi=lp64 | FileCheck %s -check-prefix=RV64IDINX
46

57
; This file exhaustively checks double<->i32 conversions. In general,
68
; fcvt.l[u].d can be selected instead of fcvt.w[u].d because poison is
@@ -12,6 +14,11 @@ define i32 @aext_fptosi(double %a) nounwind {
1214
; RV64ID: # %bb.0:
1315
; RV64ID-NEXT: fcvt.w.d a0, fa0, rtz
1416
; RV64ID-NEXT: ret
17+
;
18+
; RV64IDINX-LABEL: aext_fptosi:
19+
; RV64IDINX: # %bb.0:
20+
; RV64IDINX-NEXT: fcvt.w.d a0, a0, rtz
21+
; RV64IDINX-NEXT: ret
1522
%1 = fptosi double %a to i32
1623
ret i32 %1
1724
}
@@ -21,6 +28,11 @@ define signext i32 @sext_fptosi(double %a) nounwind {
2128
; RV64ID: # %bb.0:
2229
; RV64ID-NEXT: fcvt.w.d a0, fa0, rtz
2330
; RV64ID-NEXT: ret
31+
;
32+
; RV64IDINX-LABEL: sext_fptosi:
33+
; RV64IDINX: # %bb.0:
34+
; RV64IDINX-NEXT: fcvt.w.d a0, a0, rtz
35+
; RV64IDINX-NEXT: ret
2436
%1 = fptosi double %a to i32
2537
ret i32 %1
2638
}
@@ -32,6 +44,13 @@ define zeroext i32 @zext_fptosi(double %a) nounwind {
3244
; RV64ID-NEXT: slli a0, a0, 32
3345
; RV64ID-NEXT: srli a0, a0, 32
3446
; RV64ID-NEXT: ret
47+
;
48+
; RV64IDINX-LABEL: zext_fptosi:
49+
; RV64IDINX: # %bb.0:
50+
; RV64IDINX-NEXT: fcvt.w.d a0, a0, rtz
51+
; RV64IDINX-NEXT: slli a0, a0, 32
52+
; RV64IDINX-NEXT: srli a0, a0, 32
53+
; RV64IDINX-NEXT: ret
3554
%1 = fptosi double %a to i32
3655
ret i32 %1
3756
}
@@ -41,6 +60,11 @@ define i32 @aext_fptoui(double %a) nounwind {
4160
; RV64ID: # %bb.0:
4261
; RV64ID-NEXT: fcvt.wu.d a0, fa0, rtz
4362
; RV64ID-NEXT: ret
63+
;
64+
; RV64IDINX-LABEL: aext_fptoui:
65+
; RV64IDINX: # %bb.0:
66+
; RV64IDINX-NEXT: fcvt.wu.d a0, a0, rtz
67+
; RV64IDINX-NEXT: ret
4468
%1 = fptoui double %a to i32
4569
ret i32 %1
4670
}
@@ -50,6 +74,11 @@ define signext i32 @sext_fptoui(double %a) nounwind {
5074
; RV64ID: # %bb.0:
5175
; RV64ID-NEXT: fcvt.wu.d a0, fa0, rtz
5276
; RV64ID-NEXT: ret
77+
;
78+
; RV64IDINX-LABEL: sext_fptoui:
79+
; RV64IDINX: # %bb.0:
80+
; RV64IDINX-NEXT: fcvt.wu.d a0, a0, rtz
81+
; RV64IDINX-NEXT: ret
5382
%1 = fptoui double %a to i32
5483
ret i32 %1
5584
}
@@ -59,6 +88,11 @@ define zeroext i32 @zext_fptoui(double %a) nounwind {
5988
; RV64ID: # %bb.0:
6089
; RV64ID-NEXT: fcvt.lu.d a0, fa0, rtz
6190
; RV64ID-NEXT: ret
91+
;
92+
; RV64IDINX-LABEL: zext_fptoui:
93+
; RV64IDINX: # %bb.0:
94+
; RV64IDINX-NEXT: fcvt.lu.d a0, a0, rtz
95+
; RV64IDINX-NEXT: ret
6296
%1 = fptoui double %a to i32
6397
ret i32 %1
6498
}
@@ -68,6 +102,11 @@ define double @uitofp_aext_i32_to_f64(i32 %a) nounwind {
68102
; RV64ID: # %bb.0:
69103
; RV64ID-NEXT: fcvt.d.wu fa0, a0
70104
; RV64ID-NEXT: ret
105+
;
106+
; RV64IDINX-LABEL: uitofp_aext_i32_to_f64:
107+
; RV64IDINX: # %bb.0:
108+
; RV64IDINX-NEXT: fcvt.d.wu a0, a0
109+
; RV64IDINX-NEXT: ret
71110
%1 = uitofp i32 %a to double
72111
ret double %1
73112
}
@@ -77,6 +116,11 @@ define double @uitofp_sext_i32_to_f64(i32 signext %a) nounwind {
77116
; RV64ID: # %bb.0:
78117
; RV64ID-NEXT: fcvt.d.wu fa0, a0
79118
; RV64ID-NEXT: ret
119+
;
120+
; RV64IDINX-LABEL: uitofp_sext_i32_to_f64:
121+
; RV64IDINX: # %bb.0:
122+
; RV64IDINX-NEXT: fcvt.d.wu a0, a0
123+
; RV64IDINX-NEXT: ret
80124
%1 = uitofp i32 %a to double
81125
ret double %1
82126
}
@@ -86,6 +130,11 @@ define double @uitofp_zext_i32_to_f64(i32 zeroext %a) nounwind {
86130
; RV64ID: # %bb.0:
87131
; RV64ID-NEXT: fcvt.d.wu fa0, a0
88132
; RV64ID-NEXT: ret
133+
;
134+
; RV64IDINX-LABEL: uitofp_zext_i32_to_f64:
135+
; RV64IDINX: # %bb.0:
136+
; RV64IDINX-NEXT: fcvt.d.wu a0, a0
137+
; RV64IDINX-NEXT: ret
89138
%1 = uitofp i32 %a to double
90139
ret double %1
91140
}
@@ -95,6 +144,11 @@ define double @sitofp_aext_i32_to_f64(i32 %a) nounwind {
95144
; RV64ID: # %bb.0:
96145
; RV64ID-NEXT: fcvt.d.w fa0, a0
97146
; RV64ID-NEXT: ret
147+
;
148+
; RV64IDINX-LABEL: sitofp_aext_i32_to_f64:
149+
; RV64IDINX: # %bb.0:
150+
; RV64IDINX-NEXT: fcvt.d.w a0, a0
151+
; RV64IDINX-NEXT: ret
98152
%1 = sitofp i32 %a to double
99153
ret double %1
100154
}
@@ -104,6 +158,11 @@ define double @sitofp_sext_i32_to_f64(i32 signext %a) nounwind {
104158
; RV64ID: # %bb.0:
105159
; RV64ID-NEXT: fcvt.d.w fa0, a0
106160
; RV64ID-NEXT: ret
161+
;
162+
; RV64IDINX-LABEL: sitofp_sext_i32_to_f64:
163+
; RV64IDINX: # %bb.0:
164+
; RV64IDINX-NEXT: fcvt.d.w a0, a0
165+
; RV64IDINX-NEXT: ret
107166
%1 = sitofp i32 %a to double
108167
ret double %1
109168
}
@@ -113,6 +172,11 @@ define double @sitofp_zext_i32_to_f64(i32 zeroext %a) nounwind {
113172
; RV64ID: # %bb.0:
114173
; RV64ID-NEXT: fcvt.d.w fa0, a0
115174
; RV64ID-NEXT: ret
175+
;
176+
; RV64IDINX-LABEL: sitofp_zext_i32_to_f64:
177+
; RV64IDINX: # %bb.0:
178+
; RV64IDINX-NEXT: fcvt.d.w a0, a0
179+
; RV64IDINX-NEXT: ret
116180
%1 = sitofp i32 %a to double
117181
ret double %1
118182
}

0 commit comments

Comments
 (0)