brintos

brintos / llvm-project-archived public Read only

0
0
Text · 47.2 KiB · 2e69b41 Raw
1004 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 <8 x i64> @test_mm512_ipcvtbf16_epi8(<32 x bfloat> noundef %__A) {6; CHECK-LABEL: test_mm512_ipcvtbf16_epi8:7; CHECK:       # %bb.0: # %entry8; CHECK-NEXT:    vcvtbf162ibs %zmm0, %zmm0 # encoding: [0x62,0xf5,0x7f,0x48,0x69,0xc0]9; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]10entry:11  %0 = tail call <32 x i16> @llvm.x86.avx10.vcvtbf162ibs512(<32 x bfloat> %__A)12  %1 = bitcast <32 x i16> %0 to <8 x i64>13  ret <8 x i64> %114}15 16define dso_local <8 x i64> @test_mm512_mask_ipcvtbf16_epi8(<8 x i64> noundef %__S, i32 noundef %__A, <32 x bfloat> noundef %__B) {17; X64-LABEL: test_mm512_mask_ipcvtbf16_epi8:18; X64:       # %bb.0: # %entry19; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]20; X64-NEXT:    vcvtbf162ibs %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x7f,0x49,0x69,0xc1]21; X64-NEXT:    retq # encoding: [0xc3]22;23; X86-LABEL: test_mm512_mask_ipcvtbf16_epi8:24; X86:       # %bb.0: # %entry25; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]26; X86-NEXT:    vcvtbf162ibs %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x7f,0x49,0x69,0xc1]27; X86-NEXT:    retl # encoding: [0xc3]28entry:29  %0 = bitcast <8 x i64> %__S to <32 x i16>30  %1 = tail call <32 x i16> @llvm.x86.avx10.vcvtbf162ibs512(<32 x bfloat> %__B)31  %2 = bitcast i32 %__A to <32 x i1>32  %3 = select <32 x i1> %2, <32 x i16> %1, <32 x i16> %033  %4 = bitcast <32 x i16> %3 to <8 x i64>34  ret <8 x i64> %435}36 37declare <32 x i16> @llvm.x86.avx10.vcvtbf162ibs512(<32 x bfloat>)38 39define dso_local <8 x i64> @test_mm512_maskz_ipcvtbf16_epi8(i32 noundef %__A, <32 x bfloat> noundef %__B) {40; X64-LABEL: test_mm512_maskz_ipcvtbf16_epi8:41; X64:       # %bb.0: # %entry42; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]43; X64-NEXT:    vcvtbf162ibs %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0xc9,0x69,0xc0]44; X64-NEXT:    retq # encoding: [0xc3]45;46; X86-LABEL: test_mm512_maskz_ipcvtbf16_epi8:47; X86:       # %bb.0: # %entry48; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]49; X86-NEXT:    vcvtbf162ibs %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0xc9,0x69,0xc0]50; X86-NEXT:    retl # encoding: [0xc3]51entry:52  %0 = tail call <32 x i16> @llvm.x86.avx10.vcvtbf162ibs512(<32 x bfloat> %__B)53  %1 = bitcast i32 %__A to <32 x i1>54  %2 = select <32 x i1> %1, <32 x i16> %0, <32 x i16> zeroinitializer55  %3 = bitcast <32 x i16> %2 to <8 x i64>56  ret <8 x i64> %357}58 59define dso_local <8 x i64> @test_mm512_ipcvtbf16_epu8(<32 x bfloat> noundef %__A) {60; CHECK-LABEL: test_mm512_ipcvtbf16_epu8:61; CHECK:       # %bb.0: # %entry62; CHECK-NEXT:    vcvtbf162iubs %zmm0, %zmm0 # encoding: [0x62,0xf5,0x7f,0x48,0x6b,0xc0]63; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]64entry:65  %0 = tail call <32 x i16> @llvm.x86.avx10.vcvtbf162iubs512(<32 x bfloat> %__A)66  %1 = bitcast <32 x i16> %0 to <8 x i64>67  ret <8 x i64> %168}69 70define dso_local <8 x i64> @test_mm512_mask_ipcvtbf16_epu8(<8 x i64> noundef %__S, i32 noundef %__A, <32 x bfloat> noundef %__B) {71; X64-LABEL: test_mm512_mask_ipcvtbf16_epu8:72; X64:       # %bb.0: # %entry73; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]74; X64-NEXT:    vcvtbf162iubs %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x7f,0x49,0x6b,0xc1]75; X64-NEXT:    retq # encoding: [0xc3]76;77; X86-LABEL: test_mm512_mask_ipcvtbf16_epu8:78; X86:       # %bb.0: # %entry79; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]80; X86-NEXT:    vcvtbf162iubs %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x7f,0x49,0x6b,0xc1]81; X86-NEXT:    retl # encoding: [0xc3]82entry:83  %0 = bitcast <8 x i64> %__S to <32 x i16>84  %1 = tail call <32 x i16> @llvm.x86.avx10.vcvtbf162iubs512(<32 x bfloat> %__B)85  %2 = bitcast i32 %__A to <32 x i1>86  %3 = select <32 x i1> %2, <32 x i16> %1, <32 x i16> %087  %4 = bitcast <32 x i16> %3 to <8 x i64>88  ret <8 x i64> %489}90 91declare <32 x i16> @llvm.x86.avx10.vcvtbf162iubs512(<32 x bfloat>)92 93define dso_local <8 x i64> @test_mm512_maskz_ipcvtbf16_epu8(i32 noundef %__A, <32 x bfloat> noundef %__B) {94; X64-LABEL: test_mm512_maskz_ipcvtbf16_epu8:95; X64:       # %bb.0: # %entry96; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]97; X64-NEXT:    vcvtbf162iubs %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0xc9,0x6b,0xc0]98; X64-NEXT:    retq # encoding: [0xc3]99;100; X86-LABEL: test_mm512_maskz_ipcvtbf16_epu8:101; X86:       # %bb.0: # %entry102; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]103; X86-NEXT:    vcvtbf162iubs %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0xc9,0x6b,0xc0]104; X86-NEXT:    retl # encoding: [0xc3]105entry:106  %0 = tail call <32 x i16> @llvm.x86.avx10.vcvtbf162iubs512(<32 x bfloat> %__B)107  %1 = bitcast i32 %__A to <32 x i1>108  %2 = select <32 x i1> %1, <32 x i16> %0, <32 x i16> zeroinitializer109  %3 = bitcast <32 x i16> %2 to <8 x i64>110  ret <8 x i64> %3111}112 113define dso_local <8 x i64> @test_mm512_ipcvtph_epi8(<32 x half> noundef %__A) {114; CHECK-LABEL: test_mm512_ipcvtph_epi8:115; CHECK:       # %bb.0: # %entry116; CHECK-NEXT:    vcvtph2ibs %zmm0, %zmm0 # encoding: [0x62,0xf5,0x7c,0x48,0x69,0xc0]117; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]118entry:119  %0 = tail call <32 x i16> @llvm.x86.avx10.mask.vcvtph2ibs512(<32 x half> %__A, <32 x i16> zeroinitializer, i32 -1, i32 4)120  %1 = bitcast <32 x i16> %0 to <8 x i64>121  ret <8 x i64> %1122}123 124define dso_local <8 x i64> @test_mm512_mask_ipcvtph_epi8(<8 x i64> noundef %__S, i32 noundef %__A, <32 x half> noundef %__B) {125; X64-LABEL: test_mm512_mask_ipcvtph_epi8:126; X64:       # %bb.0: # %entry127; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]128; X64-NEXT:    vcvtph2ibs %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x7c,0x49,0x69,0xc1]129; X64-NEXT:    retq # encoding: [0xc3]130;131; X86-LABEL: test_mm512_mask_ipcvtph_epi8:132; X86:       # %bb.0: # %entry133; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]134; X86-NEXT:    vcvtph2ibs %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x7c,0x49,0x69,0xc1]135; X86-NEXT:    retl # encoding: [0xc3]136entry:137  %0 = bitcast <8 x i64> %__S to <32 x i16>138  %1 = tail call <32 x i16> @llvm.x86.avx10.mask.vcvtph2ibs512(<32 x half> %__B, <32 x i16> %0, i32 %__A, i32 4)139  %2 = bitcast <32 x i16> %1 to <8 x i64>140  ret <8 x i64> %2141}142 143declare <32 x i16> @llvm.x86.avx10.mask.vcvtph2ibs512(<32 x half>, <32 x i16>, i32, i32)144 145define dso_local <8 x i64> @test_mm512_maskz_ipcvtph_epi8(i32 noundef %__A, <32 x half> noundef %__B) {146; X64-LABEL: test_mm512_maskz_ipcvtph_epi8:147; X64:       # %bb.0: # %entry148; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]149; X64-NEXT:    vcvtph2ibs %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0xc9,0x69,0xc0]150; X64-NEXT:    retq # encoding: [0xc3]151;152; X86-LABEL: test_mm512_maskz_ipcvtph_epi8:153; X86:       # %bb.0: # %entry154; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]155; X86-NEXT:    vcvtph2ibs %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0xc9,0x69,0xc0]156; X86-NEXT:    retl # encoding: [0xc3]157entry:158  %0 = tail call <32 x i16> @llvm.x86.avx10.mask.vcvtph2ibs512(<32 x half> %__B, <32 x i16> zeroinitializer, i32 %__A, i32 4)159  %1 = bitcast <32 x i16> %0 to <8 x i64>160  ret <8 x i64> %1161}162 163define dso_local <8 x i64> @test_mm512_ipcvt_roundph_epi8(<32 x half> noundef %__A) {164; CHECK-LABEL: test_mm512_ipcvt_roundph_epi8:165; CHECK:       # %bb.0: # %entry166; CHECK-NEXT:    vcvtph2ibs {rz-sae}, %zmm0, %zmm0 # encoding: [0x62,0xf5,0x7c,0x78,0x69,0xc0]167; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]168entry:169  %0 = tail call <32 x i16> @llvm.x86.avx10.mask.vcvtph2ibs512(<32 x half> %__A, <32 x i16> zeroinitializer, i32 -1, i32 11)170  %1 = bitcast <32 x i16> %0 to <8 x i64>171  ret <8 x i64> %1172}173 174define dso_local <8 x i64> @test_mm512_mask_ipcvt_roundph_epi8(<8 x i64> noundef %__S, i32 noundef %__A, <32 x half> noundef %__B) {175; X64-LABEL: test_mm512_mask_ipcvt_roundph_epi8:176; X64:       # %bb.0: # %entry177; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]178; X64-NEXT:    vcvtph2ibs {rz-sae}, %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x7c,0x79,0x69,0xc1]179; X64-NEXT:    retq # encoding: [0xc3]180;181; X86-LABEL: test_mm512_mask_ipcvt_roundph_epi8:182; X86:       # %bb.0: # %entry183; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]184; X86-NEXT:    vcvtph2ibs {rz-sae}, %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x7c,0x79,0x69,0xc1]185; X86-NEXT:    retl # encoding: [0xc3]186entry:187  %0 = bitcast <8 x i64> %__S to <32 x i16>188  %1 = tail call <32 x i16> @llvm.x86.avx10.mask.vcvtph2ibs512(<32 x half> %__B, <32 x i16> %0, i32 %__A, i32 11)189  %2 = bitcast <32 x i16> %1 to <8 x i64>190  ret <8 x i64> %2191}192 193define dso_local <8 x i64> @test_mm512_maskz_ipcvt_roundph_epi8(i32 noundef %__A, <32 x half> noundef %__B) {194; X64-LABEL: test_mm512_maskz_ipcvt_roundph_epi8:195; X64:       # %bb.0: # %entry196; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]197; X64-NEXT:    vcvtph2ibs {rz-sae}, %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0xf9,0x69,0xc0]198; X64-NEXT:    retq # encoding: [0xc3]199;200; X86-LABEL: test_mm512_maskz_ipcvt_roundph_epi8:201; X86:       # %bb.0: # %entry202; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]203; X86-NEXT:    vcvtph2ibs {rz-sae}, %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0xf9,0x69,0xc0]204; X86-NEXT:    retl # encoding: [0xc3]205entry:206  %0 = tail call <32 x i16> @llvm.x86.avx10.mask.vcvtph2ibs512(<32 x half> %__B, <32 x i16> zeroinitializer, i32 %__A, i32 11)207  %1 = bitcast <32 x i16> %0 to <8 x i64>208  ret <8 x i64> %1209}210 211define dso_local <8 x i64> @test_mm512_ipcvtph_epu8(<32 x half> noundef %__A) {212; CHECK-LABEL: test_mm512_ipcvtph_epu8:213; CHECK:       # %bb.0: # %entry214; CHECK-NEXT:    vcvtph2iubs %zmm0, %zmm0 # encoding: [0x62,0xf5,0x7c,0x48,0x6b,0xc0]215; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]216entry:217  %0 = tail call <32 x i16> @llvm.x86.avx10.mask.vcvtph2iubs512(<32 x half> %__A, <32 x i16> zeroinitializer, i32 -1, i32 4)218  %1 = bitcast <32 x i16> %0 to <8 x i64>219  ret <8 x i64> %1220}221 222define dso_local <8 x i64> @test_mm512_mask_ipcvtph_epu8(<8 x i64> noundef %__S, i32 noundef %__A, <32 x half> noundef %__B) {223; X64-LABEL: test_mm512_mask_ipcvtph_epu8:224; X64:       # %bb.0: # %entry225; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]226; X64-NEXT:    vcvtph2iubs %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x7c,0x49,0x6b,0xc1]227; X64-NEXT:    retq # encoding: [0xc3]228;229; X86-LABEL: test_mm512_mask_ipcvtph_epu8:230; X86:       # %bb.0: # %entry231; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]232; X86-NEXT:    vcvtph2iubs %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x7c,0x49,0x6b,0xc1]233; X86-NEXT:    retl # encoding: [0xc3]234entry:235  %0 = bitcast <8 x i64> %__S to <32 x i16>236  %1 = tail call <32 x i16> @llvm.x86.avx10.mask.vcvtph2iubs512( <32 x half> %__B, <32 x i16> %0, i32 %__A, i32 4)237  %2 = bitcast <32 x i16> %1 to <8 x i64>238  ret <8 x i64> %2239}240 241define dso_local <8 x i64> @test_mm512_maskz_ipcvtph_epu8(i32 noundef %__A, <32 x half> noundef %__B) {242; X64-LABEL: test_mm512_maskz_ipcvtph_epu8:243; X64:       # %bb.0: # %entry244; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]245; X64-NEXT:    vcvtph2iubs %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0xc9,0x6b,0xc0]246; X64-NEXT:    retq # encoding: [0xc3]247;248; X86-LABEL: test_mm512_maskz_ipcvtph_epu8:249; X86:       # %bb.0: # %entry250; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]251; X86-NEXT:    vcvtph2iubs %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0xc9,0x6b,0xc0]252; X86-NEXT:    retl # encoding: [0xc3]253entry:254  %0 = tail call <32 x i16> @llvm.x86.avx10.mask.vcvtph2iubs512(<32 x half> %__B, <32 x i16> zeroinitializer, i32 %__A, i32 4)255  %1 = bitcast <32 x i16> %0 to <8 x i64>256  ret <8 x i64> %1257}258 259define dso_local <8 x i64> @test_mm512_ipcvt_roundph_epu8(<32 x half> noundef %__A) {260; CHECK-LABEL: test_mm512_ipcvt_roundph_epu8:261; CHECK:       # %bb.0: # %entry262; CHECK-NEXT:    vcvtph2iubs {rz-sae}, %zmm0, %zmm0 # encoding: [0x62,0xf5,0x7c,0x78,0x6b,0xc0]263; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]264entry:265  %0 = tail call <32 x i16> @llvm.x86.avx10.mask.vcvtph2iubs512(<32 x half> %__A, <32 x i16> zeroinitializer, i32 -1, i32 11)266  %1 = bitcast <32 x i16> %0 to <8 x i64>267  ret <8 x i64> %1268}269 270define dso_local <8 x i64> @test_mm512_mask_ipcvt_roundph_epu8(<8 x i64> noundef %__S, i32 noundef %__A, <32 x half> noundef %__B) {271; X64-LABEL: test_mm512_mask_ipcvt_roundph_epu8:272; X64:       # %bb.0: # %entry273; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]274; X64-NEXT:    vcvtph2iubs {rz-sae}, %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x7c,0x79,0x6b,0xc1]275; X64-NEXT:    retq # encoding: [0xc3]276;277; X86-LABEL: test_mm512_mask_ipcvt_roundph_epu8:278; X86:       # %bb.0: # %entry279; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]280; X86-NEXT:    vcvtph2iubs {rz-sae}, %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x7c,0x79,0x6b,0xc1]281; X86-NEXT:    retl # encoding: [0xc3]282entry:283  %0 = bitcast <8 x i64> %__S to <32 x i16>284  %1 = tail call <32 x i16> @llvm.x86.avx10.mask.vcvtph2iubs512(<32 x half> %__B, <32 x i16> %0, i32 %__A, i32 11)285  %2 = bitcast <32 x i16> %1 to <8 x i64>286  ret <8 x i64> %2287}288 289declare <32 x i16> @llvm.x86.avx10.mask.vcvtph2iubs512(<32 x half>, <32 x i16>, i32, i32)290 291define dso_local <8 x i64> @test_mm512_maskz_ipcvt_roundph_epu8(i32 noundef %__A, <32 x half> noundef %__B) {292; X64-LABEL: test_mm512_maskz_ipcvt_roundph_epu8:293; X64:       # %bb.0: # %entry294; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]295; X64-NEXT:    vcvtph2iubs {rz-sae}, %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0xf9,0x6b,0xc0]296; X64-NEXT:    retq # encoding: [0xc3]297;298; X86-LABEL: test_mm512_maskz_ipcvt_roundph_epu8:299; X86:       # %bb.0: # %entry300; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]301; X86-NEXT:    vcvtph2iubs {rz-sae}, %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0xf9,0x6b,0xc0]302; X86-NEXT:    retl # encoding: [0xc3]303entry:304  %0 = tail call <32 x i16> @llvm.x86.avx10.mask.vcvtph2iubs512(<32 x half> %__B, <32 x i16> zeroinitializer, i32 %__A, i32 11)305  %1 = bitcast <32 x i16> %0 to <8 x i64>306  ret <8 x i64> %1307}308 309define dso_local <8 x i64> @test_mm512_ipcvtps_epi8(<16 x float> noundef %__A) {310; CHECK-LABEL: test_mm512_ipcvtps_epi8:311; CHECK:       # %bb.0: # %entry312; CHECK-NEXT:    vcvtps2ibs %zmm0, %zmm0 # encoding: [0x62,0xf5,0x7d,0x48,0x69,0xc0]313; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]314entry:315  %0 = tail call <16 x i32> @llvm.x86.avx10.mask.vcvtps2ibs512(<16 x float> %__A, <16 x i32> zeroinitializer, i16 -1, i32 4)316  %1 = bitcast <16 x i32> %0 to <8 x i64>317  ret <8 x i64> %1318}319 320define dso_local <8 x i64> @test_mm512_mask_ipcvtps_epi8(<8 x i64> noundef %__S, i16 noundef zeroext %__A, <16 x float> noundef %__B) {321; X64-LABEL: test_mm512_mask_ipcvtps_epi8:322; X64:       # %bb.0: # %entry323; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]324; X64-NEXT:    vcvtps2ibs %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x7d,0x49,0x69,0xc1]325; X64-NEXT:    retq # encoding: [0xc3]326;327; X86-LABEL: test_mm512_mask_ipcvtps_epi8:328; X86:       # %bb.0: # %entry329; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]330; X86-NEXT:    vcvtps2ibs %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x7d,0x49,0x69,0xc1]331; X86-NEXT:    retl # encoding: [0xc3]332entry:333  %0 = bitcast <8 x i64> %__S to <16 x i32>334  %1 = tail call <16 x i32> @llvm.x86.avx10.mask.vcvtps2ibs512(<16 x float> %__B, <16 x i32> %0, i16 %__A, i32 4)335  %2 = bitcast <16 x i32> %1 to <8 x i64>336  ret <8 x i64> %2337}338 339declare <16 x i32> @llvm.x86.avx10.mask.vcvtps2ibs512(<16 x float>, <16 x i32>, i16, i32)340 341define dso_local <8 x i64> @test_mm512_maskz_ipcvtps_epi8(i16 noundef zeroext %__A, <16 x float> noundef %__B) {342; X64-LABEL: test_mm512_maskz_ipcvtps_epi8:343; X64:       # %bb.0: # %entry344; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]345; X64-NEXT:    vcvtps2ibs %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7d,0xc9,0x69,0xc0]346; X64-NEXT:    retq # encoding: [0xc3]347;348; X86-LABEL: test_mm512_maskz_ipcvtps_epi8:349; X86:       # %bb.0: # %entry350; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]351; X86-NEXT:    vcvtps2ibs %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7d,0xc9,0x69,0xc0]352; X86-NEXT:    retl # encoding: [0xc3]353entry:354  %0 = tail call <16 x i32> @llvm.x86.avx10.mask.vcvtps2ibs512(<16 x float> %__B, <16 x i32> zeroinitializer, i16 %__A, i32 4)355  %1 = bitcast <16 x i32> %0 to <8 x i64>356  ret <8 x i64> %1357}358 359define dso_local <8 x i64> @test_mm512_ipcvt_roundps_epi8(<16 x float> noundef %__A) {360; CHECK-LABEL: test_mm512_ipcvt_roundps_epi8:361; CHECK:       # %bb.0: # %entry362; CHECK-NEXT:    vcvtps2ibs {rz-sae}, %zmm0, %zmm0 # encoding: [0x62,0xf5,0x7d,0x78,0x69,0xc0]363; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]364entry:365  %0 = tail call <16 x i32> @llvm.x86.avx10.mask.vcvtps2ibs512(<16 x float> %__A, <16 x i32> zeroinitializer, i16 -1, i32 11)366  %1 = bitcast <16 x i32> %0 to <8 x i64>367  ret <8 x i64> %1368}369 370define dso_local <8 x i64> @test_mm512_mask_ipcvt_roundps_epi8(<8 x i64> noundef %__S, i16 noundef zeroext %__A, <16 x float> noundef %__B) {371; X64-LABEL: test_mm512_mask_ipcvt_roundps_epi8:372; X64:       # %bb.0: # %entry373; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]374; X64-NEXT:    vcvtps2ibs {rz-sae}, %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x7d,0x79,0x69,0xc1]375; X64-NEXT:    retq # encoding: [0xc3]376;377; X86-LABEL: test_mm512_mask_ipcvt_roundps_epi8:378; X86:       # %bb.0: # %entry379; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]380; X86-NEXT:    vcvtps2ibs {rz-sae}, %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x7d,0x79,0x69,0xc1]381; X86-NEXT:    retl # encoding: [0xc3]382entry:383  %0 = bitcast <8 x i64> %__S to <16 x i32>384  %1 = tail call <16 x i32> @llvm.x86.avx10.mask.vcvtps2ibs512(<16 x float> %__B, <16 x i32> %0, i16 %__A, i32 11)385  %2 = bitcast <16 x i32> %1 to <8 x i64>386  ret <8 x i64> %2387}388 389define dso_local <8 x i64> @test_mm512_maskz_ipcvt_roundps_epi8(i16 noundef zeroext %__A, <16 x float> noundef %__B) {390; X64-LABEL: test_mm512_maskz_ipcvt_roundps_epi8:391; X64:       # %bb.0: # %entry392; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]393; X64-NEXT:    vcvtps2ibs {rz-sae}, %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7d,0xf9,0x69,0xc0]394; X64-NEXT:    retq # encoding: [0xc3]395;396; X86-LABEL: test_mm512_maskz_ipcvt_roundps_epi8:397; X86:       # %bb.0: # %entry398; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]399; X86-NEXT:    vcvtps2ibs {rz-sae}, %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7d,0xf9,0x69,0xc0]400; X86-NEXT:    retl # encoding: [0xc3]401entry:402  %0 = tail call <16 x i32> @llvm.x86.avx10.mask.vcvtps2ibs512(<16 x float> %__B, <16 x i32> zeroinitializer, i16 %__A, i32 11)403  %1 = bitcast <16 x i32> %0 to <8 x i64>404  ret <8 x i64> %1405}406 407define dso_local <8 x i64> @test_mm512_ipcvtps_epu8(<16 x float> noundef %__A) {408; CHECK-LABEL: test_mm512_ipcvtps_epu8:409; CHECK:       # %bb.0: # %entry410; CHECK-NEXT:    vcvtps2iubs %zmm0, %zmm0 # encoding: [0x62,0xf5,0x7d,0x48,0x6b,0xc0]411; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]412entry:413  %0 = tail call <16 x i32> @llvm.x86.avx10.mask.vcvtps2iubs512(<16 x float> %__A, <16 x i32> zeroinitializer, i16 -1, i32 4)414  %1 = bitcast <16 x i32> %0 to <8 x i64>415  ret <8 x i64> %1416}417 418define dso_local <8 x i64> @test_mm512_mask_ipcvtps_epu8(<8 x i64> noundef %__S, i16 noundef zeroext %__A, <16 x float> noundef %__B) {419; X64-LABEL: test_mm512_mask_ipcvtps_epu8:420; X64:       # %bb.0: # %entry421; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]422; X64-NEXT:    vcvtps2iubs %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x7d,0x49,0x6b,0xc1]423; X64-NEXT:    retq # encoding: [0xc3]424;425; X86-LABEL: test_mm512_mask_ipcvtps_epu8:426; X86:       # %bb.0: # %entry427; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]428; X86-NEXT:    vcvtps2iubs %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x7d,0x49,0x6b,0xc1]429; X86-NEXT:    retl # encoding: [0xc3]430entry:431  %0 = bitcast <8 x i64> %__S to <16 x i32>432  %1 = tail call <16 x i32> @llvm.x86.avx10.mask.vcvtps2iubs512(<16 x float> %__B, <16 x i32> %0, i16 %__A, i32 4)433  %2 = bitcast <16 x i32> %1 to <8 x i64>434  ret <8 x i64> %2435}436 437define dso_local <8 x i64> @test_mm512_maskz_ipcvtps_epu8(i16 noundef zeroext %__A, <16 x float> noundef %__B) {438; X64-LABEL: test_mm512_maskz_ipcvtps_epu8:439; X64:       # %bb.0: # %entry440; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]441; X64-NEXT:    vcvtps2iubs %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7d,0xc9,0x6b,0xc0]442; X64-NEXT:    retq # encoding: [0xc3]443;444; X86-LABEL: test_mm512_maskz_ipcvtps_epu8:445; X86:       # %bb.0: # %entry446; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]447; X86-NEXT:    vcvtps2iubs %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7d,0xc9,0x6b,0xc0]448; X86-NEXT:    retl # encoding: [0xc3]449entry:450  %0 = tail call <16 x i32> @llvm.x86.avx10.mask.vcvtps2iubs512(<16 x float> %__B, <16 x i32> zeroinitializer, i16 %__A, i32 4)451  %1 = bitcast <16 x i32> %0 to <8 x i64>452  ret <8 x i64> %1453}454 455define dso_local <8 x i64> @test_mm512_ipcvt_roundps_epu8(<16 x float> noundef %__A) {456; CHECK-LABEL: test_mm512_ipcvt_roundps_epu8:457; CHECK:       # %bb.0: # %entry458; CHECK-NEXT:    vcvtps2iubs {rz-sae}, %zmm0, %zmm0 # encoding: [0x62,0xf5,0x7d,0x78,0x6b,0xc0]459; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]460entry:461  %0 = tail call <16 x i32> @llvm.x86.avx10.mask.vcvtps2iubs512(<16 x float> %__A, <16 x i32> zeroinitializer, i16 -1, i32 11)462  %1 = bitcast <16 x i32> %0 to <8 x i64>463  ret <8 x i64> %1464}465 466define dso_local <8 x i64> @test_mm512_mask_ipcvt_roundps_epu8(<8 x i64> noundef %__S, i16 noundef zeroext %__A, <16 x float> noundef %__B) {467; X64-LABEL: test_mm512_mask_ipcvt_roundps_epu8:468; X64:       # %bb.0: # %entry469; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]470; X64-NEXT:    vcvtps2iubs {rz-sae}, %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x7d,0x79,0x6b,0xc1]471; X64-NEXT:    retq # encoding: [0xc3]472;473; X86-LABEL: test_mm512_mask_ipcvt_roundps_epu8:474; X86:       # %bb.0: # %entry475; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]476; X86-NEXT:    vcvtps2iubs {rz-sae}, %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x7d,0x79,0x6b,0xc1]477; X86-NEXT:    retl # encoding: [0xc3]478entry:479  %0 = bitcast <8 x i64> %__S to <16 x i32>480  %1 = tail call <16 x i32> @llvm.x86.avx10.mask.vcvtps2iubs512(<16 x float> %__B, <16 x i32> %0, i16 %__A, i32 11)481  %2 = bitcast <16 x i32> %1 to <8 x i64>482  ret <8 x i64> %2483}484 485declare <16 x i32> @llvm.x86.avx10.mask.vcvtps2iubs512(<16 x float>, <16 x i32>, i16, i32)486 487define dso_local <8 x i64> @test_mm512_maskz_ipcvt_roundps_epu8(i16 noundef zeroext %__A, <16 x float> noundef %__B) {488; X64-LABEL: test_mm512_maskz_ipcvt_roundps_epu8:489; X64:       # %bb.0: # %entry490; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]491; X64-NEXT:    vcvtps2iubs {rz-sae}, %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7d,0xf9,0x6b,0xc0]492; X64-NEXT:    retq # encoding: [0xc3]493;494; X86-LABEL: test_mm512_maskz_ipcvt_roundps_epu8:495; X86:       # %bb.0: # %entry496; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]497; X86-NEXT:    vcvtps2iubs {rz-sae}, %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7d,0xf9,0x6b,0xc0]498; X86-NEXT:    retl # encoding: [0xc3]499entry:500  %0 = tail call <16 x i32> @llvm.x86.avx10.mask.vcvtps2iubs512(<16 x float> %__B, <16 x i32> zeroinitializer, i16 %__A, i32 11)501  %1 = bitcast <16 x i32> %0 to <8 x i64>502  ret <8 x i64> %1503}504 505define dso_local <8 x i64> @test_mm512_ipcvttbf16_epi8(<32 x bfloat> noundef %__A) {506; CHECK-LABEL: test_mm512_ipcvttbf16_epi8:507; CHECK:       # %bb.0: # %entry508; CHECK-NEXT:    vcvttbf162ibs %zmm0, %zmm0 # encoding: [0x62,0xf5,0x7f,0x48,0x68,0xc0]509; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]510entry:511  %0 = tail call <32 x i16> @llvm.x86.avx10.vcvttbf162ibs512(<32 x bfloat> %__A)512  %1 = bitcast <32 x i16> %0 to <8 x i64>513  ret <8 x i64> %1514}515 516define dso_local <8 x i64> @test_mm512_mask_ipcvttbf16_epi8(<8 x i64> noundef %__S, i32 noundef %__A, <32 x bfloat> noundef %__B) {517; X64-LABEL: test_mm512_mask_ipcvttbf16_epi8:518; X64:       # %bb.0: # %entry519; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]520; X64-NEXT:    vcvttbf162ibs %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x7f,0x49,0x68,0xc1]521; X64-NEXT:    retq # encoding: [0xc3]522;523; X86-LABEL: test_mm512_mask_ipcvttbf16_epi8:524; X86:       # %bb.0: # %entry525; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]526; X86-NEXT:    vcvttbf162ibs %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x7f,0x49,0x68,0xc1]527; X86-NEXT:    retl # encoding: [0xc3]528entry:529  %0 = bitcast <8 x i64> %__S to <32 x i16>530  %1 = tail call <32 x i16> @llvm.x86.avx10.vcvttbf162ibs512(<32 x bfloat> %__B)531  %2 = bitcast i32 %__A to <32 x i1>532  %3 = select <32 x i1> %2, <32 x i16> %1, <32 x i16> %0533  %4 = bitcast <32 x i16> %3 to <8 x i64>534  ret <8 x i64> %4535}536 537declare <32 x i16> @llvm.x86.avx10.vcvttbf162ibs512(<32 x bfloat>)538 539define dso_local <8 x i64> @test_mm512_maskz_ipcvttbf16_epi8(i32 noundef %__A, <32 x bfloat> noundef %__B) {540; X64-LABEL: test_mm512_maskz_ipcvttbf16_epi8:541; X64:       # %bb.0: # %entry542; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]543; X64-NEXT:    vcvttbf162ibs %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0xc9,0x68,0xc0]544; X64-NEXT:    retq # encoding: [0xc3]545;546; X86-LABEL: test_mm512_maskz_ipcvttbf16_epi8:547; X86:       # %bb.0: # %entry548; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]549; X86-NEXT:    vcvttbf162ibs %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0xc9,0x68,0xc0]550; X86-NEXT:    retl # encoding: [0xc3]551entry:552  %0 = tail call <32 x i16> @llvm.x86.avx10.vcvttbf162ibs512(<32 x bfloat> %__B)553  %1 = bitcast i32 %__A to <32 x i1>554  %2 = select <32 x i1> %1, <32 x i16> %0, <32 x i16> zeroinitializer555  %3 = bitcast <32 x i16> %2 to <8 x i64>556  ret <8 x i64> %3557}558 559define dso_local <8 x i64> @test_mm512_ipcvttbf16_epu8(<32 x bfloat> noundef %__A) {560; CHECK-LABEL: test_mm512_ipcvttbf16_epu8:561; CHECK:       # %bb.0: # %entry562; CHECK-NEXT:    vcvttbf162iubs %zmm0, %zmm0 # encoding: [0x62,0xf5,0x7f,0x48,0x6a,0xc0]563; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]564entry:565  %0 = tail call <32 x i16> @llvm.x86.avx10.vcvttbf162iubs512(<32 x bfloat> %__A)566  %1 = bitcast <32 x i16> %0 to <8 x i64>567  ret <8 x i64> %1568}569 570define dso_local <8 x i64> @test_mm512_mask_ipcvttbf16_epu8(<8 x i64> noundef %__S, i32 noundef %__A, <32 x bfloat> noundef %__B) {571; X64-LABEL: test_mm512_mask_ipcvttbf16_epu8:572; X64:       # %bb.0: # %entry573; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]574; X64-NEXT:    vcvttbf162iubs %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x7f,0x49,0x6a,0xc1]575; X64-NEXT:    retq # encoding: [0xc3]576;577; X86-LABEL: test_mm512_mask_ipcvttbf16_epu8:578; X86:       # %bb.0: # %entry579; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]580; X86-NEXT:    vcvttbf162iubs %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x7f,0x49,0x6a,0xc1]581; X86-NEXT:    retl # encoding: [0xc3]582entry:583  %0 = bitcast <8 x i64> %__S to <32 x i16>584  %1 = tail call <32 x i16> @llvm.x86.avx10.vcvttbf162iubs512(<32 x bfloat> %__B)585  %2 = bitcast i32 %__A to <32 x i1>586  %3 = select <32 x i1> %2, <32 x i16> %1, <32 x i16> %0587  %4 = bitcast <32 x i16> %3 to <8 x i64>588  ret <8 x i64> %4589}590 591declare <32 x i16> @llvm.x86.avx10.vcvttbf162iubs512(<32 x bfloat>)592 593define dso_local <8 x i64> @test_mm512_maskz_ipcvttbf16_epu8(i32 noundef %__A, <32 x bfloat> noundef %__B) {594; X64-LABEL: test_mm512_maskz_ipcvttbf16_epu8:595; X64:       # %bb.0: # %entry596; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]597; X64-NEXT:    vcvttbf162iubs %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0xc9,0x6a,0xc0]598; X64-NEXT:    retq # encoding: [0xc3]599;600; X86-LABEL: test_mm512_maskz_ipcvttbf16_epu8:601; X86:       # %bb.0: # %entry602; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]603; X86-NEXT:    vcvttbf162iubs %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0xc9,0x6a,0xc0]604; X86-NEXT:    retl # encoding: [0xc3]605entry:606  %0 = tail call <32 x i16> @llvm.x86.avx10.vcvttbf162iubs512(<32 x bfloat> %__B)607  %1 = bitcast i32 %__A to <32 x i1>608  %2 = select <32 x i1> %1, <32 x i16> %0, <32 x i16> zeroinitializer609  %3 = bitcast <32 x i16> %2 to <8 x i64>610  ret <8 x i64> %3611}612 613define dso_local <8 x i64> @test_mm512_ipcvttph_epi8(<32 x half> noundef %__A) {614; CHECK-LABEL: test_mm512_ipcvttph_epi8:615; CHECK:       # %bb.0: # %entry616; CHECK-NEXT:    vcvttph2ibs %zmm0, %zmm0 # encoding: [0x62,0xf5,0x7c,0x48,0x68,0xc0]617; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]618entry:619  %0 = tail call <32 x i16> @llvm.x86.avx10.mask.vcvttph2ibs512(<32 x half> %__A, <32 x i16> zeroinitializer, i32 -1, i32 4)620  %1 = bitcast <32 x i16> %0 to <8 x i64>621  ret <8 x i64> %1622}623 624define dso_local <8 x i64> @test_mm512_mask_ipcvttph_epi8(<8 x i64> noundef %__S, i32 noundef %__A, <32 x half> noundef %__B) {625; X64-LABEL: test_mm512_mask_ipcvttph_epi8:626; X64:       # %bb.0: # %entry627; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]628; X64-NEXT:    vcvttph2ibs %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x7c,0x49,0x68,0xc1]629; X64-NEXT:    retq # encoding: [0xc3]630;631; X86-LABEL: test_mm512_mask_ipcvttph_epi8:632; X86:       # %bb.0: # %entry633; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]634; X86-NEXT:    vcvttph2ibs %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x7c,0x49,0x68,0xc1]635; X86-NEXT:    retl # encoding: [0xc3]636entry:637  %0 = bitcast <8 x i64> %__S to <32 x i16>638  %1 = tail call <32 x i16> @llvm.x86.avx10.mask.vcvttph2ibs512(<32 x half> %__B, <32 x i16> %0, i32 %__A, i32 4)639  %2 = bitcast <32 x i16> %1 to <8 x i64>640  ret <8 x i64> %2641}642 643define dso_local <8 x i64> @test_mm512_maskz_ipcvttph_epi8(i32 noundef %__A, <32 x half> noundef %__B) {644; X64-LABEL: test_mm512_maskz_ipcvttph_epi8:645; X64:       # %bb.0: # %entry646; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]647; X64-NEXT:    vcvttph2ibs %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0xc9,0x68,0xc0]648; X64-NEXT:    retq # encoding: [0xc3]649;650; X86-LABEL: test_mm512_maskz_ipcvttph_epi8:651; X86:       # %bb.0: # %entry652; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]653; X86-NEXT:    vcvttph2ibs %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0xc9,0x68,0xc0]654; X86-NEXT:    retl # encoding: [0xc3]655entry:656  %0 = tail call <32 x i16> @llvm.x86.avx10.mask.vcvttph2ibs512(<32 x half> %__B, <32 x i16> zeroinitializer, i32 %__A, i32 4)657  %1 = bitcast <32 x i16> %0 to <8 x i64>658  ret <8 x i64> %1659}660 661define dso_local <8 x i64> @test_mm512_ipcvtt_roundph_epi8(<32 x half> noundef %__A) {662; CHECK-LABEL: test_mm512_ipcvtt_roundph_epi8:663; CHECK:       # %bb.0: # %entry664; CHECK-NEXT:    vcvttph2ibs {sae}, %zmm0, %zmm0 # encoding: [0x62,0xf5,0x7c,0x18,0x68,0xc0]665; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]666entry:667  %0 = tail call <32 x i16> @llvm.x86.avx10.mask.vcvttph2ibs512(<32 x half> %__A, <32 x i16> zeroinitializer, i32 -1, i32 8)668  %1 = bitcast <32 x i16> %0 to <8 x i64>669  ret <8 x i64> %1670}671 672define dso_local <8 x i64> @test_mm512_mask_ipcvtt_roundph_epi8(<8 x i64> noundef %__S, i32 noundef %__A, <32 x half> noundef %__B) {673; X64-LABEL: test_mm512_mask_ipcvtt_roundph_epi8:674; X64:       # %bb.0: # %entry675; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]676; X64-NEXT:    vcvttph2ibs {sae}, %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x7c,0x19,0x68,0xc1]677; X64-NEXT:    retq # encoding: [0xc3]678;679; X86-LABEL: test_mm512_mask_ipcvtt_roundph_epi8:680; X86:       # %bb.0: # %entry681; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]682; X86-NEXT:    vcvttph2ibs {sae}, %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x7c,0x19,0x68,0xc1]683; X86-NEXT:    retl # encoding: [0xc3]684entry:685  %0 = bitcast <8 x i64> %__S to <32 x i16>686  %1 = tail call <32 x i16> @llvm.x86.avx10.mask.vcvttph2ibs512(<32 x half> %__B, <32 x i16> %0, i32 %__A, i32 8)687  %2 = bitcast <32 x i16> %1 to <8 x i64>688  ret <8 x i64> %2689}690 691declare <32 x i16> @llvm.x86.avx10.mask.vcvttph2ibs512(<32 x half>, <32 x i16>, i32, i32)692 693define dso_local <8 x i64> @test_mm512_maskz_ipcvtt_roundph_epi8(i32 noundef %__A, <32 x half> noundef %__B) {694; X64-LABEL: test_mm512_maskz_ipcvtt_roundph_epi8:695; X64:       # %bb.0: # %entry696; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]697; X64-NEXT:    vcvttph2ibs {sae}, %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0x99,0x68,0xc0]698; X64-NEXT:    retq # encoding: [0xc3]699;700; X86-LABEL: test_mm512_maskz_ipcvtt_roundph_epi8:701; X86:       # %bb.0: # %entry702; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]703; X86-NEXT:    vcvttph2ibs {sae}, %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0x99,0x68,0xc0]704; X86-NEXT:    retl # encoding: [0xc3]705entry:706  %0 = tail call <32 x i16> @llvm.x86.avx10.mask.vcvttph2ibs512(<32 x half> %__B, <32 x i16> zeroinitializer, i32 %__A, i32 8)707  %1 = bitcast <32 x i16> %0 to <8 x i64>708  ret <8 x i64> %1709}710 711define dso_local <8 x i64> @test_mm512_ipcvttph_epu8(<32 x half> noundef %__A) {712; CHECK-LABEL: test_mm512_ipcvttph_epu8:713; CHECK:       # %bb.0: # %entry714; CHECK-NEXT:    vcvttph2iubs %zmm0, %zmm0 # encoding: [0x62,0xf5,0x7c,0x48,0x6a,0xc0]715; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]716entry:717  %0 = tail call <32 x i16> @llvm.x86.avx10.mask.vcvttph2iubs512(<32 x half> %__A, <32 x i16> zeroinitializer, i32 -1, i32 4)718  %1 = bitcast <32 x i16> %0 to <8 x i64>719  ret <8 x i64> %1720}721 722define dso_local <8 x i64> @test_mm512_mask_ipcvttph_epu8(<8 x i64> noundef %__S, i32 noundef %__A, <32 x half> noundef %__B) {723; X64-LABEL: test_mm512_mask_ipcvttph_epu8:724; X64:       # %bb.0: # %entry725; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]726; X64-NEXT:    vcvttph2iubs %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x7c,0x49,0x6a,0xc1]727; X64-NEXT:    retq # encoding: [0xc3]728;729; X86-LABEL: test_mm512_mask_ipcvttph_epu8:730; X86:       # %bb.0: # %entry731; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]732; X86-NEXT:    vcvttph2iubs %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x7c,0x49,0x6a,0xc1]733; X86-NEXT:    retl # encoding: [0xc3]734entry:735  %0 = bitcast <8 x i64> %__S to <32 x i16>736  %1 = tail call <32 x i16> @llvm.x86.avx10.mask.vcvttph2iubs512(<32 x half> %__B, <32 x i16> %0, i32 %__A, i32 4)737  %2 = bitcast <32 x i16> %1 to <8 x i64>738  ret <8 x i64> %2739}740 741define dso_local <8 x i64> @test_mm512_maskz_ipcvttph_epu8(i32 noundef %__A, <32 x half> noundef %__B) {742; X64-LABEL: test_mm512_maskz_ipcvttph_epu8:743; X64:       # %bb.0: # %entry744; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]745; X64-NEXT:    vcvttph2iubs %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0xc9,0x6a,0xc0]746; X64-NEXT:    retq # encoding: [0xc3]747;748; X86-LABEL: test_mm512_maskz_ipcvttph_epu8:749; X86:       # %bb.0: # %entry750; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]751; X86-NEXT:    vcvttph2iubs %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0xc9,0x6a,0xc0]752; X86-NEXT:    retl # encoding: [0xc3]753entry:754  %0 = tail call <32 x i16> @llvm.x86.avx10.mask.vcvttph2iubs512(<32 x half> %__B, <32 x i16> zeroinitializer, i32 %__A, i32 4)755  %1 = bitcast <32 x i16> %0 to <8 x i64>756  ret <8 x i64> %1757}758 759define dso_local <8 x i64> @test_mm512_ipcvtt_roundph_epu8(<32 x half> noundef %__A) {760; CHECK-LABEL: test_mm512_ipcvtt_roundph_epu8:761; CHECK:       # %bb.0: # %entry762; CHECK-NEXT:    vcvttph2iubs {sae}, %zmm0, %zmm0 # encoding: [0x62,0xf5,0x7c,0x18,0x6a,0xc0]763; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]764entry:765  %0 = tail call <32 x i16> @llvm.x86.avx10.mask.vcvttph2iubs512(<32 x half> %__A, <32 x i16> zeroinitializer, i32 -1, i32 8)766  %1 = bitcast <32 x i16> %0 to <8 x i64>767  ret <8 x i64> %1768}769 770define dso_local <8 x i64> @test_mm512_mask_ipcvtt_roundph_epu8(<8 x i64> noundef %__S, i32 noundef %__A, <32 x half> noundef %__B) {771; X64-LABEL: test_mm512_mask_ipcvtt_roundph_epu8:772; X64:       # %bb.0: # %entry773; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]774; X64-NEXT:    vcvttph2iubs {sae}, %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x7c,0x19,0x6a,0xc1]775; X64-NEXT:    retq # encoding: [0xc3]776;777; X86-LABEL: test_mm512_mask_ipcvtt_roundph_epu8:778; X86:       # %bb.0: # %entry779; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]780; X86-NEXT:    vcvttph2iubs {sae}, %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x7c,0x19,0x6a,0xc1]781; X86-NEXT:    retl # encoding: [0xc3]782entry:783  %0 = bitcast <8 x i64> %__S to <32 x i16>784  %1 = tail call <32 x i16> @llvm.x86.avx10.mask.vcvttph2iubs512(<32 x half> %__B, <32 x i16> %0, i32 %__A, i32 8)785  %2 = bitcast <32 x i16> %1 to <8 x i64>786  ret <8 x i64> %2787}788 789declare <32 x i16> @llvm.x86.avx10.mask.vcvttph2iubs512(<32 x half>, <32 x i16>, i32, i32)790 791define dso_local <8 x i64> @test_mm512_maskz_ipcvtt_roundph_epu8(i32 noundef %__A, <32 x half> noundef %__B) {792; X64-LABEL: test_mm512_maskz_ipcvtt_roundph_epu8:793; X64:       # %bb.0: # %entry794; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]795; X64-NEXT:    vcvttph2iubs {sae}, %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0x99,0x6a,0xc0]796; X64-NEXT:    retq # encoding: [0xc3]797;798; X86-LABEL: test_mm512_maskz_ipcvtt_roundph_epu8:799; X86:       # %bb.0: # %entry800; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]801; X86-NEXT:    vcvttph2iubs {sae}, %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0x99,0x6a,0xc0]802; X86-NEXT:    retl # encoding: [0xc3]803entry:804  %0 = tail call <32 x i16> @llvm.x86.avx10.mask.vcvttph2iubs512(<32 x half> %__B, <32 x i16> zeroinitializer, i32 %__A, i32 8)805  %1 = bitcast <32 x i16> %0 to <8 x i64>806  ret <8 x i64> %1807}808 809define dso_local <8 x i64> @test_mm512_ipcvttps_epi8(<16 x float> noundef %__A) {810; CHECK-LABEL: test_mm512_ipcvttps_epi8:811; CHECK:       # %bb.0: # %entry812; CHECK-NEXT:    vcvttps2ibs %zmm0, %zmm0 # encoding: [0x62,0xf5,0x7d,0x48,0x68,0xc0]813; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]814entry:815  %0 = tail call <16 x i32> @llvm.x86.avx10.mask.vcvttps2ibs512(<16 x float> %__A, <16 x i32> zeroinitializer, i16 -1, i32 4)816  %1 = bitcast <16 x i32> %0 to <8 x i64>817  ret <8 x i64> %1818}819 820define dso_local <8 x i64> @test_mm512_mask_ipcvttps_epi8(<8 x i64> noundef %__S, i16 noundef zeroext %__A, <16 x float> noundef %__B) {821; X64-LABEL: test_mm512_mask_ipcvttps_epi8:822; X64:       # %bb.0: # %entry823; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]824; X64-NEXT:    vcvttps2ibs %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x7d,0x49,0x68,0xc1]825; X64-NEXT:    retq # encoding: [0xc3]826;827; X86-LABEL: test_mm512_mask_ipcvttps_epi8:828; X86:       # %bb.0: # %entry829; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]830; X86-NEXT:    vcvttps2ibs %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x7d,0x49,0x68,0xc1]831; X86-NEXT:    retl # encoding: [0xc3]832entry:833  %0 = bitcast <8 x i64> %__S to <16 x i32>834  %1 = tail call <16 x i32> @llvm.x86.avx10.mask.vcvttps2ibs512(<16 x float> %__B, <16 x i32> %0, i16 %__A, i32 4)835  %2 = bitcast <16 x i32> %1 to <8 x i64>836  ret <8 x i64> %2837}838 839define dso_local <8 x i64> @test_mm512_maskz_ipcvttps_epi8(i16 noundef zeroext %__A, <16 x float> noundef %__B) {840; X64-LABEL: test_mm512_maskz_ipcvttps_epi8:841; X64:       # %bb.0: # %entry842; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]843; X64-NEXT:    vcvttps2ibs %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7d,0xc9,0x68,0xc0]844; X64-NEXT:    retq # encoding: [0xc3]845;846; X86-LABEL: test_mm512_maskz_ipcvttps_epi8:847; X86:       # %bb.0: # %entry848; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]849; X86-NEXT:    vcvttps2ibs %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7d,0xc9,0x68,0xc0]850; X86-NEXT:    retl # encoding: [0xc3]851entry:852  %0 = tail call <16 x i32> @llvm.x86.avx10.mask.vcvttps2ibs512(<16 x float> %__B, <16 x i32> zeroinitializer, i16 %__A, i32 4)853  %1 = bitcast <16 x i32> %0 to <8 x i64>854  ret <8 x i64> %1855}856 857define dso_local <8 x i64> @test_mm512_ipcvtt_roundps_epi8(<16 x float> noundef %__A) {858; CHECK-LABEL: test_mm512_ipcvtt_roundps_epi8:859; CHECK:       # %bb.0: # %entry860; CHECK-NEXT:    vcvttps2ibs {sae}, %zmm0, %zmm0 # encoding: [0x62,0xf5,0x7d,0x18,0x68,0xc0]861; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]862entry:863  %0 = tail call <16 x i32> @llvm.x86.avx10.mask.vcvttps2ibs512(<16 x float> %__A, <16 x i32> zeroinitializer, i16 -1, i32 8)864  %1 = bitcast <16 x i32> %0 to <8 x i64>865  ret <8 x i64> %1866}867 868define dso_local <8 x i64> @test_mm512_mask_ipcvtt_roundps_epi8(<8 x i64> noundef %__S, i16 noundef zeroext %__A, <16 x float> noundef %__B) {869; X64-LABEL: test_mm512_mask_ipcvtt_roundps_epi8:870; X64:       # %bb.0: # %entry871; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]872; X64-NEXT:    vcvttps2ibs {sae}, %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x7d,0x19,0x68,0xc1]873; X64-NEXT:    retq # encoding: [0xc3]874;875; X86-LABEL: test_mm512_mask_ipcvtt_roundps_epi8:876; X86:       # %bb.0: # %entry877; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]878; X86-NEXT:    vcvttps2ibs {sae}, %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x7d,0x19,0x68,0xc1]879; X86-NEXT:    retl # encoding: [0xc3]880entry:881  %0 = bitcast <8 x i64> %__S to <16 x i32>882  %1 = tail call <16 x i32> @llvm.x86.avx10.mask.vcvttps2ibs512(<16 x float> %__B, <16 x i32> %0, i16 %__A, i32 8)883  %2 = bitcast <16 x i32> %1 to <8 x i64>884  ret <8 x i64> %2885}886 887declare <16 x i32> @llvm.x86.avx10.mask.vcvttps2ibs512(<16 x float>, <16 x i32>, i16, i32)888 889define dso_local <8 x i64> @test_mm512_maskz_ipcvtt_roundps_epi8(i16 noundef zeroext %__A, <16 x float> noundef %__B) {890; X64-LABEL: test_mm512_maskz_ipcvtt_roundps_epi8:891; X64:       # %bb.0: # %entry892; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]893; X64-NEXT:    vcvttps2ibs {sae}, %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7d,0x99,0x68,0xc0]894; X64-NEXT:    retq # encoding: [0xc3]895;896; X86-LABEL: test_mm512_maskz_ipcvtt_roundps_epi8:897; X86:       # %bb.0: # %entry898; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]899; X86-NEXT:    vcvttps2ibs {sae}, %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7d,0x99,0x68,0xc0]900; X86-NEXT:    retl # encoding: [0xc3]901entry:902  %0 = tail call <16 x i32> @llvm.x86.avx10.mask.vcvttps2ibs512(<16 x float> %__B, <16 x i32> zeroinitializer, i16 %__A, i32 8)903  %1 = bitcast <16 x i32> %0 to <8 x i64>904  ret <8 x i64> %1905}906 907define dso_local <8 x i64> @test_mm512_ipcvttps_epu8(<16 x float> noundef %__A) {908; CHECK-LABEL: test_mm512_ipcvttps_epu8:909; CHECK:       # %bb.0: # %entry910; CHECK-NEXT:    vcvttps2iubs %zmm0, %zmm0 # encoding: [0x62,0xf5,0x7d,0x48,0x6a,0xc0]911; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]912entry:913  %0 = tail call <16 x i32> @llvm.x86.avx10.mask.vcvttps2iubs512(<16 x float> %__A, <16 x i32> zeroinitializer, i16 -1, i32 4)914  %1 = bitcast <16 x i32> %0 to <8 x i64>915  ret <8 x i64> %1916}917 918define dso_local <8 x i64> @test_mm512_mask_ipcvttps_epu8(<8 x i64> noundef %__S, i16 noundef zeroext %__A, <16 x float> noundef %__B) {919; X64-LABEL: test_mm512_mask_ipcvttps_epu8:920; X64:       # %bb.0: # %entry921; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]922; X64-NEXT:    vcvttps2iubs %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x7d,0x49,0x6a,0xc1]923; X64-NEXT:    retq # encoding: [0xc3]924;925; X86-LABEL: test_mm512_mask_ipcvttps_epu8:926; X86:       # %bb.0: # %entry927; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]928; X86-NEXT:    vcvttps2iubs %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x7d,0x49,0x6a,0xc1]929; X86-NEXT:    retl # encoding: [0xc3]930entry:931  %0 = bitcast <8 x i64> %__S to <16 x i32>932  %1 = tail call <16 x i32> @llvm.x86.avx10.mask.vcvttps2iubs512(<16 x float> %__B, <16 x i32> %0, i16 %__A, i32 4)933  %2 = bitcast <16 x i32> %1 to <8 x i64>934  ret <8 x i64> %2935}936 937define dso_local <8 x i64> @test_mm512_maskz_ipcvttps_epu8(i16 noundef zeroext %__A, <16 x float> noundef %__B) {938; X64-LABEL: test_mm512_maskz_ipcvttps_epu8:939; X64:       # %bb.0: # %entry940; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]941; X64-NEXT:    vcvttps2iubs %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7d,0xc9,0x6a,0xc0]942; X64-NEXT:    retq # encoding: [0xc3]943;944; X86-LABEL: test_mm512_maskz_ipcvttps_epu8:945; X86:       # %bb.0: # %entry946; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]947; X86-NEXT:    vcvttps2iubs %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7d,0xc9,0x6a,0xc0]948; X86-NEXT:    retl # encoding: [0xc3]949entry:950  %0 = tail call <16 x i32> @llvm.x86.avx10.mask.vcvttps2iubs512(<16 x float> %__B, <16 x i32> zeroinitializer, i16 %__A, i32 4)951  %1 = bitcast <16 x i32> %0 to <8 x i64>952  ret <8 x i64> %1953}954 955define dso_local <8 x i64> @test_mm512_ipcvtt_roundps_epu8(<16 x float> noundef %__A) {956; CHECK-LABEL: test_mm512_ipcvtt_roundps_epu8:957; CHECK:       # %bb.0: # %entry958; CHECK-NEXT:    vcvttps2iubs {sae}, %zmm0, %zmm0 # encoding: [0x62,0xf5,0x7d,0x18,0x6a,0xc0]959; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]960entry:961  %0 = tail call <16 x i32> @llvm.x86.avx10.mask.vcvttps2iubs512(<16 x float> %__A, <16 x i32> zeroinitializer, i16 -1, i32 8)962  %1 = bitcast <16 x i32> %0 to <8 x i64>963  ret <8 x i64> %1964}965 966define dso_local <8 x i64> @test_mm512_mask_ipcvtt_roundps_epu8(<8 x i64> noundef %__S, i16 noundef zeroext %__A, <16 x float> noundef %__B) {967; X64-LABEL: test_mm512_mask_ipcvtt_roundps_epu8:968; X64:       # %bb.0: # %entry969; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]970; X64-NEXT:    vcvttps2iubs {sae}, %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x7d,0x19,0x6a,0xc1]971; X64-NEXT:    retq # encoding: [0xc3]972;973; X86-LABEL: test_mm512_mask_ipcvtt_roundps_epu8:974; X86:       # %bb.0: # %entry975; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]976; X86-NEXT:    vcvttps2iubs {sae}, %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x7d,0x19,0x6a,0xc1]977; X86-NEXT:    retl # encoding: [0xc3]978entry:979  %0 = bitcast <8 x i64> %__S to <16 x i32>980  %1 = tail call <16 x i32> @llvm.x86.avx10.mask.vcvttps2iubs512(<16 x float> %__B, <16 x i32> %0, i16 %__A, i32 8)981  %2 = bitcast <16 x i32> %1 to <8 x i64>982  ret <8 x i64> %2983}984 985declare <16 x i32> @llvm.x86.avx10.mask.vcvttps2iubs512(<16 x float>, <16 x i32>, i16, i32)986 987define dso_local <8 x i64> @test_mm512_maskz_ipcvtt_roundps_epu8(i16 noundef zeroext %__A, <16 x float> noundef %__B) {988; X64-LABEL: test_mm512_maskz_ipcvtt_roundps_epu8:989; X64:       # %bb.0: # %entry990; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]991; X64-NEXT:    vcvttps2iubs {sae}, %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7d,0x99,0x6a,0xc0]992; X64-NEXT:    retq # encoding: [0xc3]993;994; X86-LABEL: test_mm512_maskz_ipcvtt_roundps_epu8:995; X86:       # %bb.0: # %entry996; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]997; X86-NEXT:    vcvttps2iubs {sae}, %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7d,0x99,0x6a,0xc0]998; X86-NEXT:    retl # encoding: [0xc3]999entry:1000  %0 = tail call <16 x i32> @llvm.x86.avx10.mask.vcvttps2iubs512(<16 x float> %__B, <16 x i32> zeroinitializer, i16 %__A, i32 8)1001  %1 = bitcast <16 x i32> %0 to <8 x i64>1002  ret <8 x i64> %11003}1004