1// RUN: llvm-mc -triple x86_64-unknown-unknown --show-encoding < %s | FileCheck %s
2
3// CHECK: vcvtne2ps2bf16 %xmm28, %xmm29, %xmm30
4// CHECK: encoding: [0x62,0x02,0x17,0x00,0x72,0xf4]
5          vcvtne2ps2bf16 %xmm28, %xmm29, %xmm30
6
7// CHECK: vcvtne2ps2bf16 %xmm28, %xmm29, %xmm30 {%k7}
8// CHECK: encoding: [0x62,0x02,0x17,0x07,0x72,0xf4]
9          vcvtne2ps2bf16 %xmm28, %xmm29, %xmm30 {%k7}
10
11// CHECK: vcvtne2ps2bf16 %xmm28, %xmm29, %xmm30 {%k7} {z}
12// CHECK: encoding: [0x62,0x02,0x17,0x87,0x72,0xf4]
13          vcvtne2ps2bf16 %xmm28, %xmm29, %xmm30 {%k7} {z}
14
15// CHECK: vcvtne2ps2bf16   (%rcx), %xmm29, %xmm30
16// CHECK: encoding: [0x62,0x62,0x17,0x00,0x72,0x31]
17          vcvtne2ps2bf16   (%rcx), %xmm29, %xmm30
18
19// CHECK: vcvtne2ps2bf16   291(%rax,%r14,8), %xmm29, %xmm30
20// CHECK: encoding: [0x62,0x22,0x17,0x00,0x72,0xb4,0xf0,0x23,0x01,0x00,0x00]
21          vcvtne2ps2bf16   291(%rax,%r14,8), %xmm29, %xmm30
22
23// CHECK: vcvtne2ps2bf16   268435456(%rax,%r14,8), %xmm29, %xmm30
24// CHECK: encoding: [0x62,0x22,0x17,0x00,0x72,0xb4,0xf0,0x00,0x00,0x00,0x10]
25          vcvtne2ps2bf16   268435456(%rax,%r14,8), %xmm29, %xmm30
26
27// CHECK: vcvtne2ps2bf16   -16(%rsp), %xmm29, %xmm30
28// CHECK: encoding: [0x62,0x62,0x17,0x00,0x72,0x74,0x24,0xff]
29          vcvtne2ps2bf16   -16(%rsp), %xmm29, %xmm30
30
31// CHECK: vcvtne2ps2bf16   (%rcx){1to4}, %xmm29, %xmm30
32// CHECK: encoding: [0x62,0x62,0x17,0x10,0x72,0x31]
33          vcvtne2ps2bf16   (%rcx){1to4}, %xmm29, %xmm30
34
35// CHECK: vcvtne2ps2bf16   2032(%rdx), %xmm29, %xmm30
36// CHECK: encoding: [0x62,0x62,0x17,0x00,0x72,0x72,0x7f]
37          vcvtne2ps2bf16   2032(%rdx), %xmm29, %xmm30
38
39// CHECK: vcvtne2ps2bf16   -2048(%rdx), %xmm29, %xmm30
40// CHECK: encoding: [0x62,0x62,0x17,0x00,0x72,0x72,0x80]
41          vcvtne2ps2bf16   -2048(%rdx), %xmm29, %xmm30
42
43// CHECK: vcvtne2ps2bf16   508(%rdx){1to4}, %xmm29, %xmm30
44// CHECK: encoding: [0x62,0x62,0x17,0x10,0x72,0x72,0x7f]
45          vcvtne2ps2bf16   508(%rdx){1to4}, %xmm29, %xmm30
46
47// CHECK: vcvtne2ps2bf16   -512(%rdx){1to4}, %xmm29, %xmm30
48// CHECK: encoding: [0x62,0x62,0x17,0x10,0x72,0x72,0x80]
49          vcvtne2ps2bf16   -512(%rdx){1to4}, %xmm29, %xmm30
50
51// CHECK: vcvtne2ps2bf16 %ymm28, %ymm29, %ymm30
52// CHECK: encoding: [0x62,0x02,0x17,0x20,0x72,0xf4]
53          vcvtne2ps2bf16 %ymm28, %ymm29, %ymm30
54
55// CHECK: vcvtne2ps2bf16 %ymm28, %ymm29, %ymm30 {%k7}
56// CHECK: encoding: [0x62,0x02,0x17,0x27,0x72,0xf4]
57          vcvtne2ps2bf16 %ymm28, %ymm29, %ymm30 {%k7}
58
59// CHECK: vcvtne2ps2bf16 %ymm28, %ymm29, %ymm30 {%k7} {z}
60// CHECK: encoding: [0x62,0x02,0x17,0xa7,0x72,0xf4]
61          vcvtne2ps2bf16 %ymm28, %ymm29, %ymm30 {%k7} {z}
62
63// CHECK: vcvtne2ps2bf16   (%rcx), %ymm29, %ymm30
64// CHECK: encoding: [0x62,0x62,0x17,0x20,0x72,0x31]
65          vcvtne2ps2bf16   (%rcx), %ymm29, %ymm30
66
67// CHECK: vcvtne2ps2bf16   291(%rax,%r14,8), %ymm29, %ymm30
68// CHECK: encoding: [0x62,0x22,0x17,0x20,0x72,0xb4,0xf0,0x23,0x01,0x00,0x00]
69          vcvtne2ps2bf16   291(%rax,%r14,8), %ymm29, %ymm30
70
71// CHECK: vcvtne2ps2bf16   268435456(%rax,%r14,8), %ymm29, %ymm30
72// CHECK: encoding: [0x62,0x22,0x17,0x20,0x72,0xb4,0xf0,0x00,0x00,0x00,0x10]
73          vcvtne2ps2bf16   268435456(%rax,%r14,8), %ymm29, %ymm30
74
75// CHECK: vcvtne2ps2bf16   -32(%rsp), %ymm29, %ymm30
76// CHECK: encoding: [0x62,0x62,0x17,0x20,0x72,0x74,0x24,0xff]
77          vcvtne2ps2bf16   -32(%rsp), %ymm29, %ymm30
78
79// CHECK: vcvtne2ps2bf16   (%rcx){1to8}, %ymm29, %ymm30
80// CHECK: encoding: [0x62,0x62,0x17,0x30,0x72,0x31]
81          vcvtne2ps2bf16   (%rcx){1to8}, %ymm29, %ymm30
82
83// CHECK: vcvtne2ps2bf16   4064(%rdx), %ymm29, %ymm30
84// CHECK: encoding: [0x62,0x62,0x17,0x20,0x72,0x72,0x7f]
85          vcvtne2ps2bf16   4064(%rdx), %ymm29, %ymm30
86
87// CHECK: vcvtne2ps2bf16   -4096(%rdx), %ymm29, %ymm30
88// CHECK: encoding: [0x62,0x62,0x17,0x20,0x72,0x72,0x80]
89          vcvtne2ps2bf16   -4096(%rdx), %ymm29, %ymm30
90
91// CHECK: vcvtne2ps2bf16   508(%rdx){1to8}, %ymm29, %ymm30
92// CHECK: encoding: [0x62,0x62,0x17,0x30,0x72,0x72,0x7f]
93          vcvtne2ps2bf16   508(%rdx){1to8}, %ymm29, %ymm30
94
95// CHECK: vcvtne2ps2bf16   -512(%rdx){1to8}, %ymm29, %ymm30
96// CHECK: encoding: [0x62,0x62,0x17,0x30,0x72,0x72,0x80]
97          vcvtne2ps2bf16   -512(%rdx){1to8}, %ymm29, %ymm30
98
99// CHECK: vcvtneps2bf16 %xmm29, %xmm30
100// CHECK: encoding: [0x62,0x02,0x7e,0x08,0x72,0xf5]
101          vcvtneps2bf16 %xmm29, %xmm30
102
103// CHECK: vcvtneps2bf16x  268435456(%rbp,%r14,8), %xmm30 {%k7}
104// CHECK: encoding: [0x62,0x22,0x7e,0x0f,0x72,0xb4,0xf5,0x00,0x00,0x00,0x10]
105          vcvtneps2bf16x  268435456(%rbp,%r14,8), %xmm30 {%k7}
106
107// CHECK: vcvtneps2bf16   (%r9){1to4}, %xmm30
108// CHECK: encoding: [0x62,0x42,0x7e,0x18,0x72,0x31]
109          vcvtneps2bf16   (%r9){1to4}, %xmm30
110
111// CHECK: vcvtneps2bf16x  2032(%rcx), %xmm30
112// CHECK: encoding: [0x62,0x62,0x7e,0x08,0x72,0x71,0x7f]
113          vcvtneps2bf16x  2032(%rcx), %xmm30
114
115// CHECK: vcvtneps2bf16   -512(%rdx){1to4}, %xmm30 {%k7} {z}
116// CHECK: encoding: [0x62,0x62,0x7e,0x9f,0x72,0x72,0x80]
117          vcvtneps2bf16   -512(%rdx){1to4}, %xmm30 {%k7} {z}
118
119// CHECK: vcvtneps2bf16 %ymm29, %xmm30
120// CHECK: encoding: [0x62,0x02,0x7e,0x28,0x72,0xf5]
121          vcvtneps2bf16 %ymm29, %xmm30
122
123// CHECK: vcvtneps2bf16y  268435456(%rbp,%r14,8), %xmm30 {%k7}
124// CHECK: encoding: [0x62,0x22,0x7e,0x2f,0x72,0xb4,0xf5,0x00,0x00,0x00,0x10]
125          vcvtneps2bf16y  268435456(%rbp,%r14,8), %xmm30 {%k7}
126
127// CHECK: vcvtneps2bf16   (%r9){1to8}, %xmm30
128// CHECK: encoding: [0x62,0x42,0x7e,0x38,0x72,0x31]
129          vcvtneps2bf16   (%r9){1to8}, %xmm30
130
131// CHECK: vcvtneps2bf16y  4064(%rcx), %xmm30
132// CHECK: encoding: [0x62,0x62,0x7e,0x28,0x72,0x71,0x7f]
133          vcvtneps2bf16y  4064(%rcx), %xmm30
134
135// CHECK: vcvtneps2bf16   -512(%rdx){1to8}, %xmm30 {%k7} {z}
136// CHECK: encoding: [0x62,0x62,0x7e,0xbf,0x72,0x72,0x80]
137          vcvtneps2bf16   -512(%rdx){1to8}, %xmm30 {%k7} {z}
138
139// CHECK: vdpbf16ps %ymm28, %ymm29, %ymm30
140// CHECK: encoding: [0x62,0x02,0x16,0x20,0x52,0xf4]
141          vdpbf16ps %ymm28, %ymm29, %ymm30
142
143// CHECK: vdpbf16ps   268435456(%rbp,%r14,8), %ymm29, %ymm30 {%k7}
144// CHECK: encoding: [0x62,0x22,0x16,0x27,0x52,0xb4,0xf5,0x00,0x00,0x00,0x10]
145          vdpbf16ps   268435456(%rbp,%r14,8), %ymm29, %ymm30 {%k7}
146
147// CHECK: vdpbf16ps   (%r9){1to8}, %ymm29, %ymm30
148// CHECK: encoding: [0x62,0x42,0x16,0x30,0x52,0x31]
149          vdpbf16ps   (%r9){1to8}, %ymm29, %ymm30
150
151// CHECK: vdpbf16ps   4064(%rcx), %ymm29, %ymm30
152// CHECK: encoding: [0x62,0x62,0x16,0x20,0x52,0x71,0x7f]
153          vdpbf16ps   4064(%rcx), %ymm29, %ymm30
154
155// CHECK: vdpbf16ps   -512(%rdx){1to8}, %ymm29, %ymm30 {%k7} {z}
156// CHECK: encoding: [0x62,0x62,0x16,0xb7,0x52,0x72,0x80]
157          vdpbf16ps   -512(%rdx){1to8}, %ymm29, %ymm30 {%k7} {z}
158
159// CHECK: vdpbf16ps %xmm28, %xmm29, %xmm30
160// CHECK: encoding: [0x62,0x02,0x16,0x00,0x52,0xf4]
161          vdpbf16ps %xmm28, %xmm29, %xmm30
162
163// CHECK: vdpbf16ps   268435456(%rbp,%r14,8), %xmm29, %xmm30 {%k7}
164// CHECK: encoding: [0x62,0x22,0x16,0x07,0x52,0xb4,0xf5,0x00,0x00,0x00,0x10]
165          vdpbf16ps   268435456(%rbp,%r14,8), %xmm29, %xmm30 {%k7}
166
167// CHECK: vdpbf16ps   (%r9){1to4}, %xmm29, %xmm30
168// CHECK: encoding: [0x62,0x42,0x16,0x10,0x52,0x31]
169          vdpbf16ps   (%r9){1to4}, %xmm29, %xmm30
170
171// CHECK: vdpbf16ps   2032(%rcx), %xmm29, %xmm30
172// CHECK: encoding: [0x62,0x62,0x16,0x00,0x52,0x71,0x7f]
173          vdpbf16ps   2032(%rcx), %xmm29, %xmm30
174
175// CHECK: vdpbf16ps   -512(%rdx){1to4}, %xmm29, %xmm30 {%k7} {z}
176// CHECK: encoding: [0x62,0x62,0x16,0x97,0x52,0x72,0x80]
177          vdpbf16ps   -512(%rdx){1to4}, %xmm29, %xmm30 {%k7} {z}
178
179