brintos

brintos / llvm-project-archived public Read only

0
0
Text · 63.5 KiB · 04c93eb Raw
1284 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -verify-machineinstrs -mtriple=x86_64-unknown-unknown --show-mc-encoding -mattr=+avx10.2 | FileCheck %s --check-prefixes=CHECK,X643; RUN: llc < %s -verify-machineinstrs -mtriple=i686-unknown-unknown --show-mc-encoding -mattr=+avx10.2 | FileCheck %s --check-prefixes=CHECK,X864 5define <8 x half> @test_int_x86_avx10_vcvt2ps2phx128(<4 x float> %A, <4 x float> %B) {6; CHECK-LABEL: test_int_x86_avx10_vcvt2ps2phx128:7; CHECK:       # %bb.0:8; CHECK-NEXT:    vcvt2ps2phx %xmm1, %xmm0, %xmm0 # encoding: [0x62,0xf2,0x7d,0x08,0x67,0xc1]9; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]10  %ret = call <8 x half> @llvm.x86.avx10.mask.vcvt2ps2phx.128(<4 x float> %A, <4 x float> %B, <8 x half> zeroinitializer, i8 -1)11  ret <8 x half> %ret12}13 14define <8 x half> @test_int_x86_avx10_vcvt2ps2phx128_mask(<8 x half> %W, i8 %U, <4 x float> %A, <4 x float> %B) {15; X64-LABEL: test_int_x86_avx10_vcvt2ps2phx128_mask:16; X64:       # %bb.0:17; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]18; X64-NEXT:    vcvt2ps2phx %xmm2, %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf2,0x75,0x09,0x67,0xc2]19; X64-NEXT:    retq # encoding: [0xc3]20;21; X86-LABEL: test_int_x86_avx10_vcvt2ps2phx128_mask:22; X86:       # %bb.0:23; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]24; X86-NEXT:    vcvt2ps2phx %xmm2, %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf2,0x75,0x09,0x67,0xc2]25; X86-NEXT:    retl # encoding: [0xc3]26  %ret = call <8 x half> @llvm.x86.avx10.mask.vcvt2ps2phx.128(<4 x float> %A, <4 x float> %B, <8 x half> %W, i8 %U)27  ret <8 x half> %ret28}29 30define <8 x half> @test_int_x86_avx10_vcvt2ps2phx128_maskz(i8 %U, <4 x float> %A, <4 x float> %B) {31; X64-LABEL: test_int_x86_avx10_vcvt2ps2phx128_maskz:32; X64:       # %bb.0:33; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]34; X64-NEXT:    vcvt2ps2phx %xmm1, %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf2,0x7d,0x89,0x67,0xc1]35; X64-NEXT:    retq # encoding: [0xc3]36;37; X86-LABEL: test_int_x86_avx10_vcvt2ps2phx128_maskz:38; X86:       # %bb.0:39; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]40; X86-NEXT:    vcvt2ps2phx %xmm1, %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf2,0x7d,0x89,0x67,0xc1]41; X86-NEXT:    retl # encoding: [0xc3]42  %ret = call <8 x half> @llvm.x86.avx10.mask.vcvt2ps2phx.128(<4 x float> %A, <4 x float> %B, <8 x half> zeroinitializer, i8 %U)43  ret <8 x half> %ret44}45 46declare <8 x half> @llvm.x86.avx10.mask.vcvt2ps2phx.128(<4 x float>, <4 x float>, <8 x half>, i8)47 48define <16 x half> @test_int_x86_avx10_vcvt2ps2phx256(<8 x float> %A, <8 x float> %B) {49; CHECK-LABEL: test_int_x86_avx10_vcvt2ps2phx256:50; CHECK:       # %bb.0:51; CHECK-NEXT:    vcvt2ps2phx %ymm1, %ymm0, %ymm0 # encoding: [0x62,0xf2,0x7d,0x28,0x67,0xc1]52; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]53  %ret = call <16 x half> @llvm.x86.avx10.mask.vcvt2ps2phx.256(<8 x float> %A, <8 x float> %B, <16 x half> zeroinitializer, i16 -1)54  ret <16 x half> %ret55}56 57define <16 x half> @test_int_x86_avx10_vcvt2ps2phx256_mask(<16 x half> %W, i16 %U, <8 x float> %A, <8 x float> %B) {58; X64-LABEL: test_int_x86_avx10_vcvt2ps2phx256_mask:59; X64:       # %bb.0:60; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]61; X64-NEXT:    vcvt2ps2phx %ymm2, %ymm1, %ymm0 {%k1} # encoding: [0x62,0xf2,0x75,0x29,0x67,0xc2]62; X64-NEXT:    retq # encoding: [0xc3]63;64; X86-LABEL: test_int_x86_avx10_vcvt2ps2phx256_mask:65; X86:       # %bb.0:66; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]67; X86-NEXT:    vcvt2ps2phx %ymm2, %ymm1, %ymm0 {%k1} # encoding: [0x62,0xf2,0x75,0x29,0x67,0xc2]68; X86-NEXT:    retl # encoding: [0xc3]69  %ret = call <16 x half> @llvm.x86.avx10.mask.vcvt2ps2phx.256(<8 x float> %A, <8 x float> %B, <16 x half> %W, i16 %U)70  ret <16 x half> %ret71}72 73define <16 x half> @test_int_x86_avx10_vcvt2ps2phx256_maskz(<16 x half> %W, i16 %U, <8 x float> %A, <8 x float> %B) {74; X64-LABEL: test_int_x86_avx10_vcvt2ps2phx256_maskz:75; X64:       # %bb.0:76; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]77; X64-NEXT:    vcvt2ps2phx %ymm2, %ymm1, %ymm0 {%k1} {z} # encoding: [0x62,0xf2,0x75,0xa9,0x67,0xc2]78; X64-NEXT:    retq # encoding: [0xc3]79;80; X86-LABEL: test_int_x86_avx10_vcvt2ps2phx256_maskz:81; X86:       # %bb.0:82; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]83; X86-NEXT:    vcvt2ps2phx %ymm2, %ymm1, %ymm0 {%k1} {z} # encoding: [0x62,0xf2,0x75,0xa9,0x67,0xc2]84; X86-NEXT:    retl # encoding: [0xc3]85  %ret = call <16 x half> @llvm.x86.avx10.mask.vcvt2ps2phx.256(<8 x float> %A, <8 x float> %B, <16 x half> zeroinitializer, i16 %U)86  ret <16 x half> %ret87}88 89declare <16 x half> @llvm.x86.avx10.mask.vcvt2ps2phx.256(<8 x float>, <8 x float>, <16 x half>, i16)90 91define <16 x i8> @test_int_x86_avx10_vcvtbiasph2bf8128(<16 x i8> %A, <8 x half> %B) nounwind {92; CHECK-LABEL: test_int_x86_avx10_vcvtbiasph2bf8128:93; CHECK:       # %bb.0:94; CHECK-NEXT:    vcvtbiasph2bf8 %xmm1, %xmm0, %xmm0 # encoding: [0x62,0xf2,0x7c,0x08,0x74,0xc1]95; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]96  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8128(<16 x i8> %A, <8 x half> %B, <16 x i8> undef, i8 -1)97  ret <16 x i8> %ret98}99 100define <16 x i8> @test_int_x86_avx10_mask_vcvtbiasph2bf8128(<16 x i8> %W, <16 x i8> %A, <8 x half> %B, i8 %U) nounwind {101; X64-LABEL: test_int_x86_avx10_mask_vcvtbiasph2bf8128:102; X64:       # %bb.0:103; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]104; X64-NEXT:    vcvtbiasph2bf8 %xmm2, %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf2,0x74,0x09,0x74,0xc2]105; X64-NEXT:    retq # encoding: [0xc3]106;107; X86-LABEL: test_int_x86_avx10_mask_vcvtbiasph2bf8128:108; X86:       # %bb.0:109; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]110; X86-NEXT:    vcvtbiasph2bf8 %xmm2, %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf2,0x74,0x09,0x74,0xc2]111; X86-NEXT:    retl # encoding: [0xc3]112  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8128(<16 x i8> %A, <8 x half> %B, <16 x i8> %W, i8 %U)113  ret <16 x i8> %ret114}115 116declare <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8128(<16 x i8> %A, <8 x half> %B, <16 x i8> %W, i8 %U)117 118define <16 x i8> @test_int_x86_avx10_maskz_vcvtbiasph2bf8128(<16 x i8> %A, <8 x half> %B, i8 %U) nounwind {119; X64-LABEL: test_int_x86_avx10_maskz_vcvtbiasph2bf8128:120; X64:       # %bb.0:121; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]122; X64-NEXT:    vcvtbiasph2bf8 %xmm1, %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf2,0x7c,0x89,0x74,0xc1]123; X64-NEXT:    retq # encoding: [0xc3]124;125; X86-LABEL: test_int_x86_avx10_maskz_vcvtbiasph2bf8128:126; X86:       # %bb.0:127; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]128; X86-NEXT:    vcvtbiasph2bf8 %xmm1, %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf2,0x7c,0x89,0x74,0xc1]129; X86-NEXT:    retl # encoding: [0xc3]130  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8128(<16 x i8> %A, <8 x half> %B, <16 x i8> zeroinitializer, i8 %U)131  ret <16 x i8> %ret132}133 134define <16 x i8> @test_int_x86_avx10_vcvtbiasph2bf8256(<32 x i8> %A, <16 x half> %B) nounwind {135; CHECK-LABEL: test_int_x86_avx10_vcvtbiasph2bf8256:136; CHECK:       # %bb.0:137; CHECK-NEXT:    vcvtbiasph2bf8 %ymm1, %ymm0, %xmm0 # encoding: [0x62,0xf2,0x7c,0x28,0x74,0xc1]138; CHECK-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]139; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]140  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8256(<32 x i8> %A, <16 x half> %B, <16 x i8> undef, i16 -1)141  ret <16 x i8> %ret142}143 144define <16 x i8> @test_int_x86_avx10_mask_vcvtbiasph2bf8256(<16 x i8> %W, <32 x i8> %A, <16 x half> %B, i16 %U) nounwind {145; X64-LABEL: test_int_x86_avx10_mask_vcvtbiasph2bf8256:146; X64:       # %bb.0:147; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]148; X64-NEXT:    vcvtbiasph2bf8 %ymm2, %ymm1, %xmm0 {%k1} # encoding: [0x62,0xf2,0x74,0x29,0x74,0xc2]149; X64-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]150; X64-NEXT:    retq # encoding: [0xc3]151;152; X86-LABEL: test_int_x86_avx10_mask_vcvtbiasph2bf8256:153; X86:       # %bb.0:154; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]155; X86-NEXT:    vcvtbiasph2bf8 %ymm2, %ymm1, %xmm0 {%k1} # encoding: [0x62,0xf2,0x74,0x29,0x74,0xc2]156; X86-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]157; X86-NEXT:    retl # encoding: [0xc3]158  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8256(<32 x i8> %A, <16 x half> %B, <16 x i8> %W, i16 %U)159  ret <16 x i8> %ret160}161 162declare <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8256(<32 x i8> %A, <16 x half> %B, <16 x i8> %W, i16 %U)163 164define <16 x i8> @test_int_x86_avx10_maskz_vcvtbiasph2bf8256(<32 x i8> %A, <16 x half> %B, i16 %U) nounwind {165; X64-LABEL: test_int_x86_avx10_maskz_vcvtbiasph2bf8256:166; X64:       # %bb.0:167; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]168; X64-NEXT:    vcvtbiasph2bf8 %ymm1, %ymm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf2,0x7c,0xa9,0x74,0xc1]169; X64-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]170; X64-NEXT:    retq # encoding: [0xc3]171;172; X86-LABEL: test_int_x86_avx10_maskz_vcvtbiasph2bf8256:173; X86:       # %bb.0:174; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]175; X86-NEXT:    vcvtbiasph2bf8 %ymm1, %ymm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf2,0x7c,0xa9,0x74,0xc1]176; X86-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]177; X86-NEXT:    retl # encoding: [0xc3]178  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8256(<32 x i8> %A, <16 x half> %B, <16 x i8> zeroinitializer, i16 %U)179  ret <16 x i8> %ret180}181 182define <16 x i8> @test_int_x86_avx10_vcvtbiasph2bf8s128(<16 x i8> %A, <8 x half> %B) nounwind {183; CHECK-LABEL: test_int_x86_avx10_vcvtbiasph2bf8s128:184; CHECK:       # %bb.0:185; CHECK-NEXT:    vcvtbiasph2bf8s %xmm1, %xmm0, %xmm0 # encoding: [0x62,0xf5,0x7c,0x08,0x74,0xc1]186; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]187  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8s128(<16 x i8> %A, <8 x half> %B, <16 x i8> undef, i8 -1)188  ret <16 x i8> %ret189}190 191define <16 x i8> @test_int_x86_avx10_mask_vcvtbiasph2bf8s128(<16 x i8> %W, <16 x i8> %A, <8 x half> %B, i8 %U) nounwind {192; X64-LABEL: test_int_x86_avx10_mask_vcvtbiasph2bf8s128:193; X64:       # %bb.0:194; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]195; X64-NEXT:    vcvtbiasph2bf8s %xmm2, %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x74,0x09,0x74,0xc2]196; X64-NEXT:    retq # encoding: [0xc3]197;198; X86-LABEL: test_int_x86_avx10_mask_vcvtbiasph2bf8s128:199; X86:       # %bb.0:200; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]201; X86-NEXT:    vcvtbiasph2bf8s %xmm2, %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x74,0x09,0x74,0xc2]202; X86-NEXT:    retl # encoding: [0xc3]203  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8s128(<16 x i8> %A, <8 x half> %B, <16 x i8> %W, i8 %U)204  ret <16 x i8> %ret205}206 207declare <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8s128(<16 x i8> %A, <8 x half> %B, <16 x i8> %W, i8 %U)208 209define <16 x i8> @test_int_x86_avx10_maskz_vcvtbiasph2bf8s128(<16 x i8> %A, <8 x half> %B, i8 %U) nounwind {210; X64-LABEL: test_int_x86_avx10_maskz_vcvtbiasph2bf8s128:211; X64:       # %bb.0:212; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]213; X64-NEXT:    vcvtbiasph2bf8s %xmm1, %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0x89,0x74,0xc1]214; X64-NEXT:    retq # encoding: [0xc3]215;216; X86-LABEL: test_int_x86_avx10_maskz_vcvtbiasph2bf8s128:217; X86:       # %bb.0:218; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]219; X86-NEXT:    vcvtbiasph2bf8s %xmm1, %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0x89,0x74,0xc1]220; X86-NEXT:    retl # encoding: [0xc3]221  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8s128(<16 x i8> %A, <8 x half> %B, <16 x i8> zeroinitializer, i8 %U)222  ret <16 x i8> %ret223}224 225define <16 x i8> @test_int_x86_avx10_vcvtbiasph2bf8s256(<32 x i8> %A, <16 x half> %B) nounwind {226; CHECK-LABEL: test_int_x86_avx10_vcvtbiasph2bf8s256:227; CHECK:       # %bb.0:228; CHECK-NEXT:    vcvtbiasph2bf8s %ymm1, %ymm0, %xmm0 # encoding: [0x62,0xf5,0x7c,0x28,0x74,0xc1]229; CHECK-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]230; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]231  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8s256(<32 x i8> %A, <16 x half> %B, <16 x i8> undef, i16 -1)232  ret <16 x i8> %ret233}234 235define <16 x i8> @test_int_x86_avx10_mask_vcvtbiasph2bf8s256(<16 x i8> %W, <32 x i8> %A, <16 x half> %B, i16 %U) nounwind {236; X64-LABEL: test_int_x86_avx10_mask_vcvtbiasph2bf8s256:237; X64:       # %bb.0:238; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]239; X64-NEXT:    vcvtbiasph2bf8s %ymm2, %ymm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x74,0x29,0x74,0xc2]240; X64-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]241; X64-NEXT:    retq # encoding: [0xc3]242;243; X86-LABEL: test_int_x86_avx10_mask_vcvtbiasph2bf8s256:244; X86:       # %bb.0:245; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]246; X86-NEXT:    vcvtbiasph2bf8s %ymm2, %ymm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x74,0x29,0x74,0xc2]247; X86-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]248; X86-NEXT:    retl # encoding: [0xc3]249  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8s256(<32 x i8> %A, <16 x half> %B, <16 x i8> %W, i16 %U)250  ret <16 x i8> %ret251}252 253declare <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8s256(<32 x i8> %A, <16 x half> %B, <16 x i8> %W, i16 %U)254 255define <16 x i8> @test_int_x86_avx10_maskz_vcvtbiasph2bf8s256(<32 x i8> %A, <16 x half> %B, i16 %U) nounwind {256; X64-LABEL: test_int_x86_avx10_maskz_vcvtbiasph2bf8s256:257; X64:       # %bb.0:258; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]259; X64-NEXT:    vcvtbiasph2bf8s %ymm1, %ymm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0xa9,0x74,0xc1]260; X64-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]261; X64-NEXT:    retq # encoding: [0xc3]262;263; X86-LABEL: test_int_x86_avx10_maskz_vcvtbiasph2bf8s256:264; X86:       # %bb.0:265; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]266; X86-NEXT:    vcvtbiasph2bf8s %ymm1, %ymm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0xa9,0x74,0xc1]267; X86-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]268; X86-NEXT:    retl # encoding: [0xc3]269  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8s256(<32 x i8> %A, <16 x half> %B, <16 x i8> zeroinitializer, i16 %U)270  ret <16 x i8> %ret271}272 273define <16 x i8> @test_int_x86_avx10_vcvtbiasph2hf8128(<16 x i8> %A, <8 x half> %B) nounwind {274; CHECK-LABEL: test_int_x86_avx10_vcvtbiasph2hf8128:275; CHECK:       # %bb.0:276; CHECK-NEXT:    vcvtbiasph2hf8 %xmm1, %xmm0, %xmm0 # encoding: [0x62,0xf5,0x7c,0x08,0x18,0xc1]277; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]278  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8128(<16 x i8> %A, <8 x half> %B, <16 x i8> undef, i8 -1)279  ret <16 x i8> %ret280}281 282define <16 x i8> @test_int_x86_avx10_mask_vcvtbiasph2hf8128(<16 x i8> %W, <16 x i8> %A, <8 x half> %B, i8 %U) nounwind {283; X64-LABEL: test_int_x86_avx10_mask_vcvtbiasph2hf8128:284; X64:       # %bb.0:285; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]286; X64-NEXT:    vcvtbiasph2hf8 %xmm2, %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x74,0x09,0x18,0xc2]287; X64-NEXT:    retq # encoding: [0xc3]288;289; X86-LABEL: test_int_x86_avx10_mask_vcvtbiasph2hf8128:290; X86:       # %bb.0:291; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]292; X86-NEXT:    vcvtbiasph2hf8 %xmm2, %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x74,0x09,0x18,0xc2]293; X86-NEXT:    retl # encoding: [0xc3]294  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8128(<16 x i8> %A, <8 x half> %B, <16 x i8> %W, i8 %U)295  ret <16 x i8> %ret296}297 298declare <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8128(<16 x i8> %A, <8 x half> %B, <16 x i8> %W, i8 %U)299 300define <16 x i8> @test_int_x86_avx10_maskz_vcvtbiasph2hf8128(<16 x i8> %A, <8 x half> %B, i8 %U) nounwind {301; X64-LABEL: test_int_x86_avx10_maskz_vcvtbiasph2hf8128:302; X64:       # %bb.0:303; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]304; X64-NEXT:    vcvtbiasph2hf8 %xmm1, %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0x89,0x18,0xc1]305; X64-NEXT:    retq # encoding: [0xc3]306;307; X86-LABEL: test_int_x86_avx10_maskz_vcvtbiasph2hf8128:308; X86:       # %bb.0:309; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]310; X86-NEXT:    vcvtbiasph2hf8 %xmm1, %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0x89,0x18,0xc1]311; X86-NEXT:    retl # encoding: [0xc3]312  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8128(<16 x i8> %A, <8 x half> %B, <16 x i8> zeroinitializer, i8 %U)313  ret <16 x i8> %ret314}315 316define <16 x i8> @test_int_x86_avx10_vcvtbiasph2hf8256(<32 x i8> %A, <16 x half> %B) nounwind {317; CHECK-LABEL: test_int_x86_avx10_vcvtbiasph2hf8256:318; CHECK:       # %bb.0:319; CHECK-NEXT:    vcvtbiasph2hf8 %ymm1, %ymm0, %xmm0 # encoding: [0x62,0xf5,0x7c,0x28,0x18,0xc1]320; CHECK-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]321; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]322  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8256(<32 x i8> %A, <16 x half> %B, <16 x i8> undef, i16 -1)323  ret <16 x i8> %ret324}325 326define <16 x i8> @test_int_x86_avx10_mask_vcvtbiasph2hf8256(<16 x i8> %W, <32 x i8> %A, <16 x half> %B, i16 %U) nounwind {327; X64-LABEL: test_int_x86_avx10_mask_vcvtbiasph2hf8256:328; X64:       # %bb.0:329; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]330; X64-NEXT:    vcvtbiasph2hf8 %ymm2, %ymm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x74,0x29,0x18,0xc2]331; X64-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]332; X64-NEXT:    retq # encoding: [0xc3]333;334; X86-LABEL: test_int_x86_avx10_mask_vcvtbiasph2hf8256:335; X86:       # %bb.0:336; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]337; X86-NEXT:    vcvtbiasph2hf8 %ymm2, %ymm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x74,0x29,0x18,0xc2]338; X86-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]339; X86-NEXT:    retl # encoding: [0xc3]340  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8256(<32 x i8> %A, <16 x half> %B, <16 x i8> %W, i16 %U)341  ret <16 x i8> %ret342}343 344declare <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8256(<32 x i8> %A, <16 x half> %B, <16 x i8> %W, i16 %U)345 346define <16 x i8> @test_int_x86_avx10_maskz_vcvtbiasph2hf8256(<32 x i8> %A, <16 x half> %B, i16 %U) nounwind {347; X64-LABEL: test_int_x86_avx10_maskz_vcvtbiasph2hf8256:348; X64:       # %bb.0:349; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]350; X64-NEXT:    vcvtbiasph2hf8 %ymm1, %ymm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0xa9,0x18,0xc1]351; X64-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]352; X64-NEXT:    retq # encoding: [0xc3]353;354; X86-LABEL: test_int_x86_avx10_maskz_vcvtbiasph2hf8256:355; X86:       # %bb.0:356; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]357; X86-NEXT:    vcvtbiasph2hf8 %ymm1, %ymm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0xa9,0x18,0xc1]358; X86-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]359; X86-NEXT:    retl # encoding: [0xc3]360  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8256(<32 x i8> %A, <16 x half> %B, <16 x i8> zeroinitializer, i16 %U)361  ret <16 x i8> %ret362}363 364define <16 x i8> @test_int_x86_avx10_vcvtbiasph2hf8s128(<16 x i8> %A, <8 x half> %B) nounwind {365; CHECK-LABEL: test_int_x86_avx10_vcvtbiasph2hf8s128:366; CHECK:       # %bb.0:367; CHECK-NEXT:    vcvtbiasph2hf8s %xmm1, %xmm0, %xmm0 # encoding: [0x62,0xf5,0x7c,0x08,0x1b,0xc1]368; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]369  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8s128(<16 x i8> %A, <8 x half> %B, <16 x i8> undef, i8 -1)370  ret <16 x i8> %ret371}372 373define <16 x i8> @test_int_x86_avx10_mask_vcvtbiasph2hf8s128(<16 x i8> %W, <16 x i8> %A, <8 x half> %B, i8 %U) nounwind {374; X64-LABEL: test_int_x86_avx10_mask_vcvtbiasph2hf8s128:375; X64:       # %bb.0:376; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]377; X64-NEXT:    vcvtbiasph2hf8s %xmm2, %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x74,0x09,0x1b,0xc2]378; X64-NEXT:    retq # encoding: [0xc3]379;380; X86-LABEL: test_int_x86_avx10_mask_vcvtbiasph2hf8s128:381; X86:       # %bb.0:382; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]383; X86-NEXT:    vcvtbiasph2hf8s %xmm2, %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x74,0x09,0x1b,0xc2]384; X86-NEXT:    retl # encoding: [0xc3]385  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8s128(<16 x i8> %A, <8 x half> %B, <16 x i8> %W, i8 %U)386  ret <16 x i8> %ret387}388 389declare <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8s128(<16 x i8> %A, <8 x half> %B, <16 x i8> %W, i8 %U)390 391define <16 x i8> @test_int_x86_avx10_maskz_vcvtbiasph2hf8s128(<16 x i8> %A, <8 x half> %B, i8 %U) nounwind {392; X64-LABEL: test_int_x86_avx10_maskz_vcvtbiasph2hf8s128:393; X64:       # %bb.0:394; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]395; X64-NEXT:    vcvtbiasph2hf8s %xmm1, %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0x89,0x1b,0xc1]396; X64-NEXT:    retq # encoding: [0xc3]397;398; X86-LABEL: test_int_x86_avx10_maskz_vcvtbiasph2hf8s128:399; X86:       # %bb.0:400; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]401; X86-NEXT:    vcvtbiasph2hf8s %xmm1, %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0x89,0x1b,0xc1]402; X86-NEXT:    retl # encoding: [0xc3]403  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8s128(<16 x i8> %A, <8 x half> %B, <16 x i8> zeroinitializer, i8 %U)404  ret <16 x i8> %ret405}406 407define <16 x i8> @test_int_x86_avx10_vcvtbiasph2hf8s256(<32 x i8> %A, <16 x half> %B) nounwind {408; CHECK-LABEL: test_int_x86_avx10_vcvtbiasph2hf8s256:409; CHECK:       # %bb.0:410; CHECK-NEXT:    vcvtbiasph2hf8s %ymm1, %ymm0, %xmm0 # encoding: [0x62,0xf5,0x7c,0x28,0x1b,0xc1]411; CHECK-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]412; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]413  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8s256(<32 x i8> %A, <16 x half> %B, <16 x i8> undef, i16 -1)414  ret <16 x i8> %ret415}416 417define <16 x i8> @test_int_x86_avx10_mask_vcvtbiasph2hf8s256(<16 x i8> %W, <32 x i8> %A, <16 x half> %B, i16 %U) nounwind {418; X64-LABEL: test_int_x86_avx10_mask_vcvtbiasph2hf8s256:419; X64:       # %bb.0:420; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]421; X64-NEXT:    vcvtbiasph2hf8s %ymm2, %ymm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x74,0x29,0x1b,0xc2]422; X64-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]423; X64-NEXT:    retq # encoding: [0xc3]424;425; X86-LABEL: test_int_x86_avx10_mask_vcvtbiasph2hf8s256:426; X86:       # %bb.0:427; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]428; X86-NEXT:    vcvtbiasph2hf8s %ymm2, %ymm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x74,0x29,0x1b,0xc2]429; X86-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]430; X86-NEXT:    retl # encoding: [0xc3]431  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8s256(<32 x i8> %A, <16 x half> %B, <16 x i8> %W, i16 %U)432  ret <16 x i8> %ret433}434 435declare <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8s256(<32 x i8> %A, <16 x half> %B, <16 x i8> %W, i16 %U)436 437define <16 x i8> @test_int_x86_avx10_maskz_vcvtbiasph2hf8s256(<32 x i8> %A, <16 x half> %B, i16 %U) nounwind {438; X64-LABEL: test_int_x86_avx10_maskz_vcvtbiasph2hf8s256:439; X64:       # %bb.0:440; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]441; X64-NEXT:    vcvtbiasph2hf8s %ymm1, %ymm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0xa9,0x1b,0xc1]442; X64-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]443; X64-NEXT:    retq # encoding: [0xc3]444;445; X86-LABEL: test_int_x86_avx10_maskz_vcvtbiasph2hf8s256:446; X86:       # %bb.0:447; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]448; X86-NEXT:    vcvtbiasph2hf8s %ymm1, %ymm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0xa9,0x1b,0xc1]449; X86-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]450; X86-NEXT:    retl # encoding: [0xc3]451  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8s256(<32 x i8> %A, <16 x half> %B, <16 x i8> zeroinitializer, i16 %U)452  ret <16 x i8> %ret453}454 455define <16 x i8> @test_int_x86_avx10_vcvt2ph2bf8128(<8 x half> %A, <8 x half> %B) nounwind {456; CHECK-LABEL: test_int_x86_avx10_vcvt2ph2bf8128:457; CHECK:       # %bb.0:458; CHECK-NEXT:    vcvt2ph2bf8 %xmm1, %xmm0, %xmm0 # encoding: [0x62,0xf2,0x7f,0x08,0x74,0xc1]459; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]460  %ret = call <16 x i8> @llvm.x86.avx10.vcvt2ph2bf8128(<8 x half> %A, <8 x half> %B)461  ret <16 x i8> %ret462}463 464define <16 x i8> @test_int_x86_avx10_vcvt2ph2bf8128_mask(<16 x i8> %C, i16 %U, <8 x half> %A, <8 x half> %B) nounwind {465; X64-LABEL: test_int_x86_avx10_vcvt2ph2bf8128_mask:466; X64:       # %bb.0:467; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]468; X64-NEXT:    vcvt2ph2bf8 %xmm2, %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf2,0x77,0x09,0x74,0xc2]469; X64-NEXT:    retq # encoding: [0xc3]470;471; X86-LABEL: test_int_x86_avx10_vcvt2ph2bf8128_mask:472; X86:       # %bb.0:473; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]474; X86-NEXT:    vcvt2ph2bf8 %xmm2, %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf2,0x77,0x09,0x74,0xc2]475; X86-NEXT:    retl # encoding: [0xc3]476  %1 = call <16 x i8> @llvm.x86.avx10.vcvt2ph2bf8128(<8 x half> %A, <8 x half> %B)477  %2 = bitcast i16 %U to <16 x i1>478  %3 = select <16 x i1> %2, <16 x i8> %1, <16 x i8> %C479  ret <16 x i8> %3480}481 482define <16 x i8> @test_int_x86_avx10_vcvt2ph2bf8128_maskz(<16 x i8> %C, i16 %U, <8 x half> %A, <8 x half> %B) nounwind {483; X64-LABEL: test_int_x86_avx10_vcvt2ph2bf8128_maskz:484; X64:       # %bb.0:485; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]486; X64-NEXT:    vcvt2ph2bf8 %xmm2, %xmm1, %xmm0 {%k1} {z} # encoding: [0x62,0xf2,0x77,0x89,0x74,0xc2]487; X64-NEXT:    retq # encoding: [0xc3]488;489; X86-LABEL: test_int_x86_avx10_vcvt2ph2bf8128_maskz:490; X86:       # %bb.0:491; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]492; X86-NEXT:    vcvt2ph2bf8 %xmm2, %xmm1, %xmm0 {%k1} {z} # encoding: [0x62,0xf2,0x77,0x89,0x74,0xc2]493; X86-NEXT:    retl # encoding: [0xc3]494  %1 = call <16 x i8> @llvm.x86.avx10.vcvt2ph2bf8128(<8 x half> %A, <8 x half> %B)495  %2 = bitcast i16 %U to <16 x i1>496  %3 = select <16 x i1> %2, <16 x i8> %1, <16 x i8> zeroinitializer497  ret <16 x i8> %3498}499 500declare <16 x i8> @llvm.x86.avx10.vcvt2ph2bf8128(<8 x half> %A, <8 x half> %B)501 502define <32 x i8> @test_int_x86_avx10_vcvt2ph2bf8256(<16 x half> %A, <16 x half> %B) nounwind {503; CHECK-LABEL: test_int_x86_avx10_vcvt2ph2bf8256:504; CHECK:       # %bb.0:505; CHECK-NEXT:    vcvt2ph2bf8 %ymm1, %ymm0, %ymm0 # encoding: [0x62,0xf2,0x7f,0x28,0x74,0xc1]506; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]507  %ret = call <32 x i8> @llvm.x86.avx10.vcvt2ph2bf8256(<16 x half> %A, <16 x half> %B)508  ret <32 x i8> %ret509}510 511define <32 x i8> @test_int_x86_avx10_vcvt2ph2bf8256_mask(<32 x i8> %C, i32 %U, <16 x half> %A, <16 x half> %B) nounwind {512; X64-LABEL: test_int_x86_avx10_vcvt2ph2bf8256_mask:513; X64:       # %bb.0:514; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]515; X64-NEXT:    vcvt2ph2bf8 %ymm2, %ymm1, %ymm0 {%k1} # encoding: [0x62,0xf2,0x77,0x29,0x74,0xc2]516; X64-NEXT:    retq # encoding: [0xc3]517;518; X86-LABEL: test_int_x86_avx10_vcvt2ph2bf8256_mask:519; X86:       # %bb.0:520; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]521; X86-NEXT:    vcvt2ph2bf8 %ymm2, %ymm1, %ymm0 {%k1} # encoding: [0x62,0xf2,0x77,0x29,0x74,0xc2]522; X86-NEXT:    retl # encoding: [0xc3]523  %1 = call <32 x i8> @llvm.x86.avx10.vcvt2ph2bf8256(<16 x half> %A, <16 x half> %B)524  %2 = bitcast i32 %U to <32 x i1>525  %3 = select <32 x i1> %2, <32 x i8> %1, <32 x i8> %C526  ret <32 x i8> %3527}528 529define <32 x i8> @test_int_x86_avx10_vcvt2ph2bf8256_maskz(<32 x i8> %C, i32 %U, <16 x half> %A, <16 x half> %B) nounwind {530; X64-LABEL: test_int_x86_avx10_vcvt2ph2bf8256_maskz:531; X64:       # %bb.0:532; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]533; X64-NEXT:    vcvt2ph2bf8 %ymm2, %ymm1, %ymm0 {%k1} {z} # encoding: [0x62,0xf2,0x77,0xa9,0x74,0xc2]534; X64-NEXT:    retq # encoding: [0xc3]535;536; X86-LABEL: test_int_x86_avx10_vcvt2ph2bf8256_maskz:537; X86:       # %bb.0:538; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]539; X86-NEXT:    vcvt2ph2bf8 %ymm2, %ymm1, %ymm0 {%k1} {z} # encoding: [0x62,0xf2,0x77,0xa9,0x74,0xc2]540; X86-NEXT:    retl # encoding: [0xc3]541  %1 = call <32 x i8> @llvm.x86.avx10.vcvt2ph2bf8256(<16 x half> %A, <16 x half> %B)542  %2 = bitcast i32 %U to <32 x i1>543  %3 = select <32 x i1> %2, <32 x i8> %1, <32 x i8> zeroinitializer544  ret <32 x i8> %3545}546 547declare <32 x i8> @llvm.x86.avx10.vcvt2ph2bf8256(<16 x half> %A, <16 x half> %B)548 549define <16 x i8> @test_int_x86_avx10_vcvt2ph2bf8s128(<8 x half> %A, <8 x half> %B) nounwind {550; CHECK-LABEL: test_int_x86_avx10_vcvt2ph2bf8s128:551; CHECK:       # %bb.0:552; CHECK-NEXT:    vcvt2ph2bf8s %xmm1, %xmm0, %xmm0 # encoding: [0x62,0xf5,0x7f,0x08,0x74,0xc1]553; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]554  %ret = call <16 x i8> @llvm.x86.avx10.vcvt2ph2bf8s128(<8 x half> %A, <8 x half> %B)555  ret <16 x i8> %ret556}557 558define <16 x i8> @test_int_x86_avx10_vcvt2ph2bf8s128_mask(<16 x i8> %C, i16 %U, <8 x half> %A, <8 x half> %B) nounwind {559; X64-LABEL: test_int_x86_avx10_vcvt2ph2bf8s128_mask:560; X64:       # %bb.0:561; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]562; X64-NEXT:    vcvt2ph2bf8s %xmm2, %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x77,0x09,0x74,0xc2]563; X64-NEXT:    retq # encoding: [0xc3]564;565; X86-LABEL: test_int_x86_avx10_vcvt2ph2bf8s128_mask:566; X86:       # %bb.0:567; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]568; X86-NEXT:    vcvt2ph2bf8s %xmm2, %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x77,0x09,0x74,0xc2]569; X86-NEXT:    retl # encoding: [0xc3]570  %1 = call <16 x i8> @llvm.x86.avx10.vcvt2ph2bf8s128(<8 x half> %A, <8 x half> %B)571  %2 = bitcast i16 %U to <16 x i1>572  %3 = select <16 x i1> %2, <16 x i8> %1, <16 x i8> %C573  ret <16 x i8> %3574}575 576define <16 x i8> @test_int_x86_avx10_vcvt2ph2bf8s128_maskz(i16 %U, <8 x half> %A, <8 x half> %B) nounwind {577; X64-LABEL: test_int_x86_avx10_vcvt2ph2bf8s128_maskz:578; X64:       # %bb.0:579; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]580; X64-NEXT:    vcvt2ph2bf8s %xmm1, %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0x89,0x74,0xc1]581; X64-NEXT:    retq # encoding: [0xc3]582;583; X86-LABEL: test_int_x86_avx10_vcvt2ph2bf8s128_maskz:584; X86:       # %bb.0:585; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]586; X86-NEXT:    vcvt2ph2bf8s %xmm1, %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0x89,0x74,0xc1]587; X86-NEXT:    retl # encoding: [0xc3]588  %1 = call <16 x i8> @llvm.x86.avx10.vcvt2ph2bf8s128(<8 x half> %A, <8 x half> %B)589  %2 = bitcast i16 %U to <16 x i1>590  %3 = select <16 x i1> %2, <16 x i8> %1, <16 x i8> zeroinitializer591  ret <16 x i8> %3592}593 594declare <16 x i8> @llvm.x86.avx10.vcvt2ph2bf8s128(<8 x half> %A, <8 x half> %B)595 596define <32 x i8> @test_int_x86_avx10_vcvt2ph2bf8s256(<16 x half> %A, <16 x half> %B) nounwind {597; CHECK-LABEL: test_int_x86_avx10_vcvt2ph2bf8s256:598; CHECK:       # %bb.0:599; CHECK-NEXT:    vcvt2ph2bf8s %ymm1, %ymm0, %ymm0 # encoding: [0x62,0xf5,0x7f,0x28,0x74,0xc1]600; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]601  %ret = call <32 x i8> @llvm.x86.avx10.vcvt2ph2bf8s256(<16 x half> %A, <16 x half> %B)602  ret <32 x i8> %ret603}604 605define <32 x i8> @test_int_x86_avx10_vcvt2ph2bf8s256_mask(<32 x i8> %C, i32 %U, <16 x half> %A, <16 x half> %B) nounwind {606; X64-LABEL: test_int_x86_avx10_vcvt2ph2bf8s256_mask:607; X64:       # %bb.0:608; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]609; X64-NEXT:    vcvt2ph2bf8s %ymm2, %ymm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x77,0x29,0x74,0xc2]610; X64-NEXT:    retq # encoding: [0xc3]611;612; X86-LABEL: test_int_x86_avx10_vcvt2ph2bf8s256_mask:613; X86:       # %bb.0:614; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]615; X86-NEXT:    vcvt2ph2bf8s %ymm2, %ymm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x77,0x29,0x74,0xc2]616; X86-NEXT:    retl # encoding: [0xc3]617  %1 = call <32 x i8> @llvm.x86.avx10.vcvt2ph2bf8s256(<16 x half> %A, <16 x half> %B)618  %2 = bitcast i32 %U to <32 x i1>619  %3 = select <32 x i1> %2, <32 x i8> %1, <32 x i8> %C620  ret <32 x i8> %3621}622 623define <32 x i8> @test_int_x86_avx10_vcvt2ph2bf8s256_maskz(i32 %U, <16 x half> %A, <16 x half> %B) nounwind {624; X64-LABEL: test_int_x86_avx10_vcvt2ph2bf8s256_maskz:625; X64:       # %bb.0:626; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]627; X64-NEXT:    vcvt2ph2bf8s %ymm1, %ymm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0xa9,0x74,0xc1]628; X64-NEXT:    retq # encoding: [0xc3]629;630; X86-LABEL: test_int_x86_avx10_vcvt2ph2bf8s256_maskz:631; X86:       # %bb.0:632; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]633; X86-NEXT:    vcvt2ph2bf8s %ymm1, %ymm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0xa9,0x74,0xc1]634; X86-NEXT:    retl # encoding: [0xc3]635  %1 = call <32 x i8> @llvm.x86.avx10.vcvt2ph2bf8s256(<16 x half> %A, <16 x half> %B)636  %2 = bitcast i32 %U to <32 x i1>637  %3 = select <32 x i1> %2, <32 x i8> %1, <32 x i8> zeroinitializer638  ret <32 x i8> %3639}640 641declare <32 x i8> @llvm.x86.avx10.vcvt2ph2bf8s256(<16 x half> %A, <16 x half> %B)642 643define <16 x i8> @test_int_x86_avx10_vcvt2ph2hf8128(<8 x half> %A, <8 x half> %B) nounwind {644; CHECK-LABEL: test_int_x86_avx10_vcvt2ph2hf8128:645; CHECK:       # %bb.0:646; CHECK-NEXT:    vcvt2ph2hf8 %xmm1, %xmm0, %xmm0 # encoding: [0x62,0xf5,0x7f,0x08,0x18,0xc1]647; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]648  %ret = call <16 x i8> @llvm.x86.avx10.vcvt2ph2hf8128(<8 x half> %A, <8 x half> %B)649  ret <16 x i8> %ret650}651 652define <16 x i8> @test_int_x86_avx10_vcvt2ph2hf8128_mask(<16 x i8> %C, i16 %U, <8 x half> %A, <8 x half> %B) nounwind {653; X64-LABEL: test_int_x86_avx10_vcvt2ph2hf8128_mask:654; X64:       # %bb.0:655; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]656; X64-NEXT:    vcvt2ph2hf8 %xmm2, %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x77,0x09,0x18,0xc2]657; X64-NEXT:    retq # encoding: [0xc3]658;659; X86-LABEL: test_int_x86_avx10_vcvt2ph2hf8128_mask:660; X86:       # %bb.0:661; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]662; X86-NEXT:    vcvt2ph2hf8 %xmm2, %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x77,0x09,0x18,0xc2]663; X86-NEXT:    retl # encoding: [0xc3]664  %1 = call <16 x i8> @llvm.x86.avx10.vcvt2ph2hf8128(<8 x half> %A, <8 x half> %B)665  %2 = bitcast i16 %U to <16 x i1>666  %3 = select <16 x i1> %2, <16 x i8> %1, <16 x i8> %C667  ret <16 x i8> %3668}669 670define <16 x i8> @test_int_x86_avx10_vcvt2ph2hf8128_maskz(i16 %U, <8 x half> %A, <8 x half> %B) nounwind {671; X64-LABEL: test_int_x86_avx10_vcvt2ph2hf8128_maskz:672; X64:       # %bb.0:673; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]674; X64-NEXT:    vcvt2ph2hf8 %xmm1, %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0x89,0x18,0xc1]675; X64-NEXT:    retq # encoding: [0xc3]676;677; X86-LABEL: test_int_x86_avx10_vcvt2ph2hf8128_maskz:678; X86:       # %bb.0:679; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]680; X86-NEXT:    vcvt2ph2hf8 %xmm1, %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0x89,0x18,0xc1]681; X86-NEXT:    retl # encoding: [0xc3]682  %1 = call <16 x i8> @llvm.x86.avx10.vcvt2ph2hf8128(<8 x half> %A, <8 x half> %B)683  %2 = bitcast i16 %U to <16 x i1>684  %3 = select <16 x i1> %2, <16 x i8> %1, <16 x i8> zeroinitializer685  ret <16 x i8> %3686}687 688declare <16 x i8> @llvm.x86.avx10.vcvt2ph2hf8128(<8 x half> %A, <8 x half> %B)689 690define <32 x i8> @test_int_x86_avx10_vcvt2ph2hf8256(<16 x half> %A, <16 x half> %B) nounwind {691; CHECK-LABEL: test_int_x86_avx10_vcvt2ph2hf8256:692; CHECK:       # %bb.0:693; CHECK-NEXT:    vcvt2ph2hf8 %ymm1, %ymm0, %ymm0 # encoding: [0x62,0xf5,0x7f,0x28,0x18,0xc1]694; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]695  %ret = call <32 x i8> @llvm.x86.avx10.vcvt2ph2hf8256(<16 x half> %A, <16 x half> %B)696  ret <32 x i8> %ret697}698 699define <32 x i8> @test_int_x86_avx10_vcvt2ph2hf8256_mask(<32 x i8> %C, i32 %U, <16 x half> %A, <16 x half> %B) nounwind {700; X64-LABEL: test_int_x86_avx10_vcvt2ph2hf8256_mask:701; X64:       # %bb.0:702; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]703; X64-NEXT:    vcvt2ph2hf8 %ymm2, %ymm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x77,0x29,0x18,0xc2]704; X64-NEXT:    retq # encoding: [0xc3]705;706; X86-LABEL: test_int_x86_avx10_vcvt2ph2hf8256_mask:707; X86:       # %bb.0:708; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]709; X86-NEXT:    vcvt2ph2hf8 %ymm2, %ymm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x77,0x29,0x18,0xc2]710; X86-NEXT:    retl # encoding: [0xc3]711  %1 = call <32 x i8> @llvm.x86.avx10.vcvt2ph2hf8256(<16 x half> %A, <16 x half> %B)712  %2 = bitcast i32 %U to <32 x i1>713  %3 = select <32 x i1> %2, <32 x i8> %1, <32 x i8> %C714  ret <32 x i8> %3715}716 717define <32 x i8> @test_int_x86_avx10_vcvt2ph2hf8256_maskz(i32 %U, <16 x half> %A, <16 x half> %B) nounwind {718; X64-LABEL: test_int_x86_avx10_vcvt2ph2hf8256_maskz:719; X64:       # %bb.0:720; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]721; X64-NEXT:    vcvt2ph2hf8 %ymm1, %ymm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0xa9,0x18,0xc1]722; X64-NEXT:    retq # encoding: [0xc3]723;724; X86-LABEL: test_int_x86_avx10_vcvt2ph2hf8256_maskz:725; X86:       # %bb.0:726; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]727; X86-NEXT:    vcvt2ph2hf8 %ymm1, %ymm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0xa9,0x18,0xc1]728; X86-NEXT:    retl # encoding: [0xc3]729  %1 = call <32 x i8> @llvm.x86.avx10.vcvt2ph2hf8256(<16 x half> %A, <16 x half> %B)730  %2 = bitcast i32 %U to <32 x i1>731  %3 = select <32 x i1> %2, <32 x i8> %1, <32 x i8> zeroinitializer732  ret <32 x i8> %3733}734 735declare <32 x i8> @llvm.x86.avx10.vcvt2ph2hf8256(<16 x half> %A, <16 x half> %B)736 737define <16 x i8> @test_int_x86_avx10_vcvt2ph2hf8s128(<8 x half> %A, <8 x half> %B) nounwind {738; CHECK-LABEL: test_int_x86_avx10_vcvt2ph2hf8s128:739; CHECK:       # %bb.0:740; CHECK-NEXT:    vcvt2ph2hf8s %xmm1, %xmm0, %xmm0 # encoding: [0x62,0xf5,0x7f,0x08,0x1b,0xc1]741; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]742  %ret = call <16 x i8> @llvm.x86.avx10.vcvt2ph2hf8s128(<8 x half> %A, <8 x half> %B)743  ret <16 x i8> %ret744}745 746define <16 x i8> @test_int_x86_avx10_vcvt2ph2hf8s128_mask(<16 x i8> %C, i16 %U, <8 x half> %A, <8 x half> %B) nounwind {747; X64-LABEL: test_int_x86_avx10_vcvt2ph2hf8s128_mask:748; X64:       # %bb.0:749; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]750; X64-NEXT:    vcvt2ph2hf8s %xmm2, %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x77,0x09,0x1b,0xc2]751; X64-NEXT:    retq # encoding: [0xc3]752;753; X86-LABEL: test_int_x86_avx10_vcvt2ph2hf8s128_mask:754; X86:       # %bb.0:755; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]756; X86-NEXT:    vcvt2ph2hf8s %xmm2, %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x77,0x09,0x1b,0xc2]757; X86-NEXT:    retl # encoding: [0xc3]758  %1 = call <16 x i8> @llvm.x86.avx10.vcvt2ph2hf8s128(<8 x half> %A, <8 x half> %B)759  %2 = bitcast i16 %U to <16 x i1>760  %3 = select <16 x i1> %2, <16 x i8> %1, <16 x i8> %C761  ret <16 x i8> %3762}763 764define <16 x i8> @test_int_x86_avx10_vcvt2ph2hf8s128_maskz(i16 %U, <8 x half> %A, <8 x half> %B) nounwind {765; X64-LABEL: test_int_x86_avx10_vcvt2ph2hf8s128_maskz:766; X64:       # %bb.0:767; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]768; X64-NEXT:    vcvt2ph2hf8s %xmm1, %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0x89,0x1b,0xc1]769; X64-NEXT:    retq # encoding: [0xc3]770;771; X86-LABEL: test_int_x86_avx10_vcvt2ph2hf8s128_maskz:772; X86:       # %bb.0:773; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]774; X86-NEXT:    vcvt2ph2hf8s %xmm1, %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0x89,0x1b,0xc1]775; X86-NEXT:    retl # encoding: [0xc3]776  %1 = call <16 x i8> @llvm.x86.avx10.vcvt2ph2hf8s128(<8 x half> %A, <8 x half> %B)777  %2 = bitcast i16 %U to <16 x i1>778  %3 = select <16 x i1> %2, <16 x i8> %1, <16 x i8> zeroinitializer779  ret <16 x i8> %3780}781 782declare <16 x i8> @llvm.x86.avx10.vcvt2ph2hf8s128(<8 x half> %A, <8 x half> %B)783 784define <32 x i8> @test_int_x86_avx10_vcvt2ph2hf8s256(<16 x half> %A, <16 x half> %B) nounwind {785; CHECK-LABEL: test_int_x86_avx10_vcvt2ph2hf8s256:786; CHECK:       # %bb.0:787; CHECK-NEXT:    vcvt2ph2hf8s %ymm1, %ymm0, %ymm0 # encoding: [0x62,0xf5,0x7f,0x28,0x1b,0xc1]788; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]789  %ret = call <32 x i8> @llvm.x86.avx10.vcvt2ph2hf8s256(<16 x half> %A, <16 x half> %B)790  ret <32 x i8> %ret791}792 793define <32 x i8> @test_int_x86_avx10_vcvt2ph2hf8s256_mask(<32 x i8> %C, i32 %U, <16 x half> %A, <16 x half> %B) nounwind {794; X64-LABEL: test_int_x86_avx10_vcvt2ph2hf8s256_mask:795; X64:       # %bb.0:796; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]797; X64-NEXT:    vcvt2ph2hf8s %ymm2, %ymm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x77,0x29,0x1b,0xc2]798; X64-NEXT:    retq # encoding: [0xc3]799;800; X86-LABEL: test_int_x86_avx10_vcvt2ph2hf8s256_mask:801; X86:       # %bb.0:802; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]803; X86-NEXT:    vcvt2ph2hf8s %ymm2, %ymm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x77,0x29,0x1b,0xc2]804; X86-NEXT:    retl # encoding: [0xc3]805  %1 = call <32 x i8> @llvm.x86.avx10.vcvt2ph2hf8s256(<16 x half> %A, <16 x half> %B)806  %2 = bitcast i32 %U to <32 x i1>807  %3 = select <32 x i1> %2, <32 x i8> %1, <32 x i8> %C808  ret <32 x i8> %3809}810 811define <32 x i8> @test_int_x86_avx10_vcvt2ph2hf8s256_maskz(i32 %U, <16 x half> %A, <16 x half> %B) nounwind {812; X64-LABEL: test_int_x86_avx10_vcvt2ph2hf8s256_maskz:813; X64:       # %bb.0:814; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]815; X64-NEXT:    vcvt2ph2hf8s %ymm1, %ymm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0xa9,0x1b,0xc1]816; X64-NEXT:    retq # encoding: [0xc3]817;818; X86-LABEL: test_int_x86_avx10_vcvt2ph2hf8s256_maskz:819; X86:       # %bb.0:820; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]821; X86-NEXT:    vcvt2ph2hf8s %ymm1, %ymm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0xa9,0x1b,0xc1]822; X86-NEXT:    retl # encoding: [0xc3]823  %1 = call <32 x i8> @llvm.x86.avx10.vcvt2ph2hf8s256(<16 x half> %A, <16 x half> %B)824  %2 = bitcast i32 %U to <32 x i1>825  %3 = select <32 x i1> %2, <32 x i8> %1, <32 x i8> zeroinitializer826  ret <32 x i8> %3827}828 829declare <32 x i8> @llvm.x86.avx10.vcvt2ph2hf8s256(<16 x half> %A, <16 x half> %B)830 831define <8 x half> @test_int_x86_avx10_vcvthf82ph128(<16 x i8> %A) nounwind {832; CHECK-LABEL: test_int_x86_avx10_vcvthf82ph128:833; CHECK:       # %bb.0:834; CHECK-NEXT:    vcvthf82ph %xmm0, %xmm0 # encoding: [0x62,0xf5,0x7f,0x08,0x1e,0xc0]835; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]836  %ret = call <8 x half> @llvm.x86.avx10.mask.vcvthf82ph128(<16 x i8> %A, <8 x half> undef, i8 -1)837  ret <8 x half> %ret838}839 840define <8 x half> @test_int_x86_avx10_mask_vcvthf82ph128(<16 x i8> %A, <8 x half> %B, i8 %C) nounwind {841; X64-LABEL: test_int_x86_avx10_mask_vcvthf82ph128:842; X64:       # %bb.0:843; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]844; X64-NEXT:    vcvthf82ph %xmm0, %xmm1 {%k1} # encoding: [0x62,0xf5,0x7f,0x09,0x1e,0xc8]845; X64-NEXT:    vmovdqa %xmm1, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf9,0x6f,0xc1]846; X64-NEXT:    retq # encoding: [0xc3]847;848; X86-LABEL: test_int_x86_avx10_mask_vcvthf82ph128:849; X86:       # %bb.0:850; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]851; X86-NEXT:    vcvthf82ph %xmm0, %xmm1 {%k1} # encoding: [0x62,0xf5,0x7f,0x09,0x1e,0xc8]852; X86-NEXT:    vmovdqa %xmm1, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf9,0x6f,0xc1]853; X86-NEXT:    retl # encoding: [0xc3]854  %ret = call <8 x half> @llvm.x86.avx10.mask.vcvthf82ph128(<16 x i8> %A, <8 x half> %B, i8 %C)855  ret <8 x half> %ret856}857 858declare <8 x half> @llvm.x86.avx10.mask.vcvthf82ph128(<16 x i8> %A, <8 x half> %B, i8 %C)859 860define <8 x half> @test_int_x86_avx10_maskz_vcvthf82ph128(<16 x i8> %A, i8 %B) nounwind {861; X64-LABEL: test_int_x86_avx10_maskz_vcvthf82ph128:862; X64:       # %bb.0:863; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]864; X64-NEXT:    vcvthf82ph %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0x89,0x1e,0xc0]865; X64-NEXT:    retq # encoding: [0xc3]866;867; X86-LABEL: test_int_x86_avx10_maskz_vcvthf82ph128:868; X86:       # %bb.0:869; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]870; X86-NEXT:    vcvthf82ph %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0x89,0x1e,0xc0]871; X86-NEXT:    retl # encoding: [0xc3]872  %ret = call <8 x half> @llvm.x86.avx10.mask.vcvthf82ph128(<16 x i8> %A, <8 x half> zeroinitializer, i8 %B)873  ret <8 x half> %ret874}875 876define <16 x half> @test_int_x86_avx10_vcvthf82ph256(<16 x i8> %A) nounwind {877; CHECK-LABEL: test_int_x86_avx10_vcvthf82ph256:878; CHECK:       # %bb.0:879; CHECK-NEXT:    vcvthf82ph %xmm0, %ymm0 # encoding: [0x62,0xf5,0x7f,0x28,0x1e,0xc0]880; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]881  %ret = call <16 x half> @llvm.x86.avx10.mask.vcvthf82ph256(<16 x i8> %A, <16 x half> undef, i16 -1)882  ret <16 x half> %ret883}884 885define <16 x half> @test_int_x86_avx10_mask_vcvthf82ph256(<16 x i8> %A, <16 x half> %B, i16 %C) nounwind {886; X64-LABEL: test_int_x86_avx10_mask_vcvthf82ph256:887; X64:       # %bb.0:888; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]889; X64-NEXT:    vcvthf82ph %xmm0, %ymm1 {%k1} # encoding: [0x62,0xf5,0x7f,0x29,0x1e,0xc8]890; X64-NEXT:    vmovdqa %ymm1, %ymm0 # EVEX TO VEX Compression encoding: [0xc5,0xfd,0x6f,0xc1]891; X64-NEXT:    retq # encoding: [0xc3]892;893; X86-LABEL: test_int_x86_avx10_mask_vcvthf82ph256:894; X86:       # %bb.0:895; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]896; X86-NEXT:    vcvthf82ph %xmm0, %ymm1 {%k1} # encoding: [0x62,0xf5,0x7f,0x29,0x1e,0xc8]897; X86-NEXT:    vmovdqa %ymm1, %ymm0 # EVEX TO VEX Compression encoding: [0xc5,0xfd,0x6f,0xc1]898; X86-NEXT:    retl # encoding: [0xc3]899  %ret = call <16 x half> @llvm.x86.avx10.mask.vcvthf82ph256(<16 x i8> %A, <16 x half> %B, i16 %C)900  ret <16 x half> %ret901}902 903declare <16 x half> @llvm.x86.avx10.mask.vcvthf82ph256(<16 x i8> %A, <16 x half> %B, i16 %C)904 905define <16 x half> @test_int_x86_avx10_maskz_vcvthf82ph256(<16 x i8> %A, i16 %B) nounwind {906; X64-LABEL: test_int_x86_avx10_maskz_vcvthf82ph256:907; X64:       # %bb.0:908; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]909; X64-NEXT:    vcvthf82ph %xmm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0xa9,0x1e,0xc0]910; X64-NEXT:    retq # encoding: [0xc3]911;912; X86-LABEL: test_int_x86_avx10_maskz_vcvthf82ph256:913; X86:       # %bb.0:914; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]915; X86-NEXT:    vcvthf82ph %xmm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0xa9,0x1e,0xc0]916; X86-NEXT:    retl # encoding: [0xc3]917  %ret = call <16 x half> @llvm.x86.avx10.mask.vcvthf82ph256(<16 x i8> %A, <16 x half> zeroinitializer, i16 %B)918  ret <16 x half> %ret919}920 921define <16 x i8> @test_int_x86_avx10_vcvtph2bf8128(<8 x half> %A) nounwind {922; CHECK-LABEL: test_int_x86_avx10_vcvtph2bf8128:923; CHECK:       # %bb.0:924; CHECK-NEXT:    vcvtph2bf8 %xmm0, %xmm0 # encoding: [0x62,0xf2,0x7e,0x08,0x74,0xc0]925; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]926  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtph2bf8128(<8 x half> %A, <16 x i8> undef, i8 -1)927  ret <16 x i8> %ret928}929 930define <16 x i8> @test_int_x86_avx10_mask_vcvtph2bf8128(<16 x i8> %B, <8 x half> %A, i8 %C) nounwind {931; X64-LABEL: test_int_x86_avx10_mask_vcvtph2bf8128:932; X64:       # %bb.0:933; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]934; X64-NEXT:    vcvtph2bf8 %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf2,0x7e,0x09,0x74,0xc1]935; X64-NEXT:    retq # encoding: [0xc3]936;937; X86-LABEL: test_int_x86_avx10_mask_vcvtph2bf8128:938; X86:       # %bb.0:939; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]940; X86-NEXT:    vcvtph2bf8 %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf2,0x7e,0x09,0x74,0xc1]941; X86-NEXT:    retl # encoding: [0xc3]942  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtph2bf8128(<8 x half> %A, <16 x i8> %B, i8 %C)943  ret <16 x i8> %ret944}945 946declare <16 x i8> @llvm.x86.avx10.mask.vcvtph2bf8128(<8 x half> %A, <16 x i8> %B, i8 %C)947 948define <16 x i8> @test_int_x86_avx10_maskz_vcvtph2bf8128(<8 x half> %A, i8 %B) nounwind {949; X64-LABEL: test_int_x86_avx10_maskz_vcvtph2bf8128:950; X64:       # %bb.0:951; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]952; X64-NEXT:    vcvtph2bf8 %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf2,0x7e,0x89,0x74,0xc0]953; X64-NEXT:    retq # encoding: [0xc3]954;955; X86-LABEL: test_int_x86_avx10_maskz_vcvtph2bf8128:956; X86:       # %bb.0:957; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]958; X86-NEXT:    vcvtph2bf8 %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf2,0x7e,0x89,0x74,0xc0]959; X86-NEXT:    retl # encoding: [0xc3]960  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtph2bf8128(<8 x half> %A, <16 x i8> zeroinitializer, i8 %B)961  ret <16 x i8> %ret962}963 964define <16 x i8> @test_int_x86_avx10_vcvtph2bf8256(<16 x half> %A) nounwind {965; CHECK-LABEL: test_int_x86_avx10_vcvtph2bf8256:966; CHECK:       # %bb.0:967; CHECK-NEXT:    vcvtph2bf8 %ymm0, %xmm0 # encoding: [0x62,0xf2,0x7e,0x28,0x74,0xc0]968; CHECK-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]969; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]970  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtph2bf8256(<16 x half> %A, <16 x i8> undef, i16 -1)971  ret <16 x i8> %ret972}973 974define <16 x i8> @test_int_x86_avx10_mask_vcvtph2bf8256(<16 x i8> %B, <16 x half> %A, i16 %C) nounwind {975; X64-LABEL: test_int_x86_avx10_mask_vcvtph2bf8256:976; X64:       # %bb.0:977; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]978; X64-NEXT:    vcvtph2bf8 %ymm1, %xmm0 {%k1} # encoding: [0x62,0xf2,0x7e,0x29,0x74,0xc1]979; X64-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]980; X64-NEXT:    retq # encoding: [0xc3]981;982; X86-LABEL: test_int_x86_avx10_mask_vcvtph2bf8256:983; X86:       # %bb.0:984; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]985; X86-NEXT:    vcvtph2bf8 %ymm1, %xmm0 {%k1} # encoding: [0x62,0xf2,0x7e,0x29,0x74,0xc1]986; X86-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]987; X86-NEXT:    retl # encoding: [0xc3]988  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtph2bf8256(<16 x half> %A, <16 x i8> %B, i16 %C)989  ret <16 x i8> %ret990}991 992declare <16 x i8> @llvm.x86.avx10.mask.vcvtph2bf8256(<16 x half> %A, <16 x i8> %B, i16 %C)993 994define <16 x i8> @test_int_x86_avx10_maskz_vcvtph2bf8256(<16 x half> %A, i16 %B) nounwind {995; X64-LABEL: test_int_x86_avx10_maskz_vcvtph2bf8256:996; X64:       # %bb.0:997; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]998; X64-NEXT:    vcvtph2bf8 %ymm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf2,0x7e,0xa9,0x74,0xc0]999; X64-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]1000; X64-NEXT:    retq # encoding: [0xc3]1001;1002; X86-LABEL: test_int_x86_avx10_maskz_vcvtph2bf8256:1003; X86:       # %bb.0:1004; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]1005; X86-NEXT:    vcvtph2bf8 %ymm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf2,0x7e,0xa9,0x74,0xc0]1006; X86-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]1007; X86-NEXT:    retl # encoding: [0xc3]1008  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtph2bf8256(<16 x half> %A, <16 x i8> zeroinitializer, i16 %B)1009  ret <16 x i8> %ret1010}1011 1012define <16 x i8> @test_int_x86_avx10_vcvtph2bf8s128(<8 x half> %A) nounwind {1013; CHECK-LABEL: test_int_x86_avx10_vcvtph2bf8s128:1014; CHECK:       # %bb.0:1015; CHECK-NEXT:    vcvtph2bf8s %xmm0, %xmm0 # encoding: [0x62,0xf5,0x7e,0x08,0x74,0xc0]1016; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]1017  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtph2bf8s128(<8 x half> %A, <16 x i8> undef, i8 -1)1018  ret <16 x i8> %ret1019}1020 1021define <16 x i8> @test_int_x86_avx10_mask_vcvtph2bf8s128(<16 x i8> %B, <8 x half> %A, i8 %C) nounwind {1022; X64-LABEL: test_int_x86_avx10_mask_vcvtph2bf8s128:1023; X64:       # %bb.0:1024; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]1025; X64-NEXT:    vcvtph2bf8s %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7e,0x09,0x74,0xc1]1026; X64-NEXT:    retq # encoding: [0xc3]1027;1028; X86-LABEL: test_int_x86_avx10_mask_vcvtph2bf8s128:1029; X86:       # %bb.0:1030; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]1031; X86-NEXT:    vcvtph2bf8s %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7e,0x09,0x74,0xc1]1032; X86-NEXT:    retl # encoding: [0xc3]1033  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtph2bf8s128(<8 x half> %A, <16 x i8> %B, i8 %C)1034  ret <16 x i8> %ret1035}1036 1037declare <16 x i8> @llvm.x86.avx10.mask.vcvtph2bf8s128(<8 x half> %A, <16 x i8> %B, i8 %C)1038 1039define <16 x i8> @test_int_x86_avx10_maskz_vcvtph2bf8s128(<8 x half> %A, i8 %B) nounwind {1040; X64-LABEL: test_int_x86_avx10_maskz_vcvtph2bf8s128:1041; X64:       # %bb.0:1042; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]1043; X64-NEXT:    vcvtph2bf8s %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7e,0x89,0x74,0xc0]1044; X64-NEXT:    retq # encoding: [0xc3]1045;1046; X86-LABEL: test_int_x86_avx10_maskz_vcvtph2bf8s128:1047; X86:       # %bb.0:1048; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]1049; X86-NEXT:    vcvtph2bf8s %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7e,0x89,0x74,0xc0]1050; X86-NEXT:    retl # encoding: [0xc3]1051  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtph2bf8s128(<8 x half> %A, <16 x i8> zeroinitializer, i8 %B)1052  ret <16 x i8> %ret1053}1054 1055define <16 x i8> @test_int_x86_avx10_vcvtph2bf8s256(<16 x half> %A) nounwind {1056; CHECK-LABEL: test_int_x86_avx10_vcvtph2bf8s256:1057; CHECK:       # %bb.0:1058; CHECK-NEXT:    vcvtph2bf8s %ymm0, %xmm0 # encoding: [0x62,0xf5,0x7e,0x28,0x74,0xc0]1059; CHECK-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]1060; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]1061  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtph2bf8s256(<16 x half> %A, <16 x i8> undef, i16 -1)1062  ret <16 x i8> %ret1063}1064 1065define <16 x i8> @test_int_x86_avx10_mask_vcvtph2bf8s256(<16 x i8> %B, <16 x half> %A, i16 %C) nounwind {1066; X64-LABEL: test_int_x86_avx10_mask_vcvtph2bf8s256:1067; X64:       # %bb.0:1068; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]1069; X64-NEXT:    vcvtph2bf8s %ymm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7e,0x29,0x74,0xc1]1070; X64-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]1071; X64-NEXT:    retq # encoding: [0xc3]1072;1073; X86-LABEL: test_int_x86_avx10_mask_vcvtph2bf8s256:1074; X86:       # %bb.0:1075; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]1076; X86-NEXT:    vcvtph2bf8s %ymm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7e,0x29,0x74,0xc1]1077; X86-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]1078; X86-NEXT:    retl # encoding: [0xc3]1079  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtph2bf8s256(<16 x half> %A, <16 x i8> %B, i16 %C)1080  ret <16 x i8> %ret1081}1082 1083declare <16 x i8> @llvm.x86.avx10.mask.vcvtph2bf8s256(<16 x half> %A, <16 x i8> %B, i16 %C)1084 1085define <16 x i8> @test_int_x86_avx10_maskz_vcvtph2bf8s256(<16 x half> %A, i16 %B) nounwind {1086; X64-LABEL: test_int_x86_avx10_maskz_vcvtph2bf8s256:1087; X64:       # %bb.0:1088; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]1089; X64-NEXT:    vcvtph2bf8s %ymm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7e,0xa9,0x74,0xc0]1090; X64-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]1091; X64-NEXT:    retq # encoding: [0xc3]1092;1093; X86-LABEL: test_int_x86_avx10_maskz_vcvtph2bf8s256:1094; X86:       # %bb.0:1095; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]1096; X86-NEXT:    vcvtph2bf8s %ymm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7e,0xa9,0x74,0xc0]1097; X86-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]1098; X86-NEXT:    retl # encoding: [0xc3]1099  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtph2bf8s256(<16 x half> %A, <16 x i8> zeroinitializer, i16 %B)1100  ret <16 x i8> %ret1101}1102 1103define <16 x i8> @test_int_x86_avx10_vcvtph2hf8128(<8 x half> %A) nounwind {1104; CHECK-LABEL: test_int_x86_avx10_vcvtph2hf8128:1105; CHECK:       # %bb.0:1106; CHECK-NEXT:    vcvtph2hf8 %xmm0, %xmm0 # encoding: [0x62,0xf5,0x7e,0x08,0x18,0xc0]1107; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]1108  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtph2hf8128(<8 x half> %A, <16 x i8> undef, i8 -1)1109  ret <16 x i8> %ret1110}1111 1112define <16 x i8> @test_int_x86_avx10_mask_vcvtph2hf8128(<16 x i8> %B, <8 x half> %A, i8 %C) nounwind {1113; X64-LABEL: test_int_x86_avx10_mask_vcvtph2hf8128:1114; X64:       # %bb.0:1115; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]1116; X64-NEXT:    vcvtph2hf8 %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7e,0x09,0x18,0xc1]1117; X64-NEXT:    retq # encoding: [0xc3]1118;1119; X86-LABEL: test_int_x86_avx10_mask_vcvtph2hf8128:1120; X86:       # %bb.0:1121; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]1122; X86-NEXT:    vcvtph2hf8 %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7e,0x09,0x18,0xc1]1123; X86-NEXT:    retl # encoding: [0xc3]1124  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtph2hf8128(<8 x half> %A, <16 x i8> %B, i8 %C)1125  ret <16 x i8> %ret1126}1127 1128declare <16 x i8> @llvm.x86.avx10.mask.vcvtph2hf8128(<8 x half> %A, <16 x i8> %B, i8 %C)1129 1130define <16 x i8> @test_int_x86_avx10_maskz_vcvtph2hf8128(<8 x half> %A, i8 %B) nounwind {1131; X64-LABEL: test_int_x86_avx10_maskz_vcvtph2hf8128:1132; X64:       # %bb.0:1133; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]1134; X64-NEXT:    vcvtph2hf8 %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7e,0x89,0x18,0xc0]1135; X64-NEXT:    retq # encoding: [0xc3]1136;1137; X86-LABEL: test_int_x86_avx10_maskz_vcvtph2hf8128:1138; X86:       # %bb.0:1139; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]1140; X86-NEXT:    vcvtph2hf8 %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7e,0x89,0x18,0xc0]1141; X86-NEXT:    retl # encoding: [0xc3]1142  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtph2hf8128(<8 x half> %A, <16 x i8> zeroinitializer, i8 %B)1143  ret <16 x i8> %ret1144}1145 1146define <16 x i8> @test_int_x86_avx10_vcvtph2hf8256(<16 x half> %A) nounwind {1147; CHECK-LABEL: test_int_x86_avx10_vcvtph2hf8256:1148; CHECK:       # %bb.0:1149; CHECK-NEXT:    vcvtph2hf8 %ymm0, %xmm0 # encoding: [0x62,0xf5,0x7e,0x28,0x18,0xc0]1150; CHECK-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]1151; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]1152  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtph2hf8256(<16 x half> %A, <16 x i8> undef, i16 -1)1153  ret <16 x i8> %ret1154}1155 1156define <16 x i8> @test_int_x86_avx10_mask_vcvtph2hf8256(<16 x i8> %B, <16 x half> %A, i16 %C) nounwind {1157; X64-LABEL: test_int_x86_avx10_mask_vcvtph2hf8256:1158; X64:       # %bb.0:1159; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]1160; X64-NEXT:    vcvtph2hf8 %ymm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7e,0x29,0x18,0xc1]1161; X64-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]1162; X64-NEXT:    retq # encoding: [0xc3]1163;1164; X86-LABEL: test_int_x86_avx10_mask_vcvtph2hf8256:1165; X86:       # %bb.0:1166; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]1167; X86-NEXT:    vcvtph2hf8 %ymm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7e,0x29,0x18,0xc1]1168; X86-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]1169; X86-NEXT:    retl # encoding: [0xc3]1170  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtph2hf8256(<16 x half> %A, <16 x i8> %B, i16 %C)1171  ret <16 x i8> %ret1172}1173 1174declare <16 x i8> @llvm.x86.avx10.mask.vcvtph2hf8256(<16 x half> %A, <16 x i8> %B, i16 %C)1175 1176define <16 x i8> @test_int_x86_avx10_maskz_vcvtph2hf8256(<16 x half> %A, i16 %B) nounwind {1177; X64-LABEL: test_int_x86_avx10_maskz_vcvtph2hf8256:1178; X64:       # %bb.0:1179; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]1180; X64-NEXT:    vcvtph2hf8 %ymm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7e,0xa9,0x18,0xc0]1181; X64-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]1182; X64-NEXT:    retq # encoding: [0xc3]1183;1184; X86-LABEL: test_int_x86_avx10_maskz_vcvtph2hf8256:1185; X86:       # %bb.0:1186; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]1187; X86-NEXT:    vcvtph2hf8 %ymm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7e,0xa9,0x18,0xc0]1188; X86-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]1189; X86-NEXT:    retl # encoding: [0xc3]1190  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtph2hf8256(<16 x half> %A, <16 x i8> zeroinitializer, i16 %B)1191  ret <16 x i8> %ret1192}1193 1194define <16 x i8> @test_int_x86_avx10_vcvtph2hf8s128(<8 x half> %A) nounwind {1195; CHECK-LABEL: test_int_x86_avx10_vcvtph2hf8s128:1196; CHECK:       # %bb.0:1197; CHECK-NEXT:    vcvtph2hf8s %xmm0, %xmm0 # encoding: [0x62,0xf5,0x7e,0x08,0x1b,0xc0]1198; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]1199  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtph2hf8s128(<8 x half> %A, <16 x i8> undef, i8 -1)1200  ret <16 x i8> %ret1201}1202 1203define <16 x i8> @test_int_x86_avx10_mask_vcvtph2hf8s128(<16 x i8> %B, <8 x half> %A, i8 %C) nounwind {1204; X64-LABEL: test_int_x86_avx10_mask_vcvtph2hf8s128:1205; X64:       # %bb.0:1206; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]1207; X64-NEXT:    vcvtph2hf8s %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7e,0x09,0x1b,0xc1]1208; X64-NEXT:    retq # encoding: [0xc3]1209;1210; X86-LABEL: test_int_x86_avx10_mask_vcvtph2hf8s128:1211; X86:       # %bb.0:1212; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]1213; X86-NEXT:    vcvtph2hf8s %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7e,0x09,0x1b,0xc1]1214; X86-NEXT:    retl # encoding: [0xc3]1215  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtph2hf8s128(<8 x half> %A, <16 x i8> %B, i8 %C)1216  ret <16 x i8> %ret1217}1218 1219declare <16 x i8> @llvm.x86.avx10.mask.vcvtph2hf8s128(<8 x half> %A, <16 x i8> %B, i8 %C)1220 1221define <16 x i8> @test_int_x86_avx10_maskz_vcvtph2hf8s128(<8 x half> %A, i8 %B) nounwind {1222; X64-LABEL: test_int_x86_avx10_maskz_vcvtph2hf8s128:1223; X64:       # %bb.0:1224; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]1225; X64-NEXT:    vcvtph2hf8s %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7e,0x89,0x1b,0xc0]1226; X64-NEXT:    retq # encoding: [0xc3]1227;1228; X86-LABEL: test_int_x86_avx10_maskz_vcvtph2hf8s128:1229; X86:       # %bb.0:1230; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]1231; X86-NEXT:    vcvtph2hf8s %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7e,0x89,0x1b,0xc0]1232; X86-NEXT:    retl # encoding: [0xc3]1233  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtph2hf8s128(<8 x half> %A, <16 x i8> zeroinitializer, i8 %B)1234  ret <16 x i8> %ret1235}1236 1237define <16 x i8> @test_int_x86_avx10_vcvtph2hf8s256(<16 x half> %A) nounwind {1238; CHECK-LABEL: test_int_x86_avx10_vcvtph2hf8s256:1239; CHECK:       # %bb.0:1240; CHECK-NEXT:    vcvtph2hf8s %ymm0, %xmm0 # encoding: [0x62,0xf5,0x7e,0x28,0x1b,0xc0]1241; CHECK-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]1242; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]1243  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtph2hf8s256(<16 x half> %A, <16 x i8> undef, i16 -1)1244  ret <16 x i8> %ret1245}1246 1247define <16 x i8> @test_int_x86_avx10_mask_vcvtph2hf8s256(<16 x i8> %B, <16 x half> %A, i16 %C) nounwind {1248; X64-LABEL: test_int_x86_avx10_mask_vcvtph2hf8s256:1249; X64:       # %bb.0:1250; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]1251; X64-NEXT:    vcvtph2hf8s %ymm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7e,0x29,0x1b,0xc1]1252; X64-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]1253; X64-NEXT:    retq # encoding: [0xc3]1254;1255; X86-LABEL: test_int_x86_avx10_mask_vcvtph2hf8s256:1256; X86:       # %bb.0:1257; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]1258; X86-NEXT:    vcvtph2hf8s %ymm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7e,0x29,0x1b,0xc1]1259; X86-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]1260; X86-NEXT:    retl # encoding: [0xc3]1261  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtph2hf8s256(<16 x half> %A, <16 x i8> %B, i16 %C)1262  ret <16 x i8> %ret1263}1264 1265declare <16 x i8> @llvm.x86.avx10.mask.vcvtph2hf8s256(<16 x half> %A, <16 x i8> %B, i16 %C)1266 1267define <16 x i8> @test_int_x86_avx10_maskz_vcvtph2hf8s256(<16 x half> %A, i16 %B) nounwind {1268; X64-LABEL: test_int_x86_avx10_maskz_vcvtph2hf8s256:1269; X64:       # %bb.0:1270; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]1271; X64-NEXT:    vcvtph2hf8s %ymm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7e,0xa9,0x1b,0xc0]1272; X64-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]1273; X64-NEXT:    retq # encoding: [0xc3]1274;1275; X86-LABEL: test_int_x86_avx10_maskz_vcvtph2hf8s256:1276; X86:       # %bb.0:1277; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]1278; X86-NEXT:    vcvtph2hf8s %ymm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7e,0xa9,0x1b,0xc0]1279; X86-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]1280; X86-NEXT:    retl # encoding: [0xc3]1281  %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtph2hf8s256(<16 x half> %A, <16 x i8> zeroinitializer, i16 %B)1282  ret <16 x i8> %ret1283}1284