Skip to content

Commit d170e8d

Browse files
committed
Add vector tests
1 parent 0be125e commit d170e8d

File tree

2 files changed

+45
-0
lines changed

2 files changed

+45
-0
lines changed

llvm/test/CodeGen/X86/vector-llrint.ll

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -673,3 +673,23 @@ define <8 x i64> @llrint_v8i64_v8f64(<8 x double> %x) {
673673
ret <8 x i64> %a
674674
}
675675
declare <8 x i64> @llvm.llrint.v8i64.v8f64(<8 x double>)
676+
677+
define <4 x i32> @llrint_v4i32_v4f32(<4 x float> %x) {
678+
; SSE-LABEL: llrint_v4i32_v4f32:
679+
; SSE: # %bb.0:
680+
; SSE-NEXT: cvtps2dq %xmm0, %xmm0
681+
; SSE-NEXT: retq
682+
;
683+
; AVX-LABEL: llrint_v4i32_v4f32:
684+
; AVX: # %bb.0:
685+
; AVX-NEXT: vcvtps2dq %xmm0, %xmm0
686+
; AVX-NEXT: retq
687+
;
688+
; AVX512DQ-LABEL: llrint_v4i32_v4f32:
689+
; AVX512DQ: # %bb.0:
690+
; AVX512DQ-NEXT: vcvtps2dq %xmm0, %xmm0
691+
; AVX512DQ-NEXT: retq
692+
%a = call <4 x i64> @llvm.llrint.v4i64.v4f32(<4 x float> %x)
693+
%b = trunc nsw <4 x i64> %a to <4 x i32>
694+
ret <4 x i32> %b
695+
}

llvm/test/CodeGen/X86/vector-lrint.ll

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -537,3 +537,28 @@ define <8 x iXLen> @lrint_v8f64(<8 x double> %x) {
537537
ret <8 x iXLen> %a
538538
}
539539
declare <8 x iXLen> @llvm.lrint.v8iXLen.v8f64(<8 x double>)
540+
541+
define <4 x i32> @llrint_v4i32_v4f32(<4 x float> %x) {
542+
; X86-SSE2-LABEL: llrint_v4i32_v4f32:
543+
; X86-SSE2: # %bb.0:
544+
; X86-SSE2-NEXT: cvtps2dq %xmm0, %xmm0
545+
; X86-SSE2-NEXT: retl
546+
;
547+
; X86-AVX-LABEL: llrint_v4i32_v4f32:
548+
; X86-AVX: # %bb.0:
549+
; X86-AVX-NEXT: vcvtps2dq %xmm0, %xmm0
550+
; X86-AVX-NEXT: retl
551+
;
552+
; X64-AVX-i32-LABEL: llrint_v4i32_v4f32:
553+
; X64-AVX-i32: # %bb.0:
554+
; X64-AVX-i32-NEXT: vcvtps2dq %xmm0, %xmm0
555+
; X64-AVX-i32-NEXT: retq
556+
;
557+
; X64-AVX-i64-LABEL: llrint_v4i32_v4f32:
558+
; X64-AVX-i64: # %bb.0:
559+
; X64-AVX-i64-NEXT: vcvtps2dq %xmm0, %xmm0
560+
; X64-AVX-i64-NEXT: retq
561+
%a = call <4 x i64> @llvm.lrint.v4i64.v4f32(<4 x float> %x)
562+
%b = trunc nuw <4 x i64> %a to <4 x i32>
563+
ret <4 x i32> %b
564+
}

0 commit comments

Comments
 (0)