brintos

brintos / llvm-project-archived public Read only

0
0
Text · 33.8 KiB · cc87ae0 Raw
678 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 <32 x half> @test_int_x86_avx10_vcvt2ps2phx512(<16 x float> %A, <16 x float> %B) {6; CHECK-LABEL: test_int_x86_avx10_vcvt2ps2phx512:7; CHECK:       # %bb.0:8; CHECK-NEXT:    vcvt2ps2phx %zmm1, %zmm0, %zmm0 # encoding: [0x62,0xf2,0x7d,0x48,0x67,0xc1]9; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]10  %ret = call <32 x half> @llvm.x86.avx10.mask.vcvt2ps2phx.512(<16 x float> %A, <16 x float> %B, <32 x half> zeroinitializer, i32 -1, i32 4)11  ret <32 x half> %ret12}13 14define <32 x half> @test_int_x86_avx10_vcvt2ps2phx512_mask(<32 x half> %W, i32 %U, <16 x float> %A, <16 x float> %B) {15; X64-LABEL: test_int_x86_avx10_vcvt2ps2phx512_mask:16; X64:       # %bb.0:17; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]18; X64-NEXT:    vcvt2ps2phx %zmm2, %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf2,0x75,0x49,0x67,0xc2]19; X64-NEXT:    retq # encoding: [0xc3]20;21; X86-LABEL: test_int_x86_avx10_vcvt2ps2phx512_mask:22; X86:       # %bb.0:23; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]24; X86-NEXT:    vcvt2ps2phx %zmm2, %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf2,0x75,0x49,0x67,0xc2]25; X86-NEXT:    retl # encoding: [0xc3]26  %ret = call <32 x half> @llvm.x86.avx10.mask.vcvt2ps2phx.512(<16 x float> %A, <16 x float> %B, <32 x half> %W, i32 %U, i32 4)27  ret <32 x half> %ret28}29 30define <32 x half> @test_int_x86_avx10_vcvt2ps2phx512_maskz(i32 %U, <16 x float> %A, <16 x float> %B) {31; X64-LABEL: test_int_x86_avx10_vcvt2ps2phx512_maskz:32; X64:       # %bb.0:33; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]34; X64-NEXT:    vcvt2ps2phx %zmm1, %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf2,0x7d,0xc9,0x67,0xc1]35; X64-NEXT:    retq # encoding: [0xc3]36;37; X86-LABEL: test_int_x86_avx10_vcvt2ps2phx512_maskz:38; X86:       # %bb.0:39; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]40; X86-NEXT:    vcvt2ps2phx %zmm1, %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf2,0x7d,0xc9,0x67,0xc1]41; X86-NEXT:    retl # encoding: [0xc3]42  %ret = call <32 x half> @llvm.x86.avx10.mask.vcvt2ps2phx.512(<16 x float> %A, <16 x float> %B, <32 x half> zeroinitializer, i32 %U, i32 4)43  ret <32 x half> %ret44}45 46define <32 x half> @test_int_x86_avx10_vcvt2ps2phx512_round(<16 x float> %A, <16 x float> %B) {47; CHECK-LABEL: test_int_x86_avx10_vcvt2ps2phx512_round:48; CHECK:       # %bb.0:49; CHECK-NEXT:    vcvt2ps2phx {rz-sae}, %zmm1, %zmm0, %zmm0 # encoding: [0x62,0xf2,0x7d,0x78,0x67,0xc1]50; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]51  %ret = call <32 x half> @llvm.x86.avx10.mask.vcvt2ps2phx.512(<16 x float> %A, <16 x float> %B, <32 x half> zeroinitializer, i32 -1, i32 11)52  ret <32 x half> %ret53}54 55define <32 x half> @test_int_x86_avx10_vcvt2ps2phx512_round_mask(<32 x half> %W, i32 %U, <16 x float> %A, <16 x float> %B) {56; X64-LABEL: test_int_x86_avx10_vcvt2ps2phx512_round_mask:57; X64:       # %bb.0:58; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]59; X64-NEXT:    vcvt2ps2phx {rz-sae}, %zmm2, %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf2,0x75,0x79,0x67,0xc2]60; X64-NEXT:    retq # encoding: [0xc3]61;62; X86-LABEL: test_int_x86_avx10_vcvt2ps2phx512_round_mask:63; X86:       # %bb.0:64; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]65; X86-NEXT:    vcvt2ps2phx {rz-sae}, %zmm2, %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf2,0x75,0x79,0x67,0xc2]66; X86-NEXT:    retl # encoding: [0xc3]67  %ret = call <32 x half> @llvm.x86.avx10.mask.vcvt2ps2phx.512(<16 x float> %A, <16 x float> %B, <32 x half> %W, i32 %U, i32 11)68  ret <32 x half> %ret69}70 71define <32 x half> @test_int_x86_avx10_vcvt2ps2phx512_round_maskz(i32 %U, <16 x float> %A, <16 x float> %B) {72; X64-LABEL: test_int_x86_avx10_vcvt2ps2phx512_round_maskz:73; X64:       # %bb.0:74; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]75; X64-NEXT:    vcvt2ps2phx {rz-sae}, %zmm1, %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf2,0x7d,0xf9,0x67,0xc1]76; X64-NEXT:    retq # encoding: [0xc3]77;78; X86-LABEL: test_int_x86_avx10_vcvt2ps2phx512_round_maskz:79; X86:       # %bb.0:80; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]81; X86-NEXT:    vcvt2ps2phx {rz-sae}, %zmm1, %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf2,0x7d,0xf9,0x67,0xc1]82; X86-NEXT:    retl # encoding: [0xc3]83  %ret = call <32 x half> @llvm.x86.avx10.mask.vcvt2ps2phx.512(<16 x float> %A, <16 x float> %B, <32 x half> zeroinitializer, i32 %U, i32 11)84  ret <32 x half> %ret85}86 87declare <32 x half> @llvm.x86.avx10.mask.vcvt2ps2phx512(<16 x float>, <16 x float>, i32, i32)88 89define <32 x i8> @test_int_x86_avx10_vcvtbiasph2bf8512(<64 x i8> %A, <32 x half> %B) nounwind {90; CHECK-LABEL: test_int_x86_avx10_vcvtbiasph2bf8512:91; CHECK:       # %bb.0:92; CHECK-NEXT:    vcvtbiasph2bf8 %zmm1, %zmm0, %ymm0 # encoding: [0x62,0xf2,0x7c,0x48,0x74,0xc1]93; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]94  %ret = call <32 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8512(<64 x i8> %A, <32 x half> %B, <32 x i8> undef, i32 -1)95  ret <32 x i8> %ret96}97 98define <32 x i8> @test_int_x86_avx10_mask_vcvtbiasph2bf8512(<32 x i8> %W, i32 %U, <64 x i8> %A, <32 x half> %B) nounwind {99; X64-LABEL: test_int_x86_avx10_mask_vcvtbiasph2bf8512:100; X64:       # %bb.0:101; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]102; X64-NEXT:    vcvtbiasph2bf8 %zmm2, %zmm1, %ymm0 {%k1} # encoding: [0x62,0xf2,0x74,0x49,0x74,0xc2]103; X64-NEXT:    retq # encoding: [0xc3]104;105; X86-LABEL: test_int_x86_avx10_mask_vcvtbiasph2bf8512:106; X86:       # %bb.0:107; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]108; X86-NEXT:    vcvtbiasph2bf8 %zmm2, %zmm1, %ymm0 {%k1} # encoding: [0x62,0xf2,0x74,0x49,0x74,0xc2]109; X86-NEXT:    retl # encoding: [0xc3]110  %ret = call <32 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8512(<64 x i8> %A, <32 x half> %B, <32 x i8> %W, i32 %U)111  ret <32 x i8> %ret112}113 114declare <32 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8512(<64 x i8> %A, <32 x half> %B, <32 x i8> %W, i32 %U)115 116define <32 x i8> @test_int_x86_avx10_maskz_vcvtbiasph2bf8512(<64 x i8> %A, <32 x half> %B, i32 %U) nounwind {117; X64-LABEL: test_int_x86_avx10_maskz_vcvtbiasph2bf8512:118; X64:       # %bb.0:119; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]120; X64-NEXT:    vcvtbiasph2bf8 %zmm1, %zmm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf2,0x7c,0xc9,0x74,0xc1]121; X64-NEXT:    retq # encoding: [0xc3]122;123; X86-LABEL: test_int_x86_avx10_maskz_vcvtbiasph2bf8512:124; X86:       # %bb.0:125; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]126; X86-NEXT:    vcvtbiasph2bf8 %zmm1, %zmm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf2,0x7c,0xc9,0x74,0xc1]127; X86-NEXT:    retl # encoding: [0xc3]128  %ret = call <32 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8512(<64 x i8> %A, <32 x half> %B, <32 x i8> zeroinitializer, i32 %U)129  ret <32 x i8> %ret130}131 132define <32 x i8> @test_int_x86_avx10_vcvtbiasph2bf8s512(<64 x i8> %A, <32 x half> %B) nounwind {133; CHECK-LABEL: test_int_x86_avx10_vcvtbiasph2bf8s512:134; CHECK:       # %bb.0:135; CHECK-NEXT:    vcvtbiasph2bf8s %zmm1, %zmm0, %ymm0 # encoding: [0x62,0xf5,0x7c,0x48,0x74,0xc1]136; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]137  %ret = call <32 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8s512(<64 x i8> %A, <32 x half> %B, <32 x i8> undef, i32 -1)138  ret <32 x i8> %ret139}140 141define <32 x i8> @test_int_x86_avx10_mask_vcvtbiasph2bf8s512(<32 x i8> %W, i32 %U, <64 x i8> %A, <32 x half> %B) nounwind {142; X64-LABEL: test_int_x86_avx10_mask_vcvtbiasph2bf8s512:143; X64:       # %bb.0:144; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]145; X64-NEXT:    vcvtbiasph2bf8s %zmm2, %zmm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x74,0x49,0x74,0xc2]146; X64-NEXT:    retq # encoding: [0xc3]147;148; X86-LABEL: test_int_x86_avx10_mask_vcvtbiasph2bf8s512:149; X86:       # %bb.0:150; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]151; X86-NEXT:    vcvtbiasph2bf8s %zmm2, %zmm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x74,0x49,0x74,0xc2]152; X86-NEXT:    retl # encoding: [0xc3]153  %ret = call <32 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8s512(<64 x i8> %A, <32 x half> %B, <32 x i8> %W, i32 %U)154  ret <32 x i8> %ret155}156 157declare <32 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8s512(<64 x i8> %A, <32 x half> %B, <32 x i8> %W, i32 %U)158 159define <32 x i8> @test_int_x86_avx10_maskz_vcvtbiasph2bf8s512(<64 x i8> %A, <32 x half> %B, i32 %U) nounwind {160; X64-LABEL: test_int_x86_avx10_maskz_vcvtbiasph2bf8s512:161; X64:       # %bb.0:162; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]163; X64-NEXT:    vcvtbiasph2bf8s %zmm1, %zmm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0xc9,0x74,0xc1]164; X64-NEXT:    retq # encoding: [0xc3]165;166; X86-LABEL: test_int_x86_avx10_maskz_vcvtbiasph2bf8s512:167; X86:       # %bb.0:168; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]169; X86-NEXT:    vcvtbiasph2bf8s %zmm1, %zmm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0xc9,0x74,0xc1]170; X86-NEXT:    retl # encoding: [0xc3]171  %ret = call <32 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8s512(<64 x i8> %A, <32 x half> %B, <32 x i8> zeroinitializer, i32 %U)172  ret <32 x i8> %ret173}174 175define <32 x i8> @test_int_x86_avx10_vcvtbiasph2hf8512(<64 x i8> %A, <32 x half> %B) nounwind {176; CHECK-LABEL: test_int_x86_avx10_vcvtbiasph2hf8512:177; CHECK:       # %bb.0:178; CHECK-NEXT:    vcvtbiasph2hf8 %zmm1, %zmm0, %ymm0 # encoding: [0x62,0xf5,0x7c,0x48,0x18,0xc1]179; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]180  %ret = call <32 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8512(<64 x i8> %A, <32 x half> %B, <32 x i8> undef, i32 -1)181  ret <32 x i8> %ret182}183 184define <32 x i8> @test_int_x86_avx10_mask_vcvtbiasph2hf8512(<32 x i8> %W, i32 %U, <64 x i8> %A, <32 x half> %B) nounwind {185; X64-LABEL: test_int_x86_avx10_mask_vcvtbiasph2hf8512:186; X64:       # %bb.0:187; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]188; X64-NEXT:    vcvtbiasph2hf8 %zmm2, %zmm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x74,0x49,0x18,0xc2]189; X64-NEXT:    retq # encoding: [0xc3]190;191; X86-LABEL: test_int_x86_avx10_mask_vcvtbiasph2hf8512:192; X86:       # %bb.0:193; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]194; X86-NEXT:    vcvtbiasph2hf8 %zmm2, %zmm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x74,0x49,0x18,0xc2]195; X86-NEXT:    retl # encoding: [0xc3]196  %ret = call <32 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8512(<64 x i8> %A, <32 x half> %B, <32 x i8> %W, i32 %U)197  ret <32 x i8> %ret198}199 200declare <32 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8512(<64 x i8> %A, <32 x half> %B, <32 x i8> %W, i32 %U)201 202define <32 x i8> @test_int_x86_avx10_maskz_vcvtbiasph2hf8512(<64 x i8> %A, <32 x half> %B, i32 %U) nounwind {203; X64-LABEL: test_int_x86_avx10_maskz_vcvtbiasph2hf8512:204; X64:       # %bb.0:205; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]206; X64-NEXT:    vcvtbiasph2hf8 %zmm1, %zmm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0xc9,0x18,0xc1]207; X64-NEXT:    retq # encoding: [0xc3]208;209; X86-LABEL: test_int_x86_avx10_maskz_vcvtbiasph2hf8512:210; X86:       # %bb.0:211; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]212; X86-NEXT:    vcvtbiasph2hf8 %zmm1, %zmm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0xc9,0x18,0xc1]213; X86-NEXT:    retl # encoding: [0xc3]214  %ret = call <32 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8512(<64 x i8> %A, <32 x half> %B, <32 x i8> zeroinitializer, i32 %U)215  ret <32 x i8> %ret216}217 218define <32 x i8> @test_int_x86_avx10_vcvtbiasph2hf8s512(<64 x i8> %A, <32 x half> %B) nounwind {219; CHECK-LABEL: test_int_x86_avx10_vcvtbiasph2hf8s512:220; CHECK:       # %bb.0:221; CHECK-NEXT:    vcvtbiasph2hf8s %zmm1, %zmm0, %ymm0 # encoding: [0x62,0xf5,0x7c,0x48,0x1b,0xc1]222; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]223  %ret = call <32 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8s512(<64 x i8> %A, <32 x half> %B, <32 x i8> undef, i32 -1)224  ret <32 x i8> %ret225}226 227define <32 x i8> @test_int_x86_avx10_mask_vcvtbiasph2hf8s512(<32 x i8> %W, i32 %U, <64 x i8> %A, <32 x half> %B) nounwind {228; X64-LABEL: test_int_x86_avx10_mask_vcvtbiasph2hf8s512:229; X64:       # %bb.0:230; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]231; X64-NEXT:    vcvtbiasph2hf8s %zmm2, %zmm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x74,0x49,0x1b,0xc2]232; X64-NEXT:    retq # encoding: [0xc3]233;234; X86-LABEL: test_int_x86_avx10_mask_vcvtbiasph2hf8s512:235; X86:       # %bb.0:236; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]237; X86-NEXT:    vcvtbiasph2hf8s %zmm2, %zmm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x74,0x49,0x1b,0xc2]238; X86-NEXT:    retl # encoding: [0xc3]239  %ret = call <32 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8s512(<64 x i8> %A, <32 x half> %B, <32 x i8> %W, i32 %U)240  ret <32 x i8> %ret241}242 243declare <32 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8s512(<64 x i8> %A, <32 x half> %B, <32 x i8> %W, i32 %U)244 245define <32 x i8> @test_int_x86_avx10_maskz_vcvtbiasph2hf8s512(<64 x i8> %A, <32 x half> %B, i32 %U) nounwind {246; X64-LABEL: test_int_x86_avx10_maskz_vcvtbiasph2hf8s512:247; X64:       # %bb.0:248; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]249; X64-NEXT:    vcvtbiasph2hf8s %zmm1, %zmm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0xc9,0x1b,0xc1]250; X64-NEXT:    retq # encoding: [0xc3]251;252; X86-LABEL: test_int_x86_avx10_maskz_vcvtbiasph2hf8s512:253; X86:       # %bb.0:254; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]255; X86-NEXT:    vcvtbiasph2hf8s %zmm1, %zmm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0xc9,0x1b,0xc1]256; X86-NEXT:    retl # encoding: [0xc3]257  %ret = call <32 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8s512(<64 x i8> %A, <32 x half> %B, <32 x i8> zeroinitializer, i32 %U)258  ret <32 x i8> %ret259}260 261define <64 x i8> @test_int_x86_avx10_vcvt2ph2bf8512(<32 x half> %A, <32 x half> %B) nounwind {262; CHECK-LABEL: test_int_x86_avx10_vcvt2ph2bf8512:263; CHECK:       # %bb.0:264; CHECK-NEXT:    vcvt2ph2bf8 %zmm1, %zmm0, %zmm0 # encoding: [0x62,0xf2,0x7f,0x48,0x74,0xc1]265; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]266  %ret = call <64 x i8> @llvm.x86.avx10.vcvt2ph2bf8512(<32 x half> %A, <32 x half> %B)267  ret <64 x i8> %ret268}269 270define <8 x i64> @test_int_x86_avx10_vcvt2ph2bf8512_mask(<8 x i64> %C, i64 %U, <32 x half> %A, <32 x half> %B) nounwind {271; X64-LABEL: test_int_x86_avx10_vcvt2ph2bf8512_mask:272; X64:       # %bb.0:273; X64-NEXT:    kmovq %rdi, %k1 # encoding: [0xc4,0xe1,0xfb,0x92,0xcf]274; X64-NEXT:    vcvt2ph2bf8 %zmm2, %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf2,0x77,0x49,0x74,0xc2]275; X64-NEXT:    retq # encoding: [0xc3]276;277; X86-LABEL: test_int_x86_avx10_vcvt2ph2bf8512_mask:278; X86:       # %bb.0:279; X86-NEXT:    kmovq {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf8,0x90,0x4c,0x24,0x04]280; X86-NEXT:    vcvt2ph2bf8 %zmm2, %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf2,0x77,0x49,0x74,0xc2]281; X86-NEXT:    retl # encoding: [0xc3]282  %1 = call <64 x i8> @llvm.x86.avx10.vcvt2ph2bf8512(<32 x half> %A, <32 x half> %B)283  %2 = bitcast <8 x i64> %C to <64 x i8>284  %3 = bitcast i64 %U to <64 x i1>285  %4 = select <64 x i1> %3, <64 x i8> %1, <64 x i8> %2286  %5 = bitcast <64 x i8> %4 to <8 x i64>287  ret <8 x i64> %5288}289 290define <8 x i64> @test_int_x86_avx10_vcvt2ph2bf8512_maskz(i64 %U, <32 x half> %A, <32 x half> %B) nounwind {291; X64-LABEL: test_int_x86_avx10_vcvt2ph2bf8512_maskz:292; X64:       # %bb.0:293; X64-NEXT:    kmovq %rdi, %k1 # encoding: [0xc4,0xe1,0xfb,0x92,0xcf]294; X64-NEXT:    vcvt2ph2bf8 %zmm1, %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf2,0x7f,0xc9,0x74,0xc1]295; X64-NEXT:    retq # encoding: [0xc3]296;297; X86-LABEL: test_int_x86_avx10_vcvt2ph2bf8512_maskz:298; X86:       # %bb.0:299; X86-NEXT:    kmovq {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf8,0x90,0x4c,0x24,0x04]300; X86-NEXT:    vcvt2ph2bf8 %zmm1, %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf2,0x7f,0xc9,0x74,0xc1]301; X86-NEXT:    retl # encoding: [0xc3]302  %1 = call <64 x i8> @llvm.x86.avx10.vcvt2ph2bf8512(<32 x half> %A, <32 x half> %B)303  %3 = bitcast i64 %U to <64 x i1>304  %4 = select <64 x i1> %3, <64 x i8> %1, <64 x i8> zeroinitializer305  %5 = bitcast <64 x i8> %4 to <8 x i64>306  ret <8 x i64> %5307}308 309declare <64 x i8> @llvm.x86.avx10.vcvt2ph2bf8512(<32 x half> %A, <32 x half> %B)310 311define <64 x i8> @test_int_x86_avx10_vcvt2ph2bf8s512(<32 x half> %A, <32 x half> %B) nounwind {312; CHECK-LABEL: test_int_x86_avx10_vcvt2ph2bf8s512:313; CHECK:       # %bb.0:314; CHECK-NEXT:    vcvt2ph2bf8s %zmm1, %zmm0, %zmm0 # encoding: [0x62,0xf5,0x7f,0x48,0x74,0xc1]315; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]316  %ret = call <64 x i8> @llvm.x86.avx10.vcvt2ph2bf8s512(<32 x half> %A, <32 x half> %B)317  ret <64 x i8> %ret318}319 320declare <64 x i8> @llvm.x86.avx10.vcvt2ph2bf8s512(<32 x half> %A, <32 x half> %B)321 322define <8 x i64> @test_int_x86_avx10_vcvt2ph2bf8s512_mask(<8 x i64> %C, i64 %U, <32 x half> %A, <32 x half> %B) nounwind {323; X64-LABEL: test_int_x86_avx10_vcvt2ph2bf8s512_mask:324; X64:       # %bb.0:325; X64-NEXT:    kmovq %rdi, %k1 # encoding: [0xc4,0xe1,0xfb,0x92,0xcf]326; X64-NEXT:    vcvt2ph2bf8s %zmm2, %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x77,0x49,0x74,0xc2]327; X64-NEXT:    retq # encoding: [0xc3]328;329; X86-LABEL: test_int_x86_avx10_vcvt2ph2bf8s512_mask:330; X86:       # %bb.0:331; X86-NEXT:    kmovq {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf8,0x90,0x4c,0x24,0x04]332; X86-NEXT:    vcvt2ph2bf8s %zmm2, %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x77,0x49,0x74,0xc2]333; X86-NEXT:    retl # encoding: [0xc3]334  %1 = call <64 x i8> @llvm.x86.avx10.vcvt2ph2bf8s512(<32 x half> %A, <32 x half> %B)335  %2 = bitcast <8 x i64> %C to <64 x i8>336  %3 = bitcast i64 %U to <64 x i1>337  %4 = select <64 x i1> %3, <64 x i8> %1, <64 x i8> %2338  %5 = bitcast <64 x i8> %4 to <8 x i64>339  ret <8 x i64> %5340}341 342define <8 x i64> @test_int_x86_avx10_vcvt2ph2bf8s512_maskz(i64 %U, <32 x half> %A, <32 x half> %B) nounwind {343; X64-LABEL: test_int_x86_avx10_vcvt2ph2bf8s512_maskz:344; X64:       # %bb.0:345; X64-NEXT:    kmovq %rdi, %k1 # encoding: [0xc4,0xe1,0xfb,0x92,0xcf]346; X64-NEXT:    vcvt2ph2bf8s %zmm1, %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0xc9,0x74,0xc1]347; X64-NEXT:    retq # encoding: [0xc3]348;349; X86-LABEL: test_int_x86_avx10_vcvt2ph2bf8s512_maskz:350; X86:       # %bb.0:351; X86-NEXT:    kmovq {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf8,0x90,0x4c,0x24,0x04]352; X86-NEXT:    vcvt2ph2bf8s %zmm1, %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0xc9,0x74,0xc1]353; X86-NEXT:    retl # encoding: [0xc3]354  %1 = call <64 x i8> @llvm.x86.avx10.vcvt2ph2bf8s512(<32 x half> %A, <32 x half> %B)355  %3 = bitcast i64 %U to <64 x i1>356  %4 = select <64 x i1> %3, <64 x i8> %1, <64 x i8> zeroinitializer357  %5 = bitcast <64 x i8> %4 to <8 x i64>358  ret <8 x i64> %5359}360 361define <64 x i8> @test_int_x86_avx10_vcvt2ph2hf8512(<32 x half> %A, <32 x half> %B) nounwind {362; CHECK-LABEL: test_int_x86_avx10_vcvt2ph2hf8512:363; CHECK:       # %bb.0:364; CHECK-NEXT:    vcvt2ph2hf8 %zmm1, %zmm0, %zmm0 # encoding: [0x62,0xf5,0x7f,0x48,0x18,0xc1]365; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]366  %ret = call <64 x i8> @llvm.x86.avx10.vcvt2ph2hf8512(<32 x half> %A, <32 x half> %B)367  ret <64 x i8> %ret368}369 370define <8 x i64> @test_int_x86_avx10_vcvt2ph2hf8512_mask(<8 x i64> %C, i64 %U, <32 x half> %A, <32 x half> %B) nounwind {371; X64-LABEL: test_int_x86_avx10_vcvt2ph2hf8512_mask:372; X64:       # %bb.0:373; X64-NEXT:    kmovq %rdi, %k1 # encoding: [0xc4,0xe1,0xfb,0x92,0xcf]374; X64-NEXT:    vcvt2ph2hf8 %zmm2, %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x77,0x49,0x18,0xc2]375; X64-NEXT:    retq # encoding: [0xc3]376;377; X86-LABEL: test_int_x86_avx10_vcvt2ph2hf8512_mask:378; X86:       # %bb.0:379; X86-NEXT:    kmovq {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf8,0x90,0x4c,0x24,0x04]380; X86-NEXT:    vcvt2ph2hf8 %zmm2, %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x77,0x49,0x18,0xc2]381; X86-NEXT:    retl # encoding: [0xc3]382  %1 = call <64 x i8> @llvm.x86.avx10.vcvt2ph2hf8512(<32 x half> %A, <32 x half> %B)383  %2 = bitcast <8 x i64> %C to <64 x i8>384  %3 = bitcast i64 %U to <64 x i1>385  %4 = select <64 x i1> %3, <64 x i8> %1, <64 x i8> %2386  %5 = bitcast <64 x i8> %4 to <8 x i64>387  ret <8 x i64> %5388}389 390define <8 x i64> @test_int_x86_avx10_vcvt2ph2hf8512_maskz(i64 %U, <32 x half> %A, <32 x half> %B) nounwind {391; X64-LABEL: test_int_x86_avx10_vcvt2ph2hf8512_maskz:392; X64:       # %bb.0:393; X64-NEXT:    kmovq %rdi, %k1 # encoding: [0xc4,0xe1,0xfb,0x92,0xcf]394; X64-NEXT:    vcvt2ph2hf8 %zmm1, %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0xc9,0x18,0xc1]395; X64-NEXT:    retq # encoding: [0xc3]396;397; X86-LABEL: test_int_x86_avx10_vcvt2ph2hf8512_maskz:398; X86:       # %bb.0:399; X86-NEXT:    kmovq {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf8,0x90,0x4c,0x24,0x04]400; X86-NEXT:    vcvt2ph2hf8 %zmm1, %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0xc9,0x18,0xc1]401; X86-NEXT:    retl # encoding: [0xc3]402  %1 = call <64 x i8> @llvm.x86.avx10.vcvt2ph2hf8512(<32 x half> %A, <32 x half> %B)403  %3 = bitcast i64 %U to <64 x i1>404  %4 = select <64 x i1> %3, <64 x i8> %1, <64 x i8> zeroinitializer405  %5 = bitcast <64 x i8> %4 to <8 x i64>406  ret <8 x i64> %5407}408 409declare <64 x i8> @llvm.x86.avx10.vcvt2ph2hf8512(<32 x half> %A, <32 x half> %B)410 411define <64 x i8> @test_int_x86_avx10_vcvt2ph2hf8s512(<32 x half> %A, <32 x half> %B) nounwind {412; CHECK-LABEL: test_int_x86_avx10_vcvt2ph2hf8s512:413; CHECK:       # %bb.0:414; CHECK-NEXT:    vcvt2ph2hf8s %zmm1, %zmm0, %zmm0 # encoding: [0x62,0xf5,0x7f,0x48,0x1b,0xc1]415; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]416  %ret = call <64 x i8> @llvm.x86.avx10.vcvt2ph2hf8s512(<32 x half> %A, <32 x half> %B)417  ret <64 x i8> %ret418}419 420define <8 x i64> @test_int_x86_avx10_vcvt2ph2hf8s512_mask(<8 x i64> %C, i64 %U, <32 x half> %A, <32 x half> %B) nounwind {421; X64-LABEL: test_int_x86_avx10_vcvt2ph2hf8s512_mask:422; X64:       # %bb.0:423; X64-NEXT:    kmovq %rdi, %k1 # encoding: [0xc4,0xe1,0xfb,0x92,0xcf]424; X64-NEXT:    vcvt2ph2hf8s %zmm2, %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x77,0x49,0x1b,0xc2]425; X64-NEXT:    retq # encoding: [0xc3]426;427; X86-LABEL: test_int_x86_avx10_vcvt2ph2hf8s512_mask:428; X86:       # %bb.0:429; X86-NEXT:    kmovq {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf8,0x90,0x4c,0x24,0x04]430; X86-NEXT:    vcvt2ph2hf8s %zmm2, %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x77,0x49,0x1b,0xc2]431; X86-NEXT:    retl # encoding: [0xc3]432  %1 = call <64 x i8> @llvm.x86.avx10.vcvt2ph2hf8s512(<32 x half> %A, <32 x half> %B)433  %2 = bitcast <8 x i64> %C to <64 x i8>434  %3 = bitcast i64 %U to <64 x i1>435  %4 = select <64 x i1> %3, <64 x i8> %1, <64 x i8> %2436  %5 = bitcast <64 x i8> %4 to <8 x i64>437  ret <8 x i64> %5438}439 440 441define <8 x i64> @test_int_x86_avx10_vcvt2ph2hf8s512_maskz(i64 %U, <32 x half> %A, <32 x half> %B) nounwind {442; X64-LABEL: test_int_x86_avx10_vcvt2ph2hf8s512_maskz:443; X64:       # %bb.0:444; X64-NEXT:    kmovq %rdi, %k1 # encoding: [0xc4,0xe1,0xfb,0x92,0xcf]445; X64-NEXT:    vcvt2ph2hf8s %zmm1, %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0xc9,0x1b,0xc1]446; X64-NEXT:    retq # encoding: [0xc3]447;448; X86-LABEL: test_int_x86_avx10_vcvt2ph2hf8s512_maskz:449; X86:       # %bb.0:450; X86-NEXT:    kmovq {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf8,0x90,0x4c,0x24,0x04]451; X86-NEXT:    vcvt2ph2hf8s %zmm1, %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0xc9,0x1b,0xc1]452; X86-NEXT:    retl # encoding: [0xc3]453  %1 = call <64 x i8> @llvm.x86.avx10.vcvt2ph2hf8s512(<32 x half> %A, <32 x half> %B)454  %3 = bitcast i64 %U to <64 x i1>455  %4 = select <64 x i1> %3, <64 x i8> %1, <64 x i8> zeroinitializer456  %5 = bitcast <64 x i8> %4 to <8 x i64>457  ret <8 x i64> %5458}459 460declare <64 x i8> @llvm.x86.avx10.vcvt2ph2hf8s512(<32 x half> %A, <32 x half> %B)461 462define <32 x half> @test_int_x86_avx10_vcvthf82ph512(<32 x i8> %A) nounwind {463; CHECK-LABEL: test_int_x86_avx10_vcvthf82ph512:464; CHECK:       # %bb.0:465; CHECK-NEXT:    vcvthf82ph %ymm0, %zmm0 # encoding: [0x62,0xf5,0x7f,0x48,0x1e,0xc0]466; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]467  %ret = call <32 x half> @llvm.x86.avx10.mask.vcvthf82ph512(<32 x i8> %A, <32 x half> undef, i32 -1)468  ret <32 x half> %ret469}470 471define <32 x half> @test_int_x86_avx10_mask_vcvthf82ph512(<32 x i8> %A, <32 x half> %B, i32 %C) nounwind {472; X64-LABEL: test_int_x86_avx10_mask_vcvthf82ph512:473; X64:       # %bb.0:474; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]475; X64-NEXT:    vcvthf82ph %ymm0, %zmm1 {%k1} # encoding: [0x62,0xf5,0x7f,0x49,0x1e,0xc8]476; X64-NEXT:    vmovdqa64 %zmm1, %zmm0 # encoding: [0x62,0xf1,0xfd,0x48,0x6f,0xc1]477; X64-NEXT:    retq # encoding: [0xc3]478;479; X86-LABEL: test_int_x86_avx10_mask_vcvthf82ph512:480; X86:       # %bb.0:481; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]482; X86-NEXT:    vcvthf82ph %ymm0, %zmm1 {%k1} # encoding: [0x62,0xf5,0x7f,0x49,0x1e,0xc8]483; X86-NEXT:    vmovdqa64 %zmm1, %zmm0 # encoding: [0x62,0xf1,0xfd,0x48,0x6f,0xc1]484; X86-NEXT:    retl # encoding: [0xc3]485  %ret = call <32 x half> @llvm.x86.avx10.mask.vcvthf82ph512(<32 x i8> %A, <32 x half> %B, i32 %C)486  ret <32 x half> %ret487}488 489declare <32 x half> @llvm.x86.avx10.mask.vcvthf82ph512(<32 x i8> %A, <32 x half> %B, i32 %C)490 491define <32 x half> @test_int_x86_avx10_maskz_vcvthf82ph512(<32 x i8> %A, i32 %B) nounwind {492; X64-LABEL: test_int_x86_avx10_maskz_vcvthf82ph512:493; X64:       # %bb.0:494; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]495; X64-NEXT:    vcvthf82ph %ymm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0xc9,0x1e,0xc0]496; X64-NEXT:    retq # encoding: [0xc3]497;498; X86-LABEL: test_int_x86_avx10_maskz_vcvthf82ph512:499; X86:       # %bb.0:500; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]501; X86-NEXT:    vcvthf82ph %ymm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0xc9,0x1e,0xc0]502; X86-NEXT:    retl # encoding: [0xc3]503  %ret = call <32 x half> @llvm.x86.avx10.mask.vcvthf82ph512(<32 x i8> %A, <32 x half> zeroinitializer, i32 %B)504  ret <32 x half> %ret505}506 507define <32 x i8> @test_int_x86_avx10_vcvtph2bf8512(<32 x half> %A) nounwind {508; CHECK-LABEL: test_int_x86_avx10_vcvtph2bf8512:509; CHECK:       # %bb.0:510; CHECK-NEXT:    vcvtph2bf8 %zmm0, %ymm0 # encoding: [0x62,0xf2,0x7e,0x48,0x74,0xc0]511; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]512  %ret = call <32 x i8> @llvm.x86.avx10.mask.vcvtph2bf8512(<32 x half> %A, <32 x i8> undef, i32 -1)513  ret <32 x i8> %ret514}515 516define <32 x i8> @test_int_x86_avx10_mask_vcvtph2bf8512(<32 x i8> %B, <32 x half> %A, i32 %C) nounwind {517; X64-LABEL: test_int_x86_avx10_mask_vcvtph2bf8512:518; X64:       # %bb.0:519; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]520; X64-NEXT:    vcvtph2bf8 %zmm1, %ymm0 {%k1} # encoding: [0x62,0xf2,0x7e,0x49,0x74,0xc1]521; X64-NEXT:    retq # encoding: [0xc3]522;523; X86-LABEL: test_int_x86_avx10_mask_vcvtph2bf8512:524; X86:       # %bb.0:525; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]526; X86-NEXT:    vcvtph2bf8 %zmm1, %ymm0 {%k1} # encoding: [0x62,0xf2,0x7e,0x49,0x74,0xc1]527; X86-NEXT:    retl # encoding: [0xc3]528  %ret = call <32 x i8> @llvm.x86.avx10.mask.vcvtph2bf8512(<32 x half> %A, <32 x i8> %B, i32 %C)529  ret <32 x i8> %ret530}531 532declare <32 x i8> @llvm.x86.avx10.mask.vcvtph2bf8512(<32 x half> %A, <32 x i8> %B, i32 %C)533 534define <32 x i8> @test_int_x86_avx10_maskz_vcvtph2bf8512(<32 x half> %A, i32 %B) nounwind {535; X64-LABEL: test_int_x86_avx10_maskz_vcvtph2bf8512:536; X64:       # %bb.0:537; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]538; X64-NEXT:    vcvtph2bf8 %zmm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf2,0x7e,0xc9,0x74,0xc0]539; X64-NEXT:    retq # encoding: [0xc3]540;541; X86-LABEL: test_int_x86_avx10_maskz_vcvtph2bf8512:542; X86:       # %bb.0:543; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]544; X86-NEXT:    vcvtph2bf8 %zmm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf2,0x7e,0xc9,0x74,0xc0]545; X86-NEXT:    retl # encoding: [0xc3]546  %ret = call <32 x i8> @llvm.x86.avx10.mask.vcvtph2bf8512(<32 x half> %A, <32 x i8> zeroinitializer, i32 %B)547  ret <32 x i8> %ret548}549 550define <32 x i8> @test_int_x86_avx10_vcvtph2bf8s512(<32 x half> %A) nounwind {551; CHECK-LABEL: test_int_x86_avx10_vcvtph2bf8s512:552; CHECK:       # %bb.0:553; CHECK-NEXT:    vcvtph2bf8s %zmm0, %ymm0 # encoding: [0x62,0xf5,0x7e,0x48,0x74,0xc0]554; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]555  %ret = call <32 x i8> @llvm.x86.avx10.mask.vcvtph2bf8s512(<32 x half> %A, <32 x i8> undef, i32 -1)556  ret <32 x i8> %ret557}558 559define <32 x i8> @test_int_x86_avx10_mask_vcvtph2bf8s512(<32 x i8> %B, <32 x half> %A, i32 %C) nounwind {560; X64-LABEL: test_int_x86_avx10_mask_vcvtph2bf8s512:561; X64:       # %bb.0:562; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]563; X64-NEXT:    vcvtph2bf8s %zmm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x7e,0x49,0x74,0xc1]564; X64-NEXT:    retq # encoding: [0xc3]565;566; X86-LABEL: test_int_x86_avx10_mask_vcvtph2bf8s512:567; X86:       # %bb.0:568; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]569; X86-NEXT:    vcvtph2bf8s %zmm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x7e,0x49,0x74,0xc1]570; X86-NEXT:    retl # encoding: [0xc3]571  %ret = call <32 x i8> @llvm.x86.avx10.mask.vcvtph2bf8s512(<32 x half> %A, <32 x i8> %B, i32 %C)572  ret <32 x i8> %ret573}574 575declare <32 x i8> @llvm.x86.avx10.mask.vcvtph2bf8s512(<32 x half> %A, <32 x i8> %B, i32 %C)576 577define <32 x i8> @test_int_x86_avx10_maskz_vcvtph2bf8s512(<32 x half> %A, i32 %B) nounwind {578; X64-LABEL: test_int_x86_avx10_maskz_vcvtph2bf8s512:579; X64:       # %bb.0:580; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]581; X64-NEXT:    vcvtph2bf8s %zmm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7e,0xc9,0x74,0xc0]582; X64-NEXT:    retq # encoding: [0xc3]583;584; X86-LABEL: test_int_x86_avx10_maskz_vcvtph2bf8s512:585; X86:       # %bb.0:586; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]587; X86-NEXT:    vcvtph2bf8s %zmm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7e,0xc9,0x74,0xc0]588; X86-NEXT:    retl # encoding: [0xc3]589  %ret = call <32 x i8> @llvm.x86.avx10.mask.vcvtph2bf8s512(<32 x half> %A, <32 x i8> zeroinitializer, i32 %B)590  ret <32 x i8> %ret591}592 593define <32 x i8> @test_int_x86_avx10_vcvtph2hf8512(<32 x half> %A) nounwind {594; CHECK-LABEL: test_int_x86_avx10_vcvtph2hf8512:595; CHECK:       # %bb.0:596; CHECK-NEXT:    vcvtph2hf8 %zmm0, %ymm0 # encoding: [0x62,0xf5,0x7e,0x48,0x18,0xc0]597; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]598  %ret = call <32 x i8> @llvm.x86.avx10.mask.vcvtph2hf8512(<32 x half> %A, <32 x i8> undef, i32 -1)599  ret <32 x i8> %ret600}601 602define <32 x i8> @test_int_x86_avx10_mask_vcvtph2hf8512(<32 x i8> %B, <32 x half> %A, i32 %C) nounwind {603; X64-LABEL: test_int_x86_avx10_mask_vcvtph2hf8512:604; X64:       # %bb.0:605; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]606; X64-NEXT:    vcvtph2hf8 %zmm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x7e,0x49,0x18,0xc1]607; X64-NEXT:    retq # encoding: [0xc3]608;609; X86-LABEL: test_int_x86_avx10_mask_vcvtph2hf8512:610; X86:       # %bb.0:611; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]612; X86-NEXT:    vcvtph2hf8 %zmm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x7e,0x49,0x18,0xc1]613; X86-NEXT:    retl # encoding: [0xc3]614  %ret = call <32 x i8> @llvm.x86.avx10.mask.vcvtph2hf8512(<32 x half> %A, <32 x i8> %B, i32 %C)615  ret <32 x i8> %ret616}617 618declare <32 x i8> @llvm.x86.avx10.mask.vcvtph2hf8512(<32 x half> %A, <32 x i8> %B, i32 %C)619 620define <32 x i8> @test_int_x86_avx10_maskz_vcvtph2hf8512(<32 x half> %A, i32 %B) nounwind {621; X64-LABEL: test_int_x86_avx10_maskz_vcvtph2hf8512:622; X64:       # %bb.0:623; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]624; X64-NEXT:    vcvtph2hf8 %zmm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7e,0xc9,0x18,0xc0]625; X64-NEXT:    retq # encoding: [0xc3]626;627; X86-LABEL: test_int_x86_avx10_maskz_vcvtph2hf8512:628; X86:       # %bb.0:629; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]630; X86-NEXT:    vcvtph2hf8 %zmm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7e,0xc9,0x18,0xc0]631; X86-NEXT:    retl # encoding: [0xc3]632  %ret = call <32 x i8> @llvm.x86.avx10.mask.vcvtph2hf8512(<32 x half> %A, <32 x i8> zeroinitializer, i32 %B)633  ret <32 x i8> %ret634}635 636define <32 x i8> @test_int_x86_avx10_vcvtph2hf8s512(<32 x half> %A) nounwind {637; CHECK-LABEL: test_int_x86_avx10_vcvtph2hf8s512:638; CHECK:       # %bb.0:639; CHECK-NEXT:    vcvtph2hf8s %zmm0, %ymm0 # encoding: [0x62,0xf5,0x7e,0x48,0x1b,0xc0]640; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]641  %ret = call <32 x i8> @llvm.x86.avx10.mask.vcvtph2hf8s512(<32 x half> %A, <32 x i8> undef, i32 -1)642  ret <32 x i8> %ret643}644 645define <32 x i8> @test_int_x86_avx10_mask_vcvtph2hf8s512(<32 x i8> %B, <32 x half> %A, i32 %C) nounwind {646; X64-LABEL: test_int_x86_avx10_mask_vcvtph2hf8s512:647; X64:       # %bb.0:648; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]649; X64-NEXT:    vcvtph2hf8s %zmm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x7e,0x49,0x1b,0xc1]650; X64-NEXT:    retq # encoding: [0xc3]651;652; X86-LABEL: test_int_x86_avx10_mask_vcvtph2hf8s512:653; X86:       # %bb.0:654; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]655; X86-NEXT:    vcvtph2hf8s %zmm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x7e,0x49,0x1b,0xc1]656; X86-NEXT:    retl # encoding: [0xc3]657  %ret = call <32 x i8> @llvm.x86.avx10.mask.vcvtph2hf8s512(<32 x half> %A, <32 x i8> %B, i32 %C)658  ret <32 x i8> %ret659}660 661declare <32 x i8> @llvm.x86.avx10.mask.vcvtph2hf8s512(<32 x half> %A, <32 x i8> %B, i32 %C)662 663define <32 x i8> @test_int_x86_avx10_maskz_vcvtph2hf8s512(<32 x half> %A, i32 %B) nounwind {664; X64-LABEL: test_int_x86_avx10_maskz_vcvtph2hf8s512:665; X64:       # %bb.0:666; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]667; X64-NEXT:    vcvtph2hf8s %zmm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7e,0xc9,0x1b,0xc0]668; X64-NEXT:    retq # encoding: [0xc3]669;670; X86-LABEL: test_int_x86_avx10_maskz_vcvtph2hf8s512:671; X86:       # %bb.0:672; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]673; X86-NEXT:    vcvtph2hf8s %zmm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7e,0xc9,0x1b,0xc0]674; X86-NEXT:    retl # encoding: [0xc3]675  %ret = call <32 x i8> @llvm.x86.avx10.mask.vcvtph2hf8s512(<32 x half> %A, <32 x i8> zeroinitializer, i32 %B)676  ret <32 x i8> %ret677}678