brintos

brintos / llvm-project-archived public Read only

0
0
Text · 17.0 KiB · ecb76b3 Raw
454 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512bw,+avx512vl | FileCheck %s --check-prefix=AVX512BWVL3; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512bw | FileCheck %s --check-prefix=AVX512BW4 5; Function Attrs: norecurse nounwind readnone6define zeroext i16 @TEST_mm_test_epi8_mask(<2 x i64> %__A, <2 x i64> %__B) local_unnamed_addr #0 {7; AVX512BWVL-LABEL: TEST_mm_test_epi8_mask:8; AVX512BWVL:       # %bb.0: # %entry9; AVX512BWVL-NEXT:    vptestmb %xmm0, %xmm1, %k010; AVX512BWVL-NEXT:    kmovd %k0, %eax11; AVX512BWVL-NEXT:    # kill: def $ax killed $ax killed $eax12; AVX512BWVL-NEXT:    retq13;14; AVX512BW-LABEL: TEST_mm_test_epi8_mask:15; AVX512BW:       # %bb.0: # %entry16; AVX512BW-NEXT:    # kill: def $xmm1 killed $xmm1 def $zmm117; AVX512BW-NEXT:    # kill: def $xmm0 killed $xmm0 def $zmm018; AVX512BW-NEXT:    vptestmb %zmm0, %zmm1, %k019; AVX512BW-NEXT:    kmovd %k0, %eax20; AVX512BW-NEXT:    # kill: def $ax killed $ax killed $eax21; AVX512BW-NEXT:    vzeroupper22; AVX512BW-NEXT:    retq23entry:24  %and.i.i = and <2 x i64> %__B, %__A25  %0 = bitcast <2 x i64> %and.i.i to <16 x i8>26  %1 = icmp ne <16 x i8> %0, zeroinitializer27  %2 = bitcast <16 x i1> %1 to i1628  ret i16 %229}30 31; Function Attrs: norecurse nounwind readnone32define zeroext i16 @TEST_mm_mask_test_epi8_mask(i16 zeroext %__U, <2 x i64> %__A, <2 x i64> %__B) local_unnamed_addr #0 {33; AVX512BWVL-LABEL: TEST_mm_mask_test_epi8_mask:34; AVX512BWVL:       # %bb.0: # %entry35; AVX512BWVL-NEXT:    vptestmb %xmm0, %xmm1, %k036; AVX512BWVL-NEXT:    kmovd %k0, %eax37; AVX512BWVL-NEXT:    andl %edi, %eax38; AVX512BWVL-NEXT:    # kill: def $ax killed $ax killed $eax39; AVX512BWVL-NEXT:    retq40;41; AVX512BW-LABEL: TEST_mm_mask_test_epi8_mask:42; AVX512BW:       # %bb.0: # %entry43; AVX512BW-NEXT:    # kill: def $xmm1 killed $xmm1 def $zmm144; AVX512BW-NEXT:    # kill: def $xmm0 killed $xmm0 def $zmm045; AVX512BW-NEXT:    vptestmb %zmm0, %zmm1, %k046; AVX512BW-NEXT:    kmovd %k0, %eax47; AVX512BW-NEXT:    andl %edi, %eax48; AVX512BW-NEXT:    # kill: def $ax killed $ax killed $eax49; AVX512BW-NEXT:    vzeroupper50; AVX512BW-NEXT:    retq51entry:52  %and.i.i = and <2 x i64> %__B, %__A53  %0 = bitcast <2 x i64> %and.i.i to <16 x i8>54  %1 = icmp ne <16 x i8> %0, zeroinitializer55  %2 = bitcast i16 %__U to <16 x i1>56  %3 = and <16 x i1> %1, %257  %4 = bitcast <16 x i1> %3 to i1658  ret i16 %459}60 61; Function Attrs: norecurse nounwind readnone62define zeroext i8 @TEST_mm_test_epi16_mask(<2 x i64> %__A, <2 x i64> %__B) local_unnamed_addr #0 {63; AVX512BWVL-LABEL: TEST_mm_test_epi16_mask:64; AVX512BWVL:       # %bb.0: # %entry65; AVX512BWVL-NEXT:    vptestmw %xmm0, %xmm1, %k066; AVX512BWVL-NEXT:    kmovd %k0, %eax67; AVX512BWVL-NEXT:    # kill: def $al killed $al killed $eax68; AVX512BWVL-NEXT:    retq69;70; AVX512BW-LABEL: TEST_mm_test_epi16_mask:71; AVX512BW:       # %bb.0: # %entry72; AVX512BW-NEXT:    # kill: def $xmm1 killed $xmm1 def $zmm173; AVX512BW-NEXT:    # kill: def $xmm0 killed $xmm0 def $zmm074; AVX512BW-NEXT:    vptestmw %zmm0, %zmm1, %k075; AVX512BW-NEXT:    kmovd %k0, %eax76; AVX512BW-NEXT:    # kill: def $al killed $al killed $eax77; AVX512BW-NEXT:    vzeroupper78; AVX512BW-NEXT:    retq79entry:80  %and.i.i = and <2 x i64> %__B, %__A81  %0 = bitcast <2 x i64> %and.i.i to <8 x i16>82  %1 = icmp ne <8 x i16> %0, zeroinitializer83  %2 = bitcast <8 x i1> %1 to i884  ret i8 %285}86 87; Function Attrs: norecurse nounwind readnone88define zeroext i8 @TEST_mm_mask_test_epi16_mask(i8 zeroext %__U, <2 x i64> %__A, <2 x i64> %__B) local_unnamed_addr #0 {89; AVX512BWVL-LABEL: TEST_mm_mask_test_epi16_mask:90; AVX512BWVL:       # %bb.0: # %entry91; AVX512BWVL-NEXT:    vptestmw %xmm0, %xmm1, %k092; AVX512BWVL-NEXT:    kmovd %k0, %eax93; AVX512BWVL-NEXT:    andb %dil, %al94; AVX512BWVL-NEXT:    # kill: def $al killed $al killed $eax95; AVX512BWVL-NEXT:    retq96;97; AVX512BW-LABEL: TEST_mm_mask_test_epi16_mask:98; AVX512BW:       # %bb.0: # %entry99; AVX512BW-NEXT:    # kill: def $xmm1 killed $xmm1 def $zmm1100; AVX512BW-NEXT:    # kill: def $xmm0 killed $xmm0 def $zmm0101; AVX512BW-NEXT:    vptestmw %zmm0, %zmm1, %k0102; AVX512BW-NEXT:    kmovd %k0, %eax103; AVX512BW-NEXT:    andb %dil, %al104; AVX512BW-NEXT:    # kill: def $al killed $al killed $eax105; AVX512BW-NEXT:    vzeroupper106; AVX512BW-NEXT:    retq107entry:108  %and.i.i = and <2 x i64> %__B, %__A109  %0 = bitcast <2 x i64> %and.i.i to <8 x i16>110  %1 = icmp ne <8 x i16> %0, zeroinitializer111  %2 = bitcast i8 %__U to <8 x i1>112  %3 = and <8 x i1> %1, %2113  %4 = bitcast <8 x i1> %3 to i8114  ret i8 %4115}116 117; Function Attrs: norecurse nounwind readnone118define zeroext i16 @TEST_mm_testn_epi8_mask(<2 x i64> %__A, <2 x i64> %__B) local_unnamed_addr #0 {119; AVX512BWVL-LABEL: TEST_mm_testn_epi8_mask:120; AVX512BWVL:       # %bb.0: # %entry121; AVX512BWVL-NEXT:    vptestnmb %xmm0, %xmm1, %k0122; AVX512BWVL-NEXT:    kmovd %k0, %eax123; AVX512BWVL-NEXT:    # kill: def $ax killed $ax killed $eax124; AVX512BWVL-NEXT:    retq125;126; AVX512BW-LABEL: TEST_mm_testn_epi8_mask:127; AVX512BW:       # %bb.0: # %entry128; AVX512BW-NEXT:    # kill: def $xmm1 killed $xmm1 def $zmm1129; AVX512BW-NEXT:    # kill: def $xmm0 killed $xmm0 def $zmm0130; AVX512BW-NEXT:    vptestnmb %zmm0, %zmm1, %k0131; AVX512BW-NEXT:    kmovd %k0, %eax132; AVX512BW-NEXT:    # kill: def $ax killed $ax killed $eax133; AVX512BW-NEXT:    vzeroupper134; AVX512BW-NEXT:    retq135entry:136  %and.i.i = and <2 x i64> %__B, %__A137  %0 = bitcast <2 x i64> %and.i.i to <16 x i8>138  %1 = icmp eq <16 x i8> %0, zeroinitializer139  %2 = bitcast <16 x i1> %1 to i16140  ret i16 %2141}142 143; Function Attrs: norecurse nounwind readnone144define zeroext i16 @TEST_mm_mask_testn_epi8_mask(i16 zeroext %__U, <2 x i64> %__A, <2 x i64> %__B) local_unnamed_addr #0 {145; AVX512BWVL-LABEL: TEST_mm_mask_testn_epi8_mask:146; AVX512BWVL:       # %bb.0: # %entry147; AVX512BWVL-NEXT:    vptestnmb %xmm0, %xmm1, %k0148; AVX512BWVL-NEXT:    kmovd %k0, %eax149; AVX512BWVL-NEXT:    andl %edi, %eax150; AVX512BWVL-NEXT:    # kill: def $ax killed $ax killed $eax151; AVX512BWVL-NEXT:    retq152;153; AVX512BW-LABEL: TEST_mm_mask_testn_epi8_mask:154; AVX512BW:       # %bb.0: # %entry155; AVX512BW-NEXT:    # kill: def $xmm1 killed $xmm1 def $zmm1156; AVX512BW-NEXT:    # kill: def $xmm0 killed $xmm0 def $zmm0157; AVX512BW-NEXT:    vptestnmb %zmm0, %zmm1, %k0158; AVX512BW-NEXT:    kmovd %k0, %eax159; AVX512BW-NEXT:    andl %edi, %eax160; AVX512BW-NEXT:    # kill: def $ax killed $ax killed $eax161; AVX512BW-NEXT:    vzeroupper162; AVX512BW-NEXT:    retq163entry:164  %and.i.i = and <2 x i64> %__B, %__A165  %0 = bitcast <2 x i64> %and.i.i to <16 x i8>166  %1 = icmp eq <16 x i8> %0, zeroinitializer167  %2 = bitcast i16 %__U to <16 x i1>168  %3 = and <16 x i1> %1, %2169  %4 = bitcast <16 x i1> %3 to i16170  ret i16 %4171}172 173; Function Attrs: norecurse nounwind readnone174define zeroext i8 @TEST_mm_testn_epi16_mask(<2 x i64> %__A, <2 x i64> %__B) local_unnamed_addr #0 {175; AVX512BWVL-LABEL: TEST_mm_testn_epi16_mask:176; AVX512BWVL:       # %bb.0: # %entry177; AVX512BWVL-NEXT:    vptestnmw %xmm0, %xmm1, %k0178; AVX512BWVL-NEXT:    kmovd %k0, %eax179; AVX512BWVL-NEXT:    # kill: def $al killed $al killed $eax180; AVX512BWVL-NEXT:    retq181;182; AVX512BW-LABEL: TEST_mm_testn_epi16_mask:183; AVX512BW:       # %bb.0: # %entry184; AVX512BW-NEXT:    # kill: def $xmm1 killed $xmm1 def $zmm1185; AVX512BW-NEXT:    # kill: def $xmm0 killed $xmm0 def $zmm0186; AVX512BW-NEXT:    vptestnmw %zmm0, %zmm1, %k0187; AVX512BW-NEXT:    kmovd %k0, %eax188; AVX512BW-NEXT:    # kill: def $al killed $al killed $eax189; AVX512BW-NEXT:    vzeroupper190; AVX512BW-NEXT:    retq191entry:192  %and.i.i = and <2 x i64> %__B, %__A193  %0 = bitcast <2 x i64> %and.i.i to <8 x i16>194  %1 = icmp eq <8 x i16> %0, zeroinitializer195  %2 = bitcast <8 x i1> %1 to i8196  ret i8 %2197}198 199; Function Attrs: norecurse nounwind readnone200define zeroext i8 @TEST_mm_mask_testn_epi16_mask(i8 zeroext %__U, <2 x i64> %__A, <2 x i64> %__B) local_unnamed_addr #0 {201; AVX512BWVL-LABEL: TEST_mm_mask_testn_epi16_mask:202; AVX512BWVL:       # %bb.0: # %entry203; AVX512BWVL-NEXT:    vptestnmw %xmm0, %xmm1, %k0204; AVX512BWVL-NEXT:    kmovd %k0, %eax205; AVX512BWVL-NEXT:    andb %dil, %al206; AVX512BWVL-NEXT:    # kill: def $al killed $al killed $eax207; AVX512BWVL-NEXT:    retq208;209; AVX512BW-LABEL: TEST_mm_mask_testn_epi16_mask:210; AVX512BW:       # %bb.0: # %entry211; AVX512BW-NEXT:    # kill: def $xmm1 killed $xmm1 def $zmm1212; AVX512BW-NEXT:    # kill: def $xmm0 killed $xmm0 def $zmm0213; AVX512BW-NEXT:    vptestnmw %zmm0, %zmm1, %k0214; AVX512BW-NEXT:    kmovd %k0, %eax215; AVX512BW-NEXT:    andb %dil, %al216; AVX512BW-NEXT:    # kill: def $al killed $al killed $eax217; AVX512BW-NEXT:    vzeroupper218; AVX512BW-NEXT:    retq219entry:220  %and.i.i = and <2 x i64> %__B, %__A221  %0 = bitcast <2 x i64> %and.i.i to <8 x i16>222  %1 = icmp eq <8 x i16> %0, zeroinitializer223  %2 = bitcast i8 %__U to <8 x i1>224  %3 = and <8 x i1> %1, %2225  %4 = bitcast <8 x i1> %3 to i8226  ret i8 %4227}228 229; Function Attrs: norecurse nounwind readnone230define i32 @TEST_mm256_test_epi8_mask(<4 x i64> %__A, <4 x i64> %__B) local_unnamed_addr #0 {231; AVX512BWVL-LABEL: TEST_mm256_test_epi8_mask:232; AVX512BWVL:       # %bb.0: # %entry233; AVX512BWVL-NEXT:    vptestmb %ymm0, %ymm1, %k0234; AVX512BWVL-NEXT:    kmovd %k0, %eax235; AVX512BWVL-NEXT:    vzeroupper236; AVX512BWVL-NEXT:    retq237;238; AVX512BW-LABEL: TEST_mm256_test_epi8_mask:239; AVX512BW:       # %bb.0: # %entry240; AVX512BW-NEXT:    # kill: def $ymm1 killed $ymm1 def $zmm1241; AVX512BW-NEXT:    # kill: def $ymm0 killed $ymm0 def $zmm0242; AVX512BW-NEXT:    vptestmb %zmm0, %zmm1, %k0243; AVX512BW-NEXT:    kmovd %k0, %eax244; AVX512BW-NEXT:    vzeroupper245; AVX512BW-NEXT:    retq246entry:247  %and.i.i = and <4 x i64> %__B, %__A248  %0 = bitcast <4 x i64> %and.i.i to <32 x i8>249  %1 = icmp ne <32 x i8> %0, zeroinitializer250  %2 = bitcast <32 x i1> %1 to i32251  ret i32 %2252}253 254; Function Attrs: norecurse nounwind readnone255define i32 @TEST_mm256_mask_test_epi8_mask(i32 %__U, <4 x i64> %__A, <4 x i64> %__B) local_unnamed_addr #0 {256; AVX512BWVL-LABEL: TEST_mm256_mask_test_epi8_mask:257; AVX512BWVL:       # %bb.0: # %entry258; AVX512BWVL-NEXT:    vptestmb %ymm0, %ymm1, %k0259; AVX512BWVL-NEXT:    kmovd %k0, %eax260; AVX512BWVL-NEXT:    andl %edi, %eax261; AVX512BWVL-NEXT:    vzeroupper262; AVX512BWVL-NEXT:    retq263;264; AVX512BW-LABEL: TEST_mm256_mask_test_epi8_mask:265; AVX512BW:       # %bb.0: # %entry266; AVX512BW-NEXT:    # kill: def $ymm1 killed $ymm1 def $zmm1267; AVX512BW-NEXT:    # kill: def $ymm0 killed $ymm0 def $zmm0268; AVX512BW-NEXT:    vptestmb %zmm0, %zmm1, %k0269; AVX512BW-NEXT:    kmovd %k0, %eax270; AVX512BW-NEXT:    andl %edi, %eax271; AVX512BW-NEXT:    vzeroupper272; AVX512BW-NEXT:    retq273entry:274  %and.i.i = and <4 x i64> %__B, %__A275  %0 = bitcast <4 x i64> %and.i.i to <32 x i8>276  %1 = icmp ne <32 x i8> %0, zeroinitializer277  %2 = bitcast i32 %__U to <32 x i1>278  %3 = and <32 x i1> %1, %2279  %4 = bitcast <32 x i1> %3 to i32280  ret i32 %4281}282 283; Function Attrs: norecurse nounwind readnone284define zeroext i16 @TEST_mm256_test_epi16_mask(<4 x i64> %__A, <4 x i64> %__B) local_unnamed_addr #0 {285; AVX512BWVL-LABEL: TEST_mm256_test_epi16_mask:286; AVX512BWVL:       # %bb.0: # %entry287; AVX512BWVL-NEXT:    vptestmw %ymm0, %ymm1, %k0288; AVX512BWVL-NEXT:    kmovd %k0, %eax289; AVX512BWVL-NEXT:    # kill: def $ax killed $ax killed $eax290; AVX512BWVL-NEXT:    vzeroupper291; AVX512BWVL-NEXT:    retq292;293; AVX512BW-LABEL: TEST_mm256_test_epi16_mask:294; AVX512BW:       # %bb.0: # %entry295; AVX512BW-NEXT:    # kill: def $ymm1 killed $ymm1 def $zmm1296; AVX512BW-NEXT:    # kill: def $ymm0 killed $ymm0 def $zmm0297; AVX512BW-NEXT:    vptestmw %zmm0, %zmm1, %k0298; AVX512BW-NEXT:    kmovd %k0, %eax299; AVX512BW-NEXT:    # kill: def $ax killed $ax killed $eax300; AVX512BW-NEXT:    vzeroupper301; AVX512BW-NEXT:    retq302entry:303  %and.i.i = and <4 x i64> %__B, %__A304  %0 = bitcast <4 x i64> %and.i.i to <16 x i16>305  %1 = icmp ne <16 x i16> %0, zeroinitializer306  %2 = bitcast <16 x i1> %1 to i16307  ret i16 %2308}309 310; Function Attrs: norecurse nounwind readnone311define zeroext i16 @TEST_mm256_mask_test_epi16_mask(i16 zeroext %__U, <4 x i64> %__A, <4 x i64> %__B) local_unnamed_addr #0 {312; AVX512BWVL-LABEL: TEST_mm256_mask_test_epi16_mask:313; AVX512BWVL:       # %bb.0: # %entry314; AVX512BWVL-NEXT:    vptestmw %ymm0, %ymm1, %k0315; AVX512BWVL-NEXT:    kmovd %k0, %eax316; AVX512BWVL-NEXT:    andl %edi, %eax317; AVX512BWVL-NEXT:    # kill: def $ax killed $ax killed $eax318; AVX512BWVL-NEXT:    vzeroupper319; AVX512BWVL-NEXT:    retq320;321; AVX512BW-LABEL: TEST_mm256_mask_test_epi16_mask:322; AVX512BW:       # %bb.0: # %entry323; AVX512BW-NEXT:    # kill: def $ymm1 killed $ymm1 def $zmm1324; AVX512BW-NEXT:    # kill: def $ymm0 killed $ymm0 def $zmm0325; AVX512BW-NEXT:    vptestmw %zmm0, %zmm1, %k0326; AVX512BW-NEXT:    kmovd %k0, %eax327; AVX512BW-NEXT:    andl %edi, %eax328; AVX512BW-NEXT:    # kill: def $ax killed $ax killed $eax329; AVX512BW-NEXT:    vzeroupper330; AVX512BW-NEXT:    retq331entry:332  %and.i.i = and <4 x i64> %__B, %__A333  %0 = bitcast <4 x i64> %and.i.i to <16 x i16>334  %1 = icmp ne <16 x i16> %0, zeroinitializer335  %2 = bitcast i16 %__U to <16 x i1>336  %3 = and <16 x i1> %1, %2337  %4 = bitcast <16 x i1> %3 to i16338  ret i16 %4339}340 341; Function Attrs: norecurse nounwind readnone342define i32 @TEST_mm256_testn_epi8_mask(<4 x i64> %__A, <4 x i64> %__B) local_unnamed_addr #0 {343; AVX512BWVL-LABEL: TEST_mm256_testn_epi8_mask:344; AVX512BWVL:       # %bb.0: # %entry345; AVX512BWVL-NEXT:    vptestnmb %ymm0, %ymm1, %k0346; AVX512BWVL-NEXT:    kmovd %k0, %eax347; AVX512BWVL-NEXT:    vzeroupper348; AVX512BWVL-NEXT:    retq349;350; AVX512BW-LABEL: TEST_mm256_testn_epi8_mask:351; AVX512BW:       # %bb.0: # %entry352; AVX512BW-NEXT:    # kill: def $ymm1 killed $ymm1 def $zmm1353; AVX512BW-NEXT:    # kill: def $ymm0 killed $ymm0 def $zmm0354; AVX512BW-NEXT:    vptestnmb %zmm0, %zmm1, %k0355; AVX512BW-NEXT:    kmovd %k0, %eax356; AVX512BW-NEXT:    vzeroupper357; AVX512BW-NEXT:    retq358entry:359  %and.i.i = and <4 x i64> %__B, %__A360  %0 = bitcast <4 x i64> %and.i.i to <32 x i8>361  %1 = icmp eq <32 x i8> %0, zeroinitializer362  %2 = bitcast <32 x i1> %1 to i32363  ret i32 %2364}365 366; Function Attrs: norecurse nounwind readnone367define i32 @TEST_mm256_mask_testn_epi8_mask(i32 %__U, <4 x i64> %__A, <4 x i64> %__B) local_unnamed_addr #0 {368; AVX512BWVL-LABEL: TEST_mm256_mask_testn_epi8_mask:369; AVX512BWVL:       # %bb.0: # %entry370; AVX512BWVL-NEXT:    vptestnmb %ymm0, %ymm1, %k0371; AVX512BWVL-NEXT:    kmovd %k0, %eax372; AVX512BWVL-NEXT:    andl %edi, %eax373; AVX512BWVL-NEXT:    vzeroupper374; AVX512BWVL-NEXT:    retq375;376; AVX512BW-LABEL: TEST_mm256_mask_testn_epi8_mask:377; AVX512BW:       # %bb.0: # %entry378; AVX512BW-NEXT:    # kill: def $ymm1 killed $ymm1 def $zmm1379; AVX512BW-NEXT:    # kill: def $ymm0 killed $ymm0 def $zmm0380; AVX512BW-NEXT:    vptestnmb %zmm0, %zmm1, %k0381; AVX512BW-NEXT:    kmovd %k0, %eax382; AVX512BW-NEXT:    andl %edi, %eax383; AVX512BW-NEXT:    vzeroupper384; AVX512BW-NEXT:    retq385entry:386  %and.i.i = and <4 x i64> %__B, %__A387  %0 = bitcast <4 x i64> %and.i.i to <32 x i8>388  %1 = icmp eq <32 x i8> %0, zeroinitializer389  %2 = bitcast i32 %__U to <32 x i1>390  %3 = and <32 x i1> %1, %2391  %4 = bitcast <32 x i1> %3 to i32392  ret i32 %4393}394 395; Function Attrs: norecurse nounwind readnone396define zeroext i16 @TEST_mm256_testn_epi16_mask(<4 x i64> %__A, <4 x i64> %__B) local_unnamed_addr #0 {397; AVX512BWVL-LABEL: TEST_mm256_testn_epi16_mask:398; AVX512BWVL:       # %bb.0: # %entry399; AVX512BWVL-NEXT:    vptestnmw %ymm0, %ymm1, %k0400; AVX512BWVL-NEXT:    kmovd %k0, %eax401; AVX512BWVL-NEXT:    # kill: def $ax killed $ax killed $eax402; AVX512BWVL-NEXT:    vzeroupper403; AVX512BWVL-NEXT:    retq404;405; AVX512BW-LABEL: TEST_mm256_testn_epi16_mask:406; AVX512BW:       # %bb.0: # %entry407; AVX512BW-NEXT:    # kill: def $ymm1 killed $ymm1 def $zmm1408; AVX512BW-NEXT:    # kill: def $ymm0 killed $ymm0 def $zmm0409; AVX512BW-NEXT:    vptestnmw %zmm0, %zmm1, %k0410; AVX512BW-NEXT:    kmovd %k0, %eax411; AVX512BW-NEXT:    # kill: def $ax killed $ax killed $eax412; AVX512BW-NEXT:    vzeroupper413; AVX512BW-NEXT:    retq414entry:415  %and.i.i = and <4 x i64> %__B, %__A416  %0 = bitcast <4 x i64> %and.i.i to <16 x i16>417  %1 = icmp eq <16 x i16> %0, zeroinitializer418  %2 = bitcast <16 x i1> %1 to i16419  ret i16 %2420}421 422; Function Attrs: norecurse nounwind readnone423define zeroext i16 @TEST_mm256_mask_testn_epi16_mask(i16 zeroext %__U, <4 x i64> %__A, <4 x i64> %__B) local_unnamed_addr #0 {424; AVX512BWVL-LABEL: TEST_mm256_mask_testn_epi16_mask:425; AVX512BWVL:       # %bb.0: # %entry426; AVX512BWVL-NEXT:    vptestnmw %ymm0, %ymm1, %k0427; AVX512BWVL-NEXT:    kmovd %k0, %eax428; AVX512BWVL-NEXT:    andl %edi, %eax429; AVX512BWVL-NEXT:    # kill: def $ax killed $ax killed $eax430; AVX512BWVL-NEXT:    vzeroupper431; AVX512BWVL-NEXT:    retq432;433; AVX512BW-LABEL: TEST_mm256_mask_testn_epi16_mask:434; AVX512BW:       # %bb.0: # %entry435; AVX512BW-NEXT:    # kill: def $ymm1 killed $ymm1 def $zmm1436; AVX512BW-NEXT:    # kill: def $ymm0 killed $ymm0 def $zmm0437; AVX512BW-NEXT:    vptestnmw %zmm0, %zmm1, %k0438; AVX512BW-NEXT:    kmovd %k0, %eax439; AVX512BW-NEXT:    andl %edi, %eax440; AVX512BW-NEXT:    # kill: def $ax killed $ax killed $eax441; AVX512BW-NEXT:    vzeroupper442; AVX512BW-NEXT:    retq443entry:444  %and.i.i = and <4 x i64> %__B, %__A445  %0 = bitcast <4 x i64> %and.i.i to <16 x i16>446  %1 = icmp eq <16 x i16> %0, zeroinitializer447  %2 = bitcast i16 %__U to <16 x i1>448  %3 = and <16 x i1> %1, %2449  %4 = bitcast <16 x i1> %3 to i16450  ret i16 %4451}452 453 454