diff options
Diffstat (limited to 'llvm/test/CodeGen/X86/avx512-mask-op.ll')
| -rw-r--r-- | llvm/test/CodeGen/X86/avx512-mask-op.ll | 51 |
1 files changed, 50 insertions, 1 deletions
diff --git a/llvm/test/CodeGen/X86/avx512-mask-op.ll b/llvm/test/CodeGen/X86/avx512-mask-op.ll index 677524a9565..5f3588d68d0 100644 --- a/llvm/test/CodeGen/X86/avx512-mask-op.ll +++ b/llvm/test/CodeGen/X86/avx512-mask-op.ll @@ -157,4 +157,53 @@ define <2 x i64> @test5(<2 x i64> %x, <2 x i64> %y, <2 x i64> %x1, <2 x i64> %y1 %res = icmp slt <2 x i1>%x_gt_y, %x1_gt_y1 %resse = sext <2 x i1>%res to <2 x i64> ret <2 x i64> %resse -}
\ No newline at end of file +} + +; KNL-LABEL: test6 +; KNL: vpmovsxbd +; KNL: vpandd +; KNL: kmovw %eax, %k1 +; KNL vptestmd {{.*}}, %k0 {%k1} + +; SKX-LABEL: test6 +; SKX: vpmovb2m +; SKX: kmovw %eax, %k1 +; SKX: kandw +define void @test6(<16 x i1> %mask) { +allocas: + %a= and <16 x i1> %mask, <i1 true, i1 false, i1 true, i1 false, i1 true, i1 false, i1 true, i1 false, i1 true, i1 false, i1 true, i1 false, i1 true, i1 false, i1 true, i1 false> + %b = bitcast <16 x i1> %a to i16 + %c = icmp eq i16 %b, 0 + br i1 %c, label %true, label %false + +true: + ret void + +false: + ret void +} + +; KNL-LABEL: test7 +; KNL: vpmovsxwq +; KNL: vpandq +; KNL: vptestmq {{.*}}, %k0 +; KNL: korw + +; SKX-LABEL: test7 +; SKX: vpmovw2m +; SKX: kmovw %eax, %k1 +; SKX: korb + +define void @test7(<8 x i1> %mask) { +allocas: + %a= or <8 x i1> %mask, <i1 true, i1 false, i1 true, i1 false, i1 true, i1 false, i1 true, i1 false> + %b = bitcast <8 x i1> %a to i8 + %c = icmp eq i8 %b, 0 + br i1 %c, label %true, label %false + +true: + ret void + +false: + ret void +} |

