@@ -235,15 +235,23 @@ define void @nearbyint_test(float %0, double %1, <8 x float> %2, <8 x double> %3
235235 ret void
236236}
237237; CHECK-LABEL: llvm.func @lround_test
238- define void @lround_test (float %0 , double %1 ) {
238+ define void @lround_test (float %0 , double %1 , < 2 x float > %2 , < 2 x double > %3 ) {
239239 ; CHECK: llvm.intr.lround(%{{.*}}) : (f32) -> i32
240- %3 = call i32 @llvm.lround.i32.f32 (float %0 )
240+ %5 = call i32 @llvm.lround.i32.f32 (float %0 )
241241 ; CHECK: llvm.intr.lround(%{{.*}}) : (f32) -> i64
242- %4 = call i64 @llvm.lround.i64.f32 (float %0 )
242+ %6 = call i64 @llvm.lround.i64.f32 (float %0 )
243243 ; CHECK: llvm.intr.lround(%{{.*}}) : (f64) -> i32
244- %5 = call i32 @llvm.lround.i32.f64 (double %1 )
244+ %7 = call i32 @llvm.lround.i32.f64 (double %1 )
245245 ; CHECK: llvm.intr.lround(%{{.*}}) : (f64) -> i64
246- %6 = call i64 @llvm.lround.i64.f64 (double %1 )
246+ %8 = call i64 @llvm.lround.i64.f64 (double %1 )
247+ ; CHECK: llvm.intr.lround(%{{.*}}) : (vector<2xf32>) -> vector<2xi32>
248+ %9 = call <2 x i32 > @llvm.lround.v2i32.v2f32 (<2 x float > %2 )
249+ ; CHECK: llvm.intr.lround(%{{.*}}) : (vector<2xf64>) -> vector<2xi32>
250+ %10 = call <2 x i32 > @llvm.lround.v2i32.v2f64 (<2 x double > %3 )
251+ ; CHECK: llvm.intr.lround(%{{.*}}) : (vector<2xf32>) -> vector<2xi64>
252+ %11 = call <2 x i64 > @llvm.lround.v2i64.v2f32 (<2 x float > %2 )
253+ ; CHECK: llvm.intr.lround(%{{.*}}) : (vector<2xf64>) -> vector<2xi64>
254+ %12 = call <2 x i64 > @llvm.lround.v2i64.v2f64 (<2 x double > %3 )
247255 ret void
248256}
249257; CHECK-LABEL: llvm.func @llround_test
@@ -255,23 +263,35 @@ define void @llround_test(float %0, double %1) {
255263 ret void
256264}
257265; CHECK-LABEL: llvm.func @lrint_test
258- define void @lrint_test (float %0 , double %1 ) {
266+ define void @lrint_test (float %0 , double %1 , < 2 x float > %2 , < 2 x double > %3 ) {
259267 ; CHECK: llvm.intr.lrint(%{{.*}}) : (f32) -> i32
260- %3 = call i32 @llvm.lrint.i32.f32 (float %0 )
268+ %5 = call i32 @llvm.lrint.i32.f32 (float %0 )
261269 ; CHECK: llvm.intr.lrint(%{{.*}}) : (f32) -> i64
262- %4 = call i64 @llvm.lrint.i64.f32 (float %0 )
270+ %6 = call i64 @llvm.lrint.i64.f32 (float %0 )
263271 ; CHECK: llvm.intr.lrint(%{{.*}}) : (f64) -> i32
264- %5 = call i32 @llvm.lrint.i32.f64 (double %1 )
272+ %7 = call i32 @llvm.lrint.i32.f64 (double %1 )
265273 ; CHECK: llvm.intr.lrint(%{{.*}}) : (f64) -> i64
266- %6 = call i64 @llvm.lrint.i64.f64 (double %1 )
274+ %8 = call i64 @llvm.lrint.i64.f64 (double %1 )
275+ ; CHECK: llvm.intr.lrint(%{{.*}}) : (vector<2xf32>) -> vector<2xi32>
276+ %9 = call <2 x i32 > @llvm.lrint.v2i32.v2f32 (<2 x float > %2 )
277+ ; CHECK: llvm.intr.lrint(%{{.*}}) : (vector<2xf64>) -> vector<2xi32>
278+ %10 = call <2 x i32 > @llvm.lrint.v2i32.v2f64 (<2 x double > %3 )
279+ ; CHECK: llvm.intr.lrint(%{{.*}}) : (vector<2xf32>) -> vector<2xi64>
280+ %11 = call <2 x i64 > @llvm.lrint.v2i64.v2f32 (<2 x float > %2 )
281+ ; CHECK: llvm.intr.lrint(%{{.*}}) : (vector<2xf64>) -> vector<2xi64>
282+ %12 = call <2 x i64 > @llvm.lrint.v2i64.v2f64 (<2 x double > %3 )
267283 ret void
268284}
269285; CHECK-LABEL: llvm.func @llrint_test
270- define void @llrint_test (float %0 , double %1 ) {
286+ define void @llrint_test (float %0 , double %1 , < 2 x float > %2 , < 2 x double > %3 ) {
271287 ; CHECK: llvm.intr.llrint(%{{.*}}) : (f32) -> i64
272- %3 = call i64 @llvm.llrint.i64.f32 (float %0 )
288+ %5 = call i64 @llvm.llrint.i64.f32 (float %0 )
273289 ; CHECK: llvm.intr.llrint(%{{.*}}) : (f64) -> i64
274- %4 = call i64 @llvm.llrint.i64.f64 (double %1 )
290+ %6 = call i64 @llvm.llrint.i64.f64 (double %1 )
291+ ; CHECK: llvm.intr.llrint(%{{.*}}) : (vector<2xf32>) -> vector<2xi64>
292+ %7 = call <2 x i64 > @llvm.llrint.v2i64.v2f32 (<2 x float > %2 )
293+ ; CHECK: llvm.intr.llrint(%{{.*}}) : (vector<2xf64>) -> vector<2xi64>
294+ %8 = call <2 x i64 > @llvm.llrint.v2i64.v2f64 (<2 x double > %3 )
275295 ret void
276296}
277297
0 commit comments