Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(170)

Side by Side Diff: tests_lit/llvm2ice_tests/ias-multi-reloc.ll

Issue 1182603004: Subzero: Transform suitable Load/Arith/Store sequences into RMW ops. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Code review changes Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/IceTargetLoweringX8632.cpp ('k') | tests_lit/llvm2ice_tests/rmw.ll » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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; }
11 ; void add_in_place() { p_global_char += (int)&global_char; } 11 ; void add_in_place() { p_global_char += (int)&global_char; }
12 ; void cmp_global_immediate() { if (p_global_char == &global_char) dummy(); } 12 ; void cmp_global_immediate() { if (p_global_char == &global_char) dummy(); }
13 13
14 @global_char = internal global [1 x i8] zeroinitializer, align 1 14 @global_char = internal global [1 x i8] zeroinitializer, align 1
15 @p_global_char = internal global [4 x i8] zeroinitializer, align 4 15 @p_global_char = internal global [4 x i8] zeroinitializer, align 4
16 declare void @dummy() 16 declare void @dummy()
17 17
18 define internal void @store_immediate_to_global() { 18 define internal void @store_immediate_to_global() {
19 entry: 19 entry:
20 %p_global_char.bc = bitcast [4 x i8]* @p_global_char to i32* 20 %p_global_char.bc = bitcast [4 x i8]* @p_global_char to i32*
21 %expanded1 = ptrtoint [1 x i8]* @global_char to i32 21 %expanded1 = ptrtoint [1 x i8]* @global_char to i32
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 ; Also exercises the RMW add operation.
29 define internal void @add_in_place() { 30 define internal void @add_in_place() {
30 entry: 31 entry:
31 %p_global_char.bc = bitcast [4 x i8]* @p_global_char to i32* 32 %p_global_char.bc = bitcast [4 x i8]* @p_global_char to i32*
32 %0 = load i32, i32* %p_global_char.bc, align 1 33 %0 = load i32, i32* %p_global_char.bc, align 1
33 %expanded1 = ptrtoint [1 x i8]* @global_char to i32 34 %expanded1 = ptrtoint [1 x i8]* @global_char to i32
34 %gep = add i32 %0, %expanded1 35 %gep = add i32 %0, %expanded1
35 %p_global_char.bc3 = bitcast [4 x i8]* @p_global_char to i32* 36 %p_global_char.bc3 = bitcast [4 x i8]* @p_global_char to i32*
36 store i32 %gep, i32* %p_global_char.bc3, align 1 37 store i32 %gep, i32* %p_global_char.bc3, align 1
37 ret void 38 ret void
38 } 39 }
39 ; CHECK-LABEL: add_in_place 40 ; CHECK-LABEL: add_in_place
40 ; CHECK: .long global_char
41 ; CHECK: .long p_global_char 41 ; CHECK: .long p_global_char
42 ; CHECK-NEXT: .long global_char
42 43
43 define internal void @cmp_global_immediate() { 44 define internal void @cmp_global_immediate() {
44 entry: 45 entry:
45 %p_global_char.bc = bitcast [4 x i8]* @p_global_char to i32* 46 %p_global_char.bc = bitcast [4 x i8]* @p_global_char to i32*
46 %0 = load i32, i32* %p_global_char.bc, align 1 47 %0 = load i32, i32* %p_global_char.bc, align 1
47 %expanded1 = ptrtoint [1 x i8]* @global_char to i32 48 %expanded1 = ptrtoint [1 x i8]* @global_char to i32
48 %cmp = icmp eq i32 %0, %expanded1 49 %cmp = icmp eq i32 %0, %expanded1
49 br i1 %cmp, label %if.then, label %if.end 50 br i1 %cmp, label %if.then, label %if.end
50 51
51 if.then: ; preds = %entry 52 if.then: ; preds = %entry
52 tail call void @dummy() 53 tail call void @dummy()
53 br label %if.end 54 br label %if.end
54 55
55 if.end: ; preds = %if.then, %entry 56 if.end: ; preds = %if.then, %entry
56 ret void 57 ret void
57 } 58 }
58 ; CHECK-LABEL: cmp_global_immediate 59 ; CHECK-LABEL: cmp_global_immediate
59 ; CHECK: .long p_global_char 60 ; CHECK: .long p_global_char
60 ; CHECK: .long global_char 61 ; CHECK: .long global_char
61 ; CHECK: .long dummy 62 ; CHECK: .long dummy
OLDNEW
« no previous file with comments | « src/IceTargetLoweringX8632.cpp ('k') | tests_lit/llvm2ice_tests/rmw.ll » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698