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

Side by Side Diff: tests_lit/reader_tests/load.ll

Issue 561883002: Add load and store instructions to Subzero bitcode reader. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Fix isses in patch set 2. Created 6 years, 3 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/PNaClTranslator.cpp ('k') | tests_lit/reader_tests/store.ll » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 ; Test if we can read load instructions.
2
3 ; RUN: llvm-as < %s | pnacl-freeze \
4 ; RUN: | %llvm2ice -notranslate -verbose=inst -build-on-read \
5 ; RUN: -allow-pnacl-reader-error-recovery \
6 ; RUN: | FileCheck %s
7
8 define i32 @load_i8(i32 %addr) {
9 entry:
10 %addr_i8 = inttoptr i32 %addr to i8*
11 %v = load i8* %addr_i8, align 1
12 %r = sext i8 %v to i32
13 ret i32 %r
14
15 ; CHECK: __0:
16 ; CHECK-NEXT: %__1 = load i8* %__0, align 1
17 ; CHECK-NEXT: %__2 = sext i8 %__1 to i32
18 ; CHECK-NEXT: ret i32 %__2
19 }
20
21 define i32 @load_i16(i32 %addr) {
22 entry:
23 %addr_i16 = inttoptr i32 %addr to i16*
24 %v = load i16* %addr_i16, align 1
25 %r = sext i16 %v to i32
26 ret i32 %r
27
28 ; CHECK: __0:
29 ; CHECK-NEXT: %__1 = load i16* %__0, align 1
30 ; CHECK-NEXT: %__2 = sext i16 %__1 to i32
31 ; CHECK-NEXT: ret i32 %__2
32 }
33
34 define i32 @load_i32(i32 %addr) {
35 entry:
36 %addr_i32 = inttoptr i32 %addr to i32*
37 %v = load i32* %addr_i32, align 1
38 ret i32 %v
39
40 ; CHECK: __0:
41 ; CHECK-NEXT: %__1 = load i32* %__0, align 1
42 ; CHECK-NEXT: ret i32 %__1
43 }
44
45 define i64 @load_i64(i32 %addr) {
46 entry:
47 %addr_i64 = inttoptr i32 %addr to i64*
48 %v = load i64* %addr_i64, align 1
49 ret i64 %v
50
51 ; CHECK: __0:
52 ; CHECK-NEXT: %__1 = load i64* %__0, align 1
53 ; CHECK-NEXT: ret i64 %__1
54 }
55
56 define float @load_float_a1(i32 %addr) {
57 entry:
58 %addr_float = inttoptr i32 %addr to float*
59 %v = load float* %addr_float, align 1
60 ret float %v
61
62 ; TODO(kschimpf) Fix load alignment in ICE to allow non-default.
63
64 ; CHECK: __0:
65 ; CHECK-NEXT: %__1 = load float* %__0, align 4
66 ; CHECK-NEXT: ret float %__1
67 }
68
69
70 define float @load_float_a4(i32 %addr) {
71 entry:
72 %addr_float = inttoptr i32 %addr to float*
73 %v = load float* %addr_float, align 4
74 ret float %v
75
76 ; CHECK: __0:
77 ; CHECK-NEXT: %__1 = load float* %__0, align 4
78 ; CHECK-NEXT: ret float %__1
79 }
80
81 define double @load_double_a1(i32 %addr) {
82 entry:
83 %addr_double = inttoptr i32 %addr to double*
84 %v = load double* %addr_double, align 1
85 ret double %v
86
87 ; TODO(kschimpf) Fix load alignment in ICE to allow non-default.
88
89 ; CHECK: __0:
90 ; CHECK-NEXT: %__1 = load double* %__0, align 8
91 ; CHECK-NEXT: ret double %__1
92 }
93
94
95 define double @load_double_a8(i32 %addr) {
96 entry:
97 %addr_double = inttoptr i32 %addr to double*
98 %v = load double* %addr_double, align 8
99 ret double %v
100
101 ; CHECK: __0:
102 ; CHECK-NEXT: %__1 = load double* %__0, align 8
103 ; CHECK-NEXT: ret double %__1
104 }
105
106 define <16 x i8> @load_v16xI8(i32 %addr) {
107 entry:
108 %addr_v16xI8 = inttoptr i32 %addr to <16 x i8>*
109 %v = load <16 x i8>* %addr_v16xI8, align 1
110 ret <16 x i8> %v
111
112 ; CHECK: __0:
113 ; CHECK-NEXT: %__1 = load <16 x i8>* %__0, align 1
114 ; CHECK-NEXT: ret <16 x i8> %__1
115 }
116
117 define <8 x i16> @load_v8xI16(i32 %addr) {
118 entry:
119 %addr_v8xI16 = inttoptr i32 %addr to <8 x i16>*
120 %v = load <8 x i16>* %addr_v8xI16, align 2
121 ret <8 x i16> %v
122
123 ; CHECK: __0:
124 ; CHECK-NEXT: %__1 = load <8 x i16>* %__0, align 2
125 ; CHECK-NEXT: ret <8 x i16> %__1
126 }
127
128 define <4 x i32> @load_v4xI32(i32 %addr) {
129 entry:
130 %addr_v4xI32 = inttoptr i32 %addr to <4 x i32>*
131 %v = load <4 x i32>* %addr_v4xI32, align 4
132 ret <4 x i32> %v
133
134 ; CHECK: __0:
135 ; CHECK-NEXT: %__1 = load <4 x i32>* %__0, align 4
136 ; CHECK-NEXT: ret <4 x i32> %__1
137 }
138
139 define <4 x float> @load_v4xFloat(i32 %addr) {
140 entry:
141 %addr_v4xFloat = inttoptr i32 %addr to <4 x float>*
142 %v = load <4 x float>* %addr_v4xFloat, align 4
143 ret <4 x float> %v
144
145 ; CHECK: __0:
146 ; CHECK-NEXT: %__1 = load <4 x float>* %__0, align 4
147 ; CHECK-NEXT: ret <4 x float> %__1
148 }
149
OLDNEW
« no previous file with comments | « src/PNaClTranslator.cpp ('k') | tests_lit/reader_tests/store.ll » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698