| OLD | NEW |
| 1 ; Simple test of signed and unsigned integer conversions. | 1 ; Simple test of signed and unsigned integer conversions. |
| 2 | 2 |
| 3 ; TODO(jvoung): llvm-objdump doesn't symbolize global symbols well, so we | 3 ; TODO(jvoung): llvm-objdump doesn't symbolize global symbols well, so we |
| 4 ; have [0] == i8v, [2] == i16v, [4] == i32v, [8] == i64v, etc. | 4 ; have [0] == i8v, [2] == i16v, [4] == i32v, [8] == i64v, etc. |
| 5 | 5 |
| 6 ; RUN: %p2i -i %s --args -O2 --verbose none \ | 6 ; RUN: %p2i -i %s --args -O2 --verbose none \ |
| 7 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj \ | 7 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -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 ; RUN: %p2i -i %s --args -Om1 --verbose none \ | 9 ; RUN: %p2i -i %s --args -Om1 --verbose none \ |
| 10 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj \ | 10 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj \ |
| (...skipping 25 matching lines...) Expand all Loading... |
| 36 ret void | 36 ret void |
| 37 } | 37 } |
| 38 ; CHECK-LABEL: from_int8 | 38 ; CHECK-LABEL: from_int8 |
| 39 ; CHECK: mov {{.*}}, byte ptr [ | 39 ; CHECK: mov {{.*}}, byte ptr [ |
| 40 ; CHECK: movsx | 40 ; CHECK: movsx |
| 41 ; CHECK: mov word ptr [ | 41 ; CHECK: mov word ptr [ |
| 42 ; CHECK: movsx | 42 ; CHECK: movsx |
| 43 ; CHECK: mov dword ptr [ | 43 ; CHECK: mov dword ptr [ |
| 44 ; CHECK: movsx | 44 ; CHECK: movsx |
| 45 ; CHECK: sar {{.*}}, 31 | 45 ; CHECK: sar {{.*}}, 31 |
| 46 ; CHECK: [8] | 46 ; This appears to be a bug in llvm-mc. It should be [8] and [12] to represent |
| 47 ; i64v and i64+4. |
| 48 ; CHECK-DAG: [8] |
| 49 ; CHECK-DAG: [8] |
| 47 | 50 |
| 48 define void @from_int16() { | 51 define void @from_int16() { |
| 49 entry: | 52 entry: |
| 50 %__0 = bitcast [2 x i8]* @i16v to i16* | 53 %__0 = bitcast [2 x i8]* @i16v to i16* |
| 51 %v0 = load i16* %__0, align 1 | 54 %v0 = load i16* %__0, align 1 |
| 52 %v1 = trunc i16 %v0 to i8 | 55 %v1 = trunc i16 %v0 to i8 |
| 53 %__3 = bitcast [1 x i8]* @i8v to i8* | 56 %__3 = bitcast [1 x i8]* @i8v to i8* |
| 54 store i8 %v1, i8* %__3, align 1 | 57 store i8 %v1, i8* %__3, align 1 |
| 55 %v2 = sext i16 %v0 to i32 | 58 %v2 = sext i16 %v0 to i32 |
| 56 %__5 = bitcast [4 x i8]* @i32v to i32* | 59 %__5 = bitcast [4 x i8]* @i32v to i32* |
| (...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 199 store i32 %v3, i32* %__7, align 1 | 202 store i32 %v3, i32* %__7, align 1 |
| 200 ret void | 203 ret void |
| 201 } | 204 } |
| 202 ; CHECK-LABEL: from_uint64 | 205 ; CHECK-LABEL: from_uint64 |
| 203 ; CHECK: [24] | 206 ; CHECK: [24] |
| 204 ; CHECK: [0] | 207 ; CHECK: [0] |
| 205 ; CHECK: [2] | 208 ; CHECK: [2] |
| 206 ; CHECK: [4] | 209 ; CHECK: [4] |
| 207 | 210 |
| 208 ; ERRORS-NOT: ICE translation error | 211 ; ERRORS-NOT: ICE translation error |
| OLD | NEW |