146 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 | FileCheck %s3 4; Function Attrs: norecurse nounwind readnone5define zeroext i32 @TEST_mm512_test_epi16_mask(<8 x i64> %__A, <8 x i64> %__B) local_unnamed_addr #0 {6; CHECK-LABEL: TEST_mm512_test_epi16_mask:7; CHECK: # %bb.0: # %entry8; CHECK-NEXT: vptestmw %zmm0, %zmm1, %k09; CHECK-NEXT: kmovd %k0, %eax10; CHECK-NEXT: vzeroupper11; CHECK-NEXT: retq12entry:13 %and.i.i = and <8 x i64> %__B, %__A14 %0 = bitcast <8 x i64> %and.i.i to <32 x i16>15 %1 = icmp ne <32 x i16> %0, zeroinitializer16 %2 = bitcast <32 x i1> %1 to i3217 ret i32 %218}19 20 21; Function Attrs: norecurse nounwind readnone22define zeroext i64 @TEST_mm512_test_epi8_mask(<8 x i64> %__A, <8 x i64> %__B) local_unnamed_addr #0 {23; CHECK-LABEL: TEST_mm512_test_epi8_mask:24; CHECK: # %bb.0: # %entry25; CHECK-NEXT: vptestmb %zmm0, %zmm1, %k026; CHECK-NEXT: kmovq %k0, %rax27; CHECK-NEXT: vzeroupper28; CHECK-NEXT: retq29entry:30 %and.i.i = and <8 x i64> %__B, %__A31 %0 = bitcast <8 x i64> %and.i.i to <64 x i8>32 %1 = icmp ne <64 x i8> %0, zeroinitializer33 %2 = bitcast <64 x i1> %1 to i6434 ret i64 %235}36 37; Function Attrs: norecurse nounwind readnone38define zeroext i32 @TEST_mm512_mask_test_epi16_mask(i32 %__U, <8 x i64> %__A, <8 x i64> %__B) local_unnamed_addr #0 {39; CHECK-LABEL: TEST_mm512_mask_test_epi16_mask:40; CHECK: # %bb.0: # %entry41; CHECK-NEXT: vptestmw %zmm0, %zmm1, %k042; CHECK-NEXT: kmovd %k0, %eax43; CHECK-NEXT: andl %edi, %eax44; CHECK-NEXT: vzeroupper45; CHECK-NEXT: retq46entry:47 %and.i.i = and <8 x i64> %__B, %__A48 %0 = bitcast <8 x i64> %and.i.i to <32 x i16>49 %1 = icmp ne <32 x i16> %0, zeroinitializer50 %2 = bitcast i32 %__U to <32 x i1>51 %3 = and <32 x i1> %1, %252 %4 = bitcast <32 x i1> %3 to i3253 ret i32 %454}55 56; Function Attrs: norecurse nounwind readnone57define zeroext i64 @TEST_mm512_mask_test_epi8_mask(i64 %__U, <8 x i64> %__A, <8 x i64> %__B) local_unnamed_addr #0 {58; CHECK-LABEL: TEST_mm512_mask_test_epi8_mask:59; CHECK: # %bb.0: # %entry60; CHECK-NEXT: vptestmb %zmm0, %zmm1, %k061; CHECK-NEXT: kmovq %k0, %rax62; CHECK-NEXT: andq %rdi, %rax63; CHECK-NEXT: vzeroupper64; CHECK-NEXT: retq65entry:66 %and.i.i = and <8 x i64> %__B, %__A67 %0 = bitcast <8 x i64> %and.i.i to <64 x i8>68 %1 = icmp ne <64 x i8> %0, zeroinitializer69 %2 = bitcast i64 %__U to <64 x i1>70 %3 = and <64 x i1> %1, %271 %4 = bitcast <64 x i1> %3 to i6472 ret i64 %473}74 75; Function Attrs: norecurse nounwind readnone76define zeroext i32 @TEST_mm512_testn_epi16_mask(<8 x i64> %__A, <8 x i64> %__B) local_unnamed_addr #0 {77; CHECK-LABEL: TEST_mm512_testn_epi16_mask:78; CHECK: # %bb.0: # %entry79; CHECK-NEXT: vptestnmw %zmm0, %zmm1, %k080; CHECK-NEXT: kmovd %k0, %eax81; CHECK-NEXT: vzeroupper82; CHECK-NEXT: retq83entry:84 %and.i.i = and <8 x i64> %__B, %__A85 %0 = bitcast <8 x i64> %and.i.i to <32 x i16>86 %1 = icmp eq <32 x i16> %0, zeroinitializer87 %2 = bitcast <32 x i1> %1 to i3288 ret i32 %289}90 91 92; Function Attrs: norecurse nounwind readnone93define zeroext i64 @TEST_mm512_testn_epi8_mask(<8 x i64> %__A, <8 x i64> %__B) local_unnamed_addr #0 {94; CHECK-LABEL: TEST_mm512_testn_epi8_mask:95; CHECK: # %bb.0: # %entry96; CHECK-NEXT: vptestnmb %zmm0, %zmm1, %k097; CHECK-NEXT: kmovq %k0, %rax98; CHECK-NEXT: vzeroupper99; CHECK-NEXT: retq100entry:101 %and.i.i = and <8 x i64> %__B, %__A102 %0 = bitcast <8 x i64> %and.i.i to <64 x i8>103 %1 = icmp eq <64 x i8> %0, zeroinitializer104 %2 = bitcast <64 x i1> %1 to i64105 ret i64 %2106}107 108; Function Attrs: norecurse nounwind readnone109define zeroext i32 @TEST_mm512_mask_testn_epi16_mask(i32 %__U, <8 x i64> %__A, <8 x i64> %__B) local_unnamed_addr #0 {110; CHECK-LABEL: TEST_mm512_mask_testn_epi16_mask:111; CHECK: # %bb.0: # %entry112; CHECK-NEXT: vptestnmw %zmm0, %zmm1, %k0113; CHECK-NEXT: kmovd %k0, %eax114; CHECK-NEXT: andl %edi, %eax115; CHECK-NEXT: vzeroupper116; CHECK-NEXT: retq117entry:118 %and.i.i = and <8 x i64> %__B, %__A119 %0 = bitcast <8 x i64> %and.i.i to <32 x i16>120 %1 = icmp eq <32 x i16> %0, zeroinitializer121 %2 = bitcast i32 %__U to <32 x i1>122 %3 = and <32 x i1> %1, %2123 %4 = bitcast <32 x i1> %3 to i32124 ret i32 %4125}126 127; Function Attrs: norecurse nounwind readnone128define zeroext i64 @TEST_mm512_mask_testn_epi8_mask(i64 %__U, <8 x i64> %__A, <8 x i64> %__B) local_unnamed_addr #0 {129; CHECK-LABEL: TEST_mm512_mask_testn_epi8_mask:130; CHECK: # %bb.0: # %entry131; CHECK-NEXT: vptestnmb %zmm0, %zmm1, %k0132; CHECK-NEXT: kmovq %k0, %rax133; CHECK-NEXT: andq %rdi, %rax134; CHECK-NEXT: vzeroupper135; CHECK-NEXT: retq136entry:137 %and.i.i = and <8 x i64> %__B, %__A138 %0 = bitcast <8 x i64> %and.i.i to <64 x i8>139 %1 = icmp eq <64 x i8> %0, zeroinitializer140 %2 = bitcast i64 %__U to <64 x i1>141 %3 = and <64 x i1> %1, %2142 %4 = bitcast <64 x i1> %3 to i64143 ret i64 %4144}145 146