Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 ; Tests the integrated assembler for instructions with multiple | |
| 2 ; relocations. | |
| 3 | |
| 4 ; RUN: %p2i -i %s --args -O2 -ias=1 | FileCheck %s | |
|
jvoung (off chromium)
2014/11/03 17:18:55
nit: the other integrated assembler tests don't us
Jim Stichnoth
2014/11/03 19:35:50
OK, removed for consistency.
| |
| 5 | |
| 6 @global_int = internal global [4 x i8] zeroinitializer, align 4 | |
| 7 @p_global_int = internal global [4 x i8] zeroinitializer, align 4 | |
| 8 declare void @dummy(i32) | |
| 9 | |
| 10 define internal void @store_immediate_to_global() { | |
|
Jim Stichnoth
2014/11/02 17:49:21
This is the only test that actually triggered the
| |
| 11 entry: | |
| 12 %p_global_int.bc = bitcast [4 x i8]* @p_global_int to i32* | |
| 13 %expanded1 = ptrtoint [4 x i8]* @global_int to i32 | |
| 14 store i32 %expanded1, i32* %p_global_int.bc, align 1 | |
| 15 ret void | |
| 16 } | |
| 17 ; CHECK-LABEL: store_immediate_to_global | |
| 18 ; CHECK: .long p_global_int | |
| 19 ; CHECK: .long global_int | |
| 20 | |
| 21 define internal void @add_in_place() { | |
| 22 entry: | |
| 23 %global_int.bc = bitcast [4 x i8]* @global_int to i32* | |
| 24 %0 = load i32* %global_int.bc, align 1 | |
| 25 %expanded1 = ptrtoint [4 x i8]* @p_global_int to i32 | |
| 26 %add = add i32 %0, %expanded1 | |
| 27 %global_int.bc3 = bitcast [4 x i8]* @global_int to i32* | |
| 28 store i32 %add, i32* %global_int.bc3, align 1 | |
| 29 ret void | |
| 30 } | |
| 31 ; CHECK-LABEL: add_in_place | |
| 32 ; CHECK: .long p_global_int | |
|
jvoung (off chromium)
2014/11/03 17:18:55
Hmm, I would have thought that "global_int" is the
Jim Stichnoth
2014/11/03 19:35:50
I swapped the order to be consistent. This also m
| |
| 33 ; CHECK: .long global_int | |
| 34 | |
| 35 define internal void @cmp_global_immediate() { | |
| 36 entry: | |
| 37 %p_global_int.bc = bitcast [4 x i8]* @p_global_int to i32* | |
| 38 %0 = load i32* %p_global_int.bc, align 1 | |
| 39 %expanded1 = ptrtoint [4 x i8]* @global_int to i32 | |
| 40 %cmp = icmp eq i32 %0, %expanded1 | |
| 41 br i1 %cmp, label %if.then, label %if.end | |
| 42 | |
| 43 if.then: ; preds = %entry | |
| 44 %dummy.bc = bitcast void (i32)* @dummy to void ()* | |
| 45 tail call void %dummy.bc() | |
| 46 br label %if.end | |
| 47 | |
| 48 if.end: ; preds = %if.then, %entry | |
| 49 ret void | |
| 50 } | |
| 51 ; CHECK-LABEL: cmp_global_immediate | |
| 52 ; CHECK: .long p_global_int | |
| 53 ; CHECK: .long global_int | |
| 54 ; CHECK: call dummy | |
| OLD | NEW |