forked from OSchip/llvm-project
Add pattern for unsigned v4i32->v4f64 convert on AVX512.
llvm-svn: 211164
This commit is contained in:
parent
ee73cc5894
commit
f10a7c963b
|
@ -3174,6 +3174,10 @@ def : Pat<(v4f32 (uint_to_fp (v4i32 VR128X:$src1))),
|
|||
(EXTRACT_SUBREG (v16f32 (VCVTUDQ2PSZrr
|
||||
(v16i32 (SUBREG_TO_REG (i32 0), VR128X:$src1, sub_xmm)))), sub_xmm)>;
|
||||
|
||||
def : Pat<(v4f64 (uint_to_fp (v4i32 VR128X:$src1))),
|
||||
(EXTRACT_SUBREG (v8f64 (VCVTUDQ2PDZrr
|
||||
(v8i32 (SUBREG_TO_REG (i32 0), VR128X:$src1, sub_xmm)))), sub_ymm)>;
|
||||
|
||||
def : Pat<(v16f32 (int_x86_avx512_mask_cvtdq2ps_512 (v16i32 VR512:$src),
|
||||
(bc_v16f32 (v16i32 immAllZerosV)), (i16 -1), imm:$rc)),
|
||||
(VCVTDQ2PSZrrb VR512:$src, imm:$rc)>;
|
||||
|
|
|
@ -192,6 +192,14 @@ define <16 x double> @uitof64(<16 x i32> %a) nounwind {
|
|||
ret <16 x double> %b
|
||||
}
|
||||
|
||||
; CHECK-LABEL: uitof64_256
|
||||
; CHECK: vcvtudq2pd
|
||||
; CHECK: ret
|
||||
define <4 x double> @uitof64_256(<4 x i32> %a) nounwind {
|
||||
%b = uitofp <4 x i32> %a to <4 x double>
|
||||
ret <4 x double> %b
|
||||
}
|
||||
|
||||
; CHECK-LABEL: uitof32
|
||||
; CHECK: vcvtudq2ps
|
||||
; CHECK: ret
|
||||
|
|
Loading…
Reference in New Issue