brintos

brintos / llvm-project-archived public Read only

0
0
Text · 56.6 KiB · 0946372 Raw
1235 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -verify-machineinstrs -mtriple=x86_64 --show-mc-encoding -mattr=+avx10.2 | FileCheck %s --check-prefixes=CHECK,X643; RUN: llc < %s -verify-machineinstrs -mtriple=i686 --show-mc-encoding -mattr=+avx10.2 | FileCheck %s --check-prefixes=CHECK,X864 5define dso_local <2 x i64> @test_mm_ipcvtbf16_epi8(<8 x bfloat> noundef %__A) {6; CHECK-LABEL: test_mm_ipcvtbf16_epi8:7; CHECK:       # %bb.0: # %entry8; CHECK-NEXT:    vcvtbf162ibs %xmm0, %xmm0 # encoding: [0x62,0xf5,0x7f,0x08,0x69,0xc0]9; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]10entry:11  %0 = tail call <8 x i16> @llvm.x86.avx10.vcvtbf162ibs128(<8 x bfloat> %__A)12  %1 = bitcast <8 x i16> %0 to <2 x i64>13  ret <2 x i64> %114}15 16define dso_local <2 x i64> @test_mm_mask_ipcvtbf16_epi8(<2 x i64> noundef %__S, i8 noundef zeroext %__A, <8 x bfloat> noundef %__B) {17; X64-LABEL: test_mm_mask_ipcvtbf16_epi8:18; X64:       # %bb.0: # %entry19; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]20; X64-NEXT:    vcvtbf162ibs %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7f,0x09,0x69,0xc1]21; X64-NEXT:    retq # encoding: [0xc3]22;23; X86-LABEL: test_mm_mask_ipcvtbf16_epi8:24; X86:       # %bb.0: # %entry25; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]26; X86-NEXT:    vcvtbf162ibs %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7f,0x09,0x69,0xc1]27; X86-NEXT:    retl # encoding: [0xc3]28entry:29  %0 = bitcast <2 x i64> %__S to <8 x i16>30  %1 = tail call <8 x i16> @llvm.x86.avx10.vcvtbf162ibs128(<8 x bfloat> %__B)31  %2 = bitcast i8 %__A to <8 x i1>32  %3 = select <8 x i1> %2, <8 x i16> %1, <8 x i16> %033  %4 = bitcast <8 x i16> %3 to <2 x i64>34  ret <2 x i64> %435}36 37declare <8 x i16> @llvm.x86.avx10.vcvtbf162ibs128(<8 x bfloat>)38 39define dso_local <2 x i64> @test_mm_maskz_ipcvtbf16_epi8(i8 noundef zeroext %__A, <8 x bfloat> noundef %__B) {40; X64-LABEL: test_mm_maskz_ipcvtbf16_epi8:41; X64:       # %bb.0: # %entry42; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]43; X64-NEXT:    vcvtbf162ibs %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0x89,0x69,0xc0]44; X64-NEXT:    retq # encoding: [0xc3]45;46; X86-LABEL: test_mm_maskz_ipcvtbf16_epi8:47; X86:       # %bb.0: # %entry48; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]49; X86-NEXT:    vcvtbf162ibs %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0x89,0x69,0xc0]50; X86-NEXT:    retl # encoding: [0xc3]51entry:52  %0 = tail call <8 x i16> @llvm.x86.avx10.vcvtbf162ibs128(<8 x bfloat> %__B)53  %1 = bitcast i8 %__A to <8 x i1>54  %2 = select <8 x i1> %1, <8 x i16> %0, <8 x i16> zeroinitializer55  %3 = bitcast <8 x i16> %2 to <2 x i64>56  ret <2 x i64> %357}58 59define dso_local <4 x i64> @test_mm256_ipcvtbf16_epi8(<16 x bfloat> noundef %__A) local_unnamed_addr #2 {60; CHECK-LABEL: test_mm256_ipcvtbf16_epi8:61; CHECK:       # %bb.0: # %entry62; CHECK-NEXT:    vcvtbf162ibs %ymm0, %ymm0 # encoding: [0x62,0xf5,0x7f,0x28,0x69,0xc0]63; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]64entry:65  %0 = tail call <16 x i16> @llvm.x86.avx10.vcvtbf162ibs256(<16 x bfloat> %__A)66  %1 = bitcast <16 x i16> %0 to <4 x i64>67  ret <4 x i64> %168}69 70define dso_local <4 x i64> @test_mm256_mask_ipcvtbf16_epi8(<4 x i64> noundef %__S, i16 noundef zeroext %__A, <16 x bfloat> noundef %__B) local_unnamed_addr #2 {71; X64-LABEL: test_mm256_mask_ipcvtbf16_epi8:72; X64:       # %bb.0: # %entry73; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]74; X64-NEXT:    vcvtbf162ibs %ymm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x7f,0x29,0x69,0xc1]75; X64-NEXT:    retq # encoding: [0xc3]76;77; X86-LABEL: test_mm256_mask_ipcvtbf16_epi8:78; X86:       # %bb.0: # %entry79; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]80; X86-NEXT:    vcvtbf162ibs %ymm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x7f,0x29,0x69,0xc1]81; X86-NEXT:    retl # encoding: [0xc3]82entry:83  %0 = bitcast <4 x i64> %__S to <16 x i16>84  %1 = tail call <16 x i16> @llvm.x86.avx10.vcvtbf162ibs256(<16 x bfloat> %__B)85  %2 = bitcast i16 %__A to <16 x i1>86  %3 = select <16 x i1> %2, <16 x i16> %1, <16 x i16> %087  %4 = bitcast <16 x i16> %3 to <4 x i64>88  ret <4 x i64> %489}90 91declare <16 x i16> @llvm.x86.avx10.vcvtbf162ibs256(<16 x bfloat>)92 93define dso_local <4 x i64> @test_mm256_maskz_ipcvtbf16_epi8(i16 noundef zeroext %__A, <16 x bfloat> noundef %__B) local_unnamed_addr #2 {94; X64-LABEL: test_mm256_maskz_ipcvtbf16_epi8:95; X64:       # %bb.0: # %entry96; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]97; X64-NEXT:    vcvtbf162ibs %ymm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0xa9,0x69,0xc0]98; X64-NEXT:    retq # encoding: [0xc3]99;100; X86-LABEL: test_mm256_maskz_ipcvtbf16_epi8:101; X86:       # %bb.0: # %entry102; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]103; X86-NEXT:    vcvtbf162ibs %ymm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0xa9,0x69,0xc0]104; X86-NEXT:    retl # encoding: [0xc3]105entry:106  %0 = tail call <16 x i16> @llvm.x86.avx10.vcvtbf162ibs256(<16 x bfloat> %__B)107  %1 = bitcast i16 %__A to <16 x i1>108  %2 = select <16 x i1> %1, <16 x i16> %0, <16 x i16> zeroinitializer109  %3 = bitcast <16 x i16> %2 to <4 x i64>110  ret <4 x i64> %3111}112 113define dso_local <2 x i64> @test_mm_ipcvtbf16_epu8(<8 x bfloat> noundef %__A) {114; CHECK-LABEL: test_mm_ipcvtbf16_epu8:115; CHECK:       # %bb.0: # %entry116; CHECK-NEXT:    vcvtbf162iubs %xmm0, %xmm0 # encoding: [0x62,0xf5,0x7f,0x08,0x6b,0xc0]117; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]118entry:119  %0 = tail call <8 x i16> @llvm.x86.avx10.vcvtbf162iubs128(<8 x bfloat> %__A)120  %1 = bitcast <8 x i16> %0 to <2 x i64>121  ret <2 x i64> %1122}123 124define dso_local <2 x i64> @test_mm_mask_ipcvtbf16_epu8(<2 x i64> noundef %__S, i8 noundef zeroext %__A, <8 x bfloat> noundef %__B) {125; X64-LABEL: test_mm_mask_ipcvtbf16_epu8:126; X64:       # %bb.0: # %entry127; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]128; X64-NEXT:    vcvtbf162iubs %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7f,0x09,0x6b,0xc1]129; X64-NEXT:    retq # encoding: [0xc3]130;131; X86-LABEL: test_mm_mask_ipcvtbf16_epu8:132; X86:       # %bb.0: # %entry133; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]134; X86-NEXT:    vcvtbf162iubs %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7f,0x09,0x6b,0xc1]135; X86-NEXT:    retl # encoding: [0xc3]136entry:137  %0 = bitcast <2 x i64> %__S to <8 x i16>138  %1 = tail call <8 x i16> @llvm.x86.avx10.vcvtbf162iubs128(<8 x bfloat> %__B)139  %2 = bitcast i8 %__A to <8 x i1>140  %3 = select <8 x i1> %2, <8 x i16> %1, <8 x i16> %0141  %4 = bitcast <8 x i16> %3 to <2 x i64>142  ret <2 x i64> %4143}144 145declare <8 x i16> @llvm.x86.avx10.vcvtbf162iubs128(<8 x bfloat>)146 147define dso_local <2 x i64> @test_mm_maskz_ipcvtbf16_epu8(i8 noundef zeroext %__A, <8 x bfloat> noundef %__B) {148; X64-LABEL: test_mm_maskz_ipcvtbf16_epu8:149; X64:       # %bb.0: # %entry150; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]151; X64-NEXT:    vcvtbf162iubs %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0x89,0x6b,0xc0]152; X64-NEXT:    retq # encoding: [0xc3]153;154; X86-LABEL: test_mm_maskz_ipcvtbf16_epu8:155; X86:       # %bb.0: # %entry156; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]157; X86-NEXT:    vcvtbf162iubs %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0x89,0x6b,0xc0]158; X86-NEXT:    retl # encoding: [0xc3]159entry:160  %0 = tail call <8 x i16> @llvm.x86.avx10.vcvtbf162iubs128(<8 x bfloat> %__B)161  %1 = bitcast i8 %__A to <8 x i1>162  %2 = select <8 x i1> %1, <8 x i16> %0, <8 x i16> zeroinitializer163  %3 = bitcast <8 x i16> %2 to <2 x i64>164  ret <2 x i64> %3165}166 167define dso_local <4 x i64> @test_mm256_ipcvtbf16_epu8(<16 x bfloat> noundef %__A) local_unnamed_addr #2 {168; CHECK-LABEL: test_mm256_ipcvtbf16_epu8:169; CHECK:       # %bb.0: # %entry170; CHECK-NEXT:    vcvtbf162iubs %ymm0, %ymm0 # encoding: [0x62,0xf5,0x7f,0x28,0x6b,0xc0]171; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]172entry:173  %0 = tail call <16 x i16> @llvm.x86.avx10.vcvtbf162iubs256(<16 x bfloat> %__A)174  %1 = bitcast <16 x i16> %0 to <4 x i64>175  ret <4 x i64> %1176}177 178define dso_local <4 x i64> @test_mm256_mask_ipcvtbf16_epu8(<4 x i64> noundef %__S, i16 noundef zeroext %__A, <16 x bfloat> noundef %__B) local_unnamed_addr #2 {179; X64-LABEL: test_mm256_mask_ipcvtbf16_epu8:180; X64:       # %bb.0: # %entry181; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]182; X64-NEXT:    vcvtbf162iubs %ymm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x7f,0x29,0x6b,0xc1]183; X64-NEXT:    retq # encoding: [0xc3]184;185; X86-LABEL: test_mm256_mask_ipcvtbf16_epu8:186; X86:       # %bb.0: # %entry187; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]188; X86-NEXT:    vcvtbf162iubs %ymm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x7f,0x29,0x6b,0xc1]189; X86-NEXT:    retl # encoding: [0xc3]190entry:191  %0 = bitcast <4 x i64> %__S to <16 x i16>192  %1 = tail call <16 x i16> @llvm.x86.avx10.vcvtbf162iubs256(<16 x bfloat> %__B)193  %2 = bitcast i16 %__A to <16 x i1>194  %3 = select <16 x i1> %2, <16 x i16> %1, <16 x i16> %0195  %4 = bitcast <16 x i16> %3 to <4 x i64>196  ret <4 x i64> %4197}198 199define dso_local <4 x i64> @test_mm256_maskz_ipcvtbf16_epu8(i16 noundef zeroext %__A, <16 x bfloat> noundef %__B) local_unnamed_addr #2 {200; X64-LABEL: test_mm256_maskz_ipcvtbf16_epu8:201; X64:       # %bb.0: # %entry202; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]203; X64-NEXT:    vcvtbf162iubs %ymm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0xa9,0x6b,0xc0]204; X64-NEXT:    retq # encoding: [0xc3]205;206; X86-LABEL: test_mm256_maskz_ipcvtbf16_epu8:207; X86:       # %bb.0: # %entry208; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]209; X86-NEXT:    vcvtbf162iubs %ymm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0xa9,0x6b,0xc0]210; X86-NEXT:    retl # encoding: [0xc3]211entry:212  %0 = tail call <16 x i16> @llvm.x86.avx10.vcvtbf162iubs256(<16 x bfloat> %__B)213  %1 = bitcast i16 %__A to <16 x i1>214  %2 = select <16 x i1> %1, <16 x i16> %0, <16 x i16> zeroinitializer215  %3 = bitcast <16 x i16> %2 to <4 x i64>216  ret <4 x i64> %3217}218 219declare <16 x i16> @llvm.x86.avx10.vcvtbf162iubs256(<16 x bfloat>)220 221define dso_local <2 x i64> @test_mm_ipcvtph_epi8(<8 x half> noundef %__A) {222; CHECK-LABEL: test_mm_ipcvtph_epi8:223; CHECK:       # %bb.0: # %entry224; CHECK-NEXT:    vcvtph2ibs %xmm0, %xmm0 # encoding: [0x62,0xf5,0x7c,0x08,0x69,0xc0]225; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]226entry:227  %0 = tail call <8 x i16> @llvm.x86.avx10.mask.vcvtph2ibs128(<8 x half> %__A, <8 x i16> zeroinitializer, i8 -1)228  %1 = bitcast <8 x i16> %0 to <2 x i64>229  ret <2 x i64> %1230}231 232define dso_local <2 x i64> @test_mm_mask_ipcvtph_epi8(<2 x i64> noundef %__S, i8 noundef zeroext %__A, <8 x half> noundef %__B) {233; X64-LABEL: test_mm_mask_ipcvtph_epi8:234; X64:       # %bb.0: # %entry235; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]236; X64-NEXT:    vcvtph2ibs %xmm1, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0x89,0x69,0xc1]237; X64-NEXT:    retq # encoding: [0xc3]238;239; X86-LABEL: test_mm_mask_ipcvtph_epi8:240; X86:       # %bb.0: # %entry241; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]242; X86-NEXT:    vcvtph2ibs %xmm1, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0x89,0x69,0xc1]243; X86-NEXT:    retl # encoding: [0xc3]244entry:245  %0 = bitcast <2 x i64> %__S to <8 x i16>246  %1 = tail call <8 x i16> @llvm.x86.avx10.mask.vcvtph2ibs128(<8 x half> %__B, <8 x i16> zeroinitializer, i8 %__A)247  %2 = bitcast <8 x i16> %1 to <2 x i64>248  ret <2 x i64> %2249}250 251declare <8 x i16> @llvm.x86.avx10.mask.vcvtph2ibs128(<8 x half>, <8 x i16>, i8)252 253define dso_local <2 x i64> @test_mm_maskz_ipcvtph_epi8(i8 noundef zeroext %__A, <8 x half> noundef %__B) {254; X64-LABEL: test_mm_maskz_ipcvtph_epi8:255; X64:       # %bb.0: # %entry256; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]257; X64-NEXT:    vcvtph2ibs %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0x89,0x69,0xc0]258; X64-NEXT:    retq # encoding: [0xc3]259;260; X86-LABEL: test_mm_maskz_ipcvtph_epi8:261; X86:       # %bb.0: # %entry262; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]263; X86-NEXT:    vcvtph2ibs %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0x89,0x69,0xc0]264; X86-NEXT:    retl # encoding: [0xc3]265entry:266  %0 = tail call <8 x i16> @llvm.x86.avx10.mask.vcvtph2ibs128(<8 x half> %__B, <8 x i16> zeroinitializer, i8 %__A)267  %1 = bitcast <8 x i16> %0 to <2 x i64>268  ret <2 x i64> %1269}270 271define dso_local <4 x i64> @test_mm256_ipcvtph_epi8(<16 x half> noundef %__A) local_unnamed_addr #2 {272; CHECK-LABEL: test_mm256_ipcvtph_epi8:273; CHECK:       # %bb.0: # %entry274; CHECK-NEXT:    vcvtph2ibs %ymm0, %ymm0 # encoding: [0x62,0xf5,0x7c,0x28,0x69,0xc0]275; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]276entry:277  %0 = tail call <16 x i16> @llvm.x86.avx10.mask.vcvtph2ibs256(<16 x half> %__A, <16 x i16> zeroinitializer, i16 -1)278  %1 = bitcast <16 x i16> %0 to <4 x i64>279  ret <4 x i64> %1280}281 282define dso_local <4 x i64> @test_mm256_mask_ipcvtph_epi8(<4 x i64> noundef %__S, i16 noundef zeroext %__A, <16 x half> noundef %__B) local_unnamed_addr #2 {283; X64-LABEL: test_mm256_mask_ipcvtph_epi8:284; X64:       # %bb.0: # %entry285; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]286; X64-NEXT:    vcvtph2ibs %ymm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x7c,0x29,0x69,0xc1]287; X64-NEXT:    retq # encoding: [0xc3]288;289; X86-LABEL: test_mm256_mask_ipcvtph_epi8:290; X86:       # %bb.0: # %entry291; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]292; X86-NEXT:    vcvtph2ibs %ymm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x7c,0x29,0x69,0xc1]293; X86-NEXT:    retl # encoding: [0xc3]294entry:295  %0 = bitcast <4 x i64> %__S to <16 x i16>296  %1 = tail call <16 x i16> @llvm.x86.avx10.mask.vcvtph2ibs256(<16 x half> %__B, <16 x i16> %0, i16 %__A)297  %2 = bitcast <16 x i16> %1 to <4 x i64>298  ret <4 x i64> %2299}300 301define dso_local <4 x i64> @test_mm256_maskz_ipcvtph_epi8(i16 noundef zeroext %__A, <16 x half> noundef %__B) local_unnamed_addr #2 {302; X64-LABEL: test_mm256_maskz_ipcvtph_epi8:303; X64:       # %bb.0: # %entry304; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]305; X64-NEXT:    vcvtph2ibs %ymm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0xa9,0x69,0xc0]306; X64-NEXT:    retq # encoding: [0xc3]307;308; X86-LABEL: test_mm256_maskz_ipcvtph_epi8:309; X86:       # %bb.0: # %entry310; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]311; X86-NEXT:    vcvtph2ibs %ymm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0xa9,0x69,0xc0]312; X86-NEXT:    retl # encoding: [0xc3]313entry:314  %0 = tail call <16 x i16> @llvm.x86.avx10.mask.vcvtph2ibs256(<16 x half> %__B, <16 x i16> zeroinitializer, i16 %__A)315  %1 = bitcast <16 x i16> %0 to <4 x i64>316  ret <4 x i64> %1317}318 319declare <16 x i16> @llvm.x86.avx10.mask.vcvtph2ibs256(<16 x half>, <16 x i16>, i16)320 321define dso_local <2 x i64> @test_mm_ipcvtph_epu8(<8 x half> noundef %__A) {322; CHECK-LABEL: test_mm_ipcvtph_epu8:323; CHECK:       # %bb.0: # %entry324; CHECK-NEXT:    vcvtph2iubs %xmm0, %xmm0 # encoding: [0x62,0xf5,0x7c,0x08,0x6b,0xc0]325; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]326entry:327  %0 = tail call <8 x i16> @llvm.x86.avx10.mask.vcvtph2iubs128(<8 x half> %__A, <8 x i16> zeroinitializer, i8 -1)328  %1 = bitcast <8 x i16> %0 to <2 x i64>329  ret <2 x i64> %1330}331 332define dso_local <2 x i64> @test_mm_mask_ipcvtph_epu8(<2 x i64> noundef %__S, i8 noundef zeroext %__A, <8 x half> noundef %__B) {333; X64-LABEL: test_mm_mask_ipcvtph_epu8:334; X64:       # %bb.0: # %entry335; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]336; X64-NEXT:    vcvtph2iubs %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7c,0x09,0x6b,0xc1]337; X64-NEXT:    retq # encoding: [0xc3]338;339; X86-LABEL: test_mm_mask_ipcvtph_epu8:340; X86:       # %bb.0: # %entry341; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]342; X86-NEXT:    vcvtph2iubs %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7c,0x09,0x6b,0xc1]343; X86-NEXT:    retl # encoding: [0xc3]344entry:345  %0 = bitcast <2 x i64> %__S to <8 x i16>346  %1 = tail call <8 x i16> @llvm.x86.avx10.mask.vcvtph2iubs128(<8 x half> %__B, <8 x i16> %0, i8 %__A)347  %2 = bitcast <8 x i16> %1 to <2 x i64>348  ret <2 x i64> %2349}350 351declare <8 x i16> @llvm.x86.avx10.mask.vcvtph2iubs128(<8 x half>, <8 x i16>, i8)352 353define dso_local <2 x i64> @test_mm_maskz_ipcvtph_epu8(i8 noundef zeroext %__A, <8 x half> noundef %__B) {354; X64-LABEL: test_mm_maskz_ipcvtph_epu8:355; X64:       # %bb.0: # %entry356; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]357; X64-NEXT:    vcvtph2iubs %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0x89,0x6b,0xc0]358; X64-NEXT:    retq # encoding: [0xc3]359;360; X86-LABEL: test_mm_maskz_ipcvtph_epu8:361; X86:       # %bb.0: # %entry362; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]363; X86-NEXT:    vcvtph2iubs %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0x89,0x6b,0xc0]364; X86-NEXT:    retl # encoding: [0xc3]365entry:366  %0 = tail call <8 x i16> @llvm.x86.avx10.mask.vcvtph2iubs128(<8 x half> %__B, <8 x i16> zeroinitializer, i8 %__A)367  %1 = bitcast <8 x i16> %0 to <2 x i64>368  ret <2 x i64> %1369}370 371define dso_local <4 x i64> @test_mm256_ipcvtph_epu8(<16 x half> noundef %__A) local_unnamed_addr #2 {372; CHECK-LABEL: test_mm256_ipcvtph_epu8:373; CHECK:       # %bb.0: # %entry374; CHECK-NEXT:    vcvtph2iubs %ymm0, %ymm0 # encoding: [0x62,0xf5,0x7c,0x28,0x6b,0xc0]375; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]376entry:377  %0 = tail call <16 x i16> @llvm.x86.avx10.mask.vcvtph2iubs256(<16 x half> %__A, <16 x i16> zeroinitializer, i16 -1)378  %1 = bitcast <16 x i16> %0 to <4 x i64>379  ret <4 x i64> %1380}381 382define dso_local <4 x i64> @test_mm256_mask_ipcvtph_epu8(<4 x i64> noundef %__S, i16 noundef zeroext %__A, <16 x half> noundef %__B) local_unnamed_addr #2 {383; X64-LABEL: test_mm256_mask_ipcvtph_epu8:384; X64:       # %bb.0: # %entry385; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]386; X64-NEXT:    vcvtph2iubs %ymm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x7c,0x29,0x6b,0xc1]387; X64-NEXT:    retq # encoding: [0xc3]388;389; X86-LABEL: test_mm256_mask_ipcvtph_epu8:390; X86:       # %bb.0: # %entry391; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]392; X86-NEXT:    vcvtph2iubs %ymm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x7c,0x29,0x6b,0xc1]393; X86-NEXT:    retl # encoding: [0xc3]394entry:395  %0 = bitcast <4 x i64> %__S to <16 x i16>396  %1 = tail call <16 x i16> @llvm.x86.avx10.mask.vcvtph2iubs256(<16 x half> %__B, <16 x i16> %0, i16 %__A)397  %2 = bitcast <16 x i16> %1 to <4 x i64>398  ret <4 x i64> %2399}400 401define dso_local <4 x i64> @test_mm256_maskz_ipcvtph_epu8(i16 noundef zeroext %__A, <16 x half> noundef %__B) local_unnamed_addr #2 {402; X64-LABEL: test_mm256_maskz_ipcvtph_epu8:403; X64:       # %bb.0: # %entry404; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]405; X64-NEXT:    vcvtph2iubs %ymm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0xa9,0x6b,0xc0]406; X64-NEXT:    retq # encoding: [0xc3]407;408; X86-LABEL: test_mm256_maskz_ipcvtph_epu8:409; X86:       # %bb.0: # %entry410; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]411; X86-NEXT:    vcvtph2iubs %ymm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0xa9,0x6b,0xc0]412; X86-NEXT:    retl # encoding: [0xc3]413entry:414  %0 = tail call <16 x i16> @llvm.x86.avx10.mask.vcvtph2iubs256(<16 x half> %__B, <16 x i16> zeroinitializer, i16 %__A)415  %1 = bitcast <16 x i16> %0 to <4 x i64>416  ret <4 x i64> %1417}418 419declare <16 x i16> @llvm.x86.avx10.mask.vcvtph2iubs256(<16 x half>, <16 x i16>, i16)420 421define dso_local <2 x i64> @test_mm_ipcvtps_epi8(<4 x float> noundef %__A) {422; CHECK-LABEL: test_mm_ipcvtps_epi8:423; CHECK:       # %bb.0: # %entry424; CHECK-NEXT:    vcvtps2ibs %xmm0, %xmm0 # encoding: [0x62,0xf5,0x7d,0x08,0x69,0xc0]425; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]426entry:427  %0 = tail call <4 x i32> @llvm.x86.avx10.mask.vcvtps2ibs128(<4 x float> %__A, <4 x i32> zeroinitializer, i8 -1)428  %1 = bitcast <4 x i32> %0 to <2 x i64>429  ret <2 x i64> %1430}431 432define dso_local <2 x i64> @test_mm_mask_ipcvtps_epi8(<2 x i64> noundef %__S, i8 noundef zeroext %__A, <4 x float> noundef %__B) {433; X64-LABEL: test_mm_mask_ipcvtps_epi8:434; X64:       # %bb.0: # %entry435; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]436; X64-NEXT:    vcvtps2ibs %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7d,0x09,0x69,0xc1]437; X64-NEXT:    retq # encoding: [0xc3]438;439; X86-LABEL: test_mm_mask_ipcvtps_epi8:440; X86:       # %bb.0: # %entry441; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]442; X86-NEXT:    vcvtps2ibs %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7d,0x09,0x69,0xc1]443; X86-NEXT:    retl # encoding: [0xc3]444entry:445  %0 = bitcast <2 x i64> %__S to <4 x i32>446  %1 = tail call <4 x i32> @llvm.x86.avx10.mask.vcvtps2ibs128(<4 x float> %__B, <4 x i32> %0, i8 %__A)447  %2 = bitcast <4 x i32> %1 to <2 x i64>448  ret <2 x i64> %2449}450 451define dso_local <2 x i64> @test_mm_maskz_ipcvtps_epi8(i8 noundef zeroext %__A, <4 x float> noundef %__B) {452; X64-LABEL: test_mm_maskz_ipcvtps_epi8:453; X64:       # %bb.0: # %entry454; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]455; X64-NEXT:    vcvtps2ibs %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7d,0x89,0x69,0xc0]456; X64-NEXT:    retq # encoding: [0xc3]457;458; X86-LABEL: test_mm_maskz_ipcvtps_epi8:459; X86:       # %bb.0: # %entry460; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]461; X86-NEXT:    vcvtps2ibs %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7d,0x89,0x69,0xc0]462; X86-NEXT:    retl # encoding: [0xc3]463entry:464  %0 = tail call <4 x i32> @llvm.x86.avx10.mask.vcvtps2ibs128(<4 x float> %__B, <4 x i32> zeroinitializer, i8 %__A)465  %1 = bitcast <4 x i32> %0 to <2 x i64>466  ret <2 x i64> %1467}468 469declare <4 x i32> @llvm.x86.avx10.mask.vcvtps2ibs128(<4 x float>, <4 x i32>, i8)470 471define dso_local <4 x i64> @test_mm256_ipcvtps_epi8(<8 x float> noundef %__A) local_unnamed_addr #2 {472; CHECK-LABEL: test_mm256_ipcvtps_epi8:473; CHECK:       # %bb.0: # %entry474; CHECK-NEXT:    vcvtps2ibs %ymm0, %ymm0 # encoding: [0x62,0xf5,0x7d,0x28,0x69,0xc0]475; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]476entry:477  %0 = tail call <8 x i32> @llvm.x86.avx10.mask.vcvtps2ibs256(<8 x float> %__A, <8 x i32> zeroinitializer, i8 -1)478  %1 = bitcast <8 x i32> %0 to <4 x i64>479  ret <4 x i64> %1480}481 482define dso_local <4 x i64> @test_mm256_mask_ipcvtps_epi8(<4 x i64> noundef %__S, i8 noundef zeroext %__A, <8 x float> noundef %__B) local_unnamed_addr #2 {483; X64-LABEL: test_mm256_mask_ipcvtps_epi8:484; X64:       # %bb.0: # %entry485; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]486; X64-NEXT:    vcvtps2ibs %ymm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x7d,0x29,0x69,0xc1]487; X64-NEXT:    retq # encoding: [0xc3]488;489; X86-LABEL: test_mm256_mask_ipcvtps_epi8:490; X86:       # %bb.0: # %entry491; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]492; X86-NEXT:    vcvtps2ibs %ymm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x7d,0x29,0x69,0xc1]493; X86-NEXT:    retl # encoding: [0xc3]494entry:495  %0 = bitcast <4 x i64> %__S to <8 x i32>496  %1 = tail call <8 x i32> @llvm.x86.avx10.mask.vcvtps2ibs256(<8 x float> %__B, <8 x i32> %0, i8 %__A)497  %2 = bitcast <8 x i32> %1 to <4 x i64>498  ret <4 x i64> %2499}500 501define dso_local <4 x i64> @test_mm256_maskz_ipcvtps_epi8(i8 noundef zeroext %__A, <8 x float> noundef %__B) local_unnamed_addr #2 {502; X64-LABEL: test_mm256_maskz_ipcvtps_epi8:503; X64:       # %bb.0: # %entry504; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]505; X64-NEXT:    vcvtps2ibs %ymm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7d,0xa9,0x69,0xc0]506; X64-NEXT:    retq # encoding: [0xc3]507;508; X86-LABEL: test_mm256_maskz_ipcvtps_epi8:509; X86:       # %bb.0: # %entry510; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]511; X86-NEXT:    vcvtps2ibs %ymm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7d,0xa9,0x69,0xc0]512; X86-NEXT:    retl # encoding: [0xc3]513entry:514  %0 = tail call <8 x i32> @llvm.x86.avx10.mask.vcvtps2ibs256(<8 x float> %__B, <8 x i32> zeroinitializer, i8 %__A)515  %1 = bitcast <8 x i32> %0 to <4 x i64>516  ret <4 x i64> %1517}518 519declare <8 x i32> @llvm.x86.avx10.mask.vcvtps2ibs256(<8 x float>, <8 x i32>, i8)520 521define dso_local <2 x i64> @test_mm_ipcvtps_epu8(<4 x float> noundef %__A) {522; CHECK-LABEL: test_mm_ipcvtps_epu8:523; CHECK:       # %bb.0: # %entry524; CHECK-NEXT:    vcvtps2iubs %xmm0, %xmm0 # encoding: [0x62,0xf5,0x7d,0x08,0x6b,0xc0]525; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]526entry:527  %0 = tail call <4 x i32> @llvm.x86.avx10.mask.vcvtps2iubs128(<4 x float> %__A, <4 x i32> zeroinitializer, i8 -1)528  %1 = bitcast <4 x i32> %0 to <2 x i64>529  ret <2 x i64> %1530}531 532define dso_local <2 x i64> @test_mm_mask_ipcvtps_epu8(<2 x i64> noundef %__S, i8 noundef zeroext %__A, <4 x float> noundef %__B) {533; X64-LABEL: test_mm_mask_ipcvtps_epu8:534; X64:       # %bb.0: # %entry535; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]536; X64-NEXT:    vcvtps2iubs %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7d,0x09,0x6b,0xc1]537; X64-NEXT:    retq # encoding: [0xc3]538;539; X86-LABEL: test_mm_mask_ipcvtps_epu8:540; X86:       # %bb.0: # %entry541; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]542; X86-NEXT:    vcvtps2iubs %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7d,0x09,0x6b,0xc1]543; X86-NEXT:    retl # encoding: [0xc3]544entry:545  %0 = bitcast <2 x i64> %__S to <4 x i32>546  %1 = tail call <4 x i32> @llvm.x86.avx10.mask.vcvtps2iubs128(<4 x float> %__B, <4 x i32> %0, i8 %__A)547  %2 = bitcast <4 x i32> %1 to <2 x i64>548  ret <2 x i64> %2549}550 551define dso_local <2 x i64> @test_mm_maskz_ipcvtps_epu8(i8 noundef zeroext %__A, <4 x float> noundef %__B) {552; X64-LABEL: test_mm_maskz_ipcvtps_epu8:553; X64:       # %bb.0: # %entry554; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]555; X64-NEXT:    vcvtps2iubs %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7d,0x89,0x6b,0xc0]556; X64-NEXT:    retq # encoding: [0xc3]557;558; X86-LABEL: test_mm_maskz_ipcvtps_epu8:559; X86:       # %bb.0: # %entry560; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]561; X86-NEXT:    vcvtps2iubs %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7d,0x89,0x6b,0xc0]562; X86-NEXT:    retl # encoding: [0xc3]563entry:564  %0 = tail call <4 x i32> @llvm.x86.avx10.mask.vcvtps2iubs128(<4 x float> %__B, <4 x i32> zeroinitializer, i8 %__A)565  %1 = bitcast <4 x i32> %0 to <2 x i64>566  ret <2 x i64> %1567}568 569declare <4 x i32> @llvm.x86.avx10.mask.vcvtps2iubs128(<4 x float>, <4 x i32>, i8)570 571define dso_local <4 x i64> @test_mm256_ipcvtps_epu8(<8 x float> noundef %__A) local_unnamed_addr #2 {572; CHECK-LABEL: test_mm256_ipcvtps_epu8:573; CHECK:       # %bb.0: # %entry574; CHECK-NEXT:    vcvtps2iubs %ymm0, %ymm0 # encoding: [0x62,0xf5,0x7d,0x28,0x6b,0xc0]575; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]576entry:577  %0 = tail call <8 x i32> @llvm.x86.avx10.mask.vcvtps2iubs256(<8 x float> %__A, <8 x i32> zeroinitializer, i8 -1)578  %1 = bitcast <8 x i32> %0 to <4 x i64>579  ret <4 x i64> %1580}581 582define dso_local <4 x i64> @test_mm256_mask_ipcvtps_epu8(<4 x i64> noundef %__S, i8 noundef zeroext %__A, <8 x float> noundef %__B) local_unnamed_addr #2 {583; X64-LABEL: test_mm256_mask_ipcvtps_epu8:584; X64:       # %bb.0: # %entry585; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]586; X64-NEXT:    vcvtps2iubs %ymm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x7d,0x29,0x6b,0xc1]587; X64-NEXT:    retq # encoding: [0xc3]588;589; X86-LABEL: test_mm256_mask_ipcvtps_epu8:590; X86:       # %bb.0: # %entry591; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]592; X86-NEXT:    vcvtps2iubs %ymm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x7d,0x29,0x6b,0xc1]593; X86-NEXT:    retl # encoding: [0xc3]594entry:595  %0 = bitcast <4 x i64> %__S to <8 x i32>596  %1 = tail call <8 x i32> @llvm.x86.avx10.mask.vcvtps2iubs256(<8 x float> %__B, <8 x i32> %0, i8 %__A)597  %2 = bitcast <8 x i32> %1 to <4 x i64>598  ret <4 x i64> %2599}600 601define dso_local <4 x i64> @test_mm256_maskz_ipcvtps_epu8(i8 noundef zeroext %__A, <8 x float> noundef %__B) local_unnamed_addr #2 {602; X64-LABEL: test_mm256_maskz_ipcvtps_epu8:603; X64:       # %bb.0: # %entry604; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]605; X64-NEXT:    vcvtps2iubs %ymm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7d,0xa9,0x6b,0xc0]606; X64-NEXT:    retq # encoding: [0xc3]607;608; X86-LABEL: test_mm256_maskz_ipcvtps_epu8:609; X86:       # %bb.0: # %entry610; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]611; X86-NEXT:    vcvtps2iubs %ymm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7d,0xa9,0x6b,0xc0]612; X86-NEXT:    retl # encoding: [0xc3]613entry:614  %0 = tail call <8 x i32> @llvm.x86.avx10.mask.vcvtps2iubs256(<8 x float> %__B, <8 x i32> zeroinitializer, i8 %__A)615  %1 = bitcast <8 x i32> %0 to <4 x i64>616  ret <4 x i64> %1617}618 619declare <8 x i32> @llvm.x86.avx10.mask.vcvtps2iubs256(<8 x float>, <8 x i32>, i8)620 621define dso_local <2 x i64> @test_mm_ipcvttbf16_epi8(<8 x bfloat> noundef %__A) {622; CHECK-LABEL: test_mm_ipcvttbf16_epi8:623; CHECK:       # %bb.0: # %entry624; CHECK-NEXT:    vcvttbf162ibs %xmm0, %xmm0 # encoding: [0x62,0xf5,0x7f,0x08,0x68,0xc0]625; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]626entry:627  %0 = tail call <8 x i16> @llvm.x86.avx10.vcvttbf162ibs128(<8 x bfloat> %__A)628  %1 = bitcast <8 x i16> %0 to <2 x i64>629  ret <2 x i64> %1630}631 632define dso_local <2 x i64> @test_mm_mask_ipcvttbf16_epi8(<2 x i64> noundef %__S, i8 noundef zeroext %__A, <8 x bfloat> noundef %__B) {633; X64-LABEL: test_mm_mask_ipcvttbf16_epi8:634; X64:       # %bb.0: # %entry635; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]636; X64-NEXT:    vcvttbf162ibs %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7f,0x09,0x68,0xc1]637; X64-NEXT:    retq # encoding: [0xc3]638;639; X86-LABEL: test_mm_mask_ipcvttbf16_epi8:640; X86:       # %bb.0: # %entry641; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]642; X86-NEXT:    vcvttbf162ibs %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7f,0x09,0x68,0xc1]643; X86-NEXT:    retl # encoding: [0xc3]644entry:645  %0 = bitcast <2 x i64> %__S to <8 x i16>646  %1 = tail call <8 x i16> @llvm.x86.avx10.vcvttbf162ibs128(<8 x bfloat> %__B)647  %2 = bitcast i8 %__A to <8 x i1>648  %3 = select <8 x i1> %2, <8 x i16> %1, <8 x i16> %0649  %4 = bitcast <8 x i16> %3 to <2 x i64>650  ret <2 x i64> %4651}652 653declare <8 x i16> @llvm.x86.avx10.vcvttbf162ibs128(<8 x bfloat>)654 655define dso_local <2 x i64> @test_mm_maskz_ipcvttbf16_epi8(i8 noundef zeroext %__A, <8 x bfloat> noundef %__B) {656; X64-LABEL: test_mm_maskz_ipcvttbf16_epi8:657; X64:       # %bb.0: # %entry658; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]659; X64-NEXT:    vcvttbf162ibs %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0x89,0x68,0xc0]660; X64-NEXT:    retq # encoding: [0xc3]661;662; X86-LABEL: test_mm_maskz_ipcvttbf16_epi8:663; X86:       # %bb.0: # %entry664; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]665; X86-NEXT:    vcvttbf162ibs %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0x89,0x68,0xc0]666; X86-NEXT:    retl # encoding: [0xc3]667entry:668  %0 = tail call <8 x i16> @llvm.x86.avx10.vcvttbf162ibs128(<8 x bfloat> %__B)669  %1 = bitcast i8 %__A to <8 x i1>670  %2 = select <8 x i1> %1, <8 x i16> %0, <8 x i16> zeroinitializer671  %3 = bitcast <8 x i16> %2 to <2 x i64>672  ret <2 x i64> %3673}674 675define dso_local <4 x i64> @test_mm256_ipcvttbf16_epi8(<16 x bfloat> noundef %__A) local_unnamed_addr #2 {676; CHECK-LABEL: test_mm256_ipcvttbf16_epi8:677; CHECK:       # %bb.0: # %entry678; CHECK-NEXT:    vcvttbf162ibs %ymm0, %ymm0 # encoding: [0x62,0xf5,0x7f,0x28,0x68,0xc0]679; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]680entry:681  %0 = tail call <16 x i16> @llvm.x86.avx10.vcvttbf162ibs256(<16 x bfloat> %__A)682  %1 = bitcast <16 x i16> %0 to <4 x i64>683  ret <4 x i64> %1684}685 686define dso_local <4 x i64> @test_mm256_mask_ipcvttbf16_epi8(<4 x i64> noundef %__S, i16 noundef zeroext %__A, <16 x bfloat> noundef %__B) local_unnamed_addr #2 {687; X64-LABEL: test_mm256_mask_ipcvttbf16_epi8:688; X64:       # %bb.0: # %entry689; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]690; X64-NEXT:    vcvttbf162ibs %ymm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x7f,0x29,0x68,0xc1]691; X64-NEXT:    retq # encoding: [0xc3]692;693; X86-LABEL: test_mm256_mask_ipcvttbf16_epi8:694; X86:       # %bb.0: # %entry695; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]696; X86-NEXT:    vcvttbf162ibs %ymm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x7f,0x29,0x68,0xc1]697; X86-NEXT:    retl # encoding: [0xc3]698entry:699  %0 = bitcast <4 x i64> %__S to <16 x i16>700  %1 = tail call <16 x i16> @llvm.x86.avx10.vcvttbf162ibs256(<16 x bfloat> %__B)701  %2 = bitcast i16 %__A to <16 x i1>702  %3 = select <16 x i1> %2, <16 x i16> %1, <16 x i16> %0703  %4 = bitcast <16 x i16> %3 to <4 x i64>704  ret <4 x i64> %4705}706 707define dso_local <4 x i64> @test_mm256_maskz_ipcvttbf16_epi8(i16 noundef zeroext %__A, <16 x bfloat> noundef %__B) local_unnamed_addr #2 {708; X64-LABEL: test_mm256_maskz_ipcvttbf16_epi8:709; X64:       # %bb.0: # %entry710; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]711; X64-NEXT:    vcvttbf162ibs %ymm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0xa9,0x68,0xc0]712; X64-NEXT:    retq # encoding: [0xc3]713;714; X86-LABEL: test_mm256_maskz_ipcvttbf16_epi8:715; X86:       # %bb.0: # %entry716; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]717; X86-NEXT:    vcvttbf162ibs %ymm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0xa9,0x68,0xc0]718; X86-NEXT:    retl # encoding: [0xc3]719entry:720  %0 = tail call <16 x i16> @llvm.x86.avx10.vcvttbf162ibs256(<16 x bfloat> %__B)721  %1 = bitcast i16 %__A to <16 x i1>722  %2 = select <16 x i1> %1, <16 x i16> %0, <16 x i16> zeroinitializer723  %3 = bitcast <16 x i16> %2 to <4 x i64>724  ret <4 x i64> %3725}726 727declare <16 x i16> @llvm.x86.avx10.vcvttbf162ibs256(<16 x bfloat>)728 729define dso_local <2 x i64> @test_mm_ipcvttbf16_epu8(<8 x bfloat> noundef %__A) {730; CHECK-LABEL: test_mm_ipcvttbf16_epu8:731; CHECK:       # %bb.0: # %entry732; CHECK-NEXT:    vcvttbf162iubs %xmm0, %xmm0 # encoding: [0x62,0xf5,0x7f,0x08,0x6a,0xc0]733; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]734entry:735  %0 = tail call <8 x i16> @llvm.x86.avx10.vcvttbf162iubs128(<8 x bfloat> %__A)736  %1 = bitcast <8 x i16> %0 to <2 x i64>737  ret <2 x i64> %1738}739 740define dso_local <2 x i64> @test_mm_mask_ipcvttbf16_epu8(<2 x i64> noundef %__S, i8 noundef zeroext %__A, <8 x bfloat> noundef %__B) {741; X64-LABEL: test_mm_mask_ipcvttbf16_epu8:742; X64:       # %bb.0: # %entry743; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]744; X64-NEXT:    vcvttbf162iubs %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7f,0x09,0x6a,0xc1]745; X64-NEXT:    retq # encoding: [0xc3]746;747; X86-LABEL: test_mm_mask_ipcvttbf16_epu8:748; X86:       # %bb.0: # %entry749; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]750; X86-NEXT:    vcvttbf162iubs %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7f,0x09,0x6a,0xc1]751; X86-NEXT:    retl # encoding: [0xc3]752entry:753  %0 = bitcast <2 x i64> %__S to <8 x i16>754  %1 = tail call <8 x i16> @llvm.x86.avx10.vcvttbf162iubs128(<8 x bfloat> %__B)755  %2 = bitcast i8 %__A to <8 x i1>756  %3 = select <8 x i1> %2, <8 x i16> %1, <8 x i16> %0757  %4 = bitcast <8 x i16> %3 to <2 x i64>758  ret <2 x i64> %4759}760 761declare <8 x i16> @llvm.x86.avx10.vcvttbf162iubs128(<8 x bfloat>)762 763define dso_local <2 x i64> @test_mm_maskz_ipcvttbf16_epu8(i8 noundef zeroext %__A, <8 x bfloat> noundef %__B) {764; X64-LABEL: test_mm_maskz_ipcvttbf16_epu8:765; X64:       # %bb.0: # %entry766; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]767; X64-NEXT:    vcvttbf162iubs %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0x89,0x6a,0xc0]768; X64-NEXT:    retq # encoding: [0xc3]769;770; X86-LABEL: test_mm_maskz_ipcvttbf16_epu8:771; X86:       # %bb.0: # %entry772; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]773; X86-NEXT:    vcvttbf162iubs %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0x89,0x6a,0xc0]774; X86-NEXT:    retl # encoding: [0xc3]775entry:776  %0 = tail call <8 x i16> @llvm.x86.avx10.vcvttbf162iubs128(<8 x bfloat> %__B)777  %1 = bitcast i8 %__A to <8 x i1>778  %2 = select <8 x i1> %1, <8 x i16> %0, <8 x i16> zeroinitializer779  %3 = bitcast <8 x i16> %2 to <2 x i64>780  ret <2 x i64> %3781}782 783define dso_local <4 x i64> @test_mm256_ipcvttbf16_epu8(<16 x bfloat> noundef %__A) local_unnamed_addr #2 {784; CHECK-LABEL: test_mm256_ipcvttbf16_epu8:785; CHECK:       # %bb.0: # %entry786; CHECK-NEXT:    vcvttbf162iubs %ymm0, %ymm0 # encoding: [0x62,0xf5,0x7f,0x28,0x6a,0xc0]787; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]788entry:789  %0 = tail call <16 x i16> @llvm.x86.avx10.vcvttbf162iubs256(<16 x bfloat> %__A)790  %1 = bitcast <16 x i16> %0 to <4 x i64>791  ret <4 x i64> %1792}793 794define dso_local <4 x i64> @test_mm256_mask_ipcvttbf16_epu8(<4 x i64> noundef %__S, i16 noundef zeroext %__A, <16 x bfloat> noundef %__B) local_unnamed_addr #2 {795; X64-LABEL: test_mm256_mask_ipcvttbf16_epu8:796; X64:       # %bb.0: # %entry797; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]798; X64-NEXT:    vcvttbf162iubs %ymm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x7f,0x29,0x6a,0xc1]799; X64-NEXT:    retq # encoding: [0xc3]800;801; X86-LABEL: test_mm256_mask_ipcvttbf16_epu8:802; X86:       # %bb.0: # %entry803; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]804; X86-NEXT:    vcvttbf162iubs %ymm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x7f,0x29,0x6a,0xc1]805; X86-NEXT:    retl # encoding: [0xc3]806entry:807  %0 = bitcast <4 x i64> %__S to <16 x i16>808  %1 = tail call <16 x i16> @llvm.x86.avx10.vcvttbf162iubs256(<16 x bfloat> %__B)809  %2 = bitcast i16 %__A to <16 x i1>810  %3 = select <16 x i1> %2, <16 x i16> %1, <16 x i16> %0811  %4 = bitcast <16 x i16> %3 to <4 x i64>812  ret <4 x i64> %4813}814 815define dso_local <4 x i64> @test_mm256_maskz_ipcvttbf16_epu8(i16 noundef zeroext %__A, <16 x bfloat> noundef %__B) local_unnamed_addr #2 {816; X64-LABEL: test_mm256_maskz_ipcvttbf16_epu8:817; X64:       # %bb.0: # %entry818; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]819; X64-NEXT:    vcvttbf162iubs %ymm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0xa9,0x6a,0xc0]820; X64-NEXT:    retq # encoding: [0xc3]821;822; X86-LABEL: test_mm256_maskz_ipcvttbf16_epu8:823; X86:       # %bb.0: # %entry824; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]825; X86-NEXT:    vcvttbf162iubs %ymm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0xa9,0x6a,0xc0]826; X86-NEXT:    retl # encoding: [0xc3]827entry:828  %0 = tail call <16 x i16> @llvm.x86.avx10.vcvttbf162iubs256(<16 x bfloat> %__B)829  %1 = bitcast i16 %__A to <16 x i1>830  %2 = select <16 x i1> %1, <16 x i16> %0, <16 x i16> zeroinitializer831  %3 = bitcast <16 x i16> %2 to <4 x i64>832  ret <4 x i64> %3833}834 835declare <16 x i16> @llvm.x86.avx10.vcvttbf162iubs256(<16 x bfloat>)836 837define dso_local <2 x i64> @test_mm_ipcvttph_epi8(<8 x half> noundef %__A) {838; CHECK-LABEL: test_mm_ipcvttph_epi8:839; CHECK:       # %bb.0: # %entry840; CHECK-NEXT:    vcvttph2ibs %xmm0, %xmm0 # encoding: [0x62,0xf5,0x7c,0x08,0x68,0xc0]841; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]842entry:843  %0 = tail call <8 x i16> @llvm.x86.avx10.mask.vcvttph2ibs128(<8 x half> %__A, <8 x i16> zeroinitializer, i8 -1)844  %1 = bitcast <8 x i16> %0 to <2 x i64>845  ret <2 x i64> %1846}847 848define dso_local <2 x i64> @test_mm_mask_ipcvttph_epi8(<2 x i64> noundef %__S, i8 noundef zeroext %__A, <8 x half> noundef %__B) {849; X64-LABEL: test_mm_mask_ipcvttph_epi8:850; X64:       # %bb.0: # %entry851; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]852; X64-NEXT:    vcvttph2ibs %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7c,0x09,0x68,0xc1]853; X64-NEXT:    retq # encoding: [0xc3]854;855; X86-LABEL: test_mm_mask_ipcvttph_epi8:856; X86:       # %bb.0: # %entry857; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]858; X86-NEXT:    vcvttph2ibs %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7c,0x09,0x68,0xc1]859; X86-NEXT:    retl # encoding: [0xc3]860entry:861  %0 = bitcast <2 x i64> %__S to <8 x i16>862  %1 = tail call <8 x i16> @llvm.x86.avx10.mask.vcvttph2ibs128(<8 x half> %__B, <8 x i16> %0, i8 %__A)863  %2 = bitcast <8 x i16> %1 to <2 x i64>864  ret <2 x i64> %2865}866 867declare <8 x i16> @llvm.x86.avx10.mask.vcvttph2ibs128(<8 x half>, <8 x i16>, i8)868 869define dso_local <2 x i64> @test_mm_maskz_ipcvttph_epi8(i8 noundef zeroext %__A, <8 x half> noundef %__B) {870; X64-LABEL: test_mm_maskz_ipcvttph_epi8:871; X64:       # %bb.0: # %entry872; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]873; X64-NEXT:    vcvttph2ibs %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0x89,0x68,0xc0]874; X64-NEXT:    retq # encoding: [0xc3]875;876; X86-LABEL: test_mm_maskz_ipcvttph_epi8:877; X86:       # %bb.0: # %entry878; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]879; X86-NEXT:    vcvttph2ibs %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0x89,0x68,0xc0]880; X86-NEXT:    retl # encoding: [0xc3]881entry:882  %0 = tail call <8 x i16> @llvm.x86.avx10.mask.vcvttph2ibs128(<8 x half> %__B, <8 x i16> zeroinitializer, i8 %__A)883  %1 = bitcast <8 x i16> %0 to <2 x i64>884  ret <2 x i64> %1885}886 887define dso_local <4 x i64> @test_mm256_ipcvttph_epi8(<16 x half> noundef %__A) local_unnamed_addr #2 {888; CHECK-LABEL: test_mm256_ipcvttph_epi8:889; CHECK:       # %bb.0: # %entry890; CHECK-NEXT:    vcvttph2ibs %ymm0, %ymm0 # encoding: [0x62,0xf5,0x7c,0x28,0x68,0xc0]891; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]892entry:893  %0 = tail call <16 x i16> @llvm.x86.avx10.mask.vcvttph2ibs256(<16 x half> %__A, <16 x i16> zeroinitializer, i16 -1)894  %1 = bitcast <16 x i16> %0 to <4 x i64>895  ret <4 x i64> %1896}897 898define dso_local <4 x i64> @test_mm256_mask_ipcvttph_epi8(<4 x i64> noundef %__S, i16 noundef zeroext %__A, <16 x half> noundef %__B) local_unnamed_addr #2 {899; X64-LABEL: test_mm256_mask_ipcvttph_epi8:900; X64:       # %bb.0: # %entry901; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]902; X64-NEXT:    vcvttph2ibs %ymm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x7c,0x29,0x68,0xc1]903; X64-NEXT:    retq # encoding: [0xc3]904;905; X86-LABEL: test_mm256_mask_ipcvttph_epi8:906; X86:       # %bb.0: # %entry907; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]908; X86-NEXT:    vcvttph2ibs %ymm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x7c,0x29,0x68,0xc1]909; X86-NEXT:    retl # encoding: [0xc3]910entry:911  %0 = bitcast <4 x i64> %__S to <16 x i16>912  %1 = tail call <16 x i16> @llvm.x86.avx10.mask.vcvttph2ibs256(<16 x half> %__B, <16 x i16> %0, i16 %__A)913  %2 = bitcast <16 x i16> %1 to <4 x i64>914  ret <4 x i64> %2915}916 917define dso_local <4 x i64> @test_mm256_maskz_ipcvttph_epi8(i16 noundef zeroext %__A, <16 x half> noundef %__B) local_unnamed_addr #2 {918; X64-LABEL: test_mm256_maskz_ipcvttph_epi8:919; X64:       # %bb.0: # %entry920; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]921; X64-NEXT:    vcvttph2ibs %ymm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0xa9,0x68,0xc0]922; X64-NEXT:    retq # encoding: [0xc3]923;924; X86-LABEL: test_mm256_maskz_ipcvttph_epi8:925; X86:       # %bb.0: # %entry926; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]927; X86-NEXT:    vcvttph2ibs %ymm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0xa9,0x68,0xc0]928; X86-NEXT:    retl # encoding: [0xc3]929entry:930  %0 = tail call <16 x i16> @llvm.x86.avx10.mask.vcvttph2ibs256(<16 x half> %__B, <16 x i16> zeroinitializer, i16 %__A)931  %1 = bitcast <16 x i16> %0 to <4 x i64>932  ret <4 x i64> %1933}934declare <16 x i16> @llvm.x86.avx10.mask.vcvttph2ibs256(<16 x half>, <16 x i16>, i16)935 936define dso_local <2 x i64> @test_mm_ipcvttph_epu8(<8 x half> noundef %__A) {937; CHECK-LABEL: test_mm_ipcvttph_epu8:938; CHECK:       # %bb.0: # %entry939; CHECK-NEXT:    vcvttph2iubs %xmm0, %xmm0 # encoding: [0x62,0xf5,0x7c,0x08,0x6a,0xc0]940; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]941entry:942  %0 = tail call <8 x i16> @llvm.x86.avx10.mask.vcvttph2iubs128(<8 x half> %__A, <8 x i16> zeroinitializer, i8 -1)943  %1 = bitcast <8 x i16> %0 to <2 x i64>944  ret <2 x i64> %1945}946 947define dso_local <2 x i64> @test_mm_mask_ipcvttph_epu8(<2 x i64> noundef %__S, i8 noundef zeroext %__A, <8 x half> noundef %__B) {948; X64-LABEL: test_mm_mask_ipcvttph_epu8:949; X64:       # %bb.0: # %entry950; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]951; X64-NEXT:    vcvttph2iubs %xmm1, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0x89,0x6a,0xc1]952; X64-NEXT:    retq # encoding: [0xc3]953;954; X86-LABEL: test_mm_mask_ipcvttph_epu8:955; X86:       # %bb.0: # %entry956; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]957; X86-NEXT:    vcvttph2iubs %xmm1, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0x89,0x6a,0xc1]958; X86-NEXT:    retl # encoding: [0xc3]959entry:960  %0 = bitcast <2 x i64> %__S to <8 x i16>961  %1 = tail call <8 x i16> @llvm.x86.avx10.mask.vcvttph2iubs128(<8 x half> %__B, <8 x i16> zeroinitializer, i8 %__A)962  %2 = bitcast <8 x i16> %1 to <2 x i64>963  ret <2 x i64> %2964}965 966declare <8 x i16> @llvm.x86.avx10.mask.vcvttph2iubs128(<8 x half>, <8 x i16>, i8)967 968define dso_local <2 x i64> @test_mm_maskz_ipcvttph_epu8(i8 noundef zeroext %__A, <8 x half> noundef %__B) {969; X64-LABEL: test_mm_maskz_ipcvttph_epu8:970; X64:       # %bb.0: # %entry971; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]972; X64-NEXT:    vcvttph2iubs %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0x89,0x6a,0xc0]973; X64-NEXT:    retq # encoding: [0xc3]974;975; X86-LABEL: test_mm_maskz_ipcvttph_epu8:976; X86:       # %bb.0: # %entry977; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]978; X86-NEXT:    vcvttph2iubs %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0x89,0x6a,0xc0]979; X86-NEXT:    retl # encoding: [0xc3]980entry:981  %0 = tail call <8 x i16> @llvm.x86.avx10.mask.vcvttph2iubs128(<8 x half> %__B, <8 x i16> zeroinitializer, i8 %__A)982  %1 = bitcast <8 x i16> %0 to <2 x i64>983  ret <2 x i64> %1984}985 986define dso_local <4 x i64> @test_mm256_ipcvttph_epu8(<16 x half> noundef %__A) local_unnamed_addr #2 {987; CHECK-LABEL: test_mm256_ipcvttph_epu8:988; CHECK:       # %bb.0: # %entry989; CHECK-NEXT:    vcvttph2iubs %ymm0, %ymm0 # encoding: [0x62,0xf5,0x7c,0x28,0x6a,0xc0]990; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]991entry:992  %0 = tail call <16 x i16> @llvm.x86.avx10.mask.vcvttph2iubs256(<16 x half> %__A, <16 x i16> zeroinitializer, i16 -1)993  %1 = bitcast <16 x i16> %0 to <4 x i64>994  ret <4 x i64> %1995}996 997define dso_local <4 x i64> @test_mm256_mask_ipcvttph_epu8(<4 x i64> noundef %__S, i16 noundef zeroext %__A, <16 x half> noundef %__B) local_unnamed_addr #2 {998; X64-LABEL: test_mm256_mask_ipcvttph_epu8:999; X64:       # %bb.0: # %entry1000; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]1001; X64-NEXT:    vcvttph2iubs %ymm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x7c,0x29,0x6a,0xc1]1002; X64-NEXT:    retq # encoding: [0xc3]1003;1004; X86-LABEL: test_mm256_mask_ipcvttph_epu8:1005; X86:       # %bb.0: # %entry1006; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]1007; X86-NEXT:    vcvttph2iubs %ymm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x7c,0x29,0x6a,0xc1]1008; X86-NEXT:    retl # encoding: [0xc3]1009entry:1010  %0 = bitcast <4 x i64> %__S to <16 x i16>1011  %1 = tail call <16 x i16> @llvm.x86.avx10.mask.vcvttph2iubs256(<16 x half> %__B, <16 x i16> %0, i16 %__A)1012  %2 = bitcast <16 x i16> %1 to <4 x i64>1013  ret <4 x i64> %21014}1015 1016define dso_local <4 x i64> @test_mm256_maskz_ipcvttph_epu8(i16 noundef zeroext %__A, <16 x half> noundef %__B) local_unnamed_addr #2 {1017; X64-LABEL: test_mm256_maskz_ipcvttph_epu8:1018; X64:       # %bb.0: # %entry1019; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]1020; X64-NEXT:    vcvttph2iubs %ymm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0xa9,0x6a,0xc0]1021; X64-NEXT:    retq # encoding: [0xc3]1022;1023; X86-LABEL: test_mm256_maskz_ipcvttph_epu8:1024; X86:       # %bb.0: # %entry1025; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]1026; X86-NEXT:    vcvttph2iubs %ymm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0xa9,0x6a,0xc0]1027; X86-NEXT:    retl # encoding: [0xc3]1028entry:1029  %0 = tail call <16 x i16> @llvm.x86.avx10.mask.vcvttph2iubs256(<16 x half> %__B, <16 x i16> zeroinitializer, i16 %__A)1030  %1 = bitcast <16 x i16> %0 to <4 x i64>1031  ret <4 x i64> %11032}1033 1034declare <16 x i16> @llvm.x86.avx10.mask.vcvttph2iubs256(<16 x half>, <16 x i16>, i16)1035 1036define dso_local <2 x i64> @test_mm_ipcvttps_epi8(<4 x float> noundef %__A) {1037; CHECK-LABEL: test_mm_ipcvttps_epi8:1038; CHECK:       # %bb.0: # %entry1039; CHECK-NEXT:    vcvttps2ibs %xmm0, %xmm0 # encoding: [0x62,0xf5,0x7d,0x08,0x68,0xc0]1040; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]1041entry:1042  %0 = tail call <4 x i32> @llvm.x86.avx10.mask.vcvttps2ibs128(<4 x float> %__A, <4 x i32> zeroinitializer, i8 -1)1043  %1 = bitcast <4 x i32> %0 to <2 x i64>1044  ret <2 x i64> %11045}1046 1047define dso_local <2 x i64> @test_mm_mask_ipcvttps_epi8(<2 x i64> noundef %__S, i8 noundef zeroext %__A, <4 x float> noundef %__B) {1048; X64-LABEL: test_mm_mask_ipcvttps_epi8:1049; X64:       # %bb.0: # %entry1050; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]1051; X64-NEXT:    vcvttps2ibs %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7d,0x09,0x68,0xc1]1052; X64-NEXT:    retq # encoding: [0xc3]1053;1054; X86-LABEL: test_mm_mask_ipcvttps_epi8:1055; X86:       # %bb.0: # %entry1056; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]1057; X86-NEXT:    vcvttps2ibs %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7d,0x09,0x68,0xc1]1058; X86-NEXT:    retl # encoding: [0xc3]1059entry:1060  %0 = bitcast <2 x i64> %__S to <4 x i32>1061  %1 = tail call <4 x i32> @llvm.x86.avx10.mask.vcvttps2ibs128(<4 x float> %__B, <4 x i32> %0, i8 %__A)1062  %2 = bitcast <4 x i32> %1 to <2 x i64>1063  ret <2 x i64> %21064}1065 1066define dso_local <2 x i64> @test_mm_maskz_ipcvttps_epi8(i8 noundef zeroext %__A, <4 x float> noundef %__B) {1067; X64-LABEL: test_mm_maskz_ipcvttps_epi8:1068; X64:       # %bb.0: # %entry1069; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]1070; X64-NEXT:    vcvttps2ibs %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7d,0x89,0x68,0xc0]1071; X64-NEXT:    retq # encoding: [0xc3]1072;1073; X86-LABEL: test_mm_maskz_ipcvttps_epi8:1074; X86:       # %bb.0: # %entry1075; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]1076; X86-NEXT:    vcvttps2ibs %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7d,0x89,0x68,0xc0]1077; X86-NEXT:    retl # encoding: [0xc3]1078entry:1079  %0 = tail call <4 x i32> @llvm.x86.avx10.mask.vcvttps2ibs128(<4 x float> %__B, <4 x i32> zeroinitializer, i8 %__A)1080  %1 = bitcast <4 x i32> %0 to <2 x i64>1081  ret <2 x i64> %11082}1083 1084declare <4 x i32> @llvm.x86.avx10.mask.vcvttps2ibs128(<4 x float>, <4 x i32>, i8)1085 1086define dso_local <4 x i64> @test_mm256_ipcvttps_epi8(<8 x float> noundef %__A) local_unnamed_addr #2 {1087; CHECK-LABEL: test_mm256_ipcvttps_epi8:1088; CHECK:       # %bb.0: # %entry1089; CHECK-NEXT:    vcvttps2ibs %ymm0, %ymm0 # encoding: [0x62,0xf5,0x7d,0x28,0x68,0xc0]1090; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]1091entry:1092  %0 = tail call <8 x i32> @llvm.x86.avx10.mask.vcvttps2ibs256(<8 x float> %__A, <8 x i32> zeroinitializer, i8 -1)1093  %1 = bitcast <8 x i32> %0 to <4 x i64>1094  ret <4 x i64> %11095}1096 1097define dso_local <4 x i64> @test_mm256_mask_ipcvttps_epi8(<4 x i64> noundef %__S, i8 noundef zeroext %__A, <8 x float> noundef %__B) local_unnamed_addr #2 {1098; X64-LABEL: test_mm256_mask_ipcvttps_epi8:1099; X64:       # %bb.0: # %entry1100; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]1101; X64-NEXT:    vcvttps2ibs %ymm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x7d,0x29,0x68,0xc1]1102; X64-NEXT:    retq # encoding: [0xc3]1103;1104; X86-LABEL: test_mm256_mask_ipcvttps_epi8:1105; X86:       # %bb.0: # %entry1106; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]1107; X86-NEXT:    vcvttps2ibs %ymm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x7d,0x29,0x68,0xc1]1108; X86-NEXT:    retl # encoding: [0xc3]1109entry:1110  %0 = bitcast <4 x i64> %__S to <8 x i32>1111  %1 = tail call <8 x i32> @llvm.x86.avx10.mask.vcvttps2ibs256(<8 x float> %__B, <8 x i32> %0, i8 %__A)1112  %2 = bitcast <8 x i32> %1 to <4 x i64>1113  ret <4 x i64> %21114}1115 1116define dso_local <4 x i64> @test_mm256_maskz_ipcvttps_epi8(i8 noundef zeroext %__A, <8 x float> noundef %__B) local_unnamed_addr #2 {1117; X64-LABEL: test_mm256_maskz_ipcvttps_epi8:1118; X64:       # %bb.0: # %entry1119; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]1120; X64-NEXT:    vcvttps2ibs %ymm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7d,0xa9,0x68,0xc0]1121; X64-NEXT:    retq # encoding: [0xc3]1122;1123; X86-LABEL: test_mm256_maskz_ipcvttps_epi8:1124; X86:       # %bb.0: # %entry1125; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]1126; X86-NEXT:    vcvttps2ibs %ymm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7d,0xa9,0x68,0xc0]1127; X86-NEXT:    retl # encoding: [0xc3]1128entry:1129  %0 = tail call <8 x i32> @llvm.x86.avx10.mask.vcvttps2ibs256(<8 x float> %__B, <8 x i32> zeroinitializer, i8 %__A)1130  %1 = bitcast <8 x i32> %0 to <4 x i64>1131  ret <4 x i64> %11132}1133 1134declare <8 x i32> @llvm.x86.avx10.mask.vcvttps2ibs256(<8 x float>, <8 x i32>, i8)1135 1136define dso_local <2 x i64> @test_mm_ipcvttps_epu8(<4 x float> noundef %__A) {1137; CHECK-LABEL: test_mm_ipcvttps_epu8:1138; CHECK:       # %bb.0: # %entry1139; CHECK-NEXT:    vcvttps2iubs %xmm0, %xmm0 # encoding: [0x62,0xf5,0x7d,0x08,0x6a,0xc0]1140; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]1141entry:1142  %0 = tail call <4 x i32> @llvm.x86.avx10.mask.vcvttps2iubs128(<4 x float> %__A, <4 x i32> zeroinitializer, i8 -1)1143  %1 = bitcast <4 x i32> %0 to <2 x i64>1144  ret <2 x i64> %11145}1146 1147define dso_local <2 x i64> @test_mm_mask_ipcvttps_epu8(<2 x i64> noundef %__S, i8 noundef zeroext %__A, <4 x float> noundef %__B) {1148; X64-LABEL: test_mm_mask_ipcvttps_epu8:1149; X64:       # %bb.0: # %entry1150; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]1151; X64-NEXT:    vcvttps2iubs %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7d,0x09,0x6a,0xc1]1152; X64-NEXT:    retq # encoding: [0xc3]1153;1154; X86-LABEL: test_mm_mask_ipcvttps_epu8:1155; X86:       # %bb.0: # %entry1156; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]1157; X86-NEXT:    vcvttps2iubs %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7d,0x09,0x6a,0xc1]1158; X86-NEXT:    retl # encoding: [0xc3]1159entry:1160  %0 = bitcast <2 x i64> %__S to <4 x i32>1161  %1 = tail call <4 x i32> @llvm.x86.avx10.mask.vcvttps2iubs128(<4 x float> %__B, <4 x i32> %0, i8 %__A)1162  %2 = bitcast <4 x i32> %1 to <2 x i64>1163  ret <2 x i64> %21164}1165 1166define dso_local <2 x i64> @test_mm_maskz_ipcvttps_epu8(i8 noundef zeroext %__A, <4 x float> noundef %__B) {1167; X64-LABEL: test_mm_maskz_ipcvttps_epu8:1168; X64:       # %bb.0: # %entry1169; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]1170; X64-NEXT:    vcvttps2iubs %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7d,0x89,0x6a,0xc0]1171; X64-NEXT:    retq # encoding: [0xc3]1172;1173; X86-LABEL: test_mm_maskz_ipcvttps_epu8:1174; X86:       # %bb.0: # %entry1175; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]1176; X86-NEXT:    vcvttps2iubs %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7d,0x89,0x6a,0xc0]1177; X86-NEXT:    retl # encoding: [0xc3]1178entry:1179  %0 = tail call <4 x i32> @llvm.x86.avx10.mask.vcvttps2iubs128(<4 x float> %__B, <4 x i32> zeroinitializer, i8 %__A)1180  %1 = bitcast <4 x i32> %0 to <2 x i64>1181  ret <2 x i64> %11182}1183 1184declare <4 x i32> @llvm.x86.avx10.mask.vcvttps2iubs128(<4 x float>, <4 x i32>, i8)1185 1186define dso_local <4 x i64> @test_mm256_ipcvttps_epu8(<8 x float> noundef %__A) local_unnamed_addr #2 {1187; CHECK-LABEL: test_mm256_ipcvttps_epu8:1188; CHECK:       # %bb.0: # %entry1189; CHECK-NEXT:    vcvttps2iubs %ymm0, %ymm0 # encoding: [0x62,0xf5,0x7d,0x28,0x6a,0xc0]1190; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]1191entry:1192  %0 = tail call <8 x i32> @llvm.x86.avx10.mask.vcvttps2iubs256(<8 x float> %__A, <8 x i32> zeroinitializer, i8 -1)1193  %1 = bitcast <8 x i32> %0 to <4 x i64>1194  ret <4 x i64> %11195}1196 1197define dso_local <4 x i64> @test_mm256_mask_ipcvttps_epu8(<4 x i64> noundef %__S, i8 noundef zeroext %__A, <8 x float> noundef %__B) local_unnamed_addr #2 {1198; X64-LABEL: test_mm256_mask_ipcvttps_epu8:1199; X64:       # %bb.0: # %entry1200; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]1201; X64-NEXT:    vcvttps2iubs %ymm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x7d,0x29,0x6a,0xc1]1202; X64-NEXT:    retq # encoding: [0xc3]1203;1204; X86-LABEL: test_mm256_mask_ipcvttps_epu8:1205; X86:       # %bb.0: # %entry1206; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]1207; X86-NEXT:    vcvttps2iubs %ymm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x7d,0x29,0x6a,0xc1]1208; X86-NEXT:    retl # encoding: [0xc3]1209entry:1210  %0 = bitcast <4 x i64> %__S to <8 x i32>1211  %1 = tail call <8 x i32> @llvm.x86.avx10.mask.vcvttps2iubs256(<8 x float> %__B, <8 x i32> %0, i8 %__A)1212  %2 = bitcast <8 x i32> %1 to <4 x i64>1213  ret <4 x i64> %21214}1215 1216define dso_local <4 x i64> @test_mm256_maskz_ipcvttps_epu8(i8 noundef zeroext %__A, <8 x float> noundef %__B) local_unnamed_addr #2 {1217; X64-LABEL: test_mm256_maskz_ipcvttps_epu8:1218; X64:       # %bb.0: # %entry1219; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]1220; X64-NEXT:    vcvttps2iubs %ymm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7d,0xa9,0x6a,0xc0]1221; X64-NEXT:    retq # encoding: [0xc3]1222;1223; X86-LABEL: test_mm256_maskz_ipcvttps_epu8:1224; X86:       # %bb.0: # %entry1225; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]1226; X86-NEXT:    vcvttps2iubs %ymm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7d,0xa9,0x6a,0xc0]1227; X86-NEXT:    retl # encoding: [0xc3]1228entry:1229  %0 = tail call <8 x i32> @llvm.x86.avx10.mask.vcvttps2iubs256(<8 x float> %__B, <8 x i32> zeroinitializer, i8 %__A)1230  %1 = bitcast <8 x i32> %0 to <4 x i64>1231  ret <4 x i64> %11232}1233 1234declare <8 x i32> @llvm.x86.avx10.mask.vcvttps2iubs256(<8 x float>, <8 x i32>, i8)1235