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