Revert part of r241149, "Fix PR23872: Integrated assembler error message when using...
[oota-llvm.git] / test / MC / ELF / relax-arith.s
1 // RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -s -sd | FileCheck  %s
2
3 // Test that we correctly relax these instructions into versions that use
4 // 16 or 32 bit immediate values.
5
6 bar:
7 // CHECK:      Name: imul
8 // CHECK:      SectionData (
9 // CHECK-NEXT:   0000: 6669DB00 0066691C 25000000 00000069
10 // CHECK-NEXT:   0010: DB000000 00691C25 00000000 00000000
11 // CHECK-NEXT:   0020: 4869DB00 00000048 691C2500 00000000
12 // CHECK-NEXT:   0030: 000000
13 // CHECK-NEXT: )
14         .section imul
15         imul $foo, %bx,  %bx
16         imul $foo, bar,  %bx
17         imul $foo, %ebx, %ebx
18         imul $foo, bar,  %ebx
19         imul $foo, %rbx, %rbx
20         imul $foo, bar,  %rbx
21
22
23 // CHECK:      Name: and
24 // CHECK:      SectionData (
25 // CHECK-NEXT:   0000: 6681E300 00668124 25000000 00000081
26 // CHECK-NEXT:   0010: E3000000 00812425 00000000 00000000
27 // CHECK-NEXT:   0020: 4881E300 00000048 81242500 00000000
28 // CHECK-NEXT:   0030: 000000
29 // CHECK-NEXT: )
30         .section and
31         and  $foo, %bx
32         andw $foo, bar
33         and  $foo, %ebx
34         andl $foo, bar
35         and  $foo, %rbx
36         andq $foo, bar
37
38 // CHECK:      Name: or
39 // CHECK:      SectionData (
40 // CHECK-NEXT:   0000: 6681CB00 0066810C 25000000 00000081
41 // CHECK-NEXT:   0010: CB000000 00810C25 00000000 00000000
42 // CHECK-NEXT:   0020: 4881CB00 00000048 810C2500 00000000
43 // CHECK-NEXT:   0030: 000000
44 // CHECK-NEXT: )
45         .section or
46         or  $foo, %bx
47         orw $foo, bar
48         or  $foo, %ebx
49         orl $foo, bar
50         or  $foo, %rbx
51         orq $foo, bar
52
53 // CHECK:      Name: xor
54 // CHECK:      SectionData (
55 // CHECK-NEXT:   0000: 6681F300 00668134 25000000 00000081
56 // CHECK-NEXT:   0010: F3000000 00813425 00000000 00000000
57 // CHECK-NEXT:   0020: 4881F300 00000048 81342500 00000000
58 // CHECK-NEXT:   0030: 000000
59 // CHECK-NEXT: )
60         .section xor
61         xor  $foo, %bx
62         xorw $foo, bar
63         xor  $foo, %ebx
64         xorl $foo, bar
65         xor  $foo, %rbx
66         xorq $foo, bar
67
68 // CHECK:      Name: add
69 // CHECK:      SectionData (
70 // CHECK-NEXT:   0000: 6681C300 00668104 25000000 00000081
71 // CHECK-NEXT:   0010: C3000000 00810425 00000000 00000000
72 // CHECK-NEXT:   0020: 4881C300 00000048 81042500 00000000
73 // CHECK-NEXT:   0030: 000000
74 // CHECK-NEXT: )
75         .section add
76         add  $foo, %bx
77         addw $foo, bar
78         add  $foo, %ebx
79         addl $foo, bar
80         add  $foo, %rbx
81         addq $foo, bar
82
83 // CHECK:      Name: sub
84 // CHECK:      SectionData (
85 // CHECK-NEXT:   000: 6681EB00 0066812C 25000000 00000081
86 // CHECK-NEXT:   010: EB000000 00812C25 00000000 00000000
87 // CHECK-NEXT:   020: 4881EB00 00000048 812C2500 00000000
88 // CHECK-NEXT:   030: 000000
89 // CHECK-NEXT: )
90         .section sub
91         sub  $foo, %bx
92         subw $foo, bar
93         sub  $foo, %ebx
94         subl $foo, bar
95         sub  $foo, %rbx
96         subq $foo, bar
97
98 // CHECK:      Name: cmp
99 // CHECK:      SectionData (
100 // CHECK-NEXT:   0000: 6681FB00 0066813C 25000000 00000081
101 // CHECK-NEXT:   0010: FB000000 00813C25 00000000 00000000
102 // CHECK-NEXT:   0020: 4881FB00 00000048 813C2500 00000000
103 // CHECK-NEXT:   0030: 000000
104 // CHECK-NEXT: )
105         .section cmp
106         cmp  $foo, %bx
107         cmpw $foo, bar
108         cmp  $foo, %ebx
109         cmpl $foo, bar
110         cmp  $foo, %rbx
111         cmpq $foo, bar