1 // RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-objdump -d - | FileCheck %s
3 // Test that we correctly relax these instructions into versions that use
4 // 16 or 32 bit immediate values.
7 // CHECK: Disassembly of section imul:
9 // CHECK-NEXT: 0: 66 69 1d 00 00 00 00 00 00 imulw $0, (%rip), %bx
10 // CHECK-NEXT: 9: 69 1d 00 00 00 00 00 00 00 00 imull $0, (%rip), %ebx
11 // CHECK-NEXT: 13: 48 69 1d 00 00 00 00 00 00 00 00 imulq $0, (%rip), %rbx
13 imul $foo, bar(%rip), %bx
14 imul $foo, bar(%rip), %ebx
15 imul $foo, bar(%rip), %rbx
18 // CHECK: Disassembly of section and:
20 // CHECK-NEXT: 0: 66 81 25 00 00 00 00 00 00 andw $0, (%rip)
21 // CHECK-NEXT: 9: 81 25 00 00 00 00 00 00 00 00 andl $0, (%rip)
22 // CHECK-NEXT: 13: 48 81 25 00 00 00 00 00 00 00 00 andq $0, (%rip)
28 // CHECK: Disassembly of section or:
30 // CHECK-NEXT: 0: 66 81 0d 00 00 00 00 00 00 orw $0, (%rip)
31 // CHECK-NEXT: 9: 81 0d 00 00 00 00 00 00 00 00 orl $0, (%rip)
32 // CHECK-NEXT: 13: 48 81 0d 00 00 00 00 00 00 00 00 orq $0, (%rip)
38 // CHECK: Disassembly of section xor:
40 // CHECK-NEXT: 0: 66 81 35 00 00 00 00 00 00 xorw $0, (%rip)
41 // CHECK-NEXT: 9: 81 35 00 00 00 00 00 00 00 00 xorl $0, (%rip)
42 // CHECK-NEXT: 13: 48 81 35 00 00 00 00 00 00 00 00 xorq $0, (%rip)
48 // CHECK: Disassembly of section add:
50 // CHECK-NEXT: 0: 66 81 05 00 00 00 00 00 00 addw $0, (%rip)
51 // CHECK-NEXT: 9: 81 05 00 00 00 00 00 00 00 00 addl $0, (%rip)
52 // CHECK-NEXT: 13: 48 81 05 00 00 00 00 00 00 00 00 addq $0, (%rip)
58 // CHECK: Disassembly of section sub:
60 // CHECK-NEXT: 0: 66 81 2d 00 00 00 00 00 00 subw $0, (%rip)
61 // CHECK-NEXT: 9: 81 2d 00 00 00 00 00 00 00 00 subl $0, (%rip)
62 // CHECK-NEXT: 13: 48 81 2d 00 00 00 00 00 00 00 00 subq $0, (%rip)
68 // CHECK: Disassembly of section cmp:
70 // CHECK-NEXT: 0: 66 81 3d 00 00 00 00 00 00 cmpw $0, (%rip)
71 // CHECK-NEXT: 9: 81 3d 00 00 00 00 00 00 00 00 cmpl $0, (%rip)
72 // CHECK-NEXT: 13: 48 81 3d 00 00 00 00 00 00 00 00 cmpq $0, (%rip)