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