1// RUN: llvm-mc -triple x86_64-unknown-unknown --show-encoding %s | FileCheck %s 2 3 vpmadd52luq %xmm4, %xmm5, %xmm6 {%k7} 4//CHECK: vpmadd52luq %xmm4, %xmm5, %xmm6 {%k7} 5//CHECK: encoding: [0x62,0xf2,0xd5,0x0f,0xb4,0xf4] 6 7 vpmadd52luq %xmm4, %xmm5, %xmm6 {%k7} {z} 8//CHECK: vpmadd52luq %xmm4, %xmm5, %xmm6 {%k7} {z} 9//CHECK: encoding: [0x62,0xf2,0xd5,0x8f,0xb4,0xf4] 10 11 vpmadd52luq %ymm4, %ymm5, %ymm6 {%k7} 12//CHECK: vpmadd52luq %ymm4, %ymm5, %ymm6 {%k7} 13//CHECK: encoding: [0x62,0xf2,0xd5,0x2f,0xb4,0xf4] 14 15 vpmadd52luq %ymm4, %ymm5, %ymm6 {%k7} {z} 16//CHECK: vpmadd52luq %ymm4, %ymm5, %ymm6 {%k7} {z} 17//CHECK: encoding: [0x62,0xf2,0xd5,0xaf,0xb4,0xf4] 18 19 vpmadd52luq %xmm28, %xmm29, %xmm30 20//CHECK: vpmadd52luq %xmm28, %xmm29, %xmm30 21//CHECK: encoding: [0x62,0x02,0x95,0x00,0xb4,0xf4] 22 23 vpmadd52luq %xmm28, %xmm29, %xmm30 {%k7} 24//CHECK: vpmadd52luq %xmm28, %xmm29, %xmm30 {%k7} 25//CHECK: encoding: [0x62,0x02,0x95,0x07,0xb4,0xf4] 26 27 vpmadd52luq %xmm28, %xmm29, %xmm30 {%k7} {z} 28//CHECK: vpmadd52luq %xmm28, %xmm29, %xmm30 {%k7} {z} 29//CHECK: encoding: [0x62,0x02,0x95,0x87,0xb4,0xf4] 30 31 vpmadd52luq (%rcx), %xmm29, %xmm30 32//CHECK: vpmadd52luq (%rcx), %xmm29, %xmm30 33//CHECK: encoding: [0x62,0x62,0x95,0x00,0xb4,0x31] 34 35 vpmadd52luq 0x123(%rax,%r14,8), %xmm29, %xmm30 36//CHECK: vpmadd52luq 291(%rax,%r14,8), %xmm29, %xmm30 37//CHECK: encoding: [0x62,0x22,0x95,0x00,0xb4,0xb4,0xf0,0x23,0x01,0x00,0x00] 38 39 vpmadd52luq (%rcx){1to2}, %xmm29, %xmm30 40//CHECK: vpmadd52luq (%rcx){1to2}, %xmm29, %xmm30 41//CHECK: encoding: [0x62,0x62,0x95,0x10,0xb4,0x31] 42 43 vpmadd52luq 0x7f0(%rdx), %xmm29, %xmm30 44//CHECK: vpmadd52luq 2032(%rdx), %xmm29, %xmm30 45//CHECK: encoding: [0x62,0x62,0x95,0x00,0xb4,0x72,0x7f] 46 47 vpmadd52luq 0x800(%rdx), %xmm29, %xmm30 48//CHECK: vpmadd52luq 2048(%rdx), %xmm29, %xmm30 49//CHECK: encoding: [0x62,0x62,0x95,0x00,0xb4,0xb2,0x00,0x08,0x00,0x00] 50 51 vpmadd52luq -0x800(%rdx), %xmm29, %xmm30 52//CHECK: vpmadd52luq -2048(%rdx), %xmm29, %xmm30 53//CHECK: encoding: [0x62,0x62,0x95,0x00,0xb4,0x72,0x80] 54 55 vpmadd52luq -0x810(%rdx), %xmm29, %xmm30 56//CHECK: vpmadd52luq -2064(%rdx), %xmm29, %xmm30 57//CHECK: encoding: [0x62,0x62,0x95,0x00,0xb4,0xb2,0xf0,0xf7,0xff,0xff] 58 59 vpmadd52luq 0x3f8(%rdx){1to2}, %xmm29, %xmm30 60//CHECK: vpmadd52luq 1016(%rdx){1to2}, %xmm29, %xmm30 61//CHECK: encoding: [0x62,0x62,0x95,0x10,0xb4,0x72,0x7f] 62 63 vpmadd52luq 0x400(%rdx){1to2}, %xmm29, %xmm30 64//CHECK: vpmadd52luq 1024(%rdx){1to2}, %xmm29, %xmm30 65//CHECK: encoding: [0x62,0x62,0x95,0x10,0xb4,0xb2,0x00,0x04,0x00,0x00] 66 67 vpmadd52luq -0x400(%rdx){1to2}, %xmm29, %xmm30 68//CHECK: vpmadd52luq -1024(%rdx){1to2}, %xmm29, %xmm30 69//CHECK: encoding: [0x62,0x62,0x95,0x10,0xb4,0x72,0x80] 70 71 vpmadd52luq -0x408(%rdx){1to2}, %xmm29, %xmm30 72//CHECK: vpmadd52luq -1032(%rdx){1to2}, %xmm29, %xmm30 73//CHECK: encoding: [0x62,0x62,0x95,0x10,0xb4,0xb2,0xf8,0xfb,0xff,0xff] 74 75 vpmadd52luq %ymm28, %ymm29, %ymm30 76//CHECK: vpmadd52luq %ymm28, %ymm29, %ymm30 77//CHECK: encoding: [0x62,0x02,0x95,0x20,0xb4,0xf4] 78 79 vpmadd52luq %ymm28, %ymm29, %ymm30 {%k7} 80//CHECK: vpmadd52luq %ymm28, %ymm29, %ymm30 {%k7} 81//CHECK: encoding: [0x62,0x02,0x95,0x27,0xb4,0xf4] 82 83 vpmadd52luq %ymm28, %ymm29, %ymm30 {%k7} {z} 84//CHECK: vpmadd52luq %ymm28, %ymm29, %ymm30 {%k7} {z} 85//CHECK: encoding: [0x62,0x02,0x95,0xa7,0xb4,0xf4] 86 87 vpmadd52luq (%rcx), %ymm29, %ymm30 88//CHECK: vpmadd52luq (%rcx), %ymm29, %ymm30 89//CHECK: encoding: [0x62,0x62,0x95,0x20,0xb4,0x31] 90 91 vpmadd52luq 0x123(%rax,%r14,8), %ymm29, %ymm30 92//CHECK: vpmadd52luq 291(%rax,%r14,8), %ymm29, %ymm30 93//CHECK: encoding: [0x62,0x22,0x95,0x20,0xb4,0xb4,0xf0,0x23,0x01,0x00,0x00] 94 95 vpmadd52luq (%rcx){1to4}, %ymm29, %ymm30 96//CHECK: vpmadd52luq (%rcx){1to4}, %ymm29, %ymm30 97//CHECK: encoding: [0x62,0x62,0x95,0x30,0xb4,0x31] 98 99 vpmadd52luq 0xfe0(%rdx), %ymm29, %ymm30 100//CHECK: vpmadd52luq 4064(%rdx), %ymm29, %ymm30 101//CHECK: encoding: [0x62,0x62,0x95,0x20,0xb4,0x72,0x7f] 102 103 vpmadd52luq 0x1000(%rdx), %ymm29, %ymm30 104//CHECK: vpmadd52luq 4096(%rdx), %ymm29, %ymm30 105//CHECK: encoding: [0x62,0x62,0x95,0x20,0xb4,0xb2,0x00,0x10,0x00,0x00] 106 107 vpmadd52luq -0x1000(%rdx), %ymm29, %ymm30 108//CHECK: vpmadd52luq -4096(%rdx), %ymm29, %ymm30 109//CHECK: encoding: [0x62,0x62,0x95,0x20,0xb4,0x72,0x80] 110 111 vpmadd52luq -0x1020(%rdx), %ymm29, %ymm30 112//CHECK: vpmadd52luq -4128(%rdx), %ymm29, %ymm30 113//CHECK: encoding: [0x62,0x62,0x95,0x20,0xb4,0xb2,0xe0,0xef,0xff,0xff] 114 115 vpmadd52luq 0x3f8(%rdx){1to4}, %ymm29, %ymm30 116//CHECK: vpmadd52luq 1016(%rdx){1to4}, %ymm29, %ymm30 117//CHECK: encoding: [0x62,0x62,0x95,0x30,0xb4,0x72,0x7f] 118 119 vpmadd52luq 0x400(%rdx){1to4}, %ymm29, %ymm30 120//CHECK: vpmadd52luq 1024(%rdx){1to4}, %ymm29, %ymm30 121//CHECK: encoding: [0x62,0x62,0x95,0x30,0xb4,0xb2,0x00,0x04,0x00,0x00] 122 123 vpmadd52luq -0x400(%rdx){1to4}, %ymm29, %ymm30 124//CHECK: vpmadd52luq -1024(%rdx){1to4}, %ymm29, %ymm30 125//CHECK: encoding: [0x62,0x62,0x95,0x30,0xb4,0x72,0x80] 126 127 vpmadd52luq -0x408(%rdx){1to4}, %ymm29, %ymm30 128//CHECK: vpmadd52luq -1032(%rdx){1to4}, %ymm29, %ymm30 129//CHECK: encoding: [0x62,0x62,0x95,0x30,0xb4,0xb2,0xf8,0xfb,0xff,0xff] 130 131 vpmadd52luq 0x1234(%rax,%r14,8), %xmm29, %xmm30 132//CHECK: vpmadd52luq 4660(%rax,%r14,8), %xmm29, %xmm30 133//CHECK: encoding: [0x62,0x22,0x95,0x00,0xb4,0xb4,0xf0,0x34,0x12,0x00,0x00] 134 135 vpmadd52luq 0x1234(%rax,%r14,8), %ymm29, %ymm30 136//CHECK: vpmadd52luq 4660(%rax,%r14,8), %ymm29, %ymm30 137//CHECK: encoding: [0x62,0x22,0x95,0x20,0xb4,0xb4,0xf0,0x34,0x12,0x00,0x00] 138 139vpmadd52huq %xmm4, %xmm5, %xmm6 {%k7} 140//CHECK: vpmadd52huq %xmm4, %xmm5, %xmm6 {%k7} 141//CHECK: encoding: [0x62,0xf2,0xd5,0x0f,0xb5,0xf4] 142 143 vpmadd52huq %xmm4, %xmm5, %xmm6 {%k7} {z} 144//CHECK: vpmadd52huq %xmm4, %xmm5, %xmm6 {%k7} {z} 145//CHECK: encoding: [0x62,0xf2,0xd5,0x8f,0xb5,0xf4] 146 147 vpmadd52huq %ymm4, %ymm5, %ymm6 {%k7} 148//CHECK: vpmadd52huq %ymm4, %ymm5, %ymm6 {%k7} 149//CHECK: encoding: [0x62,0xf2,0xd5,0x2f,0xb5,0xf4] 150 151 vpmadd52huq %ymm4, %ymm5, %ymm6 {%k7} {z} 152//CHECK: vpmadd52huq %ymm4, %ymm5, %ymm6 {%k7} {z} 153//CHECK: encoding: [0x62,0xf2,0xd5,0xaf,0xb5,0xf4] 154 155 vpmadd52huq %xmm28, %xmm29, %xmm30 156//CHECK: vpmadd52huq %xmm28, %xmm29, %xmm30 157//CHECK: encoding: [0x62,0x02,0x95,0x00,0xb5,0xf4] 158 159 vpmadd52huq %xmm28, %xmm29, %xmm30 {%k7} 160//CHECK: vpmadd52huq %xmm28, %xmm29, %xmm30 {%k7} 161//CHECK: encoding: [0x62,0x02,0x95,0x07,0xb5,0xf4] 162 163 vpmadd52huq %xmm28, %xmm29, %xmm30 {%k7} {z} 164//CHECK: vpmadd52huq %xmm28, %xmm29, %xmm30 {%k7} {z} 165//CHECK: encoding: [0x62,0x02,0x95,0x87,0xb5,0xf4] 166 167 vpmadd52huq (%rcx), %xmm29, %xmm30 168//CHECK: vpmadd52huq (%rcx), %xmm29, %xmm30 169//CHECK: encoding: [0x62,0x62,0x95,0x00,0xb5,0x31] 170 171 vpmadd52huq 0x123(%rax,%r14,8), %xmm29, %xmm30 172//CHECK: vpmadd52huq 291(%rax,%r14,8), %xmm29, %xmm30 173//CHECK: encoding: [0x62,0x22,0x95,0x00,0xb5,0xb4,0xf0,0x23,0x01,0x00,0x00] 174 175 vpmadd52huq (%rcx){1to2}, %xmm29, %xmm30 176//CHECK: vpmadd52huq (%rcx){1to2}, %xmm29, %xmm30 177//CHECK: encoding: [0x62,0x62,0x95,0x10,0xb5,0x31] 178 179 vpmadd52huq 0x7f0(%rdx), %xmm29, %xmm30 180//CHECK: vpmadd52huq 2032(%rdx), %xmm29, %xmm30 181//CHECK: encoding: [0x62,0x62,0x95,0x00,0xb5,0x72,0x7f] 182 183 vpmadd52huq 0x800(%rdx), %xmm29, %xmm30 184//CHECK: vpmadd52huq 2048(%rdx), %xmm29, %xmm30 185//CHECK: encoding: [0x62,0x62,0x95,0x00,0xb5,0xb2,0x00,0x08,0x00,0x00] 186 187 vpmadd52huq -0x800(%rdx), %xmm29, %xmm30 188//CHECK: vpmadd52huq -2048(%rdx), %xmm29, %xmm30 189//CHECK: encoding: [0x62,0x62,0x95,0x00,0xb5,0x72,0x80] 190 191 vpmadd52huq -0x810(%rdx), %xmm29, %xmm30 192//CHECK: vpmadd52huq -2064(%rdx), %xmm29, %xmm30 193//CHECK: encoding: [0x62,0x62,0x95,0x00,0xb5,0xb2,0xf0,0xf7,0xff,0xff] 194 195 vpmadd52huq 0x3f8(%rdx){1to2}, %xmm29, %xmm30 196//CHECK: vpmadd52huq 1016(%rdx){1to2}, %xmm29, %xmm30 197//CHECK: encoding: [0x62,0x62,0x95,0x10,0xb5,0x72,0x7f] 198 199 vpmadd52huq 0x400(%rdx){1to2}, %xmm29, %xmm30 200//CHECK: vpmadd52huq 1024(%rdx){1to2}, %xmm29, %xmm30 201//CHECK: encoding: [0x62,0x62,0x95,0x10,0xb5,0xb2,0x00,0x04,0x00,0x00] 202 203 vpmadd52huq -0x400(%rdx){1to2}, %xmm29, %xmm30 204//CHECK: vpmadd52huq -1024(%rdx){1to2}, %xmm29, %xmm30 205//CHECK: encoding: [0x62,0x62,0x95,0x10,0xb5,0x72,0x80] 206 207 vpmadd52huq -0x408(%rdx){1to2}, %xmm29, %xmm30 208//CHECK: vpmadd52huq -1032(%rdx){1to2}, %xmm29, %xmm30 209//CHECK: encoding: [0x62,0x62,0x95,0x10,0xb5,0xb2,0xf8,0xfb,0xff,0xff] 210 211 vpmadd52huq %ymm28, %ymm29, %ymm30 212//CHECK: vpmadd52huq %ymm28, %ymm29, %ymm30 213//CHECK: encoding: [0x62,0x02,0x95,0x20,0xb5,0xf4] 214 215 vpmadd52huq %ymm28, %ymm29, %ymm30 {%k7} 216//CHECK: vpmadd52huq %ymm28, %ymm29, %ymm30 {%k7} 217//CHECK: encoding: [0x62,0x02,0x95,0x27,0xb5,0xf4] 218 219 vpmadd52huq %ymm28, %ymm29, %ymm30 {%k7} {z} 220//CHECK: vpmadd52huq %ymm28, %ymm29, %ymm30 {%k7} {z} 221//CHECK: encoding: [0x62,0x02,0x95,0xa7,0xb5,0xf4] 222 223 vpmadd52huq (%rcx), %ymm29, %ymm30 224//CHECK: vpmadd52huq (%rcx), %ymm29, %ymm30 225//CHECK: encoding: [0x62,0x62,0x95,0x20,0xb5,0x31] 226 227 vpmadd52huq 0x123(%rax,%r14,8), %ymm29, %ymm30 228//CHECK: vpmadd52huq 291(%rax,%r14,8), %ymm29, %ymm30 229//CHECK: encoding: [0x62,0x22,0x95,0x20,0xb5,0xb4,0xf0,0x23,0x01,0x00,0x00] 230 231 vpmadd52huq (%rcx){1to4}, %ymm29, %ymm30 232//CHECK: vpmadd52huq (%rcx){1to4}, %ymm29, %ymm30 233//CHECK: encoding: [0x62,0x62,0x95,0x30,0xb5,0x31] 234 235 vpmadd52huq 0xfe0(%rdx), %ymm29, %ymm30 236//CHECK: vpmadd52huq 4064(%rdx), %ymm29, %ymm30 237//CHECK: encoding: [0x62,0x62,0x95,0x20,0xb5,0x72,0x7f] 238 239 vpmadd52huq 0x1000(%rdx), %ymm29, %ymm30 240//CHECK: vpmadd52huq 4096(%rdx), %ymm29, %ymm30 241//CHECK: encoding: [0x62,0x62,0x95,0x20,0xb5,0xb2,0x00,0x10,0x00,0x00] 242 243 vpmadd52huq -0x1000(%rdx), %ymm29, %ymm30 244//CHECK: vpmadd52huq -4096(%rdx), %ymm29, %ymm30 245//CHECK: encoding: [0x62,0x62,0x95,0x20,0xb5,0x72,0x80] 246 247 vpmadd52huq -0x1020(%rdx), %ymm29, %ymm30 248//CHECK: vpmadd52huq -4128(%rdx), %ymm29, %ymm30 249//CHECK: encoding: [0x62,0x62,0x95,0x20,0xb5,0xb2,0xe0,0xef,0xff,0xff] 250 251 vpmadd52huq 0x3f8(%rdx){1to4}, %ymm29, %ymm30 252//CHECK: vpmadd52huq 1016(%rdx){1to4}, %ymm29, %ymm30 253//CHECK: encoding: [0x62,0x62,0x95,0x30,0xb5,0x72,0x7f] 254 255 vpmadd52huq 0x400(%rdx){1to4}, %ymm29, %ymm30 256//CHECK: vpmadd52huq 1024(%rdx){1to4}, %ymm29, %ymm30 257//CHECK: encoding: [0x62,0x62,0x95,0x30,0xb5,0xb2,0x00,0x04,0x00,0x00] 258 259 vpmadd52huq -0x400(%rdx){1to4}, %ymm29, %ymm30 260//CHECK: vpmadd52huq -1024(%rdx){1to4}, %ymm29, %ymm30 261//CHECK: encoding: [0x62,0x62,0x95,0x30,0xb5,0x72,0x80] 262 263 vpmadd52huq -0x408(%rdx){1to4}, %ymm29, %ymm30 264//CHECK: vpmadd52huq -1032(%rdx){1to4}, %ymm29, %ymm30 265//CHECK: encoding: [0x62,0x62,0x95,0x30,0xb5,0xb2,0xf8,0xfb,0xff,0xff] 266 267 vpmadd52huq 0x1234(%rax,%r14,8), %xmm29, %xmm30 268//CHECK: vpmadd52huq 4660(%rax,%r14,8), %xmm29, %xmm30 269//CHECK: encoding: [0x62,0x22,0x95,0x00,0xb5,0xb4,0xf0,0x34,0x12,0x00,0x00] 270 271 vpmadd52huq 0x1234(%rax,%r14,8), %ymm29, %ymm30 272//CHECK: vpmadd52huq 4660(%rax,%r14,8), %ymm29, %ymm30 273//CHECK: encoding: [0x62,0x22,0x95,0x20,0xb5,0xb4,0xf0,0x34,0x12,0x00,0x00] 274 275