brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.7 KiB · 37106cf Raw
72 lines · plain
1// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-objdump --no-print-imm-hex -d - | FileCheck  %s2 3// Test that we correctly relax these instructions into versions that use4// 16 or 32 bit immediate values.5 6bar:7// CHECK:      Disassembly of section imul:8// CHECK-EMPTY:9// CHECK-NEXT: <imul>:10// CHECK-NEXT:   0: 66 69 1d 00 00 00 00 00 00        imulw $0, (%rip), %bx11// CHECK-NEXT:   9: 69 1d 00 00 00 00 00 00 00 00     imull $0, (%rip), %ebx12// CHECK-NEXT:  13: 48 69 1d 00 00 00 00 00 00 00 00  imulq $0, (%rip), %rbx13        .section imul,"x"14        imul $foo, bar(%rip),  %bx15        imul $foo, bar(%rip),  %ebx16        imul $foo, bar(%rip),  %rbx17 18 19// CHECK:      <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)23        .section and,"x"24        andw $foo, bar(%rip)25        andl $foo, bar(%rip)26        andq $foo, bar(%rip)27 28// CHECK:      <or>:29// CHECK-NEXT:   0: 66 81 0d 00 00 00 00 00 00        orw $0, (%rip)30// CHECK-NEXT:   9: 81 0d 00 00 00 00 00 00 00 00     orl $0, (%rip)31// CHECK-NEXT:  13: 48 81 0d 00 00 00 00 00 00 00 00  orq $0, (%rip)32        .section or,"x"33        orw $foo, bar(%rip)34        orl $foo, bar(%rip)35        orq $foo, bar(%rip)36 37// CHECK:      <xor>:38// CHECK-NEXT:   0: 66 81 35 00 00 00 00 00 00        xorw $0, (%rip)39// CHECK-NEXT:   9: 81 35 00 00 00 00 00 00 00 00     xorl $0, (%rip)40// CHECK-NEXT:  13: 48 81 35 00 00 00 00 00 00 00 00  xorq $0, (%rip)41        .section xor,"x"42        xorw $foo, bar(%rip)43        xorl $foo, bar(%rip)44        xorq $foo, bar(%rip)45 46// CHECK:      <add>:47// CHECK-NEXT:   0: 66 81 05 00 00 00 00 00 00        addw $0, (%rip)48// CHECK-NEXT:   9: 81 05 00 00 00 00 00 00 00 00     addl $0, (%rip)49// CHECK-NEXT:  13: 48 81 05 00 00 00 00 00 00 00 00  addq $0, (%rip)50        .section add,"x"51        addw $foo, bar(%rip)52        addl $foo, bar(%rip)53        addq $foo, bar(%rip)54 55// CHECK:      <sub>:56// CHECK-NEXT:   0: 66 81 2d 00 00 00 00 00 00        subw $0, (%rip)57// CHECK-NEXT:   9: 81 2d 00 00 00 00 00 00 00 00     subl $0, (%rip)58// CHECK-NEXT:  13: 48 81 2d 00 00 00 00 00 00 00 00  subq $0, (%rip)59        .section sub,"x"60        subw $foo, bar(%rip)61        subl $foo, bar(%rip)62        subq $foo, bar(%rip)63 64// CHECK:      <cmp>:65// CHECK-NEXT:   0: 66 81 3d 00 00 00 00 00 00        cmpw $0, (%rip)66// CHECK-NEXT:   9: 81 3d 00 00 00 00 00 00 00 00     cmpl $0, (%rip)67// CHECK-NEXT:  13: 48 81 3d 00 00 00 00 00 00 00 00  cmpq $0, (%rip)68        .section cmp,"x"69        cmpw $foo, bar(%rip)70        cmpl $foo, bar(%rip)71        cmpq $foo, bar(%rip)72