| OLD | NEW |
| 1 ; This tries to be a comprehensive test of i8 operations. | 1 ; This tries to be a comprehensive test of i8 operations. |
| 2 | 2 |
| 3 ; RUN: %p2i -i %s --args -O2 --verbose none \ | 3 ; RUN: %p2i -i %s --args -O2 --verbose none \ |
| 4 ; RUN: | llvm-mc -triple=i686-none-nacl -filetype=obj \ | 4 ; RUN: | llvm-mc -triple=i686-none-nacl -filetype=obj \ |
| 5 ; RUN: | llvm-objdump -d --symbolize -x86-asm-syntax=intel - | FileCheck %s | 5 ; RUN: | llvm-objdump -d --symbolize -x86-asm-syntax=intel - | FileCheck %s |
| 6 ; RUN: %p2i -i %s --args -Om1 --verbose none \ | 6 ; RUN: %p2i -i %s --args -Om1 --verbose none \ |
| 7 ; RUN: | llvm-mc -triple=i686-none-nacl -filetype=obj \ | 7 ; RUN: | llvm-mc -triple=i686-none-nacl -filetype=obj \ |
| 8 ; RUN: | llvm-objdump -d --symbolize -x86-asm-syntax=intel - | FileCheck %s | 8 ; RUN: | llvm-objdump -d --symbolize -x86-asm-syntax=intel - | FileCheck %s |
| 9 | 9 |
| 10 define internal i32 @add8Bit(i32 %a, i32 %b) { | 10 define internal i32 @add8Bit(i32 %a, i32 %b) { |
| (...skipping 19 matching lines...) Expand all Loading... |
| 30 | 30 |
| 31 define internal i32 @sub8Bit(i32 %a, i32 %b) { | 31 define internal i32 @sub8Bit(i32 %a, i32 %b) { |
| 32 entry: | 32 entry: |
| 33 %a_8 = trunc i32 %a to i8 | 33 %a_8 = trunc i32 %a to i8 |
| 34 %b_8 = trunc i32 %b to i8 | 34 %b_8 = trunc i32 %b to i8 |
| 35 %sub = sub i8 %b_8, %a_8 | 35 %sub = sub i8 %b_8, %a_8 |
| 36 %ret = zext i8 %sub to i32 | 36 %ret = zext i8 %sub to i32 |
| 37 ret i32 %ret | 37 ret i32 %ret |
| 38 } | 38 } |
| 39 ; CHECK-LABEL: sub8Bit | 39 ; CHECK-LABEL: sub8Bit |
| 40 ; XCHECK: sub {{[abcd]l}} | 40 ; CHECK: sub {{[abcd]l}} |
| 41 | 41 |
| 42 define internal i32 @sub8BitConst(i32 %a) { | 42 define internal i32 @sub8BitConst(i32 %a) { |
| 43 entry: | 43 entry: |
| 44 %a_8 = trunc i32 %a to i8 | 44 %a_8 = trunc i32 %a to i8 |
| 45 %sub = sub i8 %a_8, 123 | 45 %sub = sub i8 %a_8, 123 |
| 46 %ret = zext i8 %sub to i32 | 46 %ret = zext i8 %sub to i32 |
| 47 ret i32 %ret | 47 ret i32 %ret |
| 48 } | 48 } |
| 49 ; CHECK-LABEL: sub8BitConst | 49 ; CHECK-LABEL: sub8BitConst |
| 50 ; XCHECK: sub {{[abcd]l}} | 50 ; CHECK: sub {{[abcd]l}} |
| 51 | 51 |
| 52 define internal i32 @mul8Bit(i32 %a, i32 %b) { | 52 define internal i32 @mul8Bit(i32 %a, i32 %b) { |
| 53 entry: | 53 entry: |
| 54 %a_8 = trunc i32 %a to i8 | 54 %a_8 = trunc i32 %a to i8 |
| 55 %b_8 = trunc i32 %b to i8 | 55 %b_8 = trunc i32 %b to i8 |
| 56 %mul = mul i8 %b_8, %a_8 | 56 %mul = mul i8 %b_8, %a_8 |
| 57 %ret = zext i8 %mul to i32 | 57 %ret = zext i8 %mul to i32 |
| 58 ret i32 %ret | 58 ret i32 %ret |
| 59 } | 59 } |
| 60 ; CHECK-LABEL: mul8Bit | 60 ; CHECK-LABEL: mul8Bit |
| (...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 361 ; CHECK: mov byte ptr {{.*}}, {{[a-d]l}} | 361 ; CHECK: mov byte ptr {{.*}}, {{[a-d]l}} |
| 362 | 362 |
| 363 define void @store_i8_const(i32 %addr_arg) { | 363 define void @store_i8_const(i32 %addr_arg) { |
| 364 entry: | 364 entry: |
| 365 %addr = inttoptr i32 %addr_arg to i8* | 365 %addr = inttoptr i32 %addr_arg to i8* |
| 366 store i8 123, i8* %addr, align 1 | 366 store i8 123, i8* %addr, align 1 |
| 367 ret void | 367 ret void |
| 368 } | 368 } |
| 369 ; CHECK-LABEL: store_i8_const | 369 ; CHECK-LABEL: store_i8_const |
| 370 ; CHECK: mov byte ptr {{.*}}, 123 | 370 ; CHECK: mov byte ptr {{.*}}, 123 |
| OLD | NEW |