From 1f058538e0e4ae2b060d844a4a7b76923f57b17f Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Mon, 23 Sep 2019 05:35:15 +0000 Subject: [PATCH] [X86] Add 32-bit command line to avx512f-vec-test-testn.ll llvm-svn: 372542 --- llvm/test/CodeGen/X86/avx512f-vec-test-testn.ll | 115 ++++++++++++++++-------- 1 file changed, 76 insertions(+), 39 deletions(-) diff --git a/llvm/test/CodeGen/X86/avx512f-vec-test-testn.ll b/llvm/test/CodeGen/X86/avx512f-vec-test-testn.ll index 5b1c69b..99edd83 100644 --- a/llvm/test/CodeGen/X86/avx512f-vec-test-testn.ll +++ b/llvm/test/CodeGen/X86/avx512f-vec-test-testn.ll @@ -1,5 +1,6 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py -; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512f | FileCheck %s +; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512f | FileCheck %s --check-prefix=CHECK --check-prefix=X64 +; RUN: llc < %s -mtriple=i686-unknown-unknown -mattr=+avx512f | FileCheck %s --check-prefix=CHECK --check-prefix=X86 ; Function Attrs: norecurse nounwind readnone define zeroext i8 @TEST_mm512_test_epi64_mask(<8 x i64> %__A, <8 x i64> %__B) local_unnamed_addr #0 { @@ -9,7 +10,7 @@ define zeroext i8 @TEST_mm512_test_epi64_mask(<8 x i64> %__A, <8 x i64> %__B) lo ; CHECK-NEXT: kmovw %k0, %eax ; CHECK-NEXT: # kill: def $al killed $al killed $eax ; CHECK-NEXT: vzeroupper -; CHECK-NEXT: retq +; CHECK-NEXT: ret{{[l|q]}} entry: %and.i.i = and <8 x i64> %__B, %__A %0 = icmp ne <8 x i64> %and.i.i, zeroinitializer @@ -25,7 +26,7 @@ define zeroext i8 @TEST_mm512_test_epi64_mask_2(<8 x i64> %__A, <8 x i64> %__B) ; CHECK-NEXT: kmovw %k0, %eax ; CHECK-NEXT: # kill: def $al killed $al killed $eax ; CHECK-NEXT: vzeroupper -; CHECK-NEXT: retq +; CHECK-NEXT: ret{{[l|q]}} entry: %and.i.i = and <8 x i64> %__B, %__A %0 = icmp ne <8 x i64> zeroinitializer, %and.i.i @@ -41,7 +42,7 @@ define zeroext i16 @TEST_mm512_test_epi32_mask(<8 x i64> %__A, <8 x i64> %__B) l ; CHECK-NEXT: kmovw %k0, %eax ; CHECK-NEXT: # kill: def $ax killed $ax killed $eax ; CHECK-NEXT: vzeroupper -; CHECK-NEXT: retq +; CHECK-NEXT: ret{{[l|q]}} entry: %and.i.i = and <8 x i64> %__B, %__A %0 = bitcast <8 x i64> %and.i.i to <16 x i32> @@ -52,14 +53,23 @@ entry: ; Function Attrs: norecurse nounwind readnone define zeroext i8 @TEST_mm512_mask_test_epi64_mask(i8 %__U, <8 x i64> %__A, <8 x i64> %__B) local_unnamed_addr #0 { -; CHECK-LABEL: TEST_mm512_mask_test_epi64_mask: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vptestmq %zmm0, %zmm1, %k0 -; CHECK-NEXT: kmovw %k0, %eax -; CHECK-NEXT: andb %dil, %al -; CHECK-NEXT: # kill: def $al killed $al killed $eax -; CHECK-NEXT: vzeroupper -; CHECK-NEXT: retq +; X64-LABEL: TEST_mm512_mask_test_epi64_mask: +; X64: # %bb.0: # %entry +; X64-NEXT: vptestmq %zmm0, %zmm1, %k0 +; X64-NEXT: kmovw %k0, %eax +; X64-NEXT: andb %dil, %al +; X64-NEXT: # kill: def $al killed $al killed $eax +; X64-NEXT: vzeroupper +; X64-NEXT: retq +; +; X86-LABEL: TEST_mm512_mask_test_epi64_mask: +; X86: # %bb.0: # %entry +; X86-NEXT: vptestmq %zmm0, %zmm1, %k0 +; X86-NEXT: kmovw %k0, %eax +; X86-NEXT: andb {{[0-9]+}}(%esp), %al +; X86-NEXT: # kill: def $al killed $al killed $eax +; X86-NEXT: vzeroupper +; X86-NEXT: retl entry: %and.i.i = and <8 x i64> %__B, %__A %0 = icmp ne <8 x i64> %and.i.i, zeroinitializer @@ -71,14 +81,23 @@ entry: ; Function Attrs: norecurse nounwind readnone define zeroext i16 @TEST_mm512_mask_test_epi32_mask(i16 %__U, <8 x i64> %__A, <8 x i64> %__B) local_unnamed_addr #0 { -; CHECK-LABEL: TEST_mm512_mask_test_epi32_mask: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vptestmd %zmm0, %zmm1, %k0 -; CHECK-NEXT: kmovw %k0, %eax -; CHECK-NEXT: andl %edi, %eax -; CHECK-NEXT: # kill: def $ax killed $ax killed $eax -; CHECK-NEXT: vzeroupper -; CHECK-NEXT: retq +; X64-LABEL: TEST_mm512_mask_test_epi32_mask: +; X64: # %bb.0: # %entry +; X64-NEXT: vptestmd %zmm0, %zmm1, %k0 +; X64-NEXT: kmovw %k0, %eax +; X64-NEXT: andl %edi, %eax +; X64-NEXT: # kill: def $ax killed $ax killed $eax +; X64-NEXT: vzeroupper +; X64-NEXT: retq +; +; X86-LABEL: TEST_mm512_mask_test_epi32_mask: +; X86: # %bb.0: # %entry +; X86-NEXT: vptestmd %zmm0, %zmm1, %k0 +; X86-NEXT: kmovw %k0, %eax +; X86-NEXT: andw {{[0-9]+}}(%esp), %ax +; X86-NEXT: # kill: def $ax killed $ax killed $eax +; X86-NEXT: vzeroupper +; X86-NEXT: retl entry: %and.i.i = and <8 x i64> %__B, %__A %0 = bitcast <8 x i64> %and.i.i to <16 x i32> @@ -97,7 +116,7 @@ define zeroext i8 @TEST_mm512_testn_epi64_mask(<8 x i64> %__A, <8 x i64> %__B) l ; CHECK-NEXT: kmovw %k0, %eax ; CHECK-NEXT: # kill: def $al killed $al killed $eax ; CHECK-NEXT: vzeroupper -; CHECK-NEXT: retq +; CHECK-NEXT: ret{{[l|q]}} entry: %and.i.i = and <8 x i64> %__B, %__A %0 = icmp eq <8 x i64> %and.i.i, zeroinitializer @@ -113,7 +132,7 @@ define zeroext i8 @TEST_mm512_testn_epi64_mask_2(<8 x i64> %__A, <8 x i64> %__B) ; CHECK-NEXT: kmovw %k0, %eax ; CHECK-NEXT: # kill: def $al killed $al killed $eax ; CHECK-NEXT: vzeroupper -; CHECK-NEXT: retq +; CHECK-NEXT: ret{{[l|q]}} entry: %and.i.i = and <8 x i64> %__B, %__A %0 = icmp eq <8 x i64> zeroinitializer, %and.i.i @@ -129,7 +148,7 @@ define zeroext i16 @TEST_mm512_testn_epi32_mask(<8 x i64> %__A, <8 x i64> %__B) ; CHECK-NEXT: kmovw %k0, %eax ; CHECK-NEXT: # kill: def $ax killed $ax killed $eax ; CHECK-NEXT: vzeroupper -; CHECK-NEXT: retq +; CHECK-NEXT: ret{{[l|q]}} entry: %and.i.i = and <8 x i64> %__B, %__A %0 = bitcast <8 x i64> %and.i.i to <16 x i32> @@ -140,14 +159,23 @@ entry: ; Function Attrs: norecurse nounwind readnone define zeroext i8 @TEST_mm512_mask_testn_epi64_mask(i8 %__U, <8 x i64> %__A, <8 x i64> %__B) local_unnamed_addr #0 { -; CHECK-LABEL: TEST_mm512_mask_testn_epi64_mask: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vptestnmq %zmm0, %zmm1, %k0 -; CHECK-NEXT: kmovw %k0, %eax -; CHECK-NEXT: andb %dil, %al -; CHECK-NEXT: # kill: def $al killed $al killed $eax -; CHECK-NEXT: vzeroupper -; CHECK-NEXT: retq +; X64-LABEL: TEST_mm512_mask_testn_epi64_mask: +; X64: # %bb.0: # %entry +; X64-NEXT: vptestnmq %zmm0, %zmm1, %k0 +; X64-NEXT: kmovw %k0, %eax +; X64-NEXT: andb %dil, %al +; X64-NEXT: # kill: def $al killed $al killed $eax +; X64-NEXT: vzeroupper +; X64-NEXT: retq +; +; X86-LABEL: TEST_mm512_mask_testn_epi64_mask: +; X86: # %bb.0: # %entry +; X86-NEXT: vptestnmq %zmm0, %zmm1, %k0 +; X86-NEXT: kmovw %k0, %eax +; X86-NEXT: andb {{[0-9]+}}(%esp), %al +; X86-NEXT: # kill: def $al killed $al killed $eax +; X86-NEXT: vzeroupper +; X86-NEXT: retl entry: %and.i.i = and <8 x i64> %__B, %__A %0 = icmp eq <8 x i64> %and.i.i, zeroinitializer @@ -159,14 +187,23 @@ entry: ; Function Attrs: norecurse nounwind readnone define zeroext i16 @TEST_mm512_mask_testn_epi32_mask(i16 %__U, <8 x i64> %__A, <8 x i64> %__B) local_unnamed_addr #0 { -; CHECK-LABEL: TEST_mm512_mask_testn_epi32_mask: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vptestnmd %zmm0, %zmm1, %k0 -; CHECK-NEXT: kmovw %k0, %eax -; CHECK-NEXT: andl %edi, %eax -; CHECK-NEXT: # kill: def $ax killed $ax killed $eax -; CHECK-NEXT: vzeroupper -; CHECK-NEXT: retq +; X64-LABEL: TEST_mm512_mask_testn_epi32_mask: +; X64: # %bb.0: # %entry +; X64-NEXT: vptestnmd %zmm0, %zmm1, %k0 +; X64-NEXT: kmovw %k0, %eax +; X64-NEXT: andl %edi, %eax +; X64-NEXT: # kill: def $ax killed $ax killed $eax +; X64-NEXT: vzeroupper +; X64-NEXT: retq +; +; X86-LABEL: TEST_mm512_mask_testn_epi32_mask: +; X86: # %bb.0: # %entry +; X86-NEXT: vptestnmd %zmm0, %zmm1, %k0 +; X86-NEXT: kmovw %k0, %eax +; X86-NEXT: andw {{[0-9]+}}(%esp), %ax +; X86-NEXT: # kill: def $ax killed $ax killed $eax +; X86-NEXT: vzeroupper +; X86-NEXT: retl entry: %and.i.i = and <8 x i64> %__B, %__A %0 = bitcast <8 x i64> %and.i.i to <16 x i32> -- 2.7.4