109062b1672d33c40c38de3ff3163e0d53ebe165dDaniel Dunbar// RUN: not llvm-mc -triple x86_64-unknown-unknown %s 2> %t.err 25de728cfe1a922ac9b13546dca94526b2fa693b6Evan Cheng// RUN: FileCheck --check-prefix=64 < %t.err %s 309062b1672d33c40c38de3ff3163e0d53ebe165dDaniel Dunbar 45de728cfe1a922ac9b13546dca94526b2fa693b6Evan Cheng// RUN: not llvm-mc -triple i386-unknown-unknown %s 2> %t.err 55de728cfe1a922ac9b13546dca94526b2fa693b6Evan Cheng// RUN: FileCheck --check-prefix=32 < %t.err %s 65de728cfe1a922ac9b13546dca94526b2fa693b6Evan Cheng// rdar://8204588 75de728cfe1a922ac9b13546dca94526b2fa693b6Evan Cheng 85de728cfe1a922ac9b13546dca94526b2fa693b6Evan Cheng// 64: error: ambiguous instructions require an explicit suffix (could be 'cmpb', 'cmpw', 'cmpl', or 'cmpq') 909062b1672d33c40c38de3ff3163e0d53ebe165dDaniel Dunbarcmp $0, 0(%eax) 105de728cfe1a922ac9b13546dca94526b2fa693b6Evan Cheng 115de728cfe1a922ac9b13546dca94526b2fa693b6Evan Cheng// 32: error: register %rax is only available in 64-bit mode 125de728cfe1a922ac9b13546dca94526b2fa693b6Evan Chengaddl $0, 0(%rax) 13acbaecd4c8e4d19207e63624dcd9e01947b51757Kevin Enderby 14de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// 32: error: register %xmm16 is only available in 64-bit mode 15de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// 64: error: register %xmm16 is only available with AVX512 16de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainarvaddps %xmm16, %xmm0, %xmm0 17de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar 18acbaecd4c8e4d19207e63624dcd9e01947b51757Kevin Enderby// 32: test.s:8:2: error: invalid instruction mnemonic 'movi' 19acbaecd4c8e4d19207e63624dcd9e01947b51757Kevin Enderby 20acbaecd4c8e4d19207e63624dcd9e01947b51757Kevin Enderby# 8 "test.s" 21acbaecd4c8e4d19207e63624dcd9e01947b51757Kevin Enderby movi $8,%eax 22d8b7aa26134d2abee777f745c32005e63dea2455Chris Lattner 23d8b7aa26134d2abee777f745c32005e63dea2455Chris Lattnermovl 0(%rax), 0(%edx) // error: invalid operand for instruction 24d8b7aa26134d2abee777f745c32005e63dea2455Chris Lattner 253ca6382120c16e30151e19175d40480ee72de641Jim Grosbach// 32: error: instruction requires: 64-bit mode 2655c4127134d127ccd52cc2f4115af00084b28807Kevin Enderbysysexitq 2758dfaa14651f36fc9fce2031eb011e65ae267b9fKevin Enderby 2858dfaa14651f36fc9fce2031eb011e65ae267b9fKevin Enderby// rdar://10710167 2958dfaa14651f36fc9fce2031eb011e65ae267b9fKevin Enderby// 64: error: expected scale expression 3058dfaa14651f36fc9fce2031eb011e65ae267b9fKevin Enderbylea (%rsp, %rbp, $4), %rax 3184faf659125cb354794e457fa5a8a8daad84760dKevin Enderby 3284faf659125cb354794e457fa5a8a8daad84760dKevin Enderby// rdar://10423777 3336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// 64: error: base register is 64-bit, but index register is not 3484faf659125cb354794e457fa5a8a8daad84760dKevin Enderbymovq (%rsi,%ecx),%xmm0 35ffc49cbea41c08132587a3e622bb65191fa576a2Chad Rosier 3636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// 64: error: invalid 16-bit base register 3736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesmovl %eax,(%bp,%si) 3836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 3936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// 32: error: scale factor in 16-bit address must be 1 4036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesmovl %eax,(%bp,%si,2) 4136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 4236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// 32: error: invalid 16-bit base register 4336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesmovl %eax,(%cx) 4436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 4536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// 32: error: invalid 16-bit base/index register combination 4636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesmovl %eax,(%bp,%bx) 4736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 4836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// 32: error: 16-bit memory operand may not include only index register 4936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesmovl %eax,(,%bx) 5036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 51ffc49cbea41c08132587a3e622bb65191fa576a2Chad Rosier// 32: error: invalid operand for instruction 52ffc49cbea41c08132587a3e622bb65191fa576a2Chad Rosieroutb al, 4 5337ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines 5437ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines// 32: error: invalid segment register 5537ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines// 64: error: invalid segment register 5637ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hinesmovl %eax:0x00, %ebx 57ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines 58ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines// 32: error: invalid operand for instruction 59ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines// 64: error: invalid operand for instruction 60ebe69fe11e48d322045d5949c83283927a0d790bStephen Hinescmpps $-129, %xmm0, %xmm0 61ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines 62ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines// 32: error: invalid operand for instruction 63ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines// 64: error: invalid operand for instruction 64ebe69fe11e48d322045d5949c83283927a0d790bStephen Hinescmppd $256, %xmm0, %xmm0 65f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar 66f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar// 32: error: instruction requires: 64-bit mode 67f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarjrcxz 1 68f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar 69f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar// 64: error: instruction requires: Not 64-bit mode 70f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarjcxz 1 71