1# RUN: llvm-mc -triple x86_64 -show-encoding %s | FileCheck %s 2# RUN: not llvm-mc -triple i386 -show-encoding %s 2>&1 | FileCheck %s --check-prefix=ERROR 3 4# ERROR-COUNT-96: error: 5# ERROR-NOT: error: 6# CHECK: cmovbw %dx, %ax, %r9w 7# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x42,0xc2] 8 cmovbw %dx, %ax, %r9w 9# CHECK: cmovbl %ecx, %edx, %r10d 10# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x42,0xd1] 11 cmovbl %ecx, %edx, %r10d 12# CHECK: cmovbq %r9, %r15, %r11 13# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x42,0xf9] 14 cmovbq %r9, %r15, %r11 15# CHECK: cmovbw 123(%r8,%rax,4), %dx, %ax 16# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x42,0x54,0x80,0x7b] 17 cmovbw 123(%r8,%rax,4), %dx, %ax 18# CHECK: cmovbl 123(%r8,%rax,4), %ecx, %edx 19# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x42,0x4c,0x80,0x7b] 20 cmovbl 123(%r8,%rax,4), %ecx, %edx 21# CHECK: cmovbq 123(%r8,%rax,4), %r9, %r15 22# CHECK: encoding: [0x62,0x54,0x84,0x18,0x42,0x4c,0x80,0x7b] 23 cmovbq 123(%r8,%rax,4), %r9, %r15 24# CHECK: cmovbew %dx, %ax, %r9w 25# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x46,0xc2] 26 cmovbew %dx, %ax, %r9w 27# CHECK: cmovbel %ecx, %edx, %r10d 28# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x46,0xd1] 29 cmovbel %ecx, %edx, %r10d 30# CHECK: cmovbeq %r9, %r15, %r11 31# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x46,0xf9] 32 cmovbeq %r9, %r15, %r11 33# CHECK: cmovbew 123(%r8,%rax,4), %dx, %ax 34# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x46,0x54,0x80,0x7b] 35 cmovbew 123(%r8,%rax,4), %dx, %ax 36# CHECK: cmovbel 123(%r8,%rax,4), %ecx, %edx 37# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x46,0x4c,0x80,0x7b] 38 cmovbel 123(%r8,%rax,4), %ecx, %edx 39# CHECK: cmovbeq 123(%r8,%rax,4), %r9, %r15 40# CHECK: encoding: [0x62,0x54,0x84,0x18,0x46,0x4c,0x80,0x7b] 41 cmovbeq 123(%r8,%rax,4), %r9, %r15 42# CHECK: cmovlw %dx, %ax, %r9w 43# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x4c,0xc2] 44 cmovlw %dx, %ax, %r9w 45# CHECK: cmovll %ecx, %edx, %r10d 46# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x4c,0xd1] 47 cmovll %ecx, %edx, %r10d 48# CHECK: cmovlq %r9, %r15, %r11 49# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x4c,0xf9] 50 cmovlq %r9, %r15, %r11 51# CHECK: cmovlw 123(%r8,%rax,4), %dx, %ax 52# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x4c,0x54,0x80,0x7b] 53 cmovlw 123(%r8,%rax,4), %dx, %ax 54# CHECK: cmovll 123(%r8,%rax,4), %ecx, %edx 55# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x4c,0x4c,0x80,0x7b] 56 cmovll 123(%r8,%rax,4), %ecx, %edx 57# CHECK: cmovlq 123(%r8,%rax,4), %r9, %r15 58# CHECK: encoding: [0x62,0x54,0x84,0x18,0x4c,0x4c,0x80,0x7b] 59 cmovlq 123(%r8,%rax,4), %r9, %r15 60# CHECK: cmovlew %dx, %ax, %r9w 61# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x4e,0xc2] 62 cmovlew %dx, %ax, %r9w 63# CHECK: cmovlel %ecx, %edx, %r10d 64# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x4e,0xd1] 65 cmovlel %ecx, %edx, %r10d 66# CHECK: cmovleq %r9, %r15, %r11 67# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x4e,0xf9] 68 cmovleq %r9, %r15, %r11 69# CHECK: cmovlew 123(%r8,%rax,4), %dx, %ax 70# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x4e,0x54,0x80,0x7b] 71 cmovlew 123(%r8,%rax,4), %dx, %ax 72# CHECK: cmovlel 123(%r8,%rax,4), %ecx, %edx 73# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x4e,0x4c,0x80,0x7b] 74 cmovlel 123(%r8,%rax,4), %ecx, %edx 75# CHECK: cmovleq 123(%r8,%rax,4), %r9, %r15 76# CHECK: encoding: [0x62,0x54,0x84,0x18,0x4e,0x4c,0x80,0x7b] 77 cmovleq 123(%r8,%rax,4), %r9, %r15 78# CHECK: cmovaew %dx, %ax, %r9w 79# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x43,0xc2] 80 cmovaew %dx, %ax, %r9w 81# CHECK: cmovael %ecx, %edx, %r10d 82# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x43,0xd1] 83 cmovael %ecx, %edx, %r10d 84# CHECK: cmovaeq %r9, %r15, %r11 85# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x43,0xf9] 86 cmovaeq %r9, %r15, %r11 87# CHECK: cmovaew 123(%r8,%rax,4), %dx, %ax 88# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x43,0x54,0x80,0x7b] 89 cmovaew 123(%r8,%rax,4), %dx, %ax 90# CHECK: cmovael 123(%r8,%rax,4), %ecx, %edx 91# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x43,0x4c,0x80,0x7b] 92 cmovael 123(%r8,%rax,4), %ecx, %edx 93# CHECK: cmovaeq 123(%r8,%rax,4), %r9, %r15 94# CHECK: encoding: [0x62,0x54,0x84,0x18,0x43,0x4c,0x80,0x7b] 95 cmovaeq 123(%r8,%rax,4), %r9, %r15 96# CHECK: cmovaw %dx, %ax, %r9w 97# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x47,0xc2] 98 cmovaw %dx, %ax, %r9w 99# CHECK: cmoval %ecx, %edx, %r10d 100# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x47,0xd1] 101 cmoval %ecx, %edx, %r10d 102# CHECK: cmovaq %r9, %r15, %r11 103# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x47,0xf9] 104 cmovaq %r9, %r15, %r11 105# CHECK: cmovaw 123(%r8,%rax,4), %dx, %ax 106# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x47,0x54,0x80,0x7b] 107 cmovaw 123(%r8,%rax,4), %dx, %ax 108# CHECK: cmoval 123(%r8,%rax,4), %ecx, %edx 109# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x47,0x4c,0x80,0x7b] 110 cmoval 123(%r8,%rax,4), %ecx, %edx 111# CHECK: cmovaq 123(%r8,%rax,4), %r9, %r15 112# CHECK: encoding: [0x62,0x54,0x84,0x18,0x47,0x4c,0x80,0x7b] 113 cmovaq 123(%r8,%rax,4), %r9, %r15 114# CHECK: cmovgew %dx, %ax, %r9w 115# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x4d,0xc2] 116 cmovgew %dx, %ax, %r9w 117# CHECK: cmovgel %ecx, %edx, %r10d 118# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x4d,0xd1] 119 cmovgel %ecx, %edx, %r10d 120# CHECK: cmovgeq %r9, %r15, %r11 121# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x4d,0xf9] 122 cmovgeq %r9, %r15, %r11 123# CHECK: cmovgew 123(%r8,%rax,4), %dx, %ax 124# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x4d,0x54,0x80,0x7b] 125 cmovgew 123(%r8,%rax,4), %dx, %ax 126# CHECK: cmovgel 123(%r8,%rax,4), %ecx, %edx 127# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x4d,0x4c,0x80,0x7b] 128 cmovgel 123(%r8,%rax,4), %ecx, %edx 129# CHECK: cmovgeq 123(%r8,%rax,4), %r9, %r15 130# CHECK: encoding: [0x62,0x54,0x84,0x18,0x4d,0x4c,0x80,0x7b] 131 cmovgeq 123(%r8,%rax,4), %r9, %r15 132# CHECK: cmovgw %dx, %ax, %r9w 133# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x4f,0xc2] 134 cmovgw %dx, %ax, %r9w 135# CHECK: cmovgl %ecx, %edx, %r10d 136# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x4f,0xd1] 137 cmovgl %ecx, %edx, %r10d 138# CHECK: cmovgq %r9, %r15, %r11 139# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x4f,0xf9] 140 cmovgq %r9, %r15, %r11 141# CHECK: cmovgw 123(%r8,%rax,4), %dx, %ax 142# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x4f,0x54,0x80,0x7b] 143 cmovgw 123(%r8,%rax,4), %dx, %ax 144# CHECK: cmovgl 123(%r8,%rax,4), %ecx, %edx 145# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x4f,0x4c,0x80,0x7b] 146 cmovgl 123(%r8,%rax,4), %ecx, %edx 147# CHECK: cmovgq 123(%r8,%rax,4), %r9, %r15 148# CHECK: encoding: [0x62,0x54,0x84,0x18,0x4f,0x4c,0x80,0x7b] 149 cmovgq 123(%r8,%rax,4), %r9, %r15 150# CHECK: cmovnow %dx, %ax, %r9w 151# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x41,0xc2] 152 cmovnow %dx, %ax, %r9w 153# CHECK: cmovnol %ecx, %edx, %r10d 154# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x41,0xd1] 155 cmovnol %ecx, %edx, %r10d 156# CHECK: cmovnoq %r9, %r15, %r11 157# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x41,0xf9] 158 cmovnoq %r9, %r15, %r11 159# CHECK: cmovnow 123(%r8,%rax,4), %dx, %ax 160# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x41,0x54,0x80,0x7b] 161 cmovnow 123(%r8,%rax,4), %dx, %ax 162# CHECK: cmovnol 123(%r8,%rax,4), %ecx, %edx 163# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x41,0x4c,0x80,0x7b] 164 cmovnol 123(%r8,%rax,4), %ecx, %edx 165# CHECK: cmovnoq 123(%r8,%rax,4), %r9, %r15 166# CHECK: encoding: [0x62,0x54,0x84,0x18,0x41,0x4c,0x80,0x7b] 167 cmovnoq 123(%r8,%rax,4), %r9, %r15 168# CHECK: cmovnpw %dx, %ax, %r9w 169# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x4b,0xc2] 170 cmovnpw %dx, %ax, %r9w 171# CHECK: cmovnpl %ecx, %edx, %r10d 172# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x4b,0xd1] 173 cmovnpl %ecx, %edx, %r10d 174# CHECK: cmovnpq %r9, %r15, %r11 175# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x4b,0xf9] 176 cmovnpq %r9, %r15, %r11 177# CHECK: cmovnpw 123(%r8,%rax,4), %dx, %ax 178# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x4b,0x54,0x80,0x7b] 179 cmovnpw 123(%r8,%rax,4), %dx, %ax 180# CHECK: cmovnpl 123(%r8,%rax,4), %ecx, %edx 181# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x4b,0x4c,0x80,0x7b] 182 cmovnpl 123(%r8,%rax,4), %ecx, %edx 183# CHECK: cmovnpq 123(%r8,%rax,4), %r9, %r15 184# CHECK: encoding: [0x62,0x54,0x84,0x18,0x4b,0x4c,0x80,0x7b] 185 cmovnpq 123(%r8,%rax,4), %r9, %r15 186# CHECK: cmovnsw %dx, %ax, %r9w 187# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x49,0xc2] 188 cmovnsw %dx, %ax, %r9w 189# CHECK: cmovnsl %ecx, %edx, %r10d 190# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x49,0xd1] 191 cmovnsl %ecx, %edx, %r10d 192# CHECK: cmovnsq %r9, %r15, %r11 193# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x49,0xf9] 194 cmovnsq %r9, %r15, %r11 195# CHECK: cmovnsw 123(%r8,%rax,4), %dx, %ax 196# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x49,0x54,0x80,0x7b] 197 cmovnsw 123(%r8,%rax,4), %dx, %ax 198# CHECK: cmovnsl 123(%r8,%rax,4), %ecx, %edx 199# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x49,0x4c,0x80,0x7b] 200 cmovnsl 123(%r8,%rax,4), %ecx, %edx 201# CHECK: cmovnsq 123(%r8,%rax,4), %r9, %r15 202# CHECK: encoding: [0x62,0x54,0x84,0x18,0x49,0x4c,0x80,0x7b] 203 cmovnsq 123(%r8,%rax,4), %r9, %r15 204# CHECK: cmovnew %dx, %ax, %r9w 205# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x45,0xc2] 206 cmovnew %dx, %ax, %r9w 207# CHECK: cmovnel %ecx, %edx, %r10d 208# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x45,0xd1] 209 cmovnel %ecx, %edx, %r10d 210# CHECK: cmovneq %r9, %r15, %r11 211# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x45,0xf9] 212 cmovneq %r9, %r15, %r11 213# CHECK: cmovnew 123(%r8,%rax,4), %dx, %ax 214# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x45,0x54,0x80,0x7b] 215 cmovnew 123(%r8,%rax,4), %dx, %ax 216# CHECK: cmovnel 123(%r8,%rax,4), %ecx, %edx 217# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x45,0x4c,0x80,0x7b] 218 cmovnel 123(%r8,%rax,4), %ecx, %edx 219# CHECK: cmovneq 123(%r8,%rax,4), %r9, %r15 220# CHECK: encoding: [0x62,0x54,0x84,0x18,0x45,0x4c,0x80,0x7b] 221 cmovneq 123(%r8,%rax,4), %r9, %r15 222# CHECK: cmovow %dx, %ax, %r9w 223# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x40,0xc2] 224 cmovow %dx, %ax, %r9w 225# CHECK: cmovol %ecx, %edx, %r10d 226# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x40,0xd1] 227 cmovol %ecx, %edx, %r10d 228# CHECK: cmovoq %r9, %r15, %r11 229# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x40,0xf9] 230 cmovoq %r9, %r15, %r11 231# CHECK: cmovow 123(%r8,%rax,4), %dx, %ax 232# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x40,0x54,0x80,0x7b] 233 cmovow 123(%r8,%rax,4), %dx, %ax 234# CHECK: cmovol 123(%r8,%rax,4), %ecx, %edx 235# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x40,0x4c,0x80,0x7b] 236 cmovol 123(%r8,%rax,4), %ecx, %edx 237# CHECK: cmovoq 123(%r8,%rax,4), %r9, %r15 238# CHECK: encoding: [0x62,0x54,0x84,0x18,0x40,0x4c,0x80,0x7b] 239 cmovoq 123(%r8,%rax,4), %r9, %r15 240# CHECK: cmovpw %dx, %ax, %r9w 241# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x4a,0xc2] 242 cmovpw %dx, %ax, %r9w 243# CHECK: cmovpl %ecx, %edx, %r10d 244# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x4a,0xd1] 245 cmovpl %ecx, %edx, %r10d 246# CHECK: cmovpq %r9, %r15, %r11 247# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x4a,0xf9] 248 cmovpq %r9, %r15, %r11 249# CHECK: cmovpw 123(%r8,%rax,4), %dx, %ax 250# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x4a,0x54,0x80,0x7b] 251 cmovpw 123(%r8,%rax,4), %dx, %ax 252# CHECK: cmovpl 123(%r8,%rax,4), %ecx, %edx 253# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x4a,0x4c,0x80,0x7b] 254 cmovpl 123(%r8,%rax,4), %ecx, %edx 255# CHECK: cmovpq 123(%r8,%rax,4), %r9, %r15 256# CHECK: encoding: [0x62,0x54,0x84,0x18,0x4a,0x4c,0x80,0x7b] 257 cmovpq 123(%r8,%rax,4), %r9, %r15 258# CHECK: cmovsw %dx, %ax, %r9w 259# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x48,0xc2] 260 cmovsw %dx, %ax, %r9w 261# CHECK: cmovsl %ecx, %edx, %r10d 262# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x48,0xd1] 263 cmovsl %ecx, %edx, %r10d 264# CHECK: cmovsq %r9, %r15, %r11 265# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x48,0xf9] 266 cmovsq %r9, %r15, %r11 267# CHECK: cmovsw 123(%r8,%rax,4), %dx, %ax 268# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x48,0x54,0x80,0x7b] 269 cmovsw 123(%r8,%rax,4), %dx, %ax 270# CHECK: cmovsl 123(%r8,%rax,4), %ecx, %edx 271# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x48,0x4c,0x80,0x7b] 272 cmovsl 123(%r8,%rax,4), %ecx, %edx 273# CHECK: cmovsq 123(%r8,%rax,4), %r9, %r15 274# CHECK: encoding: [0x62,0x54,0x84,0x18,0x48,0x4c,0x80,0x7b] 275 cmovsq 123(%r8,%rax,4), %r9, %r15 276# CHECK: cmovew %dx, %ax, %r9w 277# CHECK: encoding: [0x62,0xf4,0x35,0x18,0x44,0xc2] 278 cmovew %dx, %ax, %r9w 279# CHECK: cmovel %ecx, %edx, %r10d 280# CHECK: encoding: [0x62,0xf4,0x2c,0x18,0x44,0xd1] 281 cmovel %ecx, %edx, %r10d 282# CHECK: cmoveq %r9, %r15, %r11 283# CHECK: encoding: [0x62,0x54,0xa4,0x18,0x44,0xf9] 284 cmoveq %r9, %r15, %r11 285# CHECK: cmovew 123(%r8,%rax,4), %dx, %ax 286# CHECK: encoding: [0x62,0xd4,0x7d,0x18,0x44,0x54,0x80,0x7b] 287 cmovew 123(%r8,%rax,4), %dx, %ax 288# CHECK: cmovel 123(%r8,%rax,4), %ecx, %edx 289# CHECK: encoding: [0x62,0xd4,0x6c,0x18,0x44,0x4c,0x80,0x7b] 290 cmovel 123(%r8,%rax,4), %ecx, %edx 291# CHECK: cmoveq 123(%r8,%rax,4), %r9, %r15 292# CHECK: encoding: [0x62,0x54,0x84,0x18,0x44,0x4c,0x80,0x7b] 293 cmoveq 123(%r8,%rax,4), %r9, %r15 294