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
14acbaecd4c8e4d19207e63624dcd9e01947b51757Kevin Enderby// 32: test.s:8:2: error: invalid instruction mnemonic 'movi'
15acbaecd4c8e4d19207e63624dcd9e01947b51757Kevin Enderby
16acbaecd4c8e4d19207e63624dcd9e01947b51757Kevin Enderby# 8 "test.s"
17acbaecd4c8e4d19207e63624dcd9e01947b51757Kevin Enderby movi $8,%eax
18d8b7aa26134d2abee777f745c32005e63dea2455Chris Lattner
19d8b7aa26134d2abee777f745c32005e63dea2455Chris Lattnermovl 0(%rax), 0(%edx)  // error: invalid operand for instruction
20d8b7aa26134d2abee777f745c32005e63dea2455Chris Lattner
213ca6382120c16e30151e19175d40480ee72de641Jim Grosbach// 32: error: instruction requires: 64-bit mode
2255c4127134d127ccd52cc2f4115af00084b28807Kevin Enderbysysexitq
2358dfaa14651f36fc9fce2031eb011e65ae267b9fKevin Enderby
2458dfaa14651f36fc9fce2031eb011e65ae267b9fKevin Enderby// rdar://10710167
2558dfaa14651f36fc9fce2031eb011e65ae267b9fKevin Enderby// 64: error: expected scale expression
2658dfaa14651f36fc9fce2031eb011e65ae267b9fKevin Enderbylea (%rsp, %rbp, $4), %rax
2784faf659125cb354794e457fa5a8a8daad84760dKevin Enderby
2884faf659125cb354794e457fa5a8a8daad84760dKevin Enderby// rdar://10423777
2936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// 64: error: base register is 64-bit, but index register is not
3084faf659125cb354794e457fa5a8a8daad84760dKevin Enderbymovq (%rsi,%ecx),%xmm0
31ffc49cbea41c08132587a3e622bb65191fa576a2Chad Rosier
3236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// 64: error: invalid 16-bit base register
3336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesmovl %eax,(%bp,%si)
3436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
3536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// 32: error: scale factor in 16-bit address must be 1
3636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesmovl %eax,(%bp,%si,2)
3736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
3836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// 32: error: invalid 16-bit base register
3936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesmovl %eax,(%cx)
4036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
4136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// 32: error: invalid 16-bit base/index register combination
4236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesmovl %eax,(%bp,%bx)
4336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
4436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// 32: error: 16-bit memory operand may not include only index register
4536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesmovl %eax,(,%bx)
4636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
47ffc49cbea41c08132587a3e622bb65191fa576a2Chad Rosier// 32: error: invalid operand for instruction
48ffc49cbea41c08132587a3e622bb65191fa576a2Chad Rosieroutb al, 4
4937ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines
5037ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines// 32: error: invalid segment register
5137ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines// 64: error: invalid segment register
5237ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hinesmovl %eax:0x00, %ebx
53ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines
54ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines// 32: error: invalid operand for instruction
55ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines// 64: error: invalid operand for instruction
56ebe69fe11e48d322045d5949c83283927a0d790bStephen Hinescmpps $-129, %xmm0, %xmm0
57ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines
58ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines// 32: error: invalid operand for instruction
59ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines// 64: error: invalid operand for instruction
60ebe69fe11e48d322045d5949c83283927a0d790bStephen Hinescmppd $256, %xmm0, %xmm0
61