1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc < %s -verify-machineinstrs -mtriple=x86_64-unknown-unknown --show-mc-encoding -mattr=+avx10.2-256 | FileCheck %s --check-prefixes=CHECK,X64
3 ; RUN: llc < %s -verify-machineinstrs -mtriple=i686-unknown-unknown --show-mc-encoding -mattr=+avx10.2-256 | FileCheck %s --check-prefixes=CHECK,X86
5 define <8 x half> @test_int_x86_avx10_vcvt2ps2phx128(<4 x float> %A, <4 x float> %B) {
6 ; CHECK-LABEL: test_int_x86_avx10_vcvt2ps2phx128:
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)
14 define <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:
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]
21 ; X86-LABEL: test_int_x86_avx10_vcvt2ps2phx128_mask:
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)
30 define <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:
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]
37 ; X86-LABEL: test_int_x86_avx10_vcvt2ps2phx128_maskz:
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)
46 declare <8 x half> @llvm.x86.avx10.mask.vcvt2ps2phx.128(<4 x float>, <4 x float>, <8 x half>, i8)
48 define <16 x half> @test_int_x86_avx10_vcvt2ps2phx256(<8 x float> %A, <8 x float> %B) {
49 ; CHECK-LABEL: test_int_x86_avx10_vcvt2ps2phx256:
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, i32 4)
57 define <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:
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]
64 ; X86-LABEL: test_int_x86_avx10_vcvt2ps2phx256_mask:
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, i32 4)
73 define <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:
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]
80 ; X86-LABEL: test_int_x86_avx10_vcvt2ps2phx256_maskz:
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, i32 4)
89 define <16 x half> @test_int_x86_avx10_vcvt2ps2phx256_round(<8 x float> %A, <8 x float> %B) {
90 ; CHECK-LABEL: test_int_x86_avx10_vcvt2ps2phx256_round:
92 ; CHECK-NEXT: vcvt2ps2phx {rz-sae}, %ymm1, %ymm0, %ymm0 # encoding: [0x62,0xf2,0x79,0x78,0x67,0xc1]
93 ; CHECK-NEXT: ret{{[l|q]}} # encoding: [0xc3]
94 %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, i32 11)
98 define <16 x half> @test_int_x86_avx10_vcvt2ps2phx256_round_mask(<16 x half> %W, i16 %U, <8 x float> %A, <8 x float> %B) {
99 ; X64-LABEL: test_int_x86_avx10_vcvt2ps2phx256_round_mask:
101 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
102 ; X64-NEXT: vcvt2ps2phx {rz-sae}, %ymm2, %ymm1, %ymm0 {%k1} # encoding: [0x62,0xf2,0x71,0x79,0x67,0xc2]
103 ; X64-NEXT: retq # encoding: [0xc3]
105 ; X86-LABEL: test_int_x86_avx10_vcvt2ps2phx256_round_mask:
107 ; X86-NEXT: kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]
108 ; X86-NEXT: vcvt2ps2phx {rz-sae}, %ymm2, %ymm1, %ymm0 {%k1} # encoding: [0x62,0xf2,0x71,0x79,0x67,0xc2]
109 ; X86-NEXT: retl # encoding: [0xc3]
110 %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, i32 11)
114 define <16 x half> @test_int_x86_avx10_vcvt2ps2phx256_round_maskz(i16 %U, <8 x float> %A, <8 x float> %B) {
115 ; X64-LABEL: test_int_x86_avx10_vcvt2ps2phx256_round_maskz:
117 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
118 ; X64-NEXT: vcvt2ps2phx {rz-sae}, %ymm1, %ymm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf2,0x79,0xf9,0x67,0xc1]
119 ; X64-NEXT: retq # encoding: [0xc3]
121 ; X86-LABEL: test_int_x86_avx10_vcvt2ps2phx256_round_maskz:
123 ; X86-NEXT: kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]
124 ; X86-NEXT: vcvt2ps2phx {rz-sae}, %ymm1, %ymm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf2,0x79,0xf9,0x67,0xc1]
125 ; X86-NEXT: retl # encoding: [0xc3]
126 %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, i32 11)
130 declare <16 x half> @llvm.x86.avx10.mask.vcvt2ps2phx.256(<8 x float>, <8 x float>, <16 x half>, i16, i32)
132 define <16 x i8> @test_int_x86_avx10_vcvtbiasph2bf8128(<16 x i8> %A, <8 x half> %B) nounwind {
133 ; CHECK-LABEL: test_int_x86_avx10_vcvtbiasph2bf8128:
135 ; CHECK-NEXT: vcvtbiasph2bf8 %xmm1, %xmm0, %xmm0 # encoding: [0x62,0xf2,0x7c,0x08,0x74,0xc1]
136 ; CHECK-NEXT: ret{{[l|q]}} # encoding: [0xc3]
137 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8128(<16 x i8> %A, <8 x half> %B, <16 x i8> undef, i8 -1)
141 define <16 x i8> @test_int_x86_avx10_mask_vcvtbiasph2bf8128(<16 x i8> %W, <16 x i8> %A, <8 x half> %B, i8 %U) nounwind {
142 ; X64-LABEL: test_int_x86_avx10_mask_vcvtbiasph2bf8128:
144 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
145 ; X64-NEXT: vcvtbiasph2bf8 %xmm2, %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf2,0x74,0x09,0x74,0xc2]
146 ; X64-NEXT: retq # encoding: [0xc3]
148 ; X86-LABEL: test_int_x86_avx10_mask_vcvtbiasph2bf8128:
150 ; X86-NEXT: kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]
151 ; X86-NEXT: vcvtbiasph2bf8 %xmm2, %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf2,0x74,0x09,0x74,0xc2]
152 ; X86-NEXT: retl # encoding: [0xc3]
153 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8128(<16 x i8> %A, <8 x half> %B, <16 x i8> %W, i8 %U)
157 declare <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8128(<16 x i8> %A, <8 x half> %B, <16 x i8> %W, i8 %U)
159 define <16 x i8> @test_int_x86_avx10_maskz_vcvtbiasph2bf8128(<16 x i8> %A, <8 x half> %B, i8 %U) nounwind {
160 ; X64-LABEL: test_int_x86_avx10_maskz_vcvtbiasph2bf8128:
162 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
163 ; X64-NEXT: vcvtbiasph2bf8 %xmm1, %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf2,0x7c,0x89,0x74,0xc1]
164 ; X64-NEXT: retq # encoding: [0xc3]
166 ; X86-LABEL: test_int_x86_avx10_maskz_vcvtbiasph2bf8128:
168 ; X86-NEXT: kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]
169 ; X86-NEXT: vcvtbiasph2bf8 %xmm1, %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf2,0x7c,0x89,0x74,0xc1]
170 ; X86-NEXT: retl # encoding: [0xc3]
171 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8128(<16 x i8> %A, <8 x half> %B, <16 x i8> zeroinitializer, i8 %U)
175 define <16 x i8> @test_int_x86_avx10_vcvtbiasph2bf8256(<32 x i8> %A, <16 x half> %B) nounwind {
176 ; CHECK-LABEL: test_int_x86_avx10_vcvtbiasph2bf8256:
178 ; CHECK-NEXT: vcvtbiasph2bf8 %ymm1, %ymm0, %xmm0 # encoding: [0x62,0xf2,0x7c,0x28,0x74,0xc1]
179 ; CHECK-NEXT: vzeroupper # encoding: [0xc5,0xf8,0x77]
180 ; CHECK-NEXT: ret{{[l|q]}} # encoding: [0xc3]
181 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8256(<32 x i8> %A, <16 x half> %B, <16 x i8> undef, i16 -1)
185 define <16 x i8> @test_int_x86_avx10_mask_vcvtbiasph2bf8256(<16 x i8> %W, <32 x i8> %A, <16 x half> %B, i16 %U) nounwind {
186 ; X64-LABEL: test_int_x86_avx10_mask_vcvtbiasph2bf8256:
188 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
189 ; X64-NEXT: vcvtbiasph2bf8 %ymm2, %ymm1, %xmm0 {%k1} # encoding: [0x62,0xf2,0x74,0x29,0x74,0xc2]
190 ; X64-NEXT: vzeroupper # encoding: [0xc5,0xf8,0x77]
191 ; X64-NEXT: retq # encoding: [0xc3]
193 ; X86-LABEL: test_int_x86_avx10_mask_vcvtbiasph2bf8256:
195 ; X86-NEXT: kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]
196 ; X86-NEXT: vcvtbiasph2bf8 %ymm2, %ymm1, %xmm0 {%k1} # encoding: [0x62,0xf2,0x74,0x29,0x74,0xc2]
197 ; X86-NEXT: vzeroupper # encoding: [0xc5,0xf8,0x77]
198 ; X86-NEXT: retl # encoding: [0xc3]
199 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8256(<32 x i8> %A, <16 x half> %B, <16 x i8> %W, i16 %U)
203 declare <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8256(<32 x i8> %A, <16 x half> %B, <16 x i8> %W, i16 %U)
205 define <16 x i8> @test_int_x86_avx10_maskz_vcvtbiasph2bf8256(<32 x i8> %A, <16 x half> %B, i16 %U) nounwind {
206 ; X64-LABEL: test_int_x86_avx10_maskz_vcvtbiasph2bf8256:
208 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
209 ; X64-NEXT: vcvtbiasph2bf8 %ymm1, %ymm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf2,0x7c,0xa9,0x74,0xc1]
210 ; X64-NEXT: vzeroupper # encoding: [0xc5,0xf8,0x77]
211 ; X64-NEXT: retq # encoding: [0xc3]
213 ; X86-LABEL: test_int_x86_avx10_maskz_vcvtbiasph2bf8256:
215 ; X86-NEXT: kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]
216 ; X86-NEXT: vcvtbiasph2bf8 %ymm1, %ymm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf2,0x7c,0xa9,0x74,0xc1]
217 ; X86-NEXT: vzeroupper # encoding: [0xc5,0xf8,0x77]
218 ; X86-NEXT: retl # encoding: [0xc3]
219 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8256(<32 x i8> %A, <16 x half> %B, <16 x i8> zeroinitializer, i16 %U)
223 define <16 x i8> @test_int_x86_avx10_vcvtbiasph2bf8s128(<16 x i8> %A, <8 x half> %B) nounwind {
224 ; CHECK-LABEL: test_int_x86_avx10_vcvtbiasph2bf8s128:
226 ; CHECK-NEXT: vcvtbiasph2bf8s %xmm1, %xmm0, %xmm0 # encoding: [0x62,0xf5,0x7c,0x08,0x74,0xc1]
227 ; CHECK-NEXT: ret{{[l|q]}} # encoding: [0xc3]
228 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8s128(<16 x i8> %A, <8 x half> %B, <16 x i8> undef, i8 -1)
232 define <16 x i8> @test_int_x86_avx10_mask_vcvtbiasph2bf8s128(<16 x i8> %W, <16 x i8> %A, <8 x half> %B, i8 %U) nounwind {
233 ; X64-LABEL: test_int_x86_avx10_mask_vcvtbiasph2bf8s128:
235 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
236 ; X64-NEXT: vcvtbiasph2bf8s %xmm2, %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x74,0x09,0x74,0xc2]
237 ; X64-NEXT: retq # encoding: [0xc3]
239 ; X86-LABEL: test_int_x86_avx10_mask_vcvtbiasph2bf8s128:
241 ; X86-NEXT: kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]
242 ; X86-NEXT: vcvtbiasph2bf8s %xmm2, %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x74,0x09,0x74,0xc2]
243 ; X86-NEXT: retl # encoding: [0xc3]
244 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8s128(<16 x i8> %A, <8 x half> %B, <16 x i8> %W, i8 %U)
248 declare <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8s128(<16 x i8> %A, <8 x half> %B, <16 x i8> %W, i8 %U)
250 define <16 x i8> @test_int_x86_avx10_maskz_vcvtbiasph2bf8s128(<16 x i8> %A, <8 x half> %B, i8 %U) nounwind {
251 ; X64-LABEL: test_int_x86_avx10_maskz_vcvtbiasph2bf8s128:
253 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
254 ; X64-NEXT: vcvtbiasph2bf8s %xmm1, %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0x89,0x74,0xc1]
255 ; X64-NEXT: retq # encoding: [0xc3]
257 ; X86-LABEL: test_int_x86_avx10_maskz_vcvtbiasph2bf8s128:
259 ; X86-NEXT: kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]
260 ; X86-NEXT: vcvtbiasph2bf8s %xmm1, %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0x89,0x74,0xc1]
261 ; X86-NEXT: retl # encoding: [0xc3]
262 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8s128(<16 x i8> %A, <8 x half> %B, <16 x i8> zeroinitializer, i8 %U)
266 define <16 x i8> @test_int_x86_avx10_vcvtbiasph2bf8s256(<32 x i8> %A, <16 x half> %B) nounwind {
267 ; CHECK-LABEL: test_int_x86_avx10_vcvtbiasph2bf8s256:
269 ; CHECK-NEXT: vcvtbiasph2bf8s %ymm1, %ymm0, %xmm0 # encoding: [0x62,0xf5,0x7c,0x28,0x74,0xc1]
270 ; CHECK-NEXT: vzeroupper # encoding: [0xc5,0xf8,0x77]
271 ; CHECK-NEXT: ret{{[l|q]}} # encoding: [0xc3]
272 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8s256(<32 x i8> %A, <16 x half> %B, <16 x i8> undef, i16 -1)
276 define <16 x i8> @test_int_x86_avx10_mask_vcvtbiasph2bf8s256(<16 x i8> %W, <32 x i8> %A, <16 x half> %B, i16 %U) nounwind {
277 ; X64-LABEL: test_int_x86_avx10_mask_vcvtbiasph2bf8s256:
279 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
280 ; X64-NEXT: vcvtbiasph2bf8s %ymm2, %ymm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x74,0x29,0x74,0xc2]
281 ; X64-NEXT: vzeroupper # encoding: [0xc5,0xf8,0x77]
282 ; X64-NEXT: retq # encoding: [0xc3]
284 ; X86-LABEL: test_int_x86_avx10_mask_vcvtbiasph2bf8s256:
286 ; X86-NEXT: kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]
287 ; X86-NEXT: vcvtbiasph2bf8s %ymm2, %ymm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x74,0x29,0x74,0xc2]
288 ; X86-NEXT: vzeroupper # encoding: [0xc5,0xf8,0x77]
289 ; X86-NEXT: retl # encoding: [0xc3]
290 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8s256(<32 x i8> %A, <16 x half> %B, <16 x i8> %W, i16 %U)
294 declare <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8s256(<32 x i8> %A, <16 x half> %B, <16 x i8> %W, i16 %U)
296 define <16 x i8> @test_int_x86_avx10_maskz_vcvtbiasph2bf8s256(<32 x i8> %A, <16 x half> %B, i16 %U) nounwind {
297 ; X64-LABEL: test_int_x86_avx10_maskz_vcvtbiasph2bf8s256:
299 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
300 ; X64-NEXT: vcvtbiasph2bf8s %ymm1, %ymm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0xa9,0x74,0xc1]
301 ; X64-NEXT: vzeroupper # encoding: [0xc5,0xf8,0x77]
302 ; X64-NEXT: retq # encoding: [0xc3]
304 ; X86-LABEL: test_int_x86_avx10_maskz_vcvtbiasph2bf8s256:
306 ; X86-NEXT: kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]
307 ; X86-NEXT: vcvtbiasph2bf8s %ymm1, %ymm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0xa9,0x74,0xc1]
308 ; X86-NEXT: vzeroupper # encoding: [0xc5,0xf8,0x77]
309 ; X86-NEXT: retl # encoding: [0xc3]
310 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8s256(<32 x i8> %A, <16 x half> %B, <16 x i8> zeroinitializer, i16 %U)
314 define <16 x i8> @test_int_x86_avx10_vcvtbiasph2hf8128(<16 x i8> %A, <8 x half> %B) nounwind {
315 ; CHECK-LABEL: test_int_x86_avx10_vcvtbiasph2hf8128:
317 ; CHECK-NEXT: vcvtbiasph2hf8 %xmm1, %xmm0, %xmm0 # encoding: [0x62,0xf5,0x7c,0x08,0x18,0xc1]
318 ; CHECK-NEXT: ret{{[l|q]}} # encoding: [0xc3]
319 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8128(<16 x i8> %A, <8 x half> %B, <16 x i8> undef, i8 -1)
323 define <16 x i8> @test_int_x86_avx10_mask_vcvtbiasph2hf8128(<16 x i8> %W, <16 x i8> %A, <8 x half> %B, i8 %U) nounwind {
324 ; X64-LABEL: test_int_x86_avx10_mask_vcvtbiasph2hf8128:
326 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
327 ; X64-NEXT: vcvtbiasph2hf8 %xmm2, %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x74,0x09,0x18,0xc2]
328 ; X64-NEXT: retq # encoding: [0xc3]
330 ; X86-LABEL: test_int_x86_avx10_mask_vcvtbiasph2hf8128:
332 ; X86-NEXT: kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]
333 ; X86-NEXT: vcvtbiasph2hf8 %xmm2, %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x74,0x09,0x18,0xc2]
334 ; X86-NEXT: retl # encoding: [0xc3]
335 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8128(<16 x i8> %A, <8 x half> %B, <16 x i8> %W, i8 %U)
339 declare <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8128(<16 x i8> %A, <8 x half> %B, <16 x i8> %W, i8 %U)
341 define <16 x i8> @test_int_x86_avx10_maskz_vcvtbiasph2hf8128(<16 x i8> %A, <8 x half> %B, i8 %U) nounwind {
342 ; X64-LABEL: test_int_x86_avx10_maskz_vcvtbiasph2hf8128:
344 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
345 ; X64-NEXT: vcvtbiasph2hf8 %xmm1, %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0x89,0x18,0xc1]
346 ; X64-NEXT: retq # encoding: [0xc3]
348 ; X86-LABEL: test_int_x86_avx10_maskz_vcvtbiasph2hf8128:
350 ; X86-NEXT: kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]
351 ; X86-NEXT: vcvtbiasph2hf8 %xmm1, %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0x89,0x18,0xc1]
352 ; X86-NEXT: retl # encoding: [0xc3]
353 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8128(<16 x i8> %A, <8 x half> %B, <16 x i8> zeroinitializer, i8 %U)
357 define <16 x i8> @test_int_x86_avx10_vcvtbiasph2hf8256(<32 x i8> %A, <16 x half> %B) nounwind {
358 ; CHECK-LABEL: test_int_x86_avx10_vcvtbiasph2hf8256:
360 ; CHECK-NEXT: vcvtbiasph2hf8 %ymm1, %ymm0, %xmm0 # encoding: [0x62,0xf5,0x7c,0x28,0x18,0xc1]
361 ; CHECK-NEXT: vzeroupper # encoding: [0xc5,0xf8,0x77]
362 ; CHECK-NEXT: ret{{[l|q]}} # encoding: [0xc3]
363 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8256(<32 x i8> %A, <16 x half> %B, <16 x i8> undef, i16 -1)
367 define <16 x i8> @test_int_x86_avx10_mask_vcvtbiasph2hf8256(<16 x i8> %W, <32 x i8> %A, <16 x half> %B, i16 %U) nounwind {
368 ; X64-LABEL: test_int_x86_avx10_mask_vcvtbiasph2hf8256:
370 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
371 ; X64-NEXT: vcvtbiasph2hf8 %ymm2, %ymm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x74,0x29,0x18,0xc2]
372 ; X64-NEXT: vzeroupper # encoding: [0xc5,0xf8,0x77]
373 ; X64-NEXT: retq # encoding: [0xc3]
375 ; X86-LABEL: test_int_x86_avx10_mask_vcvtbiasph2hf8256:
377 ; X86-NEXT: kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]
378 ; X86-NEXT: vcvtbiasph2hf8 %ymm2, %ymm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x74,0x29,0x18,0xc2]
379 ; X86-NEXT: vzeroupper # encoding: [0xc5,0xf8,0x77]
380 ; X86-NEXT: retl # encoding: [0xc3]
381 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8256(<32 x i8> %A, <16 x half> %B, <16 x i8> %W, i16 %U)
385 declare <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8256(<32 x i8> %A, <16 x half> %B, <16 x i8> %W, i16 %U)
387 define <16 x i8> @test_int_x86_avx10_maskz_vcvtbiasph2hf8256(<32 x i8> %A, <16 x half> %B, i16 %U) nounwind {
388 ; X64-LABEL: test_int_x86_avx10_maskz_vcvtbiasph2hf8256:
390 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
391 ; X64-NEXT: vcvtbiasph2hf8 %ymm1, %ymm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0xa9,0x18,0xc1]
392 ; X64-NEXT: vzeroupper # encoding: [0xc5,0xf8,0x77]
393 ; X64-NEXT: retq # encoding: [0xc3]
395 ; X86-LABEL: test_int_x86_avx10_maskz_vcvtbiasph2hf8256:
397 ; X86-NEXT: kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]
398 ; X86-NEXT: vcvtbiasph2hf8 %ymm1, %ymm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0xa9,0x18,0xc1]
399 ; X86-NEXT: vzeroupper # encoding: [0xc5,0xf8,0x77]
400 ; X86-NEXT: retl # encoding: [0xc3]
401 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8256(<32 x i8> %A, <16 x half> %B, <16 x i8> zeroinitializer, i16 %U)
405 define <16 x i8> @test_int_x86_avx10_vcvtbiasph2hf8s128(<16 x i8> %A, <8 x half> %B) nounwind {
406 ; CHECK-LABEL: test_int_x86_avx10_vcvtbiasph2hf8s128:
408 ; CHECK-NEXT: vcvtbiasph2hf8s %xmm1, %xmm0, %xmm0 # encoding: [0x62,0xf5,0x7c,0x08,0x1b,0xc1]
409 ; CHECK-NEXT: ret{{[l|q]}} # encoding: [0xc3]
410 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8s128(<16 x i8> %A, <8 x half> %B, <16 x i8> undef, i8 -1)
414 define <16 x i8> @test_int_x86_avx10_mask_vcvtbiasph2hf8s128(<16 x i8> %W, <16 x i8> %A, <8 x half> %B, i8 %U) nounwind {
415 ; X64-LABEL: test_int_x86_avx10_mask_vcvtbiasph2hf8s128:
417 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
418 ; X64-NEXT: vcvtbiasph2hf8s %xmm2, %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x74,0x09,0x1b,0xc2]
419 ; X64-NEXT: retq # encoding: [0xc3]
421 ; X86-LABEL: test_int_x86_avx10_mask_vcvtbiasph2hf8s128:
423 ; X86-NEXT: kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]
424 ; X86-NEXT: vcvtbiasph2hf8s %xmm2, %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x74,0x09,0x1b,0xc2]
425 ; X86-NEXT: retl # encoding: [0xc3]
426 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8s128(<16 x i8> %A, <8 x half> %B, <16 x i8> %W, i8 %U)
430 declare <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8s128(<16 x i8> %A, <8 x half> %B, <16 x i8> %W, i8 %U)
432 define <16 x i8> @test_int_x86_avx10_maskz_vcvtbiasph2hf8s128(<16 x i8> %A, <8 x half> %B, i8 %U) nounwind {
433 ; X64-LABEL: test_int_x86_avx10_maskz_vcvtbiasph2hf8s128:
435 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
436 ; X64-NEXT: vcvtbiasph2hf8s %xmm1, %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0x89,0x1b,0xc1]
437 ; X64-NEXT: retq # encoding: [0xc3]
439 ; X86-LABEL: test_int_x86_avx10_maskz_vcvtbiasph2hf8s128:
441 ; X86-NEXT: kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]
442 ; X86-NEXT: vcvtbiasph2hf8s %xmm1, %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0x89,0x1b,0xc1]
443 ; X86-NEXT: retl # encoding: [0xc3]
444 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8s128(<16 x i8> %A, <8 x half> %B, <16 x i8> zeroinitializer, i8 %U)
448 define <16 x i8> @test_int_x86_avx10_vcvtbiasph2hf8s256(<32 x i8> %A, <16 x half> %B) nounwind {
449 ; CHECK-LABEL: test_int_x86_avx10_vcvtbiasph2hf8s256:
451 ; CHECK-NEXT: vcvtbiasph2hf8s %ymm1, %ymm0, %xmm0 # encoding: [0x62,0xf5,0x7c,0x28,0x1b,0xc1]
452 ; CHECK-NEXT: vzeroupper # encoding: [0xc5,0xf8,0x77]
453 ; CHECK-NEXT: ret{{[l|q]}} # encoding: [0xc3]
454 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8s256(<32 x i8> %A, <16 x half> %B, <16 x i8> undef, i16 -1)
458 define <16 x i8> @test_int_x86_avx10_mask_vcvtbiasph2hf8s256(<16 x i8> %W, <32 x i8> %A, <16 x half> %B, i16 %U) nounwind {
459 ; X64-LABEL: test_int_x86_avx10_mask_vcvtbiasph2hf8s256:
461 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
462 ; X64-NEXT: vcvtbiasph2hf8s %ymm2, %ymm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x74,0x29,0x1b,0xc2]
463 ; X64-NEXT: vzeroupper # encoding: [0xc5,0xf8,0x77]
464 ; X64-NEXT: retq # encoding: [0xc3]
466 ; X86-LABEL: test_int_x86_avx10_mask_vcvtbiasph2hf8s256:
468 ; X86-NEXT: kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]
469 ; X86-NEXT: vcvtbiasph2hf8s %ymm2, %ymm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x74,0x29,0x1b,0xc2]
470 ; X86-NEXT: vzeroupper # encoding: [0xc5,0xf8,0x77]
471 ; X86-NEXT: retl # encoding: [0xc3]
472 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8s256(<32 x i8> %A, <16 x half> %B, <16 x i8> %W, i16 %U)
476 declare <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8s256(<32 x i8> %A, <16 x half> %B, <16 x i8> %W, i16 %U)
478 define <16 x i8> @test_int_x86_avx10_maskz_vcvtbiasph2hf8s256(<32 x i8> %A, <16 x half> %B, i16 %U) nounwind {
479 ; X64-LABEL: test_int_x86_avx10_maskz_vcvtbiasph2hf8s256:
481 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
482 ; X64-NEXT: vcvtbiasph2hf8s %ymm1, %ymm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0xa9,0x1b,0xc1]
483 ; X64-NEXT: vzeroupper # encoding: [0xc5,0xf8,0x77]
484 ; X64-NEXT: retq # encoding: [0xc3]
486 ; X86-LABEL: test_int_x86_avx10_maskz_vcvtbiasph2hf8s256:
488 ; X86-NEXT: kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]
489 ; X86-NEXT: vcvtbiasph2hf8s %ymm1, %ymm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7c,0xa9,0x1b,0xc1]
490 ; X86-NEXT: vzeroupper # encoding: [0xc5,0xf8,0x77]
491 ; X86-NEXT: retl # encoding: [0xc3]
492 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8s256(<32 x i8> %A, <16 x half> %B, <16 x i8> zeroinitializer, i16 %U)
496 define <16 x i8> @test_int_x86_avx10_vcvtne2ph2bf8128(<8 x half> %A, <8 x half> %B) nounwind {
497 ; CHECK-LABEL: test_int_x86_avx10_vcvtne2ph2bf8128:
499 ; CHECK-NEXT: vcvtne2ph2bf8 %xmm1, %xmm0, %xmm0 # encoding: [0x62,0xf2,0x7f,0x08,0x74,0xc1]
500 ; CHECK-NEXT: ret{{[l|q]}} # encoding: [0xc3]
501 %ret = call <16 x i8> @llvm.x86.avx10.vcvtne2ph2bf8128(<8 x half> %A, <8 x half> %B)
505 define <16 x i8> @test_int_x86_avx10_vcvtne2ph2bf8128_mask(<16 x i8> %C, i16 %U, <8 x half> %A, <8 x half> %B) nounwind {
506 ; X64-LABEL: test_int_x86_avx10_vcvtne2ph2bf8128_mask:
508 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
509 ; X64-NEXT: vcvtne2ph2bf8 %xmm2, %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf2,0x77,0x09,0x74,0xc2]
510 ; X64-NEXT: retq # encoding: [0xc3]
512 ; X86-LABEL: test_int_x86_avx10_vcvtne2ph2bf8128_mask:
514 ; X86-NEXT: kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]
515 ; X86-NEXT: vcvtne2ph2bf8 %xmm2, %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf2,0x77,0x09,0x74,0xc2]
516 ; X86-NEXT: retl # encoding: [0xc3]
517 %1 = call <16 x i8> @llvm.x86.avx10.vcvtne2ph2bf8128(<8 x half> %A, <8 x half> %B)
518 %2 = bitcast i16 %U to <16 x i1>
519 %3 = select <16 x i1> %2, <16 x i8> %1, <16 x i8> %C
523 define <16 x i8> @test_int_x86_avx10_vcvtne2ph2bf8128_maskz(<16 x i8> %C, i16 %U, <8 x half> %A, <8 x half> %B) nounwind {
524 ; X64-LABEL: test_int_x86_avx10_vcvtne2ph2bf8128_maskz:
526 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
527 ; X64-NEXT: vcvtne2ph2bf8 %xmm2, %xmm1, %xmm0 {%k1} {z} # encoding: [0x62,0xf2,0x77,0x89,0x74,0xc2]
528 ; X64-NEXT: retq # encoding: [0xc3]
530 ; X86-LABEL: test_int_x86_avx10_vcvtne2ph2bf8128_maskz:
532 ; X86-NEXT: kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]
533 ; X86-NEXT: vcvtne2ph2bf8 %xmm2, %xmm1, %xmm0 {%k1} {z} # encoding: [0x62,0xf2,0x77,0x89,0x74,0xc2]
534 ; X86-NEXT: retl # encoding: [0xc3]
535 %1 = call <16 x i8> @llvm.x86.avx10.vcvtne2ph2bf8128(<8 x half> %A, <8 x half> %B)
536 %2 = bitcast i16 %U to <16 x i1>
537 %3 = select <16 x i1> %2, <16 x i8> %1, <16 x i8> zeroinitializer
541 declare <16 x i8> @llvm.x86.avx10.vcvtne2ph2bf8128(<8 x half> %A, <8 x half> %B)
543 define <32 x i8> @test_int_x86_avx10_vcvtne2ph2bf8256(<16 x half> %A, <16 x half> %B) nounwind {
544 ; CHECK-LABEL: test_int_x86_avx10_vcvtne2ph2bf8256:
546 ; CHECK-NEXT: vcvtne2ph2bf8 %ymm1, %ymm0, %ymm0 # encoding: [0x62,0xf2,0x7f,0x28,0x74,0xc1]
547 ; CHECK-NEXT: ret{{[l|q]}} # encoding: [0xc3]
548 %ret = call <32 x i8> @llvm.x86.avx10.vcvtne2ph2bf8256(<16 x half> %A, <16 x half> %B)
552 define <32 x i8> @test_int_x86_avx10_vcvtne2ph2bf8256_mask(<32 x i8> %C, i32 %U, <16 x half> %A, <16 x half> %B) nounwind {
553 ; X64-LABEL: test_int_x86_avx10_vcvtne2ph2bf8256_mask:
555 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
556 ; X64-NEXT: vcvtne2ph2bf8 %ymm2, %ymm1, %ymm0 {%k1} # encoding: [0x62,0xf2,0x77,0x29,0x74,0xc2]
557 ; X64-NEXT: retq # encoding: [0xc3]
559 ; X86-LABEL: test_int_x86_avx10_vcvtne2ph2bf8256_mask:
561 ; X86-NEXT: kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]
562 ; X86-NEXT: vcvtne2ph2bf8 %ymm2, %ymm1, %ymm0 {%k1} # encoding: [0x62,0xf2,0x77,0x29,0x74,0xc2]
563 ; X86-NEXT: retl # encoding: [0xc3]
564 %1 = call <32 x i8> @llvm.x86.avx10.vcvtne2ph2bf8256(<16 x half> %A, <16 x half> %B)
565 %2 = bitcast i32 %U to <32 x i1>
566 %3 = select <32 x i1> %2, <32 x i8> %1, <32 x i8> %C
570 define <32 x i8> @test_int_x86_avx10_vcvtne2ph2bf8256_maskz(<32 x i8> %C, i32 %U, <16 x half> %A, <16 x half> %B) nounwind {
571 ; X64-LABEL: test_int_x86_avx10_vcvtne2ph2bf8256_maskz:
573 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
574 ; X64-NEXT: vcvtne2ph2bf8 %ymm2, %ymm1, %ymm0 {%k1} {z} # encoding: [0x62,0xf2,0x77,0xa9,0x74,0xc2]
575 ; X64-NEXT: retq # encoding: [0xc3]
577 ; X86-LABEL: test_int_x86_avx10_vcvtne2ph2bf8256_maskz:
579 ; X86-NEXT: kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]
580 ; X86-NEXT: vcvtne2ph2bf8 %ymm2, %ymm1, %ymm0 {%k1} {z} # encoding: [0x62,0xf2,0x77,0xa9,0x74,0xc2]
581 ; X86-NEXT: retl # encoding: [0xc3]
582 %1 = call <32 x i8> @llvm.x86.avx10.vcvtne2ph2bf8256(<16 x half> %A, <16 x half> %B)
583 %2 = bitcast i32 %U to <32 x i1>
584 %3 = select <32 x i1> %2, <32 x i8> %1, <32 x i8> zeroinitializer
588 declare <32 x i8> @llvm.x86.avx10.vcvtne2ph2bf8256(<16 x half> %A, <16 x half> %B)
590 define <16 x i8> @test_int_x86_avx10_vcvtne2ph2bf8s128(<8 x half> %A, <8 x half> %B) nounwind {
591 ; CHECK-LABEL: test_int_x86_avx10_vcvtne2ph2bf8s128:
593 ; CHECK-NEXT: vcvtne2ph2bf8s %xmm1, %xmm0, %xmm0 # encoding: [0x62,0xf5,0x7f,0x08,0x74,0xc1]
594 ; CHECK-NEXT: ret{{[l|q]}} # encoding: [0xc3]
595 %ret = call <16 x i8> @llvm.x86.avx10.vcvtne2ph2bf8s128(<8 x half> %A, <8 x half> %B)
599 define <16 x i8> @test_int_x86_avx10_vcvtne2ph2bf8s128_mask(<16 x i8> %C, i16 %U, <8 x half> %A, <8 x half> %B) nounwind {
600 ; X64-LABEL: test_int_x86_avx10_vcvtne2ph2bf8s128_mask:
602 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
603 ; X64-NEXT: vcvtne2ph2bf8s %xmm2, %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x77,0x09,0x74,0xc2]
604 ; X64-NEXT: retq # encoding: [0xc3]
606 ; X86-LABEL: test_int_x86_avx10_vcvtne2ph2bf8s128_mask:
608 ; X86-NEXT: kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]
609 ; X86-NEXT: vcvtne2ph2bf8s %xmm2, %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x77,0x09,0x74,0xc2]
610 ; X86-NEXT: retl # encoding: [0xc3]
611 %1 = call <16 x i8> @llvm.x86.avx10.vcvtne2ph2bf8s128(<8 x half> %A, <8 x half> %B)
612 %2 = bitcast i16 %U to <16 x i1>
613 %3 = select <16 x i1> %2, <16 x i8> %1, <16 x i8> %C
617 define <16 x i8> @test_int_x86_avx10_vcvtne2ph2bf8s128_maskz(i16 %U, <8 x half> %A, <8 x half> %B) nounwind {
618 ; X64-LABEL: test_int_x86_avx10_vcvtne2ph2bf8s128_maskz:
620 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
621 ; X64-NEXT: vcvtne2ph2bf8s %xmm1, %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0x89,0x74,0xc1]
622 ; X64-NEXT: retq # encoding: [0xc3]
624 ; X86-LABEL: test_int_x86_avx10_vcvtne2ph2bf8s128_maskz:
626 ; X86-NEXT: kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]
627 ; X86-NEXT: vcvtne2ph2bf8s %xmm1, %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0x89,0x74,0xc1]
628 ; X86-NEXT: retl # encoding: [0xc3]
629 %1 = call <16 x i8> @llvm.x86.avx10.vcvtne2ph2bf8s128(<8 x half> %A, <8 x half> %B)
630 %2 = bitcast i16 %U to <16 x i1>
631 %3 = select <16 x i1> %2, <16 x i8> %1, <16 x i8> zeroinitializer
635 declare <16 x i8> @llvm.x86.avx10.vcvtne2ph2bf8s128(<8 x half> %A, <8 x half> %B)
637 define <32 x i8> @test_int_x86_avx10_vcvtne2ph2bf8s256(<16 x half> %A, <16 x half> %B) nounwind {
638 ; CHECK-LABEL: test_int_x86_avx10_vcvtne2ph2bf8s256:
640 ; CHECK-NEXT: vcvtne2ph2bf8s %ymm1, %ymm0, %ymm0 # encoding: [0x62,0xf5,0x7f,0x28,0x74,0xc1]
641 ; CHECK-NEXT: ret{{[l|q]}} # encoding: [0xc3]
642 %ret = call <32 x i8> @llvm.x86.avx10.vcvtne2ph2bf8s256(<16 x half> %A, <16 x half> %B)
646 define <32 x i8> @test_int_x86_avx10_vcvtne2ph2bf8s256_mask(<32 x i8> %C, i32 %U, <16 x half> %A, <16 x half> %B) nounwind {
647 ; X64-LABEL: test_int_x86_avx10_vcvtne2ph2bf8s256_mask:
649 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
650 ; X64-NEXT: vcvtne2ph2bf8s %ymm2, %ymm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x77,0x29,0x74,0xc2]
651 ; X64-NEXT: retq # encoding: [0xc3]
653 ; X86-LABEL: test_int_x86_avx10_vcvtne2ph2bf8s256_mask:
655 ; X86-NEXT: kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]
656 ; X86-NEXT: vcvtne2ph2bf8s %ymm2, %ymm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x77,0x29,0x74,0xc2]
657 ; X86-NEXT: retl # encoding: [0xc3]
658 %1 = call <32 x i8> @llvm.x86.avx10.vcvtne2ph2bf8s256(<16 x half> %A, <16 x half> %B)
659 %2 = bitcast i32 %U to <32 x i1>
660 %3 = select <32 x i1> %2, <32 x i8> %1, <32 x i8> %C
664 define <32 x i8> @test_int_x86_avx10_vcvtne2ph2bf8s256_maskz(i32 %U, <16 x half> %A, <16 x half> %B) nounwind {
665 ; X64-LABEL: test_int_x86_avx10_vcvtne2ph2bf8s256_maskz:
667 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
668 ; X64-NEXT: vcvtne2ph2bf8s %ymm1, %ymm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0xa9,0x74,0xc1]
669 ; X64-NEXT: retq # encoding: [0xc3]
671 ; X86-LABEL: test_int_x86_avx10_vcvtne2ph2bf8s256_maskz:
673 ; X86-NEXT: kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]
674 ; X86-NEXT: vcvtne2ph2bf8s %ymm1, %ymm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0xa9,0x74,0xc1]
675 ; X86-NEXT: retl # encoding: [0xc3]
676 %1 = call <32 x i8> @llvm.x86.avx10.vcvtne2ph2bf8s256(<16 x half> %A, <16 x half> %B)
677 %2 = bitcast i32 %U to <32 x i1>
678 %3 = select <32 x i1> %2, <32 x i8> %1, <32 x i8> zeroinitializer
682 declare <32 x i8> @llvm.x86.avx10.vcvtne2ph2bf8s256(<16 x half> %A, <16 x half> %B)
684 define <16 x i8> @test_int_x86_avx10_vcvtne2ph2hf8128(<8 x half> %A, <8 x half> %B) nounwind {
685 ; CHECK-LABEL: test_int_x86_avx10_vcvtne2ph2hf8128:
687 ; CHECK-NEXT: vcvtne2ph2hf8 %xmm1, %xmm0, %xmm0 # encoding: [0x62,0xf5,0x7f,0x08,0x18,0xc1]
688 ; CHECK-NEXT: ret{{[l|q]}} # encoding: [0xc3]
689 %ret = call <16 x i8> @llvm.x86.avx10.vcvtne2ph2hf8128(<8 x half> %A, <8 x half> %B)
693 define <16 x i8> @test_int_x86_avx10_vcvtne2ph2hf8128_mask(<16 x i8> %C, i16 %U, <8 x half> %A, <8 x half> %B) nounwind {
694 ; X64-LABEL: test_int_x86_avx10_vcvtne2ph2hf8128_mask:
696 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
697 ; X64-NEXT: vcvtne2ph2hf8 %xmm2, %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x77,0x09,0x18,0xc2]
698 ; X64-NEXT: retq # encoding: [0xc3]
700 ; X86-LABEL: test_int_x86_avx10_vcvtne2ph2hf8128_mask:
702 ; X86-NEXT: kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]
703 ; X86-NEXT: vcvtne2ph2hf8 %xmm2, %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x77,0x09,0x18,0xc2]
704 ; X86-NEXT: retl # encoding: [0xc3]
705 %1 = call <16 x i8> @llvm.x86.avx10.vcvtne2ph2hf8128(<8 x half> %A, <8 x half> %B)
706 %2 = bitcast i16 %U to <16 x i1>
707 %3 = select <16 x i1> %2, <16 x i8> %1, <16 x i8> %C
711 define <16 x i8> @test_int_x86_avx10_vcvtne2ph2hf8128_maskz(i16 %U, <8 x half> %A, <8 x half> %B) nounwind {
712 ; X64-LABEL: test_int_x86_avx10_vcvtne2ph2hf8128_maskz:
714 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
715 ; X64-NEXT: vcvtne2ph2hf8 %xmm1, %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0x89,0x18,0xc1]
716 ; X64-NEXT: retq # encoding: [0xc3]
718 ; X86-LABEL: test_int_x86_avx10_vcvtne2ph2hf8128_maskz:
720 ; X86-NEXT: kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]
721 ; X86-NEXT: vcvtne2ph2hf8 %xmm1, %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0x89,0x18,0xc1]
722 ; X86-NEXT: retl # encoding: [0xc3]
723 %1 = call <16 x i8> @llvm.x86.avx10.vcvtne2ph2hf8128(<8 x half> %A, <8 x half> %B)
724 %2 = bitcast i16 %U to <16 x i1>
725 %3 = select <16 x i1> %2, <16 x i8> %1, <16 x i8> zeroinitializer
729 declare <16 x i8> @llvm.x86.avx10.vcvtne2ph2hf8128(<8 x half> %A, <8 x half> %B)
731 define <32 x i8> @test_int_x86_avx10_vcvtne2ph2hf8256(<16 x half> %A, <16 x half> %B) nounwind {
732 ; CHECK-LABEL: test_int_x86_avx10_vcvtne2ph2hf8256:
734 ; CHECK-NEXT: vcvtne2ph2hf8 %ymm1, %ymm0, %ymm0 # encoding: [0x62,0xf5,0x7f,0x28,0x18,0xc1]
735 ; CHECK-NEXT: ret{{[l|q]}} # encoding: [0xc3]
736 %ret = call <32 x i8> @llvm.x86.avx10.vcvtne2ph2hf8256(<16 x half> %A, <16 x half> %B)
740 define <32 x i8> @test_int_x86_avx10_vcvtne2ph2hf8256_mask(<32 x i8> %C, i32 %U, <16 x half> %A, <16 x half> %B) nounwind {
741 ; X64-LABEL: test_int_x86_avx10_vcvtne2ph2hf8256_mask:
743 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
744 ; X64-NEXT: vcvtne2ph2hf8 %ymm2, %ymm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x77,0x29,0x18,0xc2]
745 ; X64-NEXT: retq # encoding: [0xc3]
747 ; X86-LABEL: test_int_x86_avx10_vcvtne2ph2hf8256_mask:
749 ; X86-NEXT: kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]
750 ; X86-NEXT: vcvtne2ph2hf8 %ymm2, %ymm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x77,0x29,0x18,0xc2]
751 ; X86-NEXT: retl # encoding: [0xc3]
752 %1 = call <32 x i8> @llvm.x86.avx10.vcvtne2ph2hf8256(<16 x half> %A, <16 x half> %B)
753 %2 = bitcast i32 %U to <32 x i1>
754 %3 = select <32 x i1> %2, <32 x i8> %1, <32 x i8> %C
758 define <32 x i8> @test_int_x86_avx10_vcvtne2ph2hf8256_maskz(i32 %U, <16 x half> %A, <16 x half> %B) nounwind {
759 ; X64-LABEL: test_int_x86_avx10_vcvtne2ph2hf8256_maskz:
761 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
762 ; X64-NEXT: vcvtne2ph2hf8 %ymm1, %ymm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0xa9,0x18,0xc1]
763 ; X64-NEXT: retq # encoding: [0xc3]
765 ; X86-LABEL: test_int_x86_avx10_vcvtne2ph2hf8256_maskz:
767 ; X86-NEXT: kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]
768 ; X86-NEXT: vcvtne2ph2hf8 %ymm1, %ymm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0xa9,0x18,0xc1]
769 ; X86-NEXT: retl # encoding: [0xc3]
770 %1 = call <32 x i8> @llvm.x86.avx10.vcvtne2ph2hf8256(<16 x half> %A, <16 x half> %B)
771 %2 = bitcast i32 %U to <32 x i1>
772 %3 = select <32 x i1> %2, <32 x i8> %1, <32 x i8> zeroinitializer
776 declare <32 x i8> @llvm.x86.avx10.vcvtne2ph2hf8256(<16 x half> %A, <16 x half> %B)
778 define <16 x i8> @test_int_x86_avx10_vcvtne2ph2hf8s128(<8 x half> %A, <8 x half> %B) nounwind {
779 ; CHECK-LABEL: test_int_x86_avx10_vcvtne2ph2hf8s128:
781 ; CHECK-NEXT: vcvtne2ph2hf8s %xmm1, %xmm0, %xmm0 # encoding: [0x62,0xf5,0x7f,0x08,0x1b,0xc1]
782 ; CHECK-NEXT: ret{{[l|q]}} # encoding: [0xc3]
783 %ret = call <16 x i8> @llvm.x86.avx10.vcvtne2ph2hf8s128(<8 x half> %A, <8 x half> %B)
787 define <16 x i8> @test_int_x86_avx10_vcvtne2ph2hf8s128_mask(<16 x i8> %C, i16 %U, <8 x half> %A, <8 x half> %B) nounwind {
788 ; X64-LABEL: test_int_x86_avx10_vcvtne2ph2hf8s128_mask:
790 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
791 ; X64-NEXT: vcvtne2ph2hf8s %xmm2, %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x77,0x09,0x1b,0xc2]
792 ; X64-NEXT: retq # encoding: [0xc3]
794 ; X86-LABEL: test_int_x86_avx10_vcvtne2ph2hf8s128_mask:
796 ; X86-NEXT: kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]
797 ; X86-NEXT: vcvtne2ph2hf8s %xmm2, %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x77,0x09,0x1b,0xc2]
798 ; X86-NEXT: retl # encoding: [0xc3]
799 %1 = call <16 x i8> @llvm.x86.avx10.vcvtne2ph2hf8s128(<8 x half> %A, <8 x half> %B)
800 %2 = bitcast i16 %U to <16 x i1>
801 %3 = select <16 x i1> %2, <16 x i8> %1, <16 x i8> %C
805 define <16 x i8> @test_int_x86_avx10_vcvtne2ph2hf8s128_maskz(i16 %U, <8 x half> %A, <8 x half> %B) nounwind {
806 ; X64-LABEL: test_int_x86_avx10_vcvtne2ph2hf8s128_maskz:
808 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
809 ; X64-NEXT: vcvtne2ph2hf8s %xmm1, %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0x89,0x1b,0xc1]
810 ; X64-NEXT: retq # encoding: [0xc3]
812 ; X86-LABEL: test_int_x86_avx10_vcvtne2ph2hf8s128_maskz:
814 ; X86-NEXT: kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]
815 ; X86-NEXT: vcvtne2ph2hf8s %xmm1, %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0x89,0x1b,0xc1]
816 ; X86-NEXT: retl # encoding: [0xc3]
817 %1 = call <16 x i8> @llvm.x86.avx10.vcvtne2ph2hf8s128(<8 x half> %A, <8 x half> %B)
818 %2 = bitcast i16 %U to <16 x i1>
819 %3 = select <16 x i1> %2, <16 x i8> %1, <16 x i8> zeroinitializer
823 declare <16 x i8> @llvm.x86.avx10.vcvtne2ph2hf8s128(<8 x half> %A, <8 x half> %B)
825 define <32 x i8> @test_int_x86_avx10_vcvtne2ph2hf8s256(<16 x half> %A, <16 x half> %B) nounwind {
826 ; CHECK-LABEL: test_int_x86_avx10_vcvtne2ph2hf8s256:
828 ; CHECK-NEXT: vcvtne2ph2hf8s %ymm1, %ymm0, %ymm0 # encoding: [0x62,0xf5,0x7f,0x28,0x1b,0xc1]
829 ; CHECK-NEXT: ret{{[l|q]}} # encoding: [0xc3]
830 %ret = call <32 x i8> @llvm.x86.avx10.vcvtne2ph2hf8s256(<16 x half> %A, <16 x half> %B)
834 define <32 x i8> @test_int_x86_avx10_vcvtne2ph2hf8s256_mask(<32 x i8> %C, i32 %U, <16 x half> %A, <16 x half> %B) nounwind {
835 ; X64-LABEL: test_int_x86_avx10_vcvtne2ph2hf8s256_mask:
837 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
838 ; X64-NEXT: vcvtne2ph2hf8s %ymm2, %ymm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x77,0x29,0x1b,0xc2]
839 ; X64-NEXT: retq # encoding: [0xc3]
841 ; X86-LABEL: test_int_x86_avx10_vcvtne2ph2hf8s256_mask:
843 ; X86-NEXT: kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]
844 ; X86-NEXT: vcvtne2ph2hf8s %ymm2, %ymm1, %ymm0 {%k1} # encoding: [0x62,0xf5,0x77,0x29,0x1b,0xc2]
845 ; X86-NEXT: retl # encoding: [0xc3]
846 %1 = call <32 x i8> @llvm.x86.avx10.vcvtne2ph2hf8s256(<16 x half> %A, <16 x half> %B)
847 %2 = bitcast i32 %U to <32 x i1>
848 %3 = select <32 x i1> %2, <32 x i8> %1, <32 x i8> %C
852 define <32 x i8> @test_int_x86_avx10_vcvtne2ph2hf8s256_maskz(i32 %U, <16 x half> %A, <16 x half> %B) nounwind {
853 ; X64-LABEL: test_int_x86_avx10_vcvtne2ph2hf8s256_maskz:
855 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
856 ; X64-NEXT: vcvtne2ph2hf8s %ymm1, %ymm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0xa9,0x1b,0xc1]
857 ; X64-NEXT: retq # encoding: [0xc3]
859 ; X86-LABEL: test_int_x86_avx10_vcvtne2ph2hf8s256_maskz:
861 ; X86-NEXT: kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]
862 ; X86-NEXT: vcvtne2ph2hf8s %ymm1, %ymm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0xa9,0x1b,0xc1]
863 ; X86-NEXT: retl # encoding: [0xc3]
864 %1 = call <32 x i8> @llvm.x86.avx10.vcvtne2ph2hf8s256(<16 x half> %A, <16 x half> %B)
865 %2 = bitcast i32 %U to <32 x i1>
866 %3 = select <32 x i1> %2, <32 x i8> %1, <32 x i8> zeroinitializer
870 declare <32 x i8> @llvm.x86.avx10.vcvtne2ph2hf8s256(<16 x half> %A, <16 x half> %B)
872 define <8 x half> @test_int_x86_avx10_vcvthf82ph128(<16 x i8> %A) nounwind {
873 ; CHECK-LABEL: test_int_x86_avx10_vcvthf82ph128:
875 ; CHECK-NEXT: vcvthf82ph %xmm0, %xmm0 # encoding: [0x62,0xf5,0x7f,0x08,0x1e,0xc0]
876 ; CHECK-NEXT: ret{{[l|q]}} # encoding: [0xc3]
877 %ret = call <8 x half> @llvm.x86.avx10.mask.vcvthf82ph128(<16 x i8> %A, <8 x half> undef, i8 -1)
881 define <8 x half> @test_int_x86_avx10_mask_vcvthf82ph128(<16 x i8> %A, <8 x half> %B, i8 %C) nounwind {
882 ; X64-LABEL: test_int_x86_avx10_mask_vcvthf82ph128:
884 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
885 ; X64-NEXT: vcvthf82ph %xmm0, %xmm1 {%k1} # encoding: [0x62,0xf5,0x7f,0x09,0x1e,0xc8]
886 ; X64-NEXT: vmovdqa %xmm1, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf9,0x6f,0xc1]
887 ; X64-NEXT: retq # encoding: [0xc3]
889 ; X86-LABEL: test_int_x86_avx10_mask_vcvthf82ph128:
891 ; X86-NEXT: kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]
892 ; X86-NEXT: vcvthf82ph %xmm0, %xmm1 {%k1} # encoding: [0x62,0xf5,0x7f,0x09,0x1e,0xc8]
893 ; X86-NEXT: vmovdqa %xmm1, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf9,0x6f,0xc1]
894 ; X86-NEXT: retl # encoding: [0xc3]
895 %ret = call <8 x half> @llvm.x86.avx10.mask.vcvthf82ph128(<16 x i8> %A, <8 x half> %B, i8 %C)
899 declare <8 x half> @llvm.x86.avx10.mask.vcvthf82ph128(<16 x i8> %A, <8 x half> %B, i8 %C)
901 define <8 x half> @test_int_x86_avx10_maskz_vcvthf82ph128(<16 x i8> %A, i8 %B) nounwind {
902 ; X64-LABEL: test_int_x86_avx10_maskz_vcvthf82ph128:
904 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
905 ; X64-NEXT: vcvthf82ph %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0x89,0x1e,0xc0]
906 ; X64-NEXT: retq # encoding: [0xc3]
908 ; X86-LABEL: test_int_x86_avx10_maskz_vcvthf82ph128:
910 ; X86-NEXT: kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]
911 ; X86-NEXT: vcvthf82ph %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0x89,0x1e,0xc0]
912 ; X86-NEXT: retl # encoding: [0xc3]
913 %ret = call <8 x half> @llvm.x86.avx10.mask.vcvthf82ph128(<16 x i8> %A, <8 x half> zeroinitializer, i8 %B)
917 define <16 x half> @test_int_x86_avx10_vcvthf82ph256(<16 x i8> %A) nounwind {
918 ; CHECK-LABEL: test_int_x86_avx10_vcvthf82ph256:
920 ; CHECK-NEXT: vcvthf82ph %xmm0, %ymm0 # encoding: [0x62,0xf5,0x7f,0x28,0x1e,0xc0]
921 ; CHECK-NEXT: ret{{[l|q]}} # encoding: [0xc3]
922 %ret = call <16 x half> @llvm.x86.avx10.mask.vcvthf82ph256(<16 x i8> %A, <16 x half> undef, i16 -1)
926 define <16 x half> @test_int_x86_avx10_mask_vcvthf82ph256(<16 x i8> %A, <16 x half> %B, i16 %C) nounwind {
927 ; X64-LABEL: test_int_x86_avx10_mask_vcvthf82ph256:
929 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
930 ; X64-NEXT: vcvthf82ph %xmm0, %ymm1 {%k1} # encoding: [0x62,0xf5,0x7f,0x29,0x1e,0xc8]
931 ; X64-NEXT: vmovdqa %ymm1, %ymm0 # EVEX TO VEX Compression encoding: [0xc5,0xfd,0x6f,0xc1]
932 ; X64-NEXT: retq # encoding: [0xc3]
934 ; X86-LABEL: test_int_x86_avx10_mask_vcvthf82ph256:
936 ; X86-NEXT: kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]
937 ; X86-NEXT: vcvthf82ph %xmm0, %ymm1 {%k1} # encoding: [0x62,0xf5,0x7f,0x29,0x1e,0xc8]
938 ; X86-NEXT: vmovdqa %ymm1, %ymm0 # EVEX TO VEX Compression encoding: [0xc5,0xfd,0x6f,0xc1]
939 ; X86-NEXT: retl # encoding: [0xc3]
940 %ret = call <16 x half> @llvm.x86.avx10.mask.vcvthf82ph256(<16 x i8> %A, <16 x half> %B, i16 %C)
944 declare <16 x half> @llvm.x86.avx10.mask.vcvthf82ph256(<16 x i8> %A, <16 x half> %B, i16 %C)
946 define <16 x half> @test_int_x86_avx10_maskz_vcvthf82ph256(<16 x i8> %A, i16 %B) nounwind {
947 ; X64-LABEL: test_int_x86_avx10_maskz_vcvthf82ph256:
949 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
950 ; X64-NEXT: vcvthf82ph %xmm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0xa9,0x1e,0xc0]
951 ; X64-NEXT: retq # encoding: [0xc3]
953 ; X86-LABEL: test_int_x86_avx10_maskz_vcvthf82ph256:
955 ; X86-NEXT: kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]
956 ; X86-NEXT: vcvthf82ph %xmm0, %ymm0 {%k1} {z} # encoding: [0x62,0xf5,0x7f,0xa9,0x1e,0xc0]
957 ; X86-NEXT: retl # encoding: [0xc3]
958 %ret = call <16 x half> @llvm.x86.avx10.mask.vcvthf82ph256(<16 x i8> %A, <16 x half> zeroinitializer, i16 %B)
962 define <16 x i8> @test_int_x86_avx10_vcvtneph2bf8128(<8 x half> %A) nounwind {
963 ; CHECK-LABEL: test_int_x86_avx10_vcvtneph2bf8128:
965 ; CHECK-NEXT: vcvtneph2bf8 %xmm0, %xmm0 # encoding: [0x62,0xf2,0x7e,0x08,0x74,0xc0]
966 ; CHECK-NEXT: ret{{[l|q]}} # encoding: [0xc3]
967 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtneph2bf8128(<8 x half> %A, <16 x i8> undef, i8 -1)
971 define <16 x i8> @test_int_x86_avx10_mask_vcvtneph2bf8128(<16 x i8> %B, <8 x half> %A, i8 %C) nounwind {
972 ; X64-LABEL: test_int_x86_avx10_mask_vcvtneph2bf8128:
974 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
975 ; X64-NEXT: vcvtneph2bf8 %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf2,0x7e,0x09,0x74,0xc1]
976 ; X64-NEXT: retq # encoding: [0xc3]
978 ; X86-LABEL: test_int_x86_avx10_mask_vcvtneph2bf8128:
980 ; X86-NEXT: kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]
981 ; X86-NEXT: vcvtneph2bf8 %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf2,0x7e,0x09,0x74,0xc1]
982 ; X86-NEXT: retl # encoding: [0xc3]
983 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtneph2bf8128(<8 x half> %A, <16 x i8> %B, i8 %C)
987 declare <16 x i8> @llvm.x86.avx10.mask.vcvtneph2bf8128(<8 x half> %A, <16 x i8> %B, i8 %C)
989 define <16 x i8> @test_int_x86_avx10_maskz_vcvtneph2bf8128(<8 x half> %A, i8 %B) nounwind {
990 ; X64-LABEL: test_int_x86_avx10_maskz_vcvtneph2bf8128:
992 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
993 ; X64-NEXT: vcvtneph2bf8 %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf2,0x7e,0x89,0x74,0xc0]
994 ; X64-NEXT: retq # encoding: [0xc3]
996 ; X86-LABEL: test_int_x86_avx10_maskz_vcvtneph2bf8128:
998 ; X86-NEXT: kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]
999 ; X86-NEXT: vcvtneph2bf8 %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf2,0x7e,0x89,0x74,0xc0]
1000 ; X86-NEXT: retl # encoding: [0xc3]
1001 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtneph2bf8128(<8 x half> %A, <16 x i8> zeroinitializer, i8 %B)
1005 define <16 x i8> @test_int_x86_avx10_vcvtneph2bf8256(<16 x half> %A) nounwind {
1006 ; CHECK-LABEL: test_int_x86_avx10_vcvtneph2bf8256:
1008 ; CHECK-NEXT: vcvtneph2bf8 %ymm0, %xmm0 # encoding: [0x62,0xf2,0x7e,0x28,0x74,0xc0]
1009 ; CHECK-NEXT: vzeroupper # encoding: [0xc5,0xf8,0x77]
1010 ; CHECK-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1011 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtneph2bf8256(<16 x half> %A, <16 x i8> undef, i16 -1)
1015 define <16 x i8> @test_int_x86_avx10_mask_vcvtneph2bf8256(<16 x i8> %B, <16 x half> %A, i16 %C) nounwind {
1016 ; X64-LABEL: test_int_x86_avx10_mask_vcvtneph2bf8256:
1018 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
1019 ; X64-NEXT: vcvtneph2bf8 %ymm1, %xmm0 {%k1} # encoding: [0x62,0xf2,0x7e,0x29,0x74,0xc1]
1020 ; X64-NEXT: vzeroupper # encoding: [0xc5,0xf8,0x77]
1021 ; X64-NEXT: retq # encoding: [0xc3]
1023 ; X86-LABEL: test_int_x86_avx10_mask_vcvtneph2bf8256:
1025 ; X86-NEXT: kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]
1026 ; X86-NEXT: vcvtneph2bf8 %ymm1, %xmm0 {%k1} # encoding: [0x62,0xf2,0x7e,0x29,0x74,0xc1]
1027 ; X86-NEXT: vzeroupper # encoding: [0xc5,0xf8,0x77]
1028 ; X86-NEXT: retl # encoding: [0xc3]
1029 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtneph2bf8256(<16 x half> %A, <16 x i8> %B, i16 %C)
1033 declare <16 x i8> @llvm.x86.avx10.mask.vcvtneph2bf8256(<16 x half> %A, <16 x i8> %B, i16 %C)
1035 define <16 x i8> @test_int_x86_avx10_maskz_vcvtneph2bf8256(<16 x half> %A, i16 %B) nounwind {
1036 ; X64-LABEL: test_int_x86_avx10_maskz_vcvtneph2bf8256:
1038 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
1039 ; X64-NEXT: vcvtneph2bf8 %ymm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf2,0x7e,0xa9,0x74,0xc0]
1040 ; X64-NEXT: vzeroupper # encoding: [0xc5,0xf8,0x77]
1041 ; X64-NEXT: retq # encoding: [0xc3]
1043 ; X86-LABEL: test_int_x86_avx10_maskz_vcvtneph2bf8256:
1045 ; X86-NEXT: kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]
1046 ; X86-NEXT: vcvtneph2bf8 %ymm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf2,0x7e,0xa9,0x74,0xc0]
1047 ; X86-NEXT: vzeroupper # encoding: [0xc5,0xf8,0x77]
1048 ; X86-NEXT: retl # encoding: [0xc3]
1049 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtneph2bf8256(<16 x half> %A, <16 x i8> zeroinitializer, i16 %B)
1053 define <16 x i8> @test_int_x86_avx10_vcvtneph2bf8s128(<8 x half> %A) nounwind {
1054 ; CHECK-LABEL: test_int_x86_avx10_vcvtneph2bf8s128:
1056 ; CHECK-NEXT: vcvtneph2bf8s %xmm0, %xmm0 # encoding: [0x62,0xf5,0x7e,0x08,0x74,0xc0]
1057 ; CHECK-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1058 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtneph2bf8s128(<8 x half> %A, <16 x i8> undef, i8 -1)
1062 define <16 x i8> @test_int_x86_avx10_mask_vcvtneph2bf8s128(<16 x i8> %B, <8 x half> %A, i8 %C) nounwind {
1063 ; X64-LABEL: test_int_x86_avx10_mask_vcvtneph2bf8s128:
1065 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
1066 ; X64-NEXT: vcvtneph2bf8s %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7e,0x09,0x74,0xc1]
1067 ; X64-NEXT: retq # encoding: [0xc3]
1069 ; X86-LABEL: test_int_x86_avx10_mask_vcvtneph2bf8s128:
1071 ; X86-NEXT: kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]
1072 ; X86-NEXT: vcvtneph2bf8s %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7e,0x09,0x74,0xc1]
1073 ; X86-NEXT: retl # encoding: [0xc3]
1074 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtneph2bf8s128(<8 x half> %A, <16 x i8> %B, i8 %C)
1078 declare <16 x i8> @llvm.x86.avx10.mask.vcvtneph2bf8s128(<8 x half> %A, <16 x i8> %B, i8 %C)
1080 define <16 x i8> @test_int_x86_avx10_maskz_vcvtneph2bf8s128(<8 x half> %A, i8 %B) nounwind {
1081 ; X64-LABEL: test_int_x86_avx10_maskz_vcvtneph2bf8s128:
1083 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
1084 ; X64-NEXT: vcvtneph2bf8s %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7e,0x89,0x74,0xc0]
1085 ; X64-NEXT: retq # encoding: [0xc3]
1087 ; X86-LABEL: test_int_x86_avx10_maskz_vcvtneph2bf8s128:
1089 ; X86-NEXT: kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]
1090 ; X86-NEXT: vcvtneph2bf8s %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7e,0x89,0x74,0xc0]
1091 ; X86-NEXT: retl # encoding: [0xc3]
1092 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtneph2bf8s128(<8 x half> %A, <16 x i8> zeroinitializer, i8 %B)
1096 define <16 x i8> @test_int_x86_avx10_vcvtneph2bf8s256(<16 x half> %A) nounwind {
1097 ; CHECK-LABEL: test_int_x86_avx10_vcvtneph2bf8s256:
1099 ; CHECK-NEXT: vcvtneph2bf8s %ymm0, %xmm0 # encoding: [0x62,0xf5,0x7e,0x28,0x74,0xc0]
1100 ; CHECK-NEXT: vzeroupper # encoding: [0xc5,0xf8,0x77]
1101 ; CHECK-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1102 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtneph2bf8s256(<16 x half> %A, <16 x i8> undef, i16 -1)
1106 define <16 x i8> @test_int_x86_avx10_mask_vcvtneph2bf8s256(<16 x i8> %B, <16 x half> %A, i16 %C) nounwind {
1107 ; X64-LABEL: test_int_x86_avx10_mask_vcvtneph2bf8s256:
1109 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
1110 ; X64-NEXT: vcvtneph2bf8s %ymm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7e,0x29,0x74,0xc1]
1111 ; X64-NEXT: vzeroupper # encoding: [0xc5,0xf8,0x77]
1112 ; X64-NEXT: retq # encoding: [0xc3]
1114 ; X86-LABEL: test_int_x86_avx10_mask_vcvtneph2bf8s256:
1116 ; X86-NEXT: kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]
1117 ; X86-NEXT: vcvtneph2bf8s %ymm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7e,0x29,0x74,0xc1]
1118 ; X86-NEXT: vzeroupper # encoding: [0xc5,0xf8,0x77]
1119 ; X86-NEXT: retl # encoding: [0xc3]
1120 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtneph2bf8s256(<16 x half> %A, <16 x i8> %B, i16 %C)
1124 declare <16 x i8> @llvm.x86.avx10.mask.vcvtneph2bf8s256(<16 x half> %A, <16 x i8> %B, i16 %C)
1126 define <16 x i8> @test_int_x86_avx10_maskz_vcvtneph2bf8s256(<16 x half> %A, i16 %B) nounwind {
1127 ; X64-LABEL: test_int_x86_avx10_maskz_vcvtneph2bf8s256:
1129 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
1130 ; X64-NEXT: vcvtneph2bf8s %ymm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7e,0xa9,0x74,0xc0]
1131 ; X64-NEXT: vzeroupper # encoding: [0xc5,0xf8,0x77]
1132 ; X64-NEXT: retq # encoding: [0xc3]
1134 ; X86-LABEL: test_int_x86_avx10_maskz_vcvtneph2bf8s256:
1136 ; X86-NEXT: kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]
1137 ; X86-NEXT: vcvtneph2bf8s %ymm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7e,0xa9,0x74,0xc0]
1138 ; X86-NEXT: vzeroupper # encoding: [0xc5,0xf8,0x77]
1139 ; X86-NEXT: retl # encoding: [0xc3]
1140 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtneph2bf8s256(<16 x half> %A, <16 x i8> zeroinitializer, i16 %B)
1144 define <16 x i8> @test_int_x86_avx10_vcvtneph2hf8128(<8 x half> %A) nounwind {
1145 ; CHECK-LABEL: test_int_x86_avx10_vcvtneph2hf8128:
1147 ; CHECK-NEXT: vcvtneph2hf8 %xmm0, %xmm0 # encoding: [0x62,0xf5,0x7e,0x08,0x18,0xc0]
1148 ; CHECK-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1149 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtneph2hf8128(<8 x half> %A, <16 x i8> undef, i8 -1)
1153 define <16 x i8> @test_int_x86_avx10_mask_vcvtneph2hf8128(<16 x i8> %B, <8 x half> %A, i8 %C) nounwind {
1154 ; X64-LABEL: test_int_x86_avx10_mask_vcvtneph2hf8128:
1156 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
1157 ; X64-NEXT: vcvtneph2hf8 %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7e,0x09,0x18,0xc1]
1158 ; X64-NEXT: retq # encoding: [0xc3]
1160 ; X86-LABEL: test_int_x86_avx10_mask_vcvtneph2hf8128:
1162 ; X86-NEXT: kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]
1163 ; X86-NEXT: vcvtneph2hf8 %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7e,0x09,0x18,0xc1]
1164 ; X86-NEXT: retl # encoding: [0xc3]
1165 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtneph2hf8128(<8 x half> %A, <16 x i8> %B, i8 %C)
1169 declare <16 x i8> @llvm.x86.avx10.mask.vcvtneph2hf8128(<8 x half> %A, <16 x i8> %B, i8 %C)
1171 define <16 x i8> @test_int_x86_avx10_maskz_vcvtneph2hf8128(<8 x half> %A, i8 %B) nounwind {
1172 ; X64-LABEL: test_int_x86_avx10_maskz_vcvtneph2hf8128:
1174 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
1175 ; X64-NEXT: vcvtneph2hf8 %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7e,0x89,0x18,0xc0]
1176 ; X64-NEXT: retq # encoding: [0xc3]
1178 ; X86-LABEL: test_int_x86_avx10_maskz_vcvtneph2hf8128:
1180 ; X86-NEXT: kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]
1181 ; X86-NEXT: vcvtneph2hf8 %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7e,0x89,0x18,0xc0]
1182 ; X86-NEXT: retl # encoding: [0xc3]
1183 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtneph2hf8128(<8 x half> %A, <16 x i8> zeroinitializer, i8 %B)
1187 define <16 x i8> @test_int_x86_avx10_vcvtneph2hf8256(<16 x half> %A) nounwind {
1188 ; CHECK-LABEL: test_int_x86_avx10_vcvtneph2hf8256:
1190 ; CHECK-NEXT: vcvtneph2hf8 %ymm0, %xmm0 # encoding: [0x62,0xf5,0x7e,0x28,0x18,0xc0]
1191 ; CHECK-NEXT: vzeroupper # encoding: [0xc5,0xf8,0x77]
1192 ; CHECK-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1193 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtneph2hf8256(<16 x half> %A, <16 x i8> undef, i16 -1)
1197 define <16 x i8> @test_int_x86_avx10_mask_vcvtneph2hf8256(<16 x i8> %B, <16 x half> %A, i16 %C) nounwind {
1198 ; X64-LABEL: test_int_x86_avx10_mask_vcvtneph2hf8256:
1200 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
1201 ; X64-NEXT: vcvtneph2hf8 %ymm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7e,0x29,0x18,0xc1]
1202 ; X64-NEXT: vzeroupper # encoding: [0xc5,0xf8,0x77]
1203 ; X64-NEXT: retq # encoding: [0xc3]
1205 ; X86-LABEL: test_int_x86_avx10_mask_vcvtneph2hf8256:
1207 ; X86-NEXT: kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]
1208 ; X86-NEXT: vcvtneph2hf8 %ymm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7e,0x29,0x18,0xc1]
1209 ; X86-NEXT: vzeroupper # encoding: [0xc5,0xf8,0x77]
1210 ; X86-NEXT: retl # encoding: [0xc3]
1211 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtneph2hf8256(<16 x half> %A, <16 x i8> %B, i16 %C)
1215 declare <16 x i8> @llvm.x86.avx10.mask.vcvtneph2hf8256(<16 x half> %A, <16 x i8> %B, i16 %C)
1217 define <16 x i8> @test_int_x86_avx10_maskz_vcvtneph2hf8256(<16 x half> %A, i16 %B) nounwind {
1218 ; X64-LABEL: test_int_x86_avx10_maskz_vcvtneph2hf8256:
1220 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
1221 ; X64-NEXT: vcvtneph2hf8 %ymm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7e,0xa9,0x18,0xc0]
1222 ; X64-NEXT: vzeroupper # encoding: [0xc5,0xf8,0x77]
1223 ; X64-NEXT: retq # encoding: [0xc3]
1225 ; X86-LABEL: test_int_x86_avx10_maskz_vcvtneph2hf8256:
1227 ; X86-NEXT: kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]
1228 ; X86-NEXT: vcvtneph2hf8 %ymm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7e,0xa9,0x18,0xc0]
1229 ; X86-NEXT: vzeroupper # encoding: [0xc5,0xf8,0x77]
1230 ; X86-NEXT: retl # encoding: [0xc3]
1231 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtneph2hf8256(<16 x half> %A, <16 x i8> zeroinitializer, i16 %B)
1235 define <16 x i8> @test_int_x86_avx10_vcvtneph2hf8s128(<8 x half> %A) nounwind {
1236 ; CHECK-LABEL: test_int_x86_avx10_vcvtneph2hf8s128:
1238 ; CHECK-NEXT: vcvtneph2hf8s %xmm0, %xmm0 # encoding: [0x62,0xf5,0x7e,0x08,0x1b,0xc0]
1239 ; CHECK-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1240 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtneph2hf8s128(<8 x half> %A, <16 x i8> undef, i8 -1)
1244 define <16 x i8> @test_int_x86_avx10_mask_vcvtneph2hf8s128(<16 x i8> %B, <8 x half> %A, i8 %C) nounwind {
1245 ; X64-LABEL: test_int_x86_avx10_mask_vcvtneph2hf8s128:
1247 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
1248 ; X64-NEXT: vcvtneph2hf8s %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7e,0x09,0x1b,0xc1]
1249 ; X64-NEXT: retq # encoding: [0xc3]
1251 ; X86-LABEL: test_int_x86_avx10_mask_vcvtneph2hf8s128:
1253 ; X86-NEXT: kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]
1254 ; X86-NEXT: vcvtneph2hf8s %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7e,0x09,0x1b,0xc1]
1255 ; X86-NEXT: retl # encoding: [0xc3]
1256 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtneph2hf8s128(<8 x half> %A, <16 x i8> %B, i8 %C)
1260 declare <16 x i8> @llvm.x86.avx10.mask.vcvtneph2hf8s128(<8 x half> %A, <16 x i8> %B, i8 %C)
1262 define <16 x i8> @test_int_x86_avx10_maskz_vcvtneph2hf8s128(<8 x half> %A, i8 %B) nounwind {
1263 ; X64-LABEL: test_int_x86_avx10_maskz_vcvtneph2hf8s128:
1265 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
1266 ; X64-NEXT: vcvtneph2hf8s %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7e,0x89,0x1b,0xc0]
1267 ; X64-NEXT: retq # encoding: [0xc3]
1269 ; X86-LABEL: test_int_x86_avx10_maskz_vcvtneph2hf8s128:
1271 ; X86-NEXT: kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x04]
1272 ; X86-NEXT: vcvtneph2hf8s %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7e,0x89,0x1b,0xc0]
1273 ; X86-NEXT: retl # encoding: [0xc3]
1274 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtneph2hf8s128(<8 x half> %A, <16 x i8> zeroinitializer, i8 %B)
1278 define <16 x i8> @test_int_x86_avx10_vcvtneph2hf8s256(<16 x half> %A) nounwind {
1279 ; CHECK-LABEL: test_int_x86_avx10_vcvtneph2hf8s256:
1281 ; CHECK-NEXT: vcvtneph2hf8s %ymm0, %xmm0 # encoding: [0x62,0xf5,0x7e,0x28,0x1b,0xc0]
1282 ; CHECK-NEXT: vzeroupper # encoding: [0xc5,0xf8,0x77]
1283 ; CHECK-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1284 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtneph2hf8s256(<16 x half> %A, <16 x i8> undef, i16 -1)
1288 define <16 x i8> @test_int_x86_avx10_mask_vcvtneph2hf8s256(<16 x i8> %B, <16 x half> %A, i16 %C) nounwind {
1289 ; X64-LABEL: test_int_x86_avx10_mask_vcvtneph2hf8s256:
1291 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
1292 ; X64-NEXT: vcvtneph2hf8s %ymm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7e,0x29,0x1b,0xc1]
1293 ; X64-NEXT: vzeroupper # encoding: [0xc5,0xf8,0x77]
1294 ; X64-NEXT: retq # encoding: [0xc3]
1296 ; X86-LABEL: test_int_x86_avx10_mask_vcvtneph2hf8s256:
1298 ; X86-NEXT: kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]
1299 ; X86-NEXT: vcvtneph2hf8s %ymm1, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7e,0x29,0x1b,0xc1]
1300 ; X86-NEXT: vzeroupper # encoding: [0xc5,0xf8,0x77]
1301 ; X86-NEXT: retl # encoding: [0xc3]
1302 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtneph2hf8s256(<16 x half> %A, <16 x i8> %B, i16 %C)
1306 declare <16 x i8> @llvm.x86.avx10.mask.vcvtneph2hf8s256(<16 x half> %A, <16 x i8> %B, i16 %C)
1308 define <16 x i8> @test_int_x86_avx10_maskz_vcvtneph2hf8s256(<16 x half> %A, i16 %B) nounwind {
1309 ; X64-LABEL: test_int_x86_avx10_maskz_vcvtneph2hf8s256:
1311 ; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
1312 ; X64-NEXT: vcvtneph2hf8s %ymm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7e,0xa9,0x1b,0xc0]
1313 ; X64-NEXT: vzeroupper # encoding: [0xc5,0xf8,0x77]
1314 ; X64-NEXT: retq # encoding: [0xc3]
1316 ; X86-LABEL: test_int_x86_avx10_maskz_vcvtneph2hf8s256:
1318 ; X86-NEXT: kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]
1319 ; X86-NEXT: vcvtneph2hf8s %ymm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7e,0xa9,0x1b,0xc0]
1320 ; X86-NEXT: vzeroupper # encoding: [0xc5,0xf8,0x77]
1321 ; X86-NEXT: retl # encoding: [0xc3]
1322 %ret = call <16 x i8> @llvm.x86.avx10.mask.vcvtneph2hf8s256(<16 x half> %A, <16 x i8> zeroinitializer, i16 %B)