From: Simon Pilgrim Date: Wed, 16 Nov 2016 14:24:04 +0000 (+0000) Subject: [X86][AVX512] Added some mask/maskz tests for sitofp/uitofp i32 to f64 X-Git-Tag: llvmorg-4.0.0-rc1~4419 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9e355bc5bb4be8cb49f083b71d0542de386e0b13;p=platform%2Fupstream%2Fllvm.git [X86][AVX512] Added some mask/maskz tests for sitofp/uitofp i32 to f64 llvm-svn: 287106 --- diff --git a/llvm/test/CodeGen/X86/avx512-cvt.ll b/llvm/test/CodeGen/X86/avx512-cvt.ll index 165ffb2..85dd492 100644 --- a/llvm/test/CodeGen/X86/avx512-cvt.ll +++ b/llvm/test/CodeGen/X86/avx512-cvt.ll @@ -350,6 +350,40 @@ define <8 x double> @sitof64(<8 x i32> %a) { %b = sitofp <8 x i32> %a to <8 x double> ret <8 x double> %b } +define <8 x double> @sitof64_mask(<8 x double> %a, <8 x i32> %b, i8 %c) nounwind { +; KNL-LABEL: sitof64_mask: +; KNL: ## BB#0: +; KNL-NEXT: kmovw %edi, %k1 +; KNL-NEXT: vcvtdq2pd %ymm1, %zmm0 {%k1} +; KNL-NEXT: retq +; +; SKX-LABEL: sitof64_mask: +; SKX: ## BB#0: +; SKX-NEXT: kmovb %edi, %k1 +; SKX-NEXT: vcvtdq2pd %ymm1, %zmm0 {%k1} +; SKX-NEXT: retq + %1 = bitcast i8 %c to <8 x i1> + %2 = sitofp <8 x i32> %b to <8 x double> + %3 = select <8 x i1> %1, <8 x double> %2, <8 x double> %a + ret <8 x double> %3 +} +define <8 x double> @sitof64_maskz(<8 x i32> %a, i8 %b) nounwind { +; KNL-LABEL: sitof64_maskz: +; KNL: ## BB#0: +; KNL-NEXT: kmovw %edi, %k1 +; KNL-NEXT: vcvtdq2pd %ymm0, %zmm0 {%k1} {z} +; KNL-NEXT: retq +; +; SKX-LABEL: sitof64_maskz: +; SKX: ## BB#0: +; SKX-NEXT: kmovb %edi, %k1 +; SKX-NEXT: vcvtdq2pd %ymm0, %zmm0 {%k1} {z} +; SKX-NEXT: retq + %1 = bitcast i8 %b to <8 x i1> + %2 = sitofp <8 x i32> %a to <8 x double> + %3 = select <8 x i1> %1, <8 x double> %2, <8 x double> zeroinitializer + ret <8 x double> %3 +} define <8 x i32> @fptosi01(<8 x double> %a) { ; ALL-LABEL: fptosi01: @@ -575,6 +609,40 @@ define <16 x double> @uitof64(<16 x i32> %a) nounwind { %b = uitofp <16 x i32> %a to <16 x double> ret <16 x double> %b } +define <8 x double> @uitof64_mask(<8 x double> %a, <8 x i32> %b, i8 %c) nounwind { +; KNL-LABEL: uitof64_mask: +; KNL: ## BB#0: +; KNL-NEXT: kmovw %edi, %k1 +; KNL-NEXT: vcvtudq2pd %ymm1, %zmm0 {%k1} +; KNL-NEXT: retq +; +; SKX-LABEL: uitof64_mask: +; SKX: ## BB#0: +; SKX-NEXT: kmovb %edi, %k1 +; SKX-NEXT: vcvtudq2pd %ymm1, %zmm0 {%k1} +; SKX-NEXT: retq + %1 = bitcast i8 %c to <8 x i1> + %2 = uitofp <8 x i32> %b to <8 x double> + %3 = select <8 x i1> %1, <8 x double> %2, <8 x double> %a + ret <8 x double> %3 +} +define <8 x double> @uitof64_maskz(<8 x i32> %a, i8 %b) nounwind { +; KNL-LABEL: uitof64_maskz: +; KNL: ## BB#0: +; KNL-NEXT: kmovw %edi, %k1 +; KNL-NEXT: vcvtudq2pd %ymm0, %zmm0 {%k1} {z} +; KNL-NEXT: retq +; +; SKX-LABEL: uitof64_maskz: +; SKX: ## BB#0: +; SKX-NEXT: kmovb %edi, %k1 +; SKX-NEXT: vcvtudq2pd %ymm0, %zmm0 {%k1} {z} +; SKX-NEXT: retq + %1 = bitcast i8 %b to <8 x i1> + %2 = uitofp <8 x i32> %a to <8 x double> + %3 = select <8 x i1> %1, <8 x double> %2, <8 x double> zeroinitializer + ret <8 x double> %3 +} define <4 x double> @uitof64_256(<4 x i32> %a) nounwind { ; KNL-LABEL: uitof64_256: