1 // RUN
: llvm-mc
-filetype
=obj
-triple x86_64-pc-linux-gnu
%s
-o
- | llvm-objdump
--no-print-imm-hex
-d
- | FileCheck
%s
3 // Test that we avoid relaxing these instructions
and instead generate versions
4 // that use
8-bit immediate values.
7 // CHECK
: Disassembly of section imul
:
10 // CHECK-NEXT
: 0: 66 6b db
80 imulw $
-128, %bx
, %bx
11 // CHECK-NEXT
: 4: 66 6b 1c
25 00 00 00 00 7f imulw $
127, 0, %bx
12 // CHECK-NEXT
: d
: 6b db
00 imull $
0, %ebx
, %ebx
13 // CHECK-NEXT
: 10: 6b 1c
25 00 00 00 00 01 imull $
1, 0, %ebx
14 // CHECK-NEXT
: 18: 48 6b db ff imulq $
-1, %rbx
, %rbx
15 // CHECK-NEXT
: 1c
: 48 6b 1c
25 00 00 00 00 2a imulq $
42, 0, %rbx
26 // CHECK-NEXT
: 0: 66 83 e3
7f andw $
127, %bx
27 // CHECK-NEXT
: 4: 66 83 24 25 00 00 00 00 00 andw $
0, 0
28 // CHECK-NEXT
: d
: 83 e3
01 andl $
1, %ebx
29 // CHECK-NEXT
: 10: 83 24 25 00 00 00 00 ff andl $
-1, 0
30 // CHECK-NEXT
: 18: 48 83 e3
2a andq $
42, %rbx
31 // CHECK-NEXT
: 1c
: 48 83 24 25 00 00 00 00 80 andq $
-128, 0
41 // CHECK-NEXT
: 0: 66 83 cb
00 orw $
0, %bx
42 // CHECK-NEXT
: 4: 66 83 0c
25 00 00 00 00 01 orw $
1, 0
43 // CHECK-NEXT
: d
: 83 cb ff orl $
-1, %ebx
44 // CHECK-NEXT
: 10: 83 0c
25 00 00 00 00 2a orl $
42, 0
45 // CHECK-NEXT
: 18: 48 83 cb
80 orq $
-128, %rbx
46 // CHECK-NEXT
: 1c
: 48 83 0c
25 00 00 00 00 7f orq $
127, 0
56 // CHECK-NEXT
: 0: 66 83 f3 01 xorw $
1, %bx
57 // CHECK-NEXT
: 4: 66 83 34 25 00 00 00 00 ff xorw $
-1, 0
58 // CHECK-NEXT
: d
: 83 f3 2a xorl $
42, %ebx
59 // CHECK-NEXT
: 10: 83 34 25 00 00 00 00 80 xorl $
-128, 0
60 // CHECK-NEXT
: 18: 48 83 f3 7f xorq $
127, %rbx
61 // CHECK-NEXT
: 1c
: 48 83 34 25 00 00 00 00 00 xorq $
0, 0
71 // CHECK-NEXT
: 0: 66 83 c3 ff addw $
-1, %bx
72 // CHECK-NEXT
: 4: 66 83 04 25 00 00 00 00 2a addw $
42, 0
73 // CHECK-NEXT
: d
: 83 c3
80 addl $
-128, %ebx
74 // CHECK-NEXT
: 10: 83 04 25 00 00 00 00 7f addl $
127, 0
75 // CHECK-NEXT
: 18: 48 83 c3
00 addq $
0, %rbx
76 // CHECK-NEXT
: 1c
: 48 83 04 25 00 00 00 00 01 addq $
1, 0
85 // CHECK
: Disassembly of section
sub:
88 // CHECK-NEXT
: 0: 66 83 eb
2a subw $
42, %bx
89 // CHECK-NEXT
: 4: 66 83 2c
25 00 00 00 00 80 subw $
-128, 0
90 // CHECK-NEXT
: d
: 83 eb
7f subl $
127, %ebx
91 // CHECK-NEXT
: 10: 83 2c
25 00 00 00 00 00 subl $
0, 0
92 // CHECK-NEXT
: 18: 48 83 eb
01 subq $
1, %rbx
93 // CHECK-NEXT
: 1c
: 48 83 2c
25 00 00 00 00 ff subq $
-1, 0
102 // CHECK
: Disassembly of section
cmp:
104 // CHECK-NEXT
: <cmp>:
105 // CHECK-NEXT
: 0: 66 83 fb
80 cmpw $
-128, %bx
106 // CHECK-NEXT
: 4: 66 83 3c
25 00 00 00 00 7f
cmpw $
127, 0
107 // CHECK-NEXT
: d
: 83 fb
00 cmpl $
0, %ebx
108 // CHECK-NEXT
: 10: 83 3c
25 00 00 00 00 01 cmpl $
1, 0
109 // CHECK-NEXT
: 18: 48 83 fb ff cmpq $
-1, %rbx
110 // CHECK-NEXT
: 1c
: 48 83 3c
25 00 00 00 00 2a cmpq $
42, 0
119 // CHECK
: Disassembly of section push
:
121 // CHECK-NEXT
: <push
>:
122 // CHECK-NEXT
: 0: 66 6a 80 pushw $
-128
123 // CHECK-NEXT
: 3: 66 6a 7f pushw $
127
124 // CHECK-NEXT
: 6: 6a 80 pushq $
-128
125 // CHECK-NEXT
: 8: 6a 7f pushq $
127