| 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 --filetype=obj --disassemble -i %s --args -O2 \ | 3 ; RUN: %p2i --filetype=obj --disassemble -i %s --args -O2 \ |
| 4 ; RUN: -allow-externally-defined-symbols | FileCheck %s | 4 ; RUN: -allow-externally-defined-symbols | FileCheck %s |
| 5 ; RUN: %p2i --filetype=obj --disassemble -i %s --args -Om1 \ | 5 ; RUN: %p2i --filetype=obj --disassemble -i %s --args -Om1 \ |
| 6 ; RUN: -allow-externally-defined-symbols | FileCheck %s | 6 ; RUN: -allow-externally-defined-symbols | FileCheck %s |
| 7 | 7 |
| 8 declare void @useInt(i32 %x) | 8 declare void @useInt(i32 %x) |
| 9 | 9 |
| 10 define internal i32 @add8Bit(i32 %a, i32 %b) { | 10 define internal i32 @add8Bit(i32 %a, i32 %b) { |
| (...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 346 | 346 |
| 347 define i32 @load_i8_global(i32 %addr_arg) { | 347 define i32 @load_i8_global(i32 %addr_arg) { |
| 348 entry: | 348 entry: |
| 349 %addr = bitcast [1 x i8]* @global8 to i8* | 349 %addr = bitcast [1 x i8]* @global8 to i8* |
| 350 %ret = load i8, i8* %addr, align 1 | 350 %ret = load i8, i8* %addr, align 1 |
| 351 %ret2 = sub i8 %ret, 0 | 351 %ret2 = sub i8 %ret, 0 |
| 352 %ret_ext = zext i8 %ret2 to i32 | 352 %ret_ext = zext i8 %ret2 to i32 |
| 353 ret i32 %ret_ext | 353 ret i32 %ret_ext |
| 354 } | 354 } |
| 355 ; CHECK-LABEL: load_i8_global | 355 ; CHECK-LABEL: load_i8_global |
| 356 ; CHECK: mov {{[a-d]l}},BYTE PTR | 356 ; CHECK: mov {{[a-d]l}},{{(BYTE PTR)?}} |
| 357 | 357 |
| 358 define void @store_i8(i32 %addr_arg, i32 %val) { | 358 define void @store_i8(i32 %addr_arg, i32 %val) { |
| 359 entry: | 359 entry: |
| 360 %val_trunc = trunc i32 %val to i8 | 360 %val_trunc = trunc i32 %val to i8 |
| 361 %addr = inttoptr i32 %addr_arg to i8* | 361 %addr = inttoptr i32 %addr_arg to i8* |
| 362 store i8 %val_trunc, i8* %addr, align 1 | 362 store i8 %val_trunc, i8* %addr, align 1 |
| 363 ret void | 363 ret void |
| 364 } | 364 } |
| 365 ; CHECK-LABEL: store_i8 | 365 ; CHECK-LABEL: store_i8 |
| 366 ; CHECK: mov BYTE PTR {{.*}},{{[a-d]l}} | 366 ; CHECK: mov BYTE PTR {{.*}},{{[a-d]l}} |
| 367 | 367 |
| 368 define void @store_i8_const(i32 %addr_arg) { | 368 define void @store_i8_const(i32 %addr_arg) { |
| 369 entry: | 369 entry: |
| 370 %addr = inttoptr i32 %addr_arg to i8* | 370 %addr = inttoptr i32 %addr_arg to i8* |
| 371 store i8 123, i8* %addr, align 1 | 371 store i8 123, i8* %addr, align 1 |
| 372 ret void | 372 ret void |
| 373 } | 373 } |
| 374 ; CHECK-LABEL: store_i8_const | 374 ; CHECK-LABEL: store_i8_const |
| 375 ; CHECK: mov BYTE PTR {{.*}},0x7b | 375 ; CHECK: mov BYTE PTR {{.*}},0x7b |
| OLD | NEW |