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

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

Issue 693393002: Subzero: Support multiple fixups in one instruction. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Add the original test source in a comment Created 6 years, 1 month 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/assembler_ia32.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 ; Tests the integrated assembler for instructions with multiple
2 ; relocations.
3
4 ; RUN: %p2i -i %s --args -O2 | FileCheck %s
5
6 ; char global_char;
7 ; char *p_global_char;
8 ; void dummy();
9 ; void store_immediate_to_global() { p_global_char = &global_char; }
10 ; void add_in_place() { p_global_char += (int)&global_char; }
11 ; void cmp_global_immediate() { if (p_global_char == &global_char) dummy(); }
12
13 @global_char = internal global [1 x i8] zeroinitializer, align 1
14 @p_global_char = internal global [4 x i8] zeroinitializer, align 4
15 declare void @dummy(i32)
16
17 define internal void @store_immediate_to_global() {
18 entry:
19 %p_global_char.bc = bitcast [4 x i8]* @p_global_char to i32*
20 %expanded1 = ptrtoint [1 x i8]* @global_char to i32
21 store i32 %expanded1, i32* %p_global_char.bc, align 1
22 ret void
23 }
24 ; CHECK-LABEL: store_immediate_to_global
25 ; CHECK: .long p_global_char
26 ; CHECK: .long global_char
27
28 define internal void @add_in_place() {
29 entry:
30 %p_global_char.bc = bitcast [4 x i8]* @p_global_char to i32*
31 %0 = load i32* %p_global_char.bc, align 1
32 %expanded1 = ptrtoint [1 x i8]* @global_char to i32
33 %gep = add i32 %0, %expanded1
34 %p_global_char.bc3 = bitcast [4 x i8]* @p_global_char to i32*
35 store i32 %gep, i32* %p_global_char.bc3, align 1
36 ret void
37 }
38 ; CHECK-LABEL: add_in_place
39 ; CHECK: .long global_char
40 ; CHECK: .long p_global_char
41
42 define internal void @cmp_global_immediate() {
43 entry:
44 %p_global_char.bc = bitcast [4 x i8]* @p_global_char to i32*
45 %0 = load i32* %p_global_char.bc, align 1
46 %expanded1 = ptrtoint [1 x i8]* @global_char to i32
47 %cmp = icmp eq i32 %0, %expanded1
48 br i1 %cmp, label %if.then, label %if.end
49
50 if.then: ; preds = %entry
51 %dummy.bc = bitcast void (i32)* @dummy to void ()*
52 tail call void %dummy.bc()
53 br label %if.end
54
55 if.end: ; preds = %if.then, %entry
56 ret void
57 }
58 ; CHECK-LABEL: cmp_global_immediate
59 ; CHECK: .long p_global_char
60 ; CHECK: .long global_char
61 ; CHECK: call dummy
OLDNEW
« no previous file with comments | « src/assembler_ia32.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698