@@ -9,6 +9,7 @@ declare <4 x i32> @llvm.x86.avx512.mask.cvttps2udq.128(<4 x float>, <4 x i32>, i
9
9
declare <8 x i32 > @llvm.x86.avx512.mask.cvttps2udq.256 (<8 x float >, <8 x i32 >, i8 )
10
10
declare <16 x i32 > @llvm.x86.avx512.mask.cvttps2udq.512 (<16 x float >, <16 x i32 >, i16 , i32 )
11
11
declare <4 x i32 > @llvm.x86.avx512.mask.cvttpd2udq.256 (<4 x double >, <4 x i32 >, i8 )
12
+ declare <8 x i32 > @llvm.x86.avx512.mask.cvttpd2dq.512 (<8 x double >, <8 x i32 >, i8 , i32 )
12
13
declare <8 x i32 > @llvm.x86.avx512.mask.cvttpd2udq.512 (<8 x double >, <8 x i32 >, i8 , i32 )
13
14
declare <4 x i64 > @llvm.x86.avx512.mask.cvttps2qq.256 (<4 x float >, <4 x i64 >, i8 )
14
15
declare <8 x i64 > @llvm.x86.avx512.mask.cvttps2qq.512 (<8 x float >, <8 x i64 >, i8 , i32 )
@@ -126,6 +127,27 @@ define <4 x double> @double_to_uint_to_double_reg_v4f64(<4 x double> %x) {
126
127
ret <4 x double > %uitofp
127
128
}
128
129
130
+ define <8 x double > @double_to_sint_to_double_mem_v8f64 (<8 x double >* %p ) {
131
+ ; CHECK-LABEL: double_to_sint_to_double_mem_v8f64:
132
+ ; CHECK: # %bb.0:
133
+ ; CHECK-NEXT: vrndscalepd $11, (%rdi), %zmm0
134
+ ; CHECK-NEXT: retq
135
+ %x = load <8 x double >, <8 x double >* %p
136
+ %fptosi = tail call <8 x i32 > @llvm.x86.avx512.mask.cvttpd2dq.512 (<8 x double > %x , <8 x i32 > undef , i8 -1 , i32 4 )
137
+ %sitofp = sitofp <8 x i32 > %fptosi to <8 x double >
138
+ ret <8 x double > %sitofp
139
+ }
140
+
141
+ define <8 x double > @double_to_sint_to_double_reg_v8f64 (<8 x double > %x ) {
142
+ ; CHECK-LABEL: double_to_sint_to_double_reg_v8f64:
143
+ ; CHECK: # %bb.0:
144
+ ; CHECK-NEXT: vrndscalepd $11, %zmm0, %zmm0
145
+ ; CHECK-NEXT: retq
146
+ %fptosi = tail call <8 x i32 > @llvm.x86.avx512.mask.cvttpd2dq.512 (<8 x double > %x , <8 x i32 > undef , i8 -1 , i32 4 )
147
+ %sitofp = sitofp <8 x i32 > %fptosi to <8 x double >
148
+ ret <8 x double > %sitofp
149
+ }
150
+
129
151
define <8 x double > @double_to_uint_to_double_mem_v8f64 (<8 x double >* %p ) {
130
152
; CHECK-LABEL: double_to_uint_to_double_mem_v8f64:
131
153
; CHECK: # %bb.0:
0 commit comments