| OLD | NEW |
| 1 ; Tests the integrated assembler for instructions with multiple | 1 ; Tests the integrated assembler for instructions with multiple |
| 2 ; relocations. | 2 ; relocations. |
| 3 | 3 |
| 4 ; RUN: %if --need=allow_dump --command %p2i -i %s --args -O2 \ | 4 ; RUN: %if --need=allow_dump --command %p2i -i %s --args -O2 \ |
| 5 ; RUN: | %if --need=allow_dump --command FileCheck %s | 5 ; RUN: | %if --need=allow_dump --command FileCheck %s |
| 6 | 6 |
| 7 ; char global_char; | 7 ; char global_char; |
| 8 ; char *p_global_char; | 8 ; char *p_global_char; |
| 9 ; void dummy(); | 9 ; void dummy(); |
| 10 ; void store_immediate_to_global() { p_global_char = &global_char; } | 10 ; void store_immediate_to_global() { p_global_char = &global_char; } |
| (...skipping 11 matching lines...) Expand all Loading... |
| 22 store i32 %expanded1, i32* %p_global_char.bc, align 1 | 22 store i32 %expanded1, i32* %p_global_char.bc, align 1 |
| 23 ret void | 23 ret void |
| 24 } | 24 } |
| 25 ; CHECK-LABEL: store_immediate_to_global | 25 ; CHECK-LABEL: store_immediate_to_global |
| 26 ; CHECK: .long p_global_char | 26 ; CHECK: .long p_global_char |
| 27 ; CHECK: .long global_char | 27 ; CHECK: .long global_char |
| 28 | 28 |
| 29 define internal void @add_in_place() { | 29 define internal void @add_in_place() { |
| 30 entry: | 30 entry: |
| 31 %p_global_char.bc = bitcast [4 x i8]* @p_global_char to i32* | 31 %p_global_char.bc = bitcast [4 x i8]* @p_global_char to i32* |
| 32 %0 = load i32* %p_global_char.bc, align 1 | 32 %0 = load i32, i32* %p_global_char.bc, align 1 |
| 33 %expanded1 = ptrtoint [1 x i8]* @global_char to i32 | 33 %expanded1 = ptrtoint [1 x i8]* @global_char to i32 |
| 34 %gep = add i32 %0, %expanded1 | 34 %gep = add i32 %0, %expanded1 |
| 35 %p_global_char.bc3 = bitcast [4 x i8]* @p_global_char to i32* | 35 %p_global_char.bc3 = bitcast [4 x i8]* @p_global_char to i32* |
| 36 store i32 %gep, i32* %p_global_char.bc3, align 1 | 36 store i32 %gep, i32* %p_global_char.bc3, align 1 |
| 37 ret void | 37 ret void |
| 38 } | 38 } |
| 39 ; CHECK-LABEL: add_in_place | 39 ; CHECK-LABEL: add_in_place |
| 40 ; CHECK: .long global_char | 40 ; CHECK: .long global_char |
| 41 ; CHECK: .long p_global_char | 41 ; CHECK: .long p_global_char |
| 42 | 42 |
| 43 define internal void @cmp_global_immediate() { | 43 define internal void @cmp_global_immediate() { |
| 44 entry: | 44 entry: |
| 45 %p_global_char.bc = bitcast [4 x i8]* @p_global_char to i32* | 45 %p_global_char.bc = bitcast [4 x i8]* @p_global_char to i32* |
| 46 %0 = load i32* %p_global_char.bc, align 1 | 46 %0 = load i32, i32* %p_global_char.bc, align 1 |
| 47 %expanded1 = ptrtoint [1 x i8]* @global_char to i32 | 47 %expanded1 = ptrtoint [1 x i8]* @global_char to i32 |
| 48 %cmp = icmp eq i32 %0, %expanded1 | 48 %cmp = icmp eq i32 %0, %expanded1 |
| 49 br i1 %cmp, label %if.then, label %if.end | 49 br i1 %cmp, label %if.then, label %if.end |
| 50 | 50 |
| 51 if.then: ; preds = %entry | 51 if.then: ; preds = %entry |
| 52 tail call void @dummy() | 52 tail call void @dummy() |
| 53 br label %if.end | 53 br label %if.end |
| 54 | 54 |
| 55 if.end: ; preds = %if.then, %entry | 55 if.end: ; preds = %if.then, %entry |
| 56 ret void | 56 ret void |
| 57 } | 57 } |
| 58 ; CHECK-LABEL: cmp_global_immediate | 58 ; CHECK-LABEL: cmp_global_immediate |
| 59 ; CHECK: .long p_global_char | 59 ; CHECK: .long p_global_char |
| 60 ; CHECK: .long global_char | 60 ; CHECK: .long global_char |
| 61 ; CHECK: .long dummy | 61 ; CHECK: .long dummy |
| OLD | NEW |